Skip to content

Commit ce68327

Browse files
committed
[X86] PBLENDW instructions can run on Port1 or Port5
When we copied the SkylakeServer model we missed this diff Confirmed with uops.info and Agner
1 parent cb6f657 commit ce68327

File tree

4 files changed

+18
-18
lines changed

4 files changed

+18
-18
lines changed

llvm/lib/Target/X86/X86SchedIceLake.td

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -396,9 +396,9 @@ defm : ICXWriteResPair<WriteVarShuffle, [ICXPort5], 1, [1], 1, 5>; // Vector v
396396
defm : ICXWriteResPair<WriteVarShuffleX, [ICXPort15], 1, [1], 1, 6>;
397397
defm : ICXWriteResPair<WriteVarShuffleY, [ICXPort15], 1, [1], 1, 7>;
398398
defm : ICXWriteResPair<WriteVarShuffleZ, [ICXPort5], 1, [1], 1, 7>;
399-
defm : ICXWriteResPair<WriteBlend, [ICXPort5], 1, [1], 1, 6>; // Vector blends.
400-
defm : ICXWriteResPair<WriteBlendY,[ICXPort5], 1, [1], 1, 7>;
401-
defm : ICXWriteResPair<WriteBlendZ,[ICXPort5], 1, [1], 1, 7>;
399+
defm : ICXWriteResPair<WriteBlend, [ICXPort15], 1, [1], 1, 6>; // Vector blends.
400+
defm : ICXWriteResPair<WriteBlendY,[ICXPort15], 1, [1], 1, 7>;
401+
defm : ICXWriteResPair<WriteBlendZ,[ICXPort15], 1, [1], 1, 7>;
402402
defm : ICXWriteResPair<WriteVarBlend, [ICXPort015], 2, [2], 2, 6>; // Vector variable blends.
403403
defm : ICXWriteResPair<WriteVarBlendY,[ICXPort015], 2, [2], 2, 6>;
404404
defm : ICXWriteResPair<WriteVarBlendZ,[ICXPort05], 2, [1], 1, 6>;

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

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1401,8 +1401,8 @@ vzeroupper
14011401
# CHECK-NEXT: 2 7 0.50 * vpavgw (%rax), %xmm1, %xmm2
14021402
# CHECK-NEXT: 2 2 0.67 vpblendvb %xmm3, %xmm0, %xmm1, %xmm2
14031403
# CHECK-NEXT: 3 8 0.67 * vpblendvb %xmm3, (%rax), %xmm1, %xmm2
1404-
# CHECK-NEXT: 1 1 1.00 vpblendw $11, %xmm0, %xmm1, %xmm2
1405-
# CHECK-NEXT: 2 7 1.00 * vpblendw $11, (%rax), %xmm1, %xmm2
1404+
# CHECK-NEXT: 1 1 0.50 vpblendw $11, %xmm0, %xmm1, %xmm2
1405+
# CHECK-NEXT: 2 7 0.50 * vpblendw $11, (%rax), %xmm1, %xmm2
14061406
# CHECK-NEXT: 1 6 1.00 vpclmulqdq $11, %xmm0, %xmm1, %xmm2
14071407
# CHECK-NEXT: 2 12 1.00 * vpclmulqdq $11, (%rax), %xmm1, %xmm2
14081408
# CHECK-NEXT: 1 1 0.50 vpcmpeqb %xmm0, %xmm1, %xmm2
@@ -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 322.92 231.92 160.50 160.50 19.00 297.92 6.25 19.00 19.00 19.00
1741+
# CHECK-NEXT: - 126.00 322.92 232.92 160.50 160.50 19.00 296.92 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:
@@ -2113,8 +2113,8 @@ vzeroupper
21132113
# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - - - vpavgw (%rax), %xmm1, %xmm2
21142114
# CHECK-NEXT: - - 0.67 0.67 - - - 0.67 - - - - vpblendvb %xmm3, %xmm0, %xmm1, %xmm2
21152115
# CHECK-NEXT: - - 0.67 0.67 0.50 0.50 - 0.67 - - - - vpblendvb %xmm3, (%rax), %xmm1, %xmm2
2116-
# CHECK-NEXT: - - - - - - - 1.00 - - - - vpblendw $11, %xmm0, %xmm1, %xmm2
2117-
# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpblendw $11, (%rax), %xmm1, %xmm2
2116+
# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - vpblendw $11, %xmm0, %xmm1, %xmm2
2117+
# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - vpblendw $11, (%rax), %xmm1, %xmm2
21182118
# CHECK-NEXT: - - - - - - - 1.00 - - - - vpclmulqdq $11, %xmm0, %xmm1, %xmm2
21192119
# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpclmulqdq $11, (%rax), %xmm1, %xmm2
21202120
# CHECK-NEXT: - - 0.50 0.50 - - - - - - - - vpcmpeqb %xmm0, %xmm1, %xmm2

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

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -524,8 +524,8 @@ vpxor (%rax), %ymm1, %ymm2
524524
# CHECK-NEXT: 2 8 0.50 * vpblendd $11, (%rax), %ymm1, %ymm2
525525
# CHECK-NEXT: 2 2 0.67 vpblendvb %ymm3, %ymm0, %ymm1, %ymm2
526526
# CHECK-NEXT: 3 8 0.67 * vpblendvb %ymm3, (%rax), %ymm1, %ymm2
527-
# CHECK-NEXT: 1 1 1.00 vpblendw $11, %ymm0, %ymm1, %ymm2
528-
# CHECK-NEXT: 2 8 1.00 * vpblendw $11, (%rax), %ymm1, %ymm2
527+
# CHECK-NEXT: 1 1 0.50 vpblendw $11, %ymm0, %ymm1, %ymm2
528+
# CHECK-NEXT: 2 8 0.50 * vpblendw $11, (%rax), %ymm1, %ymm2
529529
# CHECK-NEXT: 1 3 1.00 vpbroadcastb %xmm0, %xmm0
530530
# CHECK-NEXT: 2 7 1.00 * vpbroadcastb (%rax), %xmm0
531531
# CHECK-NEXT: 1 3 1.00 vpbroadcastb %xmm0, %ymm0
@@ -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 102.33 98.00 98.00 2.50 151.33 - 2.50 2.50 2.50
781+
# CHECK-NEXT: - - 110.33 103.33 98.00 98.00 2.50 150.33 - 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:
@@ -846,8 +846,8 @@ vpxor (%rax), %ymm1, %ymm2
846846
# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - - - vpblendd $11, (%rax), %ymm1, %ymm2
847847
# CHECK-NEXT: - - 0.67 0.67 - - - 0.67 - - - - vpblendvb %ymm3, %ymm0, %ymm1, %ymm2
848848
# CHECK-NEXT: - - 0.67 0.67 0.50 0.50 - 0.67 - - - - vpblendvb %ymm3, (%rax), %ymm1, %ymm2
849-
# CHECK-NEXT: - - - - - - - 1.00 - - - - vpblendw $11, %ymm0, %ymm1, %ymm2
850-
# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpblendw $11, (%rax), %ymm1, %ymm2
849+
# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - vpblendw $11, %ymm0, %ymm1, %ymm2
850+
# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - vpblendw $11, (%rax), %ymm1, %ymm2
851851
# CHECK-NEXT: - - - - - - - 1.00 - - - - vpbroadcastb %xmm0, %xmm0
852852
# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpbroadcastb (%rax), %xmm0
853853
# CHECK-NEXT: - - - - - - - 1.00 - - - - vpbroadcastb %xmm0, %ymm0

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

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -178,8 +178,8 @@ roundss $1, (%rax), %xmm2
178178
# CHECK-NEXT: 2 10 1.00 * packusdw (%rax), %xmm2
179179
# CHECK-NEXT: 2 2 0.67 pblendvb %xmm0, %xmm0, %xmm2
180180
# CHECK-NEXT: 3 8 0.67 * pblendvb %xmm0, (%rax), %xmm2
181-
# CHECK-NEXT: 1 1 1.00 pblendw $11, %xmm0, %xmm2
182-
# CHECK-NEXT: 2 7 1.00 * pblendw $11, (%rax), %xmm2
181+
# CHECK-NEXT: 1 1 0.50 pblendw $11, %xmm0, %xmm2
182+
# CHECK-NEXT: 2 7 0.50 * pblendw $11, (%rax), %xmm2
183183
# CHECK-NEXT: 1 1 0.50 pcmpeqq %xmm0, %xmm2
184184
# CHECK-NEXT: 2 7 0.50 * pcmpeqq (%rax), %xmm2
185185
# CHECK-NEXT: 2 3 1.00 pextrb $1, %xmm0, %ecx
@@ -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 40.67 22.00 22.00 2.50 54.67 - 2.50 2.50 2.50
271+
# CHECK-NEXT: - - 36.67 41.67 22.00 22.00 2.50 53.67 - 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:
@@ -295,8 +295,8 @@ roundss $1, (%rax), %xmm2
295295
# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - packusdw (%rax), %xmm2
296296
# CHECK-NEXT: - - 0.67 0.67 - - - 0.67 - - - - pblendvb %xmm0, %xmm0, %xmm2
297297
# CHECK-NEXT: - - 0.67 0.67 0.50 0.50 - 0.67 - - - - pblendvb %xmm0, (%rax), %xmm2
298-
# CHECK-NEXT: - - - - - - - 1.00 - - - - pblendw $11, %xmm0, %xmm2
299-
# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - pblendw $11, (%rax), %xmm2
298+
# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - pblendw $11, %xmm0, %xmm2
299+
# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - pblendw $11, (%rax), %xmm2
300300
# CHECK-NEXT: - - 0.50 0.50 - - - - - - - - pcmpeqq %xmm0, %xmm2
301301
# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - - - pcmpeqq (%rax), %xmm2
302302
# CHECK-NEXT: - - 1.00 - - - - 1.00 - - - - pextrb $1, %xmm0, %ecx

0 commit comments

Comments
 (0)