brintos

brintos / llvm-project-archived public Read only

0
0
Text · 4.4 KiB · 3ab1058 Raw
170 lines · plain
1; RUN: llc < %s -mtriple=ve-unknown-unknown | FileCheck %s2 3define i32 @selectcceq(i32, i32, i32, i32) {4; CHECK-LABEL: selectcceq:5; CHECK:       # %bb.0:6; CHECK-NEXT:    cmpu.w %s0, %s0, %s17; CHECK-NEXT:    cmov.w.eq %s3, %s2, %s08; CHECK-NEXT:    or %s0, 0, %s39; CHECK-NEXT:    b.l.t (, %s10)10  %5 = icmp eq i32 %0, %111  %6 = select i1 %5, i32 %2, i32 %312  ret i32 %613}14 15define i32 @selectccne(i32, i32, i32, i32) {16; CHECK-LABEL: selectccne:17; CHECK:       # %bb.0:18; CHECK-NEXT:    cmpu.w %s0, %s0, %s119; CHECK-NEXT:    cmov.w.ne %s3, %s2, %s020; CHECK-NEXT:    or %s0, 0, %s321; CHECK-NEXT:    b.l.t (, %s10)22  %5 = icmp ne i32 %0, %123  %6 = select i1 %5, i32 %2, i32 %324  ret i32 %625}26 27define i32 @selectccsgt(i32, i32, i32, i32) {28; CHECK-LABEL: selectccsgt:29; CHECK:       # %bb.0:30; CHECK-NEXT:    cmps.w.zx %s0, %s0, %s131; CHECK-NEXT:    cmov.w.gt %s3, %s2, %s032; CHECK-NEXT:    or %s0, 0, %s333; CHECK-NEXT:    b.l.t (, %s10)34  %5 = icmp sgt i32 %0, %135  %6 = select i1 %5, i32 %2, i32 %336  ret i32 %637}38 39define i32 @selectccsge(i32, i32, i32, i32) {40; CHECK-LABEL: selectccsge:41; CHECK:       # %bb.0:42; CHECK-NEXT:    cmps.w.zx %s0, %s0, %s143; CHECK-NEXT:    cmov.w.ge %s3, %s2, %s044; CHECK-NEXT:    or %s0, 0, %s345; CHECK-NEXT:    b.l.t (, %s10)46  %5 = icmp sge i32 %0, %147  %6 = select i1 %5, i32 %2, i32 %348  ret i32 %649}50 51define i32 @selectccslt(i32, i32, i32, i32) {52; CHECK-LABEL: selectccslt:53; CHECK:       # %bb.0:54; CHECK-NEXT:    cmps.w.zx %s0, %s0, %s155; CHECK-NEXT:    cmov.w.lt %s3, %s2, %s056; CHECK-NEXT:    or %s0, 0, %s357; CHECK-NEXT:    b.l.t (, %s10)58  %5 = icmp slt i32 %0, %159  %6 = select i1 %5, i32 %2, i32 %360  ret i32 %661}62 63define i32 @selectccsle(i32, i32, i32, i32) {64; CHECK-LABEL: selectccsle:65; CHECK:       # %bb.0:66; CHECK-NEXT:    cmps.w.zx %s0, %s0, %s167; CHECK-NEXT:    cmov.w.le %s3, %s2, %s068; CHECK-NEXT:    or %s0, 0, %s369; CHECK-NEXT:    b.l.t (, %s10)70  %5 = icmp sle i32 %0, %171  %6 = select i1 %5, i32 %2, i32 %372  ret i32 %673}74 75define i32 @selectccugt(i32, i32, i32, i32) {76; CHECK-LABEL: selectccugt:77; CHECK:       # %bb.0:78; CHECK-NEXT:    cmpu.w %s0, %s0, %s179; CHECK-NEXT:    cmov.w.gt %s3, %s2, %s080; CHECK-NEXT:    or %s0, 0, %s381; CHECK-NEXT:    b.l.t (, %s10)82  %5 = icmp ugt i32 %0, %183  %6 = select i1 %5, i32 %2, i32 %384  ret i32 %685}86 87define i32 @selectccuge(i32, i32, i32, i32) {88; CHECK-LABEL: selectccuge:89; CHECK:       # %bb.0:90; CHECK-NEXT:    cmpu.w %s0, %s0, %s191; CHECK-NEXT:    cmov.w.ge %s3, %s2, %s092; CHECK-NEXT:    or %s0, 0, %s393; CHECK-NEXT:    b.l.t (, %s10)94  %5 = icmp uge i32 %0, %195  %6 = select i1 %5, i32 %2, i32 %396  ret i32 %697}98 99define i32 @selectccult(i32, i32, i32, i32) {100; CHECK-LABEL: selectccult:101; CHECK:       # %bb.0:102; CHECK-NEXT:    cmpu.w %s0, %s0, %s1103; CHECK-NEXT:    cmov.w.lt %s3, %s2, %s0104; CHECK-NEXT:    or %s0, 0, %s3105; CHECK-NEXT:    b.l.t (, %s10)106  %5 = icmp ult i32 %0, %1107  %6 = select i1 %5, i32 %2, i32 %3108  ret i32 %6109}110 111define i32 @selectccule(i32, i32, i32, i32) {112; CHECK-LABEL: selectccule:113; CHECK:       # %bb.0:114; CHECK-NEXT:    cmpu.w %s0, %s0, %s1115; CHECK-NEXT:    cmov.w.le %s3, %s2, %s0116; CHECK-NEXT:    or %s0, 0, %s3117; CHECK-NEXT:    b.l.t (, %s10)118  %5 = icmp ule i32 %0, %1119  %6 = select i1 %5, i32 %2, i32 %3120  ret i32 %6121}122 123define i32 @selectccugt2(i32, i32, i32, i32) {124; CHECK-LABEL: selectccugt2:125; CHECK:       # %bb.0:126; CHECK-NEXT:    cmpu.w %s0, %s0, %s1127; CHECK-NEXT:    cmov.w.gt %s3, %s2, %s0128; CHECK-NEXT:    or %s0, 0, %s3129; CHECK-NEXT:    b.l.t (, %s10)130  %5 = icmp ugt i32 %0, %1131  %6 = select i1 %5, i32 %2, i32 %3132  ret i32 %6133}134 135define i32 @selectccuge2(i32, i32, i32, i32) {136; CHECK-LABEL: selectccuge2:137; CHECK:       # %bb.0:138; CHECK-NEXT:    cmpu.w %s0, %s0, %s1139; CHECK-NEXT:    cmov.w.ge %s3, %s2, %s0140; CHECK-NEXT:    or %s0, 0, %s3141; CHECK-NEXT:    b.l.t (, %s10)142  %5 = icmp uge i32 %0, %1143  %6 = select i1 %5, i32 %2, i32 %3144  ret i32 %6145}146 147define i32 @selectccult2(i32, i32, i32, i32) {148; CHECK-LABEL: selectccult2:149; CHECK:       # %bb.0:150; CHECK-NEXT:    cmpu.w %s0, %s0, %s1151; CHECK-NEXT:    cmov.w.lt %s3, %s2, %s0152; CHECK-NEXT:    or %s0, 0, %s3153; CHECK-NEXT:    b.l.t (, %s10)154  %5 = icmp ult i32 %0, %1155  %6 = select i1 %5, i32 %2, i32 %3156  ret i32 %6157}158 159define i32 @selectccule2(i32, i32, i32, i32) {160; CHECK-LABEL: selectccule2:161; CHECK:       # %bb.0:162; CHECK-NEXT:    cmpu.w %s0, %s0, %s1163; CHECK-NEXT:    cmov.w.le %s3, %s2, %s0164; CHECK-NEXT:    or %s0, 0, %s3165; CHECK-NEXT:    b.l.t (, %s10)166  %5 = icmp ule i32 %0, %1167  %6 = select i1 %5, i32 %2, i32 %3168  ret i32 %6169}170