@@ -24,7 +24,8 @@ define i64 @caller_i128_in_regs() nounwind {
2424; CHECK-NEXT: ori $a0, $zero, 1
2525; CHECK-NEXT: ori $a1, $zero, 2
2626; CHECK-NEXT: move $a2, $zero
27- ; CHECK-NEXT: bl %plt(callee_i128_in_regs)
27+ ; CHECK-NEXT: pcaddu18i $ra, %call36(callee_i128_in_regs)
28+ ; CHECK-NEXT: jirl $ra, $ra, 0
2829; CHECK-NEXT: ld.d $ra, $sp, 8 # 8-byte Folded Reload
2930; CHECK-NEXT: addi.d $sp, $sp, 16
3031; CHECK-NEXT: ret
@@ -82,7 +83,8 @@ define i64 @caller_many_scalars() nounwind {
8283; CHECK-NEXT: ori $a7, $zero, 7
8384; CHECK-NEXT: st.d $zero, $sp, 0
8485; CHECK-NEXT: move $a5, $zero
85- ; CHECK-NEXT: bl %plt(callee_many_scalars)
86+ ; CHECK-NEXT: pcaddu18i $ra, %call36(callee_many_scalars)
87+ ; CHECK-NEXT: jirl $ra, $ra, 0
8688; CHECK-NEXT: ld.d $ra, $sp, 24 # 8-byte Folded Reload
8789; CHECK-NEXT: addi.d $sp, $sp, 32
8890; CHECK-NEXT: ret
@@ -133,7 +135,8 @@ define i64 @caller_large_scalars() nounwind {
133135; CHECK-NEXT: addi.d $a0, $sp, 32
134136; CHECK-NEXT: addi.d $a1, $sp, 0
135137; CHECK-NEXT: st.d $a2, $sp, 32
136- ; CHECK-NEXT: bl %plt(callee_large_scalars)
138+ ; CHECK-NEXT: pcaddu18i $ra, %call36(callee_large_scalars)
139+ ; CHECK-NEXT: jirl $ra, $ra, 0
137140; CHECK-NEXT: ld.d $ra, $sp, 72 # 8-byte Folded Reload
138141; CHECK-NEXT: addi.d $sp, $sp, 80
139142; CHECK-NEXT: ret
@@ -197,7 +200,8 @@ define i64 @caller_large_scalars_exhausted_regs() nounwind {
197200; CHECK-NEXT: ori $a6, $zero, 7
198201; CHECK-NEXT: addi.d $a7, $sp, 48
199202; CHECK-NEXT: vst $vr0, $sp, 56
200- ; CHECK-NEXT: bl %plt(callee_large_scalars_exhausted_regs)
203+ ; CHECK-NEXT: pcaddu18i $ra, %call36(callee_large_scalars_exhausted_regs)
204+ ; CHECK-NEXT: jirl $ra, $ra, 0
201205; CHECK-NEXT: ld.d $ra, $sp, 88 # 8-byte Folded Reload
202206; CHECK-NEXT: addi.d $sp, $sp, 96
203207; CHECK-NEXT: ret
@@ -244,7 +248,8 @@ define i64 @caller_large_struct() nounwind {
244248; CHECK-NEXT: st.d $a2, $sp, 24
245249; CHECK-NEXT: st.d $a3, $sp, 32
246250; CHECK-NEXT: addi.d $a0, $sp, 8
247- ; CHECK-NEXT: bl %plt(callee_large_struct)
251+ ; CHECK-NEXT: pcaddu18i $ra, %call36(callee_large_struct)
252+ ; CHECK-NEXT: jirl $ra, $ra, 0
248253; CHECK-NEXT: ld.d $ra, $sp, 72 # 8-byte Folded Reload
249254; CHECK-NEXT: addi.d $sp, $sp, 80
250255; CHECK-NEXT: ret
@@ -277,7 +282,8 @@ define i64 @caller_small_scalar_ret() nounwind {
277282; CHECK: # %bb.0:
278283; CHECK-NEXT: addi.d $sp, $sp, -16
279284; CHECK-NEXT: st.d $ra, $sp, 8 # 8-byte Folded Spill
280- ; CHECK-NEXT: bl %plt(callee_small_scalar_ret)
285+ ; CHECK-NEXT: pcaddu18i $ra, %call36(callee_small_scalar_ret)
286+ ; CHECK-NEXT: jirl $ra, $ra, 0
281287; CHECK-NEXT: addi.w $a2, $zero, -2
282288; CHECK-NEXT: xor $a0, $a0, $a2
283289; CHECK-NEXT: orn $a0, $a0, $a1
@@ -309,7 +315,8 @@ define i64 @caller_small_struct_ret() nounwind {
309315; CHECK: # %bb.0:
310316; CHECK-NEXT: addi.d $sp, $sp, -16
311317; CHECK-NEXT: st.d $ra, $sp, 8 # 8-byte Folded Spill
312- ; CHECK-NEXT: bl %plt(callee_small_struct_ret)
318+ ; CHECK-NEXT: pcaddu18i $ra, %call36(callee_small_struct_ret)
319+ ; CHECK-NEXT: jirl $ra, $ra, 0
313320; CHECK-NEXT: add.d $a0, $a0, $a1
314321; CHECK-NEXT: ld.d $ra, $sp, 8 # 8-byte Folded Reload
315322; CHECK-NEXT: addi.d $sp, $sp, 16
@@ -344,7 +351,8 @@ define void @caller_large_scalar_ret() nounwind {
344351; CHECK-NEXT: addi.d $sp, $sp, -48
345352; CHECK-NEXT: st.d $ra, $sp, 40 # 8-byte Folded Spill
346353; CHECK-NEXT: addi.d $a0, $sp, 0
347- ; CHECK-NEXT: bl %plt(callee_large_scalar_ret)
354+ ; CHECK-NEXT: pcaddu18i $ra, %call36(callee_large_scalar_ret)
355+ ; CHECK-NEXT: jirl $ra, $ra, 0
348356; CHECK-NEXT: ld.d $ra, $sp, 40 # 8-byte Folded Reload
349357; CHECK-NEXT: addi.d $sp, $sp, 48
350358; CHECK-NEXT: ret
@@ -383,7 +391,8 @@ define i64 @caller_large_struct_ret() nounwind {
383391; CHECK-NEXT: addi.d $sp, $sp, -48
384392; CHECK-NEXT: st.d $ra, $sp, 40 # 8-byte Folded Spill
385393; CHECK-NEXT: addi.d $a0, $sp, 8
386- ; CHECK-NEXT: bl %plt(callee_large_struct_ret)
394+ ; CHECK-NEXT: pcaddu18i $ra, %call36(callee_large_struct_ret)
395+ ; CHECK-NEXT: jirl $ra, $ra, 0
387396; CHECK-NEXT: ld.d $a0, $sp, 8
388397; CHECK-NEXT: ld.d $a1, $sp, 32
389398; CHECK-NEXT: add.d $a0, $a0, $a1
0 commit comments