Skip to content
This repository was archived by the owner on Apr 23, 2020. It is now read-only.

Commit 08b4b50

Browse files
committed
[llvm-mca][x86] Add PCLMUL instruction resource tests
Renamed the btver2 file that already contained them - the other targets were only testing the AVX versions git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@338583 91177308-0d34-0410-b5e6-96231b3b80d8
1 parent 742c679 commit 08b4b50

File tree

9 files changed

+300
-0
lines changed

9 files changed

+300
-0
lines changed
Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
# NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py
2+
# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=broadwell -instruction-tables < %s | FileCheck %s
3+
4+
pclmulqdq $11, %xmm0, %xmm2
5+
pclmulqdq $11, (%rax), %xmm2
6+
7+
# CHECK: Instruction Info:
8+
# CHECK-NEXT: [1]: #uOps
9+
# CHECK-NEXT: [2]: Latency
10+
# CHECK-NEXT: [3]: RThroughput
11+
# CHECK-NEXT: [4]: MayLoad
12+
# CHECK-NEXT: [5]: MayStore
13+
# CHECK-NEXT: [6]: HasSideEffects (U)
14+
15+
# CHECK: [1] [2] [3] [4] [5] [6] Instructions:
16+
# CHECK-NEXT: 1 5 1.00 pclmulqdq $11, %xmm0, %xmm2
17+
# CHECK-NEXT: 2 10 1.00 * pclmulqdq $11, (%rax), %xmm2
18+
19+
# CHECK: Resources:
20+
# CHECK-NEXT: [0] - BWDivider
21+
# CHECK-NEXT: [1] - BWFPDivider
22+
# CHECK-NEXT: [2] - BWPort0
23+
# CHECK-NEXT: [3] - BWPort1
24+
# CHECK-NEXT: [4] - BWPort2
25+
# CHECK-NEXT: [5] - BWPort3
26+
# CHECK-NEXT: [6] - BWPort4
27+
# CHECK-NEXT: [7] - BWPort5
28+
# CHECK-NEXT: [8] - BWPort6
29+
# CHECK-NEXT: [9] - BWPort7
30+
31+
# CHECK: Resource pressure per iteration:
32+
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9]
33+
# CHECK-NEXT: - - 2.00 - 0.50 0.50 - - - -
34+
35+
# CHECK: Resource pressure by instruction:
36+
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] Instructions:
37+
# CHECK-NEXT: - - 1.00 - - - - - - - pclmulqdq $11, %xmm0, %xmm2
38+
# CHECK-NEXT: - - 1.00 - 0.50 0.50 - - - - pclmulqdq $11, (%rax), %xmm2
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
# NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py
2+
# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=x86-64 -instruction-tables < %s | FileCheck %s
3+
4+
pclmulqdq $11, %xmm0, %xmm2
5+
pclmulqdq $11, (%rax), %xmm2
6+
7+
# CHECK: Instruction Info:
8+
# CHECK-NEXT: [1]: #uOps
9+
# CHECK-NEXT: [2]: Latency
10+
# CHECK-NEXT: [3]: RThroughput
11+
# CHECK-NEXT: [4]: MayLoad
12+
# CHECK-NEXT: [5]: MayStore
13+
# CHECK-NEXT: [6]: HasSideEffects (U)
14+
15+
# CHECK: [1] [2] [3] [4] [5] [6] Instructions:
16+
# CHECK-NEXT: 1 14 6.00 pclmulqdq $11, %xmm0, %xmm2
17+
# CHECK-NEXT: 1 14 5.67 * pclmulqdq $11, (%rax), %xmm2
18+
19+
# CHECK: Resources:
20+
# CHECK-NEXT: [0] - SBDivider
21+
# CHECK-NEXT: [1] - SBFPDivider
22+
# CHECK-NEXT: [2] - SBPort0
23+
# CHECK-NEXT: [3] - SBPort1
24+
# CHECK-NEXT: [4] - SBPort4
25+
# CHECK-NEXT: [5] - SBPort5
26+
# CHECK-NEXT: [6.0] - SBPort23
27+
# CHECK-NEXT: [6.1] - SBPort23
28+
29+
# CHECK: Resource pressure per iteration:
30+
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6.0] [6.1]
31+
# CHECK-NEXT: - - 11.67 11.67 - 11.67 0.50 0.50
32+
33+
# CHECK: Resource pressure by instruction:
34+
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6.0] [6.1] Instructions:
35+
# CHECK-NEXT: - - 6.00 6.00 - 6.00 - - pclmulqdq $11, %xmm0, %xmm2
36+
# CHECK-NEXT: - - 5.67 5.67 - 5.67 0.50 0.50 pclmulqdq $11, (%rax), %xmm2
Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
# NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py
2+
# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=haswell -instruction-tables < %s | FileCheck %s
3+
4+
pclmulqdq $11, %xmm0, %xmm2
5+
pclmulqdq $11, (%rax), %xmm2
6+
7+
# CHECK: Instruction Info:
8+
# CHECK-NEXT: [1]: #uOps
9+
# CHECK-NEXT: [2]: Latency
10+
# CHECK-NEXT: [3]: RThroughput
11+
# CHECK-NEXT: [4]: MayLoad
12+
# CHECK-NEXT: [5]: MayStore
13+
# CHECK-NEXT: [6]: HasSideEffects (U)
14+
15+
# CHECK: [1] [2] [3] [4] [5] [6] Instructions:
16+
# CHECK-NEXT: 3 11 2.00 pclmulqdq $11, %xmm0, %xmm2
17+
# CHECK-NEXT: 4 17 2.00 * pclmulqdq $11, (%rax), %xmm2
18+
19+
# CHECK: Resources:
20+
# CHECK-NEXT: [0] - HWDivider
21+
# CHECK-NEXT: [1] - HWFPDivider
22+
# CHECK-NEXT: [2] - HWPort0
23+
# CHECK-NEXT: [3] - HWPort1
24+
# CHECK-NEXT: [4] - HWPort2
25+
# CHECK-NEXT: [5] - HWPort3
26+
# CHECK-NEXT: [6] - HWPort4
27+
# CHECK-NEXT: [7] - HWPort5
28+
# CHECK-NEXT: [8] - HWPort6
29+
# CHECK-NEXT: [9] - HWPort7
30+
31+
# CHECK: Resource pressure per iteration:
32+
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9]
33+
# CHECK-NEXT: - - 4.00 - 0.50 0.50 - 2.00 - -
34+
35+
# CHECK: Resource pressure by instruction:
36+
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] Instructions:
37+
# CHECK-NEXT: - - 2.00 - - - - 1.00 - - pclmulqdq $11, %xmm0, %xmm2
38+
# CHECK-NEXT: - - 2.00 - 0.50 0.50 - 1.00 - - pclmulqdq $11, (%rax), %xmm2
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
# NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py
2+
# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=slm -instruction-tables < %s | FileCheck %s
3+
4+
pclmulqdq $11, %xmm0, %xmm2
5+
pclmulqdq $11, (%rax), %xmm2
6+
7+
# CHECK: Instruction Info:
8+
# CHECK-NEXT: [1]: #uOps
9+
# CHECK-NEXT: [2]: Latency
10+
# CHECK-NEXT: [3]: RThroughput
11+
# CHECK-NEXT: [4]: MayLoad
12+
# CHECK-NEXT: [5]: MayStore
13+
# CHECK-NEXT: [6]: HasSideEffects (U)
14+
15+
# CHECK: [1] [2] [3] [4] [5] [6] Instructions:
16+
# CHECK-NEXT: 1 10 10.00 pclmulqdq $11, %xmm0, %xmm2
17+
# CHECK-NEXT: 1 10 10.00 * pclmulqdq $11, (%rax), %xmm2
18+
19+
# CHECK: Resources:
20+
# CHECK-NEXT: [0] - SLMDivider
21+
# CHECK-NEXT: [1] - SLMFPDivider
22+
# CHECK-NEXT: [2] - SLMFPMultiplier
23+
# CHECK-NEXT: [3] - SLM_FPC_RSV0
24+
# CHECK-NEXT: [4] - SLM_FPC_RSV1
25+
# CHECK-NEXT: [5] - SLM_IEC_RSV0
26+
# CHECK-NEXT: [6] - SLM_IEC_RSV1
27+
# CHECK-NEXT: [7] - SLM_MEC_RSV
28+
29+
# CHECK: Resource pressure per iteration:
30+
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7]
31+
# CHECK-NEXT: - - - 20.00 - - - 1.00
32+
33+
# CHECK: Resource pressure by instruction:
34+
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] Instructions:
35+
# CHECK-NEXT: - - - 10.00 - - - - pclmulqdq $11, %xmm0, %xmm2
36+
# CHECK-NEXT: - - - 10.00 - - - 1.00 pclmulqdq $11, (%rax), %xmm2
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
# NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py
2+
# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=sandybridge -instruction-tables < %s | FileCheck %s
3+
4+
pclmulqdq $11, %xmm0, %xmm2
5+
pclmulqdq $11, (%rax), %xmm2
6+
7+
# CHECK: Instruction Info:
8+
# CHECK-NEXT: [1]: #uOps
9+
# CHECK-NEXT: [2]: Latency
10+
# CHECK-NEXT: [3]: RThroughput
11+
# CHECK-NEXT: [4]: MayLoad
12+
# CHECK-NEXT: [5]: MayStore
13+
# CHECK-NEXT: [6]: HasSideEffects (U)
14+
15+
# CHECK: [1] [2] [3] [4] [5] [6] Instructions:
16+
# CHECK-NEXT: 1 14 6.00 pclmulqdq $11, %xmm0, %xmm2
17+
# CHECK-NEXT: 1 14 5.67 * pclmulqdq $11, (%rax), %xmm2
18+
19+
# CHECK: Resources:
20+
# CHECK-NEXT: [0] - SBDivider
21+
# CHECK-NEXT: [1] - SBFPDivider
22+
# CHECK-NEXT: [2] - SBPort0
23+
# CHECK-NEXT: [3] - SBPort1
24+
# CHECK-NEXT: [4] - SBPort4
25+
# CHECK-NEXT: [5] - SBPort5
26+
# CHECK-NEXT: [6.0] - SBPort23
27+
# CHECK-NEXT: [6.1] - SBPort23
28+
29+
# CHECK: Resource pressure per iteration:
30+
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6.0] [6.1]
31+
# CHECK-NEXT: - - 11.67 11.67 - 11.67 0.50 0.50
32+
33+
# CHECK: Resource pressure by instruction:
34+
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6.0] [6.1] Instructions:
35+
# CHECK-NEXT: - - 6.00 6.00 - 6.00 - - pclmulqdq $11, %xmm0, %xmm2
36+
# CHECK-NEXT: - - 5.67 5.67 - 5.67 0.50 0.50 pclmulqdq $11, (%rax), %xmm2
Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
# NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py
2+
# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=skylake -instruction-tables < %s | FileCheck %s
3+
4+
pclmulqdq $11, %xmm0, %xmm2
5+
pclmulqdq $11, (%rax), %xmm2
6+
7+
# CHECK: Instruction Info:
8+
# CHECK-NEXT: [1]: #uOps
9+
# CHECK-NEXT: [2]: Latency
10+
# CHECK-NEXT: [3]: RThroughput
11+
# CHECK-NEXT: [4]: MayLoad
12+
# CHECK-NEXT: [5]: MayStore
13+
# CHECK-NEXT: [6]: HasSideEffects (U)
14+
15+
# CHECK: [1] [2] [3] [4] [5] [6] Instructions:
16+
# CHECK-NEXT: 1 6 1.00 pclmulqdq $11, %xmm0, %xmm2
17+
# CHECK-NEXT: 2 12 1.00 * pclmulqdq $11, (%rax), %xmm2
18+
19+
# CHECK: Resources:
20+
# CHECK-NEXT: [0] - SKLDivider
21+
# CHECK-NEXT: [1] - SKLFPDivider
22+
# CHECK-NEXT: [2] - SKLPort0
23+
# CHECK-NEXT: [3] - SKLPort1
24+
# CHECK-NEXT: [4] - SKLPort2
25+
# CHECK-NEXT: [5] - SKLPort3
26+
# CHECK-NEXT: [6] - SKLPort4
27+
# CHECK-NEXT: [7] - SKLPort5
28+
# CHECK-NEXT: [8] - SKLPort6
29+
# CHECK-NEXT: [9] - SKLPort7
30+
31+
# CHECK: Resource pressure per iteration:
32+
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9]
33+
# CHECK-NEXT: - - - - 0.50 0.50 - 2.00 - -
34+
35+
# CHECK: Resource pressure by instruction:
36+
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] Instructions:
37+
# CHECK-NEXT: - - - - - - - 1.00 - - pclmulqdq $11, %xmm0, %xmm2
38+
# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - pclmulqdq $11, (%rax), %xmm2
Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
# NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py
2+
# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=skylake-avx512 -instruction-tables < %s | FileCheck %s
3+
4+
pclmulqdq $11, %xmm0, %xmm2
5+
pclmulqdq $11, (%rax), %xmm2
6+
7+
# CHECK: Instruction Info:
8+
# CHECK-NEXT: [1]: #uOps
9+
# CHECK-NEXT: [2]: Latency
10+
# CHECK-NEXT: [3]: RThroughput
11+
# CHECK-NEXT: [4]: MayLoad
12+
# CHECK-NEXT: [5]: MayStore
13+
# CHECK-NEXT: [6]: HasSideEffects (U)
14+
15+
# CHECK: [1] [2] [3] [4] [5] [6] Instructions:
16+
# CHECK-NEXT: 1 6 1.00 pclmulqdq $11, %xmm0, %xmm2
17+
# CHECK-NEXT: 2 12 1.00 * pclmulqdq $11, (%rax), %xmm2
18+
19+
# CHECK: Resources:
20+
# CHECK-NEXT: [0] - SKXDivider
21+
# CHECK-NEXT: [1] - SKXFPDivider
22+
# CHECK-NEXT: [2] - SKXPort0
23+
# CHECK-NEXT: [3] - SKXPort1
24+
# CHECK-NEXT: [4] - SKXPort2
25+
# CHECK-NEXT: [5] - SKXPort3
26+
# CHECK-NEXT: [6] - SKXPort4
27+
# CHECK-NEXT: [7] - SKXPort5
28+
# CHECK-NEXT: [8] - SKXPort6
29+
# CHECK-NEXT: [9] - SKXPort7
30+
31+
# CHECK: Resource pressure per iteration:
32+
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9]
33+
# CHECK-NEXT: - - - - 0.50 0.50 - 2.00 - -
34+
35+
# CHECK: Resource pressure by instruction:
36+
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] Instructions:
37+
# CHECK-NEXT: - - - - - - - 1.00 - - pclmulqdq $11, %xmm0, %xmm2
38+
# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - pclmulqdq $11, (%rax), %xmm2
Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
# NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py
2+
# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=znver1 -instruction-tables < %s | FileCheck %s
3+
4+
pclmulqdq $11, %xmm0, %xmm2
5+
pclmulqdq $11, (%rax), %xmm2
6+
7+
# CHECK: Instruction Info:
8+
# CHECK-NEXT: [1]: #uOps
9+
# CHECK-NEXT: [2]: Latency
10+
# CHECK-NEXT: [3]: RThroughput
11+
# CHECK-NEXT: [4]: MayLoad
12+
# CHECK-NEXT: [5]: MayStore
13+
# CHECK-NEXT: [6]: HasSideEffects (U)
14+
15+
# CHECK: [1] [2] [3] [4] [5] [6] Instructions:
16+
# CHECK-NEXT: 1 100 0.25 pclmulqdq $11, %xmm0, %xmm2
17+
# CHECK-NEXT: 1 100 0.25 * pclmulqdq $11, (%rax), %xmm2
18+
19+
# CHECK: Resources:
20+
# CHECK-NEXT: [0] - ZnAGU0
21+
# CHECK-NEXT: [1] - ZnAGU1
22+
# CHECK-NEXT: [2] - ZnALU0
23+
# CHECK-NEXT: [3] - ZnALU1
24+
# CHECK-NEXT: [4] - ZnALU2
25+
# CHECK-NEXT: [5] - ZnALU3
26+
# CHECK-NEXT: [6] - ZnDivider
27+
# CHECK-NEXT: [7] - ZnFPU0
28+
# CHECK-NEXT: [8] - ZnFPU1
29+
# CHECK-NEXT: [9] - ZnFPU2
30+
# CHECK-NEXT: [10] - ZnFPU3
31+
# CHECK-NEXT: [11] - ZnMultiplier
32+
33+
# CHECK: Resource pressure per iteration:
34+
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11]
35+
# CHECK-NEXT: - - - - - - - - - - - -
36+
37+
# CHECK: Resource pressure by instruction:
38+
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] Instructions:
39+
# CHECK-NEXT: - - - - - - - - - - - - pclmulqdq $11, %xmm0, %xmm2
40+
# CHECK-NEXT: - - - - - - - - - - - - pclmulqdq $11, (%rax), %xmm2

0 commit comments

Comments
 (0)