mirror of
git://git.openembedded.org/meta-openembedded
synced 2026-04-02 02:49:12 +00:00
This needs further investigation, but for now we can get the tested sources into the poky gcc harness Signed-off-by: Koen Kooi <k-kooi@ti.com>
139 lines
3.5 KiB
Diff
139 lines
3.5 KiB
Diff
2010-08-05 Andrew Stubbs <ams@codesourcery.com>
|
|
|
|
gcc/testsuite/
|
|
* gcc.dg/vect/vect-shift-2.c: Revert all previous changes.
|
|
* gcc.dg/vect/vect-shift-4.c: New file.
|
|
|
|
2010-07-20 Yao Qi <yao@codesourcery.com>
|
|
|
|
Merge from Sourcery G++ 4.4:
|
|
2009-06-16 Daniel Jacobowitz <dan@codesourcery.com>
|
|
|
|
Merge from Sourcery G++ 4.3:
|
|
2008-12-03 Daniel Jacobowitz <dan@codesourcery.com>
|
|
|
|
gcc/testsuite/
|
|
* gcc.dg/vect/vect-shift-2.c, gcc.dg/vect/vect-shift-3.c: New.
|
|
* lib/target-supports.exp (check_effective_target_vect_shift_char): New
|
|
function.
|
|
|
|
2010-07-24 Sandra Loosemore <sandra@codesourcery.com>
|
|
|
|
Backport from mainline:
|
|
|
|
=== added file 'gcc/testsuite/gcc.dg/vect/vect-shift-3.c'
|
|
--- old/gcc/testsuite/gcc.dg/vect/vect-shift-3.c 1970-01-01 00:00:00 +0000
|
|
+++ new/gcc/testsuite/gcc.dg/vect/vect-shift-3.c 2010-08-05 14:13:43 +0000
|
|
@@ -0,0 +1,37 @@
|
|
+/* { dg-require-effective-target vect_shift } */
|
|
+/* { dg-require-effective-target vect_int } */
|
|
+
|
|
+#include "tree-vect.h"
|
|
+
|
|
+#define N 32
|
|
+
|
|
+unsigned short dst[N] __attribute__((aligned(N)));
|
|
+unsigned short src[N] __attribute__((aligned(N)));
|
|
+
|
|
+__attribute__ ((noinline))
|
|
+void array_shift(void)
|
|
+{
|
|
+ int i;
|
|
+ for (i = 0; i < N; i++)
|
|
+ dst[i] = src[i] >> 3;
|
|
+}
|
|
+
|
|
+int main()
|
|
+{
|
|
+ volatile int i;
|
|
+ check_vect ();
|
|
+
|
|
+ for (i = 0; i < N; i++)
|
|
+ src[i] = i << 3;
|
|
+
|
|
+ array_shift ();
|
|
+
|
|
+ for (i = 0; i < N; i++)
|
|
+ if (dst[i] != i)
|
|
+ abort ();
|
|
+
|
|
+ return 0;
|
|
+}
|
|
+
|
|
+/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" } } */
|
|
+/* { dg-final { cleanup-tree-dump "vect" } } */
|
|
|
|
=== added file 'gcc/testsuite/gcc.dg/vect/vect-shift-4.c'
|
|
--- old/gcc/testsuite/gcc.dg/vect/vect-shift-4.c 1970-01-01 00:00:00 +0000
|
|
+++ new/gcc/testsuite/gcc.dg/vect/vect-shift-4.c 2010-08-05 14:13:43 +0000
|
|
@@ -0,0 +1,37 @@
|
|
+/* { dg-require-effective-target vect_shift_char } */
|
|
+/* { dg-require-effective-target vect_int } */
|
|
+
|
|
+#include "tree-vect.h"
|
|
+
|
|
+#define N 32
|
|
+
|
|
+unsigned char dst[N] __attribute__((aligned(N)));
|
|
+unsigned char src[N] __attribute__((aligned(N)));
|
|
+
|
|
+__attribute__ ((noinline))
|
|
+void array_shift(void)
|
|
+{
|
|
+ int i;
|
|
+ for (i = 0; i < N; i++)
|
|
+ dst[i] = src[i] >> 3;
|
|
+}
|
|
+
|
|
+int main()
|
|
+{
|
|
+ volatile int i;
|
|
+ check_vect ();
|
|
+
|
|
+ for (i = 0; i < N; i++)
|
|
+ src[i] = i << 3;
|
|
+
|
|
+ array_shift ();
|
|
+
|
|
+ for (i = 0; i < N; i++)
|
|
+ if (dst[i] != i)
|
|
+ abort ();
|
|
+
|
|
+ return 0;
|
|
+}
|
|
+
|
|
+/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" } } */
|
|
+/* { dg-final { cleanup-tree-dump "vect" } } */
|
|
|
|
=== modified file 'gcc/testsuite/lib/target-supports.exp'
|
|
--- old/gcc/testsuite/lib/target-supports.exp 2010-07-29 15:38:15 +0000
|
|
+++ new/gcc/testsuite/lib/target-supports.exp 2010-08-05 14:13:43 +0000
|
|
@@ -2001,6 +2001,26 @@
|
|
return $et_vect_shift_saved
|
|
}
|
|
|
|
+# Return 1 if the target supports hardware vector shift operation for char.
|
|
+
|
|
+proc check_effective_target_vect_shift_char { } {
|
|
+ global et_vect_shift_char_saved
|
|
+
|
|
+ if [info exists et_vect_shift_char_saved] {
|
|
+ verbose "check_effective_target_vect_shift_char: using cached result" 2
|
|
+ } else {
|
|
+ set et_vect_shift_char_saved 0
|
|
+ if { ([istarget powerpc*-*-*]
|
|
+ && ![istarget powerpc-*-linux*paired*])
|
|
+ || [check_effective_target_arm32] } {
|
|
+ set et_vect_shift_char_saved 1
|
|
+ }
|
|
+ }
|
|
+
|
|
+ verbose "check_effective_target_vect_shift_char: returning $et_vect_shift_char_saved" 2
|
|
+ return $et_vect_shift_char_saved
|
|
+}
|
|
+
|
|
# Return 1 if the target supports hardware vectors of long, 0 otherwise.
|
|
#
|
|
# This can change for different subtargets so do not cache the result.
|
|
|