Skip to content

Commit 8ea7800

Browse files
committed
[RISCV] Add test case for RVV CSRs with cm.push.
The cfi_offset is incorrect for the RVV registers when cm.push is used.
1 parent 6f8e7c1 commit 8ea7800

File tree

1 file changed

+189
-42
lines changed

1 file changed

+189
-42
lines changed

llvm/test/CodeGen/RISCV/rvv/rvv-cfi-info.ll

Lines changed: 189 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -3,122 +3,132 @@
33
; RUN: | FileCheck -check-prefix=OMIT-FP %s
44
; RUN: llc -mtriple=riscv64 -mattr=+v,+m -verify-machineinstrs -frame-pointer=all < %s \
55
; RUN: | FileCheck -check-prefix=NO-OMIT-FP %s
6+
; RUN: llc -mtriple=riscv64 -mattr=+v,+m,+zcmp -verify-machineinstrs < %s \
7+
; RUN: | FileCheck -check-prefix=OMIT-FP-ZCMP %s
8+
; RUN: llc -mtriple=riscv64 -mattr=+v,+m,+zcmp -verify-machineinstrs -frame-pointer=all < %s \
9+
; RUN: | FileCheck -check-prefix=NO-OMIT-FP-ZCMP %s
610

711
define riscv_vector_cc <vscale x 1 x i32> @test_vector_callee_cfi(<vscale x 1 x i32> %va) {
812
; OMIT-FP-LABEL: test_vector_callee_cfi:
913
; OMIT-FP: # %bb.0: # %entry
10-
; OMIT-FP-NEXT: addi sp, sp, -16
11-
; OMIT-FP-NEXT: .cfi_def_cfa_offset 16
14+
; OMIT-FP-NEXT: addi sp, sp, -48
15+
; OMIT-FP-NEXT: .cfi_def_cfa_offset 48
16+
; OMIT-FP-NEXT: sd s1, 40(sp) # 8-byte Folded Spill
17+
; OMIT-FP-NEXT: .cfi_offset s1, -8
1218
; OMIT-FP-NEXT: csrr a0, vlenb
1319
; OMIT-FP-NEXT: slli a1, a0, 3
1420
; OMIT-FP-NEXT: sub a0, a1, a0
1521
; OMIT-FP-NEXT: sub sp, sp, a0
16-
; OMIT-FP-NEXT: .cfi_escape 0x0f, 0x0d, 0x72, 0x00, 0x11, 0x10, 0x22, 0x11, 0x07, 0x92, 0xa2, 0x38, 0x00, 0x1e, 0x22 # sp + 16 + 7 * vlenb
22+
; OMIT-FP-NEXT: .cfi_escape 0x0f, 0x0d, 0x72, 0x00, 0x11, 0x30, 0x22, 0x11, 0x07, 0x92, 0xa2, 0x38, 0x00, 0x1e, 0x22 # sp + 48 + 7 * vlenb
1723
; OMIT-FP-NEXT: csrr a0, vlenb
1824
; OMIT-FP-NEXT: li a1, 6
1925
; OMIT-FP-NEXT: mul a0, a0, a1
2026
; OMIT-FP-NEXT: add a0, sp, a0
21-
; OMIT-FP-NEXT: addi a0, a0, 16
27+
; OMIT-FP-NEXT: addi a0, a0, 32
2228
; OMIT-FP-NEXT: vs1r.v v1, (a0) # Unknown-size Folded Spill
2329
; OMIT-FP-NEXT: csrr a0, vlenb
2430
; OMIT-FP-NEXT: slli a0, a0, 2
2531
; OMIT-FP-NEXT: add a0, sp, a0
26-
; OMIT-FP-NEXT: addi a0, a0, 16
32+
; OMIT-FP-NEXT: addi a0, a0, 32
2733
; OMIT-FP-NEXT: vs2r.v v2, (a0) # Unknown-size Folded Spill
28-
; OMIT-FP-NEXT: addi a0, sp, 16
34+
; OMIT-FP-NEXT: addi a0, sp, 32
2935
; OMIT-FP-NEXT: vs4r.v v4, (a0) # Unknown-size Folded Spill
30-
; OMIT-FP-NEXT: .cfi_escape 0x10, 0x61, 0x08, 0x11, 0x7f, 0x92, 0xa2, 0x38, 0x00, 0x1e, 0x22 # $v1 @ cfa - 1 * vlenb
31-
; OMIT-FP-NEXT: .cfi_escape 0x10, 0x62, 0x08, 0x11, 0x7d, 0x92, 0xa2, 0x38, 0x00, 0x1e, 0x22 # $v2 @ cfa - 3 * vlenb
32-
; OMIT-FP-NEXT: .cfi_escape 0x10, 0x63, 0x08, 0x11, 0x7e, 0x92, 0xa2, 0x38, 0x00, 0x1e, 0x22 # $v3 @ cfa - 2 * vlenb
33-
; OMIT-FP-NEXT: .cfi_escape 0x10, 0x64, 0x08, 0x11, 0x79, 0x92, 0xa2, 0x38, 0x00, 0x1e, 0x22 # $v4 @ cfa - 7 * vlenb
34-
; OMIT-FP-NEXT: .cfi_escape 0x10, 0x65, 0x08, 0x11, 0x7a, 0x92, 0xa2, 0x38, 0x00, 0x1e, 0x22 # $v5 @ cfa - 6 * vlenb
35-
; OMIT-FP-NEXT: .cfi_escape 0x10, 0x66, 0x08, 0x11, 0x7b, 0x92, 0xa2, 0x38, 0x00, 0x1e, 0x22 # $v6 @ cfa - 5 * vlenb
36-
; OMIT-FP-NEXT: .cfi_escape 0x10, 0x67, 0x08, 0x11, 0x7c, 0x92, 0xa2, 0x38, 0x00, 0x1e, 0x22 # $v7 @ cfa - 4 * vlenb
36+
; OMIT-FP-NEXT: .cfi_escape 0x10, 0x61, 0x0b, 0x11, 0x70, 0x22, 0x11, 0x7f, 0x92, 0xa2, 0x38, 0x00, 0x1e, 0x22 # $v1 @ cfa - 16 - 1 * vlenb
37+
; OMIT-FP-NEXT: .cfi_escape 0x10, 0x62, 0x0b, 0x11, 0x70, 0x22, 0x11, 0x7d, 0x92, 0xa2, 0x38, 0x00, 0x1e, 0x22 # $v2 @ cfa - 16 - 3 * vlenb
38+
; OMIT-FP-NEXT: .cfi_escape 0x10, 0x63, 0x0b, 0x11, 0x70, 0x22, 0x11, 0x7e, 0x92, 0xa2, 0x38, 0x00, 0x1e, 0x22 # $v3 @ cfa - 16 - 2 * vlenb
39+
; OMIT-FP-NEXT: .cfi_escape 0x10, 0x64, 0x0b, 0x11, 0x70, 0x22, 0x11, 0x79, 0x92, 0xa2, 0x38, 0x00, 0x1e, 0x22 # $v4 @ cfa - 16 - 7 * vlenb
40+
; OMIT-FP-NEXT: .cfi_escape 0x10, 0x65, 0x0b, 0x11, 0x70, 0x22, 0x11, 0x7a, 0x92, 0xa2, 0x38, 0x00, 0x1e, 0x22 # $v5 @ cfa - 16 - 6 * vlenb
41+
; OMIT-FP-NEXT: .cfi_escape 0x10, 0x66, 0x0b, 0x11, 0x70, 0x22, 0x11, 0x7b, 0x92, 0xa2, 0x38, 0x00, 0x1e, 0x22 # $v6 @ cfa - 16 - 5 * vlenb
42+
; OMIT-FP-NEXT: .cfi_escape 0x10, 0x67, 0x0b, 0x11, 0x70, 0x22, 0x11, 0x7c, 0x92, 0xa2, 0x38, 0x00, 0x1e, 0x22 # $v7 @ cfa - 16 - 4 * vlenb
3743
; OMIT-FP-NEXT: #APP
3844
; OMIT-FP-NEXT: #NO_APP
3945
; OMIT-FP-NEXT: csrr a0, vlenb
4046
; OMIT-FP-NEXT: li a1, 6
4147
; OMIT-FP-NEXT: mul a0, a0, a1
4248
; OMIT-FP-NEXT: add a0, sp, a0
43-
; OMIT-FP-NEXT: addi a0, a0, 16
49+
; OMIT-FP-NEXT: addi a0, a0, 32
4450
; OMIT-FP-NEXT: vl1r.v v1, (a0) # Unknown-size Folded Reload
4551
; OMIT-FP-NEXT: csrr a0, vlenb
4652
; OMIT-FP-NEXT: slli a0, a0, 2
4753
; OMIT-FP-NEXT: add a0, sp, a0
48-
; OMIT-FP-NEXT: addi a0, a0, 16
54+
; OMIT-FP-NEXT: addi a0, a0, 32
4955
; OMIT-FP-NEXT: vl2r.v v2, (a0) # Unknown-size Folded Reload
50-
; OMIT-FP-NEXT: addi a0, sp, 16
56+
; OMIT-FP-NEXT: addi a0, sp, 32
5157
; OMIT-FP-NEXT: vl4r.v v4, (a0) # Unknown-size Folded Reload
5258
; OMIT-FP-NEXT: csrr a0, vlenb
5359
; OMIT-FP-NEXT: slli a1, a0, 3
5460
; OMIT-FP-NEXT: sub a0, a1, a0
5561
; OMIT-FP-NEXT: add sp, sp, a0
56-
; OMIT-FP-NEXT: .cfi_def_cfa sp, 16
62+
; OMIT-FP-NEXT: .cfi_def_cfa sp, 48
5763
; OMIT-FP-NEXT: .cfi_restore v1
5864
; OMIT-FP-NEXT: .cfi_restore v2
5965
; OMIT-FP-NEXT: .cfi_restore v3
6066
; OMIT-FP-NEXT: .cfi_restore v4
6167
; OMIT-FP-NEXT: .cfi_restore v5
6268
; OMIT-FP-NEXT: .cfi_restore v6
6369
; OMIT-FP-NEXT: .cfi_restore v7
64-
; OMIT-FP-NEXT: addi sp, sp, 16
70+
; OMIT-FP-NEXT: ld s1, 40(sp) # 8-byte Folded Reload
71+
; OMIT-FP-NEXT: .cfi_restore s1
72+
; OMIT-FP-NEXT: addi sp, sp, 48
6573
; OMIT-FP-NEXT: .cfi_def_cfa_offset 0
6674
; OMIT-FP-NEXT: ret
6775
;
6876
; NO-OMIT-FP-LABEL: test_vector_callee_cfi:
6977
; NO-OMIT-FP: # %bb.0: # %entry
70-
; NO-OMIT-FP-NEXT: addi sp, sp, -32
71-
; NO-OMIT-FP-NEXT: .cfi_def_cfa_offset 32
72-
; NO-OMIT-FP-NEXT: sd ra, 24(sp) # 8-byte Folded Spill
73-
; NO-OMIT-FP-NEXT: sd s0, 16(sp) # 8-byte Folded Spill
78+
; NO-OMIT-FP-NEXT: addi sp, sp, -48
79+
; NO-OMIT-FP-NEXT: .cfi_def_cfa_offset 48
80+
; NO-OMIT-FP-NEXT: sd ra, 40(sp) # 8-byte Folded Spill
81+
; NO-OMIT-FP-NEXT: sd s0, 32(sp) # 8-byte Folded Spill
82+
; NO-OMIT-FP-NEXT: sd s1, 24(sp) # 8-byte Folded Spill
7483
; NO-OMIT-FP-NEXT: .cfi_offset ra, -8
7584
; NO-OMIT-FP-NEXT: .cfi_offset s0, -16
76-
; NO-OMIT-FP-NEXT: addi s0, sp, 32
85+
; NO-OMIT-FP-NEXT: .cfi_offset s1, -24
86+
; NO-OMIT-FP-NEXT: addi s0, sp, 48
7787
; NO-OMIT-FP-NEXT: .cfi_def_cfa s0, 0
7888
; NO-OMIT-FP-NEXT: csrr a0, vlenb
7989
; NO-OMIT-FP-NEXT: slli a1, a0, 3
8090
; NO-OMIT-FP-NEXT: sub a0, a1, a0
8191
; NO-OMIT-FP-NEXT: sub sp, sp, a0
8292
; NO-OMIT-FP-NEXT: csrr a0, vlenb
8393
; NO-OMIT-FP-NEXT: sub a0, s0, a0
84-
; NO-OMIT-FP-NEXT: addi a0, a0, -32
94+
; NO-OMIT-FP-NEXT: addi a0, a0, -48
8595
; NO-OMIT-FP-NEXT: vs1r.v v1, (a0) # Unknown-size Folded Spill
8696
; NO-OMIT-FP-NEXT: csrr a0, vlenb
8797
; NO-OMIT-FP-NEXT: slli a1, a0, 1
8898
; NO-OMIT-FP-NEXT: add a0, a1, a0
8999
; NO-OMIT-FP-NEXT: sub a0, s0, a0
90-
; NO-OMIT-FP-NEXT: addi a0, a0, -32
100+
; NO-OMIT-FP-NEXT: addi a0, a0, -48
91101
; NO-OMIT-FP-NEXT: vs2r.v v2, (a0) # Unknown-size Folded Spill
92102
; NO-OMIT-FP-NEXT: csrr a0, vlenb
93103
; NO-OMIT-FP-NEXT: slli a1, a0, 3
94104
; NO-OMIT-FP-NEXT: sub a0, a1, a0
95105
; NO-OMIT-FP-NEXT: sub a0, s0, a0
96-
; NO-OMIT-FP-NEXT: addi a0, a0, -32
106+
; NO-OMIT-FP-NEXT: addi a0, a0, -48
97107
; NO-OMIT-FP-NEXT: vs4r.v v4, (a0) # Unknown-size Folded Spill
98-
; NO-OMIT-FP-NEXT: .cfi_escape 0x10, 0x61, 0x0b, 0x11, 0x60, 0x22, 0x11, 0x7f, 0x92, 0xa2, 0x38, 0x00, 0x1e, 0x22 # $v1 @ cfa - 32 - 1 * vlenb
99-
; NO-OMIT-FP-NEXT: .cfi_escape 0x10, 0x62, 0x0b, 0x11, 0x60, 0x22, 0x11, 0x7d, 0x92, 0xa2, 0x38, 0x00, 0x1e, 0x22 # $v2 @ cfa - 32 - 3 * vlenb
100-
; NO-OMIT-FP-NEXT: .cfi_escape 0x10, 0x63, 0x0b, 0x11, 0x60, 0x22, 0x11, 0x7e, 0x92, 0xa2, 0x38, 0x00, 0x1e, 0x22 # $v3 @ cfa - 32 - 2 * vlenb
101-
; NO-OMIT-FP-NEXT: .cfi_escape 0x10, 0x64, 0x0b, 0x11, 0x60, 0x22, 0x11, 0x79, 0x92, 0xa2, 0x38, 0x00, 0x1e, 0x22 # $v4 @ cfa - 32 - 7 * vlenb
102-
; NO-OMIT-FP-NEXT: .cfi_escape 0x10, 0x65, 0x0b, 0x11, 0x60, 0x22, 0x11, 0x7a, 0x92, 0xa2, 0x38, 0x00, 0x1e, 0x22 # $v5 @ cfa - 32 - 6 * vlenb
103-
; NO-OMIT-FP-NEXT: .cfi_escape 0x10, 0x66, 0x0b, 0x11, 0x60, 0x22, 0x11, 0x7b, 0x92, 0xa2, 0x38, 0x00, 0x1e, 0x22 # $v6 @ cfa - 32 - 5 * vlenb
104-
; NO-OMIT-FP-NEXT: .cfi_escape 0x10, 0x67, 0x0b, 0x11, 0x60, 0x22, 0x11, 0x7c, 0x92, 0xa2, 0x38, 0x00, 0x1e, 0x22 # $v7 @ cfa - 32 - 4 * vlenb
108+
; NO-OMIT-FP-NEXT: .cfi_escape 0x10, 0x61, 0x0b, 0x11, 0x50, 0x22, 0x11, 0x7f, 0x92, 0xa2, 0x38, 0x00, 0x1e, 0x22 # $v1 @ cfa - 48 - 1 * vlenb
109+
; NO-OMIT-FP-NEXT: .cfi_escape 0x10, 0x62, 0x0b, 0x11, 0x50, 0x22, 0x11, 0x7d, 0x92, 0xa2, 0x38, 0x00, 0x1e, 0x22 # $v2 @ cfa - 48 - 3 * vlenb
110+
; NO-OMIT-FP-NEXT: .cfi_escape 0x10, 0x63, 0x0b, 0x11, 0x50, 0x22, 0x11, 0x7e, 0x92, 0xa2, 0x38, 0x00, 0x1e, 0x22 # $v3 @ cfa - 48 - 2 * vlenb
111+
; NO-OMIT-FP-NEXT: .cfi_escape 0x10, 0x64, 0x0b, 0x11, 0x50, 0x22, 0x11, 0x79, 0x92, 0xa2, 0x38, 0x00, 0x1e, 0x22 # $v4 @ cfa - 48 - 7 * vlenb
112+
; NO-OMIT-FP-NEXT: .cfi_escape 0x10, 0x65, 0x0b, 0x11, 0x50, 0x22, 0x11, 0x7a, 0x92, 0xa2, 0x38, 0x00, 0x1e, 0x22 # $v5 @ cfa - 48 - 6 * vlenb
113+
; NO-OMIT-FP-NEXT: .cfi_escape 0x10, 0x66, 0x0b, 0x11, 0x50, 0x22, 0x11, 0x7b, 0x92, 0xa2, 0x38, 0x00, 0x1e, 0x22 # $v6 @ cfa - 48 - 5 * vlenb
114+
; NO-OMIT-FP-NEXT: .cfi_escape 0x10, 0x67, 0x0b, 0x11, 0x50, 0x22, 0x11, 0x7c, 0x92, 0xa2, 0x38, 0x00, 0x1e, 0x22 # $v7 @ cfa - 48 - 4 * vlenb
105115
; NO-OMIT-FP-NEXT: #APP
106116
; NO-OMIT-FP-NEXT: #NO_APP
107117
; NO-OMIT-FP-NEXT: csrr a0, vlenb
108118
; NO-OMIT-FP-NEXT: sub a0, s0, a0
109-
; NO-OMIT-FP-NEXT: addi a0, a0, -32
119+
; NO-OMIT-FP-NEXT: addi a0, a0, -48
110120
; NO-OMIT-FP-NEXT: vl1r.v v1, (a0) # Unknown-size Folded Reload
111121
; NO-OMIT-FP-NEXT: csrr a0, vlenb
112122
; NO-OMIT-FP-NEXT: slli a1, a0, 1
113123
; NO-OMIT-FP-NEXT: add a0, a1, a0
114124
; NO-OMIT-FP-NEXT: sub a0, s0, a0
115-
; NO-OMIT-FP-NEXT: addi a0, a0, -32
125+
; NO-OMIT-FP-NEXT: addi a0, a0, -48
116126
; NO-OMIT-FP-NEXT: vl2r.v v2, (a0) # Unknown-size Folded Reload
117127
; NO-OMIT-FP-NEXT: csrr a0, vlenb
118128
; NO-OMIT-FP-NEXT: slli a1, a0, 3
119129
; NO-OMIT-FP-NEXT: sub a0, a1, a0
120130
; NO-OMIT-FP-NEXT: sub a0, s0, a0
121-
; NO-OMIT-FP-NEXT: addi a0, a0, -32
131+
; NO-OMIT-FP-NEXT: addi a0, a0, -48
122132
; NO-OMIT-FP-NEXT: vl4r.v v4, (a0) # Unknown-size Folded Reload
123133
; NO-OMIT-FP-NEXT: .cfi_restore v1
124134
; NO-OMIT-FP-NEXT: .cfi_restore v2
@@ -127,18 +137,155 @@ define riscv_vector_cc <vscale x 1 x i32> @test_vector_callee_cfi(<vscale x 1 x
127137
; NO-OMIT-FP-NEXT: .cfi_restore v5
128138
; NO-OMIT-FP-NEXT: .cfi_restore v6
129139
; NO-OMIT-FP-NEXT: .cfi_restore v7
130-
; NO-OMIT-FP-NEXT: addi sp, s0, -32
131-
; NO-OMIT-FP-NEXT: .cfi_def_cfa sp, 32
132-
; NO-OMIT-FP-NEXT: ld ra, 24(sp) # 8-byte Folded Reload
133-
; NO-OMIT-FP-NEXT: ld s0, 16(sp) # 8-byte Folded Reload
140+
; NO-OMIT-FP-NEXT: addi sp, s0, -48
141+
; NO-OMIT-FP-NEXT: .cfi_def_cfa sp, 48
142+
; NO-OMIT-FP-NEXT: ld ra, 40(sp) # 8-byte Folded Reload
143+
; NO-OMIT-FP-NEXT: ld s0, 32(sp) # 8-byte Folded Reload
144+
; NO-OMIT-FP-NEXT: ld s1, 24(sp) # 8-byte Folded Reload
134145
; NO-OMIT-FP-NEXT: .cfi_restore ra
135146
; NO-OMIT-FP-NEXT: .cfi_restore s0
136-
; NO-OMIT-FP-NEXT: addi sp, sp, 32
147+
; NO-OMIT-FP-NEXT: .cfi_restore s1
148+
; NO-OMIT-FP-NEXT: addi sp, sp, 48
137149
; NO-OMIT-FP-NEXT: .cfi_def_cfa_offset 0
138150
; NO-OMIT-FP-NEXT: ret
151+
;
152+
; OMIT-FP-ZCMP-LABEL: test_vector_callee_cfi:
153+
; OMIT-FP-ZCMP: # %bb.0: # %entry
154+
; OMIT-FP-ZCMP-NEXT: cm.push {ra, s0-s1}, -48
155+
; OMIT-FP-ZCMP-NEXT: .cfi_def_cfa_offset 48
156+
; OMIT-FP-ZCMP-NEXT: .cfi_offset s1, -8
157+
; OMIT-FP-ZCMP-NEXT: csrr a0, vlenb
158+
; OMIT-FP-ZCMP-NEXT: slli a1, a0, 3
159+
; OMIT-FP-ZCMP-NEXT: sub a0, a1, a0
160+
; OMIT-FP-ZCMP-NEXT: sub sp, sp, a0
161+
; OMIT-FP-ZCMP-NEXT: .cfi_escape 0x0f, 0x0d, 0x72, 0x00, 0x11, 0x30, 0x22, 0x11, 0x07, 0x92, 0xa2, 0x38, 0x00, 0x1e, 0x22 # sp + 48 + 7 * vlenb
162+
; OMIT-FP-ZCMP-NEXT: csrr a0, vlenb
163+
; OMIT-FP-ZCMP-NEXT: li a1, 6
164+
; OMIT-FP-ZCMP-NEXT: mul a0, a0, a1
165+
; OMIT-FP-ZCMP-NEXT: add a0, a0, sp
166+
; OMIT-FP-ZCMP-NEXT: addi a0, a0, 16
167+
; OMIT-FP-ZCMP-NEXT: vs1r.v v1, (a0) # Unknown-size Folded Spill
168+
; OMIT-FP-ZCMP-NEXT: csrr a0, vlenb
169+
; OMIT-FP-ZCMP-NEXT: slli a0, a0, 2
170+
; OMIT-FP-ZCMP-NEXT: add a0, a0, sp
171+
; OMIT-FP-ZCMP-NEXT: addi a0, a0, 16
172+
; OMIT-FP-ZCMP-NEXT: vs2r.v v2, (a0) # Unknown-size Folded Spill
173+
; OMIT-FP-ZCMP-NEXT: addi a0, sp, 16
174+
; OMIT-FP-ZCMP-NEXT: vs4r.v v4, (a0) # Unknown-size Folded Spill
175+
; OMIT-FP-ZCMP-NEXT: .cfi_escape 0x10, 0x61, 0x0b, 0x11, 0x40, 0x22, 0x11, 0x7f, 0x92, 0xa2, 0x38, 0x00, 0x1e, 0x22 # $v1 @ cfa - 64 - 1 * vlenb
176+
; OMIT-FP-ZCMP-NEXT: .cfi_escape 0x10, 0x62, 0x0b, 0x11, 0x40, 0x22, 0x11, 0x7d, 0x92, 0xa2, 0x38, 0x00, 0x1e, 0x22 # $v2 @ cfa - 64 - 3 * vlenb
177+
; OMIT-FP-ZCMP-NEXT: .cfi_escape 0x10, 0x63, 0x0b, 0x11, 0x40, 0x22, 0x11, 0x7e, 0x92, 0xa2, 0x38, 0x00, 0x1e, 0x22 # $v3 @ cfa - 64 - 2 * vlenb
178+
; OMIT-FP-ZCMP-NEXT: .cfi_escape 0x10, 0x64, 0x0b, 0x11, 0x40, 0x22, 0x11, 0x79, 0x92, 0xa2, 0x38, 0x00, 0x1e, 0x22 # $v4 @ cfa - 64 - 7 * vlenb
179+
; OMIT-FP-ZCMP-NEXT: .cfi_escape 0x10, 0x65, 0x0b, 0x11, 0x40, 0x22, 0x11, 0x7a, 0x92, 0xa2, 0x38, 0x00, 0x1e, 0x22 # $v5 @ cfa - 64 - 6 * vlenb
180+
; OMIT-FP-ZCMP-NEXT: .cfi_escape 0x10, 0x66, 0x0b, 0x11, 0x40, 0x22, 0x11, 0x7b, 0x92, 0xa2, 0x38, 0x00, 0x1e, 0x22 # $v6 @ cfa - 64 - 5 * vlenb
181+
; OMIT-FP-ZCMP-NEXT: .cfi_escape 0x10, 0x67, 0x0b, 0x11, 0x40, 0x22, 0x11, 0x7c, 0x92, 0xa2, 0x38, 0x00, 0x1e, 0x22 # $v7 @ cfa - 64 - 4 * vlenb
182+
; OMIT-FP-ZCMP-NEXT: #APP
183+
; OMIT-FP-ZCMP-NEXT: #NO_APP
184+
; OMIT-FP-ZCMP-NEXT: csrr a0, vlenb
185+
; OMIT-FP-ZCMP-NEXT: li a1, 6
186+
; OMIT-FP-ZCMP-NEXT: mul a0, a0, a1
187+
; OMIT-FP-ZCMP-NEXT: add a0, a0, sp
188+
; OMIT-FP-ZCMP-NEXT: addi a0, a0, 16
189+
; OMIT-FP-ZCMP-NEXT: vl1r.v v1, (a0) # Unknown-size Folded Reload
190+
; OMIT-FP-ZCMP-NEXT: csrr a0, vlenb
191+
; OMIT-FP-ZCMP-NEXT: slli a0, a0, 2
192+
; OMIT-FP-ZCMP-NEXT: add a0, a0, sp
193+
; OMIT-FP-ZCMP-NEXT: addi a0, a0, 16
194+
; OMIT-FP-ZCMP-NEXT: vl2r.v v2, (a0) # Unknown-size Folded Reload
195+
; OMIT-FP-ZCMP-NEXT: addi a0, sp, 16
196+
; OMIT-FP-ZCMP-NEXT: vl4r.v v4, (a0) # Unknown-size Folded Reload
197+
; OMIT-FP-ZCMP-NEXT: csrr a0, vlenb
198+
; OMIT-FP-ZCMP-NEXT: slli a1, a0, 3
199+
; OMIT-FP-ZCMP-NEXT: sub a0, a1, a0
200+
; OMIT-FP-ZCMP-NEXT: add sp, sp, a0
201+
; OMIT-FP-ZCMP-NEXT: .cfi_def_cfa sp, 48
202+
; OMIT-FP-ZCMP-NEXT: .cfi_restore v1
203+
; OMIT-FP-ZCMP-NEXT: .cfi_restore v2
204+
; OMIT-FP-ZCMP-NEXT: .cfi_restore v3
205+
; OMIT-FP-ZCMP-NEXT: .cfi_restore v4
206+
; OMIT-FP-ZCMP-NEXT: .cfi_restore v5
207+
; OMIT-FP-ZCMP-NEXT: .cfi_restore v6
208+
; OMIT-FP-ZCMP-NEXT: .cfi_restore v7
209+
; OMIT-FP-ZCMP-NEXT: cm.popret {ra, s0-s1}, 48
210+
;
211+
; NO-OMIT-FP-ZCMP-LABEL: test_vector_callee_cfi:
212+
; NO-OMIT-FP-ZCMP: # %bb.0: # %entry
213+
; NO-OMIT-FP-ZCMP-NEXT: addi sp, sp, -48
214+
; NO-OMIT-FP-ZCMP-NEXT: .cfi_def_cfa_offset 48
215+
; NO-OMIT-FP-ZCMP-NEXT: sd ra, 40(sp) # 8-byte Folded Spill
216+
; NO-OMIT-FP-ZCMP-NEXT: sd s0, 32(sp) # 8-byte Folded Spill
217+
; NO-OMIT-FP-ZCMP-NEXT: sd s1, 24(sp) # 8-byte Folded Spill
218+
; NO-OMIT-FP-ZCMP-NEXT: .cfi_offset ra, -8
219+
; NO-OMIT-FP-ZCMP-NEXT: .cfi_offset s0, -16
220+
; NO-OMIT-FP-ZCMP-NEXT: .cfi_offset s1, -24
221+
; NO-OMIT-FP-ZCMP-NEXT: addi s0, sp, 48
222+
; NO-OMIT-FP-ZCMP-NEXT: .cfi_def_cfa s0, 0
223+
; NO-OMIT-FP-ZCMP-NEXT: csrr a0, vlenb
224+
; NO-OMIT-FP-ZCMP-NEXT: slli a1, a0, 3
225+
; NO-OMIT-FP-ZCMP-NEXT: sub a0, a1, a0
226+
; NO-OMIT-FP-ZCMP-NEXT: sub sp, sp, a0
227+
; NO-OMIT-FP-ZCMP-NEXT: csrr a0, vlenb
228+
; NO-OMIT-FP-ZCMP-NEXT: sub a0, s0, a0
229+
; NO-OMIT-FP-ZCMP-NEXT: addi a0, a0, -48
230+
; NO-OMIT-FP-ZCMP-NEXT: vs1r.v v1, (a0) # Unknown-size Folded Spill
231+
; NO-OMIT-FP-ZCMP-NEXT: csrr a0, vlenb
232+
; NO-OMIT-FP-ZCMP-NEXT: slli a1, a0, 1
233+
; NO-OMIT-FP-ZCMP-NEXT: add a0, a0, a1
234+
; NO-OMIT-FP-ZCMP-NEXT: sub a0, s0, a0
235+
; NO-OMIT-FP-ZCMP-NEXT: addi a0, a0, -48
236+
; NO-OMIT-FP-ZCMP-NEXT: vs2r.v v2, (a0) # Unknown-size Folded Spill
237+
; NO-OMIT-FP-ZCMP-NEXT: csrr a0, vlenb
238+
; NO-OMIT-FP-ZCMP-NEXT: slli a1, a0, 3
239+
; NO-OMIT-FP-ZCMP-NEXT: sub a0, a1, a0
240+
; NO-OMIT-FP-ZCMP-NEXT: sub a0, s0, a0
241+
; NO-OMIT-FP-ZCMP-NEXT: addi a0, a0, -48
242+
; NO-OMIT-FP-ZCMP-NEXT: vs4r.v v4, (a0) # Unknown-size Folded Spill
243+
; NO-OMIT-FP-ZCMP-NEXT: .cfi_escape 0x10, 0x61, 0x0b, 0x11, 0x50, 0x22, 0x11, 0x7f, 0x92, 0xa2, 0x38, 0x00, 0x1e, 0x22 # $v1 @ cfa - 48 - 1 * vlenb
244+
; NO-OMIT-FP-ZCMP-NEXT: .cfi_escape 0x10, 0x62, 0x0b, 0x11, 0x50, 0x22, 0x11, 0x7d, 0x92, 0xa2, 0x38, 0x00, 0x1e, 0x22 # $v2 @ cfa - 48 - 3 * vlenb
245+
; NO-OMIT-FP-ZCMP-NEXT: .cfi_escape 0x10, 0x63, 0x0b, 0x11, 0x50, 0x22, 0x11, 0x7e, 0x92, 0xa2, 0x38, 0x00, 0x1e, 0x22 # $v3 @ cfa - 48 - 2 * vlenb
246+
; NO-OMIT-FP-ZCMP-NEXT: .cfi_escape 0x10, 0x64, 0x0b, 0x11, 0x50, 0x22, 0x11, 0x79, 0x92, 0xa2, 0x38, 0x00, 0x1e, 0x22 # $v4 @ cfa - 48 - 7 * vlenb
247+
; NO-OMIT-FP-ZCMP-NEXT: .cfi_escape 0x10, 0x65, 0x0b, 0x11, 0x50, 0x22, 0x11, 0x7a, 0x92, 0xa2, 0x38, 0x00, 0x1e, 0x22 # $v5 @ cfa - 48 - 6 * vlenb
248+
; NO-OMIT-FP-ZCMP-NEXT: .cfi_escape 0x10, 0x66, 0x0b, 0x11, 0x50, 0x22, 0x11, 0x7b, 0x92, 0xa2, 0x38, 0x00, 0x1e, 0x22 # $v6 @ cfa - 48 - 5 * vlenb
249+
; NO-OMIT-FP-ZCMP-NEXT: .cfi_escape 0x10, 0x67, 0x0b, 0x11, 0x50, 0x22, 0x11, 0x7c, 0x92, 0xa2, 0x38, 0x00, 0x1e, 0x22 # $v7 @ cfa - 48 - 4 * vlenb
250+
; NO-OMIT-FP-ZCMP-NEXT: #APP
251+
; NO-OMIT-FP-ZCMP-NEXT: #NO_APP
252+
; NO-OMIT-FP-ZCMP-NEXT: csrr a0, vlenb
253+
; NO-OMIT-FP-ZCMP-NEXT: sub a0, s0, a0
254+
; NO-OMIT-FP-ZCMP-NEXT: addi a0, a0, -48
255+
; NO-OMIT-FP-ZCMP-NEXT: vl1r.v v1, (a0) # Unknown-size Folded Reload
256+
; NO-OMIT-FP-ZCMP-NEXT: csrr a0, vlenb
257+
; NO-OMIT-FP-ZCMP-NEXT: slli a1, a0, 1
258+
; NO-OMIT-FP-ZCMP-NEXT: add a0, a0, a1
259+
; NO-OMIT-FP-ZCMP-NEXT: sub a0, s0, a0
260+
; NO-OMIT-FP-ZCMP-NEXT: addi a0, a0, -48
261+
; NO-OMIT-FP-ZCMP-NEXT: vl2r.v v2, (a0) # Unknown-size Folded Reload
262+
; NO-OMIT-FP-ZCMP-NEXT: csrr a0, vlenb
263+
; NO-OMIT-FP-ZCMP-NEXT: slli a1, a0, 3
264+
; NO-OMIT-FP-ZCMP-NEXT: sub a0, a1, a0
265+
; NO-OMIT-FP-ZCMP-NEXT: sub a0, s0, a0
266+
; NO-OMIT-FP-ZCMP-NEXT: addi a0, a0, -48
267+
; NO-OMIT-FP-ZCMP-NEXT: vl4r.v v4, (a0) # Unknown-size Folded Reload
268+
; NO-OMIT-FP-ZCMP-NEXT: .cfi_restore v1
269+
; NO-OMIT-FP-ZCMP-NEXT: .cfi_restore v2
270+
; NO-OMIT-FP-ZCMP-NEXT: .cfi_restore v3
271+
; NO-OMIT-FP-ZCMP-NEXT: .cfi_restore v4
272+
; NO-OMIT-FP-ZCMP-NEXT: .cfi_restore v5
273+
; NO-OMIT-FP-ZCMP-NEXT: .cfi_restore v6
274+
; NO-OMIT-FP-ZCMP-NEXT: .cfi_restore v7
275+
; NO-OMIT-FP-ZCMP-NEXT: addi sp, s0, -48
276+
; NO-OMIT-FP-ZCMP-NEXT: .cfi_def_cfa sp, 48
277+
; NO-OMIT-FP-ZCMP-NEXT: ld ra, 40(sp) # 8-byte Folded Reload
278+
; NO-OMIT-FP-ZCMP-NEXT: ld s0, 32(sp) # 8-byte Folded Reload
279+
; NO-OMIT-FP-ZCMP-NEXT: ld s1, 24(sp) # 8-byte Folded Reload
280+
; NO-OMIT-FP-ZCMP-NEXT: .cfi_restore ra
281+
; NO-OMIT-FP-ZCMP-NEXT: .cfi_restore s0
282+
; NO-OMIT-FP-ZCMP-NEXT: .cfi_restore s1
283+
; NO-OMIT-FP-ZCMP-NEXT: addi sp, sp, 48
284+
; NO-OMIT-FP-ZCMP-NEXT: .cfi_def_cfa_offset 0
285+
; NO-OMIT-FP-ZCMP-NEXT: ret
139286
entry:
140287
call void asm sideeffect "",
141-
"~{v1},~{v2},~{v3},~{v4},~{v5},~{v6},~{v7}"()
288+
"~{v1},~{v2},~{v3},~{v4},~{v5},~{v6},~{v7},~{s1}"()
142289

143290
ret <vscale x 1 x i32> %va
144291
}

0 commit comments

Comments
 (0)