diff options
20 files changed, 21 insertions, 19 deletions
diff --git a/llvm/lib/Target/X86/X86InstrAVX512.td b/llvm/lib/Target/X86/X86InstrAVX512.td index edc182d53f2..98390cea49d 100644 --- a/llvm/lib/Target/X86/X86InstrAVX512.td +++ b/llvm/lib/Target/X86/X86InstrAVX512.td @@ -6385,7 +6385,7 @@ def VMOVHLPSZrr : AVX512PSI<0x12, MRMSrcReg, (outs VR128X:$dst), multiclass avx512_mov_hilo_packed<bits<8> opc, string OpcodeStr, SDPatternOperator OpNode, X86VectorVTInfo _> { - let ExeDomain = _.ExeDomain in + let hasSideEffects = 0, mayLoad = 1, ExeDomain = _.ExeDomain in def rm : AVX512<opc, MRMSrcMem, (outs _.RC:$dst), (ins _.RC:$src1, f64mem:$src2), !strconcat(OpcodeStr, diff --git a/llvm/lib/Target/X86/X86InstrSSE.td b/llvm/lib/Target/X86/X86InstrSSE.td index 53008a3b6ac..d2a0412f528 100644 --- a/llvm/lib/Target/X86/X86InstrSSE.td +++ b/llvm/lib/Target/X86/X86InstrSSE.td @@ -630,6 +630,7 @@ let Predicates = [UseSSE1] in { multiclass sse12_mov_hilo_packed_base<bits<8>opc, SDNode psnode, SDNode pdnode, string base_opc, string asm_opr> { + let hasSideEffects = 0, mayLoad = 1 in def PSrm : PI<opc, MRMSrcMem, (outs VR128:$dst), (ins VR128:$src1, f64mem:$src2), !strconcat(base_opc, "s", asm_opr), @@ -639,6 +640,7 @@ multiclass sse12_mov_hilo_packed_base<bits<8>opc, SDNode psnode, SDNode pdnode, SSEPackedSingle>, PS, Sched<[SchedWriteFShuffle.XMM.Folded, ReadAfterLd]>; + let hasSideEffects = 0, mayLoad = 1 in def PDrm : PI<opc, MRMSrcMem, (outs VR128:$dst), (ins VR128:$src1, f64mem:$src2), !strconcat(base_opc, "d", asm_opr), 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) |

