xref: /aosp_15_r20/external/llvm/test/CodeGen/Mips/mips16-hf-attr-2.ll (revision 9880d6810fe72a1726cb53787c6711e909410d58)
1*9880d681SAndroid Build Coastguard Worker; Check that stubs generation for mips16 hard-float mode does not depend
2*9880d681SAndroid Build Coastguard Worker; on the function 'use-soft-float' attribute's value.
3*9880d681SAndroid Build Coastguard Worker; RUN: llc -mtriple=mipsel-linux-gnu -march=mipsel \
4*9880d681SAndroid Build Coastguard Worker; RUN:     -mattr=mips16 -relocation-model=pic < %s | FileCheck %s
5*9880d681SAndroid Build Coastguard Worker
6*9880d681SAndroid Build Coastguard Workerdefine void @bar_sf() #1 {
7*9880d681SAndroid Build Coastguard Worker; CHECK: bar_sf:
8*9880d681SAndroid Build Coastguard Workerentry:
9*9880d681SAndroid Build Coastguard Worker  %call1 = call float @foo(float 1.000000e+00)
10*9880d681SAndroid Build Coastguard Worker; CHECK: lw $3, %call16(foo)($2)
11*9880d681SAndroid Build Coastguard Worker; CHECK-NOT: lw $5, %got(__mips16_call_stub_sf_1)($3)
12*9880d681SAndroid Build Coastguard Worker  ret void
13*9880d681SAndroid Build Coastguard Worker}
14*9880d681SAndroid Build Coastguard Worker
15*9880d681SAndroid Build Coastguard Workerdefine void @bar_hf() #0 {
16*9880d681SAndroid Build Coastguard Worker; CHECK: bar_hf:
17*9880d681SAndroid Build Coastguard Workerentry:
18*9880d681SAndroid Build Coastguard Worker  %call1 = call float @foo(float 1.000000e+00)
19*9880d681SAndroid Build Coastguard Worker; CHECK: lw $2, %call16(foo)($3)
20*9880d681SAndroid Build Coastguard Worker; CHECK: lw $5, %got(__mips16_call_stub_sf_1)($3)
21*9880d681SAndroid Build Coastguard Worker  ret void
22*9880d681SAndroid Build Coastguard Worker}
23*9880d681SAndroid Build Coastguard Worker
24*9880d681SAndroid Build Coastguard Workerdeclare float @foo(float) #2
25*9880d681SAndroid Build Coastguard Worker
26*9880d681SAndroid Build Coastguard Workerattributes #0 = {
27*9880d681SAndroid Build Coastguard Worker  nounwind
28*9880d681SAndroid Build Coastguard Worker  "less-precise-fpmad"="false" "no-frame-pointer-elim"="true"
29*9880d681SAndroid Build Coastguard Worker  "no-frame-pointer-elim-non-leaf" "no-infs-fp-math"="false"
30*9880d681SAndroid Build Coastguard Worker  "no-nans-fp-math"="false" "stack-protector-buffer-size"="8"
31*9880d681SAndroid Build Coastguard Worker  "unsafe-fp-math"="false" "use-soft-float"="false"
32*9880d681SAndroid Build Coastguard Worker}
33*9880d681SAndroid Build Coastguard Workerattributes #1 = {
34*9880d681SAndroid Build Coastguard Worker  nounwind
35*9880d681SAndroid Build Coastguard Worker  "less-precise-fpmad"="false" "no-frame-pointer-elim"="true"
36*9880d681SAndroid Build Coastguard Worker  "no-frame-pointer-elim-non-leaf" "no-infs-fp-math"="false"
37*9880d681SAndroid Build Coastguard Worker  "no-nans-fp-math"="false" "stack-protector-buffer-size"="8"
38*9880d681SAndroid Build Coastguard Worker  "unsafe-fp-math"="false" "use-soft-float"="true"
39*9880d681SAndroid Build Coastguard Worker}
40*9880d681SAndroid Build Coastguard Workerattributes #2 = {
41*9880d681SAndroid Build Coastguard Worker  "less-precise-fpmad"="false" "no-frame-pointer-elim"="true"
42*9880d681SAndroid Build Coastguard Worker  "no-frame-pointer-elim-non-leaf" "no-infs-fp-math"="false"
43*9880d681SAndroid Build Coastguard Worker  "no-nans-fp-math"="false" "stack-protector-buffer-size"="8"
44*9880d681SAndroid Build Coastguard Worker  "unsafe-fp-math"="false" "use-soft-float"="true"
45*9880d681SAndroid Build Coastguard Worker}
46