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
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