574 lines · plain
1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py UTC_ARGS: --version 52# RUN: llc -mtriple=riscv32 -run-pass=legalizer %s -o - \3# RUN: | FileCheck %s --check-prefixes=CHECK,RV32I4# RUN: llc -mtriple=riscv32 -mattr=+zbb -run-pass=legalizer %s -o - \5# RUN: | FileCheck %s --check-prefixes=CHECK,RV32ZBB6 7---8name: uaddsat_i329body: |10 bb.1:11 liveins: $x10, $x1112 13 ; RV32I-LABEL: name: uaddsat_i3214 ; RV32I: liveins: $x10, $x1115 ; RV32I-NEXT: {{ $}}16 ; RV32I-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $x1017 ; RV32I-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $x1118 ; RV32I-NEXT: [[ADD:%[0-9]+]]:_(s32) = G_ADD [[COPY]], [[COPY1]]19 ; RV32I-NEXT: [[ICMP:%[0-9]+]]:_(s32) = G_ICMP intpred(ult), [[ADD]](s32), [[COPY1]]20 ; RV32I-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY [[ADD]](s32)21 ; RV32I-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 -122 ; RV32I-NEXT: [[SELECT:%[0-9]+]]:_(s32) = G_SELECT [[ICMP]](s32), [[C]], [[COPY2]]23 ; RV32I-NEXT: $x10 = COPY [[SELECT]](s32)24 ; RV32I-NEXT: PseudoRET implicit $x1025 ;26 ; RV32ZBB-LABEL: name: uaddsat_i3227 ; RV32ZBB: liveins: $x10, $x1128 ; RV32ZBB-NEXT: {{ $}}29 ; RV32ZBB-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $x1030 ; RV32ZBB-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $x1131 ; RV32ZBB-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 -132 ; RV32ZBB-NEXT: [[XOR:%[0-9]+]]:_(s32) = G_XOR [[COPY]], [[C]]33 ; RV32ZBB-NEXT: [[UMIN:%[0-9]+]]:_(s32) = G_UMIN [[XOR]], [[COPY1]]34 ; RV32ZBB-NEXT: [[ADD:%[0-9]+]]:_(s32) = G_ADD [[COPY]], [[UMIN]]35 ; RV32ZBB-NEXT: $x10 = COPY [[ADD]](s32)36 ; RV32ZBB-NEXT: PseudoRET implicit $x1037 %0:_(s32) = COPY $x1038 %1:_(s32) = COPY $x1139 %2:_(s32) = G_UADDSAT %0, %1(s32)40 $x10 = COPY %2(s32)41 PseudoRET implicit $x1042 43...44---45name: uaddsat_i6446body: |47 bb.1:48 liveins: $x10, $x1149 ; CHECK-LABEL: name: uaddsat_i6450 ; CHECK: liveins: $x10, $x1151 ; CHECK-NEXT: {{ $}}52 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $x1053 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $x1154 ; CHECK-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $x1255 ; CHECK-NEXT: [[COPY3:%[0-9]+]]:_(s32) = COPY $x1356 ; CHECK-NEXT: [[ADD:%[0-9]+]]:_(s32) = G_ADD [[COPY]], [[COPY2]]57 ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(s32) = G_ICMP intpred(ult), [[ADD]](s32), [[COPY2]]58 ; CHECK-NEXT: [[COPY4:%[0-9]+]]:_(s32) = COPY [[ADD]](s32)59 ; CHECK-NEXT: [[ADD1:%[0-9]+]]:_(s32) = G_ADD [[COPY1]], [[COPY3]]60 ; CHECK-NEXT: [[ADD2:%[0-9]+]]:_(s32) = G_ADD [[ADD1]], [[ICMP]]61 ; CHECK-NEXT: [[COPY5:%[0-9]+]]:_(s32) = COPY [[ADD2]](s32)62 ; CHECK-NEXT: [[ICMP1:%[0-9]+]]:_(s32) = G_ICMP intpred(ult), [[COPY4]](s32), [[COPY2]]63 ; CHECK-NEXT: [[ICMP2:%[0-9]+]]:_(s32) = G_ICMP intpred(ult), [[COPY5]](s32), [[COPY3]]64 ; CHECK-NEXT: [[ICMP3:%[0-9]+]]:_(s32) = G_ICMP intpred(eq), [[COPY5]](s32), [[COPY3]]65 ; CHECK-NEXT: [[SELECT:%[0-9]+]]:_(s32) = G_SELECT [[ICMP3]](s32), [[ICMP1]], [[ICMP2]]66 ; CHECK-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 -167 ; CHECK-NEXT: [[SELECT1:%[0-9]+]]:_(s32) = G_SELECT [[SELECT]](s32), [[C]], [[COPY4]]68 ; CHECK-NEXT: [[SELECT2:%[0-9]+]]:_(s32) = G_SELECT [[SELECT]](s32), [[C]], [[COPY5]]69 ; CHECK-NEXT: $x10 = COPY [[SELECT1]](s32)70 ; CHECK-NEXT: $x11 = COPY [[SELECT2]](s32)71 ; CHECK-NEXT: PseudoRET implicit $x10, implicit $x1172 %2:_(s32) = COPY $x1073 %3:_(s32) = COPY $x1174 %0:_(s64) = G_MERGE_VALUES %2(s32), %3(s32)75 %4:_(s32) = COPY $x1276 %5:_(s32) = COPY $x1377 %1:_(s64) = G_MERGE_VALUES %4(s32), %5(s32)78 %6:_(s64) = G_UADDSAT %0, %1(s64)79 %7:_(s32), %8:_(s32) = G_UNMERGE_VALUES %6(s64)80 $x10 = COPY %7(s32)81 $x11 = COPY %8(s32)82 PseudoRET implicit $x10, implicit $x1183 84...85---86name: saddsat_i3287body: |88 bb.1:89 liveins: $x10, $x1190 91 ; RV32I-LABEL: name: saddsat_i3292 ; RV32I: liveins: $x10, $x1193 ; RV32I-NEXT: {{ $}}94 ; RV32I-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $x1095 ; RV32I-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $x1196 ; RV32I-NEXT: [[ADD:%[0-9]+]]:_(s32) = G_ADD [[COPY]], [[COPY1]]97 ; RV32I-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 098 ; RV32I-NEXT: [[ICMP:%[0-9]+]]:_(s32) = G_ICMP intpred(slt), [[ADD]](s32), [[COPY]]99 ; RV32I-NEXT: [[ICMP1:%[0-9]+]]:_(s32) = G_ICMP intpred(slt), [[COPY1]](s32), [[C]]100 ; RV32I-NEXT: [[XOR:%[0-9]+]]:_(s32) = G_XOR [[ICMP1]], [[ICMP]]101 ; RV32I-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY [[ADD]](s32)102 ; RV32I-NEXT: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 31103 ; RV32I-NEXT: [[ASHR:%[0-9]+]]:_(s32) = G_ASHR [[COPY2]], [[C1]](s32)104 ; RV32I-NEXT: [[C2:%[0-9]+]]:_(s32) = G_CONSTANT i32 -2147483648105 ; RV32I-NEXT: [[ADD1:%[0-9]+]]:_(s32) = G_ADD [[ASHR]], [[C2]]106 ; RV32I-NEXT: [[SELECT:%[0-9]+]]:_(s32) = G_SELECT [[XOR]](s32), [[ADD1]], [[COPY2]]107 ; RV32I-NEXT: $x10 = COPY [[SELECT]](s32)108 ; RV32I-NEXT: PseudoRET implicit $x10109 ;110 ; RV32ZBB-LABEL: name: saddsat_i32111 ; RV32ZBB: liveins: $x10, $x11112 ; RV32ZBB-NEXT: {{ $}}113 ; RV32ZBB-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $x10114 ; RV32ZBB-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $x11115 ; RV32ZBB-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 2147483647116 ; RV32ZBB-NEXT: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 -2147483648117 ; RV32ZBB-NEXT: [[C2:%[0-9]+]]:_(s32) = G_CONSTANT i32 0118 ; RV32ZBB-NEXT: [[SMAX:%[0-9]+]]:_(s32) = G_SMAX [[COPY]], [[C2]]119 ; RV32ZBB-NEXT: [[SUB:%[0-9]+]]:_(s32) = G_SUB [[C]], [[SMAX]]120 ; RV32ZBB-NEXT: [[SMIN:%[0-9]+]]:_(s32) = G_SMIN [[COPY]], [[C2]]121 ; RV32ZBB-NEXT: [[SUB1:%[0-9]+]]:_(s32) = G_SUB [[C1]], [[SMIN]]122 ; RV32ZBB-NEXT: [[SMAX1:%[0-9]+]]:_(s32) = G_SMAX [[SUB1]], [[COPY1]]123 ; RV32ZBB-NEXT: [[SMIN1:%[0-9]+]]:_(s32) = G_SMIN [[SMAX1]], [[SUB]]124 ; RV32ZBB-NEXT: [[ADD:%[0-9]+]]:_(s32) = G_ADD [[COPY]], [[SMIN1]]125 ; RV32ZBB-NEXT: $x10 = COPY [[ADD]](s32)126 ; RV32ZBB-NEXT: PseudoRET implicit $x10127 %0:_(s32) = COPY $x10128 %1:_(s32) = COPY $x11129 %2:_(s32) = G_SADDSAT %0, %1(s32)130 $x10 = COPY %2(s32)131 PseudoRET implicit $x10132 133...134---135name: saddsat_i64136body: |137 bb.1:138 liveins: $x10, $x11139 ; CHECK-LABEL: name: saddsat_i64140 ; CHECK: liveins: $x10, $x11141 ; CHECK-NEXT: {{ $}}142 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $x10143 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $x11144 ; CHECK-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $x12145 ; CHECK-NEXT: [[COPY3:%[0-9]+]]:_(s32) = COPY $x13146 ; CHECK-NEXT: [[ADD:%[0-9]+]]:_(s32) = G_ADD [[COPY]], [[COPY2]]147 ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(s32) = G_ICMP intpred(ult), [[ADD]](s32), [[COPY2]]148 ; CHECK-NEXT: [[COPY4:%[0-9]+]]:_(s32) = COPY [[ADD]](s32)149 ; CHECK-NEXT: [[ADD1:%[0-9]+]]:_(s32) = G_ADD [[COPY1]], [[COPY3]]150 ; CHECK-NEXT: [[ADD2:%[0-9]+]]:_(s32) = G_ADD [[ADD1]], [[ICMP]]151 ; CHECK-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 0152 ; CHECK-NEXT: [[COPY5:%[0-9]+]]:_(s32) = COPY [[ADD2]](s32)153 ; CHECK-NEXT: [[ICMP1:%[0-9]+]]:_(s32) = G_ICMP intpred(ult), [[COPY4]](s32), [[COPY]]154 ; CHECK-NEXT: [[ICMP2:%[0-9]+]]:_(s32) = G_ICMP intpred(slt), [[COPY5]](s32), [[COPY1]]155 ; CHECK-NEXT: [[ICMP3:%[0-9]+]]:_(s32) = G_ICMP intpred(eq), [[COPY5]](s32), [[COPY1]]156 ; CHECK-NEXT: [[SELECT:%[0-9]+]]:_(s32) = G_SELECT [[ICMP3]](s32), [[ICMP1]], [[ICMP2]]157 ; CHECK-NEXT: [[ICMP4:%[0-9]+]]:_(s32) = G_ICMP intpred(ult), [[COPY2]](s32), [[C]]158 ; CHECK-NEXT: [[ICMP5:%[0-9]+]]:_(s32) = G_ICMP intpred(slt), [[COPY3]](s32), [[C]]159 ; CHECK-NEXT: [[ICMP6:%[0-9]+]]:_(s32) = G_ICMP intpred(eq), [[COPY3]](s32), [[C]]160 ; CHECK-NEXT: [[SELECT1:%[0-9]+]]:_(s32) = G_SELECT [[ICMP6]](s32), [[ICMP4]], [[ICMP5]]161 ; CHECK-NEXT: [[XOR:%[0-9]+]]:_(s32) = G_XOR [[SELECT1]], [[SELECT]]162 ; CHECK-NEXT: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 31163 ; CHECK-NEXT: [[ASHR:%[0-9]+]]:_(s32) = G_ASHR [[COPY5]], [[C1]](s32)164 ; CHECK-NEXT: [[C2:%[0-9]+]]:_(s32) = G_CONSTANT i32 -2147483648165 ; CHECK-NEXT: [[ADD3:%[0-9]+]]:_(s32) = G_ADD [[ASHR]], [[C]]166 ; CHECK-NEXT: [[ICMP7:%[0-9]+]]:_(s32) = G_ICMP intpred(ult), [[ADD3]](s32), [[C]]167 ; CHECK-NEXT: [[COPY6:%[0-9]+]]:_(s32) = COPY [[ADD3]](s32)168 ; CHECK-NEXT: [[ADD4:%[0-9]+]]:_(s32) = G_ADD [[ASHR]], [[C2]]169 ; CHECK-NEXT: [[ADD5:%[0-9]+]]:_(s32) = G_ADD [[ADD4]], [[ICMP7]]170 ; CHECK-NEXT: [[COPY7:%[0-9]+]]:_(s32) = COPY [[ADD5]](s32)171 ; CHECK-NEXT: [[SELECT2:%[0-9]+]]:_(s32) = G_SELECT [[XOR]](s32), [[COPY6]], [[COPY4]]172 ; CHECK-NEXT: [[SELECT3:%[0-9]+]]:_(s32) = G_SELECT [[XOR]](s32), [[COPY7]], [[COPY5]]173 ; CHECK-NEXT: $x10 = COPY [[SELECT2]](s32)174 ; CHECK-NEXT: $x11 = COPY [[SELECT3]](s32)175 ; CHECK-NEXT: PseudoRET implicit $x10, implicit $x11176 %2:_(s32) = COPY $x10177 %3:_(s32) = COPY $x11178 %0:_(s64) = G_MERGE_VALUES %2(s32), %3(s32)179 %4:_(s32) = COPY $x12180 %5:_(s32) = COPY $x13181 %1:_(s64) = G_MERGE_VALUES %4(s32), %5(s32)182 %6:_(s64) = G_SADDSAT %0, %1(s64)183 %7:_(s32), %8:_(s32) = G_UNMERGE_VALUES %6(s64)184 $x10 = COPY %7(s32)185 $x11 = COPY %8(s32)186 PseudoRET implicit $x10, implicit $x11187 188...189---190name: usubsat_i32191body: |192 bb.1:193 liveins: $x10, $x11194 195 ; RV32I-LABEL: name: usubsat_i32196 ; RV32I: liveins: $x10, $x11197 ; RV32I-NEXT: {{ $}}198 ; RV32I-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $x10199 ; RV32I-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $x11200 ; RV32I-NEXT: [[SUB:%[0-9]+]]:_(s32) = G_SUB [[COPY]], [[COPY1]]201 ; RV32I-NEXT: [[ICMP:%[0-9]+]]:_(s32) = G_ICMP intpred(ult), [[COPY]](s32), [[COPY1]]202 ; RV32I-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 0203 ; RV32I-NEXT: [[SELECT:%[0-9]+]]:_(s32) = G_SELECT [[ICMP]](s32), [[C]], [[SUB]]204 ; RV32I-NEXT: $x10 = COPY [[SELECT]](s32)205 ; RV32I-NEXT: PseudoRET implicit $x10206 ;207 ; RV32ZBB-LABEL: name: usubsat_i32208 ; RV32ZBB: liveins: $x10, $x11209 ; RV32ZBB-NEXT: {{ $}}210 ; RV32ZBB-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $x10211 ; RV32ZBB-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $x11212 ; RV32ZBB-NEXT: [[UMIN:%[0-9]+]]:_(s32) = G_UMIN [[COPY]], [[COPY1]]213 ; RV32ZBB-NEXT: [[SUB:%[0-9]+]]:_(s32) = G_SUB [[COPY]], [[UMIN]]214 ; RV32ZBB-NEXT: $x10 = COPY [[SUB]](s32)215 ; RV32ZBB-NEXT: PseudoRET implicit $x10216 %0:_(s32) = COPY $x10217 %1:_(s32) = COPY $x11218 %2:_(s32) = G_USUBSAT %0, %1(s32)219 $x10 = COPY %2(s32)220 PseudoRET implicit $x10221 222...223---224name: usubsat_i64225body: |226 bb.1:227 liveins: $x10, $x11228 ; CHECK-LABEL: name: usubsat_i64229 ; CHECK: liveins: $x10, $x11230 ; CHECK-NEXT: {{ $}}231 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $x10232 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $x11233 ; CHECK-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $x12234 ; CHECK-NEXT: [[COPY3:%[0-9]+]]:_(s32) = COPY $x13235 ; CHECK-NEXT: [[SUB:%[0-9]+]]:_(s32) = G_SUB [[COPY]], [[COPY2]]236 ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(s32) = G_ICMP intpred(ult), [[COPY]](s32), [[COPY2]]237 ; CHECK-NEXT: [[SUB1:%[0-9]+]]:_(s32) = G_SUB [[COPY1]], [[COPY3]]238 ; CHECK-NEXT: [[SUB2:%[0-9]+]]:_(s32) = G_SUB [[SUB1]], [[ICMP]]239 ; CHECK-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 0240 ; CHECK-NEXT: [[ICMP1:%[0-9]+]]:_(s32) = G_ICMP intpred(ult), [[COPY]](s32), [[COPY2]]241 ; CHECK-NEXT: [[ICMP2:%[0-9]+]]:_(s32) = G_ICMP intpred(ult), [[COPY1]](s32), [[COPY3]]242 ; CHECK-NEXT: [[ICMP3:%[0-9]+]]:_(s32) = G_ICMP intpred(eq), [[COPY1]](s32), [[COPY3]]243 ; CHECK-NEXT: [[SELECT:%[0-9]+]]:_(s32) = G_SELECT [[ICMP3]](s32), [[ICMP1]], [[ICMP2]]244 ; CHECK-NEXT: [[SELECT1:%[0-9]+]]:_(s32) = G_SELECT [[SELECT]](s32), [[C]], [[SUB]]245 ; CHECK-NEXT: [[SELECT2:%[0-9]+]]:_(s32) = G_SELECT [[SELECT]](s32), [[C]], [[SUB2]]246 ; CHECK-NEXT: $x10 = COPY [[SELECT1]](s32)247 ; CHECK-NEXT: $x11 = COPY [[SELECT2]](s32)248 ; CHECK-NEXT: PseudoRET implicit $x10, implicit $x11249 %2:_(s32) = COPY $x10250 %3:_(s32) = COPY $x11251 %0:_(s64) = G_MERGE_VALUES %2(s32), %3(s32)252 %4:_(s32) = COPY $x12253 %5:_(s32) = COPY $x13254 %1:_(s64) = G_MERGE_VALUES %4(s32), %5(s32)255 %6:_(s64) = G_USUBSAT %0, %1(s64)256 %7:_(s32), %8:_(s32) = G_UNMERGE_VALUES %6(s64)257 $x10 = COPY %7(s32)258 $x11 = COPY %8(s32)259 PseudoRET implicit $x10, implicit $x11260 261...262---263name: ssubsat_i32264body: |265 bb.1:266 liveins: $x10, $x11267 268 ; RV32I-LABEL: name: ssubsat_i32269 ; RV32I: liveins: $x10, $x11270 ; RV32I-NEXT: {{ $}}271 ; RV32I-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $x10272 ; RV32I-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $x11273 ; RV32I-NEXT: [[SUB:%[0-9]+]]:_(s32) = G_SUB [[COPY]], [[COPY1]]274 ; RV32I-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 0275 ; RV32I-NEXT: [[ICMP:%[0-9]+]]:_(s32) = G_ICMP intpred(slt), [[SUB]](s32), [[COPY]]276 ; RV32I-NEXT: [[ICMP1:%[0-9]+]]:_(s32) = G_ICMP intpred(sgt), [[COPY1]](s32), [[C]]277 ; RV32I-NEXT: [[XOR:%[0-9]+]]:_(s32) = G_XOR [[ICMP1]], [[ICMP]]278 ; RV32I-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY [[SUB]](s32)279 ; RV32I-NEXT: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 31280 ; RV32I-NEXT: [[ASHR:%[0-9]+]]:_(s32) = G_ASHR [[COPY2]], [[C1]](s32)281 ; RV32I-NEXT: [[C2:%[0-9]+]]:_(s32) = G_CONSTANT i32 -2147483648282 ; RV32I-NEXT: [[ADD:%[0-9]+]]:_(s32) = G_ADD [[ASHR]], [[C2]]283 ; RV32I-NEXT: [[SELECT:%[0-9]+]]:_(s32) = G_SELECT [[XOR]](s32), [[ADD]], [[COPY2]]284 ; RV32I-NEXT: $x10 = COPY [[SELECT]](s32)285 ; RV32I-NEXT: PseudoRET implicit $x10286 ;287 ; RV32ZBB-LABEL: name: ssubsat_i32288 ; RV32ZBB: liveins: $x10, $x11289 ; RV32ZBB-NEXT: {{ $}}290 ; RV32ZBB-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $x10291 ; RV32ZBB-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $x11292 ; RV32ZBB-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 2147483647293 ; RV32ZBB-NEXT: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 -2147483648294 ; RV32ZBB-NEXT: [[C2:%[0-9]+]]:_(s32) = G_CONSTANT i32 -1295 ; RV32ZBB-NEXT: [[SMAX:%[0-9]+]]:_(s32) = G_SMAX [[COPY]], [[C2]]296 ; RV32ZBB-NEXT: [[SUB:%[0-9]+]]:_(s32) = G_SUB [[SMAX]], [[C]]297 ; RV32ZBB-NEXT: [[SMIN:%[0-9]+]]:_(s32) = G_SMIN [[COPY]], [[C2]]298 ; RV32ZBB-NEXT: [[SUB1:%[0-9]+]]:_(s32) = G_SUB [[SMIN]], [[C1]]299 ; RV32ZBB-NEXT: [[SMAX1:%[0-9]+]]:_(s32) = G_SMAX [[SUB]], [[COPY1]]300 ; RV32ZBB-NEXT: [[SMIN1:%[0-9]+]]:_(s32) = G_SMIN [[SMAX1]], [[SUB1]]301 ; RV32ZBB-NEXT: [[SUB2:%[0-9]+]]:_(s32) = G_SUB [[COPY]], [[SMIN1]]302 ; RV32ZBB-NEXT: $x10 = COPY [[SUB2]](s32)303 ; RV32ZBB-NEXT: PseudoRET implicit $x10304 %0:_(s32) = COPY $x10305 %1:_(s32) = COPY $x11306 %2:_(s32) = G_SSUBSAT %0, %1(s32)307 $x10 = COPY %2(s32)308 PseudoRET implicit $x10309 310...311---312name: ssubsat_i64313body: |314 bb.1:315 liveins: $x10, $x11316 ; CHECK-LABEL: name: ssubsat_i64317 ; CHECK: liveins: $x10, $x11318 ; CHECK-NEXT: {{ $}}319 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $x10320 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $x11321 ; CHECK-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $x12322 ; CHECK-NEXT: [[COPY3:%[0-9]+]]:_(s32) = COPY $x13323 ; CHECK-NEXT: [[SUB:%[0-9]+]]:_(s32) = G_SUB [[COPY]], [[COPY2]]324 ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(s32) = G_ICMP intpred(ult), [[COPY]](s32), [[COPY2]]325 ; CHECK-NEXT: [[SUB1:%[0-9]+]]:_(s32) = G_SUB [[COPY1]], [[COPY3]]326 ; CHECK-NEXT: [[SUB2:%[0-9]+]]:_(s32) = G_SUB [[SUB1]], [[ICMP]]327 ; CHECK-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 0328 ; CHECK-NEXT: [[ICMP1:%[0-9]+]]:_(s32) = G_ICMP intpred(ult), [[SUB]](s32), [[COPY]]329 ; CHECK-NEXT: [[ICMP2:%[0-9]+]]:_(s32) = G_ICMP intpred(slt), [[SUB2]](s32), [[COPY1]]330 ; CHECK-NEXT: [[ICMP3:%[0-9]+]]:_(s32) = G_ICMP intpred(eq), [[SUB2]](s32), [[COPY1]]331 ; CHECK-NEXT: [[SELECT:%[0-9]+]]:_(s32) = G_SELECT [[ICMP3]](s32), [[ICMP1]], [[ICMP2]]332 ; CHECK-NEXT: [[ICMP4:%[0-9]+]]:_(s32) = G_ICMP intpred(ugt), [[COPY2]](s32), [[C]]333 ; CHECK-NEXT: [[ICMP5:%[0-9]+]]:_(s32) = G_ICMP intpred(sgt), [[COPY3]](s32), [[C]]334 ; CHECK-NEXT: [[ICMP6:%[0-9]+]]:_(s32) = G_ICMP intpred(eq), [[COPY3]](s32), [[C]]335 ; CHECK-NEXT: [[SELECT1:%[0-9]+]]:_(s32) = G_SELECT [[ICMP6]](s32), [[ICMP4]], [[ICMP5]]336 ; CHECK-NEXT: [[XOR:%[0-9]+]]:_(s32) = G_XOR [[SELECT1]], [[SELECT]]337 ; CHECK-NEXT: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 31338 ; CHECK-NEXT: [[ASHR:%[0-9]+]]:_(s32) = G_ASHR [[SUB2]], [[C1]](s32)339 ; CHECK-NEXT: [[C2:%[0-9]+]]:_(s32) = G_CONSTANT i32 -2147483648340 ; CHECK-NEXT: [[ADD:%[0-9]+]]:_(s32) = G_ADD [[ASHR]], [[C]]341 ; CHECK-NEXT: [[ICMP7:%[0-9]+]]:_(s32) = G_ICMP intpred(ult), [[ADD]](s32), [[C]]342 ; CHECK-NEXT: [[COPY4:%[0-9]+]]:_(s32) = COPY [[ADD]](s32)343 ; CHECK-NEXT: [[ADD1:%[0-9]+]]:_(s32) = G_ADD [[ASHR]], [[C2]]344 ; CHECK-NEXT: [[ADD2:%[0-9]+]]:_(s32) = G_ADD [[ADD1]], [[ICMP7]]345 ; CHECK-NEXT: [[COPY5:%[0-9]+]]:_(s32) = COPY [[ADD2]](s32)346 ; CHECK-NEXT: [[SELECT2:%[0-9]+]]:_(s32) = G_SELECT [[XOR]](s32), [[COPY4]], [[SUB]]347 ; CHECK-NEXT: [[SELECT3:%[0-9]+]]:_(s32) = G_SELECT [[XOR]](s32), [[COPY5]], [[SUB2]]348 ; CHECK-NEXT: $x10 = COPY [[SELECT2]](s32)349 ; CHECK-NEXT: $x11 = COPY [[SELECT3]](s32)350 ; CHECK-NEXT: PseudoRET implicit $x10, implicit $x11351 %2:_(s32) = COPY $x10352 %3:_(s32) = COPY $x11353 %0:_(s64) = G_MERGE_VALUES %2(s32), %3(s32)354 %4:_(s32) = COPY $x12355 %5:_(s32) = COPY $x13356 %1:_(s64) = G_MERGE_VALUES %4(s32), %5(s32)357 %6:_(s64) = G_SSUBSAT %0, %1(s64)358 %7:_(s32), %8:_(s32) = G_UNMERGE_VALUES %6(s64)359 $x10 = COPY %7(s32)360 $x11 = COPY %8(s32)361 PseudoRET implicit $x10, implicit $x11362 363...364---365name: uaddsat_i8366body: |367 bb.1:368 liveins: $x10, $x11369 370 ; CHECK-LABEL: name: uaddsat_i8371 ; CHECK: liveins: $x10, $x11372 ; CHECK-NEXT: {{ $}}373 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $x10374 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $x11375 ; CHECK-NEXT: [[ADD:%[0-9]+]]:_(s32) = G_ADD [[COPY]], [[COPY1]]376 ; CHECK-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 255377 ; CHECK-NEXT: [[AND:%[0-9]+]]:_(s32) = G_AND [[ADD]], [[C]]378 ; CHECK-NEXT: [[AND1:%[0-9]+]]:_(s32) = G_AND [[COPY1]], [[C]]379 ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(s32) = G_ICMP intpred(ult), [[AND]](s32), [[AND1]]380 ; CHECK-NEXT: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 -1381 ; CHECK-NEXT: [[SELECT:%[0-9]+]]:_(s32) = G_SELECT [[ICMP]](s32), [[C1]], [[ADD]]382 ; CHECK-NEXT: $x10 = COPY [[SELECT]](s32)383 ; CHECK-NEXT: PseudoRET implicit $x10384 %2:_(s32) = COPY $x10385 %0:_(s8) = G_TRUNC %2(s32)386 %3:_(s32) = COPY $x11387 %1:_(s8) = G_TRUNC %3(s32)388 %4:_(s8) = G_UADDSAT %0, %1(s8)389 %5:_(s32) = G_ANYEXT %4(s8)390 $x10 = COPY %5(s32)391 PseudoRET implicit $x10392 393...394---395name: sshlsat_i32396body: |397 bb.1:398 liveins: $x10, $x11399 400 ; CHECK-LABEL: name: sshlsat_i32401 ; CHECK: liveins: $x10, $x11402 ; CHECK-NEXT: {{ $}}403 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $x10404 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $x11405 ; CHECK-NEXT: [[SHL:%[0-9]+]]:_(s32) = G_SHL [[COPY]], [[COPY1]](s32)406 ; CHECK-NEXT: [[ASHR:%[0-9]+]]:_(s32) = G_ASHR [[SHL]], [[COPY1]](s32)407 ; CHECK-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 -2147483648408 ; CHECK-NEXT: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 2147483647409 ; CHECK-NEXT: [[C2:%[0-9]+]]:_(s32) = G_CONSTANT i32 0410 ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(s32) = G_ICMP intpred(slt), [[COPY]](s32), [[C2]]411 ; CHECK-NEXT: [[SELECT:%[0-9]+]]:_(s32) = G_SELECT [[ICMP]](s32), [[C]], [[C1]]412 ; CHECK-NEXT: [[ICMP1:%[0-9]+]]:_(s32) = G_ICMP intpred(ne), [[COPY]](s32), [[ASHR]]413 ; CHECK-NEXT: [[SELECT1:%[0-9]+]]:_(s32) = G_SELECT [[ICMP1]](s32), [[SELECT]], [[SHL]]414 ; CHECK-NEXT: $x10 = COPY [[SELECT1]](s32)415 ; CHECK-NEXT: PseudoRET implicit $x10416 %0:_(s32) = COPY $x10417 %1:_(s32) = COPY $x11418 %2:_(s32) = G_SSHLSAT %0, %1(s32)419 $x10 = COPY %2(s32)420 PseudoRET implicit $x10421 422...423---424name: sshlsat_i64425body: |426 bb.1:427 liveins: $x10, $x11428 ; CHECK-LABEL: name: sshlsat_i64429 ; CHECK: liveins: $x10, $x11430 ; CHECK-NEXT: {{ $}}431 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $x10432 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $x11433 ; CHECK-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $x12434 ; CHECK-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 32435 ; CHECK-NEXT: [[SUB:%[0-9]+]]:_(s32) = G_SUB [[COPY2]], [[C]]436 ; CHECK-NEXT: [[SUB1:%[0-9]+]]:_(s32) = G_SUB [[C]], [[COPY2]]437 ; CHECK-NEXT: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 0438 ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(s32) = G_ICMP intpred(ult), [[COPY2]](s32), [[C]]439 ; CHECK-NEXT: [[ICMP1:%[0-9]+]]:_(s32) = G_ICMP intpred(eq), [[COPY2]](s32), [[C1]]440 ; CHECK-NEXT: [[SHL:%[0-9]+]]:_(s32) = G_SHL [[COPY]], [[COPY2]](s32)441 ; CHECK-NEXT: [[LSHR:%[0-9]+]]:_(s32) = G_LSHR [[COPY]], [[SUB1]](s32)442 ; CHECK-NEXT: [[SHL1:%[0-9]+]]:_(s32) = G_SHL [[COPY1]], [[COPY2]](s32)443 ; CHECK-NEXT: [[OR:%[0-9]+]]:_(s32) = G_OR [[LSHR]], [[SHL1]]444 ; CHECK-NEXT: [[SHL2:%[0-9]+]]:_(s32) = G_SHL [[COPY]], [[SUB]](s32)445 ; CHECK-NEXT: [[SELECT:%[0-9]+]]:_(s32) = G_SELECT [[ICMP]](s32), [[SHL]], [[C1]]446 ; CHECK-NEXT: [[SELECT1:%[0-9]+]]:_(s32) = G_SELECT [[ICMP]](s32), [[OR]], [[SHL2]]447 ; CHECK-NEXT: [[SELECT2:%[0-9]+]]:_(s32) = G_SELECT [[ICMP1]](s32), [[COPY1]], [[SELECT1]]448 ; CHECK-NEXT: [[ICMP2:%[0-9]+]]:_(s32) = G_ICMP intpred(ult), [[COPY2]](s32), [[C]]449 ; CHECK-NEXT: [[ICMP3:%[0-9]+]]:_(s32) = G_ICMP intpred(eq), [[COPY2]](s32), [[C1]]450 ; CHECK-NEXT: [[ASHR:%[0-9]+]]:_(s32) = G_ASHR [[SELECT2]], [[COPY2]](s32)451 ; CHECK-NEXT: [[LSHR1:%[0-9]+]]:_(s32) = G_LSHR [[SELECT]], [[COPY2]](s32)452 ; CHECK-NEXT: [[SHL3:%[0-9]+]]:_(s32) = G_SHL [[SELECT2]], [[SUB1]](s32)453 ; CHECK-NEXT: [[OR1:%[0-9]+]]:_(s32) = G_OR [[LSHR1]], [[SHL3]]454 ; CHECK-NEXT: [[C2:%[0-9]+]]:_(s32) = G_CONSTANT i32 31455 ; CHECK-NEXT: [[ASHR1:%[0-9]+]]:_(s32) = G_ASHR [[SELECT2]], [[C2]](s32)456 ; CHECK-NEXT: [[ASHR2:%[0-9]+]]:_(s32) = G_ASHR [[SELECT2]], [[SUB]](s32)457 ; CHECK-NEXT: [[SELECT3:%[0-9]+]]:_(s32) = G_SELECT [[ICMP2]](s32), [[OR1]], [[ASHR2]]458 ; CHECK-NEXT: [[SELECT4:%[0-9]+]]:_(s32) = G_SELECT [[ICMP3]](s32), [[SELECT]], [[SELECT3]]459 ; CHECK-NEXT: [[SELECT5:%[0-9]+]]:_(s32) = G_SELECT [[ICMP2]](s32), [[ASHR]], [[ASHR1]]460 ; CHECK-NEXT: [[C3:%[0-9]+]]:_(s32) = G_CONSTANT i32 -2147483648461 ; CHECK-NEXT: [[C4:%[0-9]+]]:_(s32) = G_CONSTANT i32 -1462 ; CHECK-NEXT: [[C5:%[0-9]+]]:_(s32) = G_CONSTANT i32 2147483647463 ; CHECK-NEXT: [[ICMP4:%[0-9]+]]:_(s32) = G_ICMP intpred(ult), [[COPY]](s32), [[C1]]464 ; CHECK-NEXT: [[ICMP5:%[0-9]+]]:_(s32) = G_ICMP intpred(slt), [[COPY1]](s32), [[C1]]465 ; CHECK-NEXT: [[ICMP6:%[0-9]+]]:_(s32) = G_ICMP intpred(eq), [[COPY1]](s32), [[C1]]466 ; CHECK-NEXT: [[SELECT6:%[0-9]+]]:_(s32) = G_SELECT [[ICMP6]](s32), [[ICMP4]], [[ICMP5]]467 ; CHECK-NEXT: [[SELECT7:%[0-9]+]]:_(s32) = G_SELECT [[SELECT6]](s32), [[C1]], [[C4]]468 ; CHECK-NEXT: [[SELECT8:%[0-9]+]]:_(s32) = G_SELECT [[SELECT6]](s32), [[C3]], [[C5]]469 ; CHECK-NEXT: [[XOR:%[0-9]+]]:_(s32) = G_XOR [[COPY]], [[SELECT4]]470 ; CHECK-NEXT: [[XOR1:%[0-9]+]]:_(s32) = G_XOR [[COPY1]], [[SELECT5]]471 ; CHECK-NEXT: [[OR2:%[0-9]+]]:_(s32) = G_OR [[XOR]], [[XOR1]]472 ; CHECK-NEXT: [[ICMP7:%[0-9]+]]:_(s32) = G_ICMP intpred(ne), [[OR2]](s32), [[C1]]473 ; CHECK-NEXT: [[SELECT9:%[0-9]+]]:_(s32) = G_SELECT [[ICMP7]](s32), [[SELECT7]], [[SELECT]]474 ; CHECK-NEXT: [[SELECT10:%[0-9]+]]:_(s32) = G_SELECT [[ICMP7]](s32), [[SELECT8]], [[SELECT2]]475 ; CHECK-NEXT: $x10 = COPY [[SELECT9]](s32)476 ; CHECK-NEXT: $x11 = COPY [[SELECT10]](s32)477 ; CHECK-NEXT: PseudoRET implicit $x10, implicit $x11478 %2:_(s32) = COPY $x10479 %3:_(s32) = COPY $x11480 %0:_(s64) = G_MERGE_VALUES %2(s32), %3(s32)481 %4:_(s32) = COPY $x12482 %5:_(s32) = COPY $x13483 %1:_(s64) = G_MERGE_VALUES %4(s32), %5(s32)484 %6:_(s64) = G_SSHLSAT %0, %1(s64)485 %7:_(s32), %8:_(s32) = G_UNMERGE_VALUES %6(s64)486 $x10 = COPY %7(s32)487 $x11 = COPY %8(s32)488 PseudoRET implicit $x10, implicit $x11489 490...491---492name: ushlsat_i32493body: |494 bb.1:495 liveins: $x10, $x11496 497 ; CHECK-LABEL: name: ushlsat_i32498 ; CHECK: liveins: $x10, $x11499 ; CHECK-NEXT: {{ $}}500 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $x10501 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $x11502 ; CHECK-NEXT: [[SHL:%[0-9]+]]:_(s32) = G_SHL [[COPY]], [[COPY1]](s32)503 ; CHECK-NEXT: [[LSHR:%[0-9]+]]:_(s32) = G_LSHR [[SHL]], [[COPY1]](s32)504 ; CHECK-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 -1505 ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(s32) = G_ICMP intpred(ne), [[COPY]](s32), [[LSHR]]506 ; CHECK-NEXT: [[SELECT:%[0-9]+]]:_(s32) = G_SELECT [[ICMP]](s32), [[C]], [[SHL]]507 ; CHECK-NEXT: $x10 = COPY [[SELECT]](s32)508 ; CHECK-NEXT: PseudoRET implicit $x10509 %0:_(s32) = COPY $x10510 %1:_(s32) = COPY $x11511 %2:_(s32) = G_USHLSAT %0, %1(s32)512 $x10 = COPY %2(s32)513 PseudoRET implicit $x10514 515...516---517name: ushlsat_i64518body: |519 bb.1:520 liveins: $x10, $x11521 ; CHECK-LABEL: name: ushlsat_i64522 ; CHECK: liveins: $x10, $x11523 ; CHECK-NEXT: {{ $}}524 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $x10525 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $x11526 ; CHECK-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $x12527 ; CHECK-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 32528 ; CHECK-NEXT: [[SUB:%[0-9]+]]:_(s32) = G_SUB [[COPY2]], [[C]]529 ; CHECK-NEXT: [[SUB1:%[0-9]+]]:_(s32) = G_SUB [[C]], [[COPY2]]530 ; CHECK-NEXT: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 0531 ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(s32) = G_ICMP intpred(ult), [[COPY2]](s32), [[C]]532 ; CHECK-NEXT: [[ICMP1:%[0-9]+]]:_(s32) = G_ICMP intpred(eq), [[COPY2]](s32), [[C1]]533 ; CHECK-NEXT: [[SHL:%[0-9]+]]:_(s32) = G_SHL [[COPY]], [[COPY2]](s32)534 ; CHECK-NEXT: [[LSHR:%[0-9]+]]:_(s32) = G_LSHR [[COPY]], [[SUB1]](s32)535 ; CHECK-NEXT: [[SHL1:%[0-9]+]]:_(s32) = G_SHL [[COPY1]], [[COPY2]](s32)536 ; CHECK-NEXT: [[OR:%[0-9]+]]:_(s32) = G_OR [[LSHR]], [[SHL1]]537 ; CHECK-NEXT: [[SHL2:%[0-9]+]]:_(s32) = G_SHL [[COPY]], [[SUB]](s32)538 ; CHECK-NEXT: [[SELECT:%[0-9]+]]:_(s32) = G_SELECT [[ICMP]](s32), [[SHL]], [[C1]]539 ; CHECK-NEXT: [[SELECT1:%[0-9]+]]:_(s32) = G_SELECT [[ICMP]](s32), [[OR]], [[SHL2]]540 ; CHECK-NEXT: [[SELECT2:%[0-9]+]]:_(s32) = G_SELECT [[ICMP1]](s32), [[COPY1]], [[SELECT1]]541 ; CHECK-NEXT: [[ICMP2:%[0-9]+]]:_(s32) = G_ICMP intpred(ult), [[COPY2]](s32), [[C]]542 ; CHECK-NEXT: [[ICMP3:%[0-9]+]]:_(s32) = G_ICMP intpred(eq), [[COPY2]](s32), [[C1]]543 ; CHECK-NEXT: [[LSHR1:%[0-9]+]]:_(s32) = G_LSHR [[SELECT2]], [[COPY2]](s32)544 ; CHECK-NEXT: [[LSHR2:%[0-9]+]]:_(s32) = G_LSHR [[SELECT]], [[COPY2]](s32)545 ; CHECK-NEXT: [[SHL3:%[0-9]+]]:_(s32) = G_SHL [[SELECT2]], [[SUB1]](s32)546 ; CHECK-NEXT: [[OR1:%[0-9]+]]:_(s32) = G_OR [[LSHR2]], [[SHL3]]547 ; CHECK-NEXT: [[LSHR3:%[0-9]+]]:_(s32) = G_LSHR [[SELECT2]], [[SUB]](s32)548 ; CHECK-NEXT: [[SELECT3:%[0-9]+]]:_(s32) = G_SELECT [[ICMP2]](s32), [[OR1]], [[LSHR3]]549 ; CHECK-NEXT: [[SELECT4:%[0-9]+]]:_(s32) = G_SELECT [[ICMP3]](s32), [[SELECT]], [[SELECT3]]550 ; CHECK-NEXT: [[SELECT5:%[0-9]+]]:_(s32) = G_SELECT [[ICMP2]](s32), [[LSHR1]], [[C1]]551 ; CHECK-NEXT: [[C2:%[0-9]+]]:_(s32) = G_CONSTANT i32 -1552 ; CHECK-NEXT: [[XOR:%[0-9]+]]:_(s32) = G_XOR [[COPY]], [[SELECT4]]553 ; CHECK-NEXT: [[XOR1:%[0-9]+]]:_(s32) = G_XOR [[COPY1]], [[SELECT5]]554 ; CHECK-NEXT: [[OR2:%[0-9]+]]:_(s32) = G_OR [[XOR]], [[XOR1]]555 ; CHECK-NEXT: [[ICMP4:%[0-9]+]]:_(s32) = G_ICMP intpred(ne), [[OR2]](s32), [[C1]]556 ; CHECK-NEXT: [[SELECT6:%[0-9]+]]:_(s32) = G_SELECT [[ICMP4]](s32), [[C2]], [[SELECT]]557 ; CHECK-NEXT: [[SELECT7:%[0-9]+]]:_(s32) = G_SELECT [[ICMP4]](s32), [[C2]], [[SELECT2]]558 ; CHECK-NEXT: $x10 = COPY [[SELECT6]](s32)559 ; CHECK-NEXT: $x11 = COPY [[SELECT7]](s32)560 ; CHECK-NEXT: PseudoRET implicit $x10, implicit $x11561 %2:_(s32) = COPY $x10562 %3:_(s32) = COPY $x11563 %0:_(s64) = G_MERGE_VALUES %2(s32), %3(s32)564 %4:_(s32) = COPY $x12565 %5:_(s32) = COPY $x13566 %1:_(s64) = G_MERGE_VALUES %4(s32), %5(s32)567 %6:_(s64) = G_USHLSAT %0, %1(s64)568 %7:_(s32), %8:_(s32) = G_UNMERGE_VALUES %6(s64)569 $x10 = COPY %7(s32)570 $x11 = COPY %8(s32)571 PseudoRET implicit $x10, implicit $x11572 573...574