Skip to content

Commit 59e72f4

Browse files
committed
Cover more instructions in llvm-mca test
Extend i64..s to cover more instructions including MSA
1 parent 6784668 commit 59e72f4

File tree

1 file changed

+52
-12
lines changed
  • llvm/test/tools/llvm-mca/Mips

1 file changed

+52
-12
lines changed

llvm/test/tools/llvm-mca/Mips/i6400.s

Lines changed: 52 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
# NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py
2-
# RUN: llvm-mca -mtriple=mips64el -mcpu=i6400 -timeline -iterations=1 < %s | FileCheck %s
2+
# RUN: llvm-mca -mtriple=mips64el -mcpu=i6400 --mattr=msa -timeline -iterations=1 < %s | FileCheck %s
33
.abicalls
44
.text
55
.globl i6400
@@ -15,17 +15,27 @@ i6400:
1515
sw $3, 8($sp)
1616
div $2, $1
1717
sw $2, 0($sp)
18+
add $4, $2, $3
19+
clo $5, $4
20+
sw $4, 8($sp)
21+
sw $5, 24($sp)
22+
ld.d $w1, 0($2)
23+
ld.d $w2, 0($3)
24+
add_a.d $w0, $w1, $w2
25+
fmsub.d $w3, $w1, $w2
26+
st.d $w0, 16($sp)
27+
st.d $w3, 32($sp)
1828
.end i6400
1929

2030
# CHECK: Iterations: 1
21-
# CHECK-NEXT: Instructions: 7
22-
# CHECK-NEXT: Total Cycles: 42
23-
# CHECK-NEXT: Total uOps: 7
31+
# CHECK-NEXT: Instructions: 17
32+
# CHECK-NEXT: Total Cycles: 59
33+
# CHECK-NEXT: Total uOps: 17
2434

2535
# CHECK: Dispatch Width: 2
26-
# CHECK-NEXT: uOps Per Cycle: 0.17
27-
# CHECK-NEXT: IPC: 0.17
28-
# CHECK-NEXT: Block RThroughput: 4.0
36+
# CHECK-NEXT: uOps Per Cycle: 0.29
37+
# CHECK-NEXT: IPC: 0.29
38+
# CHECK-NEXT: Block RThroughput: 8.5
2939

3040
# CHECK: Instruction Info:
3141
# CHECK-NEXT: [1]: #uOps
@@ -38,11 +48,22 @@ i6400:
3848
# CHECK: [1] [2] [3] [4] [5] [6] Instructions:
3949
# CHECK-NEXT: 1 3 1.00 * lw $1, 0($sp)
4050
# CHECK-NEXT: 1 3 1.00 * lw $2, 8($sp)
41-
# CHECK-NEXT: 1 1 0.50 move $3, $1
51+
# CHECK-NEXT: 1 1 0.50 move $3, $1
4252
# CHECK-NEXT: 1 4 1.00 mul $3, $2, $3
4353
# CHECK-NEXT: 1 1 1.00 * sw $3, 8($sp)
4454
# CHECK-NEXT: 1 32 1.00 div $2, $1
4555
# CHECK-NEXT: 1 1 1.00 * sw $2, 0($sp)
56+
# CHECK-NEXT: 1 1 0.50 U add $4, $2, $3
57+
# CHECK-NEXT: 1 1 0.50 clo $5, $4
58+
# CHECK-NEXT: 1 1 1.00 * sw $4, 8($sp)
59+
# CHECK-NEXT: 1 1 1.00 * sw $5, 24($sp)
60+
# CHECK-NEXT: 1 3 2.00 * ld.d $w1, 0($2)
61+
# CHECK-NEXT: 1 3 2.00 * ld.d $w2, 0($3)
62+
# CHECK-NEXT: 1 2 2.00 add_a.d $w0, $w1, $w2
63+
# CHECK-NEXT: 1 8 2.00 fmsub.d $w3, $w1, $w2
64+
# CHECK-NEXT: 1 3 1.00 * st.d $w0, 16($sp)
65+
# CHECK-NEXT: 1 3 1.00 * st.d $w3, 32($sp)
66+
4667

4768
# CHECK: Resources:
4869
# CHECK-NEXT: [0] - I6400AGEN
@@ -63,7 +84,7 @@ i6400:
6384

6485
# CHECK: Resource pressure per iteration:
6586
# CHECK-NEXT: [0] [1] [2] [3.0] [3.1] [3.2] [4] [5] [6] [7] [8] [9] [10] [11] [12]
66-
# CHECK-NEXT: 4.00 - - - - - - - - - - 1.00 - 4.00 2.00
87+
# CHECK-NEXT: 8.00 - - 2.00 2.00 4.00 - - 2.00 6.00 1.00 2.00 - 8.00 2.00
6788

