@@ -120,60 +120,3 @@ entry:
120120 %r = tail call i32 @callee_tail (i32 %i )
121121 ret i32 %r
122122}
123-
124- define i32 @caller_call_tail (i32 %i ) nounwind {
125- ; SMALL-LABEL: caller_call_tail:
126- ; SMALL: # %bb.0: # %entry
127- ; SMALL-NEXT: addi.d $sp, $sp, -16
128- ; SMALL-NEXT: st.d $ra, $sp, 8 # 8-byte Folded Spill
129- ; SMALL-NEXT: st.d $fp, $sp, 0 # 8-byte Folded Spill
130- ; SMALL-NEXT: move $fp, $a0
131- ; SMALL-NEXT: bl %plt(callee_tail)
132- ; SMALL-NEXT: move $a0, $fp
133- ; SMALL-NEXT: ld.d $fp, $sp, 0 # 8-byte Folded Reload
134- ; SMALL-NEXT: ld.d $ra, $sp, 8 # 8-byte Folded Reload
135- ; SMALL-NEXT: addi.d $sp, $sp, 16
136- ; SMALL-NEXT: b %plt(callee_tail)
137- ;
138- ; MEDIUM-LABEL: caller_call_tail:
139- ; MEDIUM: # %bb.0: # %entry
140- ; MEDIUM-NEXT: addi.d $sp, $sp, -16
141- ; MEDIUM-NEXT: st.d $ra, $sp, 8 # 8-byte Folded Spill
142- ; MEDIUM-NEXT: st.d $fp, $sp, 0 # 8-byte Folded Spill
143- ; MEDIUM-NEXT: move $fp, $a0
144- ; MEDIUM-NEXT: pcaddu18i $ra, %call36(callee_tail)
145- ; MEDIUM-NEXT: jirl $ra, $ra, 0
146- ; MEDIUM-NEXT: move $a0, $fp
147- ; MEDIUM-NEXT: ld.d $fp, $sp, 0 # 8-byte Folded Reload
148- ; MEDIUM-NEXT: ld.d $ra, $sp, 8 # 8-byte Folded Reload
149- ; MEDIUM-NEXT: addi.d $sp, $sp, 16
150- ; MEDIUM-NEXT: pcaddu18i $t8, %call36(callee_tail)
151- ; MEDIUM-NEXT: jr $t8
152- ;
153- ; LARGE-LABEL: caller_call_tail:
154- ; LARGE: # %bb.0: # %entry
155- ; LARGE-NEXT: addi.d $sp, $sp, -16
156- ; LARGE-NEXT: st.d $ra, $sp, 8 # 8-byte Folded Spill
157- ; LARGE-NEXT: st.d $fp, $sp, 0 # 8-byte Folded Spill
158- ; LARGE-NEXT: move $fp, $a0
159- ; LARGE-NEXT: pcalau12i $a1, %got_pc_hi20(callee_tail)
160- ; LARGE-NEXT: addi.d $ra, $zero, %got_pc_lo12(callee_tail)
161- ; LARGE-NEXT: lu32i.d $ra, %got64_pc_lo20(callee_tail)
162- ; LARGE-NEXT: lu52i.d $ra, $ra, %got64_pc_hi12(callee_tail)
163- ; LARGE-NEXT: ldx.d $ra, $ra, $a1
164- ; LARGE-NEXT: jirl $ra, $ra, 0
165- ; LARGE-NEXT: move $a0, $fp
166- ; LARGE-NEXT: pcalau12i $a1, %got_pc_hi20(callee_tail)
167- ; LARGE-NEXT: addi.d $a2, $zero, %got_pc_lo12(callee_tail)
168- ; LARGE-NEXT: lu32i.d $a2, %got64_pc_lo20(callee_tail)
169- ; LARGE-NEXT: lu52i.d $a2, $a2, %got64_pc_hi12(callee_tail)
170- ; LARGE-NEXT: ldx.d $a1, $a2, $a1
171- ; LARGE-NEXT: ld.d $fp, $sp, 0 # 8-byte Folded Reload
172- ; LARGE-NEXT: ld.d $ra, $sp, 8 # 8-byte Folded Reload
173- ; LARGE-NEXT: addi.d $sp, $sp, 16
174- ; LARGE-NEXT: jr $a1
175- entry:
176- call i32 @callee_tail (i32 %i )
177- %r = tail call i32 @callee_tail (i32 %i )
178- ret i32 %r
179- }
0 commit comments