Skip to content

Commit 3276ee3

Browse files
committed
[llvm-mca][x86] Add test coverage for evex variant of vextractps
1 parent 710590e commit 3276ee3

File tree

5 files changed

+40
-5
lines changed

5 files changed

+40
-5
lines changed

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

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -298,6 +298,9 @@ vdivps %zmm16, %zmm17, %zmm19 {z}{k1}
298298
vdivps (%rax), %zmm17, %zmm19 {z}{k1}
299299
vdivps (%rax){1to16}, %zmm17, %zmm19 {z}{k1}
300300

301+
{evex} vextractps $1, %xmm0, %rcx
302+
{evex} vextractps $1, %xmm0, (%rax)
303+
301304
vfmadd132pd %zmm16, %zmm17, %zmm19
302305
vfmadd132pd (%rax), %zmm17, %zmm19
303306
vfmadd132pd (%rax){1to8}, %zmm17, %zmm19
@@ -1334,6 +1337,8 @@ vunpcklps (%rax){1to16}, %zmm17, %zmm19 {z}{k1}
13341337
# CHECK-NEXT: 3 29 28.00 vdivps %zmm16, %zmm17, %zmm19 {%k1} {z}
13351338
# CHECK-NEXT: 4 36 28.00 * vdivps (%rax), %zmm17, %zmm19 {%k1} {z}
13361339
# CHECK-NEXT: 4 36 28.00 * vdivps (%rax){1to16}, %zmm17, %zmm19 {%k1} {z}
1340+
# CHECK-NEXT: 2 3 1.00 {evex} vextractps $1, %xmm0, %ecx
1341+
# CHECK-NEXT: 3 5 1.00 * {evex} vextractps $1, %xmm0, (%rax)
13371342
# CHECK-NEXT: 1 5 0.50 vfmadd132pd %zmm16, %zmm17, %zmm19
13381343
# CHECK-NEXT: 2 10 0.50 * vfmadd132pd (%rax), %zmm17, %zmm19
13391344
# CHECK-NEXT: 2 10 0.50 * vfmadd132pd (%rax){1to8}, %zmm17, %zmm19
@@ -2027,7 +2032,7 @@ vunpcklps (%rax){1to16}, %zmm17, %zmm19 {z}{k1}
20272032

20282033
# CHECK: Resource pressure per iteration:
20292034
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6.0] [6.1]
2030-
# CHECK-NEXT: - 1506.00 197.00 334.00 16.00 522.00 299.50 299.50
2035+
# CHECK-NEXT: - 1506.00 198.00 335.00 17.00 523.00 300.00 300.00
20312036

20322037
# CHECK: Resource pressure by instruction:
20332038
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6.0] [6.1] Instructions:
@@ -2290,6 +2295,8 @@ vunpcklps (%rax){1to16}, %zmm17, %zmm19 {z}{k1}
22902295
# CHECK-NEXT: - 28.00 2.50 - - 0.50 - - vdivps %zmm16, %zmm17, %zmm19 {%k1} {z}
22912296
# CHECK-NEXT: - 28.00 2.50 - - 0.50 0.50 0.50 vdivps (%rax), %zmm17, %zmm19 {%k1} {z}
22922297
# CHECK-NEXT: - 28.00 2.50 - - 0.50 0.50 0.50 vdivps (%rax){1to16}, %zmm17, %zmm19 {%k1} {z}
2298+
# CHECK-NEXT: - - 1.00 0.50 - 0.50 - - {evex} vextractps $1, %xmm0, %ecx
2299+
# CHECK-NEXT: - - - 0.50 1.00 0.50 0.50 0.50 {evex} vextractps $1, %xmm0, (%rax)
22932300
# CHECK-NEXT: - - 0.50 0.50 - - - - vfmadd132pd %zmm16, %zmm17, %zmm19
22942301
# CHECK-NEXT: - - 0.50 0.50 - - 0.50 0.50 vfmadd132pd (%rax), %zmm17, %zmm19
22952302
# CHECK-NEXT: - - 0.50 0.50 - - 0.50 0.50 vfmadd132pd (%rax){1to8}, %zmm17, %zmm19

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

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -298,6 +298,9 @@ vdivps %zmm16, %zmm17, %zmm19 {z}{k1}
298298
vdivps (%rax), %zmm17, %zmm19 {z}{k1}
299299
vdivps (%rax){1to16}, %zmm17, %zmm19 {z}{k1}
300300

