Skip to content

Commit 5f1a7f2

Browse files
authored
[X86] Fix scheduler class for EVEX VMOVNTDQA variants and cleanup Skylake/Icelake resource usage (llvm#116946)
Ensure we use the SchedWriteVecMoveLSNT class for all (V)MOVNTDQA instructions, remove unnecessary scheduler overrides and adjust resource pipe usage to match uops.info/Agner numbers
1 parent 1b79225 commit 5f1a7f2

15 files changed

+52
-56
lines changed

llvm/lib/Target/X86/X86InstrAVX512.td

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4549,20 +4549,20 @@ let Predicates = [HasAVX512] in {
45494549

45504550
def VMOVNTDQAZrm : AVX512PI<0x2A, MRMSrcMem, (outs VR512:$dst),
45514551
(ins i512mem:$src), "vmovntdqa\t{$src, $dst|$dst, $src}",
4552-
[], SSEPackedInt>, Sched<[SchedWriteVecMoveLS.ZMM.RM]>,
4552+
[], SSEPackedInt>, Sched<[SchedWriteVecMoveLSNT.ZMM.RM]>,
45534553
EVEX, T8, PD, EVEX_V512, EVEX_CD8<64, CD8VF>;
45544554

45554555
let Predicates = [HasVLX] in {
45564556
def VMOVNTDQAZ256rm : AVX512PI<0x2A, MRMSrcMem, (outs VR256X:$dst),
45574557
(ins i256mem:$src),
45584558
"vmovntdqa\t{$src, $dst|$dst, $src}",
4559-
[], SSEPackedInt>, Sched<[SchedWriteVecMoveLS.YMM.RM]>,
4559+
[], SSEPackedInt>, Sched<[SchedWriteVecMoveLSNT.YMM.RM]>,
45604560
EVEX, T8, PD, EVEX_V256, EVEX_CD8<64, CD8VF>;
45614561

45624562
def VMOVNTDQAZ128rm : AVX512PI<0x2A, MRMSrcMem, (outs VR128X:$dst),
45634563
(ins i128mem:$src),
45644564
"vmovntdqa\t{$src, $dst|$dst, $src}",
4565-
[], SSEPackedInt>, Sched<[SchedWriteVecMoveLS.XMM.RM]>,
4565+
[], SSEPackedInt>, Sched<[SchedWriteVecMoveLSNT.XMM.RM]>,
45664566
EVEX, T8, PD, EVEX_V128, EVEX_CD8<64, CD8VF>;
45674567
}
45684568

llvm/lib/Target/X86/X86SchedIceLake.td

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -350,8 +350,8 @@ defm : ICXWriteResPair<WriteFVarBlendZ,[ICXPort015], 2, [2], 2, 7>;
350350
defm : X86WriteRes<WriteVecLoad, [ICXPort23], 5, [1], 1>;
351351
defm : X86WriteRes<WriteVecLoadX, [ICXPort23], 6, [1], 1>;
352352
defm : X86WriteRes<WriteVecLoadY, [ICXPort23], 7, [1], 1>;
353-
defm : X86WriteRes<WriteVecLoadNT, [ICXPort23], 6, [1], 1>;
354-
defm : X86WriteRes<WriteVecLoadNTY, [ICXPort23], 7, [1], 1>;
353+
defm : X86WriteRes<WriteVecLoadNT, [ICXPort23,ICXPort015], 7, [1,1], 2>;
354+
defm : X86WriteRes<WriteVecLoadNTY, [ICXPort23,ICXPort015], 8, [1,1], 2>;
355355
defm : X86WriteRes<WriteVecMaskedLoad, [ICXPort23,ICXPort015], 7, [1,1], 2>;
356356
defm : X86WriteRes<WriteVecMaskedLoadY, [ICXPort23,ICXPort015], 8, [1,1], 2>;
357357
defm : X86WriteRes<WriteVecStore, [ICXPort78,ICXPort49], 1, [1,1], 2>;
@@ -1361,8 +1361,7 @@ def ICXWriteResGroup95 : SchedWriteRes<[ICXPort23,ICXPort015]> {
13611361
let NumMicroOps = 2;
13621362
let ReleaseAtCycles = [1,1];
13631363
}
1364-
def: InstRW<[ICXWriteResGroup95], (instrs VMOVNTDQAZ128rm,
1365-
VPBLENDDrmi)>;
1364+
def: InstRW<[ICXWriteResGroup95], (instrs VPBLENDDrmi)>;
13661365
def: InstRW<[ICXWriteResGroup95, ReadAfterVecXLd],
13671366
(instregex "VBLENDMPDZ128rm(b?)",
13681367
"VBLENDMPSZ128rm(b?)",
@@ -1568,8 +1567,7 @@ def ICXWriteResGroup121 : SchedWriteRes<[ICXPort23,ICXPort015]> {
15681567
let NumMicroOps = 2;
15691568
let ReleaseAtCycles = [1,1];
15701569
}
1571-
def: InstRW<[ICXWriteResGroup121], (instrs VMOVNTDQAZ256rm,
1572-
VPBLENDDYrmi)>;
1570+
def: InstRW<[ICXWriteResGroup121], (instrs VPBLENDDYrmi)>;
15731571
def: InstRW<[ICXWriteResGroup121, ReadAfterVecYLd],
15741572
(instregex "VBLENDMPD(Z|Z256)rm(b?)",
15751573
"VBLENDMPS(Z|Z256)rm(b?)",

llvm/lib/Target/X86/X86SchedSkylakeClient.td

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -345,8 +345,8 @@ defm : X86WriteResPairUnsupported<WriteFVarBlendZ>;
345345
defm : X86WriteRes<WriteVecLoad, [SKLPort23], 5, [1], 1>;
346346
defm : X86WriteRes<WriteVecLoadX, [SKLPort23], 6, [1], 1>;
347347
defm : X86WriteRes<WriteVecLoadY, [SKLPort23], 7, [1], 1>;
348-
defm : X86WriteRes<WriteVecLoadNT, [SKLPort23], 6, [1], 1>;
349-
defm : X86WriteRes<WriteVecLoadNTY, [SKLPort23], 7, [1], 1>;
348+
defm : X86WriteRes<WriteVecLoadNT, [SKLPort23,SKLPort015], 7, [1,1], 2>;
349+
defm : X86WriteRes<WriteVecLoadNTY, [SKLPort23,SKLPort015], 8, [1,1], 2>;
350350
defm : X86WriteRes<WriteVecMaskedLoad, [SKLPort23,SKLPort015], 7, [1,1], 2>;
351351
defm : X86WriteRes<WriteVecMaskedLoadY, [SKLPort23,SKLPort015], 8, [1,1], 2>;
352352
defm : X86WriteRes<WriteVecStore, [SKLPort237,SKLPort4], 1, [1,1], 2>;

llvm/lib/Target/X86/X86SchedSkylakeServer.td

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -345,8 +345,8 @@ defm : SKXWriteResPair<WriteFVarBlendZ,[SKXPort015], 2, [2], 2, 7>;
345345
defm : X86WriteRes<WriteVecLoad, [SKXPort23], 5, [1], 1>;
346346
defm : X86WriteRes<WriteVecLoadX, [SKXPort23], 6, [1], 1>;
347347
defm : X86WriteRes<WriteVecLoadY, [SKXPort23], 7, [1], 1>;
348-
defm : X86WriteRes<WriteVecLoadNT, [SKXPort23], 6, [1], 1>;
349-
defm : X86WriteRes<WriteVecLoadNTY, [SKXPort23], 7, [1], 1>;
348+
defm : X86WriteRes<WriteVecLoadNT, [SKXPort23,SKXPort015], 7, [1,1], 2>;
349+
defm : X86WriteRes<WriteVecLoadNTY, [SKXPort23,SKXPort015], 8, [1,1], 2>;
350350
defm : X86WriteRes<WriteVecMaskedLoad, [SKXPort23,SKXPort015], 7, [1,1], 2>;
351351
defm : X86WriteRes<WriteVecMaskedLoadY, [SKXPort23,SKXPort015], 8, [1,1], 2>;
352352
defm : X86WriteRes<WriteVecStore, [SKXPort237,SKXPort4], 1, [1,1], 2>;
@@ -1336,8 +1336,7 @@ def SKXWriteResGroup95 : SchedWriteRes<[SKXPort23,SKXPort015]> {
13361336
let NumMicroOps = 2;
13371337
let ReleaseAtCycles = [1,1];
13381338
}
1339-
def: InstRW<[SKXWriteResGroup95], (instrs VMOVNTDQAZ128rm,
1340-
VPBLENDDrmi)>;
1339+
def: InstRW<[SKXWriteResGroup95], (instrs VPBLENDDrmi)>;
13411340
def: InstRW<[SKXWriteResGroup95, ReadAfterVecXLd],
13421341
(instregex "VBLENDMPDZ128rm(b?)",
13431342
"VBLENDMPSZ128rm(b?)",
@@ -1539,8 +1538,7 @@ def SKXWriteResGroup121 : SchedWriteRes<[SKXPort23,SKXPort015]> {
15391538
let NumMicroOps = 2;
15401539
let ReleaseAtCycles = [1,1];
15411540
}
1542-
def: InstRW<[SKXWriteResGroup121], (instrs VMOVNTDQAZ256rm,
1543-
VPBLENDDYrmi)>;
1541+
def: InstRW<[SKXWriteResGroup121], (instrs VPBLENDDYrmi)>;
15441542
def: InstRW<[SKXWriteResGroup121, ReadAfterVecYLd],
15451543
(instregex "VBLENDMPD(Z|Z256)rm(b?)",
15461544
"VBLENDMPS(Z|Z256)rm(b?)",

llvm/test/tools/llvm-mca/X86/IceLakeServer/resources-avx1.s

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1300,8 +1300,8 @@ vzeroupper
13001300
# CHECK-NEXT: 1 2 1.00 vmovmskps %ymm0, %ecx
13011301
# CHECK-NEXT: 2 1 0.50 * vmovntdq %xmm0, (%rax)
13021302
# CHECK-NEXT: 2 1 0.50 * vmovntdq %ymm0, (%rax)
1303-
# CHECK-NEXT: 1 6 0.50 * vmovntdqa (%rax), %xmm2
1304-
# CHECK-NEXT: 1 7 0.50 * vmovntdqa (%rax), %ymm2
1303+
# CHECK-NEXT: 2 7 0.50 * vmovntdqa (%rax), %xmm2
1304+
# CHECK-NEXT: 2 8 0.50 * vmovntdqa (%rax), %ymm2
13051305
# CHECK-NEXT: 2 1 0.50 * vmovntpd %xmm0, (%rax)
13061306
# CHECK-NEXT: 2 1 0.50 * vmovntpd %ymm0, (%rax)
13071307
# CHECK-NEXT: 2 1 0.50 * vmovntps %xmm0, (%rax)
@@ -1738,7 +1738,7 @@ vzeroupper
17381738

17391739
# CHECK: Resource pressure per iteration:
17401740
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11]
1741-
# CHECK-NEXT: - 126.00 325.58 256.58 160.50 160.50 19.00 270.58 6.25 19.00 19.00 19.00
1741+
# CHECK-NEXT: - 126.00 326.25 257.25 160.50 160.50 19.00 271.25 6.25 19.00 19.00 19.00
17421742

17431743
# CHECK: Resource pressure by instruction:
17441744
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] Instructions:
@@ -2012,8 +2012,8 @@ vzeroupper
20122012
# CHECK-NEXT: - - 1.00 - - - - - - - - - vmovmskps %ymm0, %ecx
20132013
# CHECK-NEXT: - - - - - - 0.50 - - 0.50 0.50 0.50 vmovntdq %xmm0, (%rax)
20142014
# CHECK-NEXT: - - - - - - 0.50 - - 0.50 0.50 0.50 vmovntdq %ymm0, (%rax)
2015-
# CHECK-NEXT: - - - - 0.50 0.50 - - - - - - vmovntdqa (%rax), %xmm2
2016-
# CHECK-NEXT: - - - - 0.50 0.50 - - - - - - vmovntdqa (%rax), %ymm2
2015+
# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - - - vmovntdqa (%rax), %xmm2
2016+
# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - - - vmovntdqa (%rax), %ymm2
20172017
# CHECK-NEXT: - - - - - - 0.50 - - 0.50 0.50 0.50 vmovntpd %xmm0, (%rax)
20182018
# CHECK-NEXT: - - - - - - 0.50 - - 0.50 0.50 0.50 vmovntpd %ymm0, (%rax)
20192019
# CHECK-NEXT: - - - - - - 0.50 - - 0.50 0.50 0.50 vmovntps %xmm0, (%rax)

llvm/test/tools/llvm-mca/X86/IceLakeServer/resources-avx2.s

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -475,7 +475,7 @@ vpxor (%rax), %ymm1, %ymm2
475475
# CHECK-NEXT: 5 20 2.00 * vgatherqps %xmm0, (%rax,%ymm1,2), %xmm2
476476
# CHECK-NEXT: 1 3 1.00 vinserti128 $1, %xmm0, %ymm1, %ymm2
477477
# CHECK-NEXT: 2 7 0.50 * vinserti128 $1, (%rax), %ymm1, %ymm2
478-
# CHECK-NEXT: 1 7 0.50 * vmovntdqa (%rax), %ymm0
478+
# CHECK-NEXT: 2 8 0.50 * vmovntdqa (%rax), %ymm0
479479
# CHECK-NEXT: 2 4 1.00 vmpsadbw $1, %ymm0, %ymm1, %ymm2
480480
# CHECK-NEXT: 3 11 1.00 * vmpsadbw $1, (%rax), %ymm1, %ymm2
481481
# CHECK-NEXT: 1 1 0.50 vpabsb %ymm0, %ymm2
@@ -778,7 +778,7 @@ vpxor (%rax), %ymm1, %ymm2
778778

779779
# CHECK: Resource pressure per iteration:
780780
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11]
781-
# CHECK-NEXT: - - 110.33 116.33 98.00 98.00 2.50 137.33 - 2.50 2.50 2.50
781+
# CHECK-NEXT: - - 110.67 116.67 98.00 98.00 2.50 137.67 - 2.50 2.50 2.50
782782

783783
# CHECK: Resource pressure by instruction:
784784
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] Instructions:
@@ -797,7 +797,7 @@ vpxor (%rax), %ymm1, %ymm2
797797
# CHECK-NEXT: - - 1.33 0.33 2.00 2.00 - 1.33 - - - - vgatherqps %xmm0, (%rax,%ymm1,2), %xmm2
798798
# CHECK-NEXT: - - - - - - - 1.00 - - - - vinserti128 $1, %xmm0, %ymm1, %ymm2
799799
# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - - - vinserti128 $1, (%rax), %ymm1, %ymm2
800-
# CHECK-NEXT: - - - - 0.50 0.50 - - - - - - vmovntdqa (%rax), %ymm0
800+
# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - - - vmovntdqa (%rax), %ymm0
801801
# CHECK-NEXT: - - - 0.50 - - - 1.50 - - - - vmpsadbw $1, %ymm0, %ymm1, %ymm2
802802
# CHECK-NEXT: - - - 0.50 0.50 0.50 - 1.50 - - - - vmpsadbw $1, (%rax), %ymm1, %ymm2
803803
# CHECK-NEXT: - - 0.50 0.50 - - - - - - - - vpabsb %ymm0, %ymm2

llvm/test/tools/llvm-mca/X86/IceLakeServer/resources-avx512.s

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1499,7 +1499,7 @@ vunpcklps (%rax){1to16}, %zmm17, %zmm19 {z}{k1}
14991499
# CHECK-NEXT: 2 1 0.50 * vmovdqu64 %zmm16, (%rax) {%k1}
15001500
# CHECK-NEXT: 1 1 0.50 vmovdqu64 %zmm16, %zmm19 {%k1} {z}
15011501
# CHECK-NEXT: 2 8 0.50 * vmovdqu64 (%rax), %zmm19 {%k1} {z}
1502-
# CHECK-NEXT: 1 7 0.50 * vmovntdqa (%rax), %zmm0
1502+
# CHECK-NEXT: 2 8 0.50 * vmovntdqa (%rax), %zmm0
15031503
# CHECK-NEXT: 1 1 1.00 vmovshdup %zmm16, %zmm19
15041504
# CHECK-NEXT: 2 8 0.50 * vmovshdup (%rax), %zmm19
15051505
# CHECK-NEXT: 1 1 1.00 vmovshdup %zmm16, %zmm19 {%k1}
@@ -2057,7 +2057,7 @@ vunpcklps (%rax){1to16}, %zmm17, %zmm19 {z}{k1}
20572057

20582058
# CHECK: Resource pressure per iteration:
20592059
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11]
2060-
# CHECK-NEXT: - 612.00 411.17 103.67 328.00 328.00 48.50 593.17 6.00 48.50 48.50 48.50
2060+
# CHECK-NEXT: - 612.00 411.50 104.00 328.00 328.00 48.50 593.50 6.00 48.50 48.50 48.50
20612061

20622062
# CHECK: Resource pressure by instruction:
20632063
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] Instructions:
@@ -2470,7 +2470,7 @@ vunpcklps (%rax){1to16}, %zmm17, %zmm19 {z}{k1}
24702470
# CHECK-NEXT: - - - - - - 0.50 - - 0.50 0.50 0.50 vmovdqu64 %zmm16, (%rax) {%k1}
24712471
# CHECK-NEXT: - - 0.50 - - - - 0.50 - - - - vmovdqu64 %zmm16, %zmm19 {%k1} {z}
24722472
# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - - - vmovdqu64 (%rax), %zmm19 {%k1} {z}
2473-
# CHECK-NEXT: - - - - 0.50 0.50 - - - - - - vmovntdqa (%rax), %zmm0
2473+
# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - - - vmovntdqa (%rax), %zmm0
24742474
# CHECK-NEXT: - - - - - - - 1.00 - - - - vmovshdup %zmm16, %zmm19
24752475
# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - - - vmovshdup (%rax), %zmm19
24762476
# CHECK-NEXT: - - - - - - - 1.00 - - - - vmovshdup %zmm16, %zmm19 {%k1}

