brintos

brintos / llvm-project-archived public Read only

0
0
Text · 7.6 KiB · 066f607 Raw
244 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 i1 @llvm.experimental.constrained.fcmp.f64(double, double, metadata, metadata)6 7define i32 @fcmp_oeq(double %a, double %b) nounwind strictfp {8; LA32-LABEL: fcmp_oeq:9; LA32:       # %bb.0:10; LA32-NEXT:    fcmp.ceq.d $fcc0, $fa0, $fa111; LA32-NEXT:    movcf2gr $a0, $fcc012; LA32-NEXT:    ret13;14; LA64-LABEL: fcmp_oeq:15; LA64:       # %bb.0:16; LA64-NEXT:    fcmp.ceq.d $fcc0, $fa0, $fa117; LA64-NEXT:    movcf2gr $a0, $fcc018; LA64-NEXT:    ret19  %1 = call i1 @llvm.experimental.constrained.fcmp.f64(double %a, double %b, metadata !"oeq", metadata !"fpexcept.strict") strictfp20  %2 = zext i1 %1 to i3221  ret i32 %222}23 24define i32 @fcmp_ogt(double %a, double %b) nounwind strictfp {25; LA32-LABEL: fcmp_ogt:26; LA32:       # %bb.0:27; LA32-NEXT:    fcmp.clt.d $fcc0, $fa1, $fa028; LA32-NEXT:    movcf2gr $a0, $fcc029; LA32-NEXT:    ret30;31; LA64-LABEL: fcmp_ogt:32; LA64:       # %bb.0:33; LA64-NEXT:    fcmp.clt.d $fcc0, $fa1, $fa034; LA64-NEXT:    movcf2gr $a0, $fcc035; LA64-NEXT:    ret36  %1 = call i1 @llvm.experimental.constrained.fcmp.f64(double %a, double %b, metadata !"ogt", metadata !"fpexcept.strict") strictfp37  %2 = zext i1 %1 to i3238  ret i32 %239}40 41define i32 @fcmp_oge(double %a, double %b) nounwind strictfp {42; LA32-LABEL: fcmp_oge:43; LA32:       # %bb.0:44; LA32-NEXT:    fcmp.cle.d $fcc0, $fa1, $fa045; LA32-NEXT:    movcf2gr $a0, $fcc046; LA32-NEXT:    ret47;48; LA64-LABEL: fcmp_oge:49; LA64:       # %bb.0:50; LA64-NEXT:    fcmp.cle.d $fcc0, $fa1, $fa051; LA64-NEXT:    movcf2gr $a0, $fcc052; LA64-NEXT:    ret53  %1 = call i1 @llvm.experimental.constrained.fcmp.f64(double %a, double %b, metadata !"oge", metadata !"fpexcept.strict") strictfp54  %2 = zext i1 %1 to i3255  ret i32 %256}57 58define i32 @fcmp_olt(double %a, double %b) nounwind strictfp {59; LA32-LABEL: fcmp_olt:60; LA32:       # %bb.0:61; LA32-NEXT:    fcmp.clt.d $fcc0, $fa0, $fa162; LA32-NEXT:    movcf2gr $a0, $fcc063; LA32-NEXT:    ret64;65; LA64-LABEL: fcmp_olt:66; LA64:       # %bb.0:67; LA64-NEXT:    fcmp.clt.d $fcc0, $fa0, $fa168; LA64-NEXT:    movcf2gr $a0, $fcc069; LA64-NEXT:    ret70  %1 = call i1 @llvm.experimental.constrained.fcmp.f64(double %a, double %b, metadata !"olt", metadata !"fpexcept.strict") strictfp71  %2 = zext i1 %1 to i3272  ret i32 %273}74 75define i32 @fcmp_ole(double %a, double %b) nounwind strictfp {76; LA32-LABEL: fcmp_ole:77; LA32:       # %bb.0:78; LA32-NEXT:    fcmp.cle.d $fcc0, $fa0, $fa179; LA32-NEXT:    movcf2gr $a0, $fcc080; LA32-NEXT:    ret81;82; LA64-LABEL: fcmp_ole:83; LA64:       # %bb.0:84; LA64-NEXT:    fcmp.cle.d $fcc0, $fa0, $fa185; LA64-NEXT:    movcf2gr $a0, $fcc086; LA64-NEXT:    ret87  %1 = call i1 @llvm.experimental.constrained.fcmp.f64(double %a, double %b, metadata !"ole", metadata !"fpexcept.strict") strictfp88  %2 = zext i1 %1 to i3289  ret i32 %290}91 92define i32 @fcmp_one(double %a, double %b) nounwind strictfp {93; LA32-LABEL: fcmp_one:94; LA32:       # %bb.0:95; LA32-NEXT:    fcmp.cne.d $fcc0, $fa0, $fa196; LA32-NEXT:    movcf2gr $a0, $fcc097; LA32-NEXT:    ret98;99; LA64-LABEL: fcmp_one:100; LA64:       # %bb.0:101; LA64-NEXT:    fcmp.cne.d $fcc0, $fa0, $fa1102; LA64-NEXT:    movcf2gr $a0, $fcc0103; LA64-NEXT:    ret104  %1 = call i1 @llvm.experimental.constrained.fcmp.f64(double %a, double %b, metadata !"one", metadata !"fpexcept.strict") strictfp105  %2 = zext i1 %1 to i32106  ret i32 %2107}108 109define i32 @fcmp_ord(double %a, double %b) nounwind strictfp {110; LA32-LABEL: fcmp_ord:111; LA32:       # %bb.0:112; LA32-NEXT:    fcmp.cor.d $fcc0, $fa0, $fa1113; LA32-NEXT:    movcf2gr $a0, $fcc0114; LA32-NEXT:    ret115;116; LA64-LABEL: fcmp_ord:117; LA64:       # %bb.0:118; LA64-NEXT:    fcmp.cor.d $fcc0, $fa0, $fa1119; LA64-NEXT:    movcf2gr $a0, $fcc0120; LA64-NEXT:    ret121  %1 = call i1 @llvm.experimental.constrained.fcmp.f64(double %a, double %b, metadata !"ord", metadata !"fpexcept.strict") strictfp122  %2 = zext i1 %1 to i32123  ret i32 %2124}125 126define i32 @fcmp_ueq(double %a, double %b) nounwind strictfp {127; LA32-LABEL: fcmp_ueq:128; LA32:       # %bb.0:129; LA32-NEXT:    fcmp.cueq.d $fcc0, $fa0, $fa1130; LA32-NEXT:    movcf2gr $a0, $fcc0131; LA32-NEXT:    ret132;133; LA64-LABEL: fcmp_ueq:134; LA64:       # %bb.0:135; LA64-NEXT:    fcmp.cueq.d $fcc0, $fa0, $fa1136; LA64-NEXT:    movcf2gr $a0, $fcc0137; LA64-NEXT:    ret138  %1 = call i1 @llvm.experimental.constrained.fcmp.f64(double %a, double %b, metadata !"ueq", metadata !"fpexcept.strict") strictfp139  %2 = zext i1 %1 to i32140  ret i32 %2141}142 143define i32 @fcmp_ugt(double %a, double %b) nounwind strictfp {144; LA32-LABEL: fcmp_ugt:145; LA32:       # %bb.0:146; LA32-NEXT:    fcmp.cult.d $fcc0, $fa1, $fa0147; LA32-NEXT:    movcf2gr $a0, $fcc0148; LA32-NEXT:    ret149;150; LA64-LABEL: fcmp_ugt:151; LA64:       # %bb.0:152; LA64-NEXT:    fcmp.cult.d $fcc0, $fa1, $fa0153; LA64-NEXT:    movcf2gr $a0, $fcc0154; LA64-NEXT:    ret155  %1 = call i1 @llvm.experimental.constrained.fcmp.f64(double %a, double %b, metadata !"ugt", metadata !"fpexcept.strict") strictfp156  %2 = zext i1 %1 to i32157  ret i32 %2158}159 160define i32 @fcmp_uge(double %a, double %b) nounwind strictfp {161; LA32-LABEL: fcmp_uge:162; LA32:       # %bb.0:163; LA32-NEXT:    fcmp.cule.d $fcc0, $fa1, $fa0164; LA32-NEXT:    movcf2gr $a0, $fcc0165; LA32-NEXT:    ret166;167; LA64-LABEL: fcmp_uge:168; LA64:       # %bb.0:169; LA64-NEXT:    fcmp.cule.d $fcc0, $fa1, $fa0170; LA64-NEXT:    movcf2gr $a0, $fcc0171; LA64-NEXT:    ret172  %1 = call i1 @llvm.experimental.constrained.fcmp.f64(double %a, double %b, metadata !"uge", metadata !"fpexcept.strict") strictfp173  %2 = zext i1 %1 to i32174  ret i32 %2175}176 177define i32 @fcmp_ult(double %a, double %b) nounwind strictfp {178; LA32-LABEL: fcmp_ult:179; LA32:       # %bb.0:180; LA32-NEXT:    fcmp.cult.d $fcc0, $fa0, $fa1181; LA32-NEXT:    movcf2gr $a0, $fcc0182; LA32-NEXT:    ret183;184; LA64-LABEL: fcmp_ult:185; LA64:       # %bb.0:186; LA64-NEXT:    fcmp.cult.d $fcc0, $fa0, $fa1187; LA64-NEXT:    movcf2gr $a0, $fcc0188; LA64-NEXT:    ret189  %1 = call i1 @llvm.experimental.constrained.fcmp.f64(double %a, double %b, metadata !"ult", metadata !"fpexcept.strict") strictfp190  %2 = zext i1 %1 to i32191  ret i32 %2192}193 194define i32 @fcmp_ule(double %a, double %b) nounwind strictfp {195; LA32-LABEL: fcmp_ule:196; LA32:       # %bb.0:197; LA32-NEXT:    fcmp.cule.d $fcc0, $fa0, $fa1198; LA32-NEXT:    movcf2gr $a0, $fcc0199; LA32-NEXT:    ret200;201; LA64-LABEL: fcmp_ule:202; LA64:       # %bb.0:203; LA64-NEXT:    fcmp.cule.d $fcc0, $fa0, $fa1204; LA64-NEXT:    movcf2gr $a0, $fcc0205; LA64-NEXT:    ret206  %1 = call i1 @llvm.experimental.constrained.fcmp.f64(double %a, double %b, metadata !"ule", metadata !"fpexcept.strict") strictfp207  %2 = zext i1 %1 to i32208  ret i32 %2209}210 211define i32 @fcmp_une(double %a, double %b) nounwind strictfp {212; LA32-LABEL: fcmp_une:213; LA32:       # %bb.0:214; LA32-NEXT:    fcmp.cune.d $fcc0, $fa0, $fa1215; LA32-NEXT:    movcf2gr $a0, $fcc0216; LA32-NEXT:    ret217;218; LA64-LABEL: fcmp_une:219; LA64:       # %bb.0:220; LA64-NEXT:    fcmp.cune.d $fcc0, $fa0, $fa1221; LA64-NEXT:    movcf2gr $a0, $fcc0222; LA64-NEXT:    ret223  %1 = call i1 @llvm.experimental.constrained.fcmp.f64(double %a, double %b, metadata !"une", metadata !"fpexcept.strict") strictfp224  %2 = zext i1 %1 to i32225  ret i32 %2226}227 228define i32 @fcmp_uno(double %a, double %b) nounwind strictfp {229; LA32-LABEL: fcmp_uno:230; LA32:       # %bb.0:231; LA32-NEXT:    fcmp.cun.d $fcc0, $fa0, $fa1232; LA32-NEXT:    movcf2gr $a0, $fcc0233; LA32-NEXT:    ret234;235; LA64-LABEL: fcmp_uno:236; LA64:       # %bb.0:237; LA64-NEXT:    fcmp.cun.d $fcc0, $fa0, $fa1238; LA64-NEXT:    movcf2gr $a0, $fcc0239; LA64-NEXT:    ret240  %1 = call i1 @llvm.experimental.constrained.fcmp.f64(double %a, double %b, metadata !"uno", metadata !"fpexcept.strict") strictfp241  %2 = zext i1 %1 to i32242  ret i32 %2243}244