301+
{evex} vextractps $1, %xmm0, %rcx
302+
{evex} vextractps $1, %xmm0, (%rax)
303+
301304
vfmadd132pd %zmm16, %zmm17, %zmm19
302305
vfmadd132pd (%rax), %zmm17, %zmm19
303306
vfmadd132pd (%rax){1to8}, %zmm17, %zmm19
@@ -1334,6 +1337,8 @@ vunpcklps (%rax){1to16}, %zmm17, %zmm19 {z}{k1}
13341337
# CHECK-NEXT: 3 18 10.00 vdivps %zmm16, %zmm17, %zmm19 {%k1} {z}
13351338
# CHECK-NEXT: 4 25 10.00 * vdivps (%rax), %zmm17, %zmm19 {%k1} {z}
13361339
# CHECK-NEXT: 4 25 10.00 * vdivps (%rax){1to16}, %zmm17, %zmm19 {%k1} {z}
1340+
# CHECK-NEXT: 2 3 1.00 {evex} vextractps $1, %xmm0, %ecx
1341+
# CHECK-NEXT: 3 2 1.00 * {evex} vextractps $1, %xmm0, (%rax)
13371342
# CHECK-NEXT: 1 4 1.00 vfmadd132pd %zmm16, %zmm17, %zmm19
13381343
# CHECK-NEXT: 2 11 1.00 * vfmadd132pd (%rax), %zmm17, %zmm19
13391344
# CHECK-NEXT: 2 11 1.00 * vfmadd132pd (%rax){1to8}, %zmm17, %zmm19
@@ -2031,7 +2036,7 @@ vunpcklps (%rax){1to16}, %zmm17, %zmm19 {z}{k1}
20312036

20322037
# CHECK: Resource pressure per iteration:
20332038
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11]
2034-
# CHECK-NEXT: - 612.00 398.17 99.67 327.50 327.50 8.00 585.17 2.00 8.00 8.00 8.00
2039+
# CHECK-NEXT: - 612.00 399.17 99.67 327.50 327.50 8.50 587.17 2.00 8.50 8.50 8.50
20352040

20362041
# CHECK: Resource pressure by instruction:
20372042
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] Instructions:
@@ -2294,6 +2299,8 @@ vunpcklps (%rax){1to16}, %zmm17, %zmm19 {z}{k1}
22942299
# CHECK-NEXT: - 10.00 2.00 - - - - 1.00 - - - - vdivps %zmm16, %zmm17, %zmm19 {%k1} {z}
22952300
# CHECK-NEXT: - 10.00 2.00 - 0.50 0.50 - 1.00 - - - - vdivps (%rax), %zmm17, %zmm19 {%k1} {z}
22962301
# CHECK-NEXT: - 10.00 2.00 - 0.50 0.50 - 1.00 - - - - vdivps (%rax){1to16}, %zmm17, %zmm19 {%k1} {z}
2302+
# CHECK-NEXT: - - 1.00 - - - - 1.00 - - - - {evex} vextractps $1, %xmm0, %ecx
2303+
# CHECK-NEXT: - - - - - - 0.50 1.00 - 0.50 0.50 0.50 {evex} vextractps $1, %xmm0, (%rax)
22972304
# CHECK-NEXT: - - 1.00 - - - - - - - - - vfmadd132pd %zmm16, %zmm17, %zmm19
22982305
# CHECK-NEXT: - - 1.00 - 0.50 0.50 - - - - - - vfmadd132pd (%rax), %zmm17, %zmm19
22992306
# CHECK-NEXT: - - 1.00 - 0.50 0.50 - - - - - - vfmadd132pd (%rax){1to8}, %zmm17, %zmm19

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

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -298,6 +298,9 @@ vdivps %zmm16, %zmm17, %zmm19 {z}{k1}
298298
vdivps (%rax), %zmm17, %zmm19 {z}{k1}
299299
vdivps (%rax){1to16}, %zmm17, %zmm19 {z}{k1}
300300