llvm/test/tools/llvm-mca/X86/IceLakeServer/resources-sse41.s

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -171,7 +171,7 @@ roundss $1, (%rax), %xmm2
171171
# CHECK-NEXT: 3 2 1.00 * extractps $1, %xmm0, (%rax)
172172
# CHECK-NEXT: 1 1 1.00 insertps $1, %xmm0, %xmm2
173173
# CHECK-NEXT: 2 7 1.00 * insertps $1, (%rax), %xmm2
174-
# CHECK-NEXT: 1 6 0.50 * movntdqa (%rax), %xmm2
174+
# CHECK-NEXT: 2 7 0.50 * movntdqa (%rax), %xmm2
175175
# CHECK-NEXT: 2 4 1.00 mpsadbw $1, %xmm0, %xmm2
176176
# CHECK-NEXT: 3 10 1.00 * mpsadbw $1, (%rax), %xmm2
177177
# CHECK-NEXT: 1 3 1.00 packusdw %xmm0, %xmm2
@@ -268,7 +268,7 @@ roundss $1, (%rax), %xmm2
268268

269269
# CHECK: Resource pressure per iteration:
270270
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11]
271-
# CHECK-NEXT: - - 36.67 46.17 22.00 22.00 2.50 49.17 - 2.50 2.50 2.50
271+
# CHECK-NEXT: - - 37.00 46.50 22.00 22.00 2.50 49.50 - 2.50 2.50 2.50
272272

