120 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 32; RUN: llc -mtriple=riscv32 -O2 -verify-machineinstrs < %s | FileCheck %s3; RUN: llc -mtriple=riscv64 -O2 -verify-machineinstrs < %s | FileCheck %s4 5define void @u_case1_a(ptr %a, i32 signext %b, ptr %c, ptr %d) {6; CHECK-LABEL: u_case1_a:7; CHECK: # %bb.0:8; CHECK-NEXT: li a4, 329; CHECK-NEXT: sw a4, 0(a0)10; CHECK-NEXT: bgeu a1, a4, .LBB0_211; CHECK-NEXT: # %bb.1: # %block112; CHECK-NEXT: sw a1, 0(a2)13; CHECK-NEXT: ret14; CHECK-NEXT: .LBB0_2: # %block215; CHECK-NEXT: li a0, 8716; CHECK-NEXT: sw a0, 0(a3)17; CHECK-NEXT: ret18 store i32 32, ptr %a19 %p = icmp ule i32 %b, 3120 br i1 %p, label %block1, label %block221 22block1: ; preds = %023 store i32 %b, ptr %c24 br label %end_block25 26block2: ; preds = %027 store i32 87, ptr %d28 br label %end_block29 30end_block: ; preds = %block2, %block131 ret void32}33 34define void @case1_a(ptr %a, i32 signext %b, ptr %c, ptr %d) {35; CHECK-LABEL: case1_a:36; CHECK: # %bb.0:37; CHECK-NEXT: li a4, -138; CHECK-NEXT: sw a4, 0(a0)39; CHECK-NEXT: bge a1, a4, .LBB1_240; CHECK-NEXT: # %bb.1: # %block141; CHECK-NEXT: sw a1, 0(a2)42; CHECK-NEXT: ret43; CHECK-NEXT: .LBB1_2: # %block244; CHECK-NEXT: li a0, 8745; CHECK-NEXT: sw a0, 0(a3)46; CHECK-NEXT: ret47 store i32 -1, ptr %a48 %p = icmp sle i32 %b, -249 br i1 %p, label %block1, label %block250 51block1: ; preds = %052 store i32 %b, ptr %c53 br label %end_block54 55block2: ; preds = %056 store i32 87, ptr %d57 br label %end_block58 59end_block: ; preds = %block2, %block160 ret void61}62 63define void @u_case2_a(ptr %a, i32 signext %b, ptr %c, ptr %d) {64; CHECK-LABEL: u_case2_a:65; CHECK: # %bb.0:66; CHECK-NEXT: li a4, 3267; CHECK-NEXT: sw a4, 0(a0)68; CHECK-NEXT: bgeu a4, a1, .LBB2_269; CHECK-NEXT: # %bb.1: # %block170; CHECK-NEXT: sw a1, 0(a2)71; CHECK-NEXT: ret72; CHECK-NEXT: .LBB2_2: # %block273; CHECK-NEXT: li a0, 8774; CHECK-NEXT: sw a0, 0(a3)75; CHECK-NEXT: ret76 store i32 32, ptr %a77 %p = icmp uge i32 %b, 3378 br i1 %p, label %block1, label %block279 80block1: ; preds = %081 store i32 %b, ptr %c82 br label %end_block83 84block2: ; preds = %085 store i32 87, ptr %d86 br label %end_block87 88end_block: ; preds = %block2, %block189 ret void90}91 92define void @case2_a(ptr %a, i32 signext %b, ptr %c, ptr %d) {93; CHECK-LABEL: case2_a:94; CHECK: # %bb.0:95; CHECK-NEXT: li a4, -496; CHECK-NEXT: sw a4, 0(a0)97; CHECK-NEXT: bge a4, a1, .LBB3_298; CHECK-NEXT: # %bb.1: # %block199; CHECK-NEXT: sw a1, 0(a2)100; CHECK-NEXT: ret101; CHECK-NEXT: .LBB3_2: # %block2102; CHECK-NEXT: li a0, 87103; CHECK-NEXT: sw a0, 0(a3)104; CHECK-NEXT: ret105 store i32 -4, ptr %a106 %p = icmp sge i32 %b, -3107 br i1 %p, label %block1, label %block2108 109block1: ; preds = %0110 store i32 %b, ptr %c111 br label %end_block112 113block2: ; preds = %0114 store i32 87, ptr %d115 br label %end_block116 117end_block: ; preds = %block2, %block1118 ret void119}120