diff options
author | liuhongt <hongtao.liu@intel.com> | 2023-08-01 12:48:21 +0800 |
---|---|---|
committer | liuhongt <hongtao.liu@intel.com> | 2023-08-01 14:00:40 +0800 |
commit | 01b0c36ba0c3bbe6ce0b0c77297e16d9531aac69 (patch) | |
tree | 0c2ec9c0ca94e3153eb0cb9912d9d9734dfb2c34 | |
parent | e664ea960a200aac88ffc3c7fb9fe55ea4df2011 (diff) | |
download | gcc-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.c | 6 | ||||
-rw-r--r-- | gcc/testsuite/gcc.target/i386/pr87007-5.c | 6 |
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 } } */ |