3
3
; RUN: | FileCheck -check-prefix=OMIT-FP %s
4
4
; RUN: llc -mtriple=riscv64 -mattr=+v,+m -verify-machineinstrs -frame-pointer=all < %s \
5
5
; 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
6
10
7
11
define riscv_vector_cc <vscale x 1 x i32 > @test_vector_callee_cfi (<vscale x 1 x i32 > %va ) {
8
12
; OMIT-FP-LABEL: test_vector_callee_cfi:
9
13
; 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
12
18
; OMIT-FP-NEXT: csrr a0, vlenb
13
19
; OMIT-FP-NEXT: slli a1, a0, 3
14
20
; OMIT-FP-NEXT: sub a0, a1, a0
15
21
; 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
17
23
; OMIT-FP-NEXT: csrr a0, vlenb
18
24
; OMIT-FP-NEXT: li a1, 6
19
25
; OMIT-FP-NEXT: mul a0, a0, a1
20
26
; OMIT-FP-NEXT: add a0, sp, a0
21
- ; OMIT-FP-NEXT: addi a0, a0, 16
27
+ ; OMIT-FP-NEXT: addi a0, a0, 32
22
28
; OMIT-FP-NEXT: vs1r.v v1, (a0) # Unknown-size Folded Spill
23
29
; OMIT-FP-NEXT: csrr a0, vlenb
24
30
; OMIT-FP-NEXT: slli a0, a0, 2
25
31
; OMIT-FP-NEXT: add a0, sp, a0
26
- ; OMIT-FP-NEXT: addi a0, a0, 16
32
+ ; OMIT-FP-NEXT: addi a0, a0, 32
27
33
; 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
29
35
; 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
37
43
; OMIT-FP-NEXT: #APP
38
44
; OMIT-FP-NEXT: #NO_APP
39
45
; OMIT-FP-NEXT: csrr a0, vlenb
40
46
; OMIT-FP-NEXT: li a1, 6
41
47
; OMIT-FP-NEXT: mul a0, a0, a1
42
48
; OMIT-FP-NEXT: add a0, sp, a0
43
- ; OMIT-FP-NEXT: addi a0, a0, 16
49
+ ; OMIT-FP-NEXT: addi a0, a0, 32
44
50
; OMIT-FP-NEXT: vl1r.v v1, (a0) # Unknown-size Folded Reload
45
51
; OMIT-FP-NEXT: csrr a0, vlenb
46
52
; OMIT-FP-NEXT: slli a0, a0, 2
47
53
; OMIT-FP-NEXT: add a0, sp, a0
48
- ; OMIT-FP-NEXT: addi a0, a0, 16
54
+ ; OMIT-FP-NEXT: addi a0, a0, 32
49
55
; 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
51
57
; OMIT-FP-NEXT: vl4r.v v4, (a0) # Unknown-size Folded Reload
52
58
; OMIT-FP-NEXT: csrr a0, vlenb
53
59
; OMIT-FP-NEXT: slli a1, a0, 3
54
60
; OMIT-FP-NEXT: sub a0, a1, a0
55
61
; 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
57
63
; OMIT-FP-NEXT: .cfi_restore v1
58
64
; OMIT-FP-NEXT: .cfi_restore v2
59
65
; OMIT-FP-NEXT: .cfi_restore v3
60
66
; OMIT-FP-NEXT: .cfi_restore v4
61
67
; OMIT-FP-NEXT: .cfi_restore v5
62
68
; OMIT-FP-NEXT: .cfi_restore v6
63
69
; 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
65
73
; OMIT-FP-NEXT: .cfi_def_cfa_offset 0
66
74
; OMIT-FP-NEXT: ret
67
75
;
68
76
; NO-OMIT-FP-LABEL: test_vector_callee_cfi:
69
77
; 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
74
83
; NO-OMIT-FP-NEXT: .cfi_offset ra, -8
75
84
; 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
77
87
; NO-OMIT-FP-NEXT: .cfi_def_cfa s0, 0
78
88
; NO-OMIT-FP-NEXT: csrr a0, vlenb
79
89
; NO-OMIT-FP-NEXT: slli a1, a0, 3
80
90
; NO-OMIT-FP-NEXT: sub a0, a1, a0
81
91
; NO-OMIT-FP-NEXT: sub sp, sp, a0
82
92
; NO-OMIT-FP-NEXT: csrr a0, vlenb
83
93
; 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
85
95
; NO-OMIT-FP-NEXT: vs1r.v v1, (a0) # Unknown-size Folded Spill
86
96
; NO-OMIT-FP-NEXT: csrr a0, vlenb
87
97
; NO-OMIT-FP-NEXT: slli a1, a0, 1
88
98
; NO-OMIT-FP-NEXT: add a0, a1, a0
89
99
; 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
91
101
; NO-OMIT-FP-NEXT: vs2r.v v2, (a0) # Unknown-size Folded Spill
92
102
; NO-OMIT-FP-NEXT: csrr a0, vlenb
93
103
; NO-OMIT-FP-NEXT: slli a1, a0, 3
94
104
; NO-OMIT-FP-NEXT: sub a0, a1, a0
95
105
; 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
97
107
; 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
105
115
; NO-OMIT-FP-NEXT: #APP
106
116
; NO-OMIT-FP-NEXT: #NO_APP
107
117
; NO-OMIT-FP-NEXT: csrr a0, vlenb
108
118
; 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
110
120
; NO-OMIT-FP-NEXT: vl1r.v v1, (a0) # Unknown-size Folded Reload
111
121
; NO-OMIT-FP-NEXT: csrr a0, vlenb
112
122
; NO-OMIT-FP-NEXT: slli a1, a0, 1
113
123
; NO-OMIT-FP-NEXT: add a0, a1, a0
114
124
; 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
116
126
; NO-OMIT-FP-NEXT: vl2r.v v2, (a0) # Unknown-size Folded Reload
117
127
; NO-OMIT-FP-NEXT: csrr a0, vlenb
118
128
; NO-OMIT-FP-NEXT: slli a1, a0, 3
119
129
; NO-OMIT-FP-NEXT: sub a0, a1, a0
120
130
; 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
122
132
; NO-OMIT-FP-NEXT: vl4r.v v4, (a0) # Unknown-size Folded Reload
123
133
; NO-OMIT-FP-NEXT: .cfi_restore v1
124
134
; 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
127
137
; NO-OMIT-FP-NEXT: .cfi_restore v5
128
138
; NO-OMIT-FP-NEXT: .cfi_restore v6
129
139
; 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
134
145
; NO-OMIT-FP-NEXT: .cfi_restore ra
135
146
; 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
137
149
; NO-OMIT-FP-NEXT: .cfi_def_cfa_offset 0
138
150
; 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
139
286
entry:
140
287
call void asm sideeffect "" ,
141
- "~{v1},~{v2},~{v3},~{v4},~{v5},~{v6},~{v7}" ()
288
+ "~{v1},~{v2},~{v3},~{v4},~{v5},~{v6},~{v7},~{s1} " ()
142
289
143
290
ret <vscale x 1 x i32 > %va
144
291
}
0 commit comments