diff options
author | Andrew Pinski <apinski@marvell.com> | 2020-01-25 05:20:38 +0000 |
---|---|---|
committer | Andrew Pinski <apinski@marvell.com> | 2020-01-25 03:38:31 -0800 |
commit | 53d172975f269138ba227f6d4560950265c36df8 (patch) | |
tree | 282c3ae0322b0003349caede92a0ab7cb29d6a4d | |
parent | 9c1179c339e050e2ce7c545f648b684d38dec69d (diff) | |
download | gcc-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.
-rw-r--r-- | gcc/testsuite/ChangeLog | 4 | ||||
-rw-r--r-- | gcc/testsuite/gcc.target/aarch64/vec_zeroextend.c | 8 |
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 } } */ |