301+
{evex} vextractps $1, %xmm0, %rcx
302+
{evex} vextractps $1, %xmm0, (%rax)
303+
301304
vfmadd132pd %zmm16, %zmm17, %zmm19
302305
vfmadd132pd (%rax), %zmm17, %zmm19
303306
vfmadd132pd (%rax){1to8}, %zmm17, %zmm19
@@ -1334,6 +1337,8 @@ vunpcklps (%rax){1to16}, %zmm17, %zmm19 {z}{k1}
13341337
# CHECK-NEXT: 3 18 2.00 vdivps %zmm16, %zmm17, %zmm19 {%k1} {z}
13351338
# CHECK-NEXT: 4 25 2.00 * vdivps (%rax), %zmm17, %zmm19 {%k1} {z}
13361339
# CHECK-NEXT: 4 25 2.00 * vdivps (%rax){1to16}, %zmm17, %zmm19 {%k1} {z}
1340+
# CHECK-NEXT: 2 4 1.00 {evex} vextractps $1, %xmm0, %ecx
1341+
# CHECK-NEXT: 3 12 1.00 * {evex} vextractps $1, %xmm0, (%rax)
13371342
# CHECK-NEXT: 1 4 1.00 vfmadd132pd %zmm16, %zmm17, %zmm19
13381343
# CHECK-NEXT: 2 12 1.00 * vfmadd132pd (%rax), %zmm17, %zmm19
13391344
# CHECK-NEXT: 2 12 1.00 * vfmadd132pd (%rax){1to8}, %zmm17, %zmm19
@@ -2032,7 +2037,7 @@ vunpcklps (%rax){1to16}, %zmm17, %zmm19 {z}{k1}
20322037

20332038
# CHECK: Resource pressure per iteration:
20342039
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12]
2035-
# CHECK-NEXT: 490.00 12.00 218.33 218.33 8.00 575.00 - 8.00 8.00 8.00 - 218.33 -
2040+
# CHECK-NEXT: 491.00 12.00 218.33 218.33 8.50 577.00 - 8.50 8.50 8.50 - 218.33 -
20362041

20372042
# CHECK: Resource pressure by instruction:
20382043
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] Instructions:
@@ -2295,6 +2300,8 @@ vunpcklps (%rax){1to16}, %zmm17, %zmm19 {z}{k1}
22952300
# CHECK-NEXT: 2.50 - - - - 0.50 - - - - - - - vdivps %zmm16, %zmm17, %zmm19 {%k1} {z}
22962301
# CHECK-NEXT: 2.50 - 0.33 0.33 - 0.50 - - - - - 0.33 - vdivps (%rax), %zmm17, %zmm19 {%k1} {z}
22972302
# CHECK-NEXT: 2.50 - 0.33 0.33 - 0.50 - - - - - 0.33 - vdivps (%rax){1to16}, %zmm17, %zmm19 {%k1} {z}
2303+
# CHECK-NEXT: 1.00 - - - - 1.00 - - - - - - - {evex} vextractps $1, %xmm0, %ecx
2304+
# CHECK-NEXT: - - - - 0.50 1.00 - 0.50 0.50 0.50 - - - {evex} vextractps $1, %xmm0, (%rax)
22982305
# CHECK-NEXT: 1.00 - - - - - - - - - - - - vfmadd132pd %zmm16, %zmm17, %zmm19
22992306
# CHECK-NEXT: 1.00 - 0.33 0.33 - - - - - - - 0.33 - vfmadd132pd (%rax), %zmm17, %zmm19
23002307
# CHECK-NEXT: 1.00 - 0.33 0.33 - - - - - - - 0.33 - vfmadd132pd (%rax){1to8}, %zmm17, %zmm19

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

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -298,6 +298,9 @@ vdivps %zmm16, %zmm17, %zmm19 {z}{k1}
298298
vdivps (%rax), %zmm17, %zmm19 {z}{k1}
299299
vdivps (%rax){1to16}, %zmm17, %zmm19 {z}{k1}
300300