273273
# CHECK: Resource pressure by instruction:
274274
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] Instructions:
@@ -288,7 +288,7 @@ roundss $1, (%rax), %xmm2
288288
# CHECK-NEXT: - - - - - - 0.50 1.00 - 0.50 0.50 0.50 extractps $1, %xmm0, (%rax)
289289
# CHECK-NEXT: - - - - - - - 1.00 - - - - insertps $1, %xmm0, %xmm2
290290
# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - insertps $1, (%rax), %xmm2
291-
# CHECK-NEXT: - - - - 0.50 0.50 - - - - - - movntdqa (%rax), %xmm2
291+
# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - - - movntdqa (%rax), %xmm2
292292
# CHECK-NEXT: - - - 0.50 - - - 1.50 - - - - mpsadbw $1, %xmm0, %xmm2
293293
# CHECK-NEXT: - - - 0.50 0.50 0.50 - 1.50 - - - - mpsadbw $1, (%rax), %xmm2
294294
# CHECK-NEXT: - - - - - - - 1.00 - - - - packusdw %xmm0, %xmm2

llvm/test/tools/llvm-mca/X86/SkylakeClient/resources-avx1.s

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1300,8 +1300,8 @@ vzeroupper
13001300
# CHECK-NEXT: 1 2 1.00 vmovmskps %ymm0, %ecx
13011301
# CHECK-NEXT: 2 1 1.00 * vmovntdq %xmm0, (%rax)
13021302
# CHECK-NEXT: 2 1 1.00 * vmovntdq %ymm0, (%rax)
1303-
# CHECK-NEXT: 1 6 0.50 * vmovntdqa (%rax), %xmm2
1304-
# CHECK-NEXT: 1 7 0.50 * vmovntdqa (%rax), %ymm2
1303+
# CHECK-NEXT: 2 7 0.50 * vmovntdqa (%rax), %xmm2
1304+
# CHECK-NEXT: 2 8 0.50 * vmovntdqa (%rax), %ymm2
13051305
# CHECK-NEXT: 2 1 1.00 * vmovntpd %xmm0, (%rax)
13061306
# CHECK-NEXT: 2 1 1.00 * vmovntpd %ymm0, (%rax)
13071307
# CHECK-NEXT: 2 1 1.00 * vmovntps %xmm0, (%rax)
@@ -1736,7 +1736,7 @@ vzeroupper
17361736

