brintos

brintos / llvm-project-archived public Read only

0
0
Text · 4.4 KiB · 69c247e 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, 12, %s07; 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, 1211  %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, 12, %s019; 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, 1223  %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, 12, %s031; CHECK-NEXT:    cmov.w.lt %s3, %s2, %s032; CHECK-NEXT:    or %s0, 0, %s333; CHECK-NEXT:    b.l.t (, %s10)34  %5 = icmp sgt i32 %0, 1235  %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, 11, %s043; CHECK-NEXT:    cmov.w.lt %s3, %s2, %s044; CHECK-NEXT:    or %s0, 0, %s345; CHECK-NEXT:    b.l.t (, %s10)46  %5 = icmp sge i32 %0, 1247  %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, 12, %s055; CHECK-NEXT:    cmov.w.gt %s3, %s2, %s056; CHECK-NEXT:    or %s0, 0, %s357; CHECK-NEXT:    b.l.t (, %s10)58  %5 = icmp slt i32 %0, 1259  %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, 13, %s067; CHECK-NEXT:    cmov.w.gt %s3, %s2, %s068; CHECK-NEXT:    or %s0, 0, %s369; CHECK-NEXT:    b.l.t (, %s10)70  %5 = icmp sle i32 %0, 1271  %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, 12, %s079; CHECK-NEXT:    cmov.w.lt %s3, %s2, %s080; CHECK-NEXT:    or %s0, 0, %s381; CHECK-NEXT:    b.l.t (, %s10)82  %5 = icmp ugt i32 %0, 1283  %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, 11, %s091; CHECK-NEXT:    cmov.w.lt %s3, %s2, %s092; CHECK-NEXT:    or %s0, 0, %s393; CHECK-NEXT:    b.l.t (, %s10)94  %5 = icmp uge i32 %0, 1295  %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, 12, %s0103; CHECK-NEXT:    cmov.w.gt %s3, %s2, %s0104; CHECK-NEXT:    or %s0, 0, %s3105; CHECK-NEXT:    b.l.t (, %s10)106  %5 = icmp ult i32 %0, 12107  %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, 13, %s0115; CHECK-NEXT:    cmov.w.gt %s3, %s2, %s0116; CHECK-NEXT:    or %s0, 0, %s3117; CHECK-NEXT:    b.l.t (, %s10)118  %5 = icmp ule i32 %0, 12119  %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, 12, %s0127; CHECK-NEXT:    cmov.w.lt %s3, %s2, %s0128; CHECK-NEXT:    or %s0, 0, %s3129; CHECK-NEXT:    b.l.t (, %s10)130  %5 = icmp ugt i32 %0, 12131  %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, 11, %s0139; CHECK-NEXT:    cmov.w.lt %s3, %s2, %s0140; CHECK-NEXT:    or %s0, 0, %s3141; CHECK-NEXT:    b.l.t (, %s10)142  %5 = icmp uge i32 %0, 12143  %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, 12, %s0151; CHECK-NEXT:    cmov.w.gt %s3, %s2, %s0152; CHECK-NEXT:    or %s0, 0, %s3153; CHECK-NEXT:    b.l.t (, %s10)154  %5 = icmp ult i32 %0, 12155  %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, 13, %s0163; CHECK-NEXT:    cmov.w.gt %s3, %s2, %s0164; CHECK-NEXT:    or %s0, 0, %s3165; CHECK-NEXT:    b.l.t (, %s10)166  %5 = icmp ule i32 %0, 12167  %6 = select i1 %5, i32 %2, i32 %3168  ret i32 %6169}170