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