[llvm] r332714 - [X86][SSE] Ensure float load/stores use the WriteFLoad/WriteFStore scheduler classes
Simon Pilgrim via llvm-commits
llvm-commits at lists.llvm.org
Fri May 18 06:13:59 PDT 2018
Author: rksimon
Date: Fri May 18 06:13:59 2018
New Revision: 332714
URL: http://llvm.org/viewvc/llvm-project?rev=332714&view=rev
Log:
[X86][SSE] Ensure float load/stores use the WriteFLoad/WriteFStore scheduler classes
Retag some instructions that were missed when we split off vector load/store/moves - MOVSS/MOVSD/MOVHPD/MOVHPD/MOVLPD/MOVLPS etc.
Fixes BtVer2/SLM which have different behaviours for GPR stores.
Modified:
llvm/trunk/lib/Target/X86/X86InstrAVX512.td
llvm/trunk/lib/Target/X86/X86InstrSSE.td
llvm/trunk/test/tools/llvm-mca/X86/BtVer2/resources-avx1.s
llvm/trunk/test/tools/llvm-mca/X86/BtVer2/resources-sse1.s
llvm/trunk/test/tools/llvm-mca/X86/BtVer2/resources-sse2.s
llvm/trunk/test/tools/llvm-mca/X86/SLM/resources-sse1.s
llvm/trunk/test/tools/llvm-mca/X86/SLM/resources-sse2.s
Modified: llvm/trunk/lib/Target/X86/X86InstrAVX512.td
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/X86/X86InstrAVX512.td?rev=332714&r1=332713&r2=332714&view=diff
==============================================================================
--- llvm/trunk/lib/Target/X86/X86InstrAVX512.td (original)
+++ llvm/trunk/lib/Target/X86/X86InstrAVX512.td Fri May 18 06:13:59 2018
@@ -3409,26 +3409,26 @@ defm VMOVDQU64 : avx512_load_vl<0x6F, "v
// to load or store from a ZMM register instead. These are converted in
// expandPostRAPseudos.
let isReMaterializable = 1, canFoldAsLoad = 1,
- isPseudo = 1, SchedRW = [WriteLoad], mayLoad = 1, hasSideEffects = 0 in {
+ isPseudo = 1, mayLoad = 1, hasSideEffects = 0 in {
def VMOVAPSZ128rm_NOVLX : I<0, Pseudo, (outs VR128X:$dst), (ins f128mem:$src),
- "", []>;
+ "", []>, Sched<[WriteFLoadX]>;
def VMOVAPSZ256rm_NOVLX : I<0, Pseudo, (outs VR256X:$dst), (ins f256mem:$src),
- "", []>;
+ "", []>, Sched<[WriteFLoadY]>;
def VMOVUPSZ128rm_NOVLX : I<0, Pseudo, (outs VR128X:$dst), (ins f128mem:$src),
- "", []>;
+ "", []>, Sched<[WriteFLoadX]>;
def VMOVUPSZ256rm_NOVLX : I<0, Pseudo, (outs VR256X:$dst), (ins f256mem:$src),
- "", []>;
+ "", []>, Sched<[WriteFLoadY]>;
}
-let isPseudo = 1, SchedRW = [WriteStore], mayStore = 1, hasSideEffects = 0 in {
+let isPseudo = 1, mayStore = 1, hasSideEffects = 0 in {
def VMOVAPSZ128mr_NOVLX : I<0, Pseudo, (outs), (ins f128mem:$dst, VR128X:$src),
- "", []>;
+ "", []>, Sched<[WriteFStoreX]>;
def VMOVAPSZ256mr_NOVLX : I<0, Pseudo, (outs), (ins f256mem:$dst, VR256X:$src),
- "", []>;
+ "", []>, Sched<[WriteFStoreY]>;
def VMOVUPSZ128mr_NOVLX : I<0, Pseudo, (outs), (ins f128mem:$dst, VR128X:$src),
- "", []>;
+ "", []>, Sched<[WriteFStoreX]>;
def VMOVUPSZ256mr_NOVLX : I<0, Pseudo, (outs), (ins f256mem:$dst, VR256X:$src),
- "", []>;
+ "", []>, Sched<[WriteFStoreY]>;
}
def : Pat<(v8i64 (vselect VK8WM:$mask, (bc_v8i64 (v16i32 immAllZerosV)),
@@ -3779,29 +3779,29 @@ multiclass avx512_move_scalar<string asm
def rm : AVX512PI<0x10, MRMSrcMem, (outs _.FRC:$dst), (ins _.ScalarMemOp:$src),
!strconcat(asm, "\t{$src, $dst|$dst, $src}"),
[(set _.FRC:$dst, (_.ScalarLdFrag addr:$src))],
- _.ExeDomain>, EVEX, Sched<[WriteLoad]>;
+ _.ExeDomain>, EVEX, Sched<[WriteFLoad]>;
let mayLoad = 1, hasSideEffects = 0 in {
let Constraints = "$src0 = $dst" in
def rmk : AVX512PI<0x10, MRMSrcMem, (outs _.RC:$dst),
(ins _.RC:$src0, _.KRCWM:$mask, _.ScalarMemOp:$src),
!strconcat(asm, "\t{$src, $dst {${mask}}|",
"$dst {${mask}}, $src}"),
- [], _.ExeDomain>, EVEX, EVEX_K, Sched<[WriteLoad]>;
+ [], _.ExeDomain>, EVEX, EVEX_K, Sched<[WriteFLoad]>;
def rmkz : AVX512PI<0x10, MRMSrcMem, (outs _.RC:$dst),
(ins _.KRCWM:$mask, _.ScalarMemOp:$src),
!strconcat(asm, "\t{$src, $dst {${mask}} {z}|",
"$dst {${mask}} {z}, $src}"),
- [], _.ExeDomain>, EVEX, EVEX_KZ, Sched<[WriteLoad]>;
+ [], _.ExeDomain>, EVEX, EVEX_KZ, Sched<[WriteFLoad]>;
}
def mr: AVX512PI<0x11, MRMDestMem, (outs), (ins _.ScalarMemOp:$dst, _.FRC:$src),
!strconcat(asm, "\t{$src, $dst|$dst, $src}"),
[(store _.FRC:$src, addr:$dst)], _.ExeDomain>,
- EVEX, Sched<[WriteStore]>;
+ EVEX, Sched<[WriteFStore]>;
let mayStore = 1, hasSideEffects = 0 in
def mrk: AVX512PI<0x11, MRMDestMem, (outs),
(ins _.ScalarMemOp:$dst, VK1WM:$mask, _.FRC:$src),
!strconcat(asm, "\t{$src, $dst {${mask}}|$dst {${mask}}, $src}"),
- [], _.ExeDomain>, EVEX, EVEX_K, Sched<[WriteStore]>;
+ [], _.ExeDomain>, EVEX, EVEX_K, Sched<[WriteFStore]>;
}
defm VMOVSSZ : avx512_move_scalar<"vmovss", X86Movss, f32x_info>,
@@ -6253,7 +6253,7 @@ let Predicates = [HasAVX512] in {
(VMOVLPDZ128rm VR128X:$src1, addr:$src2)>;
}
-let SchedRW = [WriteStore] in {
+let SchedRW = [WriteFStore] in {
def VMOVHPSZ128mr : AVX512PSI<0x17, MRMDestMem, (outs),
(ins f64mem:$dst, VR128X:$src),
"vmovhps\t{$src, $dst|$dst, $src}",
Modified: llvm/trunk/lib/Target/X86/X86InstrSSE.td
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/X86/X86InstrSSE.td?rev=332714&r1=332713&r2=332714&view=diff
==============================================================================
--- llvm/trunk/lib/Target/X86/X86InstrSSE.td (original)
+++ llvm/trunk/lib/Target/X86/X86InstrSSE.td Fri May 18 06:13:59 2018
@@ -201,7 +201,7 @@ multiclass sse12_move<RegisterClass RC,
def V#NAME#mr : SI<0x11, MRMDestMem, (outs), (ins x86memop:$dst, RC:$src),
!strconcat(OpcodeStr, "\t{$src, $dst|$dst, $src}"),
[(store RC:$src, addr:$dst)], d>,
- VEX, VEX_LIG, Sched<[WriteStore]>, VEX_WIG;
+ VEX, VEX_LIG, Sched<[WriteFStore]>, VEX_WIG;
// SSE1 & 2
let Constraints = "$src1 = $dst" in {
defm NAME : sse12_move_rr<OpNode, vt, x86memop, OpcodeStr,
@@ -211,7 +211,7 @@ multiclass sse12_move<RegisterClass RC,
def NAME#mr : SI<0x11, MRMDestMem, (outs), (ins x86memop:$dst, RC:$src),
!strconcat(OpcodeStr, "\t{$src, $dst|$dst, $src}"),
[(store RC:$src, addr:$dst)], d>,
- Sched<[WriteStore]>;
+ Sched<[WriteFStore]>;
}
// Loading from memory automatically zeroing upper bits.
@@ -220,11 +220,11 @@ multiclass sse12_move_rm<RegisterClass R
def V#NAME#rm : SI<0x10, MRMSrcMem, (outs RC:$dst), (ins x86memop:$src),
!strconcat(OpcodeStr, "\t{$src, $dst|$dst, $src}"),
[(set RC:$dst, (mem_pat addr:$src))], d>,
- VEX, VEX_LIG, Sched<[WriteLoad]>, VEX_WIG;
+ VEX, VEX_LIG, Sched<[WriteFLoad]>, VEX_WIG;
def NAME#rm : SI<0x10, MRMSrcMem, (outs RC:$dst), (ins x86memop:$src),
!strconcat(OpcodeStr, "\t{$src, $dst|$dst, $src}"),
[(set RC:$dst, (mem_pat addr:$src))], d>,
- Sched<[WriteLoad]>;
+ Sched<[WriteFLoad]>;
}
defm MOVSS : sse12_move<FR32, X86Movss, v4f32, f32mem, "movss",
@@ -689,7 +689,7 @@ let AddedComplexity = 20 in {
defm MOVL : sse12_mov_hilo_packed<0x12, X86Movlps, X86Movlpd, "movlp">;
}
-let SchedRW = [WriteStore] in {
+let SchedRW = [WriteFStore] in {
let Predicates = [UseAVX] in {
def VMOVLPSmr : VPSI<0x13, MRMDestMem, (outs), (ins f64mem:$dst, VR128:$src),
"movlps\t{$src, $dst|$dst, $src}",
@@ -774,7 +774,7 @@ let AddedComplexity = 20 in {
defm MOVH : sse12_mov_hilo_packed<0x16, X86Movlhps, X86Unpckl, "movhp">;
}
-let SchedRW = [WriteStore] in {
+let SchedRW = [WriteFStore] in {
// v2f64 extract element 1 is always custom lowered to unpack high to low
// and extract element 0 so the non-store version isn't too horrible.
let Predicates = [UseAVX] in {
@@ -3080,7 +3080,7 @@ def MOVNTI_64mr : RI<0xC3, MRMDestMem, (
"movnti{q}\t{$src, $dst|$dst, $src}",
[(nontemporalstore (i64 GR64:$src), addr:$dst)]>,
PS, Requires<[HasSSE2]>;
-} // SchedRW = [WriteStore]
+} // SchedRW = [WriteStoreNT]
let Predicates = [HasAVX, NoVLX] in {
def : Pat<(alignednontemporalstore (v8i32 VR256:$src), addr:$dst),
@@ -4062,6 +4062,7 @@ def MOVPDI2DImr : S2I<0x7E, MRMDestMem,
(iPTR 0))), addr:$dst)]>,
Sched<[WriteStore]>;
} // ExeDomain = SSEPackedInt
+
//===---------------------------------------------------------------------===//
// Move Packed Doubleword Int first element to Doubleword Int
//
Modified: llvm/trunk/test/tools/llvm-mca/X86/BtVer2/resources-avx1.s
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/tools/llvm-mca/X86/BtVer2/resources-avx1.s?rev=332714&r1=332713&r2=332714&view=diff
==============================================================================
--- llvm/trunk/test/tools/llvm-mca/X86/BtVer2/resources-avx1.s (original)
+++ llvm/trunk/test/tools/llvm-mca/X86/BtVer2/resources-avx1.s Fri May 18 06:13:59 2018
@@ -1720,7 +1720,7 @@ vzeroupper
# CHECK: Resource pressure per iteration:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13]
-# CHECK-NEXT: 48.00 2.00 - 349.50 909.50 397.00 411.00 382.00 - 43.00 124.00 118.50 118.50 38.00
+# CHECK-NEXT: 48.00 2.00 - 350.50 910.50 398.00 418.00 382.00 - 43.00 130.00 118.50 118.50 38.00
# CHECK: Resource pressure by instruction:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] Instructions:
@@ -1980,13 +1980,13 @@ vzeroupper
# CHECK-NEXT: - - - - - 0.50 0.50 1.00 - - - 0.50 0.50 - vmovdqu (%rax), %ymm2
# CHECK-NEXT: - - - 0.50 0.50 0.50 0.50 - - - - - - - vmovhlps %xmm0, %xmm1, %xmm2
# CHECK-NEXT: - - - 0.50 0.50 0.50 0.50 - - - - - - - vmovlhps %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - - - - 1.00 - - - - vmovhpd %xmm0, (%rax)
+# CHECK-NEXT: - - - - - - 1.00 - - 1.00 1.00 - - - vmovhpd %xmm0, (%rax)
# CHECK-NEXT: - - - 0.50 0.50 0.50 0.50 1.00 - - - - - - vmovhpd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - - - - 1.00 - - - - vmovhps %xmm0, (%rax)
+# CHECK-NEXT: - - - - - - 1.00 - - 1.00 1.00 - - - vmovhps %xmm0, (%rax)
# CHECK-NEXT: - - - 0.50 0.50 0.50 0.50 1.00 - - - - - - vmovhps (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - - - - 1.00 - - - - vmovlpd %xmm0, (%rax)
+# CHECK-NEXT: - - - - - - 1.00 - - 1.00 1.00 - - - vmovlpd %xmm0, (%rax)
# CHECK-NEXT: - - - 0.50 0.50 0.50 0.50 1.00 - - - - - - vmovlpd (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - - - - 1.00 - - - - vmovlps %xmm0, (%rax)
+# CHECK-NEXT: - - - - - - 1.00 - - 1.00 1.00 - - - vmovlps %xmm0, (%rax)
# CHECK-NEXT: - - - 0.50 0.50 0.50 0.50 1.00 - - - - - - vmovlps (%rax), %xmm1, %xmm2
# CHECK-NEXT: 1.00 - - 1.00 - 1.00 - - - - - - - - vmovmskpd %xmm0, %ecx
# CHECK-NEXT: 1.00 - - 1.00 - 1.00 - - - - - - - - vmovmskpd %ymm0, %ecx
@@ -2006,8 +2006,8 @@ vzeroupper
# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - - vmovq %xmm0, %rcx
# CHECK-NEXT: - - - - - - - - - 1.00 - - - - vmovq %xmm0, (%rax)
# CHECK-NEXT: - - - 0.50 0.50 0.50 0.50 - - - - - - - vmovsd %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - - - - 1.00 - - - - vmovsd %xmm0, (%rax)
-# CHECK-NEXT: - - - - - - - 1.00 - - - - - - vmovsd (%rax), %xmm2
+# CHECK-NEXT: - - - - - - 1.00 - - 1.00 1.00 - - - vmovsd %xmm0, (%rax)
+# CHECK-NEXT: - - - 0.50 0.50 0.50 0.50 1.00 - - - - - - vmovsd (%rax), %xmm2
# CHECK-NEXT: - - - 0.50 0.50 0.50 0.50 - - - - - - - vmovshdup %xmm0, %xmm2
# CHECK-NEXT: - - - 0.50 0.50 0.50 0.50 1.00 - - - - - - vmovshdup (%rax), %xmm2
# CHECK-NEXT: - - - 1.00 1.00 1.00 1.00 - - - - - - - vmovshdup %ymm0, %ymm2
@@ -2017,8 +2017,8 @@ vzeroupper
# CHECK-NEXT: - - - 1.00 1.00 1.00 1.00 - - - - - - - vmovsldup %ymm0, %ymm2
# CHECK-NEXT: - - - 1.00 1.00 1.00 1.00 2.00 - - - - - - vmovsldup (%rax), %ymm2
# CHECK-NEXT: - - - 0.50 0.50 0.50 0.50 - - - - - - - vmovss %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - - - - - - - - 1.00 - - - - vmovss %xmm0, (%rax)
-# CHECK-NEXT: - - - - - - - 1.00 - - - - - - vmovss (%rax), %xmm2
+# CHECK-NEXT: - - - - - - 1.00 - - 1.00 1.00 - - - vmovss %xmm0, (%rax)
+# CHECK-NEXT: - - - 0.50 0.50 0.50 0.50 1.00 - - - - - - vmovss (%rax), %xmm2
# CHECK-NEXT: - - - 0.50 0.50 0.50 0.50 - - - - - - - vmovupd %xmm0, %xmm2
# CHECK-NEXT: - - - - - - 1.00 - - 1.00 1.00 - - - vmovupd %xmm0, (%rax)
# CHECK-NEXT: - - - 0.50 0.50 0.50 0.50 1.00 - - - - - - vmovupd (%rax), %xmm2
Modified: llvm/trunk/test/tools/llvm-mca/X86/BtVer2/resources-sse1.s
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/tools/llvm-mca/X86/BtVer2/resources-sse1.s?rev=332714&r1=332713&r2=332714&view=diff
==============================================================================
--- llvm/trunk/test/tools/llvm-mca/X86/BtVer2/resources-sse1.s (original)
+++ llvm/trunk/test/tools/llvm-mca/X86/BtVer2/resources-sse1.s Fri May 18 06:13:59 2018
@@ -337,7 +337,7 @@ xorps (%rax), %xmm2
# CHECK: Resource pressure per iteration:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13]
-# CHECK-NEXT: 15.00 - - 46.50 183.50 50.00 63.00 58.00 - 9.00 22.00 9.50 9.50 2.00
+# CHECK-NEXT: 15.00 - - 47.00 184.00 50.50 66.50 58.00 - 9.00 25.00 9.50 9.50 2.00
# CHECK: Resource pressure by instruction:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] Instructions:
@@ -392,16 +392,16 @@ xorps (%rax), %xmm2
# CHECK-NEXT: - - - 0.50 0.50 0.50 0.50 1.00 - - - - - - movaps (%rax), %xmm2
# CHECK-NEXT: - - - 0.50 0.50 0.50 0.50 - - - - - - - movhlps %xmm0, %xmm2
# CHECK-NEXT: - - - 0.50 0.50 0.50 0.50 - - - - - - - movlhps %xmm0, %xmm2
-# CHECK-NEXT: - - - - - - - - - 1.00 - - - - movhps %xmm0, (%rax)
+# CHECK-NEXT: - - - - - - 1.00 - - 1.00 1.00 - - - movhps %xmm0, (%rax)
# CHECK-NEXT: - - - 0.50 0.50 0.50 0.50 1.00 - - - - - - movhps (%rax), %xmm2
-# CHECK-NEXT: - - - - - - - - - 1.00 - - - - movlps %xmm0, (%rax)
+# CHECK-NEXT: - - - - - - 1.00 - - 1.00 1.00 - - - movlps %xmm0, (%rax)
# CHECK-NEXT: - - - 0.50 0.50 0.50 0.50 1.00 - - - - - - movlps (%rax), %xmm2
# CHECK-NEXT: 1.00 - - 1.00 - 1.00 - - - - - - - - movmskps %xmm0, %ecx
# CHECK-NEXT: - - - - - - 1.00 - - 1.00 1.00 - - - movntps %xmm0, (%rax)
# CHECK-NEXT: - - - - - - 1.00 - - 1.00 1.00 - - - movntq %mm0, (%rax)
# CHECK-NEXT: - - - 0.50 0.50 0.50 0.50 - - - - - - - movss %xmm0, %xmm2
-# CHECK-NEXT: - - - - - - - - - 1.00 - - - - movss %xmm0, (%rax)
-# CHECK-NEXT: - - - - - - - 1.00 - - - - - - movss (%rax), %xmm2
+# CHECK-NEXT: - - - - - - 1.00 - - 1.00 1.00 - - - movss %xmm0, (%rax)
+# CHECK-NEXT: - - - 0.50 0.50 0.50 0.50 1.00 - - - - - - movss (%rax), %xmm2
# CHECK-NEXT: - - - 0.50 0.50 0.50 0.50 - - - - - - - movups %xmm0, %xmm2
# CHECK-NEXT: - - - - - - 1.00 - - 1.00 1.00 - - - movups %xmm0, (%rax)
# CHECK-NEXT: - - - 0.50 0.50 0.50 0.50 1.00 - - - - - - movups (%rax), %xmm2
Modified: llvm/trunk/test/tools/llvm-mca/X86/BtVer2/resources-sse2.s
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/tools/llvm-mca/X86/BtVer2/resources-sse2.s?rev=332714&r1=332713&r2=332714&view=diff
==============================================================================
--- llvm/trunk/test/tools/llvm-mca/X86/BtVer2/resources-sse2.s (original)
+++ llvm/trunk/test/tools/llvm-mca/X86/BtVer2/resources-sse2.s Fri May 18 06:13:59 2018
@@ -685,7 +685,7 @@ xorpd (%rax), %xmm2
# CHECK: Resource pressure per iteration:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13]
-# CHECK-NEXT: 17.00 2.00 - 45.50 202.50 115.00 133.00 117.00 - 15.00 49.00 65.50 65.50 12.00
+# CHECK-NEXT: 17.00 2.00 - 46.00 203.00 115.50 136.50 117.00 - 15.00 52.00 65.50 65.50 12.00
# CHECK: Resource pressure by instruction:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] Instructions:
@@ -770,9 +770,9 @@ xorpd (%rax), %xmm2
# CHECK-NEXT: - - - - - - 1.00 - - 1.00 1.00 - - - movdqu %xmm0, (%rax)
# CHECK-NEXT: - - - - - 0.50 0.50 1.00 - - - 0.50 0.50 - movdqu (%rax), %xmm2
# CHECK-NEXT: - - - - - 0.50 0.50 - - - - 0.50 0.50 - movdq2q %xmm0, %mm2
-# CHECK-NEXT: - - - - - - - - - 1.00 - - - - movhpd %xmm0, (%rax)
+# CHECK-NEXT: - - - - - - 1.00 - - 1.00 1.00 - - - movhpd %xmm0, (%rax)
# CHECK-NEXT: - - - 0.50 0.50 0.50 0.50 1.00 - - - - - - movhpd (%rax), %xmm2
-# CHECK-NEXT: - - - - - - - - - 1.00 - - - - movlpd %xmm0, (%rax)
+# CHECK-NEXT: - - - - - - 1.00 - - 1.00 1.00 - - - movlpd %xmm0, (%rax)
# CHECK-NEXT: - - - 0.50 0.50 0.50 0.50 1.00 - - - - - - movlpd (%rax), %xmm2
# CHECK-NEXT: 1.00 - - 1.00 - 1.00 - - - - - - - - movmskpd %xmm0, %ecx
# CHECK-NEXT: - - - - - - - - - 1.00 - - - - movntil %eax, (%rax)
@@ -786,8 +786,8 @@ xorpd (%rax), %xmm2
# CHECK-NEXT: - - - - - - - - - 1.00 - - - - movq %xmm0, (%rax)
# CHECK-NEXT: - - - - - 0.50 0.50 - - - - 0.50 0.50 - movq2dq %mm0, %xmm2
# CHECK-NEXT: - - - 0.50 0.50 0.50 0.50 - - - - - - - movsd %xmm0, %xmm2
-# CHECK-NEXT: - - - - - - - - - 1.00 - - - - movsd %xmm0, (%rax)
-# CHECK-NEXT: - - - - - - - 1.00 - - - - - - movsd (%rax), %xmm2
+# CHECK-NEXT: - - - - - - 1.00 - - 1.00 1.00 - - - movsd %xmm0, (%rax)
+# CHECK-NEXT: - - - 0.50 0.50 0.50 0.50 1.00 - - - - - - movsd (%rax), %xmm2
# CHECK-NEXT: - - - 0.50 0.50 0.50 0.50 - - - - - - - movupd %xmm0, %xmm2
# CHECK-NEXT: - - - - - - 1.00 - - 1.00 1.00 - - - movupd %xmm0, (%rax)
# CHECK-NEXT: - - - 0.50 0.50 0.50 0.50 1.00 - - - - - - movupd (%rax), %xmm2
Modified: llvm/trunk/test/tools/llvm-mca/X86/SLM/resources-sse1.s
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/tools/llvm-mca/X86/SLM/resources-sse1.s?rev=332714&r1=332713&r2=332714&view=diff
==============================================================================
--- llvm/trunk/test/tools/llvm-mca/X86/SLM/resources-sse1.s (original)
+++ llvm/trunk/test/tools/llvm-mca/X86/SLM/resources-sse1.s Fri May 18 06:13:59 2018
@@ -331,7 +331,7 @@ xorps (%rax), %xmm2
# CHECK: Resource pressure per iteration:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7]
-# CHECK-NEXT: - 232.00 8.00 61.00 46.00 2.00 2.00 67.00
+# CHECK-NEXT: - 232.00 8.00 61.00 46.00 0.50 0.50 67.00
# CHECK: Resource pressure by instruction:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] Instructions:
@@ -386,15 +386,15 @@ xorps (%rax), %xmm2
# CHECK-NEXT: - - - - - - - 1.00 movaps (%rax), %xmm2
# CHECK-NEXT: - - - 1.00 - - - - movhlps %xmm0, %xmm2
# CHECK-NEXT: - - - 1.00 - - - - movlhps %xmm0, %xmm2
-# CHECK-NEXT: - - - - - 0.50 0.50 1.00 movhps %xmm0, (%rax)
+# CHECK-NEXT: - - - - - - - 1.00 movhps %xmm0, (%rax)
# CHECK-NEXT: - - - 1.00 - - - 1.00 movhps (%rax), %xmm2
-# CHECK-NEXT: - - - - - 0.50 0.50 1.00 movlps %xmm0, (%rax)
+# CHECK-NEXT: - - - - - - - 1.00 movlps %xmm0, (%rax)
# CHECK-NEXT: - - - 1.00 - - - 1.00 movlps (%rax), %xmm2
# CHECK-NEXT: - - - - 1.00 - - - movmskps %xmm0, %ecx
# CHECK-NEXT: - - - - - - - 1.00 movntps %xmm0, (%rax)
# CHECK-NEXT: - - - - - - - 1.00 movntq %mm0, (%rax)
# CHECK-NEXT: - - - 1.00 - - - - movss %xmm0, %xmm2
-# CHECK-NEXT: - - - - - 0.50 0.50 1.00 movss %xmm0, (%rax)
+# CHECK-NEXT: - - - - - - - 1.00 movss %xmm0, (%rax)
# CHECK-NEXT: - - - - - - - 1.00 movss (%rax), %xmm2
# CHECK-NEXT: - - - 0.50 0.50 - - - movups %xmm0, %xmm2
# CHECK-NEXT: - - - - - - - 1.00 movups %xmm0, (%rax)
Modified: llvm/trunk/test/tools/llvm-mca/X86/SLM/resources-sse2.s
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/tools/llvm-mca/X86/SLM/resources-sse2.s?rev=332714&r1=332713&r2=332714&view=diff
==============================================================================
--- llvm/trunk/test/tools/llvm-mca/X86/SLM/resources-sse2.s (original)
+++ llvm/trunk/test/tools/llvm-mca/X86/SLM/resources-sse2.s Fri May 18 06:13:59 2018
@@ -679,7 +679,7 @@ xorpd (%rax), %xmm2
# CHECK: Resource pressure per iteration:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7]
-# CHECK-NEXT: - 412.00 8.00 150.50 86.50 5.50 5.50 132.00
+# CHECK-NEXT: - 412.00 8.00 150.50 86.50 4.00 4.00 132.00
# CHECK: Resource pressure by instruction:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] Instructions:
@@ -764,9 +764,9 @@ xorpd (%rax), %xmm2
# CHECK-NEXT: - - - - - - - 1.00 movdqu %xmm0, (%rax)
# CHECK-NEXT: - - - - - - - 1.00 movdqu (%rax), %xmm2
# CHECK-NEXT: - - - 0.50 0.50 - - - movdq2q %xmm0, %mm2
-# CHECK-NEXT: - - - - - 0.50 0.50 1.00 movhpd %xmm0, (%rax)
+# CHECK-NEXT: - - - - - - - 1.00 movhpd %xmm0, (%rax)
# CHECK-NEXT: - - - 1.00 - - - 1.00 movhpd (%rax), %xmm2
-# CHECK-NEXT: - - - - - 0.50 0.50 1.00 movlpd %xmm0, (%rax)
+# CHECK-NEXT: - - - - - - - 1.00 movlpd %xmm0, (%rax)
# CHECK-NEXT: - - - 1.00 - - - 1.00 movlpd (%rax), %xmm2
# CHECK-NEXT: - - - - 1.00 - - - movmskpd %xmm0, %ecx
# CHECK-NEXT: - - - - - 0.50 0.50 1.00 movntil %eax, (%rax)
@@ -780,7 +780,7 @@ xorpd (%rax), %xmm2
# CHECK-NEXT: - - - - - 0.50 0.50 1.00 movq %xmm0, (%rax)
# CHECK-NEXT: - - - 0.50 0.50 - - - movq2dq %mm0, %xmm2
# CHECK-NEXT: - - - 1.00 - - - - movsd %xmm0, %xmm2
-# CHECK-NEXT: - - - - - 0.50 0.50 1.00 movsd %xmm0, (%rax)
+# CHECK-NEXT: - - - - - - - 1.00 movsd %xmm0, (%rax)
# CHECK-NEXT: - - - - - - - 1.00 movsd (%rax), %xmm2
# CHECK-NEXT: - - - 0.50 0.50 - - - movupd %xmm0, %xmm2
# CHECK-NEXT: - - - - - - - 1.00 movupd %xmm0, (%rax)
More information about the llvm-commits
mailing list