AMDGPU: Fix verifier assert with out of bounds subregister indexes (#119799)
[llvm-project.git] / llvm / test / CodeGen / RISCV / GlobalISel / regbankselect / select-rv32.mir
blob5252b25b6f3b648b5df760784f946365331ab38a
1 # NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py
2 # RUN: llc -mtriple=riscv32 -run-pass=regbankselect \
3 # RUN:   -simplify-mir -verify-machineinstrs %s \
4 # RUN:   -o - | FileCheck -check-prefix=RV32I %s
6 ---
7 name:            select_i32
8 legalized:       true
9 tracksRegLiveness: true
10 body:             |
11   bb.0.entry:
12     liveins: $x10, $x11, $x12
14     ; RV32I-LABEL: name: select_i32
15     ; RV32I: liveins: $x10, $x11, $x12
16     ; RV32I-NEXT: {{  $}}
17     ; RV32I-NEXT: [[COPY:%[0-9]+]]:gprb(s32) = COPY $x10
18     ; RV32I-NEXT: [[COPY1:%[0-9]+]]:gprb(s32) = COPY $x11
19     ; RV32I-NEXT: [[COPY2:%[0-9]+]]:gprb(s32) = COPY $x12
20     ; RV32I-NEXT: [[C:%[0-9]+]]:gprb(s32) = G_CONSTANT i32 1
21     ; RV32I-NEXT: [[AND:%[0-9]+]]:gprb(s32) = G_AND [[COPY]], [[C]]
22     ; RV32I-NEXT: [[SELECT:%[0-9]+]]:gprb(s32) = G_SELECT [[AND]](s32), [[COPY1]], [[COPY2]]
23     ; RV32I-NEXT: $x10 = COPY [[SELECT]](s32)
24     ; RV32I-NEXT: PseudoRET implicit $x10
25     %3:_(s32) = COPY $x10
26     %4:_(s32) = COPY $x11
27     %5:_(s32) = COPY $x12
28     %12:_(s32) = G_CONSTANT i32 1
29     %11:_(s32) = G_AND %3, %12
30     %10:_(s32) = G_SELECT %11(s32), %4, %5
31     $x10 = COPY %10(s32)
32     PseudoRET implicit $x10
34 ...
35 ---
36 name:            select_ptr
37 legalized:       true
38 tracksRegLiveness: true
39 body:             |
40   bb.0.entry:
41     liveins: $x10, $x11, $x12
43     ; RV32I-LABEL: name: select_ptr
44     ; RV32I: liveins: $x10, $x11, $x12
45     ; RV32I-NEXT: {{  $}}
46     ; RV32I-NEXT: [[COPY:%[0-9]+]]:gprb(s32) = COPY $x10
47     ; RV32I-NEXT: [[COPY1:%[0-9]+]]:gprb(p0) = COPY $x11
48     ; RV32I-NEXT: [[COPY2:%[0-9]+]]:gprb(p0) = COPY $x12
49     ; RV32I-NEXT: [[C:%[0-9]+]]:gprb(s32) = G_CONSTANT i32 1
50     ; RV32I-NEXT: [[AND:%[0-9]+]]:gprb(s32) = G_AND [[COPY]], [[C]]
51     ; RV32I-NEXT: [[SELECT:%[0-9]+]]:gprb(p0) = G_SELECT [[AND]](s32), [[COPY1]], [[COPY2]]
52     ; RV32I-NEXT: $x10 = COPY [[SELECT]](p0)
53     ; RV32I-NEXT: PseudoRET implicit $x10
54     %3:_(s32) = COPY $x10
55     %4:_(p0) = COPY $x11
56     %5:_(p0) = COPY $x12
57     %12:_(s32) = G_CONSTANT i32 1
58     %11:_(s32) = G_AND %3, %12
59     %10:_(p0) = G_SELECT %11(s32), %4, %5
60     $x10 = COPY %10(p0)
61     PseudoRET implicit $x10
63 ...