301+
{evex} vextractps $1, %xmm0, %rcx
302+
{evex} vextractps $1, %xmm0, (%rax)
303+
301304
vfmadd132pd %zmm16, %zmm17, %zmm19
302305
vfmadd132pd (%rax), %zmm17, %zmm19
303306
vfmadd132pd (%rax){1to8}, %zmm17, %zmm19
@@ -1334,6 +1337,8 @@ vunpcklps (%rax){1to16}, %zmm17, %zmm19 {z}{k1}
13341337
# CHECK-NEXT: 3 18 10.00 vdivps %zmm16, %zmm17, %zmm19 {%k1} {z}
13351338
# CHECK-NEXT: 4 25 10.00 * vdivps (%rax), %zmm17, %zmm19 {%k1} {z}
13361339
# CHECK-NEXT: 4 25 10.00 * vdivps (%rax){1to16}, %zmm17, %zmm19 {%k1} {z}
1340+
# CHECK-NEXT: 2 3 1.00 {evex} vextractps $1, %xmm0, %ecx
1341+
# CHECK-NEXT: 3 2 1.00 * {evex} vextractps $1, %xmm0, (%rax)
13371342
# CHECK-NEXT: 1 4 0.50 vfmadd132pd %zmm16, %zmm17, %zmm19
13381343
# CHECK-NEXT: 2 11 0.50 * vfmadd132pd (%rax), %zmm17, %zmm19
13391344
# CHECK-NEXT: 2 11 0.50 * vfmadd132pd (%rax){1to8}, %zmm17, %zmm19
@@ -2029,7 +2034,7 @@ vunpcklps (%rax){1to16}, %zmm17, %zmm19 {z}{k1}
20292034

20302035
# CHECK: Resource pressure per iteration:
20312036
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9]
2032-
# CHECK-NEXT: - 612.00 339.67 99.67 332.83 332.83 16.00 643.67 2.00 5.33
2037+
# CHECK-NEXT: - 612.00 340.67 99.67 333.17 333.17 17.00 645.67 2.00 5.67
20332038

20342039
# CHECK: Resource pressure by instruction:
20352040
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] Instructions:
@@ -2292,6 +2297,8 @@ vunpcklps (%rax){1to16}, %zmm17, %zmm19 {z}{k1}
22922297
# CHECK-NEXT: - 10.00 2.00 - - - - 1.00 - - vdivps %zmm16, %zmm17, %zmm19 {%k1} {z}
22932298
# CHECK-NEXT: - 10.00 2.00 - 0.50 0.50 - 1.00 - - vdivps (%rax), %zmm17, %zmm19 {%k1} {z}
22942299
# CHECK-NEXT: - 10.00 2.00 - 0.50 0.50 - 1.00 - - vdivps (%rax){1to16}, %zmm17, %zmm19 {%k1} {z}
2300+
# CHECK-NEXT: - - 1.00 - - - - 1.00 - - {evex} vextractps $1, %xmm0, %ecx
2301+
# CHECK-NEXT: - - - - 0.33 0.33 1.00 1.00 - 0.33 {evex} vextractps $1, %xmm0, (%rax)
22952302
# CHECK-NEXT: - - 0.50 - - - - 0.50 - - vfmadd132pd %zmm16, %zmm17, %zmm19
22962303
# CHECK-NEXT: - - 0.50 - 0.50 0.50 - 0.50 - - vfmadd132pd (%rax), %zmm17, %zmm19
22972304
# CHECK-NEXT: - - 0.50 - 0.50 0.50 - 0.50 - - vfmadd132pd (%rax){1to8}, %zmm17, %zmm19

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

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -298,6 +298,9 @@ vdivps %zmm16, %zmm17, %zmm19 {z}{k1}
298298
vdivps (%rax), %zmm17, %zmm19 {z}{k1}
299299
vdivps (%rax){1to16}, %zmm17, %zmm19 {z}{k1}
300300

