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