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