178 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, 0.09 %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, 0.019 %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: cmov.d.eq %s3, %s2, %s027; CHECK-NEXT: or %s0, 0, %s328; CHECK-NEXT: b.l.t (, %s10)29 %5 = fcmp oeq double %0, 0.030 %6 = select i1 %5, double %2, double %331 ret double %632}33 34define double @selectccone(double, double, double, double) {35; CHECK-LABEL: selectccone:36; CHECK: # %bb.0:37; CHECK-NEXT: cmov.d.ne %s3, %s2, %s038; CHECK-NEXT: or %s0, 0, %s339; CHECK-NEXT: b.l.t (, %s10)40 %5 = fcmp one double %0, 0.041 %6 = select i1 %5, double %2, double %342 ret double %643}44 45define double @selectccogt(double, double, double, double) {46; CHECK-LABEL: selectccogt:47; CHECK: # %bb.0:48; CHECK-NEXT: cmov.d.gt %s3, %s2, %s049; CHECK-NEXT: or %s0, 0, %s350; CHECK-NEXT: b.l.t (, %s10)51 %5 = fcmp ogt double %0, 0.052 %6 = select i1 %5, double %2, double %353 ret double %654}55 56define double @selectccoge(double, double, double, double) {57; CHECK-LABEL: selectccoge:58; CHECK: # %bb.0:59; CHECK-NEXT: cmov.d.ge %s3, %s2, %s060; CHECK-NEXT: or %s0, 0, %s361; CHECK-NEXT: b.l.t (, %s10)62 %5 = fcmp oge double %0, 0.063 %6 = select i1 %5, double %2, double %364 ret double %665}66 67define double @selectccolt(double, double, double, double) {68; CHECK-LABEL: selectccolt:69; CHECK: # %bb.0:70; CHECK-NEXT: cmov.d.lt %s3, %s2, %s071; CHECK-NEXT: or %s0, 0, %s372; CHECK-NEXT: b.l.t (, %s10)73 %5 = fcmp olt double %0, 0.074 %6 = select i1 %5, double %2, double %375 ret double %676}77 78define double @selectccole(double, double, double, double) {79; CHECK-LABEL: selectccole:80; CHECK: # %bb.0:81; CHECK-NEXT: cmov.d.le %s3, %s2, %s082; CHECK-NEXT: or %s0, 0, %s383; CHECK-NEXT: b.l.t (, %s10)84 %5 = fcmp ole double %0, 0.085 %6 = select i1 %5, double %2, double %386 ret double %687}88 89define double @selectccord(double, double, double, double) {90; CHECK-LABEL: selectccord:91; CHECK: # %bb.0:92; CHECK-NEXT: fcmp.d %s0, %s0, %s093; CHECK-NEXT: cmov.d.num %s3, %s2, %s094; CHECK-NEXT: or %s0, 0, %s395; CHECK-NEXT: b.l.t (, %s10)96 %5 = fcmp ord double %0, 0.097 %6 = select i1 %5, double %2, double %398 ret double %699}100 101define double @selectccuno(double, double, double, double) {102; CHECK-LABEL: selectccuno:103; CHECK: # %bb.0:104; CHECK-NEXT: fcmp.d %s0, %s0, %s0105; CHECK-NEXT: cmov.d.nan %s3, %s2, %s0106; CHECK-NEXT: or %s0, 0, %s3107; CHECK-NEXT: b.l.t (, %s10)108 %5 = fcmp uno double %0, 0.0109 %6 = select i1 %5, double %2, double %3110 ret double %6111}112 113define double @selectccueq(double, double, double, double) {114; CHECK-LABEL: selectccueq:115; CHECK: # %bb.0:116; CHECK-NEXT: cmov.d.eqnan %s3, %s2, %s0117; CHECK-NEXT: or %s0, 0, %s3118; CHECK-NEXT: b.l.t (, %s10)119 %5 = fcmp ueq double %0, 0.0120 %6 = select i1 %5, double %2, double %3121 ret double %6122}123 124define double @selectccune(double, double, double, double) {125; CHECK-LABEL: selectccune:126; CHECK: # %bb.0:127; CHECK-NEXT: cmov.d.nenan %s3, %s2, %s0128; CHECK-NEXT: or %s0, 0, %s3129; CHECK-NEXT: b.l.t (, %s10)130 %5 = fcmp une double %0, 0.0131 %6 = select i1 %5, double %2, double %3132 ret double %6133}134 135define double @selectccugt(double, double, double, double) {136; CHECK-LABEL: selectccugt:137; CHECK: # %bb.0:138; CHECK-NEXT: cmov.d.gtnan %s3, %s2, %s0139; CHECK-NEXT: or %s0, 0, %s3140; CHECK-NEXT: b.l.t (, %s10)141 %5 = fcmp ugt double %0, 0.0142 %6 = select i1 %5, double %2, double %3143 ret double %6144}145 146define double @selectccuge(double, double, double, double) {147; CHECK-LABEL: selectccuge:148; CHECK: # %bb.0:149; CHECK-NEXT: cmov.d.genan %s3, %s2, %s0150; CHECK-NEXT: or %s0, 0, %s3151; CHECK-NEXT: b.l.t (, %s10)152 %5 = fcmp uge double %0, 0.0153 %6 = select i1 %5, double %2, double %3154 ret double %6155}156 157define double @selectccult(double, double, double, double) {158; CHECK-LABEL: selectccult:159; CHECK: # %bb.0:160; CHECK-NEXT: cmov.d.ltnan %s3, %s2, %s0161; CHECK-NEXT: or %s0, 0, %s3162; CHECK-NEXT: b.l.t (, %s10)163 %5 = fcmp ult double %0, 0.0164 %6 = select i1 %5, double %2, double %3165 ret double %6166}167 168define double @selectccule(double, double, double, double) {169; CHECK-LABEL: selectccule:170; CHECK: # %bb.0:171; CHECK-NEXT: cmov.d.lenan %s3, %s2, %s0172; CHECK-NEXT: or %s0, 0, %s3173; CHECK-NEXT: b.l.t (, %s10)174 %5 = fcmp ule double %0, 0.0175 %6 = select i1 %5, double %2, double %3176 ret double %6177}178