xref: /aosp_15_r20/external/llvm/test/Transforms/InstCombine/2009-01-19-fmod-constant-float-specials.ll (revision 9880d6810fe72a1726cb53787c6711e909410d58)
1*9880d681SAndroid Build Coastguard Worker; RUN: opt < %s -simplifycfg -instcombine -S | grep 0x7FF8000000000000 | count 12
2*9880d681SAndroid Build Coastguard Worker; RUN: opt < %s -simplifycfg -instcombine -S | grep "0\.0" | count 3
3*9880d681SAndroid Build Coastguard Worker; RUN: opt < %s -simplifycfg -instcombine -S | grep "3\.5" | count 1
4*9880d681SAndroid Build Coastguard Worker;
5*9880d681SAndroid Build Coastguard Worker
6*9880d681SAndroid Build Coastguard Worker; ModuleID = 'apf.c'
7*9880d681SAndroid Build Coastguard Workertarget datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f80:128:128"
8*9880d681SAndroid Build Coastguard Workertarget triple = "i386-apple-darwin9.6"
9*9880d681SAndroid Build Coastguard Worker@"\01LC" = internal constant [4 x i8] c"%f\0A\00"		; <[4 x i8]*> [#uses=1]
10*9880d681SAndroid Build Coastguard Worker
11*9880d681SAndroid Build Coastguard Workerdefine void @foo1() nounwind {
12*9880d681SAndroid Build Coastguard Workerentry:
13*9880d681SAndroid Build Coastguard Worker	%y = alloca float		; <float*> [#uses=2]
14*9880d681SAndroid Build Coastguard Worker	%x = alloca float		; <float*> [#uses=2]
15*9880d681SAndroid Build Coastguard Worker	%"alloca point" = bitcast i32 0 to i32		; <i32> [#uses=0]
16*9880d681SAndroid Build Coastguard Worker	store float 0x7FF0000000000000, float* %x, align 4
17*9880d681SAndroid Build Coastguard Worker	store float 0x7FF8000000000000, float* %y, align 4
18*9880d681SAndroid Build Coastguard Worker	%0 = load float, float* %y, align 4		; <float> [#uses=1]
19*9880d681SAndroid Build Coastguard Worker	%1 = fpext float %0 to double		; <double> [#uses=1]
20*9880d681SAndroid Build Coastguard Worker	%2 = load float, float* %x, align 4		; <float> [#uses=1]
21*9880d681SAndroid Build Coastguard Worker	%3 = fpext float %2 to double		; <double> [#uses=1]
22*9880d681SAndroid Build Coastguard Worker	%4 = frem double %3, %1		; <double> [#uses=1]
23*9880d681SAndroid Build Coastguard Worker	%5 = call i32 (i8*, ...) @printf(i8* getelementptr ([4 x i8], [4 x i8]* @"\01LC", i32 0, i32 0), double %4) nounwind		; <i32> [#uses=0]
24*9880d681SAndroid Build Coastguard Worker	br label %return
25*9880d681SAndroid Build Coastguard Worker
26*9880d681SAndroid Build Coastguard Workerreturn:		; preds = %entry
27*9880d681SAndroid Build Coastguard Worker	ret void
28*9880d681SAndroid Build Coastguard Worker}
29*9880d681SAndroid Build Coastguard Worker
30*9880d681SAndroid Build Coastguard Workerdeclare i32 @printf(i8*, ...) nounwind
31*9880d681SAndroid Build Coastguard Worker
32*9880d681SAndroid Build Coastguard Workerdefine void @foo2() nounwind {
33*9880d681SAndroid Build Coastguard Workerentry:
34*9880d681SAndroid Build Coastguard Worker	%y = alloca float		; <float*> [#uses=2]
35*9880d681SAndroid Build Coastguard Worker	%x = alloca float		; <float*> [#uses=2]
36*9880d681SAndroid Build Coastguard Worker	%"alloca point" = bitcast i32 0 to i32		; <i32> [#uses=0]
37*9880d681SAndroid Build Coastguard Worker	store float 0x7FF0000000000000, float* %x, align 4
38*9880d681SAndroid Build Coastguard Worker	store float 0.000000e+00, float* %y, align 4
39*9880d681SAndroid Build Coastguard Worker	%0 = load float, float* %y, align 4		; <float> [#uses=1]
40*9880d681SAndroid Build Coastguard Worker	%1 = fpext float %0 to double		; <double> [#uses=1]
41*9880d681SAndroid Build Coastguard Worker	%2 = load float, float* %x, align 4		; <float> [#uses=1]
42*9880d681SAndroid Build Coastguard Worker	%3 = fpext float %2 to double		; <double> [#uses=1]
43*9880d681SAndroid Build Coastguard Worker	%4 = frem double %3, %1		; <double> [#uses=1]
44*9880d681SAndroid Build Coastguard Worker	%5 = call i32 (i8*, ...) @printf(i8* getelementptr ([4 x i8], [4 x i8]* @"\01LC", i32 0, i32 0), double %4) nounwind		; <i32> [#uses=0]
45*9880d681SAndroid Build Coastguard Worker	br label %return
46*9880d681SAndroid Build Coastguard Worker
47*9880d681SAndroid Build Coastguard Workerreturn:		; preds = %entry
48*9880d681SAndroid Build Coastguard Worker	ret void
49*9880d681SAndroid Build Coastguard Worker}
50*9880d681SAndroid Build Coastguard Worker
51*9880d681SAndroid Build Coastguard Workerdefine void @foo3() nounwind {
52*9880d681SAndroid Build Coastguard Workerentry:
53*9880d681SAndroid Build Coastguard Worker	%y = alloca float		; <float*> [#uses=2]
54*9880d681SAndroid Build Coastguard Worker	%x = alloca float		; <float*> [#uses=2]
55*9880d681SAndroid Build Coastguard Worker	%"alloca point" = bitcast i32 0 to i32		; <i32> [#uses=0]
56*9880d681SAndroid Build Coastguard Worker	store float 0x7FF0000000000000, float* %x, align 4
57*9880d681SAndroid Build Coastguard Worker	store float 3.500000e+00, float* %y, align 4
58*9880d681SAndroid Build Coastguard Worker	%0 = load float, float* %y, align 4		; <float> [#uses=1]
59*9880d681SAndroid Build Coastguard Worker	%1 = fpext float %0 to double		; <double> [#uses=1]
60*9880d681SAndroid Build Coastguard Worker	%2 = load float, float* %x, align 4		; <float> [#uses=1]
61*9880d681SAndroid Build Coastguard Worker	%3 = fpext float %2 to double		; <double> [#uses=1]
62*9880d681SAndroid Build Coastguard Worker	%4 = frem double %3, %1		; <double> [#uses=1]
63*9880d681SAndroid Build Coastguard Worker	%5 = call i32 (i8*, ...) @printf(i8* getelementptr ([4 x i8], [4 x i8]* @"\01LC", i32 0, i32 0), double %4) nounwind		; <i32> [#uses=0]
64*9880d681SAndroid Build Coastguard Worker	br label %return
65*9880d681SAndroid Build Coastguard Worker
66*9880d681SAndroid Build Coastguard Workerreturn:		; preds = %entry
67*9880d681SAndroid Build Coastguard Worker	ret void
68*9880d681SAndroid Build Coastguard Worker}
69*9880d681SAndroid Build Coastguard Worker
70*9880d681SAndroid Build Coastguard Workerdefine void @foo4() nounwind {
71*9880d681SAndroid Build Coastguard Workerentry:
72*9880d681SAndroid Build Coastguard Worker	%y = alloca float		; <float*> [#uses=2]
73*9880d681SAndroid Build Coastguard Worker	%x = alloca float		; <float*> [#uses=2]
74*9880d681SAndroid Build Coastguard Worker	%"alloca point" = bitcast i32 0 to i32		; <i32> [#uses=0]
75*9880d681SAndroid Build Coastguard Worker	store float 0x7FF0000000000000, float* %x, align 4
76*9880d681SAndroid Build Coastguard Worker	store float 0x7FF0000000000000, float* %y, align 4
77*9880d681SAndroid Build Coastguard Worker	%0 = load float, float* %y, align 4		; <float> [#uses=1]
78*9880d681SAndroid Build Coastguard Worker	%1 = fpext float %0 to double		; <double> [#uses=1]
79*9880d681SAndroid Build Coastguard Worker	%2 = load float, float* %x, align 4		; <float> [#uses=1]
80*9880d681SAndroid Build Coastguard Worker	%3 = fpext float %2 to double		; <double> [#uses=1]
81*9880d681SAndroid Build Coastguard Worker	%4 = frem double %3, %1		; <double> [#uses=1]
82*9880d681SAndroid Build Coastguard Worker	%5 = call i32 (i8*, ...) @printf(i8* getelementptr ([4 x i8], [4 x i8]* @"\01LC", i32 0, i32 0), double %4) nounwind		; <i32> [#uses=0]
83*9880d681SAndroid Build Coastguard Worker	br label %return
84*9880d681SAndroid Build Coastguard Worker
85*9880d681SAndroid Build Coastguard Workerreturn:		; preds = %entry
86*9880d681SAndroid Build Coastguard Worker	ret void
87*9880d681SAndroid Build Coastguard Worker}
88*9880d681SAndroid Build Coastguard Worker
89*9880d681SAndroid Build Coastguard Workerdefine void @foo5() nounwind {
90*9880d681SAndroid Build Coastguard Workerentry:
91*9880d681SAndroid Build Coastguard Worker	%y = alloca float		; <float*> [#uses=2]
92*9880d681SAndroid Build Coastguard Worker	%x = alloca float		; <float*> [#uses=2]
93*9880d681SAndroid Build Coastguard Worker	%"alloca point" = bitcast i32 0 to i32		; <i32> [#uses=0]
94*9880d681SAndroid Build Coastguard Worker	store float 0x7FF8000000000000, float* %x, align 4
95*9880d681SAndroid Build Coastguard Worker	store float 0x7FF0000000000000, float* %y, align 4
96*9880d681SAndroid Build Coastguard Worker	%0 = load float, float* %y, align 4		; <float> [#uses=1]
97*9880d681SAndroid Build Coastguard Worker	%1 = fpext float %0 to double		; <double> [#uses=1]
98*9880d681SAndroid Build Coastguard Worker	%2 = load float, float* %x, align 4		; <float> [#uses=1]
99*9880d681SAndroid Build Coastguard Worker	%3 = fpext float %2 to double		; <double> [#uses=1]
100*9880d681SAndroid Build Coastguard Worker	%4 = frem double %3, %1		; <double> [#uses=1]
101*9880d681SAndroid Build Coastguard Worker	%5 = call i32 (i8*, ...) @printf(i8* getelementptr ([4 x i8], [4 x i8]* @"\01LC", i32 0, i32 0), double %4) nounwind		; <i32> [#uses=0]
102*9880d681SAndroid Build Coastguard Worker	br label %return
103*9880d681SAndroid Build Coastguard Worker
104*9880d681SAndroid Build Coastguard Workerreturn:		; preds = %entry
105*9880d681SAndroid Build Coastguard Worker	ret void
106*9880d681SAndroid Build Coastguard Worker}
107*9880d681SAndroid Build Coastguard Worker
108*9880d681SAndroid Build Coastguard Workerdefine void @foo6() nounwind {
109*9880d681SAndroid Build Coastguard Workerentry:
110*9880d681SAndroid Build Coastguard Worker	%y = alloca float		; <float*> [#uses=2]
111*9880d681SAndroid Build Coastguard Worker	%x = alloca float		; <float*> [#uses=2]
112*9880d681SAndroid Build Coastguard Worker	%"alloca point" = bitcast i32 0 to i32		; <i32> [#uses=0]
113*9880d681SAndroid Build Coastguard Worker	store float 0x7FF8000000000000, float* %x, align 4
114*9880d681SAndroid Build Coastguard Worker	store float 0.000000e+00, float* %y, align 4
115*9880d681SAndroid Build Coastguard Worker	%0 = load float, float* %y, align 4		; <float> [#uses=1]
116*9880d681SAndroid Build Coastguard Worker	%1 = fpext float %0 to double		; <double> [#uses=1]
117*9880d681SAndroid Build Coastguard Worker	%2 = load float, float* %x, align 4		; <float> [#uses=1]
118*9880d681SAndroid Build Coastguard Worker	%3 = fpext float %2 to double		; <double> [#uses=1]
119*9880d681SAndroid Build Coastguard Worker	%4 = frem double %3, %1		; <double> [#uses=1]
120*9880d681SAndroid Build Coastguard Worker	%5 = call i32 (i8*, ...) @printf(i8* getelementptr ([4 x i8], [4 x i8]* @"\01LC", i32 0, i32 0), double %4) nounwind		; <i32> [#uses=0]
121*9880d681SAndroid Build Coastguard Worker	br label %return
122*9880d681SAndroid Build Coastguard Worker
123*9880d681SAndroid Build Coastguard Workerreturn:		; preds = %entry
124*9880d681SAndroid Build Coastguard Worker	ret void
125*9880d681SAndroid Build Coastguard Worker}
126*9880d681SAndroid Build Coastguard Worker
127*9880d681SAndroid Build Coastguard Workerdefine void @foo7() nounwind {
128*9880d681SAndroid Build Coastguard Workerentry:
129*9880d681SAndroid Build Coastguard Worker	%y = alloca float		; <float*> [#uses=2]
130*9880d681SAndroid Build Coastguard Worker	%x = alloca float		; <float*> [#uses=2]
131*9880d681SAndroid Build Coastguard Worker	%"alloca point" = bitcast i32 0 to i32		; <i32> [#uses=0]
132*9880d681SAndroid Build Coastguard Worker	store float 0x7FF8000000000000, float* %x, align 4
133*9880d681SAndroid Build Coastguard Worker	store float 3.500000e+00, float* %y, align 4
134*9880d681SAndroid Build Coastguard Worker	%0 = load float, float* %y, align 4		; <float> [#uses=1]
135*9880d681SAndroid Build Coastguard Worker	%1 = fpext float %0 to double		; <double> [#uses=1]
136*9880d681SAndroid Build Coastguard Worker	%2 = load float, float* %x, align 4		; <float> [#uses=1]
137*9880d681SAndroid Build Coastguard Worker	%3 = fpext float %2 to double		; <double> [#uses=1]
138*9880d681SAndroid Build Coastguard Worker	%4 = frem double %3, %1		; <double> [#uses=1]
139*9880d681SAndroid Build Coastguard Worker	%5 = call i32 (i8*, ...) @printf(i8* getelementptr ([4 x i8], [4 x i8]* @"\01LC", i32 0, i32 0), double %4) nounwind		; <i32> [#uses=0]
140*9880d681SAndroid Build Coastguard Worker	br label %return
141*9880d681SAndroid Build Coastguard Worker
142*9880d681SAndroid Build Coastguard Workerreturn:		; preds = %entry
143*9880d681SAndroid Build Coastguard Worker	ret void
144*9880d681SAndroid Build Coastguard Worker}
145*9880d681SAndroid Build Coastguard Worker
146*9880d681SAndroid Build Coastguard Workerdefine void @foo8() nounwind {
147*9880d681SAndroid Build Coastguard Workerentry:
148*9880d681SAndroid Build Coastguard Worker	%y = alloca float		; <float*> [#uses=2]
149*9880d681SAndroid Build Coastguard Worker	%x = alloca float		; <float*> [#uses=2]
150*9880d681SAndroid Build Coastguard Worker	%"alloca point" = bitcast i32 0 to i32		; <i32> [#uses=0]
151*9880d681SAndroid Build Coastguard Worker	store float 0x7FF8000000000000, float* %x, align 4
152*9880d681SAndroid Build Coastguard Worker	store float 0x7FF8000000000000, float* %y, align 4
153*9880d681SAndroid Build Coastguard Worker	%0 = load float, float* %y, align 4		; <float> [#uses=1]
154*9880d681SAndroid Build Coastguard Worker	%1 = fpext float %0 to double		; <double> [#uses=1]
155*9880d681SAndroid Build Coastguard Worker	%2 = load float, float* %x, align 4		; <float> [#uses=1]
156*9880d681SAndroid Build Coastguard Worker	%3 = fpext float %2 to double		; <double> [#uses=1]
157*9880d681SAndroid Build Coastguard Worker	%4 = frem double %3, %1		; <double> [#uses=1]
158*9880d681SAndroid Build Coastguard Worker	%5 = call i32 (i8*, ...) @printf(i8* getelementptr ([4 x i8], [4 x i8]* @"\01LC", i32 0, i32 0), double %4) nounwind		; <i32> [#uses=0]
159*9880d681SAndroid Build Coastguard Worker	br label %return
160*9880d681SAndroid Build Coastguard Worker
161*9880d681SAndroid Build Coastguard Workerreturn:		; preds = %entry
162*9880d681SAndroid Build Coastguard Worker	ret void
163*9880d681SAndroid Build Coastguard Worker}
164*9880d681SAndroid Build Coastguard Worker
165*9880d681SAndroid Build Coastguard Workerdefine void @foo9() nounwind {
166*9880d681SAndroid Build Coastguard Workerentry:
167*9880d681SAndroid Build Coastguard Worker	%y = alloca float		; <float*> [#uses=2]
168*9880d681SAndroid Build Coastguard Worker	%x = alloca float		; <float*> [#uses=2]
169*9880d681SAndroid Build Coastguard Worker	%"alloca point" = bitcast i32 0 to i32		; <i32> [#uses=0]
170*9880d681SAndroid Build Coastguard Worker	store float 0.000000e+00, float* %x, align 4
171*9880d681SAndroid Build Coastguard Worker	store float 0x7FF8000000000000, float* %y, align 4
172*9880d681SAndroid Build Coastguard Worker	%0 = load float, float* %y, align 4		; <float> [#uses=1]
173*9880d681SAndroid Build Coastguard Worker	%1 = fpext float %0 to double		; <double> [#uses=1]
174*9880d681SAndroid Build Coastguard Worker	%2 = load float, float* %x, align 4		; <float> [#uses=1]
175*9880d681SAndroid Build Coastguard Worker	%3 = fpext float %2 to double		; <double> [#uses=1]
176*9880d681SAndroid Build Coastguard Worker	%4 = frem double %3, %1		; <double> [#uses=1]
177*9880d681SAndroid Build Coastguard Worker	%5 = call i32 (i8*, ...) @printf(i8* getelementptr ([4 x i8], [4 x i8]* @"\01LC", i32 0, i32 0), double %4) nounwind		; <i32> [#uses=0]
178*9880d681SAndroid Build Coastguard Worker	br label %return
179*9880d681SAndroid Build Coastguard Worker
180*9880d681SAndroid Build Coastguard Workerreturn:		; preds = %entry
181*9880d681SAndroid Build Coastguard Worker	ret void
182*9880d681SAndroid Build Coastguard Worker}
183*9880d681SAndroid Build Coastguard Worker
184*9880d681SAndroid Build Coastguard Workerdefine void @foo10() nounwind {
185*9880d681SAndroid Build Coastguard Workerentry:
186*9880d681SAndroid Build Coastguard Worker	%y = alloca float		; <float*> [#uses=2]
187*9880d681SAndroid Build Coastguard Worker	%x = alloca float		; <float*> [#uses=2]
188*9880d681SAndroid Build Coastguard Worker	%"alloca point" = bitcast i32 0 to i32		; <i32> [#uses=0]
189*9880d681SAndroid Build Coastguard Worker	store float 0.000000e+00, float* %x, align 4
190*9880d681SAndroid Build Coastguard Worker	store float 0x7FF0000000000000, float* %y, align 4
191*9880d681SAndroid Build Coastguard Worker	%0 = load float, float* %y, align 4		; <float> [#uses=1]
192*9880d681SAndroid Build Coastguard Worker	%1 = fpext float %0 to double		; <double> [#uses=1]
193*9880d681SAndroid Build Coastguard Worker	%2 = load float, float* %x, align 4		; <float> [#uses=1]
194*9880d681SAndroid Build Coastguard Worker	%3 = fpext float %2 to double		; <double> [#uses=1]
195*9880d681SAndroid Build Coastguard Worker	%4 = frem double %3, %1		; <double> [#uses=1]
196*9880d681SAndroid Build Coastguard Worker	%5 = call i32 (i8*, ...) @printf(i8* getelementptr ([4 x i8], [4 x i8]* @"\01LC", i32 0, i32 0), double %4) nounwind		; <i32> [#uses=0]
197*9880d681SAndroid Build Coastguard Worker	br label %return
198*9880d681SAndroid Build Coastguard Worker
199*9880d681SAndroid Build Coastguard Workerreturn:		; preds = %entry
200*9880d681SAndroid Build Coastguard Worker	ret void
201*9880d681SAndroid Build Coastguard Worker}
202*9880d681SAndroid Build Coastguard Worker
203*9880d681SAndroid Build Coastguard Workerdefine void @foo11() nounwind {
204*9880d681SAndroid Build Coastguard Workerentry:
205*9880d681SAndroid Build Coastguard Worker	%y = alloca float		; <float*> [#uses=2]
206*9880d681SAndroid Build Coastguard Worker	%x = alloca float		; <float*> [#uses=2]
207*9880d681SAndroid Build Coastguard Worker	%"alloca point" = bitcast i32 0 to i32		; <i32> [#uses=0]
208*9880d681SAndroid Build Coastguard Worker	store float 0.000000e+00, float* %x, align 4
209*9880d681SAndroid Build Coastguard Worker	store float 0.000000e+00, float* %y, align 4
210*9880d681SAndroid Build Coastguard Worker	%0 = load float, float* %y, align 4		; <float> [#uses=1]
211*9880d681SAndroid Build Coastguard Worker	%1 = fpext float %0 to double		; <double> [#uses=1]
212*9880d681SAndroid Build Coastguard Worker	%2 = load float, float* %x, align 4		; <float> [#uses=1]
213*9880d681SAndroid Build Coastguard Worker	%3 = fpext float %2 to double		; <double> [#uses=1]
214*9880d681SAndroid Build Coastguard Worker	%4 = frem double %3, %1		; <double> [#uses=1]
215*9880d681SAndroid Build Coastguard Worker	%5 = call i32 (i8*, ...) @printf(i8* getelementptr ([4 x i8], [4 x i8]* @"\01LC", i32 0, i32 0), double %4) nounwind		; <i32> [#uses=0]
216*9880d681SAndroid Build Coastguard Worker	br label %return
217*9880d681SAndroid Build Coastguard Worker
218*9880d681SAndroid Build Coastguard Workerreturn:		; preds = %entry
219*9880d681SAndroid Build Coastguard Worker	ret void
220*9880d681SAndroid Build Coastguard Worker}
221*9880d681SAndroid Build Coastguard Worker
222*9880d681SAndroid Build Coastguard Workerdefine void @foo12() nounwind {
223*9880d681SAndroid Build Coastguard Workerentry:
224*9880d681SAndroid Build Coastguard Worker	%y = alloca float		; <float*> [#uses=2]
225*9880d681SAndroid Build Coastguard Worker	%x = alloca float		; <float*> [#uses=2]
226*9880d681SAndroid Build Coastguard Worker	%"alloca point" = bitcast i32 0 to i32		; <i32> [#uses=0]
227*9880d681SAndroid Build Coastguard Worker	store float 0.000000e+00, float* %x, align 4
228*9880d681SAndroid Build Coastguard Worker	store float 3.500000e+00, float* %y, align 4
229*9880d681SAndroid Build Coastguard Worker	%0 = load float, float* %y, align 4		; <float> [#uses=1]
230*9880d681SAndroid Build Coastguard Worker	%1 = fpext float %0 to double		; <double> [#uses=1]
231*9880d681SAndroid Build Coastguard Worker	%2 = load float, float* %x, align 4		; <float> [#uses=1]
232*9880d681SAndroid Build Coastguard Worker	%3 = fpext float %2 to double		; <double> [#uses=1]
233*9880d681SAndroid Build Coastguard Worker	%4 = frem double %3, %1		; <double> [#uses=1]
234*9880d681SAndroid Build Coastguard Worker	%5 = call i32 (i8*, ...) @printf(i8* getelementptr ([4 x i8], [4 x i8]* @"\01LC", i32 0, i32 0), double %4) nounwind		; <i32> [#uses=0]
235*9880d681SAndroid Build Coastguard Worker	br label %return
236*9880d681SAndroid Build Coastguard Worker
237*9880d681SAndroid Build Coastguard Workerreturn:		; preds = %entry
238*9880d681SAndroid Build Coastguard Worker	ret void
239*9880d681SAndroid Build Coastguard Worker}
240*9880d681SAndroid Build Coastguard Worker
241*9880d681SAndroid Build Coastguard Workerdefine void @foo13() nounwind {
242*9880d681SAndroid Build Coastguard Workerentry:
243*9880d681SAndroid Build Coastguard Worker	%y = alloca float		; <float*> [#uses=2]
244*9880d681SAndroid Build Coastguard Worker	%x = alloca float		; <float*> [#uses=2]
245*9880d681SAndroid Build Coastguard Worker	%"alloca point" = bitcast i32 0 to i32		; <i32> [#uses=0]
246*9880d681SAndroid Build Coastguard Worker	store float 3.500000e+00, float* %x, align 4
247*9880d681SAndroid Build Coastguard Worker	store float 0x7FF8000000000000, float* %y, align 4
248*9880d681SAndroid Build Coastguard Worker	%0 = load float, float* %y, align 4		; <float> [#uses=1]
249*9880d681SAndroid Build Coastguard Worker	%1 = fpext float %0 to double		; <double> [#uses=1]
250*9880d681SAndroid Build Coastguard Worker	%2 = load float, float* %x, align 4		; <float> [#uses=1]
251*9880d681SAndroid Build Coastguard Worker	%3 = fpext float %2 to double		; <double> [#uses=1]
252*9880d681SAndroid Build Coastguard Worker	%4 = frem double %3, %1		; <double> [#uses=1]
253*9880d681SAndroid Build Coastguard Worker	%5 = call i32 (i8*, ...) @printf(i8* getelementptr ([4 x i8], [4 x i8]* @"\01LC", i32 0, i32 0), double %4) nounwind		; <i32> [#uses=0]
254*9880d681SAndroid Build Coastguard Worker	br label %return
255*9880d681SAndroid Build Coastguard Worker
256*9880d681SAndroid Build Coastguard Workerreturn:		; preds = %entry
257*9880d681SAndroid Build Coastguard Worker	ret void
258*9880d681SAndroid Build Coastguard Worker}
259*9880d681SAndroid Build Coastguard Worker
260*9880d681SAndroid Build Coastguard Workerdefine void @foo14() nounwind {
261*9880d681SAndroid Build Coastguard Workerentry:
262*9880d681SAndroid Build Coastguard Worker	%y = alloca float		; <float*> [#uses=2]
263*9880d681SAndroid Build Coastguard Worker	%x = alloca float		; <float*> [#uses=2]
264*9880d681SAndroid Build Coastguard Worker	%"alloca point" = bitcast i32 0 to i32		; <i32> [#uses=0]
265*9880d681SAndroid Build Coastguard Worker	store float 3.500000e+00, float* %x, align 4
266*9880d681SAndroid Build Coastguard Worker	store float 0x7FF0000000000000, float* %y, align 4
267*9880d681SAndroid Build Coastguard Worker	%0 = load float, float* %y, align 4		; <float> [#uses=1]
268*9880d681SAndroid Build Coastguard Worker	%1 = fpext float %0 to double		; <double> [#uses=1]
269*9880d681SAndroid Build Coastguard Worker	%2 = load float, float* %x, align 4		; <float> [#uses=1]
270*9880d681SAndroid Build Coastguard Worker	%3 = fpext float %2 to double		; <double> [#uses=1]
271*9880d681SAndroid Build Coastguard Worker	%4 = frem double %3, %1		; <double> [#uses=1]
272*9880d681SAndroid Build Coastguard Worker	%5 = call i32 (i8*, ...) @printf(i8* getelementptr ([4 x i8], [4 x i8]* @"\01LC", i32 0, i32 0), double %4) nounwind		; <i32> [#uses=0]
273*9880d681SAndroid Build Coastguard Worker	br label %return
274*9880d681SAndroid Build Coastguard Worker
275*9880d681SAndroid Build Coastguard Workerreturn:		; preds = %entry
276*9880d681SAndroid Build Coastguard Worker	ret void
277*9880d681SAndroid Build Coastguard Worker}
278*9880d681SAndroid Build Coastguard Worker
279*9880d681SAndroid Build Coastguard Workerdefine void @foo15() nounwind {
280*9880d681SAndroid Build Coastguard Workerentry:
281*9880d681SAndroid Build Coastguard Worker	%y = alloca float		; <float*> [#uses=2]
282*9880d681SAndroid Build Coastguard Worker	%x = alloca float		; <float*> [#uses=2]
283*9880d681SAndroid Build Coastguard Worker	%"alloca point" = bitcast i32 0 to i32		; <i32> [#uses=0]
284*9880d681SAndroid Build Coastguard Worker	store float 3.500000e+00, float* %x, align 4
285*9880d681SAndroid Build Coastguard Worker	store float 0.000000e+00, float* %y, align 4
286*9880d681SAndroid Build Coastguard Worker	%0 = load float, float* %y, align 4		; <float> [#uses=1]
287*9880d681SAndroid Build Coastguard Worker	%1 = fpext float %0 to double		; <double> [#uses=1]
288*9880d681SAndroid Build Coastguard Worker	%2 = load float, float* %x, align 4		; <float> [#uses=1]
289*9880d681SAndroid Build Coastguard Worker	%3 = fpext float %2 to double		; <double> [#uses=1]
290*9880d681SAndroid Build Coastguard Worker	%4 = frem double %3, %1		; <double> [#uses=1]
291*9880d681SAndroid Build Coastguard Worker	%5 = call i32 (i8*, ...) @printf(i8* getelementptr ([4 x i8], [4 x i8]* @"\01LC", i32 0, i32 0), double %4) nounwind		; <i32> [#uses=0]
292*9880d681SAndroid Build Coastguard Worker	br label %return
293*9880d681SAndroid Build Coastguard Worker
294*9880d681SAndroid Build Coastguard Workerreturn:		; preds = %entry
295*9880d681SAndroid Build Coastguard Worker	ret void
296*9880d681SAndroid Build Coastguard Worker}
297*9880d681SAndroid Build Coastguard Worker
298*9880d681SAndroid Build Coastguard Workerdefine void @foo16() nounwind {
299*9880d681SAndroid Build Coastguard Workerentry:
300*9880d681SAndroid Build Coastguard Worker	%y = alloca float		; <float*> [#uses=2]
301*9880d681SAndroid Build Coastguard Worker	%x = alloca float		; <float*> [#uses=2]
302*9880d681SAndroid Build Coastguard Worker	%"alloca point" = bitcast i32 0 to i32		; <i32> [#uses=0]
303*9880d681SAndroid Build Coastguard Worker	store float 3.500000e+00, float* %x, align 4
304*9880d681SAndroid Build Coastguard Worker	store float 3.500000e+00, float* %y, align 4
305*9880d681SAndroid Build Coastguard Worker	%0 = load float, float* %y, align 4		; <float> [#uses=1]
306*9880d681SAndroid Build Coastguard Worker	%1 = fpext float %0 to double		; <double> [#uses=1]
307*9880d681SAndroid Build Coastguard Worker	%2 = load float, float* %x, align 4		; <float> [#uses=1]
308*9880d681SAndroid Build Coastguard Worker	%3 = fpext float %2 to double		; <double> [#uses=1]
309*9880d681SAndroid Build Coastguard Worker	%4 = frem double %3, %1		; <double> [#uses=1]
310*9880d681SAndroid Build Coastguard Worker	%5 = call i32 (i8*, ...) @printf(i8* getelementptr ([4 x i8], [4 x i8]* @"\01LC", i32 0, i32 0), double %4) nounwind		; <i32> [#uses=0]
311*9880d681SAndroid Build Coastguard Worker	br label %return
312*9880d681SAndroid Build Coastguard Worker
313*9880d681SAndroid Build Coastguard Workerreturn:		; preds = %entry
314*9880d681SAndroid Build Coastguard Worker	ret void
315*9880d681SAndroid Build Coastguard Worker}
316