[gcc(refs/users/marxin/heads/marxin-gcc-benchmark-branch)] Fix gcc.target/aarch64/vec_zeroextend.c for big-endian

Martin Liska marxin@gcc.gnu.org
Mon Mar 30 10:28:14 GMT 2020


https://gcc.gnu.org/g:53d172975f269138ba227f6d4560950265c36df8

commit 53d172975f269138ba227f6d4560950265c36df8
Author: Andrew Pinski <apinski@marvell.com>
Date:   Sat Jan 25 05:20:38 2020 +0000

    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.

Diff:
---
 gcc/testsuite/ChangeLog                           | 4 ++++
 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 a8d517ad8a3..ecf0a664ed8 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 9c3971f036a..5a74cbc5aba 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 } } */


More information about the Gcc-cvs mailing list