GCC Maintainers:

The following patch fixes the instruction count tests for various
builtin testcases that fail on AIX.  The expected instruction counts
differ in a few cases between Linux and AIX.  An AIX instruction target
was added to the instruction count tests that differ on AIX and Linux.
Additionally, the patch contains a fix for a count that is wrong in
general. 

The patch has been tested on 

    powerpc64le-unknown-linux-gnu (Power 8 LE)  
    powerpc64-unknown-linux-gnu (Power 8 BE)
    AIX 7200-00-01-1543 (Power 8 BE)

With no regressions.

Please let me know if the patch looks OK for GCC mainline. 

                         Carl Love
----------------------------------------------------------------------

gcc/testsuite/ChangeLog:

2018-06-12  Carl Love  <c...@us.ibm.com>

        * gcc.target/powerpc/altivec-7.c: Add qualifiers for counts on AIX
        versus Linux.
        * gcc.target/powerpc/builtins-1.c: Add qualifiers for counts on AIX
        versus Linux.
        * gcc.target/powerpc/builtins-4.c: Add qualifiers for counts on AIX
        versus Linux.
        * gcc.target/powerpc/vsx-vector-6.p7.c: Fix xxlnor BE expected count.
---
 gcc/testsuite/gcc.target/powerpc/altivec-7.c       | 17 +++++++++++------
 gcc/testsuite/gcc.target/powerpc/builtins-1.c      | 11 +++++++----
 gcc/testsuite/gcc.target/powerpc/builtins-4.c      |  7 ++++---
 gcc/testsuite/gcc.target/powerpc/vsx-vector-6.p7.c |  2 +-
 4 files changed, 23 insertions(+), 14 deletions(-)

diff --git a/gcc/testsuite/gcc.target/powerpc/altivec-7.c 
b/gcc/testsuite/gcc.target/powerpc/altivec-7.c
index b61092c..b691d20 100644
--- a/gcc/testsuite/gcc.target/powerpc/altivec-7.c
+++ b/gcc/testsuite/gcc.target/powerpc/altivec-7.c
@@ -85,17 +85,22 @@ int main ()
 /* { dg-final { scan-assembler-times "vpkpx" 2 } } */
 /* { dg-final { scan-assembler-times "vmulesb" 1 } } */
 /* { dg-final { scan-assembler-times "vmulosb" 1 } } */
-/* { dg-final { scan-assembler-times {\mlxvd2x\M|\mlxv\M} 42 { target le } } } 
*/
-/* { dg-final { scan-assembler-times {\mlxvd2x\M|\mlxv\M} 4 { target be } } } 
*/
+/* { dg-final { scan-assembler-times {\mlxvd2x\M|\mlxv\M} 42 { target { le && 
!powerpc*-*-aix* } } } } */
+/* { dg-final { scan-assembler-times {\mlxvd2x\M|\mlxv\M} 4 { target { be && 
!powerpc*-*-aix* } } } } */
+/* { dg-final { scan-assembler-times {\mlxvd2x\M|\mlxv\M} 0 { target { 
powerpc*-*-aix* } } } } */
 /* { dg-final { scan-assembler-times "lvewx" 2 } } */
 /* { dg-final { scan-assembler-times "lvxl" 1 } } */
 /* { dg-final { scan-assembler-times "vupklsh" 2 } } */
 /* { dg-final { scan-assembler-times "vupkhsh" 2 } } */
-/* { dg-final { scan-assembler-times "xxlnor" 4 } } */
-/* { dg-final { scan-assembler-times "xxland" 4 } } */
-/* { dg-final { scan-assembler-times "xxlxor" 5 } } */
+/* { dg-final { scan-assembler-times "xxlnor" 0 { target {  powerpc*-*-aix* } 
} } } */
+/* { dg-final { scan-assembler-times "xxlnor" 4 { target { !powerpc*-*-aix* } 
} } } */
+/* { dg-final { scan-assembler-times "xxland" 0 { target {  powerpc*-*-aix* } 
} } } */
+/* { dg-final { scan-assembler-times "xxland" 4 { target { !powerpc*-*-aix* } 
} } } */
+/* { dg-final { scan-assembler-times "xxlxor" 0 { target {  powerpc*-*-aix* } 
} } } */
+/* { dg-final { scan-assembler-times "xxlxor" 5 { target { !powerpc*-*-aix* } 
} } } */
 /* { dg-final { scan-assembler-times "xxlandc" 0 } } */
-/* { dg-final { scan-assembler-times "lvx" 1 } } */
+/* { dg-final { scan-assembler-times "lvx" 1  { target { !powerpc*-*-aix* } } 
} } */
+/* { dg-final { scan-assembler-times "lvx" 43 { target {  powerpc*-*-aix* } } 
} } */
 /* { dg-final { scan-assembler-times "vmsumubm" 1 } } */
 /* { dg-final { scan-assembler-times "vupklpx" 1 } } */
 /* { dg-final { scan-assembler-times "vupklsx" 0 } } */
