Bump version to 19.1.0-rc3
[llvm-project.git] / llvm / test / CodeGen / RISCV / GlobalISel / instruction-select / zba-rv32.mir
blobf90de3ea55a1bb71a0dc21a0a7a8426d615f756c
1 # NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py UTC_ARGS: --version 3
2 # RUN: llc -mtriple=riscv32 -mattr='+zba' -run-pass=instruction-select -simplify-mir -verify-machineinstrs %s -o - \
3 # RUN: | FileCheck %s
5 ---
6 name:            sh1add
7 legalized:       true
8 regBankSelected: true
9 tracksRegLiveness: true
10 body:             |
11   bb.0.entry:
12     liveins: $x10, $x11
14     ; CHECK-LABEL: name: sh1add
15     ; CHECK: liveins: $x10, $x11
16     ; CHECK-NEXT: {{  $}}
17     ; CHECK-NEXT: [[COPY:%[0-9]+]]:gpr = COPY $x10
18     ; CHECK-NEXT: [[COPY1:%[0-9]+]]:gpr = COPY $x11
19     ; CHECK-NEXT: [[SH1ADD:%[0-9]+]]:gpr = SH1ADD [[COPY]], [[COPY1]]
20     ; CHECK-NEXT: $x10 = COPY [[SH1ADD]]
21     %0:gprb(s32) = COPY $x10
22     %1:gprb(s32) = COPY $x11
23     %2:gprb(s32) = G_CONSTANT i32 1
24     %3:gprb(s32) = G_SHL %0, %2
25     %4:gprb(s32) = G_ADD %3, %1
26     $x10 = COPY %4(s32)
27 ...
28 ---
29 name:            sh2add
30 legalized:       true
31 regBankSelected: true
32 tracksRegLiveness: true
33 body:             |
34   bb.0.entry:
35     liveins: $x10, $x11
37     ; CHECK-LABEL: name: sh2add
38     ; CHECK: liveins: $x10, $x11
39     ; CHECK-NEXT: {{  $}}
40     ; CHECK-NEXT: [[COPY:%[0-9]+]]:gpr = COPY $x10
41     ; CHECK-NEXT: [[COPY1:%[0-9]+]]:gpr = COPY $x11
42     ; CHECK-NEXT: [[SH2ADD:%[0-9]+]]:gpr = SH2ADD [[COPY]], [[COPY1]]
43     ; CHECK-NEXT: $x10 = COPY [[SH2ADD]]
44     %0:gprb(s32) = COPY $x10
45     %1:gprb(s32) = COPY $x11
46     %2:gprb(s32) = G_CONSTANT i32 2
47     %3:gprb(s32) = G_SHL %0, %2
48     %4:gprb(s32) = G_ADD %3, %1
49     $x10 = COPY %4(s32)
50 ...
51 ---
52 name:            sh3add
53 legalized:       true
54 regBankSelected: true
55 tracksRegLiveness: true
56 body:             |
57   bb.0.entry:
58     liveins: $x10, $x11
60     ; CHECK-LABEL: name: sh3add
61     ; CHECK: liveins: $x10, $x11
62     ; CHECK-NEXT: {{  $}}
63     ; CHECK-NEXT: [[COPY:%[0-9]+]]:gpr = COPY $x10
64     ; CHECK-NEXT: [[COPY1:%[0-9]+]]:gpr = COPY $x11
65     ; CHECK-NEXT: [[SH3ADD:%[0-9]+]]:gpr = SH3ADD [[COPY]], [[COPY1]]
66     ; CHECK-NEXT: $x10 = COPY [[SH3ADD]]
67     %0:gprb(s32) = COPY $x10
68     %1:gprb(s32) = COPY $x11
69     %2:gprb(s32) = G_CONSTANT i32 3
70     %3:gprb(s32) = G_SHL %0, %2
71     %4:gprb(s32) = G_ADD %3, %1
72     $x10 = COPY %4(s32)
73 ...
74 ---
75 name:            no_sh1add
76 legalized:       true
77 regBankSelected: true
78 tracksRegLiveness: true
79 body:             |
80   bb.0.entry:
81     liveins: $x10, $x11
83     ; CHECK-LABEL: name: no_sh1add
84     ; CHECK: liveins: $x10, $x11
85     ; CHECK-NEXT: {{  $}}
86     ; CHECK-NEXT: [[COPY:%[0-9]+]]:gpr = COPY $x10
87     ; CHECK-NEXT: [[SLLI:%[0-9]+]]:gpr = SLLI [[COPY]], 1
88     ; CHECK-NEXT: [[ADDI:%[0-9]+]]:gpr = ADDI [[SLLI]], 37
89     ; CHECK-NEXT: $x10 = COPY [[ADDI]]
90     %0:gprb(s32) = COPY $x10
91     %1:gprb(s32) = G_CONSTANT i32 37
92     %2:gprb(s32) = G_CONSTANT i32 1
93     %3:gprb(s32) = G_SHL %0, %2
94     %4:gprb(s32) = G_ADD %3, %1
95     $x10 = COPY %4(s32)
96 ...
97 ---
98 name:            shXadd_complex_shl_and
99 legalized:       true
100 regBankSelected: true
101 tracksRegLiveness: true
102 body:             |
103   bb.0.entry:
104     liveins: $x10, $x11
106     ; CHECK-LABEL: name: shXadd_complex_shl_and
107     ; CHECK: liveins: $x10, $x11
108     ; CHECK-NEXT: {{  $}}
109     ; CHECK-NEXT: [[COPY:%[0-9]+]]:gpr = COPY $x10
110     ; CHECK-NEXT: [[COPY1:%[0-9]+]]:gpr = COPY $x11
111     ; CHECK-NEXT: [[SRLI:%[0-9]+]]:gpr = SRLI [[COPY]], 1
112     ; CHECK-NEXT: [[SH2ADD:%[0-9]+]]:gpr = SH2ADD [[SRLI]], [[COPY1]]
113     ; CHECK-NEXT: $x10 = COPY [[SH2ADD]]
114     %0:gprb(s32) = COPY $x10
115     %1:gprb(s32) = COPY $x11
117     %2:gprb(s32) = G_CONSTANT i32 1
118     %3:gprb(s32) = G_SHL %0, %2
119     %4:gprb(s32) = G_CONSTANT i32 4294967292
120     %5:gprb(s32) = G_AND %3, %4
122     %6:gprb(s32) = G_ADD %5, %1
123     $x10 = COPY %6(s32)
126 name:            shXadd_complex_lshr_and
127 legalized:       true
128 regBankSelected: true
129 tracksRegLiveness: true
130 body:             |
131   bb.0.entry:
132     liveins: $x10, $x11
134     ; CHECK-LABEL: name: shXadd_complex_lshr_and
135     ; CHECK: liveins: $x10, $x11
136     ; CHECK-NEXT: {{  $}}
137     ; CHECK-NEXT: [[COPY:%[0-9]+]]:gpr = COPY $x10
138     ; CHECK-NEXT: [[COPY1:%[0-9]+]]:gpr = COPY $x11
139     ; CHECK-NEXT: [[SRLI:%[0-9]+]]:gpr = SRLI [[COPY]], 29
140     ; CHECK-NEXT: [[SH2ADD:%[0-9]+]]:gpr = SH2ADD [[SRLI]], [[COPY1]]
141     ; CHECK-NEXT: $x10 = COPY [[SH2ADD]]
142     %0:gprb(s32) = COPY $x10
143     %1:gprb(s32) = COPY $x11
145     %2:gprb(s32) = G_CONSTANT i32 27
146     %3:gprb(s32) = G_LSHR %0, %2
147     %4:gprb(s32) = G_CONSTANT i32 60
148     %5:gprb(s32) = G_AND %3, %4
150     %6:gprb(s32) = G_ADD %5, %1
151     $x10 = COPY %6(s32)