xref: /aosp_15_r20/external/llvm/test/CodeGen/Mips/tail16.ll (revision 9880d6810fe72a1726cb53787c6711e909410d58)
1*9880d681SAndroid Build Coastguard Worker; RUN: llc -mtriple=mipsel-linux-gnu -march=mipsel -mattr=mips16 -mattr=+soft-float -mips16-hard-float -relocation-model=pic   < %s | FileCheck %s
2*9880d681SAndroid Build Coastguard Worker
3*9880d681SAndroid Build Coastguard Worker; Function Attrs: nounwind optsize
4*9880d681SAndroid Build Coastguard Workerdefine float @h()  {
5*9880d681SAndroid Build Coastguard Workerentry:
6*9880d681SAndroid Build Coastguard Worker  %call = tail call float bitcast (float (...)* @g to float ()*)()
7*9880d681SAndroid Build Coastguard Worker  ret float %call
8*9880d681SAndroid Build Coastguard Worker; CHECK:	.ent	h
9*9880d681SAndroid Build Coastguard Worker; CHECK: 	save	$16, $ra, $18, 32
10*9880d681SAndroid Build Coastguard Worker; CHECK: 	lw	${{[0-9]+}}, %got(__mips16_call_stub_sf_0)(${{[0-9]+}})
11*9880d681SAndroid Build Coastguard Worker; CHECK: 	restore	$16, $ra, $18, 32
12*9880d681SAndroid Build Coastguard Worker; CHECK: 	.end	h
13*9880d681SAndroid Build Coastguard Worker}
14*9880d681SAndroid Build Coastguard Worker
15*9880d681SAndroid Build Coastguard Worker; Function Attrs: optsize
16*9880d681SAndroid Build Coastguard Workerdeclare float @g(...)
17*9880d681SAndroid Build Coastguard Worker
18*9880d681SAndroid Build Coastguard Worker
19*9880d681SAndroid Build Coastguard Worker
20*9880d681SAndroid Build Coastguard Worker
21