brintos

brintos / llvm-project-archived public Read only

0
0
Text · 26.4 KiB · cb89bcd Raw
902 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py2; RUN: llc --mtriple=loongarch32 --mattr=+d < %s | FileCheck %s --check-prefix=LA323; RUN: llc --mtriple=loongarch64 --mattr=+d < %s | FileCheck %s --check-prefix=LA644 5declare void @abort()6 7define void @br_fcmp_oeq_bcnez(double %a, double %b) nounwind {8; LA32-LABEL: br_fcmp_oeq_bcnez:9; LA32:       # %bb.0:10; LA32-NEXT:    fcmp.ceq.d $fcc0, $fa0, $fa111; LA32-NEXT:    bcnez $fcc0, .LBB0_212; LA32-NEXT:  # %bb.1: # %if.else13; LA32-NEXT:    ret14; LA32-NEXT:  .LBB0_2: # %if.then15; LA32-NEXT:    addi.w $sp, $sp, -1616; LA32-NEXT:    st.w $ra, $sp, 12 # 4-byte Folded Spill17; LA32-NEXT:    bl abort18;19; LA64-LABEL: br_fcmp_oeq_bcnez:20; LA64:       # %bb.0:21; LA64-NEXT:    fcmp.ceq.d $fcc0, $fa0, $fa122; LA64-NEXT:    bcnez $fcc0, .LBB0_223; LA64-NEXT:  # %bb.1: # %if.else24; LA64-NEXT:    ret25; LA64-NEXT:  .LBB0_2: # %if.then26; LA64-NEXT:    addi.d $sp, $sp, -1627; LA64-NEXT:    st.d $ra, $sp, 8 # 8-byte Folded Spill28; LA64-NEXT:    pcaddu18i $ra, %call36(abort)29; LA64-NEXT:    jirl $ra, $ra, 030  %1 = fcmp oeq double %a, %b31  br i1 %1, label %if.then, label %if.else32if.else:33  ret void34if.then:35  tail call void @abort()36  unreachable37}38 39define void @br_fcmp_oeq_bceqz(double %a, double %b) nounwind {40; LA32-LABEL: br_fcmp_oeq_bceqz:41; LA32:       # %bb.0:42; LA32-NEXT:    fcmp.cune.d $fcc0, $fa0, $fa143; LA32-NEXT:    bceqz $fcc0, .LBB1_244; LA32-NEXT:  # %bb.1: # %if.else45; LA32-NEXT:    ret46; LA32-NEXT:  .LBB1_2: # %if.then47; LA32-NEXT:    addi.w $sp, $sp, -1648; LA32-NEXT:    st.w $ra, $sp, 12 # 4-byte Folded Spill49; LA32-NEXT:    bl abort50;51; LA64-LABEL: br_fcmp_oeq_bceqz:52; LA64:       # %bb.0:53; LA64-NEXT:    fcmp.cune.d $fcc0, $fa0, $fa154; LA64-NEXT:    bceqz $fcc0, .LBB1_255; LA64-NEXT:  # %bb.1: # %if.else56; LA64-NEXT:    ret57; LA64-NEXT:  .LBB1_2: # %if.then58; LA64-NEXT:    addi.d $sp, $sp, -1659; LA64-NEXT:    st.d $ra, $sp, 8 # 8-byte Folded Spill60; LA64-NEXT:    pcaddu18i $ra, %call36(abort)61; LA64-NEXT:    jirl $ra, $ra, 062  %1 = fcmp oeq double %a, %b63  br i1 %1, label %if.then, label %if.else64if.then:65  tail call void @abort()66  unreachable67if.else:68  ret void69}70 71define void @br_fcmp_ogt_bcnez(double %a, double %b) nounwind {72; LA32-LABEL: br_fcmp_ogt_bcnez:73; LA32:       # %bb.0:74; LA32-NEXT:    fcmp.clt.d $fcc0, $fa1, $fa075; LA32-NEXT:    bcnez $fcc0, .LBB2_276; LA32-NEXT:  # %bb.1: # %if.else77; LA32-NEXT:    ret78; LA32-NEXT:  .LBB2_2: # %if.then79; LA32-NEXT:    addi.w $sp, $sp, -1680; LA32-NEXT:    st.w $ra, $sp, 12 # 4-byte Folded Spill81; LA32-NEXT:    bl abort82;83; LA64-LABEL: br_fcmp_ogt_bcnez:84; LA64:       # %bb.0:85; LA64-NEXT:    fcmp.clt.d $fcc0, $fa1, $fa086; LA64-NEXT:    bcnez $fcc0, .LBB2_287; LA64-NEXT:  # %bb.1: # %if.else88; LA64-NEXT:    ret89; LA64-NEXT:  .LBB2_2: # %if.then90; LA64-NEXT:    addi.d $sp, $sp, -1691; LA64-NEXT:    st.d $ra, $sp, 8 # 8-byte Folded Spill92; LA64-NEXT:    pcaddu18i $ra, %call36(abort)93; LA64-NEXT:    jirl $ra, $ra, 094  %1 = fcmp ogt double %a, %b95  br i1 %1, label %if.then, label %if.else96if.else:97  ret void98if.then:99  tail call void @abort()100  unreachable101}102 103define void @br_fcmp_ogt_bceqz(double %a, double %b) nounwind {104; LA32-LABEL: br_fcmp_ogt_bceqz:105; LA32:       # %bb.0:106; LA32-NEXT:    fcmp.cule.d $fcc0, $fa0, $fa1107; LA32-NEXT:    bceqz $fcc0, .LBB3_2108; LA32-NEXT:  # %bb.1: # %if.else109; LA32-NEXT:    ret110; LA32-NEXT:  .LBB3_2: # %if.then111; LA32-NEXT:    addi.w $sp, $sp, -16112; LA32-NEXT:    st.w $ra, $sp, 12 # 4-byte Folded Spill113; LA32-NEXT:    bl abort114;115; LA64-LABEL: br_fcmp_ogt_bceqz:116; LA64:       # %bb.0:117; LA64-NEXT:    fcmp.cule.d $fcc0, $fa0, $fa1118; LA64-NEXT:    bceqz $fcc0, .LBB3_2119; LA64-NEXT:  # %bb.1: # %if.else120; LA64-NEXT:    ret121; LA64-NEXT:  .LBB3_2: # %if.then122; LA64-NEXT:    addi.d $sp, $sp, -16123; LA64-NEXT:    st.d $ra, $sp, 8 # 8-byte Folded Spill124; LA64-NEXT:    pcaddu18i $ra, %call36(abort)125; LA64-NEXT:    jirl $ra, $ra, 0126  %1 = fcmp ogt double %a, %b127  br i1 %1, label %if.then, label %if.else128if.then:129  tail call void @abort()130  unreachable131if.else:132  ret void133}134 135define void @br_fcmp_oge_bcnez(double %a, double %b) nounwind {136; LA32-LABEL: br_fcmp_oge_bcnez:137; LA32:       # %bb.0:138; LA32-NEXT:    fcmp.cle.d $fcc0, $fa1, $fa0139; LA32-NEXT:    bcnez $fcc0, .LBB4_2140; LA32-NEXT:  # %bb.1: # %if.else141; LA32-NEXT:    ret142; LA32-NEXT:  .LBB4_2: # %if.then143; LA32-NEXT:    addi.w $sp, $sp, -16144; LA32-NEXT:    st.w $ra, $sp, 12 # 4-byte Folded Spill145; LA32-NEXT:    bl abort146;147; LA64-LABEL: br_fcmp_oge_bcnez:148; LA64:       # %bb.0:149; LA64-NEXT:    fcmp.cle.d $fcc0, $fa1, $fa0150; LA64-NEXT:    bcnez $fcc0, .LBB4_2151; LA64-NEXT:  # %bb.1: # %if.else152; LA64-NEXT:    ret153; LA64-NEXT:  .LBB4_2: # %if.then154; LA64-NEXT:    addi.d $sp, $sp, -16155; LA64-NEXT:    st.d $ra, $sp, 8 # 8-byte Folded Spill156; LA64-NEXT:    pcaddu18i $ra, %call36(abort)157; LA64-NEXT:    jirl $ra, $ra, 0158  %1 = fcmp oge double %a, %b159  br i1 %1, label %if.then, label %if.else160if.else:161  ret void162if.then:163  tail call void @abort()164  unreachable165}166 167define void @br_fcmp_oge_bceqz(double %a, double %b) nounwind {168; LA32-LABEL: br_fcmp_oge_bceqz:169; LA32:       # %bb.0:170; LA32-NEXT:    fcmp.cult.d $fcc0, $fa0, $fa1171; LA32-NEXT:    bceqz $fcc0, .LBB5_2172; LA32-NEXT:  # %bb.1: # %if.else173; LA32-NEXT:    ret174; LA32-NEXT:  .LBB5_2: # %if.then175; LA32-NEXT:    addi.w $sp, $sp, -16176; LA32-NEXT:    st.w $ra, $sp, 12 # 4-byte Folded Spill177; LA32-NEXT:    bl abort178;179; LA64-LABEL: br_fcmp_oge_bceqz:180; LA64:       # %bb.0:181; LA64-NEXT:    fcmp.cult.d $fcc0, $fa0, $fa1182; LA64-NEXT:    bceqz $fcc0, .LBB5_2183; LA64-NEXT:  # %bb.1: # %if.else184; LA64-NEXT:    ret185; LA64-NEXT:  .LBB5_2: # %if.then186; LA64-NEXT:    addi.d $sp, $sp, -16187; LA64-NEXT:    st.d $ra, $sp, 8 # 8-byte Folded Spill188; LA64-NEXT:    pcaddu18i $ra, %call36(abort)189; LA64-NEXT:    jirl $ra, $ra, 0190  %1 = fcmp oge double %a, %b191  br i1 %1, label %if.then, label %if.else192if.then:193  tail call void @abort()194  unreachable195if.else:196  ret void197}198 199define void @br_fcmp_olt_bcnez(double %a, double %b) nounwind {200; LA32-LABEL: br_fcmp_olt_bcnez:201; LA32:       # %bb.0:202; LA32-NEXT:    fcmp.clt.d $fcc0, $fa0, $fa1203; LA32-NEXT:    bcnez $fcc0, .LBB6_2204; LA32-NEXT:  # %bb.1: # %if.else205; LA32-NEXT:    ret206; LA32-NEXT:  .LBB6_2: # %if.then207; LA32-NEXT:    addi.w $sp, $sp, -16208; LA32-NEXT:    st.w $ra, $sp, 12 # 4-byte Folded Spill209; LA32-NEXT:    bl abort210;211; LA64-LABEL: br_fcmp_olt_bcnez:212; LA64:       # %bb.0:213; LA64-NEXT:    fcmp.clt.d $fcc0, $fa0, $fa1214; LA64-NEXT:    bcnez $fcc0, .LBB6_2215; LA64-NEXT:  # %bb.1: # %if.else216; LA64-NEXT:    ret217; LA64-NEXT:  .LBB6_2: # %if.then218; LA64-NEXT:    addi.d $sp, $sp, -16219; LA64-NEXT:    st.d $ra, $sp, 8 # 8-byte Folded Spill220; LA64-NEXT:    pcaddu18i $ra, %call36(abort)221; LA64-NEXT:    jirl $ra, $ra, 0222  %1 = fcmp olt double %a, %b223  br i1 %1, label %if.then, label %if.else224if.else:225  ret void226if.then:227  tail call void @abort()228  unreachable229}230 231define void @br_fcmp_olt_bceqz(double %a, double %b) nounwind {232; LA32-LABEL: br_fcmp_olt_bceqz:233; LA32:       # %bb.0:234; LA32-NEXT:    fcmp.cule.d $fcc0, $fa1, $fa0235; LA32-NEXT:    bceqz $fcc0, .LBB7_2236; LA32-NEXT:  # %bb.1: # %if.else237; LA32-NEXT:    ret238; LA32-NEXT:  .LBB7_2: # %if.then239; LA32-NEXT:    addi.w $sp, $sp, -16240; LA32-NEXT:    st.w $ra, $sp, 12 # 4-byte Folded Spill241; LA32-NEXT:    bl abort242;243; LA64-LABEL: br_fcmp_olt_bceqz:244; LA64:       # %bb.0:245; LA64-NEXT:    fcmp.cule.d $fcc0, $fa1, $fa0246; LA64-NEXT:    bceqz $fcc0, .LBB7_2247; LA64-NEXT:  # %bb.1: # %if.else248; LA64-NEXT:    ret249; LA64-NEXT:  .LBB7_2: # %if.then250; LA64-NEXT:    addi.d $sp, $sp, -16251; LA64-NEXT:    st.d $ra, $sp, 8 # 8-byte Folded Spill252; LA64-NEXT:    pcaddu18i $ra, %call36(abort)253; LA64-NEXT:    jirl $ra, $ra, 0254  %1 = fcmp olt double %a, %b255  br i1 %1, label %if.then, label %if.else256if.then:257  tail call void @abort()258  unreachable259if.else:260  ret void261}262 263define void @br_fcmp_ole_bcnez(double %a, double %b) nounwind {264; LA32-LABEL: br_fcmp_ole_bcnez:265; LA32:       # %bb.0:266; LA32-NEXT:    fcmp.cle.d $fcc0, $fa0, $fa1267; LA32-NEXT:    bcnez $fcc0, .LBB8_2268; LA32-NEXT:  # %bb.1: # %if.else269; LA32-NEXT:    ret270; LA32-NEXT:  .LBB8_2: # %if.then271; LA32-NEXT:    addi.w $sp, $sp, -16272; LA32-NEXT:    st.w $ra, $sp, 12 # 4-byte Folded Spill273; LA32-NEXT:    bl abort274;275; LA64-LABEL: br_fcmp_ole_bcnez:276; LA64:       # %bb.0:277; LA64-NEXT:    fcmp.cle.d $fcc0, $fa0, $fa1278; LA64-NEXT:    bcnez $fcc0, .LBB8_2279; LA64-NEXT:  # %bb.1: # %if.else280; LA64-NEXT:    ret281; LA64-NEXT:  .LBB8_2: # %if.then282; LA64-NEXT:    addi.d $sp, $sp, -16283; LA64-NEXT:    st.d $ra, $sp, 8 # 8-byte Folded Spill284; LA64-NEXT:    pcaddu18i $ra, %call36(abort)285; LA64-NEXT:    jirl $ra, $ra, 0286  %1 = fcmp ole double %a, %b287  br i1 %1, label %if.then, label %if.else288if.else:289  ret void290if.then:291  tail call void @abort()292  unreachable293}294 295define void @br_fcmp_ole_bceqz(double %a, double %b) nounwind {296; LA32-LABEL: br_fcmp_ole_bceqz:297; LA32:       # %bb.0:298; LA32-NEXT:    fcmp.cult.d $fcc0, $fa1, $fa0299; LA32-NEXT:    bceqz $fcc0, .LBB9_2300; LA32-NEXT:  # %bb.1: # %if.else301; LA32-NEXT:    ret302; LA32-NEXT:  .LBB9_2: # %if.then303; LA32-NEXT:    addi.w $sp, $sp, -16304; LA32-NEXT:    st.w $ra, $sp, 12 # 4-byte Folded Spill305; LA32-NEXT:    bl abort306;307; LA64-LABEL: br_fcmp_ole_bceqz:308; LA64:       # %bb.0:309; LA64-NEXT:    fcmp.cult.d $fcc0, $fa1, $fa0310; LA64-NEXT:    bceqz $fcc0, .LBB9_2311; LA64-NEXT:  # %bb.1: # %if.else312; LA64-NEXT:    ret313; LA64-NEXT:  .LBB9_2: # %if.then314; LA64-NEXT:    addi.d $sp, $sp, -16315; LA64-NEXT:    st.d $ra, $sp, 8 # 8-byte Folded Spill316; LA64-NEXT:    pcaddu18i $ra, %call36(abort)317; LA64-NEXT:    jirl $ra, $ra, 0318  %1 = fcmp ole double %a, %b319  br i1 %1, label %if.then, label %if.else320if.then:321  tail call void @abort()322  unreachable323if.else:324  ret void325}326 327define void @br_fcmp_one_bcnez(double %a, double %b) nounwind {328; LA32-LABEL: br_fcmp_one_bcnez:329; LA32:       # %bb.0:330; LA32-NEXT:    fcmp.cne.d $fcc0, $fa0, $fa1331; LA32-NEXT:    bcnez $fcc0, .LBB10_2332; LA32-NEXT:  # %bb.1: # %if.else333; LA32-NEXT:    ret334; LA32-NEXT:  .LBB10_2: # %if.then335; LA32-NEXT:    addi.w $sp, $sp, -16336; LA32-NEXT:    st.w $ra, $sp, 12 # 4-byte Folded Spill337; LA32-NEXT:    bl abort338;339; LA64-LABEL: br_fcmp_one_bcnez:340; LA64:       # %bb.0:341; LA64-NEXT:    fcmp.cne.d $fcc0, $fa0, $fa1342; LA64-NEXT:    bcnez $fcc0, .LBB10_2343; LA64-NEXT:  # %bb.1: # %if.else344; LA64-NEXT:    ret345; LA64-NEXT:  .LBB10_2: # %if.then346; LA64-NEXT:    addi.d $sp, $sp, -16347; LA64-NEXT:    st.d $ra, $sp, 8 # 8-byte Folded Spill348; LA64-NEXT:    pcaddu18i $ra, %call36(abort)349; LA64-NEXT:    jirl $ra, $ra, 0350  %1 = fcmp one double %a, %b351  br i1 %1, label %if.then, label %if.else352if.else:353  ret void354if.then:355  tail call void @abort()356  unreachable357}358 359define void @br_fcmp_one_bceqz(double %a, double %b) nounwind {360; LA32-LABEL: br_fcmp_one_bceqz:361; LA32:       # %bb.0:362; LA32-NEXT:    fcmp.cueq.d $fcc0, $fa0, $fa1363; LA32-NEXT:    bceqz $fcc0, .LBB11_2364; LA32-NEXT:  # %bb.1: # %if.else365; LA32-NEXT:    ret366; LA32-NEXT:  .LBB11_2: # %if.then367; LA32-NEXT:    addi.w $sp, $sp, -16368; LA32-NEXT:    st.w $ra, $sp, 12 # 4-byte Folded Spill369; LA32-NEXT:    bl abort370;371; LA64-LABEL: br_fcmp_one_bceqz:372; LA64:       # %bb.0:373; LA64-NEXT:    fcmp.cueq.d $fcc0, $fa0, $fa1374; LA64-NEXT:    bceqz $fcc0, .LBB11_2375; LA64-NEXT:  # %bb.1: # %if.else376; LA64-NEXT:    ret377; LA64-NEXT:  .LBB11_2: # %if.then378; LA64-NEXT:    addi.d $sp, $sp, -16379; LA64-NEXT:    st.d $ra, $sp, 8 # 8-byte Folded Spill380; LA64-NEXT:    pcaddu18i $ra, %call36(abort)381; LA64-NEXT:    jirl $ra, $ra, 0382  %1 = fcmp one double %a, %b383  br i1 %1, label %if.then, label %if.else384if.then:385  tail call void @abort()386  unreachable387if.else:388  ret void389}390 391define void @br_fcmp_ord_bcnez(double %a, double %b) nounwind {392; LA32-LABEL: br_fcmp_ord_bcnez:393; LA32:       # %bb.0:394; LA32-NEXT:    fcmp.cor.d $fcc0, $fa0, $fa1395; LA32-NEXT:    bcnez $fcc0, .LBB12_2396; LA32-NEXT:  # %bb.1: # %if.else397; LA32-NEXT:    ret398; LA32-NEXT:  .LBB12_2: # %if.then399; LA32-NEXT:    addi.w $sp, $sp, -16400; LA32-NEXT:    st.w $ra, $sp, 12 # 4-byte Folded Spill401; LA32-NEXT:    bl abort402;403; LA64-LABEL: br_fcmp_ord_bcnez:404; LA64:       # %bb.0:405; LA64-NEXT:    fcmp.cor.d $fcc0, $fa0, $fa1406; LA64-NEXT:    bcnez $fcc0, .LBB12_2407; LA64-NEXT:  # %bb.1: # %if.else408; LA64-NEXT:    ret409; LA64-NEXT:  .LBB12_2: # %if.then410; LA64-NEXT:    addi.d $sp, $sp, -16411; LA64-NEXT:    st.d $ra, $sp, 8 # 8-byte Folded Spill412; LA64-NEXT:    pcaddu18i $ra, %call36(abort)413; LA64-NEXT:    jirl $ra, $ra, 0414  %1 = fcmp ord double %a, %b415  br i1 %1, label %if.then, label %if.else416if.else:417  ret void418if.then:419  tail call void @abort()420  unreachable421}422 423define void @br_fcmp_ord_bceqz(double %a, double %b) nounwind {424; LA32-LABEL: br_fcmp_ord_bceqz:425; LA32:       # %bb.0:426; LA32-NEXT:    fcmp.cun.d $fcc0, $fa0, $fa1427; LA32-NEXT:    bceqz $fcc0, .LBB13_2428; LA32-NEXT:  # %bb.1: # %if.else429; LA32-NEXT:    ret430; LA32-NEXT:  .LBB13_2: # %if.then431; LA32-NEXT:    addi.w $sp, $sp, -16432; LA32-NEXT:    st.w $ra, $sp, 12 # 4-byte Folded Spill433; LA32-NEXT:    bl abort434;435; LA64-LABEL: br_fcmp_ord_bceqz:436; LA64:       # %bb.0:437; LA64-NEXT:    fcmp.cun.d $fcc0, $fa0, $fa1438; LA64-NEXT:    bceqz $fcc0, .LBB13_2439; LA64-NEXT:  # %bb.1: # %if.else440; LA64-NEXT:    ret441; LA64-NEXT:  .LBB13_2: # %if.then442; LA64-NEXT:    addi.d $sp, $sp, -16443; LA64-NEXT:    st.d $ra, $sp, 8 # 8-byte Folded Spill444; LA64-NEXT:    pcaddu18i $ra, %call36(abort)445; LA64-NEXT:    jirl $ra, $ra, 0446  %1 = fcmp ord double %a, %b447  br i1 %1, label %if.then, label %if.else448if.then:449  tail call void @abort()450  unreachable451if.else:452  ret void453}454 455define void @br_fcmp_ueq_bcnez(double %a, double %b) nounwind {456; LA32-LABEL: br_fcmp_ueq_bcnez:457; LA32:       # %bb.0:458; LA32-NEXT:    fcmp.cueq.d $fcc0, $fa0, $fa1459; LA32-NEXT:    bcnez $fcc0, .LBB14_2460; LA32-NEXT:  # %bb.1: # %if.else461; LA32-NEXT:    ret462; LA32-NEXT:  .LBB14_2: # %if.then463; LA32-NEXT:    addi.w $sp, $sp, -16464; LA32-NEXT:    st.w $ra, $sp, 12 # 4-byte Folded Spill465; LA32-NEXT:    bl abort466;467; LA64-LABEL: br_fcmp_ueq_bcnez:468; LA64:       # %bb.0:469; LA64-NEXT:    fcmp.cueq.d $fcc0, $fa0, $fa1470; LA64-NEXT:    bcnez $fcc0, .LBB14_2471; LA64-NEXT:  # %bb.1: # %if.else472; LA64-NEXT:    ret473; LA64-NEXT:  .LBB14_2: # %if.then474; LA64-NEXT:    addi.d $sp, $sp, -16475; LA64-NEXT:    st.d $ra, $sp, 8 # 8-byte Folded Spill476; LA64-NEXT:    pcaddu18i $ra, %call36(abort)477; LA64-NEXT:    jirl $ra, $ra, 0478  %1 = fcmp ueq double %a, %b479  br i1 %1, label %if.then, label %if.else480if.else:481  ret void482if.then:483  tail call void @abort()484  unreachable485}486 487define void @br_fcmp_ueq_bceqz(double %a, double %b) nounwind {488; LA32-LABEL: br_fcmp_ueq_bceqz:489; LA32:       # %bb.0:490; LA32-NEXT:    fcmp.cne.d $fcc0, $fa0, $fa1491; LA32-NEXT:    bceqz $fcc0, .LBB15_2492; LA32-NEXT:  # %bb.1: # %if.else493; LA32-NEXT:    ret494; LA32-NEXT:  .LBB15_2: # %if.then495; LA32-NEXT:    addi.w $sp, $sp, -16496; LA32-NEXT:    st.w $ra, $sp, 12 # 4-byte Folded Spill497; LA32-NEXT:    bl abort498;499; LA64-LABEL: br_fcmp_ueq_bceqz:500; LA64:       # %bb.0:501; LA64-NEXT:    fcmp.cne.d $fcc0, $fa0, $fa1502; LA64-NEXT:    bceqz $fcc0, .LBB15_2503; LA64-NEXT:  # %bb.1: # %if.else504; LA64-NEXT:    ret505; LA64-NEXT:  .LBB15_2: # %if.then506; LA64-NEXT:    addi.d $sp, $sp, -16507; LA64-NEXT:    st.d $ra, $sp, 8 # 8-byte Folded Spill508; LA64-NEXT:    pcaddu18i $ra, %call36(abort)509; LA64-NEXT:    jirl $ra, $ra, 0510  %1 = fcmp ueq double %a, %b511  br i1 %1, label %if.then, label %if.else512if.then:513  tail call void @abort()514  unreachable515if.else:516  ret void517}518 519define void @br_fcmp_ugt_bcnez(double %a, double %b) nounwind {520; LA32-LABEL: br_fcmp_ugt_bcnez:521; LA32:       # %bb.0:522; LA32-NEXT:    fcmp.cult.d $fcc0, $fa1, $fa0523; LA32-NEXT:    bcnez $fcc0, .LBB16_2524; LA32-NEXT:  # %bb.1: # %if.else525; LA32-NEXT:    ret526; LA32-NEXT:  .LBB16_2: # %if.then527; LA32-NEXT:    addi.w $sp, $sp, -16528; LA32-NEXT:    st.w $ra, $sp, 12 # 4-byte Folded Spill529; LA32-NEXT:    bl abort530;531; LA64-LABEL: br_fcmp_ugt_bcnez:532; LA64:       # %bb.0:533; LA64-NEXT:    fcmp.cult.d $fcc0, $fa1, $fa0534; LA64-NEXT:    bcnez $fcc0, .LBB16_2535; LA64-NEXT:  # %bb.1: # %if.else536; LA64-NEXT:    ret537; LA64-NEXT:  .LBB16_2: # %if.then538; LA64-NEXT:    addi.d $sp, $sp, -16539; LA64-NEXT:    st.d $ra, $sp, 8 # 8-byte Folded Spill540; LA64-NEXT:    pcaddu18i $ra, %call36(abort)541; LA64-NEXT:    jirl $ra, $ra, 0542  %1 = fcmp ugt double %a, %b543  br i1 %1, label %if.then, label %if.else544if.else:545  ret void546if.then:547  tail call void @abort()548  unreachable549}550 551define void @br_fcmp_ugt_bceqz(double %a, double %b) nounwind {552; LA32-LABEL: br_fcmp_ugt_bceqz:553; LA32:       # %bb.0:554; LA32-NEXT:    fcmp.cle.d $fcc0, $fa0, $fa1555; LA32-NEXT:    bceqz $fcc0, .LBB17_2556; LA32-NEXT:  # %bb.1: # %if.else557; LA32-NEXT:    ret558; LA32-NEXT:  .LBB17_2: # %if.then559; LA32-NEXT:    addi.w $sp, $sp, -16560; LA32-NEXT:    st.w $ra, $sp, 12 # 4-byte Folded Spill561; LA32-NEXT:    bl abort562;563; LA64-LABEL: br_fcmp_ugt_bceqz:564; LA64:       # %bb.0:565; LA64-NEXT:    fcmp.cle.d $fcc0, $fa0, $fa1566; LA64-NEXT:    bceqz $fcc0, .LBB17_2567; LA64-NEXT:  # %bb.1: # %if.else568; LA64-NEXT:    ret569; LA64-NEXT:  .LBB17_2: # %if.then570; LA64-NEXT:    addi.d $sp, $sp, -16571; LA64-NEXT:    st.d $ra, $sp, 8 # 8-byte Folded Spill572; LA64-NEXT:    pcaddu18i $ra, %call36(abort)573; LA64-NEXT:    jirl $ra, $ra, 0574  %1 = fcmp ugt double %a, %b575  br i1 %1, label %if.then, label %if.else576if.then:577  tail call void @abort()578  unreachable579if.else:580  ret void581}582 583define void @br_fcmp_uge_bcnez(double %a, double %b) nounwind {584; LA32-LABEL: br_fcmp_uge_bcnez:585; LA32:       # %bb.0:586; LA32-NEXT:    fcmp.cule.d $fcc0, $fa1, $fa0587; LA32-NEXT:    bcnez $fcc0, .LBB18_2588; LA32-NEXT:  # %bb.1: # %if.else589; LA32-NEXT:    ret590; LA32-NEXT:  .LBB18_2: # %if.then591; LA32-NEXT:    addi.w $sp, $sp, -16592; LA32-NEXT:    st.w $ra, $sp, 12 # 4-byte Folded Spill593; LA32-NEXT:    bl abort594;595; LA64-LABEL: br_fcmp_uge_bcnez:596; LA64:       # %bb.0:597; LA64-NEXT:    fcmp.cule.d $fcc0, $fa1, $fa0598; LA64-NEXT:    bcnez $fcc0, .LBB18_2599; LA64-NEXT:  # %bb.1: # %if.else600; LA64-NEXT:    ret601; LA64-NEXT:  .LBB18_2: # %if.then602; LA64-NEXT:    addi.d $sp, $sp, -16603; LA64-NEXT:    st.d $ra, $sp, 8 # 8-byte Folded Spill604; LA64-NEXT:    pcaddu18i $ra, %call36(abort)605; LA64-NEXT:    jirl $ra, $ra, 0606  %1 = fcmp uge double %a, %b607  br i1 %1, label %if.then, label %if.else608if.else:609  ret void610if.then:611  tail call void @abort()612  unreachable613}614 615define void @br_fcmp_uge_bceqz(double %a, double %b) nounwind {616; LA32-LABEL: br_fcmp_uge_bceqz:617; LA32:       # %bb.0:618; LA32-NEXT:    fcmp.clt.d $fcc0, $fa0, $fa1619; LA32-NEXT:    bceqz $fcc0, .LBB19_2620; LA32-NEXT:  # %bb.1: # %if.else621; LA32-NEXT:    ret622; LA32-NEXT:  .LBB19_2: # %if.then623; LA32-NEXT:    addi.w $sp, $sp, -16624; LA32-NEXT:    st.w $ra, $sp, 12 # 4-byte Folded Spill625; LA32-NEXT:    bl abort626;627; LA64-LABEL: br_fcmp_uge_bceqz:628; LA64:       # %bb.0:629; LA64-NEXT:    fcmp.clt.d $fcc0, $fa0, $fa1630; LA64-NEXT:    bceqz $fcc0, .LBB19_2631; LA64-NEXT:  # %bb.1: # %if.else632; LA64-NEXT:    ret633; LA64-NEXT:  .LBB19_2: # %if.then634; LA64-NEXT:    addi.d $sp, $sp, -16635; LA64-NEXT:    st.d $ra, $sp, 8 # 8-byte Folded Spill636; LA64-NEXT:    pcaddu18i $ra, %call36(abort)637; LA64-NEXT:    jirl $ra, $ra, 0638  %1 = fcmp uge double %a, %b639  br i1 %1, label %if.then, label %if.else640if.then:641  tail call void @abort()642  unreachable643if.else:644  ret void645}646 647define void @br_fcmp_ult_bcnez(double %a, double %b) nounwind {648; LA32-LABEL: br_fcmp_ult_bcnez:649; LA32:       # %bb.0:650; LA32-NEXT:    fcmp.cult.d $fcc0, $fa0, $fa1651; LA32-NEXT:    bcnez $fcc0, .LBB20_2652; LA32-NEXT:  # %bb.1: # %if.else653; LA32-NEXT:    ret654; LA32-NEXT:  .LBB20_2: # %if.then655; LA32-NEXT:    addi.w $sp, $sp, -16656; LA32-NEXT:    st.w $ra, $sp, 12 # 4-byte Folded Spill657; LA32-NEXT:    bl abort658;659; LA64-LABEL: br_fcmp_ult_bcnez:660; LA64:       # %bb.0:661; LA64-NEXT:    fcmp.cult.d $fcc0, $fa0, $fa1662; LA64-NEXT:    bcnez $fcc0, .LBB20_2663; LA64-NEXT:  # %bb.1: # %if.else664; LA64-NEXT:    ret665; LA64-NEXT:  .LBB20_2: # %if.then666; LA64-NEXT:    addi.d $sp, $sp, -16667; LA64-NEXT:    st.d $ra, $sp, 8 # 8-byte Folded Spill668; LA64-NEXT:    pcaddu18i $ra, %call36(abort)669; LA64-NEXT:    jirl $ra, $ra, 0670  %1 = fcmp ult double %a, %b671  br i1 %1, label %if.then, label %if.else672if.else:673  ret void674if.then:675  tail call void @abort()676  unreachable677}678 679define void @br_fcmp_ult_bceqz(double %a, double %b) nounwind {680; LA32-LABEL: br_fcmp_ult_bceqz:681; LA32:       # %bb.0:682; LA32-NEXT:    fcmp.cle.d $fcc0, $fa1, $fa0683; LA32-NEXT:    bceqz $fcc0, .LBB21_2684; LA32-NEXT:  # %bb.1: # %if.else685; LA32-NEXT:    ret686; LA32-NEXT:  .LBB21_2: # %if.then687; LA32-NEXT:    addi.w $sp, $sp, -16688; LA32-NEXT:    st.w $ra, $sp, 12 # 4-byte Folded Spill689; LA32-NEXT:    bl abort690;691; LA64-LABEL: br_fcmp_ult_bceqz:692; LA64:       # %bb.0:693; LA64-NEXT:    fcmp.cle.d $fcc0, $fa1, $fa0694; LA64-NEXT:    bceqz $fcc0, .LBB21_2695; LA64-NEXT:  # %bb.1: # %if.else696; LA64-NEXT:    ret697; LA64-NEXT:  .LBB21_2: # %if.then698; LA64-NEXT:    addi.d $sp, $sp, -16699; LA64-NEXT:    st.d $ra, $sp, 8 # 8-byte Folded Spill700; LA64-NEXT:    pcaddu18i $ra, %call36(abort)701; LA64-NEXT:    jirl $ra, $ra, 0702  %1 = fcmp ult double %a, %b703  br i1 %1, label %if.then, label %if.else704if.then:705  tail call void @abort()706  unreachable707if.else:708  ret void709}710 711define void @br_fcmp_ule_bcnez(double %a, double %b) nounwind {712; LA32-LABEL: br_fcmp_ule_bcnez:713; LA32:       # %bb.0:714; LA32-NEXT:    fcmp.cule.d $fcc0, $fa0, $fa1715; LA32-NEXT:    bcnez $fcc0, .LBB22_2716; LA32-NEXT:  # %bb.1: # %if.else717; LA32-NEXT:    ret718; LA32-NEXT:  .LBB22_2: # %if.then719; LA32-NEXT:    addi.w $sp, $sp, -16720; LA32-NEXT:    st.w $ra, $sp, 12 # 4-byte Folded Spill721; LA32-NEXT:    bl abort722;723; LA64-LABEL: br_fcmp_ule_bcnez:724; LA64:       # %bb.0:725; LA64-NEXT:    fcmp.cule.d $fcc0, $fa0, $fa1726; LA64-NEXT:    bcnez $fcc0, .LBB22_2727; LA64-NEXT:  # %bb.1: # %if.else728; LA64-NEXT:    ret729; LA64-NEXT:  .LBB22_2: # %if.then730; LA64-NEXT:    addi.d $sp, $sp, -16731; LA64-NEXT:    st.d $ra, $sp, 8 # 8-byte Folded Spill732; LA64-NEXT:    pcaddu18i $ra, %call36(abort)733; LA64-NEXT:    jirl $ra, $ra, 0734  %1 = fcmp ule double %a, %b735  br i1 %1, label %if.then, label %if.else736if.else:737  ret void738if.then:739  tail call void @abort()740  unreachable741}742 743define void @br_fcmp_ule_bceqz(double %a, double %b) nounwind {744; LA32-LABEL: br_fcmp_ule_bceqz:745; LA32:       # %bb.0:746; LA32-NEXT:    fcmp.clt.d $fcc0, $fa1, $fa0747; LA32-NEXT:    bceqz $fcc0, .LBB23_2748; LA32-NEXT:  # %bb.1: # %if.else749; LA32-NEXT:    ret750; LA32-NEXT:  .LBB23_2: # %if.then751; LA32-NEXT:    addi.w $sp, $sp, -16752; LA32-NEXT:    st.w $ra, $sp, 12 # 4-byte Folded Spill753; LA32-NEXT:    bl abort754;755; LA64-LABEL: br_fcmp_ule_bceqz:756; LA64:       # %bb.0:757; LA64-NEXT:    fcmp.clt.d $fcc0, $fa1, $fa0758; LA64-NEXT:    bceqz $fcc0, .LBB23_2759; LA64-NEXT:  # %bb.1: # %if.else760; LA64-NEXT:    ret761; LA64-NEXT:  .LBB23_2: # %if.then762; LA64-NEXT:    addi.d $sp, $sp, -16763; LA64-NEXT:    st.d $ra, $sp, 8 # 8-byte Folded Spill764; LA64-NEXT:    pcaddu18i $ra, %call36(abort)765; LA64-NEXT:    jirl $ra, $ra, 0766  %1 = fcmp ule double %a, %b767  br i1 %1, label %if.then, label %if.else768if.then:769  tail call void @abort()770  unreachable771if.else:772  ret void773}774 775define void @br_fcmp_une_bcnez(double %a, double %b) nounwind {776; LA32-LABEL: br_fcmp_une_bcnez:777; LA32:       # %bb.0:778; LA32-NEXT:    fcmp.cune.d $fcc0, $fa0, $fa1779; LA32-NEXT:    bcnez $fcc0, .LBB24_2780; LA32-NEXT:  # %bb.1: # %if.else781; LA32-NEXT:    ret782; LA32-NEXT:  .LBB24_2: # %if.then783; LA32-NEXT:    addi.w $sp, $sp, -16784; LA32-NEXT:    st.w $ra, $sp, 12 # 4-byte Folded Spill785; LA32-NEXT:    bl abort786;787; LA64-LABEL: br_fcmp_une_bcnez:788; LA64:       # %bb.0:789; LA64-NEXT:    fcmp.cune.d $fcc0, $fa0, $fa1790; LA64-NEXT:    bcnez $fcc0, .LBB24_2791; LA64-NEXT:  # %bb.1: # %if.else792; LA64-NEXT:    ret793; LA64-NEXT:  .LBB24_2: # %if.then794; LA64-NEXT:    addi.d $sp, $sp, -16795; LA64-NEXT:    st.d $ra, $sp, 8 # 8-byte Folded Spill796; LA64-NEXT:    pcaddu18i $ra, %call36(abort)797; LA64-NEXT:    jirl $ra, $ra, 0798  %1 = fcmp une double %a, %b799  br i1 %1, label %if.then, label %if.else800if.else:801  ret void802if.then:803  tail call void @abort()804  unreachable805}806 807define void @br_fcmp_une_bceqz(double %a, double %b) nounwind {808; LA32-LABEL: br_fcmp_une_bceqz:809; LA32:       # %bb.0:810; LA32-NEXT:    fcmp.ceq.d $fcc0, $fa0, $fa1811; LA32-NEXT:    bceqz $fcc0, .LBB25_2812; LA32-NEXT:  # %bb.1: # %if.else813; LA32-NEXT:    ret814; LA32-NEXT:  .LBB25_2: # %if.then815; LA32-NEXT:    addi.w $sp, $sp, -16816; LA32-NEXT:    st.w $ra, $sp, 12 # 4-byte Folded Spill817; LA32-NEXT:    bl abort818;819; LA64-LABEL: br_fcmp_une_bceqz:820; LA64:       # %bb.0:821; LA64-NEXT:    fcmp.ceq.d $fcc0, $fa0, $fa1822; LA64-NEXT:    bceqz $fcc0, .LBB25_2823; LA64-NEXT:  # %bb.1: # %if.else824; LA64-NEXT:    ret825; LA64-NEXT:  .LBB25_2: # %if.then826; LA64-NEXT:    addi.d $sp, $sp, -16827; LA64-NEXT:    st.d $ra, $sp, 8 # 8-byte Folded Spill828; LA64-NEXT:    pcaddu18i $ra, %call36(abort)829; LA64-NEXT:    jirl $ra, $ra, 0830  %1 = fcmp une double %a, %b831  br i1 %1, label %if.then, label %if.else832if.then:833  tail call void @abort()834  unreachable835if.else:836  ret void837}838 839define void @br_fcmp_uno_bcnez(double %a, double %b) nounwind {840; LA32-LABEL: br_fcmp_uno_bcnez:841; LA32:       # %bb.0:842; LA32-NEXT:    fcmp.cun.d $fcc0, $fa0, $fa1843; LA32-NEXT:    bcnez $fcc0, .LBB26_2844; LA32-NEXT:  # %bb.1: # %if.else845; LA32-NEXT:    ret846; LA32-NEXT:  .LBB26_2: # %if.then847; LA32-NEXT:    addi.w $sp, $sp, -16848; LA32-NEXT:    st.w $ra, $sp, 12 # 4-byte Folded Spill849; LA32-NEXT:    bl abort850;851; LA64-LABEL: br_fcmp_uno_bcnez:852; LA64:       # %bb.0:853; LA64-NEXT:    fcmp.cun.d $fcc0, $fa0, $fa1854; LA64-NEXT:    bcnez $fcc0, .LBB26_2855; LA64-NEXT:  # %bb.1: # %if.else856; LA64-NEXT:    ret857; LA64-NEXT:  .LBB26_2: # %if.then858; LA64-NEXT:    addi.d $sp, $sp, -16859; LA64-NEXT:    st.d $ra, $sp, 8 # 8-byte Folded Spill860; LA64-NEXT:    pcaddu18i $ra, %call36(abort)861; LA64-NEXT:    jirl $ra, $ra, 0862  %1 = fcmp uno double %a, %b863  br i1 %1, label %if.then, label %if.else864if.else:865  ret void866if.then:867  tail call void @abort()868  unreachable869}870 871define void @br_fcmp_uno_bceqz(double %a, double %b) nounwind {872; LA32-LABEL: br_fcmp_uno_bceqz:873; LA32:       # %bb.0:874; LA32-NEXT:    fcmp.cor.d $fcc0, $fa0, $fa1875; LA32-NEXT:    bceqz $fcc0, .LBB27_2876; LA32-NEXT:  # %bb.1: # %if.else877; LA32-NEXT:    ret878; LA32-NEXT:  .LBB27_2: # %if.then879; LA32-NEXT:    addi.w $sp, $sp, -16880; LA32-NEXT:    st.w $ra, $sp, 12 # 4-byte Folded Spill881; LA32-NEXT:    bl abort882;883; LA64-LABEL: br_fcmp_uno_bceqz:884; LA64:       # %bb.0:885; LA64-NEXT:    fcmp.cor.d $fcc0, $fa0, $fa1886; LA64-NEXT:    bceqz $fcc0, .LBB27_2887; LA64-NEXT:  # %bb.1: # %if.else888; LA64-NEXT:    ret889; LA64-NEXT:  .LBB27_2: # %if.then890; LA64-NEXT:    addi.d $sp, $sp, -16891; LA64-NEXT:    st.d $ra, $sp, 8 # 8-byte Folded Spill892; LA64-NEXT:    pcaddu18i $ra, %call36(abort)893; LA64-NEXT:    jirl $ra, $ra, 0894  %1 = fcmp uno double %a, %b895  br i1 %1, label %if.then, label %if.else896if.then:897  tail call void @abort()898  unreachable899if.else:900  ret void901}902