diff --git a/gcc/testsuite/gcc.target/powerpc/builtins-1.c 
b/gcc/testsuite/gcc.target/powerpc/builtins-1.c
index 45727b9..94ac95e 100644
--- a/gcc/testsuite/gcc.target/powerpc/builtins-1.c
+++ b/gcc/testsuite/gcc.target/powerpc/builtins-1.c
@@ -333,8 +333,9 @@ int main ()
 /* { dg-final { scan-assembler-times "xxmrglw" 8 } } */
 /* { dg-final { scan-assembler-times "vmrglh" 8 } } */
 /* { dg-final { scan-assembler-times "xxlnor" 6 } } */
-/* { dg-final { scan-assembler-times "xxlor" 11 { target { ilp32 } } } } */
-/* { dg-final { scan-assembler-times "xxlor" 7  { target { lp64 } } } } */
+/* { dg-final { scan-assembler-times "xxlor" 11 { target { ilp32 && 
!powerpc*-*-aix* } } } } */
+/* { dg-final { scan-assembler-times "xxlor" 7  { target { lp64 && 
!powerpc*-*-aix* } } } } */
+/* { dg-final { scan-assembler-times "xxlor" 7  { target { powerpc*-*-aix* } } 
} } */
 /* { dg-final { scan-assembler-times "vpksdus" 2 } } */
 /* { dg-final { scan-assembler-times "vperm" 4 } } */
 /* { dg-final { scan-assembler-times "xvrdpi" 2 } } */
@@ -343,8 +344,10 @@ int main ()
 /* { dg-final { scan-assembler-times "divd" 8  { target lp64 } } } */
 /* { dg-final { scan-assembler-times "divdu" 2  { target lp64 } } } */
 /* { dg-final { scan-assembler-times "mulld" 4  { target lp64 } } } */
-/* { dg-final { scan-assembler-times "bl __divdi3" 3  { target ilp32 } } } */
-/* { dg-final { scan-assembler-times "bl __udivdi3" 3  { target ilp32 } } } */
+/* { dg-final { scan-assembler-times "bl __divdi3" 3  { target ilp32 && 
!powerpc*-*-\
+aix* } } } */
+/* { dg-final { scan-assembler-times "bl __udivdi3" 3  { target ilp32 && 
!powerpc*-*-\
+aix* } } } */
 /* { dg-final { scan-assembler-times "mullw" 12  { target ilp32 } } } */
 /* { dg-final { scan-assembler-times "mulhwu" 4  { target ilp32 } } } */
 /* { dg-final { scan-assembler-times "xxmrgld" 0 } } */
diff --git a/gcc/testsuite/gcc.target/powerpc/builtins-4.c 
b/gcc/testsuite/gcc.target/powerpc/builtins-4.c
index c5249fe..8cc972d 100644
--- a/gcc/testsuite/gcc.target/powerpc/builtins-4.c
+++ b/gcc/testsuite/gcc.target/powerpc/builtins-4.c
@@ -162,6 +162,7 @@ test_sll_vuill_vuill_vuc (vector unsigned long long int x,
 /* { dg-final { scan-assembler-times "xvnabsdp"  1 } } */
 /* { dg-final { scan-assembler-times "vslo"      4 } } */
 /* { dg-final { scan-assembler-times "xxlor"     30 } } */
-/* { dg-final { scan-assembler-times "vsl"     45 { target le } } } */
-/* { dg-final { scan-assembler-times "vsl"     45 { target { be && ilp32 } } } 
} */
-/* { dg-final { scan-assembler-times "vsl"     59 { target { be && lp64  } } } 
} */
+/* { dg-final { scan-assembler-times "vsl"     45 { target { le && 
!powerpc*-*-aix* } } } } */
+/* { dg-final { scan-assembler-times "vsl"     45 { target { { be && ilp32 } 
&& !powerpc*-*-aix* } } } } */
+/* { dg-final { scan-assembler-times "vsl"     59 { target { { be && lp64  } 
&& !powerpc*-*-aix* } } } } */
+/* { dg-final { scan-assembler-times "vsl"     80 { target { powerpc*-*-aix* } 
} } } */
diff --git a/gcc/testsuite/gcc.target/powerpc/vsx-vector-6.p7.c 
b/gcc/testsuite/gcc.target/powerpc/vsx-vector-6.p7.c
index 66ec064..ef7eb1a 100644
--- a/gcc/testsuite/gcc.target/powerpc/vsx-vector-6.p7.c
+++ b/gcc/testsuite/gcc.target/powerpc/vsx-vector-6.p7.c
@@ -10,7 +10,7 @@
 /* { dg-final { scan-assembler-times "xvabsdp" 1 } } */
 /* { dg-final { scan-assembler-times "xvadddp" 1 } } */
 /* { dg-final { scan-assembler-times "xxlnor" 8 { target le } } } */
-/* { dg-final { scan-assembler-times "xxlnor" 8 { target be } } } */
+/* { dg-final { scan-assembler-times "xxlnor" 7 { target be } } } */
 /* { dg-final { scan-assembler-times "xvcmpeqdp" 5 { target le } } } */
 /* { dg-final { scan-assembler-times "xvcmpeqdp" 6 { target be }} } */
 /* { dg-final { scan-assembler-times "xvcmpeqdp." 5 { target le } } } */
-- 
2.7.4

Reply via email to