brintos

brintos / llvm-project-archived public Read only

0
0
Text · 5.3 KiB · 0a42927 Raw
190 lines · plain
1; RUN: llc < %s -mtriple=ve-unknown-unknown | FileCheck %s2 3define double @selectccaf(double, double, double, double) {4; CHECK-LABEL: selectccaf:5; CHECK:       # %bb.0:6; CHECK-NEXT:    or %s0, 0, %s37; CHECK-NEXT:    b.l.t (, %s10)8  %5 = fcmp false double %0, %19  %6 = select i1 %5, double %2, double %310  ret double %611}12 13define double @selectccat(double, double, double, double) {14; CHECK-LABEL: selectccat:15; CHECK:       # %bb.0:16; CHECK-NEXT:    or %s0, 0, %s217; CHECK-NEXT:    b.l.t (, %s10)18  %5 = fcmp true double %0, %119  %6 = select i1 %5, double %2, double %320  ret double %621}22 23define double @selectccoeq(double, double, double, double) {24; CHECK-LABEL: selectccoeq:25; CHECK:       # %bb.0:26; CHECK-NEXT:    fcmp.d %s0, %s0, %s127; CHECK-NEXT:    cmov.d.eq %s3, %s2, %s028; CHECK-NEXT:    or %s0, 0, %s329; CHECK-NEXT:    b.l.t (, %s10)30  %5 = fcmp oeq double %0, %131  %6 = select i1 %5, double %2, double %332  ret double %633}34 35define double @selectccone(double, double, double, double) {36; CHECK-LABEL: selectccone:37; CHECK:       # %bb.0:38; CHECK-NEXT:    fcmp.d %s0, %s0, %s139; CHECK-NEXT:    cmov.d.ne %s3, %s2, %s040; CHECK-NEXT:    or %s0, 0, %s341; CHECK-NEXT:    b.l.t (, %s10)42  %5 = fcmp one double %0, %143  %6 = select i1 %5, double %2, double %344  ret double %645}46 47define double @selectccogt(double, double, double, double) {48; CHECK-LABEL: selectccogt:49; CHECK:       # %bb.0:50; CHECK-NEXT:    fcmp.d %s0, %s0, %s151; CHECK-NEXT:    cmov.d.gt %s3, %s2, %s052; CHECK-NEXT:    or %s0, 0, %s353; CHECK-NEXT:    b.l.t (, %s10)54  %5 = fcmp ogt double %0, %155  %6 = select i1 %5, double %2, double %356  ret double %657}58 59define double @selectccoge(double, double, double, double) {60; CHECK-LABEL: selectccoge:61; CHECK:       # %bb.0:62; CHECK-NEXT:    fcmp.d %s0, %s0, %s163; CHECK-NEXT:    cmov.d.ge %s3, %s2, %s064; CHECK-NEXT:    or %s0, 0, %s365; CHECK-NEXT:    b.l.t (, %s10)66  %5 = fcmp oge double %0, %167  %6 = select i1 %5, double %2, double %368  ret double %669}70 71define double @selectccolt(double, double, double, double) {72; CHECK-LABEL: selectccolt:73; CHECK:       # %bb.0:74; CHECK-NEXT:    fcmp.d %s0, %s0, %s175; CHECK-NEXT:    cmov.d.lt %s3, %s2, %s076; CHECK-NEXT:    or %s0, 0, %s377; CHECK-NEXT:    b.l.t (, %s10)78  %5 = fcmp olt double %0, %179  %6 = select i1 %5, double %2, double %380  ret double %681}82 83define double @selectccole(double, double, double, double) {84; CHECK-LABEL: selectccole:85; CHECK:       # %bb.0:86; CHECK-NEXT:    fcmp.d %s0, %s0, %s187; CHECK-NEXT:    cmov.d.le %s3, %s2, %s088; CHECK-NEXT:    or %s0, 0, %s389; CHECK-NEXT:    b.l.t (, %s10)90  %5 = fcmp ole double %0, %191  %6 = select i1 %5, double %2, double %392  ret double %693}94 95define double @selectccord(double, double, double, double) {96; CHECK-LABEL: selectccord:97; CHECK:       # %bb.0:98; CHECK-NEXT:    fcmp.d %s0, %s0, %s199; CHECK-NEXT:    cmov.d.num %s3, %s2, %s0100; CHECK-NEXT:    or %s0, 0, %s3101; CHECK-NEXT:    b.l.t (, %s10)102  %5 = fcmp ord double %0, %1103  %6 = select i1 %5, double %2, double %3104  ret double %6105}106 107define double @selectccuno(double, double, double, double) {108; CHECK-LABEL: selectccuno:109; CHECK:       # %bb.0:110; CHECK-NEXT:    fcmp.d %s0, %s0, %s1111; CHECK-NEXT:    cmov.d.nan %s3, %s2, %s0112; CHECK-NEXT:    or %s0, 0, %s3113; CHECK-NEXT:    b.l.t (, %s10)114  %5 = fcmp uno double %0, %1115  %6 = select i1 %5, double %2, double %3116  ret double %6117}118 119define double @selectccueq(double, double, double, double) {120; CHECK-LABEL: selectccueq:121; CHECK:       # %bb.0:122; CHECK-NEXT:    fcmp.d %s0, %s0, %s1123; CHECK-NEXT:    cmov.d.eqnan %s3, %s2, %s0124; CHECK-NEXT:    or %s0, 0, %s3125; CHECK-NEXT:    b.l.t (, %s10)126  %5 = fcmp ueq double %0, %1127  %6 = select i1 %5, double %2, double %3128  ret double %6129}130 131define double @selectccune(double, double, double, double) {132; CHECK-LABEL: selectccune:133; CHECK:       # %bb.0:134; CHECK-NEXT:    fcmp.d %s0, %s0, %s1135; CHECK-NEXT:    cmov.d.nenan %s3, %s2, %s0136; CHECK-NEXT:    or %s0, 0, %s3137; CHECK-NEXT:    b.l.t (, %s10)138  %5 = fcmp une double %0, %1139  %6 = select i1 %5, double %2, double %3140  ret double %6141}142 143define double @selectccugt(double, double, double, double) {144; CHECK-LABEL: selectccugt:145; CHECK:       # %bb.0:146; CHECK-NEXT:    fcmp.d %s0, %s0, %s1147; CHECK-NEXT:    cmov.d.gtnan %s3, %s2, %s0148; CHECK-NEXT:    or %s0, 0, %s3149; CHECK-NEXT:    b.l.t (, %s10)150  %5 = fcmp ugt double %0, %1151  %6 = select i1 %5, double %2, double %3152  ret double %6153}154 155define double @selectccuge(double, double, double, double) {156; CHECK-LABEL: selectccuge:157; CHECK:       # %bb.0:158; CHECK-NEXT:    fcmp.d %s0, %s0, %s1159; CHECK-NEXT:    cmov.d.genan %s3, %s2, %s0160; CHECK-NEXT:    or %s0, 0, %s3161; CHECK-NEXT:    b.l.t (, %s10)162  %5 = fcmp uge double %0, %1163  %6 = select i1 %5, double %2, double %3164  ret double %6165}166 167define double @selectccult(double, double, double, double) {168; CHECK-LABEL: selectccult:169; CHECK:       # %bb.0:170; CHECK-NEXT:    fcmp.d %s0, %s0, %s1171; CHECK-NEXT:    cmov.d.ltnan %s3, %s2, %s0172; CHECK-NEXT:    or %s0, 0, %s3173; CHECK-NEXT:    b.l.t (, %s10)174  %5 = fcmp ult double %0, %1175  %6 = select i1 %5, double %2, double %3176  ret double %6177}178 179define double @selectccule(double, double, double, double) {180; CHECK-LABEL: selectccule:181; CHECK:       # %bb.0:182; CHECK-NEXT:    fcmp.d %s0, %s0, %s1183; CHECK-NEXT:    cmov.d.lenan %s3, %s2, %s0184; CHECK-NEXT:    or %s0, 0, %s3185; CHECK-NEXT:    b.l.t (, %s10)186  %5 = fcmp ule double %0, %1187  %6 = select i1 %5, double %2, double %3188  ret double %6189}190