aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorAndrew Pinski <apinski@marvell.com>2020-01-25 05:20:38 +0000
committerAndrew Pinski <apinski@marvell.com>2020-01-25 03:38:31 -0800
commit53d172975f269138ba227f6d4560950265c36df8 (patch)
tree282c3ae0322b0003349caede92a0ab7cb29d6a4d /gcc
parent9c1179c339e050e2ce7c545f648b684d38dec69d (diff)
downloadgcc-53d172975f269138ba227f6d4560950265c36df8.zip
gcc-53d172975f269138ba227f6d4560950265c36df8.tar.gz
gcc-53d172975f269138ba227f6d4560950265c36df8.tar.bz2
Fix gcc.target/aarch64/vec_zeroextend.c for big-endian
vec_zeroextend.c fails on big-endian as it assumes 0 index is the lower part but it is not for big-endian case. This fixes the problem by using the correct index for the lower part for big-endian. Committed as obvious after a test on aarch64_be-linux-gnu. ChangeLog: * gcc.target/aarch64/vec_zeroextend.c: Fix for big-endian.
Diffstat (limited to 'gcc')
-rw-r--r--gcc/testsuite/ChangeLog4
-rw-r--r--gcc/testsuite/gcc.target/aarch64/vec_zeroextend.c8
2 files changed, 10 insertions, 2 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index a8d517a..ecf0a66 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,7 @@
+2020-01-25 Andrew Pinski <apinski@marvell.com>
+
+ * gcc.target/aarch64/vec_zeroextend.c: Fix for big-endian.
+
2020-01-24 Jeff Law <law@redhat.com
PR tree-optimization/92788
diff --git a/gcc/testsuite/gcc.target/aarch64/vec_zeroextend.c b/gcc/testsuite/gcc.target/aarch64/vec_zeroextend.c
index 9c3971f..5a74cbc 100644
--- a/gcc/testsuite/gcc.target/aarch64/vec_zeroextend.c
+++ b/gcc/testsuite/gcc.target/aarch64/vec_zeroextend.c
@@ -3,17 +3,21 @@
#define vector __attribute__((vector_size(16) ))
+#define lowull (__BYTE_ORDER__ == __ORDER_BIG_ENDIAN__ ? 1 : 0)
+#define lowui (__BYTE_ORDER__ == __ORDER_BIG_ENDIAN__ ? 3 : 0)
+
+
vector unsigned long long
f1(vector unsigned long long b, vector unsigned int a)
{
- b[0] = a[0];
+ b[lowull] = a[lowui];
return b;
}
unsigned long long
f2(vector unsigned int a)
{
- return a[0];
+ return a[lowui];
}
/* { dg-final { scan-assembler-times {fmov} 2 } } */