This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
[PATCH, rs6000] Fix AIX expected builtin instruction counts
- From: Carl Love <cel at us dot ibm dot com>
- To: Segher Boessenkool <segher at kernel dot crashing dot org>, gcc-patches at gcc dot gnu dot org, David Edelsohn <dje dot gcc at gmail dot com>
- Cc: Bill Schmidt <wschmidt at linux dot vnet dot ibm dot com>, cel at us dot ibm dot com
- Date: Thu, 14 Jun 2018 08:12:31 -0700
- Subject: [PATCH, rs6000] Fix AIX expected builtin instruction counts
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 <cel@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