301+
{evex} vextractps $1, %xmm0, %rcx
302+
{evex} vextractps $1, %xmm0, (%rax)
303+
301304
vfmadd132pd %zmm16, %zmm17, %zmm19
302305
vfmadd132pd (%rax), %zmm17, %zmm19
303306
vfmadd132pd (%rax){1to8}, %zmm17, %zmm19
@@ -1334,6 +1337,8 @@ vunpcklps (%rax){1to16}, %zmm17, %zmm19 {z}{k1}
13341337
# CHECK-NEXT: 1 11 6.00 vdivps %zmm16, %zmm17, %zmm19 {%k1} {z}
13351338
# CHECK-NEXT: 1 18 6.00 * vdivps (%rax), %zmm17, %zmm19 {%k1} {z}
13361339
# CHECK-NEXT: 1 18 6.00 * vdivps (%rax){1to16}, %zmm17, %zmm19 {%k1} {z}
1340+
# CHECK-NEXT: 2 1 1.00 {evex} vextractps $1, %xmm0, %ecx
1341+
# CHECK-NEXT: 2 2 1.00 * {evex} vextractps $1, %xmm0, (%rax)
13371342
# CHECK-NEXT: 1 4 1.00 vfmadd132pd %zmm16, %zmm17, %zmm19
13381343
# CHECK-NEXT: 1 11 1.00 * vfmadd132pd (%rax), %zmm17, %zmm19
13391344
# CHECK-NEXT: 1 11 1.00 * vfmadd132pd (%rax){1to8}, %zmm17, %zmm19
@@ -2042,7 +2047,7 @@ vunpcklps (%rax){1to16}, %zmm17, %zmm19 {z}{k1}
20422047

20432048
# CHECK: Resource pressure per iteration:
20442049
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12.0] [12.1] [13] [14.0] [14.1] [14.2] [15.0] [15.1] [15.2] [16.0] [16.1]
2045-
# CHECK-NEXT: 2.67 2.67 2.67 - - - - - 221.00 1060.50 618.00 352.50 295.50 295.50 16.00 199.67 199.67 199.67 194.33 194.33 194.33 8.00 8.00
2050+
# CHECK-NEXT: 2.67 2.67 2.67 - - - - - 221.00 1060.50 618.00 352.50 297.00 297.00 17.00 200.00 200.00 200.00 194.33 194.33 194.33 8.50 8.50
20462051

20472052
# CHECK: Resource pressure by instruction:
20482053
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12.0] [12.1] [13] [14.0] [14.1] [14.2] [15.0] [15.1] [15.2] [16.0] [16.1] Instructions:
@@ -2305,6 +2310,8 @@ vunpcklps (%rax){1to16}, %zmm17, %zmm19 {z}{k1}
23052310
# CHECK-NEXT: - - - - - - - - - 6.00 - - - - - - - - - - - - - vdivps %zmm16, %zmm17, %zmm19 {%k1} {z}
23062311
# CHECK-NEXT: - - - - - - - - - 6.00 - - 0.50 0.50 - 0.33 0.33 0.33 0.33 0.33 0.33 - - vdivps (%rax), %zmm17, %zmm19 {%k1} {z}
23072312
# CHECK-NEXT: - - - - - - - - - 6.00 - - 0.50 0.50 - 0.33 0.33 0.33 0.33 0.33 0.33 - - vdivps (%rax){1to16}, %zmm17, %zmm19 {%k1} {z}
2313+
# CHECK-NEXT: - - - - - - - - - - - - 1.00 1.00 - - - - - - - - - {evex} vextractps $1, %xmm0, %ecx
2314+
# CHECK-NEXT: - - - - - - - - - - - - 0.50 0.50 1.00 0.33 0.33 0.33 - - - 0.50 0.50 {evex} vextractps $1, %xmm0, (%rax)
23082315
# CHECK-NEXT: - - - - - - - - 1.00 1.00 - - - - - - - - - - - - - vfmadd132pd %zmm16, %zmm17, %zmm19
23092316
# CHECK-NEXT: - - - - - - - - 1.00 1.00 - - 0.50 0.50 - 0.33 0.33 0.33 0.33 0.33 0.33 - - vfmadd132pd (%rax), %zmm17, %zmm19
23102317
# CHECK-NEXT: - - - - - - - - 1.00 1.00 - - 0.50 0.50 - 0.33 0.33 0.33 0.33 0.33 0.33 - - vfmadd132pd (%rax){1to8}, %zmm17, %zmm19

0 commit comments

Comments
 (0)