1; RUN: llc < %s -limit-float-precision=6 -march=x86 | \
2; RUN:    not grep exp | not grep log | not grep pow
3; RUN: llc < %s -limit-float-precision=12 -march=x86 | \
4; RUN:    not grep exp | not grep log | not grep pow
5; RUN: llc < %s -limit-float-precision=18 -march=x86 | \
6; RUN:    not grep exp | not grep log | not grep pow
7
8define float @f1(float %x) nounwind noinline {
9entry:
10	%"alloca point" = bitcast i32 0 to i32		; <i32> [#uses=0]
11	%0 = call float @llvm.exp.f32(float %x)		; <float> [#uses=1]
12	ret float %0
13}
14
15declare float @llvm.exp.f32(float) nounwind readonly
16
17define float @f2(float %x) nounwind noinline {
18entry:
19	%"alloca point" = bitcast i32 0 to i32		; <i32> [#uses=0]
20	%0 = call float @llvm.exp2.f32(float %x)		; <float> [#uses=1]
21	ret float %0
22}
23
24declare float @llvm.exp2.f32(float) nounwind readonly
25
26define float @f3(float %x) nounwind noinline {
27entry:
28	%"alloca point" = bitcast i32 0 to i32		; <i32> [#uses=0]
29	%0 = call float @llvm.pow.f32(float 1.000000e+01, float %x)		; <float> [#uses=1]
30	ret float %0
31}
32
33declare float @llvm.pow.f32(float, float) nounwind readonly
34
35define float @f4(float %x) nounwind noinline {
36entry:
37	%"alloca point" = bitcast i32 0 to i32		; <i32> [#uses=0]
38	%0 = call float @llvm.log.f32(float %x)		; <float> [#uses=1]
39	ret float %0
40}
41
42declare float @llvm.log.f32(float) nounwind readonly
43
44define float @f5(float %x) nounwind noinline {
45entry:
46	%"alloca point" = bitcast i32 0 to i32		; <i32> [#uses=0]
47	%0 = call float @llvm.log2.f32(float %x)		; <float> [#uses=1]
48	ret float %0
49}
50
51declare float @llvm.log2.f32(float) nounwind readonly
52
53define float @f6(float %x) nounwind noinline {
54entry:
55	%"alloca point" = bitcast i32 0 to i32		; <i32> [#uses=0]
56	%0 = call float @llvm.log10.f32(float %x)		; <float> [#uses=1]
57	ret float %0
58}
59
60declare float @llvm.log10.f32(float) nounwind readonly
61