blob: f54f51edadae3e3adac327bf0341f788a9f00fb8 [file] [log] [blame]
Alex Bradburyffc435e2017-11-21 08:11:03 +00001; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
2; RUN: llc -mtriple=riscv32 -verify-machineinstrs < %s \
3; RUN: | FileCheck %s -check-prefix=RV32I
4
5define void @jt(i32 %in, i32* %out) {
6; RV32I-LABEL: jt:
Francis Visoiu Mistrih25528d62017-12-04 17:18:51 +00007; RV32I: # %bb.0: # %entry
Alex Bradburyffc435e2017-11-21 08:11:03 +00008; RV32I-NEXT: addi a2, zero, 2
Alex Bradburye027c932018-01-10 20:47:00 +00009; RV32I-NEXT: blt a2, a0, .LBB0_4
10; RV32I-NEXT: # %bb.1: # %entry
Alex Bradburyffc435e2017-11-21 08:11:03 +000011; RV32I-NEXT: addi a3, zero, 1
Alex Bradbury315cd3a2018-01-10 21:05:07 +000012; RV32I-NEXT: beq a0, a3, .LBB0_7
Alex Bradburye027c932018-01-10 20:47:00 +000013; RV32I-NEXT: # %bb.2: # %entry
Alex Bradbury315cd3a2018-01-10 21:05:07 +000014; RV32I-NEXT: bne a0, a2, .LBB0_9
Alex Bradburye027c932018-01-10 20:47:00 +000015; RV32I-NEXT: # %bb.3: # %bb2
Alex Bradburyffc435e2017-11-21 08:11:03 +000016; RV32I-NEXT: addi a0, zero, 3
17; RV32I-NEXT: sw a0, 0(a1)
Alex Bradbury7d6aa1f2018-01-18 11:34:02 +000018; RV32I-NEXT: ret
Alex Bradburyffc435e2017-11-21 08:11:03 +000019; RV32I-NEXT: .LBB0_4: # %entry
Alex Bradburye027c932018-01-10 20:47:00 +000020; RV32I-NEXT: addi a3, zero, 3
Alex Bradbury315cd3a2018-01-10 21:05:07 +000021; RV32I-NEXT: beq a0, a3, .LBB0_8
Alex Bradburye027c932018-01-10 20:47:00 +000022; RV32I-NEXT: # %bb.5: # %entry
Alex Bradburyffc435e2017-11-21 08:11:03 +000023; RV32I-NEXT: addi a2, zero, 4
Alex Bradbury315cd3a2018-01-10 21:05:07 +000024; RV32I-NEXT: bne a0, a2, .LBB0_9
Alex Bradburye027c932018-01-10 20:47:00 +000025; RV32I-NEXT: # %bb.6: # %bb4
Alex Bradburyffc435e2017-11-21 08:11:03 +000026; RV32I-NEXT: addi a0, zero, 1
27; RV32I-NEXT: sw a0, 0(a1)
Alex Bradbury7d6aa1f2018-01-18 11:34:02 +000028; RV32I-NEXT: ret
Alex Bradbury315cd3a2018-01-10 21:05:07 +000029; RV32I-NEXT: .LBB0_7: # %bb1
Alex Bradburye027c932018-01-10 20:47:00 +000030; RV32I-NEXT: addi a0, zero, 4
31; RV32I-NEXT: sw a0, 0(a1)
Alex Bradbury7d6aa1f2018-01-18 11:34:02 +000032; RV32I-NEXT: ret
Alex Bradbury315cd3a2018-01-10 21:05:07 +000033; RV32I-NEXT: .LBB0_8: # %bb3
Alex Bradburye027c932018-01-10 20:47:00 +000034; RV32I-NEXT: sw a2, 0(a1)
Alex Bradbury315cd3a2018-01-10 21:05:07 +000035; RV32I-NEXT: .LBB0_9: # %exit
Alex Bradbury59136ff2017-12-15 09:47:01 +000036; RV32I-NEXT: ret
Alex Bradburyffc435e2017-11-21 08:11:03 +000037entry:
38 switch i32 %in, label %exit [
39 i32 1, label %bb1
40 i32 2, label %bb2
41 i32 3, label %bb3
42 i32 4, label %bb4
43 ]
44bb1:
45 store i32 4, i32* %out
46 br label %exit
47bb2:
48 store i32 3, i32* %out
49 br label %exit
50bb3:
51 store i32 2, i32* %out
52 br label %exit
53bb4:
54 store i32 1, i32* %out
55 br label %exit
56exit:
57 ret void
58}