251 lines · plain
1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py UTC_ARGS: --version 32# RUN: llc -mtriple=riscv64 -mattr='+zba' -run-pass=instruction-select -simplify-mir -verify-machineinstrs %s -o - \3# RUN: | FileCheck %s4 5---6name: sh1add7legalized: true8regBankSelected: true9tracksRegLiveness: true10body: |11 bb.0.entry:12 liveins: $x10, $x1113 14 ; CHECK-LABEL: name: sh1add15 ; CHECK: liveins: $x10, $x1116 ; CHECK-NEXT: {{ $}}17 ; CHECK-NEXT: [[COPY:%[0-9]+]]:gpr = COPY $x1018 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:gpr = COPY $x1119 ; CHECK-NEXT: [[SH1ADD:%[0-9]+]]:gpr = SH1ADD [[COPY]], [[COPY1]]20 ; CHECK-NEXT: $x10 = COPY [[SH1ADD]]21 %0:gprb(s64) = COPY $x1022 %1:gprb(s64) = COPY $x1123 %2:gprb(s64) = G_CONSTANT i64 124 %3:gprb(s64) = G_SHL %0, %225 %4:gprb(s64) = G_ADD %3, %126 $x10 = COPY %4(s64)27...28---29name: sh2add30legalized: true31regBankSelected: true32tracksRegLiveness: true33body: |34 bb.0.entry:35 liveins: $x10, $x1136 37 ; CHECK-LABEL: name: sh2add38 ; CHECK: liveins: $x10, $x1139 ; CHECK-NEXT: {{ $}}40 ; CHECK-NEXT: [[COPY:%[0-9]+]]:gpr = COPY $x1041 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:gpr = COPY $x1142 ; CHECK-NEXT: [[SH2ADD:%[0-9]+]]:gpr = SH2ADD [[COPY]], [[COPY1]]43 ; CHECK-NEXT: $x10 = COPY [[SH2ADD]]44 %0:gprb(s64) = COPY $x1045 %1:gprb(s64) = COPY $x1146 %2:gprb(s64) = G_CONSTANT i64 247 %3:gprb(s64) = G_SHL %0, %248 %4:gprb(s64) = G_ADD %3, %149 $x10 = COPY %4(s64)50...51---52name: sh3add53legalized: true54regBankSelected: true55tracksRegLiveness: true56body: |57 bb.0.entry:58 liveins: $x10, $x1159 60 ; CHECK-LABEL: name: sh3add61 ; CHECK: liveins: $x10, $x1162 ; CHECK-NEXT: {{ $}}63 ; CHECK-NEXT: [[COPY:%[0-9]+]]:gpr = COPY $x1064 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:gpr = COPY $x1165 ; CHECK-NEXT: [[SH3ADD:%[0-9]+]]:gpr = SH3ADD [[COPY]], [[COPY1]]66 ; CHECK-NEXT: $x10 = COPY [[SH3ADD]]67 %0:gprb(s64) = COPY $x1068 %1:gprb(s64) = COPY $x1169 %2:gprb(s64) = G_CONSTANT i64 370 %3:gprb(s64) = G_SHL %0, %271 %4:gprb(s64) = G_ADD %3, %172 $x10 = COPY %4(s64)73...74---75name: no_sh1add76legalized: true77regBankSelected: true78tracksRegLiveness: true79body: |80 bb.0.entry:81 liveins: $x10, $x1182 83 ; CHECK-LABEL: name: no_sh1add84 ; CHECK: liveins: $x10, $x1185 ; CHECK-NEXT: {{ $}}86 ; CHECK-NEXT: [[COPY:%[0-9]+]]:gpr = COPY $x1087 ; CHECK-NEXT: [[SLLI:%[0-9]+]]:gpr = SLLI [[COPY]], 188 ; CHECK-NEXT: [[ADDI:%[0-9]+]]:gpr = ADDI [[SLLI]], 3789 ; CHECK-NEXT: $x10 = COPY [[ADDI]]90 %0:gprb(s64) = COPY $x1091 %1:gprb(s64) = G_CONSTANT i64 3792 %2:gprb(s64) = G_CONSTANT i64 193 %3:gprb(s64) = G_SHL %0, %294 %4:gprb(s64) = G_ADD %3, %195 $x10 = COPY %4(s64)96...97---98name: shXadd_complex_and_shl99legalized: true100regBankSelected: true101tracksRegLiveness: true102body: |103 bb.0.entry:104 liveins: $x10, $x11105 106 ; CHECK-LABEL: name: shXadd_complex_and_shl107 ; CHECK: liveins: $x10, $x11108 ; CHECK-NEXT: {{ $}}109 ; CHECK-NEXT: [[COPY:%[0-9]+]]:gpr = COPY $x10110 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:gpr = COPY $x11111 ; CHECK-NEXT: [[SRLIW:%[0-9]+]]:gpr = SRLIW [[COPY]], 1112 ; CHECK-NEXT: [[SH3ADD:%[0-9]+]]:gpr = SH3ADD [[SRLIW]], [[COPY1]]113 ; CHECK-NEXT: $x10 = COPY [[SH3ADD]]114 %0:gprb(s64) = COPY $x10115 %1:gprb(s64) = COPY $x11116 117 %2:gprb(s64) = G_CONSTANT i64 4294967294118 %3:gprb(s64) = G_AND %0, %2119 %4:gprb(s64) = G_CONSTANT i64 2120 %5:gprb(s64) = G_SHL %3, %4121 122 %6:gprb(s64) = G_ADD %5, %1123 $x10 = COPY %6(s64)124...125---126name: shXadd_complex_and_lshr127legalized: true128regBankSelected: true129tracksRegLiveness: true130body: |131 bb.0.entry:132 liveins: $x10, $x11133 134 ; CHECK-LABEL: name: shXadd_complex_and_lshr135 ; CHECK: liveins: $x10, $x11136 ; CHECK-NEXT: {{ $}}137 ; CHECK-NEXT: [[COPY:%[0-9]+]]:gpr = COPY $x10138 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:gpr = COPY $x11139 ; CHECK-NEXT: [[SRLIW:%[0-9]+]]:gpr = SRLIW [[COPY]], 2140 ; CHECK-NEXT: [[SH1ADD:%[0-9]+]]:gpr = SH1ADD [[SRLIW]], [[COPY1]]141 ; CHECK-NEXT: $x10 = COPY [[SH1ADD]]142 %0:gprb(s64) = COPY $x10143 %1:gprb(s64) = COPY $x11144 145 %2:gprb(s64) = G_CONSTANT i64 4294967292146 %3:gprb(s64) = G_AND %0, %2147 %4:gprb(s64) = G_CONSTANT i64 1148 %5:gprb(s64) = G_LSHR %3, %4149 150 %6:gprb(s64) = G_ADD %5, %1151 $x10 = COPY %6(s64)152...153---154name: shXadd_uw_complex_shl_and155legalized: true156regBankSelected: true157tracksRegLiveness: true158body: |159 bb.0.entry:160 liveins: $x10, $x11161 162 ; CHECK-LABEL: name: shXadd_uw_complex_shl_and163 ; CHECK: liveins: $x10, $x11164 ; CHECK-NEXT: {{ $}}165 ; CHECK-NEXT: [[COPY:%[0-9]+]]:gpr = COPY $x10166 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:gpr = COPY $x11167 ; CHECK-NEXT: [[SLLI:%[0-9]+]]:gpr = SLLI [[COPY]], 1168 ; CHECK-NEXT: [[SH2ADD_UW:%[0-9]+]]:gpr = SH2ADD_UW [[SLLI]], [[COPY1]]169 ; CHECK-NEXT: $x10 = COPY [[SH2ADD_UW]]170 %0:gprb(s64) = COPY $x10171 %1:gprb(s64) = COPY $x11172 173 %2:gprb(s64) = G_CONSTANT i64 3174 %3:gprb(s64) = G_SHL %0, %2175 %4:gprb(s64) = G_CONSTANT i64 17179869183176 %5:gprb(s64) = G_AND %3, %4177 178 %6:gprb(s64) = G_ADD %5, %1179 $x10 = COPY %6(s64)180...181---182name: slli_uw183legalized: true184regBankSelected: true185tracksRegLiveness: true186body: |187 bb.0.entry:188 liveins: $x10189 190 ; CHECK-LABEL: name: slli_uw191 ; CHECK: liveins: $x10192 ; CHECK-NEXT: {{ $}}193 ; CHECK-NEXT: [[COPY:%[0-9]+]]:gpr = COPY $x10194 ; CHECK-NEXT: [[SLLI_UW:%[0-9]+]]:gpr = SLLI_UW [[COPY]], 7195 ; CHECK-NEXT: $x10 = COPY [[SLLI_UW]]196 %0:gprb(s64) = COPY $x10197 198 %1:gprb(s64) = G_CONSTANT i64 4294967295199 %2:gprb(s64) = G_AND %0, %1200 %3:gprb(s64) = G_CONSTANT i64 7201 %4:gprb(s64) = G_SHL %2, %3202 203 $x10 = COPY %4(s64)204...205---206name: slli_uw_complex207legalized: true208regBankSelected: true209tracksRegLiveness: true210body: |211 bb.0.entry:212 liveins: $x10213 214 ; CHECK-LABEL: name: slli_uw_complex215 ; CHECK: liveins: $x10216 ; CHECK-NEXT: {{ $}}217 ; CHECK-NEXT: [[COPY:%[0-9]+]]:gpr = COPY $x10218 ; CHECK-NEXT: [[SRLI:%[0-9]+]]:gpr = SRLI [[COPY]], 2219 ; CHECK-NEXT: [[SLLI_UW:%[0-9]+]]:gpr = SLLI_UW [[SRLI]], 2220 ; CHECK-NEXT: $x10 = COPY [[SLLI_UW]]221 %0:gprb(s64) = COPY $x10222 223 %1:gprb(s64) = G_CONSTANT i64 17179869180224 %2:gprb(s64) = G_AND %0, %1225 226 $x10 = COPY %2(s64)227...228---229name: adduw230legalized: true231regBankSelected: true232tracksRegLiveness: true233body: |234 bb.0.entry:235 liveins: $x10, $x11236 237 ; CHECK-LABEL: name: adduw238 ; CHECK: liveins: $x10, $x11239 ; CHECK-NEXT: {{ $}}240 ; CHECK-NEXT: [[COPY:%[0-9]+]]:gpr = COPY $x10241 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:gpr = COPY $x11242 ; CHECK-NEXT: [[ADD_UW:%[0-9]+]]:gpr = ADD_UW [[COPY]], [[COPY1]]243 ; CHECK-NEXT: $x10 = COPY [[ADD_UW]]244 %0:gprb(s64) = COPY $x10245 %1:gprb(s64) = COPY $x11246 %2:gprb(s64) = G_CONSTANT i64 4294967295247 %3:gprb(s64) = G_AND %0, %2248 %4:gprb(s64) = G_ADD %3, %1249 $x10 = COPY %4(s64)250...251