120 lines · plain
1; RUN: llc < %s -mtriple=bpf -mcpu=v1 | FileCheck %s2 3; Function Attrs: nounwind readnone uwtable4define signext i8 @foo_cmp1(i8 signext %a, i8 signext %b) #0 {5 %1 = icmp sgt i8 %a, %b6 br i1 %1, label %2, label %47 8; <label>:2 ; preds = %09 %3 = mul i8 %b, %a10 br label %611 12; <label>:4 ; preds = %013 %5 = shl i8 %b, 314 br label %615 16; <label>:6 ; preds = %4, %217 %.0 = phi i8 [ %3, %2 ], [ %5, %4 ]18 ret i8 %.019; CHECK-LABEL:foo_cmp1:20; CHECK: if r0 s>= r121}22 23; Function Attrs: nounwind readnone uwtable24define signext i8 @foo_cmp2(i8 signext %a, i8 signext %b) #0 {25 %1 = icmp slt i8 %a, %b26 br i1 %1, label %4, label %227 28; <label>:2 ; preds = %029 %3 = mul i8 %b, %a30 br label %631 32; <label>:4 ; preds = %033 %5 = shl i8 %b, 334 br label %635 36; <label>:6 ; preds = %4, %237 %.0 = phi i8 [ %3, %2 ], [ %5, %4 ]38 ret i8 %.039; CHECK-LABEL:foo_cmp2:40; CHECK: if r0 s> r141}42 43; Function Attrs: nounwind readnone uwtable44define signext i8 @foo_cmp3(i8 signext %a, i8 signext %b) #0 {45 %1 = icmp slt i8 %a, %b46 br i1 %1, label %2, label %447 48; <label>:2 ; preds = %049 %3 = mul i8 %b, %a50 br label %651 52; <label>:4 ; preds = %053 %5 = shl i8 %b, 354 br label %655 56; <label>:6 ; preds = %4, %257 %.0 = phi i8 [ %3, %2 ], [ %5, %4 ]58 ret i8 %.059; CHECK-LABEL:foo_cmp3:60; CHECK: if r1 s>= r061}62 63; Function Attrs: nounwind readnone uwtable64define signext i8 @foo_cmp4(i8 signext %a, i8 signext %b) #0 {65 %1 = icmp sgt i8 %a, %b66 br i1 %1, label %4, label %267 68; <label>:2 ; preds = %069 %3 = mul i8 %b, %a70 br label %671 72; <label>:4 ; preds = %073 %5 = shl i8 %b, 374 br label %675 76; <label>:6 ; preds = %4, %277 %.0 = phi i8 [ %3, %2 ], [ %5, %4 ]78 ret i8 %.079; CHECK-LABEL:foo_cmp4:80; CHECK: if r1 s> r081}82 83; Function Attrs: nounwind readnone uwtable84define signext i8 @min(i8 signext %a, i8 signext %b) #0 {85 %1 = icmp slt i8 %a, %b86 %a.b = select i1 %1, i8 %a, i8 %b87 ret i8 %a.b88; CHECK-LABEL:min:89; CHECK: r0 = r190; CHECK: if r2 s> r091; CHECK: r0 = r292}93 94; Function Attrs: nounwind readnone uwtable95define zeroext i8 @minu(i8 zeroext %a, i8 zeroext %b) #0 {96 %1 = icmp ult i8 %a, 10097 %a.b = select i1 %1, i8 %a, i8 %b98 ret i8 %a.b99; CHECK-LABEL:minu:100; CHECK: if r{{[0-9]+}} {{<|>}} r{{[0-9]+}}101}102 103; Function Attrs: nounwind readnone uwtable104define signext i8 @max(i8 signext %a, i8 signext %b) #0 {105 %1 = icmp sgt i8 %a, %b106 %a.b = select i1 %1, i8 %a, i8 %b107 ret i8 %a.b108; CHECK-LABEL:max:109; CHECK: if r0 s> r2110}111 112; Function Attrs: nounwind readnone uwtable113define signext i8 @meq(i8 signext %a, i8 signext %b, i8 signext %c) #0 {114 %1 = icmp eq i8 %a, %b115 %c.a = select i1 %1, i8 %c, i8 %a116 ret i8 %c.a117; CHECK-LABEL:meq:118; CHECK: if r1 == r2119}120