224 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 52; RUN: llc -mtriple=xtensa -disable-block-placement -verify-machineinstrs < %s \3; RUN: | FileCheck %s4 5define i32 @brcc_sgt(i32 %a, i32 %b) nounwind {6; CHECK-LABEL: brcc_sgt:7; CHECK: bge a3, a2, .LBB0_28; CHECK-NEXT: # %bb.1: # %t19; CHECK-NEXT: addi a2, a2, 410; CHECK-NEXT: ret11; CHECK-NEXT: .LBB0_2: # %t212; CHECK-NEXT: addi a2, a3, 813; CHECK-NEXT: ret14 %wb = icmp sgt i32 %a, %b15 br i1 %wb, label %t1, label %t216t1:17 %t1v = add i32 %a, 418 br label %exit19t2:20 %t2v = add i32 %b, 821 br label %exit22exit:23 %v = phi i32 [ %t1v, %t1 ], [ %t2v, %t2 ]24 ret i32 %v25}26 27define i32 @brcc_ugt(i32 %a, i32 %b) nounwind {28; CHECK-LABEL: brcc_ugt:29; CHECK: bgeu a3, a2, .LBB1_230; CHECK-NEXT: # %bb.1: # %t131; CHECK-NEXT: addi a2, a2, 432; CHECK-NEXT: ret33; CHECK-NEXT: .LBB1_2: # %t234; CHECK-NEXT: addi a2, a3, 835; CHECK-NEXT: ret36 %wb = icmp ugt i32 %a, %b37 br i1 %wb, label %t1, label %t238t1:39 %t1v = add i32 %a, 440 br label %exit41t2:42 %t2v = add i32 %b, 843 br label %exit44exit:45 %v = phi i32 [ %t1v, %t1 ], [ %t2v, %t2 ]46 ret i32 %v47}48 49define i32 @brcc_sle(i32 %a, i32 %b) nounwind {50; CHECK-LABEL: brcc_sle:51; CHECK: blt a3, a2, .LBB2_252; CHECK-NEXT: # %bb.1: # %t153; CHECK-NEXT: addi a2, a2, 454; CHECK-NEXT: ret55; CHECK-NEXT: .LBB2_2: # %t256; CHECK-NEXT: addi a2, a3, 857; CHECK-NEXT: ret58 %wb = icmp sle i32 %a, %b59 br i1 %wb, label %t1, label %t260t1:61 %t1v = add i32 %a, 462 br label %exit63t2:64 %t2v = add i32 %b, 865 br label %exit66exit:67 %v = phi i32 [ %t1v, %t1 ], [ %t2v, %t2 ]68 ret i32 %v69}70 71define i32 @brcc_ule(i32 %a, i32 %b) nounwind {72; CHECK-LABEL: brcc_ule:73; CHECK: bltu a3, a2, .LBB3_274; CHECK-NEXT: # %bb.1: # %t175; CHECK-NEXT: addi a2, a2, 476; CHECK-NEXT: ret77; CHECK-NEXT: .LBB3_2: # %t278; CHECK-NEXT: addi a2, a3, 879; CHECK-NEXT: ret80 %wb = icmp ule i32 %a, %b81 br i1 %wb, label %t1, label %t282t1:83 %t1v = add i32 %a, 484 br label %exit85t2:86 %t2v = add i32 %b, 887 br label %exit88exit:89 %v = phi i32 [ %t1v, %t1 ], [ %t2v, %t2 ]90 ret i32 %v91}92 93define i32 @brcc_eq(i32 %a, i32 %b) nounwind {94; CHECK-LABEL: brcc_eq:95; CHECK: bne a2, a3, .LBB4_296; CHECK-NEXT: # %bb.1: # %t197; CHECK-NEXT: addi a2, a2, 498; CHECK-NEXT: ret99; CHECK-NEXT: .LBB4_2: # %t2100; CHECK-NEXT: addi a2, a3, 8101; CHECK-NEXT: ret102 %wb = icmp eq i32 %a, %b103 br i1 %wb, label %t1, label %t2104t1:105 %t1v = add i32 %a, 4106 br label %exit107t2:108 %t2v = add i32 %b, 8109 br label %exit110exit:111 %v = phi i32 [ %t1v, %t1 ], [ %t2v, %t2 ]112 ret i32 %v113}114 115define i32 @brcc_ne(i32 %a, i32 %b) nounwind {116; CHECK-LABEL: brcc_ne:117; CHECK: beq a2, a3, .LBB5_2118; CHECK-NEXT: # %bb.1: # %t1119; CHECK-NEXT: addi a2, a2, 4120; CHECK-NEXT: ret121; CHECK-NEXT: .LBB5_2: # %t2122; CHECK-NEXT: addi a2, a3, 8123; CHECK-NEXT: ret124 %wb = icmp ne i32 %a, %b125 br i1 %wb, label %t1, label %t2126t1:127 %t1v = add i32 %a, 4128 br label %exit129t2:130 %t2v = add i32 %b, 8131 br label %exit132exit:133 %v = phi i32 [ %t1v, %t1 ], [ %t2v, %t2 ]134 ret i32 %v135}136 137define i32 @brcc_ge(i32 %a, i32 %b) nounwind {138; CHECK-LABEL: brcc_ge:139; CHECK: blt a2, a3, .LBB6_2140; CHECK-NEXT: # %bb.1: # %t1141; CHECK-NEXT: addi a2, a2, 4142; CHECK-NEXT: ret143; CHECK-NEXT: .LBB6_2: # %t2144; CHECK-NEXT: addi a2, a3, 8145; CHECK-NEXT: ret146 %wb = icmp sge i32 %a, %b147 br i1 %wb, label %t1, label %t2148t1:149 %t1v = add i32 %a, 4150 br label %exit151t2:152 %t2v = add i32 %b, 8153 br label %exit154exit:155 %v = phi i32 [ %t1v, %t1 ], [ %t2v, %t2 ]156 ret i32 %v157}158 159define i32 @brcc_lt(i32 %a, i32 %b) nounwind {160; CHECK-LABEL: brcc_lt:161; CHECK: bge a2, a3, .LBB7_2162; CHECK-NEXT: # %bb.1: # %t1163; CHECK-NEXT: addi a2, a2, 4164; CHECK-NEXT: ret165; CHECK-NEXT: .LBB7_2: # %t2166; CHECK-NEXT: addi a2, a3, 8167; CHECK-NEXT: ret168 %wb = icmp slt i32 %a, %b169 br i1 %wb, label %t1, label %t2170t1:171 %t1v = add i32 %a, 4172 br label %exit173t2:174 %t2v = add i32 %b, 8175 br label %exit176exit:177 %v = phi i32 [ %t1v, %t1 ], [ %t2v, %t2 ]178 ret i32 %v179}180 181define i32 @brcc_uge(i32 %a, i32 %b) nounwind {182; CHECK-LABEL: brcc_uge:183; CHECK: bltu a2, a3, .LBB8_2184; CHECK-NEXT: # %bb.1: # %t1185; CHECK-NEXT: addi a2, a2, 4186; CHECK-NEXT: ret187; CHECK-NEXT: .LBB8_2: # %t2188; CHECK-NEXT: addi a2, a3, 8189; CHECK-NEXT: ret190 %wb = icmp uge i32 %a, %b191 br i1 %wb, label %t1, label %t2192t1:193 %t1v = add i32 %a, 4194 br label %exit195t2:196 %t2v = add i32 %b, 8197 br label %exit198exit:199 %v = phi i32 [ %t1v, %t1 ], [ %t2v, %t2 ]200 ret i32 %v201}202 203define i32 @brcc_ult(i32 %a, i32 %b) nounwind {204; CHECK-LABEL: brcc_ult:205; CHECK: bgeu a2, a3, .LBB9_2206; CHECK-NEXT: # %bb.1: # %t1207; CHECK-NEXT: addi a2, a2, 4208; CHECK-NEXT: ret209; CHECK-NEXT: .LBB9_2: # %t2210; CHECK-NEXT: addi a2, a3, 8211; CHECK-NEXT: ret212 %wb = icmp ult i32 %a, %b213 br i1 %wb, label %t1, label %t2214t1:215 %t1v = add i32 %a, 4216 br label %exit217t2:218 %t2v = add i32 %b, 8219 br label %exit220exit:221 %v = phi i32 [ %t1v, %t1 ], [ %t2v, %t2 ]222 ret i32 %v223}224