| ; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 2 |
| ; RUN: llc < %s -mtriple=ve | FileCheck %s |
| |
| ; Function Attrs: nounwind |
| define void @br_cc_i1_var(i1 zeroext %0, i1 zeroext %1) { |
| ; CHECK-LABEL: br_cc_i1_var: |
| ; CHECK: # %bb.0: |
| ; CHECK-NEXT: xor %s0, %s0, %s1 |
| ; CHECK-NEXT: brne.w 0, %s0, .LBB0_2 |
| ; CHECK-NEXT: # %bb.1: |
| ; CHECK-NEXT: #APP |
| ; CHECK-NEXT: nop |
| ; CHECK-NEXT: #NO_APP |
| ; CHECK-NEXT: .LBB0_2: |
| ; CHECK-NEXT: b.l.t (, %s10) |
| %3 = xor i1 %0, %1 |
| br i1 %3, label %5, label %4 |
| |
| 4: ; preds = %2 |
| tail call void asm sideeffect "nop", ""() |
| br label %5 |
| |
| 5: ; preds = %4, %2 |
| ret void |
| } |
| |
| ; Function Attrs: nounwind |
| define void @br_cc_i8_var(i8 signext %0, i8 signext %1) { |
| ; CHECK-LABEL: br_cc_i8_var: |
| ; CHECK: # %bb.0: |
| ; CHECK-NEXT: brne.w %s0, %s1, .LBB1_2 |
| ; CHECK-NEXT: # %bb.1: |
| ; CHECK-NEXT: #APP |
| ; CHECK-NEXT: nop |
| ; CHECK-NEXT: #NO_APP |
| ; CHECK-NEXT: .LBB1_2: |
| ; CHECK-NEXT: b.l.t (, %s10) |
| %3 = icmp eq i8 %0, %1 |
| br i1 %3, label %4, label %5 |
| |
| 4: ; preds = %2 |
| tail call void asm sideeffect "nop", ""() |
| br label %5 |
| |
| 5: ; preds = %4, %2 |
| ret void |
| } |
| |
| ; Function Attrs: nounwind |
| define void @br_cc_u8_var(i8 zeroext %0, i8 zeroext %1) { |
| ; CHECK-LABEL: br_cc_u8_var: |
| ; CHECK: # %bb.0: |
| ; CHECK-NEXT: brne.w %s0, %s1, .LBB2_2 |
| ; CHECK-NEXT: # %bb.1: |
| ; CHECK-NEXT: #APP |
| ; CHECK-NEXT: nop |
| ; CHECK-NEXT: #NO_APP |
| ; CHECK-NEXT: .LBB2_2: |
| ; CHECK-NEXT: b.l.t (, %s10) |
| %3 = icmp eq i8 %0, %1 |
| br i1 %3, label %4, label %5 |
| |
| 4: ; preds = %2 |
| tail call void asm sideeffect "nop", ""() |
| br label %5 |
| |
| 5: ; preds = %4, %2 |
| ret void |
| } |
| |
| ; Function Attrs: nounwind |
| define void @br_cc_i16_var(i16 signext %0, i16 signext %1) { |
| ; CHECK-LABEL: br_cc_i16_var: |
| ; CHECK: # %bb.0: |
| ; CHECK-NEXT: brne.w %s0, %s1, .LBB3_2 |
| ; CHECK-NEXT: # %bb.1: |
| ; CHECK-NEXT: #APP |
| ; CHECK-NEXT: nop |
| ; CHECK-NEXT: #NO_APP |
| ; CHECK-NEXT: .LBB3_2: |
| ; CHECK-NEXT: b.l.t (, %s10) |
| %3 = icmp eq i16 %0, %1 |
| br i1 %3, label %4, label %5 |
| |
| 4: ; preds = %2 |
| tail call void asm sideeffect "nop", ""() |
| br label %5 |
| |
| 5: ; preds = %4, %2 |
| ret void |
| } |
| |
| ; Function Attrs: nounwind |
| define void @br_cc_u16_var(i16 zeroext %0, i16 zeroext %1) { |
| ; CHECK-LABEL: br_cc_u16_var: |
| ; CHECK: # %bb.0: |
| ; CHECK-NEXT: brne.w %s0, %s1, .LBB4_2 |
| ; CHECK-NEXT: # %bb.1: |
| ; CHECK-NEXT: #APP |
| ; CHECK-NEXT: nop |
| ; CHECK-NEXT: #NO_APP |
| ; CHECK-NEXT: .LBB4_2: |
| ; CHECK-NEXT: b.l.t (, %s10) |
| %3 = icmp eq i16 %0, %1 |
| br i1 %3, label %4, label %5 |
| |
| 4: ; preds = %2 |
| tail call void asm sideeffect "nop", ""() |
| br label %5 |
| |
| 5: ; preds = %4, %2 |
| ret void |
| } |
| |
| ; Function Attrs: nounwind |
| define void @br_cc_i32_var(i32 signext %0, i32 signext %1) { |
| ; CHECK-LABEL: br_cc_i32_var: |
| ; CHECK: # %bb.0: |
| ; CHECK-NEXT: brne.w %s0, %s1, .LBB5_2 |
| ; CHECK-NEXT: # %bb.1: |
| ; CHECK-NEXT: #APP |
| ; CHECK-NEXT: nop |
| ; CHECK-NEXT: #NO_APP |
| ; CHECK-NEXT: .LBB5_2: |
| ; CHECK-NEXT: b.l.t (, %s10) |
| %3 = icmp eq i32 %0, %1 |
| br i1 %3, label %4, label %5 |
| |
| 4: ; preds = %2 |
| tail call void asm sideeffect "nop", ""() |
| br label %5 |
| |
| 5: ; preds = %4, %2 |
| ret void |
| } |
| |
| ; Function Attrs: nounwind |
| define void @br_cc_u32_var(i32 zeroext %0, i32 zeroext %1) { |
| ; CHECK-LABEL: br_cc_u32_var: |
| ; CHECK: # %bb.0: |
| ; CHECK-NEXT: brne.w %s0, %s1, .LBB6_2 |
| ; CHECK-NEXT: # %bb.1: |
| ; CHECK-NEXT: #APP |
| ; CHECK-NEXT: nop |
| ; CHECK-NEXT: #NO_APP |
| ; CHECK-NEXT: .LBB6_2: |
| ; CHECK-NEXT: b.l.t (, %s10) |
| %3 = icmp eq i32 %0, %1 |
| br i1 %3, label %4, label %5 |
| |
| 4: ; preds = %2 |
| tail call void asm sideeffect "nop", ""() |
| br label %5 |
| |
| 5: ; preds = %4, %2 |
| ret void |
| } |
| |
| ; Function Attrs: nounwind |
| define void @br_cc_i64_var(i64 %0, i64 %1) { |
| ; CHECK-LABEL: br_cc_i64_var: |
| ; CHECK: # %bb.0: |
| ; CHECK-NEXT: brne.l %s0, %s1, .LBB7_2 |
| ; CHECK-NEXT: # %bb.1: |
| ; CHECK-NEXT: #APP |
| ; CHECK-NEXT: nop |
| ; CHECK-NEXT: #NO_APP |
| ; CHECK-NEXT: .LBB7_2: |
| ; CHECK-NEXT: b.l.t (, %s10) |
| %3 = icmp eq i64 %0, %1 |
| br i1 %3, label %4, label %5 |
| |
| 4: ; preds = %2 |
| tail call void asm sideeffect "nop", ""() |
| br label %5 |
| |
| 5: ; preds = %4, %2 |
| ret void |
| } |
| |
| ; Function Attrs: nounwind |
| define void @br_cc_u64_var(i64 %0, i64 %1) { |
| ; CHECK-LABEL: br_cc_u64_var: |
| ; CHECK: # %bb.0: |
| ; CHECK-NEXT: brne.l %s0, %s1, .LBB8_2 |
| ; CHECK-NEXT: # %bb.1: |
| ; CHECK-NEXT: #APP |
| ; CHECK-NEXT: nop |
| ; CHECK-NEXT: #NO_APP |
| ; CHECK-NEXT: .LBB8_2: |
| ; CHECK-NEXT: b.l.t (, %s10) |
| %3 = icmp eq i64 %0, %1 |
| br i1 %3, label %4, label %5 |
| |
| 4: ; preds = %2 |
| tail call void asm sideeffect "nop", ""() |
| br label %5 |
| |
| 5: ; preds = %4, %2 |
| ret void |
| } |
| |
| ; Function Attrs: nounwind |
| define void @br_cc_i128_var(i128 %0, i128 %1) { |
| ; CHECK-LABEL: br_cc_i128_var: |
| ; CHECK: # %bb.0: |
| ; CHECK-NEXT: xor %s1, %s1, %s3 |
| ; CHECK-NEXT: xor %s0, %s0, %s2 |
| ; CHECK-NEXT: or %s0, %s0, %s1 |
| ; CHECK-NEXT: brne.l 0, %s0, .LBB9_2 |
| ; CHECK-NEXT: # %bb.1: |
| ; CHECK-NEXT: #APP |
| ; CHECK-NEXT: nop |
| ; CHECK-NEXT: #NO_APP |
| ; CHECK-NEXT: .LBB9_2: |
| ; CHECK-NEXT: b.l.t (, %s10) |
| %3 = icmp eq i128 %0, %1 |
| br i1 %3, label %4, label %5 |
| |
| 4: ; preds = %2 |
| tail call void asm sideeffect "nop", ""() |
| br label %5 |
| |
| 5: ; preds = %4, %2 |
| ret void |
| } |
| |
| ; Function Attrs: nounwind |
| define void @br_cc_u128_var(i128 %0, i128 %1) { |
| ; CHECK-LABEL: br_cc_u128_var: |
| ; CHECK: # %bb.0: |
| ; CHECK-NEXT: xor %s1, %s1, %s3 |
| ; CHECK-NEXT: xor %s0, %s0, %s2 |
| ; CHECK-NEXT: or %s0, %s0, %s1 |
| ; CHECK-NEXT: brne.l 0, %s0, .LBB10_2 |
| ; CHECK-NEXT: # %bb.1: |
| ; CHECK-NEXT: #APP |
| ; CHECK-NEXT: nop |
| ; CHECK-NEXT: #NO_APP |
| ; CHECK-NEXT: .LBB10_2: |
| ; CHECK-NEXT: b.l.t (, %s10) |
| %3 = icmp eq i128 %0, %1 |
| br i1 %3, label %4, label %5 |
| |
| 4: ; preds = %2 |
| tail call void asm sideeffect "nop", ""() |
| br label %5 |
| |
| 5: ; preds = %4, %2 |
| ret void |
| } |
| |
| ; Function Attrs: nounwind |
| define void @br_cc_float_var(float %0, float %1) { |
| ; CHECK-LABEL: br_cc_float_var: |
| ; CHECK: # %bb.0: |
| ; CHECK-NEXT: brne.s %s0, %s1, .LBB11_2 |
| ; CHECK-NEXT: # %bb.1: |
| ; CHECK-NEXT: #APP |
| ; CHECK-NEXT: nop |
| ; CHECK-NEXT: #NO_APP |
| ; CHECK-NEXT: .LBB11_2: |
| ; CHECK-NEXT: b.l.t (, %s10) |
| %3 = fcmp fast oeq float %0, %1 |
| br i1 %3, label %4, label %5 |
| |
| 4: ; preds = %2 |
| tail call void asm sideeffect "nop", ""() |
| br label %5 |
| |
| 5: ; preds = %4, %2 |
| ret void |
| } |
| |
| ; Function Attrs: nounwind |
| define void @br_cc_double_var(double %0, double %1) { |
| ; CHECK-LABEL: br_cc_double_var: |
| ; CHECK: # %bb.0: |
| ; CHECK-NEXT: brne.d %s0, %s1, .LBB12_2 |
| ; CHECK-NEXT: # %bb.1: |
| ; CHECK-NEXT: #APP |
| ; CHECK-NEXT: nop |
| ; CHECK-NEXT: #NO_APP |
| ; CHECK-NEXT: .LBB12_2: |
| ; CHECK-NEXT: b.l.t (, %s10) |
| %3 = fcmp fast oeq double %0, %1 |
| br i1 %3, label %4, label %5 |
| |
| 4: ; preds = %2 |
| tail call void asm sideeffect "nop", ""() |
| br label %5 |
| |
| 5: ; preds = %4, %2 |
| ret void |
| } |
| |
| ; Function Attrs: nounwind |
| define void @br_cc_quad_var(fp128 %0, fp128 %1) { |
| ; CHECK-LABEL: br_cc_quad_var: |
| ; CHECK: # %bb.0: |
| ; CHECK-NEXT: fcmp.q %s0, %s2, %s0 |
| ; CHECK-NEXT: brne.d 0, %s0, .LBB13_2 |
| ; CHECK-NEXT: # %bb.1: |
| ; CHECK-NEXT: #APP |
| ; CHECK-NEXT: nop |
| ; CHECK-NEXT: #NO_APP |
| ; CHECK-NEXT: .LBB13_2: |
| ; CHECK-NEXT: b.l.t (, %s10) |
| %3 = fcmp fast oeq fp128 %0, %1 |
| br i1 %3, label %4, label %5 |
| |
| 4: ; preds = %2 |
| tail call void asm sideeffect "nop", ""() |
| br label %5 |
| |
| 5: ; preds = %4, %2 |
| ret void |
| } |
| |
| ; Function Attrs: nounwind |
| define void @br_cc_i1_imm(i1 zeroext %0) { |
| ; CHECK-LABEL: br_cc_i1_imm: |
| ; CHECK: # %bb.0: |
| ; CHECK-NEXT: brne.w 0, %s0, .LBB14_2 |
| ; CHECK-NEXT: # %bb.1: |
| ; CHECK-NEXT: #APP |
| ; CHECK-NEXT: nop |
| ; CHECK-NEXT: #NO_APP |
| ; CHECK-NEXT: .LBB14_2: |
| ; CHECK-NEXT: b.l.t (, %s10) |
| br i1 %0, label %3, label %2 |
| |
| 2: ; preds = %1 |
| tail call void asm sideeffect "nop", ""() |
| br label %3 |
| |
| 3: ; preds = %2, %1 |
| ret void |
| } |
| |
| ; Function Attrs: nounwind |
| define void @br_cc_i8_imm(i8 signext %0) { |
| ; CHECK-LABEL: br_cc_i8_imm: |
| ; CHECK: # %bb.0: |
| ; CHECK-NEXT: brlt.w -10, %s0, .LBB15_2 |
| ; CHECK-NEXT: # %bb.1: |
| ; CHECK-NEXT: #APP |
| ; CHECK-NEXT: nop |
| ; CHECK-NEXT: #NO_APP |
| ; CHECK-NEXT: .LBB15_2: |
| ; CHECK-NEXT: b.l.t (, %s10) |
| %2 = icmp slt i8 %0, -9 |
| br i1 %2, label %3, label %4 |
| |
| 3: ; preds = %1 |
| tail call void asm sideeffect "nop", ""() |
| br label %4 |
| |
| 4: ; preds = %3, %1 |
| ret void |
| } |
| |
| ; Function Attrs: nounwind |
| define void @br_cc_u8_imm(i8 zeroext %0) { |
| ; CHECK-LABEL: br_cc_u8_imm: |
| ; CHECK: # %bb.0: |
| ; CHECK-NEXT: cmpu.w %s0, 8, %s0 |
| ; CHECK-NEXT: brgt.w 0, %s0, .LBB16_2 |
| ; CHECK-NEXT: # %bb.1: |
| ; CHECK-NEXT: #APP |
| ; CHECK-NEXT: nop |
| ; CHECK-NEXT: #NO_APP |
| ; CHECK-NEXT: .LBB16_2: |
| ; CHECK-NEXT: b.l.t (, %s10) |
| %2 = icmp ult i8 %0, 9 |
| br i1 %2, label %3, label %4 |
| |
| 3: ; preds = %1 |
| tail call void asm sideeffect "nop", ""() |
| br label %4 |
| |
| 4: ; preds = %3, %1 |
| ret void |
| } |
| |
| ; Function Attrs: nounwind |
| define void @br_cc_i16_imm(i16 signext %0) { |
| ; CHECK-LABEL: br_cc_i16_imm: |
| ; CHECK: # %bb.0: |
| ; CHECK-NEXT: brlt.w 62, %s0, .LBB17_2 |
| ; CHECK-NEXT: # %bb.1: |
| ; CHECK-NEXT: #APP |
| ; CHECK-NEXT: nop |
| ; CHECK-NEXT: #NO_APP |
| ; CHECK-NEXT: .LBB17_2: |
| ; CHECK-NEXT: b.l.t (, %s10) |
| %2 = icmp slt i16 %0, 63 |
| br i1 %2, label %3, label %4 |
| |
| 3: ; preds = %1 |
| tail call void asm sideeffect "nop", ""() |
| br label %4 |
| |
| 4: ; preds = %3, %1 |
| ret void |
| } |
| |
| ; Function Attrs: nounwind |
| define void @br_cc_u16_imm(i16 zeroext %0) { |
| ; CHECK-LABEL: br_cc_u16_imm: |
| ; CHECK: # %bb.0: |
| ; CHECK-NEXT: cmpu.w %s0, 63, %s0 |
| ; CHECK-NEXT: brgt.w 0, %s0, .LBB18_2 |
| ; CHECK-NEXT: # %bb.1: |
| ; CHECK-NEXT: #APP |
| ; CHECK-NEXT: nop |
| ; CHECK-NEXT: #NO_APP |
| ; CHECK-NEXT: .LBB18_2: |
| ; CHECK-NEXT: b.l.t (, %s10) |
| %2 = icmp ult i16 %0, 64 |
| br i1 %2, label %3, label %4 |
| |
| 3: ; preds = %1 |
| tail call void asm sideeffect "nop", ""() |
| br label %4 |
| |
| 4: ; preds = %3, %1 |
| ret void |
| } |
| |
| ; Function Attrs: nounwind |
| define void @br_cc_i32_imm(i32 signext %0) { |
| ; CHECK-LABEL: br_cc_i32_imm: |
| ; CHECK: # %bb.0: |
| ; CHECK-NEXT: brlt.w 63, %s0, .LBB19_2 |
| ; CHECK-NEXT: # %bb.1: |
| ; CHECK-NEXT: #APP |
| ; CHECK-NEXT: nop |
| ; CHECK-NEXT: #NO_APP |
| ; CHECK-NEXT: .LBB19_2: |
| ; CHECK-NEXT: b.l.t (, %s10) |
| %2 = icmp slt i32 %0, 64 |
| br i1 %2, label %3, label %4 |
| |
| 3: ; preds = %1 |
| tail call void asm sideeffect "nop", ""() |
| br label %4 |
| |
| 4: ; preds = %3, %1 |
| ret void |
| } |
| |
| ; Function Attrs: nounwind |
| define void @br_cc_u32_imm(i32 zeroext %0) { |
| ; CHECK-LABEL: br_cc_u32_imm: |
| ; CHECK: # %bb.0: |
| ; CHECK-NEXT: cmpu.w %s0, 63, %s0 |
| ; CHECK-NEXT: brgt.w 0, %s0, .LBB20_2 |
| ; CHECK-NEXT: # %bb.1: |
| ; CHECK-NEXT: #APP |
| ; CHECK-NEXT: nop |
| ; CHECK-NEXT: #NO_APP |
| ; CHECK-NEXT: .LBB20_2: |
| ; CHECK-NEXT: b.l.t (, %s10) |
| %2 = icmp ult i32 %0, 64 |
| br i1 %2, label %3, label %4 |
| |
| 3: ; preds = %1 |
| tail call void asm sideeffect "nop", ""() |
| br label %4 |
| |
| 4: ; preds = %3, %1 |
| ret void |
| } |
| |
| ; Function Attrs: nounwind |
| define void @br_cc_i64_imm(i64 %0) { |
| ; CHECK-LABEL: br_cc_i64_imm: |
| ; CHECK: # %bb.0: |
| ; CHECK-NEXT: brlt.l 63, %s0, .LBB21_2 |
| ; CHECK-NEXT: # %bb.1: |
| ; CHECK-NEXT: #APP |
| ; CHECK-NEXT: nop |
| ; CHECK-NEXT: #NO_APP |
| ; CHECK-NEXT: .LBB21_2: |
| ; CHECK-NEXT: b.l.t (, %s10) |
| %2 = icmp slt i64 %0, 64 |
| br i1 %2, label %3, label %4 |
| |
| 3: ; preds = %1 |
| tail call void asm sideeffect "nop", ""() |
| br label %4 |
| |
| 4: ; preds = %3, %1 |
| ret void |
| } |
| |
| ; Function Attrs: nounwind |
| define void @br_cc_u64_imm(i64 %0) { |
| ; CHECK-LABEL: br_cc_u64_imm: |
| ; CHECK: # %bb.0: |
| ; CHECK-NEXT: cmpu.l %s0, 63, %s0 |
| ; CHECK-NEXT: brgt.l 0, %s0, .LBB22_2 |
| ; CHECK-NEXT: # %bb.1: |
| ; CHECK-NEXT: #APP |
| ; CHECK-NEXT: nop |
| ; CHECK-NEXT: #NO_APP |
| ; CHECK-NEXT: .LBB22_2: |
| ; CHECK-NEXT: b.l.t (, %s10) |
| %2 = icmp ult i64 %0, 64 |
| br i1 %2, label %3, label %4 |
| |
| 3: ; preds = %1 |
| tail call void asm sideeffect "nop", ""() |
| br label %4 |
| |
| 4: ; preds = %3, %1 |
| ret void |
| } |
| |
| ; Function Attrs: nounwind |
| define void @br_cc_i128_imm(i128 %0) { |
| ; CHECK-LABEL: br_cc_i128_imm: |
| ; CHECK: # %bb.0: |
| ; CHECK-NEXT: or %s2, 0, (0)1 |
| ; CHECK-NEXT: cmps.l %s3, %s1, (0)1 |
| ; CHECK-NEXT: or %s4, 0, (0)1 |
| ; CHECK-NEXT: cmov.l.gt %s4, (63)0, %s3 |
| ; CHECK-NEXT: cmpu.l %s0, %s0, (58)0 |
| ; CHECK-NEXT: cmov.l.gt %s2, (63)0, %s0 |
| ; CHECK-NEXT: cmov.l.eq %s4, %s2, %s1 |
| ; CHECK-NEXT: brne.w 0, %s4, .LBB23_2 |
| ; CHECK-NEXT: # %bb.1: |
| ; CHECK-NEXT: #APP |
| ; CHECK-NEXT: nop |
| ; CHECK-NEXT: #NO_APP |
| ; CHECK-NEXT: .LBB23_2: |
| ; CHECK-NEXT: b.l.t (, %s10) |
| %2 = icmp slt i128 %0, 64 |
| br i1 %2, label %3, label %4 |
| |
| 3: ; preds = %1 |
| tail call void asm sideeffect "nop", ""() |
| br label %4 |
| |
| 4: ; preds = %3, %1 |
| ret void |
| } |
| |
| ; Function Attrs: nounwind |
| define void @br_cc_u128_imm(i128 %0) { |
| ; CHECK-LABEL: br_cc_u128_imm: |
| ; CHECK: # %bb.0: |
| ; CHECK-NEXT: or %s2, 0, (0)1 |
| ; CHECK-NEXT: cmps.l %s3, %s1, (0)1 |
| ; CHECK-NEXT: or %s4, 0, (0)1 |
| ; CHECK-NEXT: cmov.l.ne %s4, (63)0, %s3 |
| ; CHECK-NEXT: cmpu.l %s0, %s0, (58)0 |
| ; CHECK-NEXT: cmov.l.gt %s2, (63)0, %s0 |
| ; CHECK-NEXT: cmov.l.eq %s4, %s2, %s1 |
| ; CHECK-NEXT: brne.w 0, %s4, .LBB24_2 |
| ; CHECK-NEXT: # %bb.1: |
| ; CHECK-NEXT: #APP |
| ; CHECK-NEXT: nop |
| ; CHECK-NEXT: #NO_APP |
| ; CHECK-NEXT: .LBB24_2: |
| ; CHECK-NEXT: b.l.t (, %s10) |
| %2 = icmp ult i128 %0, 64 |
| br i1 %2, label %3, label %4 |
| |
| 3: ; preds = %1 |
| tail call void asm sideeffect "nop", ""() |
| br label %4 |
| |
| 4: ; preds = %3, %1 |
| ret void |
| } |
| |
| ; Function Attrs: nounwind |
| define void @br_cc_float_imm(float %0) { |
| ; CHECK-LABEL: br_cc_float_imm: |
| ; CHECK: # %bb.0: |
| ; CHECK-NEXT: brle.s 0, %s0, .LBB25_2 |
| ; CHECK-NEXT: # %bb.1: |
| ; CHECK-NEXT: #APP |
| ; CHECK-NEXT: nop |
| ; CHECK-NEXT: #NO_APP |
| ; CHECK-NEXT: .LBB25_2: |
| ; CHECK-NEXT: b.l.t (, %s10) |
| %2 = fcmp fast olt float %0, 0.000000e+00 |
| br i1 %2, label %3, label %4 |
| |
| 3: ; preds = %1 |
| tail call void asm sideeffect "nop", ""() |
| br label %4 |
| |
| 4: ; preds = %3, %1 |
| ret void |
| } |
| |
| ; Function Attrs: nounwind |
| define void @br_cc_double_imm(double %0) { |
| ; CHECK-LABEL: br_cc_double_imm: |
| ; CHECK: # %bb.0: |
| ; CHECK-NEXT: brle.d 0, %s0, .LBB26_2 |
| ; CHECK-NEXT: # %bb.1: |
| ; CHECK-NEXT: #APP |
| ; CHECK-NEXT: nop |
| ; CHECK-NEXT: #NO_APP |
| ; CHECK-NEXT: .LBB26_2: |
| ; CHECK-NEXT: b.l.t (, %s10) |
| %2 = fcmp fast olt double %0, 0.000000e+00 |
| br i1 %2, label %3, label %4 |
| |
| 3: ; preds = %1 |
| tail call void asm sideeffect "nop", ""() |
| br label %4 |
| |
| 4: ; preds = %3, %1 |
| ret void |
| } |
| |
| ; Function Attrs: nounwind |
| define void @br_cc_quad_imm(fp128 %0) { |
| ; CHECK-LABEL: br_cc_quad_imm: |
| ; CHECK: # %bb.0: |
| ; CHECK-NEXT: lea %s2, .LCPI27_0@lo |
| ; CHECK-NEXT: and %s2, %s2, (32)0 |
| ; CHECK-NEXT: lea.sl %s2, .LCPI27_0@hi(, %s2) |
| ; CHECK-NEXT: ld %s4, 8(, %s2) |
| ; CHECK-NEXT: ld %s5, (, %s2) |
| ; CHECK-NEXT: fcmp.q %s0, %s4, %s0 |
| ; CHECK-NEXT: brge.d 0, %s0, .LBB27_2 |
| ; CHECK-NEXT: # %bb.1: |
| ; CHECK-NEXT: #APP |
| ; CHECK-NEXT: nop |
| ; CHECK-NEXT: #NO_APP |
| ; CHECK-NEXT: .LBB27_2: |
| ; CHECK-NEXT: b.l.t (, %s10) |
| %2 = fcmp fast olt fp128 %0, 0xL00000000000000000000000000000000 |
| br i1 %2, label %3, label %4 |
| |
| 3: ; preds = %1 |
| tail call void asm sideeffect "nop", ""() |
| br label %4 |
| |
| 4: ; preds = %3, %1 |
| ret void |
| } |
| |
| ; Function Attrs: nounwind |
| define void @br_cc_imm_i1(i1 zeroext %0) { |
| ; CHECK-LABEL: br_cc_imm_i1: |
| ; CHECK: # %bb.0: |
| ; CHECK-NEXT: breq.w 0, %s0, .LBB28_2 |
| ; CHECK-NEXT: # %bb.1: |
| ; CHECK-NEXT: #APP |
| ; CHECK-NEXT: nop |
| ; CHECK-NEXT: #NO_APP |
| ; CHECK-NEXT: .LBB28_2: |
| ; CHECK-NEXT: b.l.t (, %s10) |
| br i1 %0, label %2, label %3 |
| |
| 2: ; preds = %1 |
| tail call void asm sideeffect "nop", ""() |
| br label %3 |
| |
| 3: ; preds = %2, %1 |
| ret void |
| } |
| |
| ; Function Attrs: nounwind |
| define void @br_cc_imm_i8(i8 signext %0) { |
| ; CHECK-LABEL: br_cc_imm_i8: |
| ; CHECK: # %bb.0: |
| ; CHECK-NEXT: brgt.w -9, %s0, .LBB29_2 |
| ; CHECK-NEXT: # %bb.1: |
| ; CHECK-NEXT: #APP |
| ; CHECK-NEXT: nop |
| ; CHECK-NEXT: #NO_APP |
| ; CHECK-NEXT: .LBB29_2: |
| ; CHECK-NEXT: b.l.t (, %s10) |
| %2 = icmp sgt i8 %0, -10 |
| br i1 %2, label %3, label %4 |
| |
| 3: ; preds = %1 |
| tail call void asm sideeffect "nop", ""() |
| br label %4 |
| |
| 4: ; preds = %3, %1 |
| ret void |
| } |
| |
| ; Function Attrs: nounwind |
| define void @br_cc_imm_u8(i8 zeroext %0) { |
| ; CHECK-LABEL: br_cc_imm_u8: |
| ; CHECK: # %bb.0: |
| ; CHECK-NEXT: cmpu.w %s0, 9, %s0 |
| ; CHECK-NEXT: brlt.w 0, %s0, .LBB30_2 |
| ; CHECK-NEXT: # %bb.1: |
| ; CHECK-NEXT: #APP |
| ; CHECK-NEXT: nop |
| ; CHECK-NEXT: #NO_APP |
| ; CHECK-NEXT: .LBB30_2: |
| ; CHECK-NEXT: b.l.t (, %s10) |
| %2 = icmp ugt i8 %0, 8 |
| br i1 %2, label %3, label %4 |
| |
| 3: ; preds = %1 |
| tail call void asm sideeffect "nop", ""() |
| br label %4 |
| |
| 4: ; preds = %3, %1 |
| ret void |
| } |
| |
| ; Function Attrs: nounwind |
| define void @br_cc_imm_i16(i16 signext %0) { |
| ; CHECK-LABEL: br_cc_imm_i16: |
| ; CHECK: # %bb.0: |
| ; CHECK-NEXT: brgt.w 63, %s0, .LBB31_2 |
| ; CHECK-NEXT: # %bb.1: |
| ; CHECK-NEXT: #APP |
| ; CHECK-NEXT: nop |
| ; CHECK-NEXT: #NO_APP |
| ; CHECK-NEXT: .LBB31_2: |
| ; CHECK-NEXT: b.l.t (, %s10) |
| %2 = icmp sgt i16 %0, 62 |
| br i1 %2, label %3, label %4 |
| |
| 3: ; preds = %1 |
| tail call void asm sideeffect "nop", ""() |
| br label %4 |
| |
| 4: ; preds = %3, %1 |
| ret void |
| } |
| |
| ; Function Attrs: nounwind |
| define void @br_cc_imm_u16(i16 zeroext %0) { |
| ; CHECK-LABEL: br_cc_imm_u16: |
| ; CHECK: # %bb.0: |
| ; CHECK-NEXT: lea %s1, 64 |
| ; CHECK-NEXT: cmpu.w %s0, %s1, %s0 |
| ; CHECK-NEXT: brlt.w 0, %s0, .LBB32_2 |
| ; CHECK-NEXT: # %bb.1: |
| ; CHECK-NEXT: #APP |
| ; CHECK-NEXT: nop |
| ; CHECK-NEXT: #NO_APP |
| ; CHECK-NEXT: .LBB32_2: |
| ; CHECK-NEXT: b.l.t (, %s10) |
| %2 = icmp ugt i16 %0, 63 |
| br i1 %2, label %3, label %4 |
| |
| 3: ; preds = %1 |
| tail call void asm sideeffect "nop", ""() |
| br label %4 |
| |
| 4: ; preds = %3, %1 |
| ret void |
| } |
| |
| ; Function Attrs: nounwind |
| define void @br_cc_imm_i32(i32 signext %0) { |
| ; CHECK-LABEL: br_cc_imm_i32: |
| ; CHECK: # %bb.0: |
| ; CHECK-NEXT: brgt.w -64, %s0, .LBB33_2 |
| ; CHECK-NEXT: # %bb.1: |
| ; CHECK-NEXT: #APP |
| ; CHECK-NEXT: nop |
| ; CHECK-NEXT: #NO_APP |
| ; CHECK-NEXT: .LBB33_2: |
| ; CHECK-NEXT: b.l.t (, %s10) |
| %2 = icmp sgt i32 %0, -65 |
| br i1 %2, label %3, label %4 |
| |
| 3: ; preds = %1 |
| tail call void asm sideeffect "nop", ""() |
| br label %4 |
| |
| 4: ; preds = %3, %1 |
| ret void |
| } |
| |
| ; Function Attrs: nounwind |
| define void @br_cc_imm_u32(i32 zeroext %0) { |
| ; CHECK-LABEL: br_cc_imm_u32: |
| ; CHECK: # %bb.0: |
| ; CHECK-NEXT: cmpu.w %s0, -64, %s0 |
| ; CHECK-NEXT: brlt.w 0, %s0, .LBB34_2 |
| ; CHECK-NEXT: # %bb.1: |
| ; CHECK-NEXT: #APP |
| ; CHECK-NEXT: nop |
| ; CHECK-NEXT: #NO_APP |
| ; CHECK-NEXT: .LBB34_2: |
| ; CHECK-NEXT: b.l.t (, %s10) |
| %2 = icmp ugt i32 %0, -65 |
| br i1 %2, label %3, label %4 |
| |
| 3: ; preds = %1 |
| tail call void asm sideeffect "nop", ""() |
| br label %4 |
| |
| 4: ; preds = %3, %1 |
| ret void |
| } |
| |
| ; Function Attrs: nounwind |
| define void @br_cc_imm_i64(i64 %0) { |
| ; CHECK-LABEL: br_cc_imm_i64: |
| ; CHECK: # %bb.0: |
| ; CHECK-NEXT: brgt.l -64, %s0, .LBB35_2 |
| ; CHECK-NEXT: # %bb.1: |
| ; CHECK-NEXT: #APP |
| ; CHECK-NEXT: nop |
| ; CHECK-NEXT: #NO_APP |
| ; CHECK-NEXT: .LBB35_2: |
| ; CHECK-NEXT: b.l.t (, %s10) |
| %2 = icmp sgt i64 %0, -65 |
| br i1 %2, label %3, label %4 |
| |
| 3: ; preds = %1 |
| tail call void asm sideeffect "nop", ""() |
| br label %4 |
| |
| 4: ; preds = %3, %1 |
| ret void |
| } |
| |
| ; Function Attrs: nounwind |
| define void @br_cc_imm_u64(i64 %0) { |
| ; CHECK-LABEL: br_cc_imm_u64: |
| ; CHECK: # %bb.0: |
| ; CHECK-NEXT: cmpu.l %s0, -64, %s0 |
| ; CHECK-NEXT: brlt.l 0, %s0, .LBB36_2 |
| ; CHECK-NEXT: # %bb.1: |
| ; CHECK-NEXT: #APP |
| ; CHECK-NEXT: nop |
| ; CHECK-NEXT: #NO_APP |
| ; CHECK-NEXT: .LBB36_2: |
| ; CHECK-NEXT: b.l.t (, %s10) |
| %2 = icmp ugt i64 %0, -65 |
| br i1 %2, label %3, label %4 |
| |
| 3: ; preds = %1 |
| tail call void asm sideeffect "nop", ""() |
| br label %4 |
| |
| 4: ; preds = %3, %1 |
| ret void |
| } |
| |
| ; Function Attrs: nounwind |
| define void @br_cc_imm_i128(i128 %0) { |
| ; CHECK-LABEL: br_cc_imm_i128: |
| ; CHECK: # %bb.0: |
| ; CHECK-NEXT: cmps.l %s2, %s1, (0)0 |
| ; CHECK-NEXT: or %s3, 0, (0)1 |
| ; CHECK-NEXT: or %s4, 0, (0)1 |
| ; CHECK-NEXT: cmov.l.lt %s4, (63)0, %s2 |
| ; CHECK-NEXT: cmpu.l %s0, %s0, (58)1 |
| ; CHECK-NEXT: cmov.l.lt %s3, (63)0, %s0 |
| ; CHECK-NEXT: cmpu.l %s0, %s1, (0)0 |
| ; CHECK-NEXT: cmov.l.eq %s4, %s3, %s0 |
| ; CHECK-NEXT: brne.w 0, %s4, .LBB37_2 |
| ; CHECK-NEXT: # %bb.1: |
| ; CHECK-NEXT: #APP |
| ; CHECK-NEXT: nop |
| ; CHECK-NEXT: #NO_APP |
| ; CHECK-NEXT: .LBB37_2: |
| ; CHECK-NEXT: b.l.t (, %s10) |
| %2 = icmp sgt i128 %0, -65 |
| br i1 %2, label %3, label %4 |
| |
| 3: ; preds = %1 |
| tail call void asm sideeffect "nop", ""() |
| br label %4 |
| |
| 4: ; preds = %3, %1 |
| ret void |
| } |
| |
| ; Function Attrs: nounwind |
| define void @br_cc_imm_u128(i128 %0) { |
| ; CHECK-LABEL: br_cc_imm_u128: |
| ; CHECK: # %bb.0: |
| ; CHECK-NEXT: cmps.l %s2, %s1, (0)0 |
| ; CHECK-NEXT: or %s3, 0, (0)1 |
| ; CHECK-NEXT: or %s4, 0, (0)1 |
| ; CHECK-NEXT: cmov.l.ne %s4, (63)0, %s2 |
| ; CHECK-NEXT: cmpu.l %s0, %s0, (58)1 |
| ; CHECK-NEXT: cmov.l.lt %s3, (63)0, %s0 |
| ; CHECK-NEXT: cmpu.l %s0, %s1, (0)0 |
| ; CHECK-NEXT: cmov.l.eq %s4, %s3, %s0 |
| ; CHECK-NEXT: brne.w 0, %s4, .LBB38_2 |
| ; CHECK-NEXT: # %bb.1: |
| ; CHECK-NEXT: #APP |
| ; CHECK-NEXT: nop |
| ; CHECK-NEXT: #NO_APP |
| ; CHECK-NEXT: .LBB38_2: |
| ; CHECK-NEXT: b.l.t (, %s10) |
| %2 = icmp ugt i128 %0, -65 |
| br i1 %2, label %3, label %4 |
| |
| 3: ; preds = %1 |
| tail call void asm sideeffect "nop", ""() |
| br label %4 |
| |
| 4: ; preds = %3, %1 |
| ret void |
| } |
| |
| ; Function Attrs: nounwind |
| define void @br_cc_imm_float(float %0) { |
| ; CHECK-LABEL: br_cc_imm_float: |
| ; CHECK: # %bb.0: |
| ; CHECK-NEXT: brgt.s 0, %s0, .LBB39_2 |
| ; CHECK-NEXT: # %bb.1: |
| ; CHECK-NEXT: #APP |
| ; CHECK-NEXT: nop |
| ; CHECK-NEXT: #NO_APP |
| ; CHECK-NEXT: .LBB39_2: |
| ; CHECK-NEXT: b.l.t (, %s10) |
| %2 = fcmp fast ult float %0, 0.000000e+00 |
| br i1 %2, label %4, label %3 |
| |
| 3: ; preds = %1 |
| tail call void asm sideeffect "nop", ""() |
| br label %4 |
| |
| 4: ; preds = %3, %1 |
| ret void |
| } |
| |
| ; Function Attrs: nounwind |
| define void @br_cc_imm_double(double %0) { |
| ; CHECK-LABEL: br_cc_imm_double: |
| ; CHECK: # %bb.0: |
| ; CHECK-NEXT: brgt.d 0, %s0, .LBB40_2 |
| ; CHECK-NEXT: # %bb.1: |
| ; CHECK-NEXT: #APP |
| ; CHECK-NEXT: nop |
| ; CHECK-NEXT: #NO_APP |
| ; CHECK-NEXT: .LBB40_2: |
| ; CHECK-NEXT: b.l.t (, %s10) |
| %2 = fcmp fast ult double %0, 0.000000e+00 |
| br i1 %2, label %4, label %3 |
| |
| 3: ; preds = %1 |
| tail call void asm sideeffect "nop", ""() |
| br label %4 |
| |
| 4: ; preds = %3, %1 |
| ret void |
| } |
| |
| ; Function Attrs: nounwind |
| define void @br_cc_imm_quad(fp128 %0) { |
| ; CHECK-LABEL: br_cc_imm_quad: |
| ; CHECK: # %bb.0: |
| ; CHECK-NEXT: lea %s2, .LCPI41_0@lo |
| ; CHECK-NEXT: and %s2, %s2, (32)0 |
| ; CHECK-NEXT: lea.sl %s2, .LCPI41_0@hi(, %s2) |
| ; CHECK-NEXT: ld %s4, 8(, %s2) |
| ; CHECK-NEXT: ld %s5, (, %s2) |
| ; CHECK-NEXT: fcmp.q %s0, %s4, %s0 |
| ; CHECK-NEXT: brlt.d 0, %s0, .LBB41_2 |
| ; CHECK-NEXT: # %bb.1: |
| ; CHECK-NEXT: #APP |
| ; CHECK-NEXT: nop |
| ; CHECK-NEXT: #NO_APP |
| ; CHECK-NEXT: .LBB41_2: |
| ; CHECK-NEXT: b.l.t (, %s10) |
| %2 = fcmp fast ult fp128 %0, 0xL00000000000000000000000000000000 |
| br i1 %2, label %4, label %3 |
| |
| 3: ; preds = %1 |
| tail call void asm sideeffect "nop", ""() |
| br label %4 |
| |
| 4: ; preds = %3, %1 |
| ret void |
| } |