@@ -2252,3 +2252,53 @@ label:
2252
2252
call void asm "lw zero, $0" , "*A" (ptr elementtype(i32 ) getelementptr (i8 , ptr blockaddress (@constraint_A_with_local_3 , %label ), i32 2000 ))
2253
2253
ret void
2254
2254
}
2255
+
2256
+ @_ZN5repro9MY_BUFFER17hb0f674501d5980a6E = external global <{ [16 x i8 ] }>
2257
+
2258
+ ; Address is not used by a memory constraint.
2259
+ define void @should_not_fold () {
2260
+ ; RV32I-LABEL: should_not_fold:
2261
+ ; RV32I: # %bb.0: # %start
2262
+ ; RV32I-NEXT: .cfi_def_cfa_offset 0
2263
+ ; RV32I-NEXT: lui a0, %hi(_ZN5repro9MY_BUFFER17hb0f674501d5980a6E)
2264
+ ; RV32I-NEXT: addi a0, a0, %lo(_ZN5repro9MY_BUFFER17hb0f674501d5980a6E)
2265
+ ; RV32I-NEXT: #APP
2266
+ ; RV32I-NEXT: ecall
2267
+ ; RV32I-NEXT: #NO_APP
2268
+ ; RV32I-NEXT: ret
2269
+ ;
2270
+ ; RV64I-LABEL: should_not_fold:
2271
+ ; RV64I: # %bb.0: # %start
2272
+ ; RV64I-NEXT: .cfi_def_cfa_offset 0
2273
+ ; RV64I-NEXT: lui a0, %hi(_ZN5repro9MY_BUFFER17hb0f674501d5980a6E)
2274
+ ; RV64I-NEXT: addi a0, a0, %lo(_ZN5repro9MY_BUFFER17hb0f674501d5980a6E)
2275
+ ; RV64I-NEXT: #APP
2276
+ ; RV64I-NEXT: ecall
2277
+ ; RV64I-NEXT: #NO_APP
2278
+ ; RV64I-NEXT: ret
2279
+ ;
2280
+ ; RV32I-MEDIUM-LABEL: should_not_fold:
2281
+ ; RV32I-MEDIUM: # %bb.0: # %start
2282
+ ; RV32I-MEDIUM-NEXT: .cfi_def_cfa_offset 0
2283
+ ; RV32I-MEDIUM-NEXT: .Lpcrel_hi39:
2284
+ ; RV32I-MEDIUM-NEXT: auipc a0, %pcrel_hi(_ZN5repro9MY_BUFFER17hb0f674501d5980a6E)
2285
+ ; RV32I-MEDIUM-NEXT: addi a0, a0, %pcrel_lo(.Lpcrel_hi39)
2286
+ ; RV32I-MEDIUM-NEXT: #APP
2287
+ ; RV32I-MEDIUM-NEXT: ecall
2288
+ ; RV32I-MEDIUM-NEXT: #NO_APP
2289
+ ; RV32I-MEDIUM-NEXT: ret
2290
+ ;
2291
+ ; RV64I-MEDIUM-LABEL: should_not_fold:
2292
+ ; RV64I-MEDIUM: # %bb.0: # %start
2293
+ ; RV64I-MEDIUM-NEXT: .cfi_def_cfa_offset 0
2294
+ ; RV64I-MEDIUM-NEXT: .Lpcrel_hi39:
2295
+ ; RV64I-MEDIUM-NEXT: auipc a0, %pcrel_hi(_ZN5repro9MY_BUFFER17hb0f674501d5980a6E)
2296
+ ; RV64I-MEDIUM-NEXT: addi a0, a0, %pcrel_lo(.Lpcrel_hi39)
2297
+ ; RV64I-MEDIUM-NEXT: #APP
2298
+ ; RV64I-MEDIUM-NEXT: ecall
2299
+ ; RV64I-MEDIUM-NEXT: #NO_APP
2300
+ ; RV64I-MEDIUM-NEXT: ret
2301
+ start:
2302
+ %0 = tail call ptr asm sideeffect alignstack "ecall" , "=&{x10},0,~{vtype},~{vl},~{vxsat},~{vxrm},~{memory}" (ptr @_ZN5repro9MY_BUFFER17hb0f674501d5980a6E )
2303
+ ret void
2304
+ }
0 commit comments