@@ -156,26 +156,18 @@ define i32 @explicit_register_sp(i32 %a) nounwind {
156
156
define i32 @explicit_register_x3 (i32 %a ) nounwind {
157
157
; RV32I-LABEL: explicit_register_x3:
158
158
; RV32I: # %bb.0:
159
- ; RV32I-NEXT: addi sp, sp, -16
160
- ; RV32I-NEXT: sw gp, 12(sp) # 4-byte Folded Spill
161
159
; RV32I-NEXT: mv gp, a0
162
160
; RV32I-NEXT: #APP
163
161
; RV32I-NEXT: addi a0, gp, 0
164
162
; RV32I-NEXT: #NO_APP
165
- ; RV32I-NEXT: lw gp, 12(sp) # 4-byte Folded Reload
166
- ; RV32I-NEXT: addi sp, sp, 16
167
163
; RV32I-NEXT: ret
168
164
;
169
165
; RV64I-LABEL: explicit_register_x3:
170
166
; RV64I: # %bb.0:
171
- ; RV64I-NEXT: addi sp, sp, -16
172
- ; RV64I-NEXT: sd gp, 8(sp) # 8-byte Folded Spill
173
167
; RV64I-NEXT: mv gp, a0
174
168
; RV64I-NEXT: #APP
175
169
; RV64I-NEXT: addi a0, gp, 0
176
170
; RV64I-NEXT: #NO_APP
177
- ; RV64I-NEXT: ld gp, 8(sp) # 8-byte Folded Reload
178
- ; RV64I-NEXT: addi sp, sp, 16
179
171
; RV64I-NEXT: ret
180
172
%1 = tail call i32 asm "addi $0, $1, 0" , "=r,{x3}" (i32 %a )
181
173
ret i32 %1
@@ -185,26 +177,18 @@ define i32 @explicit_register_x3(i32 %a) nounwind {
185
177
define i32 @explicit_register_gp (i32 %a ) nounwind {
186
178
; RV32I-LABEL: explicit_register_gp:
187
179
; RV32I: # %bb.0:
188
- ; RV32I-NEXT: addi sp, sp, -16
189
- ; RV32I-NEXT: sw gp, 12(sp) # 4-byte Folded Spill
190
180
; RV32I-NEXT: mv gp, a0
191
181
; RV32I-NEXT: #APP
192
182
; RV32I-NEXT: addi a0, gp, 0
193
183
; RV32I-NEXT: #NO_APP
194
- ; RV32I-NEXT: lw gp, 12(sp) # 4-byte Folded Reload
195
- ; RV32I-NEXT: addi sp, sp, 16
196
184
; RV32I-NEXT: ret
197
185
;
198
186
; RV64I-LABEL: explicit_register_gp:
199
187
; RV64I: # %bb.0:
200
- ; RV64I-NEXT: addi sp, sp, -16
201
- ; RV64I-NEXT: sd gp, 8(sp) # 8-byte Folded Spill
202
188
; RV64I-NEXT: mv gp, a0
203
189
; RV64I-NEXT: #APP
204
190
; RV64I-NEXT: addi a0, gp, 0
205
191
; RV64I-NEXT: #NO_APP
206
- ; RV64I-NEXT: ld gp, 8(sp) # 8-byte Folded Reload
207
- ; RV64I-NEXT: addi sp, sp, 16
208
192
; RV64I-NEXT: ret
209
193
%1 = tail call i32 asm "addi $0, $1, 0" , "=r,{gp}" (i32 %a )
210
194
ret i32 %1
@@ -214,26 +198,18 @@ define i32 @explicit_register_gp(i32 %a) nounwind {
214
198
define i32 @explicit_register_x4 (i32 %a ) nounwind {
215
199
; RV32I-LABEL: explicit_register_x4:
216
200
; RV32I: # %bb.0:
217
- ; RV32I-NEXT: addi sp, sp, -16
218
- ; RV32I-NEXT: sw tp, 12(sp) # 4-byte Folded Spill
219
201
; RV32I-NEXT: mv tp, a0
220
202
; RV32I-NEXT: #APP
221
203
; RV32I-NEXT: addi a0, tp, 0
222
204
; RV32I-NEXT: #NO_APP
223
- ; RV32I-NEXT: lw tp, 12(sp) # 4-byte Folded Reload
224
- ; RV32I-NEXT: addi sp, sp, 16
225
205
; RV32I-NEXT: ret
226
206
;
227
207
; RV64I-LABEL: explicit_register_x4:
228
208
; RV64I: # %bb.0:
229
- ; RV64I-NEXT: addi sp, sp, -16
230
- ; RV64I-NEXT: sd tp, 8(sp) # 8-byte Folded Spill
231
209
; RV64I-NEXT: mv tp, a0
232
210
; RV64I-NEXT: #APP
233
211
; RV64I-NEXT: addi a0, tp, 0
234
212
; RV64I-NEXT: #NO_APP
235
- ; RV64I-NEXT: ld tp, 8(sp) # 8-byte Folded Reload
236
- ; RV64I-NEXT: addi sp, sp, 16
237
213
; RV64I-NEXT: ret
238
214
%1 = tail call i32 asm "addi $0, $1, 0" , "=r,{x4}" (i32 %a )
239
215
ret i32 %1
@@ -243,26 +219,18 @@ define i32 @explicit_register_x4(i32 %a) nounwind {
243
219
define i32 @explicit_register_tp (i32 %a ) nounwind {
244
220
; RV32I-LABEL: explicit_register_tp:
245
221
; RV32I: # %bb.0:
246
- ; RV32I-NEXT: addi sp, sp, -16
247
- ; RV32I-NEXT: sw tp, 12(sp) # 4-byte Folded Spill
248
222
; RV32I-NEXT: mv tp, a0
249
223
; RV32I-NEXT: #APP
250
224
; RV32I-NEXT: addi a0, tp, 0
251
225
; RV32I-NEXT: #NO_APP
252
- ; RV32I-NEXT: lw tp, 12(sp) # 4-byte Folded Reload
253
- ; RV32I-NEXT: addi sp, sp, 16
254
226
; RV32I-NEXT: ret
255
227
;
256
228
; RV64I-LABEL: explicit_register_tp:
257
229
; RV64I: # %bb.0:
258
- ; RV64I-NEXT: addi sp, sp, -16
259
- ; RV64I-NEXT: sd tp, 8(sp) # 8-byte Folded Spill
260
230
; RV64I-NEXT: mv tp, a0
261
231
; RV64I-NEXT: #APP
262
232
; RV64I-NEXT: addi a0, tp, 0
263
233
; RV64I-NEXT: #NO_APP
264
- ; RV64I-NEXT: ld tp, 8(sp) # 8-byte Folded Reload
265
- ; RV64I-NEXT: addi sp, sp, 16
266
234
; RV64I-NEXT: ret
267
235
%1 = tail call i32 asm "addi $0, $1, 0" , "=r,{tp}" (i32 %a )
268
236
ret i32 %1
0 commit comments