aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorliuhongt <hongtao.liu@intel.com>2023-08-01 12:48:21 +0800
committerliuhongt <hongtao.liu@intel.com>2023-08-01 14:00:40 +0800
commit01b0c36ba0c3bbe6ce0b0c77297e16d9531aac69 (patch)
tree0c2ec9c0ca94e3153eb0cb9912d9d9734dfb2c34
parente664ea960a200aac88ffc3c7fb9fe55ea4df2011 (diff)
downloadgcc-01b0c36ba0c3bbe6ce0b0c77297e16d9531aac69.zip
gcc-01b0c36ba0c3bbe6ce0b0c77297e16d9531aac69.tar.gz
gcc-01b0c36ba0c3bbe6ce0b0c77297e16d9531aac69.tar.bz2
Adjust testcase for more optimal codegen.
After b9d7140c80bd3c7355b8291bb46f0895dcd8c3cb is the first bad commit commit b9d7140c80bd3c7355b8291bb46f0895dcd8c3cb Author: Jan Hubicka <jh@suse.cz> Date: Fri Jul 28 09:16:09 2023 +0200 loop-split improvements, part 1 Now we have vpbroadcastd %ecx, %xmm0 vpaddd .LC3(%rip), %xmm0, %xmm0 vpextrd $3, %xmm0, %eax vmovddup %xmm3, %xmm0 vrndscalepd $9, %xmm0, %xmm0 vunpckhpd %xmm0, %xmm0, %xmm3 for vrndscalepd, no need to insert pxor since it reuses input register xmm0 to avoid partial sse dependece. gcc/testsuite/ChangeLog: * gcc.target/i386/pr87007-4.c: Adjust testcase. * gcc.target/i386/pr87007-5.c: Ditto.
-rw-r--r--gcc/testsuite/gcc.target/i386/pr87007-4.c6
-rw-r--r--gcc/testsuite/gcc.target/i386/pr87007-5.c6
2 files changed, 6 insertions, 6 deletions
diff --git a/gcc/testsuite/gcc.target/i386/pr87007-4.c b/gcc/testsuite/gcc.target/i386/pr87007-4.c
index e91bdcb..23b5c5d 100644
--- a/gcc/testsuite/gcc.target/i386/pr87007-4.c
+++ b/gcc/testsuite/gcc.target/i386/pr87007-4.c
@@ -1,6 +1,6 @@
/* { dg-do compile } */
-/* { dg-options "-Ofast -march=skylake-avx512 -mfpmath=sse" } */
-
+/* { dg-options "-O2 -march=skylake-avx512 -mfpmath=sse" } */
+/* Load of d2/d3 is hoisted out, vrndscalesd will reuse loades register to avoid partial dependence. */
#include<math.h>
@@ -15,4 +15,4 @@ foo (int n, int k)
d1 = ceil (d3);
}
-/* { dg-final { scan-assembler-times "vxorps\[^\n\r\]*xmm\[0-9\]" 1 } } */
+/* { dg-final { scan-assembler-times "vxorps\[^\n\r\]*xmm\[0-9\]" 0 } } */
diff --git a/gcc/testsuite/gcc.target/i386/pr87007-5.c b/gcc/testsuite/gcc.target/i386/pr87007-5.c
index 20d13cf6..b36e81c 100644
--- a/gcc/testsuite/gcc.target/i386/pr87007-5.c
+++ b/gcc/testsuite/gcc.target/i386/pr87007-5.c
@@ -1,6 +1,6 @@
/* { dg-do compile } */
-/* { dg-options "-Ofast -march=skylake-avx512 -mfpmath=sse" } */
-
+/* { dg-options "-Ofast -march=skylake-avx512 -mfpmath=sse -fno-tree-vectorize" } */
+/* Load of d2/d3 is hoisted out, vrndscalesd will reuse loades register to avoid partial dependence. */
#include<math.h>
@@ -15,4 +15,4 @@ foo (int n, int k)
d1 = sqrt (d3);
}
-/* { dg-final { scan-assembler-times "vxorps\[^\n\r\]*xmm\[0-9\]" 1 } } */
+/* { dg-final { scan-assembler-times "vxorps\[^\n\r\]*xmm\[0-9\]" 0 } } */