122 lines · plain
1; RUN: llc < %s -mtriple=ve-unknown-unknown | FileCheck %s2 3define zeroext i1 @setcceq(i32, i32) {4; CHECK-LABEL: setcceq:5; CHECK: # %bb.0:6; CHECK-NEXT: cmps.w.sx %s0, %s0, %s17; CHECK-NEXT: or %s1, 0, (0)18; CHECK-NEXT: cmov.w.eq %s1, (63)0, %s09; CHECK-NEXT: adds.w.zx %s0, %s1, (0)110; CHECK-NEXT: b.l.t (, %s10)11 %3 = icmp eq i32 %0, %112 ret i1 %313}14 15define zeroext i1 @setccne(i32, i32) {16; CHECK-LABEL: setccne:17; CHECK: # %bb.0:18; CHECK-NEXT: cmps.w.sx %s0, %s0, %s119; CHECK-NEXT: or %s1, 0, (0)120; CHECK-NEXT: cmov.w.ne %s1, (63)0, %s021; CHECK-NEXT: adds.w.zx %s0, %s1, (0)122; CHECK-NEXT: b.l.t (, %s10)23 %3 = icmp ne i32 %0, %124 ret i1 %325}26 27define zeroext i1 @setccugt(i32, i32) {28; CHECK-LABEL: setccugt:29; CHECK: # %bb.0:30; CHECK-NEXT: cmpu.w %s0, %s0, %s131; CHECK-NEXT: or %s1, 0, (0)132; CHECK-NEXT: cmov.w.gt %s1, (63)0, %s033; CHECK-NEXT: adds.w.zx %s0, %s1, (0)134; CHECK-NEXT: b.l.t (, %s10)35 %3 = icmp ugt i32 %0, %136 ret i1 %337}38 39define zeroext i1 @setccuge(i32, i32) {40; CHECK-LABEL: setccuge:41; CHECK: # %bb.0:42; CHECK-NEXT: cmpu.w %s0, %s0, %s143; CHECK-NEXT: or %s1, 0, (0)144; CHECK-NEXT: cmov.w.ge %s1, (63)0, %s045; CHECK-NEXT: adds.w.zx %s0, %s1, (0)146; CHECK-NEXT: b.l.t (, %s10)47 %3 = icmp uge i32 %0, %148 ret i1 %349}50 51define zeroext i1 @setccult(i32, i32) {52; CHECK-LABEL: setccult:53; CHECK: # %bb.0:54; CHECK-NEXT: cmpu.w %s0, %s0, %s155; CHECK-NEXT: or %s1, 0, (0)156; CHECK-NEXT: cmov.w.lt %s1, (63)0, %s057; CHECK-NEXT: adds.w.zx %s0, %s1, (0)158; CHECK-NEXT: b.l.t (, %s10)59 %3 = icmp ult i32 %0, %160 ret i1 %361}62 63define zeroext i1 @setccule(i32, i32) {64; CHECK-LABEL: setccule:65; CHECK: # %bb.0:66; CHECK-NEXT: cmpu.w %s0, %s0, %s167; CHECK-NEXT: or %s1, 0, (0)168; CHECK-NEXT: cmov.w.le %s1, (63)0, %s069; CHECK-NEXT: adds.w.zx %s0, %s1, (0)170; CHECK-NEXT: b.l.t (, %s10)71 %3 = icmp ule i32 %0, %172 ret i1 %373}74 75define zeroext i1 @setccsgt(i32, i32) {76; CHECK-LABEL: setccsgt:77; CHECK: # %bb.0:78; CHECK-NEXT: cmps.w.sx %s0, %s0, %s179; CHECK-NEXT: or %s1, 0, (0)180; CHECK-NEXT: cmov.w.gt %s1, (63)0, %s081; CHECK-NEXT: adds.w.zx %s0, %s1, (0)182; CHECK-NEXT: b.l.t (, %s10)83 %3 = icmp sgt i32 %0, %184 ret i1 %385}86 87define zeroext i1 @setccsge(i32, i32) {88; CHECK-LABEL: setccsge:89; CHECK: # %bb.0:90; CHECK-NEXT: cmps.w.sx %s0, %s0, %s191; CHECK-NEXT: or %s1, 0, (0)192; CHECK-NEXT: cmov.w.ge %s1, (63)0, %s093; CHECK-NEXT: adds.w.zx %s0, %s1, (0)194; CHECK-NEXT: b.l.t (, %s10)95 %3 = icmp sge i32 %0, %196 ret i1 %397}98 99define zeroext i1 @setccslt(i32, i32) {100; CHECK-LABEL: setccslt:101; CHECK: # %bb.0:102; CHECK-NEXT: cmps.w.sx %s0, %s0, %s1103; CHECK-NEXT: or %s1, 0, (0)1104; CHECK-NEXT: cmov.w.lt %s1, (63)0, %s0105; CHECK-NEXT: adds.w.zx %s0, %s1, (0)1106; CHECK-NEXT: b.l.t (, %s10)107 %3 = icmp slt i32 %0, %1108 ret i1 %3109}110 111define zeroext i1 @setccsle(i32, i32) {112; CHECK-LABEL: setccsle:113; CHECK: # %bb.0:114; CHECK-NEXT: cmps.w.sx %s0, %s0, %s1115; CHECK-NEXT: or %s1, 0, (0)1116; CHECK-NEXT: cmov.w.le %s1, (63)0, %s0117; CHECK-NEXT: adds.w.zx %s0, %s1, (0)1118; CHECK-NEXT: b.l.t (, %s10)119 %3 = icmp sle i32 %0, %1120 ret i1 %3121}122