6889
# CHECK: Resource pressure by instruction:
6990
# CHECK-NEXT: [0] [1] [2] [3.0] [3.1] [3.2] [4] [5] [6] [7] [8] [9] [10] [11] [12] Instructions:
@@ -74,20 +95,39 @@ i6400:
7495
# CHECK-NEXT: 1.00 - - - - - - - - - - - - 1.00 - sw $3, 8($sp)
7596
# CHECK-NEXT: - - - - - - - - - - - - - - 1.00 div $2, $1
7697
# CHECK-NEXT: 1.00 - - - - - - - - - - - - 1.00 - sw $2, 0($sp)
98+
# CHECK-NEXT: - - - - - - - - - - 1.00 - - - - add $4, $2, $3
99+
# CHECK-NEXT: - - - - - - - - - - - 1.00 - - - clo $5, $4
100+
# CHECK-NEXT: 1.00 - - - - - - - - - - - - 1.00 - sw $4, 8($sp)
101+
# CHECK-NEXT: 1.00 - - - - - - - - - - - - 1.00 - sw $5, 24($sp)
102+
# CHECK-NEXT: - - - - - 2.00 - - - 2.00 - - - - - ld.d $w1, 0($2)
103+
# CHECK-NEXT: - - - - 2.00 - - - - 2.00 - - - - - ld.d $w2, 0($3)
104+
# CHECK-NEXT: - - - 2.00 - - - - - 2.00 - - - - - add_a.d $w0, $w1, $w2
105+
# CHECK-NEXT: - - - - - 2.00 - - 2.00 - - - - - - fmsub.d $w3, $w1, $w2
106+
# CHECK-NEXT: 1.00 - - - - - - - - - - - - 1.00 - st.d $w0, 16($sp)
107+
# CHECK-NEXT: 1.00 - - - - - - - - - - - - 1.00 - st.d $w3, 32($sp)
77108

78109
# CHECK: Average Wait times (based on the timeline view):
79110
# CHECK-NEXT: [0]: Executions
80111
# CHECK-NEXT: [1]: Average time spent waiting in a scheduler's queue
81112
# CHECK-NEXT: [2]: Average time spent waiting in a scheduler's queue while ready
82113
# CHECK-NEXT: [3]: Average time elapsed from WB until retire stage
83114

84-
# CHECK: [0] [1] [2] [3]
115+
# CHECK: [0] [1] [2] [3]
85116
# CHECK-NEXT: 0. 1 0.0 0.0 0.0 lw $1, 0($sp)
86117
# CHECK-NEXT: 1. 1 0.0 0.0 0.0 lw $2, 8($sp)
87118
# CHECK-NEXT: 2. 1 0.0 0.0 0.0 move $3, $1
88119
# CHECK-NEXT: 3. 1 0.0 0.0 0.0 mul $3, $2, $3
89120
# CHECK-NEXT: 4. 1 0.0 0.0 0.0 sw $3, 8($sp)
90121
# CHECK-NEXT: 5. 1 0.0 0.0 0.0 div $2, $1
91122
# CHECK-NEXT: 6. 1 0.0 0.0 0.0 sw $2, 0($sp)
92-
# CHECK-NEXT: 1 0.0 0.0 0.0 <total>
93-
123+
# CHECK-NEXT: 7. 1 0.0 0.0 0.0 add $4, $2, $3
124+
# CHECK-NEXT: 8. 1 0.0 0.0 0.0 clo $5, $4
125+
# CHECK-NEXT: 9. 1 0.0 0.0 0.0 sw $4, 8($sp)
126+
# CHECK-NEXT: 10. 1 0.0 0.0 0.0 sw $5, 24($sp)
127+
# CHECK-NEXT: 11. 1 0.0 0.0 0.0 ld.d $w1, 0($2)
128+
# CHECK-NEXT: 12. 1 0.0 0.0 0.0 ld.d $w2, 0($3)
129+
# CHECK-NEXT: 13. 1 0.0 0.0 0.0 add_a.d $w0, $w1, $w2
130+
# CHECK-NEXT: 14. 1 0.0 0.0 0.0 fmsub.d $w3, $w1, $w2
131+
# CHECK-NEXT: 15. 1 0.0 0.0 0.0 st.d $w0, 16($sp)
132+
# CHECK-NEXT: 16. 1 0.0 0.0 0.0 st.d $w3, 32($sp)
133+
# CHECK-NEXT: 1 0.0 0.0 0.0 <total>

0 commit comments

Comments
 (0)