diff options
| author | Andrea Di Biagio <Andrea_DiBiagio@sn.scee.net> | 2018-07-11 15:27:50 +0000 |
|---|---|---|
| committer | Andrea Di Biagio <Andrea_DiBiagio@sn.scee.net> | 2018-07-11 15:27:50 +0000 |
| commit | 483db141e395c52b6c803cbef82728ef5570f18f (patch) | |
| tree | b41c790068b7fb31a851b3cdf989aad0dd6036f1 /llvm/test | |
| parent | 36883d32dd672f11551e44ef8e2592f0566256e0 (diff) | |
| download | bcm5719-llvm-483db141e395c52b6c803cbef82728ef5570f18f.tar.gz bcm5719-llvm-483db141e395c52b6c803cbef82728ef5570f18f.zip | |
[X86] Fix MayLoad/HasSideEffect flag for (V)MOVLPSrm instructions.
Before revision 336728, the "mayLoad" flag for instruction (V)MOVLPSrm was
inferred directly from the "default" pattern associated with the instruction
definition.
r336728 removed special node X86Movlps, and all the patterns associated to it.
Now instruction (V)MOVLPSrm doesn't have a pattern associated to it, and the
'mayLoad/hasSideEffects' flags are left unset.
When the instruction info is emitted by tablegen, method
CodeGenDAGPatterns::InferInstructionFlags() sees that (V)MOVLPSrm doesn't have a
pattern, and flags are undefined. So, it conservatively sets the
"hasSideEffects" flag for it.
As a consequence, we were losing the 'mayLoad' flag, and we were gaining a
'hasSideEffect' flag in its place.
This patch fixes the issue (originally reported by Michael Holmen).
The mca tests show the differences in the instruction info flags. Instructions
that were affected by this problem were: MOVLPSrm/VMOVLPSrm/VMOVLPSZ128rm.
Differential Revision: https://reviews.llvm.org/D49182
llvm-svn: 336818
Diffstat (limited to 'llvm/test')
18 files changed, 18 insertions, 18 deletions
diff --git a/llvm/test/tools/llvm-mca/X86/Atom/resources-sse1.s b/llvm/test/tools/llvm-mca/X86/Atom/resources-sse1.s index e5fa0285272..b9ec7c9cbe8 100644 --- a/llvm/test/tools/llvm-mca/X86/Atom/resources-sse1.s +++ b/llvm/test/tools/llvm-mca/X86/Atom/resources-sse1.s @@ -248,7 +248,7 @@ xorps (%rax), %xmm2 # CHECK-NEXT: 1 1 1.00 * movhps %xmm0, (%rax) # CHECK-NEXT: 1 1 1.00 * movhps (%rax), %xmm2 # CHECK-NEXT: 1 1 1.00 * movlps %xmm0, (%rax) -# CHECK-NEXT: 1 1 1.00 U movlps (%rax), %xmm2 +# CHECK-NEXT: 1 1 1.00 * movlps (%rax), %xmm2 # CHECK-NEXT: 1 3 3.00 movmskps %xmm0, %ecx # CHECK-NEXT: 1 1 1.00 * movntps %xmm0, (%rax) # CHECK-NEXT: 1 1 1.00 * * U movntq %mm0, (%rax) diff --git a/llvm/test/tools/llvm-mca/X86/Broadwell/resources-avx1.s b/llvm/test/tools/llvm-mca/X86/Broadwell/resources-avx1.s index 0b4be793bdb..aa3a1736c27 100644 --- a/llvm/test/tools/llvm-mca/X86/Broadwell/resources-avx1.s +++ b/llvm/test/tools/llvm-mca/X86/Broadwell/resources-avx1.s @@ -1281,7 +1281,7 @@ vzeroupper # CHECK-NEXT: 2 1 1.00 * vmovlpd %xmm0, (%rax) # CHECK-NEXT: 2 6 1.00 * vmovlpd (%rax), %xmm1, %xmm2 # CHECK-NEXT: 2 1 1.00 * vmovlps %xmm0, (%rax) -# CHECK-NEXT: 2 6 1.00 U vmovlps (%rax), %xmm1, %xmm2 +# CHECK-NEXT: 2 6 1.00 * vmovlps (%rax), %xmm1, %xmm2 # CHECK-NEXT: 1 3 1.00 vmovmskpd %xmm0, %ecx # CHECK-NEXT: 1 3 1.00 vmovmskpd %ymm0, %ecx # CHECK-NEXT: 1 3 1.00 vmovmskps %xmm0, %ecx diff --git a/llvm/test/tools/llvm-mca/X86/Broadwell/resources-sse1.s b/llvm/test/tools/llvm-mca/X86/Broadwell/resources-sse1.s index a306d2d7a6b..c0700d19d01 100644 --- a/llvm/test/tools/llvm-mca/X86/Broadwell/resources-sse1.s +++ b/llvm/test/tools/llvm-mca/X86/Broadwell/resources-sse1.s @@ -248,7 +248,7 @@ xorps (%rax), %xmm2 # CHECK-NEXT: 2 1 1.00 * movhps %xmm0, (%rax) # CHECK-NEXT: 2 6 1.00 * movhps (%rax), %xmm2 # CHECK-NEXT: 2 1 1.00 * movlps %xmm0, (%rax) -# CHECK-NEXT: 2 6 1.00 U movlps (%rax), %xmm2 +# CHECK-NEXT: 2 6 1.00 * movlps (%rax), %xmm2 # CHECK-NEXT: 1 3 1.00 movmskps %xmm0, %ecx # CHECK-NEXT: 2 1 1.00 * movntps %xmm0, (%rax) # CHECK-NEXT: 2 1 1.00 * * U movntq %mm0, (%rax) diff --git a/llvm/test/tools/llvm-mca/X86/BtVer2/resources-avx1.s b/llvm/test/tools/llvm-mca/X86/BtVer2/resources-avx1.s index e06ac58f95f..c475e1692fb 100644 --- a/llvm/test/tools/llvm-mca/X86/BtVer2/resources-avx1.s +++ b/llvm/test/tools/llvm-mca/X86/BtVer2/resources-avx1.s @@ -1281,7 +1281,7 @@ vzeroupper # CHECK-NEXT: 1 2 1.00 * vmovlpd %xmm0, (%rax) # CHECK-NEXT: 1 6 1.00 * vmovlpd (%rax), %xmm1, %xmm2 # CHECK-NEXT: 1 2 1.00 * vmovlps %xmm0, (%rax) -# CHECK-NEXT: 1 6 1.00 U vmovlps (%rax), %xmm1, %xmm2 +# CHECK-NEXT: 1 6 1.00 * vmovlps (%rax), %xmm1, %xmm2 # CHECK-NEXT: 1 3 1.00 vmovmskpd %xmm0, %ecx # CHECK-NEXT: 1 3 1.00 vmovmskpd %ymm0, %ecx # CHECK-NEXT: 1 3 1.00 vmovmskps %xmm0, %ecx diff --git a/llvm/test/tools/llvm-mca/X86/BtVer2/resources-sse1.s b/llvm/test/tools/llvm-mca/X86/BtVer2/resources-sse1.s index 3a4c41a3b77..c2fac8cf8ec 100644 --- a/llvm/test/tools/llvm-mca/X86/BtVer2/resources-sse1.s +++ b/llvm/test/tools/llvm-mca/X86/BtVer2/resources-sse1.s @@ -248,7 +248,7 @@ xorps (%rax), %xmm2 # CHECK-NEXT: 1 2 1.00 * movhps %xmm0, (%rax) # CHECK-NEXT: 1 6 1.00 * movhps (%rax), %xmm2 # CHECK-NEXT: 1 2 1.00 * movlps %xmm0, (%rax) -# CHECK-NEXT: 1 6 1.00 U movlps (%rax), %xmm2 +# CHECK-NEXT: 1 6 1.00 * movlps (%rax), %xmm2 # CHECK-NEXT: 1 3 1.00 movmskps %xmm0, %ecx # CHECK-NEXT: 1 3 1.00 * movntps %xmm0, (%rax) # CHECK-NEXT: 1 2 1.00 * * U movntq %mm0, (%rax) diff --git a/llvm/test/tools/llvm-mca/X86/Generic/resources-avx1.s b/llvm/test/tools/llvm-mca/X86/Generic/resources-avx1.s index 2a551e64e3a..a12ca5acf4a 100644 --- a/llvm/test/tools/llvm-mca/X86/Generic/resources-avx1.s +++ b/llvm/test/tools/llvm-mca/X86/Generic/resources-avx1.s @@ -1281,7 +1281,7 @@ vzeroupper # CHECK-NEXT: 1 1 1.00 * vmovlpd %xmm0, (%rax) # CHECK-NEXT: 2 7 1.00 * vmovlpd (%rax), %xmm1, %xmm2 # CHECK-NEXT: 1 1 1.00 * vmovlps %xmm0, (%rax) -# CHECK-NEXT: 2 7 1.00 U vmovlps (%rax), %xmm1, %xmm2 +# CHECK-NEXT: 2 7 1.00 * vmovlps (%rax), %xmm1, %xmm2 # CHECK-NEXT: 1 2 1.00 vmovmskpd %xmm0, %ecx # CHECK-NEXT: 1 2 1.00 vmovmskpd %ymm0, %ecx # CHECK-NEXT: 1 2 1.00 vmovmskps %xmm0, %ecx diff --git a/llvm/test/tools/llvm-mca/X86/Generic/resources-sse1.s b/llvm/test/tools/llvm-mca/X86/Generic/resources-sse1.s index 2a694a8fbde..cc4d6ed0b43 100644 --- a/llvm/test/tools/llvm-mca/X86/Generic/resources-sse1.s +++ b/llvm/test/tools/llvm-mca/X86/Generic/resources-sse1.s @@ -248,7 +248,7 @@ xorps (%rax), %xmm2 # CHECK-NEXT: 1 1 1.00 * movhps %xmm0, (%rax) # CHECK-NEXT: 2 7 1.00 * movhps (%rax), %xmm2 # CHECK-NEXT: 1 1 1.00 * movlps %xmm0, (%rax) -# CHECK-NEXT: 2 7 1.00 U movlps (%rax), %xmm2 +# CHECK-NEXT: 2 7 1.00 * movlps (%rax), %xmm2 # CHECK-NEXT: 1 2 1.00 movmskps %xmm0, %ecx # CHECK-NEXT: 1 1 1.00 * movntps %xmm0, (%rax) # CHECK-NEXT: 1 1 1.00 * * U movntq %mm0, (%rax) diff --git a/llvm/test/tools/llvm-mca/X86/Haswell/resources-avx1.s b/llvm/test/tools/llvm-mca/X86/Haswell/resources-avx1.s index feb42960b98..3b16d35aa0b 100644 --- a/llvm/test/tools/llvm-mca/X86/Haswell/resources-avx1.s +++ b/llvm/test/tools/llvm-mca/X86/Haswell/resources-avx1.s @@ -1281,7 +1281,7 @@ vzeroupper # CHECK-NEXT: 2 1 1.00 * vmovlpd %xmm0, (%rax) # CHECK-NEXT: 2 6 1.00 * vmovlpd (%rax), %xmm1, %xmm2 # CHECK-NEXT: 2 1 1.00 * vmovlps %xmm0, (%rax) -# CHECK-NEXT: 2 6 1.00 U vmovlps (%rax), %xmm1, %xmm2 +# CHECK-NEXT: 2 6 1.00 * vmovlps (%rax), %xmm1, %xmm2 # CHECK-NEXT: 1 3 1.00 vmovmskpd %xmm0, %ecx # CHECK-NEXT: 1 3 1.00 vmovmskpd %ymm0, %ecx # CHECK-NEXT: 1 3 1.00 vmovmskps %xmm0, %ecx diff --git a/llvm/test/tools/llvm-mca/X86/Haswell/resources-sse1.s b/llvm/test/tools/llvm-mca/X86/Haswell/resources-sse1.s index b3985b4127b..de54d76c45a 100644 --- a/llvm/test/tools/llvm-mca/X86/Haswell/resources-sse1.s +++ b/llvm/test/tools/llvm-mca/X86/Haswell/resources-sse1.s @@ -248,7 +248,7 @@ xorps (%rax), %xmm2 # CHECK-NEXT: 2 1 1.00 * movhps %xmm0, (%rax) # CHECK-NEXT: 2 6 1.00 * movhps (%rax), %xmm2 # CHECK-NEXT: 2 1 1.00 * movlps %xmm0, (%rax) -# CHECK-NEXT: 2 6 1.00 U movlps (%rax), %xmm2 +# CHECK-NEXT: 2 6 1.00 * movlps (%rax), %xmm2 # CHECK-NEXT: 1 3 1.00 movmskps %xmm0, %ecx # CHECK-NEXT: 2 1 1.00 * movntps %xmm0, (%rax) # CHECK-NEXT: 2 1 1.00 * * U movntq %mm0, (%rax) diff --git a/llvm/test/tools/llvm-mca/X86/SLM/resources-sse1.s b/llvm/test/tools/llvm-mca/X86/SLM/resources-sse1.s index 1b966a1c846..18112741aa9 100644 --- a/llvm/test/tools/llvm-mca/X86/SLM/resources-sse1.s +++ b/llvm/test/tools/llvm-mca/X86/SLM/resources-sse1.s @@ -248,7 +248,7 @@ xorps (%rax), %xmm2 # CHECK-NEXT: 1 1 1.00 * movhps %xmm0, (%rax) # CHECK-NEXT: 1 4 1.00 * movhps (%rax), %xmm2 # CHECK-NEXT: 1 1 1.00 * movlps %xmm0, (%rax) -# CHECK-NEXT: 1 4 1.00 U movlps (%rax), %xmm2 +# CHECK-NEXT: 1 4 1.00 * movlps (%rax), %xmm2 # CHECK-NEXT: 1 4 1.00 movmskps %xmm0, %ecx # CHECK-NEXT: 1 1 1.00 * movntps %xmm0, (%rax) # CHECK-NEXT: 1 1 1.00 * * U movntq %mm0, (%rax) diff --git a/llvm/test/tools/llvm-mca/X86/SandyBridge/resources-avx1.s b/llvm/test/tools/llvm-mca/X86/SandyBridge/resources-avx1.s index 6f108af4fc6..9b2d0199bf5 100644 --- a/llvm/test/tools/llvm-mca/X86/SandyBridge/resources-avx1.s +++ b/llvm/test/tools/llvm-mca/X86/SandyBridge/resources-avx1.s @@ -1281,7 +1281,7 @@ vzeroupper # CHECK-NEXT: 1 1 1.00 * vmovlpd %xmm0, (%rax) # CHECK-NEXT: 2 7 1.00 * vmovlpd (%rax), %xmm1, %xmm2 # CHECK-NEXT: 1 1 1.00 * vmovlps %xmm0, (%rax) -# CHECK-NEXT: 2 7 1.00 U vmovlps (%rax), %xmm1, %xmm2 +# CHECK-NEXT: 2 7 1.00 * vmovlps (%rax), %xmm1, %xmm2 # CHECK-NEXT: 1 2 1.00 vmovmskpd %xmm0, %ecx # CHECK-NEXT: 1 2 1.00 vmovmskpd %ymm0, %ecx # CHECK-NEXT: 1 2 1.00 vmovmskps %xmm0, %ecx diff --git a/llvm/test/tools/llvm-mca/X86/SandyBridge/resources-sse1.s b/llvm/test/tools/llvm-mca/X86/SandyBridge/resources-sse1.s index 61165e6b62f..f6f7e215534 100644 --- a/llvm/test/tools/llvm-mca/X86/SandyBridge/resources-sse1.s +++ b/llvm/test/tools/llvm-mca/X86/SandyBridge/resources-sse1.s @@ -248,7 +248,7 @@ xorps (%rax), %xmm2 # CHECK-NEXT: 1 1 1.00 * movhps %xmm0, (%rax) # CHECK-NEXT: 2 7 1.00 * movhps (%rax), %xmm2 # CHECK-NEXT: 1 1 1.00 * movlps %xmm0, (%rax) -# CHECK-NEXT: 2 7 1.00 U movlps (%rax), %xmm2 +# CHECK-NEXT: 2 7 1.00 * movlps (%rax), %xmm2 # CHECK-NEXT: 1 2 1.00 movmskps %xmm0, %ecx # CHECK-NEXT: 1 1 1.00 * movntps %xmm0, (%rax) # CHECK-NEXT: 1 1 1.00 * * U movntq %mm0, (%rax) diff --git a/llvm/test/tools/llvm-mca/X86/SkylakeClient/resources-avx1.s b/llvm/test/tools/llvm-mca/X86/SkylakeClient/resources-avx1.s index 8dcdb400c64..f93ef08a3c8 100644 --- a/llvm/test/tools/llvm-mca/X86/SkylakeClient/resources-avx1.s +++ b/llvm/test/tools/llvm-mca/X86/SkylakeClient/resources-avx1.s @@ -1281,7 +1281,7 @@ vzeroupper # CHECK-NEXT: 2 1 1.00 * vmovlpd %xmm0, (%rax) # CHECK-NEXT: 2 6 1.00 * vmovlpd (%rax), %xmm1, %xmm2 # CHECK-NEXT: 2 1 1.00 * vmovlps %xmm0, (%rax) -# CHECK-NEXT: 2 6 1.00 U vmovlps (%rax), %xmm1, %xmm2 +# CHECK-NEXT: 2 6 1.00 * vmovlps (%rax), %xmm1, %xmm2 # CHECK-NEXT: 1 2 1.00 vmovmskpd %xmm0, %ecx # CHECK-NEXT: 1 2 1.00 vmovmskpd %ymm0, %ecx # CHECK-NEXT: 1 2 1.00 vmovmskps %xmm0, %ecx diff --git a/llvm/test/tools/llvm-mca/X86/SkylakeClient/resources-sse1.s b/llvm/test/tools/llvm-mca/X86/SkylakeClient/resources-sse1.s index 23d5cf37ba5..4f286b0918c 100644 --- a/llvm/test/tools/llvm-mca/X86/SkylakeClient/resources-sse1.s +++ b/llvm/test/tools/llvm-mca/X86/SkylakeClient/resources-sse1.s @@ -248,7 +248,7 @@ xorps (%rax), %xmm2 # CHECK-NEXT: 2 1 1.00 * movhps %xmm0, (%rax) # CHECK-NEXT: 2 6 1.00 * movhps (%rax), %xmm2 # CHECK-NEXT: 2 1 1.00 * movlps %xmm0, (%rax) -# CHECK-NEXT: 2 6 1.00 U movlps (%rax), %xmm2 +# CHECK-NEXT: 2 6 1.00 * movlps (%rax), %xmm2 # CHECK-NEXT: 1 2 1.00 movmskps %xmm0, %ecx # CHECK-NEXT: 2 1 1.00 * movntps %xmm0, (%rax) # CHECK-NEXT: 2 1 1.00 * * U movntq %mm0, (%rax) diff --git a/llvm/test/tools/llvm-mca/X86/SkylakeServer/resources-avx1.s b/llvm/test/tools/llvm-mca/X86/SkylakeServer/resources-avx1.s index 574194bef4e..f62c1fcd420 100644 --- a/llvm/test/tools/llvm-mca/X86/SkylakeServer/resources-avx1.s +++ b/llvm/test/tools/llvm-mca/X86/SkylakeServer/resources-avx1.s @@ -1281,7 +1281,7 @@ vzeroupper # CHECK-NEXT: 2 1 1.00 * vmovlpd %xmm0, (%rax) # CHECK-NEXT: 2 6 1.00 * vmovlpd (%rax), %xmm1, %xmm2 # CHECK-NEXT: 2 1 1.00 * vmovlps %xmm0, (%rax) -# CHECK-NEXT: 2 6 1.00 U vmovlps (%rax), %xmm1, %xmm2 +# CHECK-NEXT: 2 6 1.00 * vmovlps (%rax), %xmm1, %xmm2 # CHECK-NEXT: 1 2 1.00 vmovmskpd %xmm0, %ecx # CHECK-NEXT: 1 2 1.00 vmovmskpd %ymm0, %ecx # CHECK-NEXT: 1 2 1.00 vmovmskps %xmm0, %ecx diff --git a/llvm/test/tools/llvm-mca/X86/SkylakeServer/resources-sse1.s b/llvm/test/tools/llvm-mca/X86/SkylakeServer/resources-sse1.s index 2329735e73e..3200671e8f8 100644 --- a/llvm/test/tools/llvm-mca/X86/SkylakeServer/resources-sse1.s +++ b/llvm/test/tools/llvm-mca/X86/SkylakeServer/resources-sse1.s @@ -248,7 +248,7 @@ xorps (%rax), %xmm2 # CHECK-NEXT: 2 1 1.00 * movhps %xmm0, (%rax) # CHECK-NEXT: 2 6 1.00 * movhps (%rax), %xmm2 # CHECK-NEXT: 2 1 1.00 * movlps %xmm0, (%rax) -# CHECK-NEXT: 2 6 1.00 U movlps (%rax), %xmm2 +# CHECK-NEXT: 2 6 1.00 * movlps (%rax), %xmm2 # CHECK-NEXT: 1 2 1.00 movmskps %xmm0, %ecx # CHECK-NEXT: 2 1 1.00 * movntps %xmm0, (%rax) # CHECK-NEXT: 2 1 1.00 * * U movntq %mm0, (%rax) diff --git a/llvm/test/tools/llvm-mca/X86/Znver1/resources-avx1.s b/llvm/test/tools/llvm-mca/X86/Znver1/resources-avx1.s index ee951c83796..e9a93998a97 100644 --- a/llvm/test/tools/llvm-mca/X86/Znver1/resources-avx1.s +++ b/llvm/test/tools/llvm-mca/X86/Znver1/resources-avx1.s @@ -1281,7 +1281,7 @@ vzeroupper # CHECK-NEXT: 1 1 0.50 * vmovlpd %xmm0, (%rax) # CHECK-NEXT: 1 8 0.50 * vmovlpd (%rax), %xmm1, %xmm2 # CHECK-NEXT: 1 1 0.50 * vmovlps %xmm0, (%rax) -# CHECK-NEXT: 1 8 0.50 U vmovlps (%rax), %xmm1, %xmm2 +# CHECK-NEXT: 1 8 0.50 * vmovlps (%rax), %xmm1, %xmm2 # CHECK-NEXT: 1 1 1.00 vmovmskpd %xmm0, %ecx # CHECK-NEXT: 1 1 1.00 vmovmskpd %ymm0, %ecx # CHECK-NEXT: 1 1 1.00 vmovmskps %xmm0, %ecx diff --git a/llvm/test/tools/llvm-mca/X86/Znver1/resources-sse1.s b/llvm/test/tools/llvm-mca/X86/Znver1/resources-sse1.s index e0066f9ed41..d861e9d3857 100644 --- a/llvm/test/tools/llvm-mca/X86/Znver1/resources-sse1.s +++ b/llvm/test/tools/llvm-mca/X86/Znver1/resources-sse1.s @@ -248,7 +248,7 @@ xorps (%rax), %xmm2 # CHECK-NEXT: 1 1 0.50 * movhps %xmm0, (%rax) # CHECK-NEXT: 1 8 0.50 * movhps (%rax), %xmm2 # CHECK-NEXT: 1 1 0.50 * movlps %xmm0, (%rax) -# CHECK-NEXT: 1 8 0.50 U movlps (%rax), %xmm2 +# CHECK-NEXT: 1 8 0.50 * movlps (%rax), %xmm2 # CHECK-NEXT: 1 1 1.00 movmskps %xmm0, %ecx # CHECK-NEXT: 1 1 0.50 * movntps %xmm0, (%rax) # CHECK-NEXT: 1 1 0.50 * * U movntq %mm0, (%rax) |