17371737
# CHECK: Resource pressure per iteration:
17381738
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9]
1739-
# CHECK-NEXT: - 126.00 338.58 200.58 173.83 173.83 38.00 324.58 6.25 11.33
1739+
# CHECK-NEXT: - 126.00 339.25 201.25 173.83 173.83 38.00 325.25 6.25 11.33
17401740

17411741
# CHECK: Resource pressure by instruction:
17421742
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] Instructions:
@@ -2010,8 +2010,8 @@ vzeroupper
20102010
# CHECK-NEXT: - - 1.00 - - - - - - - vmovmskps %ymm0, %ecx
20112011
# CHECK-NEXT: - - - - 0.33 0.33 1.00 - - 0.33 vmovntdq %xmm0, (%rax)
20122012
# CHECK-NEXT: - - - - 0.33 0.33 1.00 - - 0.33 vmovntdq %ymm0, (%rax)
2013-
# CHECK-NEXT: - - - - 0.50 0.50 - - - - vmovntdqa (%rax), %xmm2
2014-
# CHECK-NEXT: - - - - 0.50 0.50 - - - - vmovntdqa (%rax), %ymm2
2013+
# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vmovntdqa (%rax), %xmm2
2014+
# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vmovntdqa (%rax), %ymm2
20152015
# CHECK-NEXT: - - - - 0.33 0.33 1.00 - - 0.33 vmovntpd %xmm0, (%rax)
20162016
# CHECK-NEXT: - - - - 0.33 0.33 1.00 - - 0.33 vmovntpd %ymm0, (%rax)
20172017
# CHECK-NEXT: - - - - 0.33 0.33 1.00 - - 0.33 vmovntps %xmm0, (%rax)

