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

Commit 4619b05

Browse files
committed
[llvm-mca][x86] Add PREFETCHW instruction resource tests
These aren't just available via 3DNow! so test for them separately as well. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@338584 91177308-0d34-0410-b5e6-96231b3b80d8
1 parent 08b4b50 commit 4619b05

File tree

7 files changed

+268
-0
lines changed

7 files changed

+268
-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+
prefetch (%rax)
5+
prefetchw (%rax)
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 0.50 * * prefetch (%rax)
17+
# CHECK-NEXT: 1 5 0.50 * * prefetchw (%rax)
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: - - - - 1.00 1.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: - - - - 0.50 0.50 - - - - prefetch (%rax)
38+
# CHECK-NEXT: - - - - 0.50 0.50 - - - - prefetchw (%rax)
Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
# NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py
2+
# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=btver2 -instruction-tables < %s | FileCheck %s
3+
4+
prefetch (%rax)
5+
prefetchw (%rax)
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 * * prefetch (%rax)
17+
# CHECK-NEXT: 1 5 1.00 * * prefetchw (%rax)
18+
19+
# CHECK: Resources:
20+
# CHECK-NEXT: [0] - JALU0
21+
# CHECK-NEXT: [1] - JALU1
22+
# CHECK-NEXT: [2] - JDiv
23+
# CHECK-NEXT: [3] - JFPA
24+
# CHECK-NEXT: [4] - JFPM
25+
# CHECK-NEXT: [5] - JFPU0
26+
# CHECK-NEXT: [6] - JFPU1
27+
# CHECK-NEXT: [7] - JLAGU
28+
# CHECK-NEXT: [8] - JMul
29+
# CHECK-NEXT: [9] - JSAGU
30+
# CHECK-NEXT: [10] - JSTC
31+
# CHECK-NEXT: [11] - JVALU0
32+
# CHECK-NEXT: [12] - JVALU1
33+
# CHECK-NEXT: [13] - JVIMUL
34+
35+
# CHECK: Resource pressure per iteration:
36+
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13]
37+
# CHECK-NEXT: - - - - - - - 2.00 - - - - - -
38+
39+
# CHECK: Resource pressure by instruction:
40+
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] Instructions:
41+
# CHECK-NEXT: - - - - - - - 1.00 - - - - - - prefetch (%rax)
42+
# CHECK-NEXT: - - - - - - - 1.00 - - - - - - prefetchw (%rax)
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+
prefetch (%rax)
5+
prefetchw (%rax)
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 0.50 * * prefetch (%rax)
17+
# CHECK-NEXT: 1 5 0.50 * * prefetchw (%rax)
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: - - - - - - 1.00 1.00
32+
33+
# CHECK: Resource pressure by instruction:
34+
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6.0] [6.1] Instructions:
35+
# CHECK-NEXT: - - - - - - 0.50 0.50 prefetch (%rax)
36+
# CHECK-NEXT: - - - - - - 0.50 0.50 prefetchw (%rax)
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+
prefetch (%rax)
5+
prefetchw (%rax)
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 3 1.00 * * prefetch (%rax)
17+
# CHECK-NEXT: 1 3 1.00 * * prefetchw (%rax)
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: - - - - - - - 2.00
32+
33+
# CHECK: Resource pressure by instruction:
34+
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] Instructions:
35+
# CHECK-NEXT: - - - - - - - 1.00 prefetch (%rax)
36+
# CHECK-NEXT: - - - - - - - 1.00 prefetchw (%rax)
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+
prefetch (%rax)
5+
prefetchw (%rax)
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 0.50 * * prefetch (%rax)
17+
# CHECK-NEXT: 1 5 0.50 * * prefetchw (%rax)
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: - - - - 1.00 1.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: - - - - 0.50 0.50 - - - - prefetch (%rax)
38+
# CHECK-NEXT: - - - - 0.50 0.50 - - - - prefetchw (%rax)
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+
prefetch (%rax)
5+
prefetchw (%rax)
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 0.50 * * prefetch (%rax)
17+
# CHECK-NEXT: 1 5 0.50 * * prefetchw (%rax)
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: - - - - 1.00 1.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: - - - - 0.50 0.50 - - - - prefetch (%rax)
38+
# CHECK-NEXT: - - - - 0.50 0.50 - - - - prefetchw (%rax)
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+
prefetch (%rax)
5+
prefetchw (%rax)
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 8 0.50 * * prefetch (%rax)
17+
# CHECK-NEXT: 1 8 0.50 * * prefetchw (%rax)
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: 1.00 1.00 - - - - - - - - - -
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: 0.50 0.50 - - - - - - - - - - prefetch (%rax)
40+
# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - prefetchw (%rax)

0 commit comments

Comments
 (0)