1*9880d681SAndroid Build Coastguard Worker; RUN: llc -march=mipsel -mattr=mips16 -relocation-model=pic -O3 \ 2*9880d681SAndroid Build Coastguard Worker; RUN: -verify-machineinstrs < %s | FileCheck %s -check-prefix=16hf 3*9880d681SAndroid Build Coastguard Worker 4*9880d681SAndroid Build Coastguard Worker@x = global float 5.000000e+00, align 4 5*9880d681SAndroid Build Coastguard Worker@y = global float 1.500000e+01, align 4 6*9880d681SAndroid Build Coastguard Worker@xd = global double 6.000000e+00, align 8 7*9880d681SAndroid Build Coastguard Worker@yd = global double 1.800000e+01, align 8 8*9880d681SAndroid Build Coastguard Worker@two = global i32 2, align 4 9*9880d681SAndroid Build Coastguard Worker@addsf3_result = common global float 0.000000e+00, align 4 10*9880d681SAndroid Build Coastguard Worker@adddf3_result = common global double 0.000000e+00, align 8 11*9880d681SAndroid Build Coastguard Worker@subsf3_result = common global float 0.000000e+00, align 4 12*9880d681SAndroid Build Coastguard Worker@subdf3_result = common global double 0.000000e+00, align 8 13*9880d681SAndroid Build Coastguard Worker@mulsf3_result = common global float 0.000000e+00, align 4 14*9880d681SAndroid Build Coastguard Worker@muldf3_result = common global double 0.000000e+00, align 8 15*9880d681SAndroid Build Coastguard Worker@divsf3_result = common global float 0.000000e+00, align 4 16*9880d681SAndroid Build Coastguard Worker@divdf3_result = common global double 0.000000e+00, align 8 17*9880d681SAndroid Build Coastguard Worker@extendsfdf2_result = common global double 0.000000e+00, align 8 18*9880d681SAndroid Build Coastguard Worker@xd2 = global double 0x40147E6B74B4CF6A, align 8 19*9880d681SAndroid Build Coastguard Worker@truncdfsf2_result = common global float 0.000000e+00, align 4 20*9880d681SAndroid Build Coastguard Worker@fix_truncsfsi_result = common global i32 0, align 4 21*9880d681SAndroid Build Coastguard Worker@fix_truncdfsi_result = common global i32 0, align 4 22*9880d681SAndroid Build Coastguard Worker@si = global i32 -9, align 4 23*9880d681SAndroid Build Coastguard Worker@ui = global i32 9, align 4 24*9880d681SAndroid Build Coastguard Worker@floatsisf_result = common global float 0.000000e+00, align 4 25*9880d681SAndroid Build Coastguard Worker@floatsidf_result = common global double 0.000000e+00, align 8 26*9880d681SAndroid Build Coastguard Worker@floatunsisf_result = common global float 0.000000e+00, align 4 27*9880d681SAndroid Build Coastguard Worker@floatunsidf_result = common global double 0.000000e+00, align 8 28*9880d681SAndroid Build Coastguard Worker@xx = global float 5.000000e+00, align 4 29*9880d681SAndroid Build Coastguard Worker@eqsf2_result = common global i32 0, align 4 30*9880d681SAndroid Build Coastguard Worker@xxd = global double 6.000000e+00, align 8 31*9880d681SAndroid Build Coastguard Worker@eqdf2_result = common global i32 0, align 4 32*9880d681SAndroid Build Coastguard Worker@nesf2_result = common global i32 0, align 4 33*9880d681SAndroid Build Coastguard Worker@nedf2_result = common global i32 0, align 4 34*9880d681SAndroid Build Coastguard Worker@gesf2_result = common global i32 0, align 4 35*9880d681SAndroid Build Coastguard Worker@gedf2_result = common global i32 0, align 4 36*9880d681SAndroid Build Coastguard Worker@ltsf2_result = common global i32 0, align 4 37*9880d681SAndroid Build Coastguard Worker@ltdf2_result = common global i32 0, align 4 38*9880d681SAndroid Build Coastguard Worker@lesf2_result = common global i32 0, align 4 39*9880d681SAndroid Build Coastguard Worker@ledf2_result = common global i32 0, align 4 40*9880d681SAndroid Build Coastguard Worker@gtsf2_result = common global i32 0, align 4 41*9880d681SAndroid Build Coastguard Worker@gtdf2_result = common global i32 0, align 4 42*9880d681SAndroid Build Coastguard Worker 43*9880d681SAndroid Build Coastguard Workerdefine void @test_addsf3() nounwind { 44*9880d681SAndroid Build Coastguard Workerentry: 45*9880d681SAndroid Build Coastguard Worker;16hf-LABEL: test_addsf3: 46*9880d681SAndroid Build Coastguard Worker %0 = load float, float* @x, align 4 47*9880d681SAndroid Build Coastguard Worker %1 = load float, float* @y, align 4 48*9880d681SAndroid Build Coastguard Worker %add = fadd float %0, %1 49*9880d681SAndroid Build Coastguard Worker store float %add, float* @addsf3_result, align 4 50*9880d681SAndroid Build Coastguard Worker;16hf: lw ${{[0-9]+}}, %call16(__mips16_addsf3)(${{[0-9]+}}) 51*9880d681SAndroid Build Coastguard Worker ret void 52*9880d681SAndroid Build Coastguard Worker} 53*9880d681SAndroid Build Coastguard Worker 54*9880d681SAndroid Build Coastguard Workerdefine void @test_adddf3() nounwind { 55*9880d681SAndroid Build Coastguard Workerentry: 56*9880d681SAndroid Build Coastguard Worker;16hf-LABEL: test_adddf3: 57*9880d681SAndroid Build Coastguard Worker %0 = load double, double* @xd, align 8 58*9880d681SAndroid Build Coastguard Worker %1 = load double, double* @yd, align 8 59*9880d681SAndroid Build Coastguard Worker %add = fadd double %0, %1 60*9880d681SAndroid Build Coastguard Worker store double %add, double* @adddf3_result, align 8 61*9880d681SAndroid Build Coastguard Worker;16hf: lw ${{[0-9]+}}, %call16(__mips16_adddf3)(${{[0-9]+}}) 62*9880d681SAndroid Build Coastguard Worker ret void 63*9880d681SAndroid Build Coastguard Worker} 64*9880d681SAndroid Build Coastguard Worker 65*9880d681SAndroid Build Coastguard Workerdefine void @test_subsf3() nounwind { 66*9880d681SAndroid Build Coastguard Workerentry: 67*9880d681SAndroid Build Coastguard Worker;16hf-LABEL: test_subsf3: 68*9880d681SAndroid Build Coastguard Worker %0 = load float, float* @x, align 4 69*9880d681SAndroid Build Coastguard Worker %1 = load float, float* @y, align 4 70*9880d681SAndroid Build Coastguard Worker %sub = fsub float %0, %1 71*9880d681SAndroid Build Coastguard Worker store float %sub, float* @subsf3_result, align 4 72*9880d681SAndroid Build Coastguard Worker;16hf: lw ${{[0-9]+}}, %call16(__mips16_subsf3)(${{[0-9]+}}) 73*9880d681SAndroid Build Coastguard Worker ret void 74*9880d681SAndroid Build Coastguard Worker} 75*9880d681SAndroid Build Coastguard Worker 76*9880d681SAndroid Build Coastguard Workerdefine void @test_subdf3() nounwind { 77*9880d681SAndroid Build Coastguard Workerentry: 78*9880d681SAndroid Build Coastguard Worker;16hf-LABEL: test_subdf3: 79*9880d681SAndroid Build Coastguard Worker %0 = load double, double* @xd, align 8 80*9880d681SAndroid Build Coastguard Worker %1 = load double, double* @yd, align 8 81*9880d681SAndroid Build Coastguard Worker %sub = fsub double %0, %1 82*9880d681SAndroid Build Coastguard Worker store double %sub, double* @subdf3_result, align 8 83*9880d681SAndroid Build Coastguard Worker;16hf: lw ${{[0-9]+}}, %call16(__mips16_subdf3)(${{[0-9]+}}) 84*9880d681SAndroid Build Coastguard Worker ret void 85*9880d681SAndroid Build Coastguard Worker} 86*9880d681SAndroid Build Coastguard Worker 87*9880d681SAndroid Build Coastguard Workerdefine void @test_mulsf3() nounwind { 88*9880d681SAndroid Build Coastguard Workerentry: 89*9880d681SAndroid Build Coastguard Worker;16hf-LABEL: test_mulsf3: 90*9880d681SAndroid Build Coastguard Worker %0 = load float, float* @x, align 4 91*9880d681SAndroid Build Coastguard Worker %1 = load float, float* @y, align 4 92*9880d681SAndroid Build Coastguard Worker %mul = fmul float %0, %1 93*9880d681SAndroid Build Coastguard Worker store float %mul, float* @mulsf3_result, align 4 94*9880d681SAndroid Build Coastguard Worker;16hf: lw ${{[0-9]+}}, %call16(__mips16_mulsf3)(${{[0-9]+}}) 95*9880d681SAndroid Build Coastguard Worker ret void 96*9880d681SAndroid Build Coastguard Worker} 97*9880d681SAndroid Build Coastguard Worker 98*9880d681SAndroid Build Coastguard Workerdefine void @test_muldf3() nounwind { 99*9880d681SAndroid Build Coastguard Workerentry: 100*9880d681SAndroid Build Coastguard Worker;16hf-LABEL: test_muldf3: 101*9880d681SAndroid Build Coastguard Worker %0 = load double, double* @xd, align 8 102*9880d681SAndroid Build Coastguard Worker %1 = load double, double* @yd, align 8 103*9880d681SAndroid Build Coastguard Worker %mul = fmul double %0, %1 104*9880d681SAndroid Build Coastguard Worker store double %mul, double* @muldf3_result, align 8 105*9880d681SAndroid Build Coastguard Worker;16hf: lw ${{[0-9]+}}, %call16(__mips16_muldf3)(${{[0-9]+}}) 106*9880d681SAndroid Build Coastguard Worker ret void 107*9880d681SAndroid Build Coastguard Worker} 108*9880d681SAndroid Build Coastguard Worker 109*9880d681SAndroid Build Coastguard Workerdefine void @test_divsf3() nounwind { 110*9880d681SAndroid Build Coastguard Workerentry: 111*9880d681SAndroid Build Coastguard Worker;16hf-LABEL: test_divsf3: 112*9880d681SAndroid Build Coastguard Worker %0 = load float, float* @y, align 4 113*9880d681SAndroid Build Coastguard Worker %1 = load float, float* @x, align 4 114*9880d681SAndroid Build Coastguard Worker %div = fdiv float %0, %1 115*9880d681SAndroid Build Coastguard Worker store float %div, float* @divsf3_result, align 4 116*9880d681SAndroid Build Coastguard Worker;16hf: lw ${{[0-9]+}}, %call16(__mips16_divsf3)(${{[0-9]+}}) 117*9880d681SAndroid Build Coastguard Worker ret void 118*9880d681SAndroid Build Coastguard Worker} 119*9880d681SAndroid Build Coastguard Worker 120*9880d681SAndroid Build Coastguard Workerdefine void @test_divdf3() nounwind { 121*9880d681SAndroid Build Coastguard Workerentry: 122*9880d681SAndroid Build Coastguard Worker;16hf-LABEL: test_divdf3: 123*9880d681SAndroid Build Coastguard Worker %0 = load double, double* @yd, align 8 124*9880d681SAndroid Build Coastguard Worker %mul = fmul double %0, 2.000000e+00 125*9880d681SAndroid Build Coastguard Worker %1 = load double, double* @xd, align 8 126*9880d681SAndroid Build Coastguard Worker %div = fdiv double %mul, %1 127*9880d681SAndroid Build Coastguard Worker store double %div, double* @divdf3_result, align 8 128*9880d681SAndroid Build Coastguard Worker;16hf: lw ${{[0-9]+}}, %call16(__mips16_divdf3)(${{[0-9]+}}) 129*9880d681SAndroid Build Coastguard Worker ret void 130*9880d681SAndroid Build Coastguard Worker} 131*9880d681SAndroid Build Coastguard Worker 132*9880d681SAndroid Build Coastguard Workerdefine void @test_extendsfdf2() nounwind { 133*9880d681SAndroid Build Coastguard Workerentry: 134*9880d681SAndroid Build Coastguard Worker;16hf-LABEL: test_extendsfdf2: 135*9880d681SAndroid Build Coastguard Worker %0 = load float, float* @x, align 4 136*9880d681SAndroid Build Coastguard Worker %conv = fpext float %0 to double 137*9880d681SAndroid Build Coastguard Worker store double %conv, double* @extendsfdf2_result, align 8 138*9880d681SAndroid Build Coastguard Worker;16hf: lw ${{[0-9]+}}, %call16(__mips16_extendsfdf2)(${{[0-9]+}}) 139*9880d681SAndroid Build Coastguard Worker ret void 140*9880d681SAndroid Build Coastguard Worker} 141*9880d681SAndroid Build Coastguard Worker 142*9880d681SAndroid Build Coastguard Workerdefine void @test_truncdfsf2() nounwind { 143*9880d681SAndroid Build Coastguard Workerentry: 144*9880d681SAndroid Build Coastguard Worker;16hf-LABEL: test_truncdfsf2: 145*9880d681SAndroid Build Coastguard Worker %0 = load double, double* @xd2, align 8 146*9880d681SAndroid Build Coastguard Worker %conv = fptrunc double %0 to float 147*9880d681SAndroid Build Coastguard Worker store float %conv, float* @truncdfsf2_result, align 4 148*9880d681SAndroid Build Coastguard Worker;16hf: lw ${{[0-9]+}}, %call16(__mips16_truncdfsf2)(${{[0-9]+}}) 149*9880d681SAndroid Build Coastguard Worker ret void 150*9880d681SAndroid Build Coastguard Worker} 151*9880d681SAndroid Build Coastguard Worker 152*9880d681SAndroid Build Coastguard Workerdefine void @test_fix_truncsfsi() nounwind { 153*9880d681SAndroid Build Coastguard Workerentry: 154*9880d681SAndroid Build Coastguard Worker;16hf-LABEL: test_fix_truncsfsi: 155*9880d681SAndroid Build Coastguard Worker %0 = load float, float* @x, align 4 156*9880d681SAndroid Build Coastguard Worker %conv = fptosi float %0 to i32 157*9880d681SAndroid Build Coastguard Worker store i32 %conv, i32* @fix_truncsfsi_result, align 4 158*9880d681SAndroid Build Coastguard Worker;16hf: lw ${{[0-9]+}}, %call16(__mips16_fix_truncsfsi)(${{[0-9]+}}) 159*9880d681SAndroid Build Coastguard Worker ret void 160*9880d681SAndroid Build Coastguard Worker} 161*9880d681SAndroid Build Coastguard Worker 162*9880d681SAndroid Build Coastguard Workerdefine void @test_fix_truncdfsi() nounwind { 163*9880d681SAndroid Build Coastguard Workerentry: 164*9880d681SAndroid Build Coastguard Worker;16hf-LABEL: test_fix_truncdfsi: 165*9880d681SAndroid Build Coastguard Worker %0 = load double, double* @xd, align 8 166*9880d681SAndroid Build Coastguard Worker %conv = fptosi double %0 to i32 167*9880d681SAndroid Build Coastguard Worker store i32 %conv, i32* @fix_truncdfsi_result, align 4 168*9880d681SAndroid Build Coastguard Worker;16hf: lw ${{[0-9]+}}, %call16(__mips16_fix_truncdfsi)(${{[0-9]+}}) 169*9880d681SAndroid Build Coastguard Worker ret void 170*9880d681SAndroid Build Coastguard Worker} 171*9880d681SAndroid Build Coastguard Worker 172*9880d681SAndroid Build Coastguard Workerdefine void @test_floatsisf() nounwind { 173*9880d681SAndroid Build Coastguard Workerentry: 174*9880d681SAndroid Build Coastguard Worker;16hf-LABEL: test_floatsisf: 175*9880d681SAndroid Build Coastguard Worker %0 = load i32, i32* @si, align 4 176*9880d681SAndroid Build Coastguard Worker %conv = sitofp i32 %0 to float 177*9880d681SAndroid Build Coastguard Worker store float %conv, float* @floatsisf_result, align 4 178*9880d681SAndroid Build Coastguard Worker;16hf: lw ${{[0-9]+}}, %call16(__mips16_floatsisf)(${{[0-9]+}}) 179*9880d681SAndroid Build Coastguard Worker ret void 180*9880d681SAndroid Build Coastguard Worker} 181*9880d681SAndroid Build Coastguard Worker 182*9880d681SAndroid Build Coastguard Workerdefine void @test_floatsidf() nounwind { 183*9880d681SAndroid Build Coastguard Workerentry: 184*9880d681SAndroid Build Coastguard Worker;16hf-LABEL: test_floatsidf: 185*9880d681SAndroid Build Coastguard Worker %0 = load i32, i32* @si, align 4 186*9880d681SAndroid Build Coastguard Worker %conv = sitofp i32 %0 to double 187*9880d681SAndroid Build Coastguard Worker store double %conv, double* @floatsidf_result, align 8 188*9880d681SAndroid Build Coastguard Worker;16hf: lw ${{[0-9]+}}, %call16(__mips16_floatsidf)(${{[0-9]+}}) 189*9880d681SAndroid Build Coastguard Worker ret void 190*9880d681SAndroid Build Coastguard Worker} 191*9880d681SAndroid Build Coastguard Worker 192*9880d681SAndroid Build Coastguard Workerdefine void @test_floatunsisf() nounwind { 193*9880d681SAndroid Build Coastguard Workerentry: 194*9880d681SAndroid Build Coastguard Worker;16hf-LABEL: test_floatunsisf: 195*9880d681SAndroid Build Coastguard Worker %0 = load i32, i32* @ui, align 4 196*9880d681SAndroid Build Coastguard Worker %conv = uitofp i32 %0 to float 197*9880d681SAndroid Build Coastguard Worker store float %conv, float* @floatunsisf_result, align 4 198*9880d681SAndroid Build Coastguard Worker;16hf: lw ${{[0-9]+}}, %call16(__mips16_floatunsisf)(${{[0-9]+}}) 199*9880d681SAndroid Build Coastguard Worker ret void 200*9880d681SAndroid Build Coastguard Worker} 201*9880d681SAndroid Build Coastguard Worker 202*9880d681SAndroid Build Coastguard Workerdefine void @test_floatunsidf() nounwind { 203*9880d681SAndroid Build Coastguard Workerentry: 204*9880d681SAndroid Build Coastguard Worker;16hf-LABEL: test_floatunsidf: 205*9880d681SAndroid Build Coastguard Worker %0 = load i32, i32* @ui, align 4 206*9880d681SAndroid Build Coastguard Worker %conv = uitofp i32 %0 to double 207*9880d681SAndroid Build Coastguard Worker store double %conv, double* @floatunsidf_result, align 8 208*9880d681SAndroid Build Coastguard Worker;16hf: lw ${{[0-9]+}}, %call16(__mips16_floatunsidf)(${{[0-9]+}}) 209*9880d681SAndroid Build Coastguard Worker ret void 210*9880d681SAndroid Build Coastguard Worker} 211*9880d681SAndroid Build Coastguard Worker 212*9880d681SAndroid Build Coastguard Workerdefine void @test_eqsf2() nounwind { 213*9880d681SAndroid Build Coastguard Workerentry: 214*9880d681SAndroid Build Coastguard Worker;16hf-LABEL: test_eqsf2: 215*9880d681SAndroid Build Coastguard Worker %0 = load float, float* @x, align 4 216*9880d681SAndroid Build Coastguard Worker %1 = load float, float* @xx, align 4 217*9880d681SAndroid Build Coastguard Worker %cmp = fcmp oeq float %0, %1 218*9880d681SAndroid Build Coastguard Worker %conv = zext i1 %cmp to i32 219*9880d681SAndroid Build Coastguard Worker store i32 %conv, i32* @eqsf2_result, align 4 220*9880d681SAndroid Build Coastguard Worker;16hf: lw ${{[0-9]+}}, %call16(__mips16_eqsf2)(${{[0-9]+}}) 221*9880d681SAndroid Build Coastguard Worker ret void 222*9880d681SAndroid Build Coastguard Worker} 223*9880d681SAndroid Build Coastguard Worker 224*9880d681SAndroid Build Coastguard Workerdefine void @test_eqdf2() nounwind { 225*9880d681SAndroid Build Coastguard Workerentry: 226*9880d681SAndroid Build Coastguard Worker;16hf-LABEL: test_eqdf2: 227*9880d681SAndroid Build Coastguard Worker %0 = load double, double* @xd, align 8 228*9880d681SAndroid Build Coastguard Worker %1 = load double, double* @xxd, align 8 229*9880d681SAndroid Build Coastguard Worker %cmp = fcmp oeq double %0, %1 230*9880d681SAndroid Build Coastguard Worker %conv = zext i1 %cmp to i32 231*9880d681SAndroid Build Coastguard Worker store i32 %conv, i32* @eqdf2_result, align 4 232*9880d681SAndroid Build Coastguard Worker;16hf: lw ${{[0-9]+}}, %call16(__mips16_eqdf2)(${{[0-9]+}}) 233*9880d681SAndroid Build Coastguard Worker ret void 234*9880d681SAndroid Build Coastguard Worker} 235*9880d681SAndroid Build Coastguard Worker 236*9880d681SAndroid Build Coastguard Workerdefine void @test_nesf2() nounwind { 237*9880d681SAndroid Build Coastguard Workerentry: 238*9880d681SAndroid Build Coastguard Worker;16hf-LABEL: test_nesf2: 239*9880d681SAndroid Build Coastguard Worker %0 = load float, float* @x, align 4 240*9880d681SAndroid Build Coastguard Worker %1 = load float, float* @y, align 4 241*9880d681SAndroid Build Coastguard Worker %cmp = fcmp une float %0, %1 242*9880d681SAndroid Build Coastguard Worker %conv = zext i1 %cmp to i32 243*9880d681SAndroid Build Coastguard Worker store i32 %conv, i32* @nesf2_result, align 4 244*9880d681SAndroid Build Coastguard Worker;16hf: lw ${{[0-9]+}}, %call16(__mips16_nesf2)(${{[0-9]+}}) 245*9880d681SAndroid Build Coastguard Worker ret void 246*9880d681SAndroid Build Coastguard Worker} 247*9880d681SAndroid Build Coastguard Worker 248*9880d681SAndroid Build Coastguard Workerdefine void @test_nedf2() nounwind { 249*9880d681SAndroid Build Coastguard Workerentry: 250*9880d681SAndroid Build Coastguard Worker;16hf-LABEL: test_nedf2: 251*9880d681SAndroid Build Coastguard Worker %0 = load double, double* @xd, align 8 252*9880d681SAndroid Build Coastguard Worker %1 = load double, double* @yd, align 8 253*9880d681SAndroid Build Coastguard Worker %cmp = fcmp une double %0, %1 254*9880d681SAndroid Build Coastguard Worker %conv = zext i1 %cmp to i32 255*9880d681SAndroid Build Coastguard Worker store i32 %conv, i32* @nedf2_result, align 4 256*9880d681SAndroid Build Coastguard Worker;16hf: lw ${{[0-9]+}}, %call16(__mips16_nedf2)(${{[0-9]+}}) 257*9880d681SAndroid Build Coastguard Worker ret void 258*9880d681SAndroid Build Coastguard Worker} 259*9880d681SAndroid Build Coastguard Worker 260*9880d681SAndroid Build Coastguard Workerdefine void @test_gesf2() nounwind { 261*9880d681SAndroid Build Coastguard Workerentry: 262*9880d681SAndroid Build Coastguard Worker;16hf-LABEL: test_gesf2: 263*9880d681SAndroid Build Coastguard Worker %0 = load float, float* @x, align 4 264*9880d681SAndroid Build Coastguard Worker %1 = load float, float* @xx, align 4 265*9880d681SAndroid Build Coastguard Worker %cmp = fcmp oge float %0, %1 266*9880d681SAndroid Build Coastguard Worker %2 = load float, float* @y, align 4 267*9880d681SAndroid Build Coastguard Worker %cmp1 = fcmp oge float %2, %0 268*9880d681SAndroid Build Coastguard Worker %and3 = and i1 %cmp, %cmp1 269*9880d681SAndroid Build Coastguard Worker %and = zext i1 %and3 to i32 270*9880d681SAndroid Build Coastguard Worker store i32 %and, i32* @gesf2_result, align 4 271*9880d681SAndroid Build Coastguard Worker;16hf: lw ${{[0-9]+}}, %call16(__mips16_gesf2)(${{[0-9]+}}) 272*9880d681SAndroid Build Coastguard Worker ret void 273*9880d681SAndroid Build Coastguard Worker} 274*9880d681SAndroid Build Coastguard Worker 275*9880d681SAndroid Build Coastguard Workerdefine void @test_gedf2() nounwind { 276*9880d681SAndroid Build Coastguard Workerentry: 277*9880d681SAndroid Build Coastguard Worker;16hf-LABEL: test_gedf2: 278*9880d681SAndroid Build Coastguard Worker %0 = load double, double* @xd, align 8 279*9880d681SAndroid Build Coastguard Worker %1 = load double, double* @xxd, align 8 280*9880d681SAndroid Build Coastguard Worker %cmp = fcmp oge double %0, %1 281*9880d681SAndroid Build Coastguard Worker %2 = load double, double* @yd, align 8 282*9880d681SAndroid Build Coastguard Worker %cmp1 = fcmp oge double %2, %0 283*9880d681SAndroid Build Coastguard Worker %and3 = and i1 %cmp, %cmp1 284*9880d681SAndroid Build Coastguard Worker %and = zext i1 %and3 to i32 285*9880d681SAndroid Build Coastguard Worker store i32 %and, i32* @gedf2_result, align 4 286*9880d681SAndroid Build Coastguard Worker;16hf: lw ${{[0-9]+}}, %call16(__mips16_gedf2)(${{[0-9]+}}) 287*9880d681SAndroid Build Coastguard Worker ret void 288*9880d681SAndroid Build Coastguard Worker} 289*9880d681SAndroid Build Coastguard Worker 290*9880d681SAndroid Build Coastguard Workerdefine void @test_ltsf2() nounwind { 291*9880d681SAndroid Build Coastguard Workerentry: 292*9880d681SAndroid Build Coastguard Worker;16hf-LABEL: test_ltsf2: 293*9880d681SAndroid Build Coastguard Worker %0 = load float, float* @x, align 4 294*9880d681SAndroid Build Coastguard Worker %1 = load float, float* @xx, align 4 295*9880d681SAndroid Build Coastguard Worker %lnot = fcmp uge float %0, %1 296*9880d681SAndroid Build Coastguard Worker %2 = load float, float* @y, align 4 297*9880d681SAndroid Build Coastguard Worker %cmp1 = fcmp olt float %0, %2 298*9880d681SAndroid Build Coastguard Worker %and2 = and i1 %lnot, %cmp1 299*9880d681SAndroid Build Coastguard Worker %and = zext i1 %and2 to i32 300*9880d681SAndroid Build Coastguard Worker store i32 %and, i32* @ltsf2_result, align 4 301*9880d681SAndroid Build Coastguard Worker;16hf: lw ${{[0-9]+}}, %call16(__mips16_ltsf2)(${{[0-9]+}}) 302*9880d681SAndroid Build Coastguard Worker;16hf: lw ${{[0-9]+}}, %call16(__mips16_ltsf2)(${{[0-9]+}}) 303*9880d681SAndroid Build Coastguard Worker ret void 304*9880d681SAndroid Build Coastguard Worker} 305*9880d681SAndroid Build Coastguard Worker 306*9880d681SAndroid Build Coastguard Workerdefine void @test_ltdf2() nounwind { 307*9880d681SAndroid Build Coastguard Workerentry: 308*9880d681SAndroid Build Coastguard Worker;16hf-LABEL: test_ltdf2: 309*9880d681SAndroid Build Coastguard Worker %0 = load double, double* @xd, align 8 310*9880d681SAndroid Build Coastguard Worker %1 = load double, double* @xxd, align 8 311*9880d681SAndroid Build Coastguard Worker %lnot = fcmp uge double %0, %1 312*9880d681SAndroid Build Coastguard Worker %2 = load double, double* @yd, align 8 313*9880d681SAndroid Build Coastguard Worker %cmp1 = fcmp olt double %0, %2 314*9880d681SAndroid Build Coastguard Worker %and2 = and i1 %lnot, %cmp1 315*9880d681SAndroid Build Coastguard Worker %and = zext i1 %and2 to i32 316*9880d681SAndroid Build Coastguard Worker store i32 %and, i32* @ltdf2_result, align 4 317*9880d681SAndroid Build Coastguard Worker;16hf: lw ${{[0-9]+}}, %call16(__mips16_ltdf2)(${{[0-9]+}}) 318*9880d681SAndroid Build Coastguard Worker;16hf: lw ${{[0-9]+}}, %call16(__mips16_ltdf2)(${{[0-9]+}}) 319*9880d681SAndroid Build Coastguard Worker ret void 320*9880d681SAndroid Build Coastguard Worker} 321*9880d681SAndroid Build Coastguard Worker 322*9880d681SAndroid Build Coastguard Workerdefine void @test_lesf2() nounwind { 323*9880d681SAndroid Build Coastguard Workerentry: 324*9880d681SAndroid Build Coastguard Worker;16hf-LABEL: test_lesf2: 325*9880d681SAndroid Build Coastguard Worker %0 = load float, float* @x, align 4 326*9880d681SAndroid Build Coastguard Worker %1 = load float, float* @xx, align 4 327*9880d681SAndroid Build Coastguard Worker %cmp = fcmp ole float %0, %1 328*9880d681SAndroid Build Coastguard Worker %2 = load float, float* @y, align 4 329*9880d681SAndroid Build Coastguard Worker %cmp1 = fcmp ole float %0, %2 330*9880d681SAndroid Build Coastguard Worker %and3 = and i1 %cmp, %cmp1 331*9880d681SAndroid Build Coastguard Worker %and = zext i1 %and3 to i32 332*9880d681SAndroid Build Coastguard Worker store i32 %and, i32* @lesf2_result, align 4 333*9880d681SAndroid Build Coastguard Worker;16hf: lw ${{[0-9]+}}, %call16(__mips16_lesf2)(${{[0-9]+}}) 334*9880d681SAndroid Build Coastguard Worker ret void 335*9880d681SAndroid Build Coastguard Worker} 336*9880d681SAndroid Build Coastguard Worker 337*9880d681SAndroid Build Coastguard Workerdefine void @test_ledf2() nounwind { 338*9880d681SAndroid Build Coastguard Workerentry: 339*9880d681SAndroid Build Coastguard Worker;16hf-LABEL: test_ledf2: 340*9880d681SAndroid Build Coastguard Worker %0 = load double, double* @xd, align 8 341*9880d681SAndroid Build Coastguard Worker %1 = load double, double* @xxd, align 8 342*9880d681SAndroid Build Coastguard Worker %cmp = fcmp ole double %0, %1 343*9880d681SAndroid Build Coastguard Worker %2 = load double, double* @yd, align 8 344*9880d681SAndroid Build Coastguard Worker %cmp1 = fcmp ole double %0, %2 345*9880d681SAndroid Build Coastguard Worker %and3 = and i1 %cmp, %cmp1 346*9880d681SAndroid Build Coastguard Worker %and = zext i1 %and3 to i32 347*9880d681SAndroid Build Coastguard Worker store i32 %and, i32* @ledf2_result, align 4 348*9880d681SAndroid Build Coastguard Worker;16hf: lw ${{[0-9]+}}, %call16(__mips16_ledf2)(${{[0-9]+}}) 349*9880d681SAndroid Build Coastguard Worker ret void 350*9880d681SAndroid Build Coastguard Worker} 351*9880d681SAndroid Build Coastguard Worker 352*9880d681SAndroid Build Coastguard Workerdefine void @test_gtsf2() nounwind { 353*9880d681SAndroid Build Coastguard Workerentry: 354*9880d681SAndroid Build Coastguard Worker;16hf-LABEL: test_gtsf2: 355*9880d681SAndroid Build Coastguard Worker %0 = load float, float* @x, align 4 356*9880d681SAndroid Build Coastguard Worker %1 = load float, float* @xx, align 4 357*9880d681SAndroid Build Coastguard Worker %lnot = fcmp ule float %0, %1 358*9880d681SAndroid Build Coastguard Worker %2 = load float, float* @y, align 4 359*9880d681SAndroid Build Coastguard Worker %cmp1 = fcmp ogt float %2, %0 360*9880d681SAndroid Build Coastguard Worker %and2 = and i1 %lnot, %cmp1 361*9880d681SAndroid Build Coastguard Worker %and = zext i1 %and2 to i32 362*9880d681SAndroid Build Coastguard Worker store i32 %and, i32* @gtsf2_result, align 4 363*9880d681SAndroid Build Coastguard Worker;16hf: lw ${{[0-9]+}}, %call16(__mips16_gtsf2)(${{[0-9]+}}) 364*9880d681SAndroid Build Coastguard Worker ret void 365*9880d681SAndroid Build Coastguard Worker} 366*9880d681SAndroid Build Coastguard Worker 367*9880d681SAndroid Build Coastguard Workerdefine void @test_gtdf2() nounwind { 368*9880d681SAndroid Build Coastguard Workerentry: 369*9880d681SAndroid Build Coastguard Worker;16hf-LABEL: test_gtdf2: 370*9880d681SAndroid Build Coastguard Worker %0 = load double, double* @xd, align 8 371*9880d681SAndroid Build Coastguard Worker %1 = load double, double* @xxd, align 8 372*9880d681SAndroid Build Coastguard Worker %lnot = fcmp ule double %0, %1 373*9880d681SAndroid Build Coastguard Worker %2 = load double, double* @yd, align 8 374*9880d681SAndroid Build Coastguard Worker %cmp1 = fcmp ogt double %2, %0 375*9880d681SAndroid Build Coastguard Worker %and2 = and i1 %lnot, %cmp1 376*9880d681SAndroid Build Coastguard Worker %and = zext i1 %and2 to i32 377*9880d681SAndroid Build Coastguard Worker store i32 %and, i32* @gtdf2_result, align 4 378*9880d681SAndroid Build Coastguard Worker;16hf: lw ${{[0-9]+}}, %call16(__mips16_gtdf2)(${{[0-9]+}}) 379*9880d681SAndroid Build Coastguard Worker ret void 380*9880d681SAndroid Build Coastguard Worker} 381*9880d681SAndroid Build Coastguard Worker 382*9880d681SAndroid Build Coastguard Worker 383