brintos

brintos / llvm-project-archived public Read only

0
0
Text · 20.0 KiB · 5decd9c Raw
587 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 52; RUN: llc -mtriple=mips -mcpu=mips32r2 < %s | FileCheck %s3 4define i32 @fcmp_olt_f32(float %a, float %b) #0 {5; CHECK-LABEL: fcmp_olt_f32:6; CHECK:       # %bb.0:7; CHECK-NEXT:    addiu $2, $zero, 18; CHECK-NEXT:    c.olt.s $f12, $f149; CHECK-NEXT:    jr $ra10; CHECK-NEXT:    movf $2, $zero, $fcc011  %cmp = call i1 @llvm.experimental.constrained.fcmp.f32(float %a, float %b, metadata !"olt", metadata !"fpexcept.strict") #012  %conv = zext i1 %cmp to i3213  ret i32 %conv14}15 16define i32 @fcmp_ole_f32(float %a, float %b) #0 {17; CHECK-LABEL: fcmp_ole_f32:18; CHECK:       # %bb.0:19; CHECK-NEXT:    addiu $2, $zero, 120; CHECK-NEXT:    c.ole.s $f12, $f1421; CHECK-NEXT:    jr $ra22; CHECK-NEXT:    movf $2, $zero, $fcc023  %cmp = call i1 @llvm.experimental.constrained.fcmp.f32(float %a, float %b, metadata !"ole", metadata !"fpexcept.strict") #024  %conv = zext i1 %cmp to i3225  ret i32 %conv26}27 28define i32 @fcmp_ogt_f32(float %a, float %b) #0 {29; CHECK-LABEL: fcmp_ogt_f32:30; CHECK:       # %bb.0:31; CHECK-NEXT:    addiu $2, $zero, 132; CHECK-NEXT:    c.ule.s $f12, $f1433; CHECK-NEXT:    jr $ra34; CHECK-NEXT:    movt $2, $zero, $fcc035  %cmp = call i1 @llvm.experimental.constrained.fcmp.f32(float %a, float %b, metadata !"ogt", metadata !"fpexcept.strict") #036  %conv = zext i1 %cmp to i3237  ret i32 %conv38}39 40define i32 @fcmp_oge_f32(float %a, float %b) #0 {41; CHECK-LABEL: fcmp_oge_f32:42; CHECK:       # %bb.0:43; CHECK-NEXT:    addiu $2, $zero, 144; CHECK-NEXT:    c.ult.s $f12, $f1445; CHECK-NEXT:    jr $ra46; CHECK-NEXT:    movt $2, $zero, $fcc047  %cmp = call i1 @llvm.experimental.constrained.fcmp.f32(float %a, float %b, metadata !"oge", metadata !"fpexcept.strict") #048  %conv = zext i1 %cmp to i3249  ret i32 %conv50}51 52define i32 @fcmp_oeq_f32(float %a, float %b) #0 {53; CHECK-LABEL: fcmp_oeq_f32:54; CHECK:       # %bb.0:55; CHECK-NEXT:    addiu $2, $zero, 156; CHECK-NEXT:    c.eq.s $f12, $f1457; CHECK-NEXT:    jr $ra58; CHECK-NEXT:    movf $2, $zero, $fcc059  %cmp = call i1 @llvm.experimental.constrained.fcmp.f32(float %a, float %b, metadata !"oeq", metadata !"fpexcept.strict") #060  %conv = zext i1 %cmp to i3261  ret i32 %conv62}63 64define i32 @fcmp_one_f32(float %a, float %b) #0 {65; CHECK-LABEL: fcmp_one_f32:66; CHECK:       # %bb.0:67; CHECK-NEXT:    addiu $2, $zero, 168; CHECK-NEXT:    c.ueq.s $f12, $f1469; CHECK-NEXT:    jr $ra70; CHECK-NEXT:    movt $2, $zero, $fcc071  %cmp = call i1 @llvm.experimental.constrained.fcmp.f32(float %a, float %b, metadata !"one", metadata !"fpexcept.strict") #072  %conv = zext i1 %cmp to i3273  ret i32 %conv74}75 76define i32 @fcmp_ult_f32(float %a, float %b) #0 {77; CHECK-LABEL: fcmp_ult_f32:78; CHECK:       # %bb.0:79; CHECK-NEXT:    addiu $2, $zero, 180; CHECK-NEXT:    c.ult.s $f12, $f1481; CHECK-NEXT:    jr $ra82; CHECK-NEXT:    movf $2, $zero, $fcc083  %cmp = call i1 @llvm.experimental.constrained.fcmp.f32(float %a, float %b, metadata !"ult", metadata !"fpexcept.strict") #084  %conv = zext i1 %cmp to i3285  ret i32 %conv86}87 88define i32 @fcmp_ule_f32(float %a, float %b) #0 {89; CHECK-LABEL: fcmp_ule_f32:90; CHECK:       # %bb.0:91; CHECK-NEXT:    addiu $2, $zero, 192; CHECK-NEXT:    c.ule.s $f12, $f1493; CHECK-NEXT:    jr $ra94; CHECK-NEXT:    movf $2, $zero, $fcc095  %cmp = call i1 @llvm.experimental.constrained.fcmp.f32(float %a, float %b, metadata !"ule", metadata !"fpexcept.strict") #096  %conv = zext i1 %cmp to i3297  ret i32 %conv98}99 100define i32 @fcmp_ugt_f32(float %a, float %b) #0 {101; CHECK-LABEL: fcmp_ugt_f32:102; CHECK:       # %bb.0:103; CHECK-NEXT:    addiu $2, $zero, 1104; CHECK-NEXT:    c.ole.s $f12, $f14105; CHECK-NEXT:    jr $ra106; CHECK-NEXT:    movt $2, $zero, $fcc0107  %cmp = call i1 @llvm.experimental.constrained.fcmp.f32(float %a, float %b, metadata !"ugt", metadata !"fpexcept.strict") #0108  %conv = zext i1 %cmp to i32109  ret i32 %conv110}111 112define i32 @fcmp_uge_f32(float %a, float %b) #0 {113; CHECK-LABEL: fcmp_uge_f32:114; CHECK:       # %bb.0:115; CHECK-NEXT:    addiu $2, $zero, 1116; CHECK-NEXT:    c.olt.s $f12, $f14117; CHECK-NEXT:    jr $ra118; CHECK-NEXT:    movt $2, $zero, $fcc0119  %cmp = call i1 @llvm.experimental.constrained.fcmp.f32(float %a, float %b, metadata !"uge", metadata !"fpexcept.strict") #0120  %conv = zext i1 %cmp to i32121  ret i32 %conv122}123 124define i32 @fcmp_ueq_f32(float %a, float %b) #0 {125; CHECK-LABEL: fcmp_ueq_f32:126; CHECK:       # %bb.0:127; CHECK-NEXT:    addiu $2, $zero, 1128; CHECK-NEXT:    c.ueq.s $f12, $f14129; CHECK-NEXT:    jr $ra130; CHECK-NEXT:    movf $2, $zero, $fcc0131  %cmp = call i1 @llvm.experimental.constrained.fcmp.f32(float %a, float %b, metadata !"ueq", metadata !"fpexcept.strict") #0132  %conv = zext i1 %cmp to i32133  ret i32 %conv134}135 136define i32 @fcmp_une_f32(float %a, float %b) #0 {137; CHECK-LABEL: fcmp_une_f32:138; CHECK:       # %bb.0:139; CHECK-NEXT:    addiu $2, $zero, 1140; CHECK-NEXT:    c.eq.s $f12, $f14141; CHECK-NEXT:    jr $ra142; CHECK-NEXT:    movt $2, $zero, $fcc0143  %cmp = call i1 @llvm.experimental.constrained.fcmp.f32(float %a, float %b, metadata !"une", metadata !"fpexcept.strict") #0144  %conv = zext i1 %cmp to i32145  ret i32 %conv146}147 148define i32 @fcmps_olt_f32(float %a, float %b) #0 {149; CHECK-LABEL: fcmps_olt_f32:150; CHECK:       # %bb.0:151; CHECK-NEXT:    addiu $2, $zero, 1152; CHECK-NEXT:    c.olt.s $f12, $f14153; CHECK-NEXT:    jr $ra154; CHECK-NEXT:    movf $2, $zero, $fcc0155  %cmp = call i1 @llvm.experimental.constrained.fcmps.f32(float %a, float %b, metadata !"olt", metadata !"fpexcept.strict") #0156  %conv = zext i1 %cmp to i32157  ret i32 %conv158}159 160define i32 @fcmps_ole_f32(float %a, float %b) #0 {161; CHECK-LABEL: fcmps_ole_f32:162; CHECK:       # %bb.0:163; CHECK-NEXT:    addiu $2, $zero, 1164; CHECK-NEXT:    c.ole.s $f12, $f14165; CHECK-NEXT:    jr $ra166; CHECK-NEXT:    movf $2, $zero, $fcc0167  %cmp = call i1 @llvm.experimental.constrained.fcmps.f32(float %a, float %b, metadata !"ole", metadata !"fpexcept.strict") #0168  %conv = zext i1 %cmp to i32169  ret i32 %conv170}171 172define i32 @fcmps_ogt_f32(float %a, float %b) #0 {173; CHECK-LABEL: fcmps_ogt_f32:174; CHECK:       # %bb.0:175; CHECK-NEXT:    addiu $2, $zero, 1176; CHECK-NEXT:    c.ule.s $f12, $f14177; CHECK-NEXT:    jr $ra178; CHECK-NEXT:    movt $2, $zero, $fcc0179  %cmp = call i1 @llvm.experimental.constrained.fcmps.f32(float %a, float %b, metadata !"ogt", metadata !"fpexcept.strict") #0180  %conv = zext i1 %cmp to i32181  ret i32 %conv182}183 184define i32 @fcmps_oge_f32(float %a, float %b) #0 {185; CHECK-LABEL: fcmps_oge_f32:186; CHECK:       # %bb.0:187; CHECK-NEXT:    addiu $2, $zero, 1188; CHECK-NEXT:    c.ult.s $f12, $f14189; CHECK-NEXT:    jr $ra190; CHECK-NEXT:    movt $2, $zero, $fcc0191  %cmp = call i1 @llvm.experimental.constrained.fcmps.f32(float %a, float %b, metadata !"oge", metadata !"fpexcept.strict") #0192  %conv = zext i1 %cmp to i32193  ret i32 %conv194}195 196define i32 @fcmps_oeq_f32(float %a, float %b) #0 {197; CHECK-LABEL: fcmps_oeq_f32:198; CHECK:       # %bb.0:199; CHECK-NEXT:    addiu $2, $zero, 1200; CHECK-NEXT:    c.eq.s $f12, $f14201; CHECK-NEXT:    jr $ra202; CHECK-NEXT:    movf $2, $zero, $fcc0203  %cmp = call i1 @llvm.experimental.constrained.fcmps.f32(float %a, float %b, metadata !"oeq", metadata !"fpexcept.strict") #0204  %conv = zext i1 %cmp to i32205  ret i32 %conv206}207 208define i32 @fcmps_one_f32(float %a, float %b) #0 {209; CHECK-LABEL: fcmps_one_f32:210; CHECK:       # %bb.0:211; CHECK-NEXT:    addiu $2, $zero, 1212; CHECK-NEXT:    c.ueq.s $f12, $f14213; CHECK-NEXT:    jr $ra214; CHECK-NEXT:    movt $2, $zero, $fcc0215  %cmp = call i1 @llvm.experimental.constrained.fcmps.f32(float %a, float %b, metadata !"one", metadata !"fpexcept.strict") #0216  %conv = zext i1 %cmp to i32217  ret i32 %conv218}219 220define i32 @fcmps_ult_f32(float %a, float %b) #0 {221; CHECK-LABEL: fcmps_ult_f32:222; CHECK:       # %bb.0:223; CHECK-NEXT:    addiu $2, $zero, 1224; CHECK-NEXT:    c.ult.s $f12, $f14225; CHECK-NEXT:    jr $ra226; CHECK-NEXT:    movf $2, $zero, $fcc0227  %cmp = call i1 @llvm.experimental.constrained.fcmps.f32(float %a, float %b, metadata !"ult", metadata !"fpexcept.strict") #0228  %conv = zext i1 %cmp to i32229  ret i32 %conv230}231 232define i32 @fcmps_ule_f32(float %a, float %b) #0 {233; CHECK-LABEL: fcmps_ule_f32:234; CHECK:       # %bb.0:235; CHECK-NEXT:    addiu $2, $zero, 1236; CHECK-NEXT:    c.ule.s $f12, $f14237; CHECK-NEXT:    jr $ra238; CHECK-NEXT:    movf $2, $zero, $fcc0239  %cmp = call i1 @llvm.experimental.constrained.fcmps.f32(float %a, float %b, metadata !"ule", metadata !"fpexcept.strict") #0240  %conv = zext i1 %cmp to i32241  ret i32 %conv242}243 244define i32 @fcmps_ugt_f32(float %a, float %b) #0 {245; CHECK-LABEL: fcmps_ugt_f32:246; CHECK:       # %bb.0:247; CHECK-NEXT:    addiu $2, $zero, 1248; CHECK-NEXT:    c.ole.s $f12, $f14249; CHECK-NEXT:    jr $ra250; CHECK-NEXT:    movt $2, $zero, $fcc0251  %cmp = call i1 @llvm.experimental.constrained.fcmps.f32(float %a, float %b, metadata !"ugt", metadata !"fpexcept.strict") #0252  %conv = zext i1 %cmp to i32253  ret i32 %conv254}255 256define i32 @fcmps_uge_f32(float %a, float %b) #0 {257; CHECK-LABEL: fcmps_uge_f32:258; CHECK:       # %bb.0:259; CHECK-NEXT:    addiu $2, $zero, 1260; CHECK-NEXT:    c.olt.s $f12, $f14261; CHECK-NEXT:    jr $ra262; CHECK-NEXT:    movt $2, $zero, $fcc0263  %cmp = call i1 @llvm.experimental.constrained.fcmps.f32(float %a, float %b, metadata !"uge", metadata !"fpexcept.strict") #0264  %conv = zext i1 %cmp to i32265  ret i32 %conv266}267 268define i32 @fcmps_ueq_f32(float %a, float %b) #0 {269; CHECK-LABEL: fcmps_ueq_f32:270; CHECK:       # %bb.0:271; CHECK-NEXT:    addiu $2, $zero, 1272; CHECK-NEXT:    c.ueq.s $f12, $f14273; CHECK-NEXT:    jr $ra274; CHECK-NEXT:    movf $2, $zero, $fcc0275  %cmp = call i1 @llvm.experimental.constrained.fcmps.f32(float %a, float %b, metadata !"ueq", metadata !"fpexcept.strict") #0276  %conv = zext i1 %cmp to i32277  ret i32 %conv278}279 280define i32 @fcmps_une_f32(float %a, float %b) #0 {281; CHECK-LABEL: fcmps_une_f32:282; CHECK:       # %bb.0:283; CHECK-NEXT:    addiu $2, $zero, 1284; CHECK-NEXT:    c.eq.s $f12, $f14285; CHECK-NEXT:    jr $ra286; CHECK-NEXT:    movt $2, $zero, $fcc0287  %cmp = call i1 @llvm.experimental.constrained.fcmps.f32(float %a, float %b, metadata !"une", metadata !"fpexcept.strict") #0288  %conv = zext i1 %cmp to i32289  ret i32 %conv290}291 292define i32 @fcmp_olt_f64(double %a, double %b) #0 {293; CHECK-LABEL: fcmp_olt_f64:294; CHECK:       # %bb.0:295; CHECK-NEXT:    addiu $2, $zero, 1296; CHECK-NEXT:    c.olt.d $f12, $f14297; CHECK-NEXT:    jr $ra298; CHECK-NEXT:    movf $2, $zero, $fcc0299  %cmp = call i1 @llvm.experimental.constrained.fcmp.f64(double %a, double %b, metadata !"olt", metadata !"fpexcept.strict") #0300  %conv = zext i1 %cmp to i32301  ret i32 %conv302}303 304define i32 @fcmp_ole_f64(double %a, double %b) #0 {305; CHECK-LABEL: fcmp_ole_f64:306; CHECK:       # %bb.0:307; CHECK-NEXT:    addiu $2, $zero, 1308; CHECK-NEXT:    c.ole.d $f12, $f14309; CHECK-NEXT:    jr $ra310; CHECK-NEXT:    movf $2, $zero, $fcc0311  %cmp = call i1 @llvm.experimental.constrained.fcmp.f64(double %a, double %b, metadata !"ole", metadata !"fpexcept.strict") #0312  %conv = zext i1 %cmp to i32313  ret i32 %conv314}315 316define i32 @fcmp_ogt_f64(double %a, double %b) #0 {317; CHECK-LABEL: fcmp_ogt_f64:318; CHECK:       # %bb.0:319; CHECK-NEXT:    addiu $2, $zero, 1320; CHECK-NEXT:    c.ule.d $f12, $f14321; CHECK-NEXT:    jr $ra322; CHECK-NEXT:    movt $2, $zero, $fcc0323  %cmp = call i1 @llvm.experimental.constrained.fcmp.f64(double %a, double %b, metadata !"ogt", metadata !"fpexcept.strict") #0324  %conv = zext i1 %cmp to i32325  ret i32 %conv326}327 328define i32 @fcmp_oge_f64(double %a, double %b) #0 {329; CHECK-LABEL: fcmp_oge_f64:330; CHECK:       # %bb.0:331; CHECK-NEXT:    addiu $2, $zero, 1332; CHECK-NEXT:    c.ult.d $f12, $f14333; CHECK-NEXT:    jr $ra334; CHECK-NEXT:    movt $2, $zero, $fcc0335  %cmp = call i1 @llvm.experimental.constrained.fcmp.f64(double %a, double %b, metadata !"oge", metadata !"fpexcept.strict") #0336  %conv = zext i1 %cmp to i32337  ret i32 %conv338}339 340define i32 @fcmp_oeq_f64(double %a, double %b) #0 {341; CHECK-LABEL: fcmp_oeq_f64:342; CHECK:       # %bb.0:343; CHECK-NEXT:    addiu $2, $zero, 1344; CHECK-NEXT:    c.eq.d $f12, $f14345; CHECK-NEXT:    jr $ra346; CHECK-NEXT:    movf $2, $zero, $fcc0347  %cmp = call i1 @llvm.experimental.constrained.fcmp.f64(double %a, double %b, metadata !"oeq", metadata !"fpexcept.strict") #0348  %conv = zext i1 %cmp to i32349  ret i32 %conv350}351 352define i32 @fcmp_one_f64(double %a, double %b) #0 {353; CHECK-LABEL: fcmp_one_f64:354; CHECK:       # %bb.0:355; CHECK-NEXT:    addiu $2, $zero, 1356; CHECK-NEXT:    c.ueq.d $f12, $f14357; CHECK-NEXT:    jr $ra358; CHECK-NEXT:    movt $2, $zero, $fcc0359  %cmp = call i1 @llvm.experimental.constrained.fcmp.f64(double %a, double %b, metadata !"one", metadata !"fpexcept.strict") #0360  %conv = zext i1 %cmp to i32361  ret i32 %conv362}363 364define i32 @fcmp_ult_f64(double %a, double %b) #0 {365; CHECK-LABEL: fcmp_ult_f64:366; CHECK:       # %bb.0:367; CHECK-NEXT:    addiu $2, $zero, 1368; CHECK-NEXT:    c.ult.d $f12, $f14369; CHECK-NEXT:    jr $ra370; CHECK-NEXT:    movf $2, $zero, $fcc0371  %cmp = call i1 @llvm.experimental.constrained.fcmp.f64(double %a, double %b, metadata !"ult", metadata !"fpexcept.strict") #0372  %conv = zext i1 %cmp to i32373  ret i32 %conv374}375 376define i32 @fcmp_ule_f64(double %a, double %b) #0 {377; CHECK-LABEL: fcmp_ule_f64:378; CHECK:       # %bb.0:379; CHECK-NEXT:    addiu $2, $zero, 1380; CHECK-NEXT:    c.ule.d $f12, $f14381; CHECK-NEXT:    jr $ra382; CHECK-NEXT:    movf $2, $zero, $fcc0383  %cmp = call i1 @llvm.experimental.constrained.fcmp.f64(double %a, double %b, metadata !"ule", metadata !"fpexcept.strict") #0384  %conv = zext i1 %cmp to i32385  ret i32 %conv386}387 388define i32 @fcmp_ugt_f64(double %a, double %b) #0 {389; CHECK-LABEL: fcmp_ugt_f64:390; CHECK:       # %bb.0:391; CHECK-NEXT:    addiu $2, $zero, 1392; CHECK-NEXT:    c.ole.d $f12, $f14393; CHECK-NEXT:    jr $ra394; CHECK-NEXT:    movt $2, $zero, $fcc0395  %cmp = call i1 @llvm.experimental.constrained.fcmp.f64(double %a, double %b, metadata !"ugt", metadata !"fpexcept.strict") #0396  %conv = zext i1 %cmp to i32397  ret i32 %conv398}399 400define i32 @fcmp_uge_f64(double %a, double %b) #0 {401; CHECK-LABEL: fcmp_uge_f64:402; CHECK:       # %bb.0:403; CHECK-NEXT:    addiu $2, $zero, 1404; CHECK-NEXT:    c.olt.d $f12, $f14405; CHECK-NEXT:    jr $ra406; CHECK-NEXT:    movt $2, $zero, $fcc0407  %cmp = call i1 @llvm.experimental.constrained.fcmp.f64(double %a, double %b, metadata !"uge", metadata !"fpexcept.strict") #0408  %conv = zext i1 %cmp to i32409  ret i32 %conv410}411 412define i32 @fcmp_ueq_f64(double %a, double %b) #0 {413; CHECK-LABEL: fcmp_ueq_f64:414; CHECK:       # %bb.0:415; CHECK-NEXT:    addiu $2, $zero, 1416; CHECK-NEXT:    c.ueq.d $f12, $f14417; CHECK-NEXT:    jr $ra418; CHECK-NEXT:    movf $2, $zero, $fcc0419  %cmp = call i1 @llvm.experimental.constrained.fcmp.f64(double %a, double %b, metadata !"ueq", metadata !"fpexcept.strict") #0420  %conv = zext i1 %cmp to i32421  ret i32 %conv422}423 424define i32 @fcmp_une_f64(double %a, double %b) #0 {425; CHECK-LABEL: fcmp_une_f64:426; CHECK:       # %bb.0:427; CHECK-NEXT:    addiu $2, $zero, 1428; CHECK-NEXT:    c.eq.d $f12, $f14429; CHECK-NEXT:    jr $ra430; CHECK-NEXT:    movt $2, $zero, $fcc0431  %cmp = call i1 @llvm.experimental.constrained.fcmp.f64(double %a, double %b, metadata !"une", metadata !"fpexcept.strict") #0432  %conv = zext i1 %cmp to i32433  ret i32 %conv434}435 436define i32 @fcmps_olt_f64(double %a, double %b) #0 {437; CHECK-LABEL: fcmps_olt_f64:438; CHECK:       # %bb.0:439; CHECK-NEXT:    addiu $2, $zero, 1440; CHECK-NEXT:    c.olt.d $f12, $f14441; CHECK-NEXT:    jr $ra442; CHECK-NEXT:    movf $2, $zero, $fcc0443  %cmp = call i1 @llvm.experimental.constrained.fcmps.f64(double %a, double %b, metadata !"olt", metadata !"fpexcept.strict") #0444  %conv = zext i1 %cmp to i32445  ret i32 %conv446}447 448define i32 @fcmps_ole_f64(double %a, double %b) #0 {449; CHECK-LABEL: fcmps_ole_f64:450; CHECK:       # %bb.0:451; CHECK-NEXT:    addiu $2, $zero, 1452; CHECK-NEXT:    c.ole.d $f12, $f14453; CHECK-NEXT:    jr $ra454; CHECK-NEXT:    movf $2, $zero, $fcc0455  %cmp = call i1 @llvm.experimental.constrained.fcmps.f64(double %a, double %b, metadata !"ole", metadata !"fpexcept.strict") #0456  %conv = zext i1 %cmp to i32457  ret i32 %conv458}459 460define i32 @fcmps_ogt_f64(double %a, double %b) #0 {461; CHECK-LABEL: fcmps_ogt_f64:462; CHECK:       # %bb.0:463; CHECK-NEXT:    addiu $2, $zero, 1464; CHECK-NEXT:    c.ule.d $f12, $f14465; CHECK-NEXT:    jr $ra466; CHECK-NEXT:    movt $2, $zero, $fcc0467  %cmp = call i1 @llvm.experimental.constrained.fcmps.f64(double %a, double %b, metadata !"ogt", metadata !"fpexcept.strict") #0468  %conv = zext i1 %cmp to i32469  ret i32 %conv470}471 472define i32 @fcmps_oge_f64(double %a, double %b) #0 {473; CHECK-LABEL: fcmps_oge_f64:474; CHECK:       # %bb.0:475; CHECK-NEXT:    addiu $2, $zero, 1476; CHECK-NEXT:    c.ult.d $f12, $f14477; CHECK-NEXT:    jr $ra478; CHECK-NEXT:    movt $2, $zero, $fcc0479  %cmp = call i1 @llvm.experimental.constrained.fcmps.f64(double %a, double %b, metadata !"oge", metadata !"fpexcept.strict") #0480  %conv = zext i1 %cmp to i32481  ret i32 %conv482}483 484define i32 @fcmps_oeq_f64(double %a, double %b) #0 {485; CHECK-LABEL: fcmps_oeq_f64:486; CHECK:       # %bb.0:487; CHECK-NEXT:    addiu $2, $zero, 1488; CHECK-NEXT:    c.eq.d $f12, $f14489; CHECK-NEXT:    jr $ra490; CHECK-NEXT:    movf $2, $zero, $fcc0491  %cmp = call i1 @llvm.experimental.constrained.fcmps.f64(double %a, double %b, metadata !"oeq", metadata !"fpexcept.strict") #0492  %conv = zext i1 %cmp to i32493  ret i32 %conv494}495 496define i32 @fcmps_one_f64(double %a, double %b) #0 {497; CHECK-LABEL: fcmps_one_f64:498; CHECK:       # %bb.0:499; CHECK-NEXT:    addiu $2, $zero, 1500; CHECK-NEXT:    c.ueq.d $f12, $f14501; CHECK-NEXT:    jr $ra502; CHECK-NEXT:    movt $2, $zero, $fcc0503  %cmp = call i1 @llvm.experimental.constrained.fcmps.f64(double %a, double %b, metadata !"one", metadata !"fpexcept.strict") #0504  %conv = zext i1 %cmp to i32505  ret i32 %conv506}507 508define i32 @fcmps_ult_f64(double %a, double %b) #0 {509; CHECK-LABEL: fcmps_ult_f64:510; CHECK:       # %bb.0:511; CHECK-NEXT:    addiu $2, $zero, 1512; CHECK-NEXT:    c.ult.d $f12, $f14513; CHECK-NEXT:    jr $ra514; CHECK-NEXT:    movf $2, $zero, $fcc0515  %cmp = call i1 @llvm.experimental.constrained.fcmps.f64(double %a, double %b, metadata !"ult", metadata !"fpexcept.strict") #0516  %conv = zext i1 %cmp to i32517  ret i32 %conv518}519 520define i32 @fcmps_ule_f64(double %a, double %b) #0 {521; CHECK-LABEL: fcmps_ule_f64:522; CHECK:       # %bb.0:523; CHECK-NEXT:    addiu $2, $zero, 1524; CHECK-NEXT:    c.ule.d $f12, $f14525; CHECK-NEXT:    jr $ra526; CHECK-NEXT:    movf $2, $zero, $fcc0527  %cmp = call i1 @llvm.experimental.constrained.fcmps.f64(double %a, double %b, metadata !"ule", metadata !"fpexcept.strict") #0528  %conv = zext i1 %cmp to i32529  ret i32 %conv530}531 532define i32 @fcmps_ugt_f64(double %a, double %b) #0 {533; CHECK-LABEL: fcmps_ugt_f64:534; CHECK:       # %bb.0:535; CHECK-NEXT:    addiu $2, $zero, 1536; CHECK-NEXT:    c.ole.d $f12, $f14537; CHECK-NEXT:    jr $ra538; CHECK-NEXT:    movt $2, $zero, $fcc0539  %cmp = call i1 @llvm.experimental.constrained.fcmps.f64(double %a, double %b, metadata !"ugt", metadata !"fpexcept.strict") #0540  %conv = zext i1 %cmp to i32541  ret i32 %conv542}543 544define i32 @fcmps_uge_f64(double %a, double %b) #0 {545; CHECK-LABEL: fcmps_uge_f64:546; CHECK:       # %bb.0:547; CHECK-NEXT:    addiu $2, $zero, 1548; CHECK-NEXT:    c.olt.d $f12, $f14549; CHECK-NEXT:    jr $ra550; CHECK-NEXT:    movt $2, $zero, $fcc0551  %cmp = call i1 @llvm.experimental.constrained.fcmps.f64(double %a, double %b, metadata !"uge", metadata !"fpexcept.strict") #0552  %conv = zext i1 %cmp to i32553  ret i32 %conv554}555 556define i32 @fcmps_ueq_f64(double %a, double %b) #0 {557; CHECK-LABEL: fcmps_ueq_f64:558; CHECK:       # %bb.0:559; CHECK-NEXT:    addiu $2, $zero, 1560; CHECK-NEXT:    c.ueq.d $f12, $f14561; CHECK-NEXT:    jr $ra562; CHECK-NEXT:    movf $2, $zero, $fcc0563  %cmp = call i1 @llvm.experimental.constrained.fcmps.f64(double %a, double %b, metadata !"ueq", metadata !"fpexcept.strict") #0564  %conv = zext i1 %cmp to i32565  ret i32 %conv566}567 568define i32 @fcmps_une_f64(double %a, double %b) #0 {569; CHECK-LABEL: fcmps_une_f64:570; CHECK:       # %bb.0:571; CHECK-NEXT:    addiu $2, $zero, 1572; CHECK-NEXT:    c.eq.d $f12, $f14573; CHECK-NEXT:    jr $ra574; CHECK-NEXT:    movt $2, $zero, $fcc0575  %cmp = call i1 @llvm.experimental.constrained.fcmps.f64(double %a, double %b, metadata !"une", metadata !"fpexcept.strict") #0576  %conv = zext i1 %cmp to i32577  ret i32 %conv578}579 580 581attributes #0 = { strictfp }582 583declare i1 @llvm.experimental.constrained.fcmps.f32(float, float, metadata, metadata)584declare i1 @llvm.experimental.constrained.fcmp.f32(float, float, metadata, metadata)585declare i1 @llvm.experimental.constrained.fcmps.f64(double, double, metadata, metadata)586declare i1 @llvm.experimental.constrained.fcmp.f64(double, double, metadata, metadata)587