brintos

brintos / llvm-project-archived public Read only

0
0
Text · 5.0 KiB · f755eea Raw
188 lines · plain
1; RUN: llc < %s -mtriple=ve-unknown-unknown | FileCheck %s2 3define zeroext i1 @setccaf(double, double) {4; CHECK-LABEL: setccaf:5; CHECK:       # %bb.0:6; CHECK-NEXT:    or %s0, 0, (0)17; CHECK-NEXT:    b.l.t (, %s10)8  %3 = fcmp false double %0, %19  ret i1 %310}11 12define zeroext i1 @setccat(double, double) {13; CHECK-LABEL: setccat:14; CHECK:       # %bb.0:15; CHECK-NEXT:    or %s0, 1, (0)116; CHECK-NEXT:    b.l.t (, %s10)17  %3 = fcmp true double %0, %118  ret i1 %319}20 21define zeroext i1 @setccoeq(double, double) {22; CHECK-LABEL: setccoeq:23; CHECK:       # %bb.0:24; CHECK-NEXT:    fcmp.d %s0, %s0, %s125; CHECK-NEXT:    or %s1, 0, (0)126; CHECK-NEXT:    cmov.d.eq %s1, (63)0, %s027; CHECK-NEXT:    adds.w.zx %s0, %s1, (0)128; CHECK-NEXT:    b.l.t (, %s10)29  %3 = fcmp oeq double %0, %130  ret i1 %331}32 33define zeroext i1 @setccone(double, double) {34; CHECK-LABEL: setccone:35; CHECK:       # %bb.0:36; CHECK-NEXT:    fcmp.d %s0, %s0, %s137; CHECK-NEXT:    or %s1, 0, (0)138; CHECK-NEXT:    cmov.d.ne %s1, (63)0, %s039; CHECK-NEXT:    adds.w.zx %s0, %s1, (0)140; CHECK-NEXT:    b.l.t (, %s10)41  %3 = fcmp one double %0, %142  ret i1 %343}44 45define zeroext i1 @setccogt(double, double) {46; CHECK-LABEL: setccogt:47; CHECK:       # %bb.0:48; CHECK-NEXT:    fcmp.d %s0, %s0, %s149; CHECK-NEXT:    or %s1, 0, (0)150; CHECK-NEXT:    cmov.d.gt %s1, (63)0, %s051; CHECK-NEXT:    adds.w.zx %s0, %s1, (0)152; CHECK-NEXT:    b.l.t (, %s10)53  %3 = fcmp ogt double %0, %154  ret i1 %355}56 57define zeroext i1 @setccoge(double, double) {58; CHECK-LABEL: setccoge:59; CHECK:       # %bb.0:60; CHECK-NEXT:    fcmp.d %s0, %s0, %s161; CHECK-NEXT:    or %s1, 0, (0)162; CHECK-NEXT:    cmov.d.ge %s1, (63)0, %s063; CHECK-NEXT:    adds.w.zx %s0, %s1, (0)164; CHECK-NEXT:    b.l.t (, %s10)65  %3 = fcmp oge double %0, %166  ret i1 %367}68 69define zeroext i1 @setccolt(double, double) {70; CHECK-LABEL: setccolt:71; CHECK:       # %bb.0:72; CHECK-NEXT:    fcmp.d %s0, %s0, %s173; CHECK-NEXT:    or %s1, 0, (0)174; CHECK-NEXT:    cmov.d.lt %s1, (63)0, %s075; CHECK-NEXT:    adds.w.zx %s0, %s1, (0)176; CHECK-NEXT:    b.l.t (, %s10)77  %3 = fcmp olt double %0, %178  ret i1 %379}80 81define zeroext i1 @setccole(double, double) {82; CHECK-LABEL: setccole:83; CHECK:       # %bb.0:84; CHECK-NEXT:    fcmp.d %s0, %s0, %s185; CHECK-NEXT:    or %s1, 0, (0)186; CHECK-NEXT:    cmov.d.le %s1, (63)0, %s087; CHECK-NEXT:    adds.w.zx %s0, %s1, (0)188; CHECK-NEXT:    b.l.t (, %s10)89  %3 = fcmp ole double %0, %190  ret i1 %391}92 93define zeroext i1 @setccord(double, double) {94; CHECK-LABEL: setccord:95; CHECK:       # %bb.0:96; CHECK-NEXT:    fcmp.d %s0, %s0, %s197; CHECK-NEXT:    or %s1, 0, (0)198; CHECK-NEXT:    cmov.d.num %s1, (63)0, %s099; CHECK-NEXT:    adds.w.zx %s0, %s1, (0)1100; CHECK-NEXT:    b.l.t (, %s10)101  %3 = fcmp ord double %0, %1102  ret i1 %3103}104 105define zeroext i1 @setccuno(double, double) {106; CHECK-LABEL: setccuno:107; CHECK:       # %bb.0:108; CHECK-NEXT:    fcmp.d %s0, %s0, %s1109; CHECK-NEXT:    or %s1, 0, (0)1110; CHECK-NEXT:    cmov.d.nan %s1, (63)0, %s0111; CHECK-NEXT:    adds.w.zx %s0, %s1, (0)1112; CHECK-NEXT:    b.l.t (, %s10)113  %3 = fcmp uno double %0, %1114  ret i1 %3115}116 117define zeroext i1 @setccueq(double, double) {118; CHECK-LABEL: setccueq:119; CHECK:       # %bb.0:120; CHECK-NEXT:    fcmp.d %s0, %s0, %s1121; CHECK-NEXT:    or %s1, 0, (0)1122; CHECK-NEXT:    cmov.d.eqnan %s1, (63)0, %s0123; CHECK-NEXT:    adds.w.zx %s0, %s1, (0)1124; CHECK-NEXT:    b.l.t (, %s10)125  %3 = fcmp ueq double %0, %1126  ret i1 %3127}128 129define zeroext i1 @setccune(double, double) {130; CHECK-LABEL: setccune:131; CHECK:       # %bb.0:132; CHECK-NEXT:    fcmp.d %s0, %s0, %s1133; CHECK-NEXT:    or %s1, 0, (0)1134; CHECK-NEXT:    cmov.d.nenan %s1, (63)0, %s0135; CHECK-NEXT:    adds.w.zx %s0, %s1, (0)1136; CHECK-NEXT:    b.l.t (, %s10)137  %3 = fcmp une double %0, %1138  ret i1 %3139}140 141define zeroext i1 @setccugt(double, double) {142; CHECK-LABEL: setccugt:143; CHECK:       # %bb.0:144; CHECK-NEXT:    fcmp.d %s0, %s0, %s1145; CHECK-NEXT:    or %s1, 0, (0)1146; CHECK-NEXT:    cmov.d.gtnan %s1, (63)0, %s0147; CHECK-NEXT:    adds.w.zx %s0, %s1, (0)1148; CHECK-NEXT:    b.l.t (, %s10)149  %3 = fcmp ugt double %0, %1150  ret i1 %3151}152 153define zeroext i1 @setccuge(double, double) {154; CHECK-LABEL: setccuge:155; CHECK:       # %bb.0:156; CHECK-NEXT:    fcmp.d %s0, %s0, %s1157; CHECK-NEXT:    or %s1, 0, (0)1158; CHECK-NEXT:    cmov.d.genan %s1, (63)0, %s0159; CHECK-NEXT:    adds.w.zx %s0, %s1, (0)1160; CHECK-NEXT:    b.l.t (, %s10)161  %3 = fcmp uge double %0, %1162  ret i1 %3163}164 165define zeroext i1 @setccult(double, double) {166; CHECK-LABEL: setccult:167; CHECK:       # %bb.0:168; CHECK-NEXT:    fcmp.d %s0, %s0, %s1169; CHECK-NEXT:    or %s1, 0, (0)1170; CHECK-NEXT:    cmov.d.ltnan %s1, (63)0, %s0171; CHECK-NEXT:    adds.w.zx %s0, %s1, (0)1172; CHECK-NEXT:    b.l.t (, %s10)173  %3 = fcmp ult double %0, %1174  ret i1 %3175}176 177define zeroext i1 @setccule(double, double) {178; CHECK-LABEL: setccule:179; CHECK:       # %bb.0:180; CHECK-NEXT:    fcmp.d %s0, %s0, %s1181; CHECK-NEXT:    or %s1, 0, (0)1182; CHECK-NEXT:    cmov.d.lenan %s1, (63)0, %s0183; CHECK-NEXT:    adds.w.zx %s0, %s1, (0)1184; CHECK-NEXT:    b.l.t (, %s10)185  %3 = fcmp ule double %0, %1186  ret i1 %3187}188