llvm/test/tools/llvm-mca/X86/SkylakeClient/resources-avx2.s

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -475,7 +475,7 @@ vpxor (%rax), %ymm1, %ymm2
475475
# CHECK-NEXT: 5 20 2.00 * vgatherqps %xmm0, (%rax,%ymm1,2), %xmm2
476476
# CHECK-NEXT: 1 3 1.00 vinserti128 $1, %xmm0, %ymm1, %ymm2
477477
# CHECK-NEXT: 2 7 0.50 * vinserti128 $1, (%rax), %ymm1, %ymm2
478-
# CHECK-NEXT: 1 7 0.50 * vmovntdqa (%rax), %ymm0
478+
# CHECK-NEXT: 2 8 0.50 * vmovntdqa (%rax), %ymm0
479479
# CHECK-NEXT: 2 4 2.00 vmpsadbw $1, %ymm0, %ymm1, %ymm2
480480
# CHECK-NEXT: 3 11 2.00 * vmpsadbw $1, (%rax), %ymm1, %ymm2
481481
# CHECK-NEXT: 1 1 0.50 vpabsb %ymm0, %ymm2
@@ -776,7 +776,7 @@ vpxor (%rax), %ymm1, %ymm2
776776

777777
# CHECK: Resource pressure per iteration:
778778
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9]
779-
# CHECK-NEXT: - - 110.33 89.33 100.33 100.33 5.00 164.33 - 0.33
779+
# CHECK-NEXT: - - 110.67 89.67 100.33 100.33 5.00 164.67 - 0.33
780780

781781
# CHECK: Resource pressure by instruction:
782782
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] Instructions:
@@ -795,7 +795,7 @@ vpxor (%rax), %ymm1, %ymm2
795795
# CHECK-NEXT: - - 1.33 0.33 2.00 2.00 - 1.33 - - vgatherqps %xmm0, (%rax,%ymm1,2), %xmm2
796796
# CHECK-NEXT: - - - - - - - 1.00 - - vinserti128 $1, %xmm0, %ymm1, %ymm2
797797
# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vinserti128 $1, (%rax), %ymm1, %ymm2
798-
# CHECK-NEXT: - - - - 0.50 0.50 - - - - vmovntdqa (%rax), %ymm0
798+
# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vmovntdqa (%rax), %ymm0
799799
# CHECK-NEXT: - - - - - - - 2.00 - - vmpsadbw $1, %ymm0, %ymm1, %ymm2
800800
# CHECK-NEXT: - - - - 0.50 0.50 - 2.00 - - vmpsadbw $1, (%rax), %ymm1, %ymm2
801801
# CHECK-NEXT: - - 0.50 0.50 - - - - - - vpabsb %ymm0, %ymm2

0 commit comments

Comments
 (0)