365 lines · plain
1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py2# RUN: llc -mtriple=riscv32 -run-pass=legalizer %s -o - \3# RUN: | FileCheck %s4 5---6name: fshl_i87body: |8 bb.1:9 liveins: $x10, $x11, $x1210 11 ; CHECK-LABEL: name: fshl_i812 ; CHECK: liveins: $x10, $x11, $x1213 ; CHECK-NEXT: {{ $}}14 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $x1015 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $x1116 ; CHECK-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $x1217 ; CHECK-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 718 ; CHECK-NEXT: [[AND:%[0-9]+]]:_(s32) = G_AND [[COPY2]], [[C]]19 ; CHECK-NEXT: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 -120 ; CHECK-NEXT: [[XOR:%[0-9]+]]:_(s32) = G_XOR [[COPY2]], [[C1]]21 ; CHECK-NEXT: [[AND1:%[0-9]+]]:_(s32) = G_AND [[XOR]], [[C]]22 ; CHECK-NEXT: [[C2:%[0-9]+]]:_(s32) = G_CONSTANT i32 123 ; CHECK-NEXT: [[SHL:%[0-9]+]]:_(s32) = G_SHL [[COPY]], [[AND]](s32)24 ; CHECK-NEXT: [[C3:%[0-9]+]]:_(s32) = G_CONSTANT i32 25525 ; CHECK-NEXT: [[AND2:%[0-9]+]]:_(s32) = G_AND [[COPY1]], [[C3]]26 ; CHECK-NEXT: [[LSHR:%[0-9]+]]:_(s32) = G_LSHR [[AND2]], [[C2]](s32)27 ; CHECK-NEXT: [[LSHR1:%[0-9]+]]:_(s32) = G_LSHR [[LSHR]], [[AND1]](s32)28 ; CHECK-NEXT: [[OR:%[0-9]+]]:_(s32) = disjoint G_OR [[SHL]], [[LSHR1]]29 ; CHECK-NEXT: $x10 = COPY [[OR]](s32)30 ; CHECK-NEXT: PseudoRET implicit $x1031 %3:_(s32) = COPY $x1032 %0:_(s8) = G_TRUNC %3(s32)33 %4:_(s32) = COPY $x1134 %1:_(s8) = G_TRUNC %4(s32)35 %5:_(s32) = COPY $x1236 %2:_(s8) = G_TRUNC %5(s32)37 %6:_(s8) = G_FSHL %0, %1, %2(s8)38 %7:_(s32) = G_ANYEXT %6(s8)39 $x10 = COPY %7(s32)40 PseudoRET implicit $x1041 42...43---44name: fshl_i1645body: |46 bb.1:47 liveins: $x10, $x11, $x1248 49 ; CHECK-LABEL: name: fshl_i1650 ; CHECK: liveins: $x10, $x11, $x1251 ; 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: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 1556 ; CHECK-NEXT: [[AND:%[0-9]+]]:_(s32) = G_AND [[COPY2]], [[C]]57 ; CHECK-NEXT: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 -158 ; CHECK-NEXT: [[XOR:%[0-9]+]]:_(s32) = G_XOR [[COPY2]], [[C1]]59 ; CHECK-NEXT: [[AND1:%[0-9]+]]:_(s32) = G_AND [[XOR]], [[C]]60 ; CHECK-NEXT: [[C2:%[0-9]+]]:_(s32) = G_CONSTANT i32 161 ; CHECK-NEXT: [[SHL:%[0-9]+]]:_(s32) = G_SHL [[COPY]], [[AND]](s32)62 ; CHECK-NEXT: [[C3:%[0-9]+]]:_(s32) = G_CONSTANT i32 6553563 ; CHECK-NEXT: [[AND2:%[0-9]+]]:_(s32) = G_AND [[COPY1]], [[C3]]64 ; CHECK-NEXT: [[LSHR:%[0-9]+]]:_(s32) = G_LSHR [[AND2]], [[C2]](s32)65 ; CHECK-NEXT: [[LSHR1:%[0-9]+]]:_(s32) = G_LSHR [[LSHR]], [[AND1]](s32)66 ; CHECK-NEXT: [[OR:%[0-9]+]]:_(s32) = disjoint G_OR [[SHL]], [[LSHR1]]67 ; CHECK-NEXT: $x10 = COPY [[OR]](s32)68 ; CHECK-NEXT: PseudoRET implicit $x1069 %3:_(s32) = COPY $x1070 %0:_(s16) = G_TRUNC %3(s32)71 %4:_(s32) = COPY $x1172 %1:_(s16) = G_TRUNC %4(s32)73 %5:_(s32) = COPY $x1274 %2:_(s16) = G_TRUNC %5(s32)75 %6:_(s16) = G_FSHL %0, %1, %2(s16)76 %7:_(s32) = G_ANYEXT %6(s16)77 $x10 = COPY %7(s32)78 PseudoRET implicit $x1079 80...81---82name: fshl_i3283body: |84 bb.1:85 liveins: $x10, $x11, $x1286 87 ; CHECK-LABEL: name: fshl_i3288 ; CHECK: liveins: $x10, $x11, $x1289 ; CHECK-NEXT: {{ $}}90 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $x1091 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $x1192 ; CHECK-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $x1293 ; CHECK-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 3194 ; CHECK-NEXT: [[AND:%[0-9]+]]:_(s32) = G_AND [[COPY2]], [[C]]95 ; CHECK-NEXT: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 -196 ; CHECK-NEXT: [[XOR:%[0-9]+]]:_(s32) = G_XOR [[COPY2]], [[C1]]97 ; CHECK-NEXT: [[AND1:%[0-9]+]]:_(s32) = G_AND [[XOR]], [[C]]98 ; CHECK-NEXT: [[C2:%[0-9]+]]:_(s32) = G_CONSTANT i32 199 ; CHECK-NEXT: [[SHL:%[0-9]+]]:_(s32) = G_SHL [[COPY]], [[AND]](s32)100 ; CHECK-NEXT: [[LSHR:%[0-9]+]]:_(s32) = G_LSHR [[COPY1]], [[C2]](s32)101 ; CHECK-NEXT: [[LSHR1:%[0-9]+]]:_(s32) = G_LSHR [[LSHR]], [[AND1]](s32)102 ; CHECK-NEXT: [[OR:%[0-9]+]]:_(s32) = disjoint G_OR [[SHL]], [[LSHR1]]103 ; CHECK-NEXT: $x10 = COPY [[OR]](s32)104 ; CHECK-NEXT: PseudoRET implicit $x10105 %0:_(s32) = COPY $x10106 %1:_(s32) = COPY $x11107 %2:_(s32) = COPY $x12108 %3:_(s32) = G_FSHL %0, %1, %2(s32)109 $x10 = COPY %3(s32)110 PseudoRET implicit $x10111 112...113---114name: fshl_i64115body: |116 bb.1:117 liveins: $x10, $x11, $x12, $x13, $x14, $x15118 119 ; CHECK-LABEL: name: fshl_i64120 ; CHECK: liveins: $x10, $x11, $x12, $x13, $x14, $x15121 ; CHECK-NEXT: {{ $}}122 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $x10123 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $x11124 ; CHECK-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $x12125 ; CHECK-NEXT: [[COPY3:%[0-9]+]]:_(s32) = COPY $x13126 ; CHECK-NEXT: [[COPY4:%[0-9]+]]:_(s32) = COPY $x14127 ; CHECK-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 63128 ; CHECK-NEXT: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 0129 ; CHECK-NEXT: [[AND:%[0-9]+]]:_(s32) = G_AND [[COPY4]], [[C]]130 ; CHECK-NEXT: [[C2:%[0-9]+]]:_(s32) = G_CONSTANT i32 -1131 ; CHECK-NEXT: [[XOR:%[0-9]+]]:_(s32) = G_XOR [[COPY4]], [[C2]]132 ; CHECK-NEXT: [[AND1:%[0-9]+]]:_(s32) = G_AND [[XOR]], [[C]]133 ; CHECK-NEXT: [[C3:%[0-9]+]]:_(s32) = G_CONSTANT i32 1134 ; CHECK-NEXT: [[C4:%[0-9]+]]:_(s32) = G_CONSTANT i32 32135 ; CHECK-NEXT: [[SUB:%[0-9]+]]:_(s32) = G_SUB [[AND]], [[C4]]136 ; CHECK-NEXT: [[SUB1:%[0-9]+]]:_(s32) = G_SUB [[C4]], [[AND]]137 ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(s32) = G_ICMP intpred(ult), [[AND]](s32), [[C4]]138 ; CHECK-NEXT: [[ICMP1:%[0-9]+]]:_(s32) = G_ICMP intpred(eq), [[AND]](s32), [[C1]]139 ; CHECK-NEXT: [[SHL:%[0-9]+]]:_(s32) = G_SHL [[COPY]], [[AND]](s32)140 ; CHECK-NEXT: [[LSHR:%[0-9]+]]:_(s32) = G_LSHR [[COPY]], [[SUB1]](s32)141 ; CHECK-NEXT: [[SHL1:%[0-9]+]]:_(s32) = G_SHL [[COPY1]], [[AND]](s32)142 ; CHECK-NEXT: [[OR:%[0-9]+]]:_(s32) = G_OR [[LSHR]], [[SHL1]]143 ; CHECK-NEXT: [[SHL2:%[0-9]+]]:_(s32) = G_SHL [[COPY]], [[SUB]](s32)144 ; CHECK-NEXT: [[SELECT:%[0-9]+]]:_(s32) = G_SELECT [[ICMP]](s32), [[SHL]], [[C1]]145 ; CHECK-NEXT: [[SELECT1:%[0-9]+]]:_(s32) = G_SELECT [[ICMP]](s32), [[OR]], [[SHL2]]146 ; CHECK-NEXT: [[SELECT2:%[0-9]+]]:_(s32) = G_SELECT [[ICMP1]](s32), [[COPY1]], [[SELECT1]]147 ; CHECK-NEXT: [[LSHR1:%[0-9]+]]:_(s32) = G_LSHR [[COPY2]], [[C3]](s32)148 ; CHECK-NEXT: [[C5:%[0-9]+]]:_(s32) = G_CONSTANT i32 31149 ; CHECK-NEXT: [[SHL3:%[0-9]+]]:_(s32) = G_SHL [[COPY3]], [[C5]](s32)150 ; CHECK-NEXT: [[OR1:%[0-9]+]]:_(s32) = G_OR [[LSHR1]], [[SHL3]]151 ; CHECK-NEXT: [[LSHR2:%[0-9]+]]:_(s32) = G_LSHR [[COPY3]], [[C3]](s32)152 ; CHECK-NEXT: [[SUB2:%[0-9]+]]:_(s32) = G_SUB [[AND1]], [[C4]]153 ; CHECK-NEXT: [[SUB3:%[0-9]+]]:_(s32) = G_SUB [[C4]], [[AND1]]154 ; CHECK-NEXT: [[ICMP2:%[0-9]+]]:_(s32) = G_ICMP intpred(ult), [[AND1]](s32), [[C4]]155 ; CHECK-NEXT: [[ICMP3:%[0-9]+]]:_(s32) = G_ICMP intpred(eq), [[AND1]](s32), [[C1]]156 ; CHECK-NEXT: [[LSHR3:%[0-9]+]]:_(s32) = G_LSHR [[LSHR2]], [[AND1]](s32)157 ; CHECK-NEXT: [[LSHR4:%[0-9]+]]:_(s32) = G_LSHR [[OR1]], [[AND1]](s32)158 ; CHECK-NEXT: [[SHL4:%[0-9]+]]:_(s32) = G_SHL [[LSHR2]], [[SUB3]](s32)159 ; CHECK-NEXT: [[OR2:%[0-9]+]]:_(s32) = G_OR [[LSHR4]], [[SHL4]]160 ; CHECK-NEXT: [[LSHR5:%[0-9]+]]:_(s32) = G_LSHR [[LSHR2]], [[SUB2]](s32)161 ; CHECK-NEXT: [[SELECT3:%[0-9]+]]:_(s32) = G_SELECT [[ICMP2]](s32), [[OR2]], [[LSHR5]]162 ; CHECK-NEXT: [[SELECT4:%[0-9]+]]:_(s32) = G_SELECT [[ICMP3]](s32), [[OR1]], [[SELECT3]]163 ; CHECK-NEXT: [[SELECT5:%[0-9]+]]:_(s32) = G_SELECT [[ICMP2]](s32), [[LSHR3]], [[C1]]164 ; CHECK-NEXT: [[OR3:%[0-9]+]]:_(s32) = G_OR [[SELECT]], [[SELECT4]]165 ; CHECK-NEXT: [[OR4:%[0-9]+]]:_(s32) = G_OR [[SELECT2]], [[SELECT5]]166 ; CHECK-NEXT: $x10 = COPY [[OR3]](s32)167 ; CHECK-NEXT: $x11 = COPY [[OR4]](s32)168 ; CHECK-NEXT: PseudoRET implicit $x10, implicit $x11169 %3:_(s32) = COPY $x10170 %4:_(s32) = COPY $x11171 %0:_(s64) = G_MERGE_VALUES %3(s32), %4(s32)172 %5:_(s32) = COPY $x12173 %6:_(s32) = COPY $x13174 %1:_(s64) = G_MERGE_VALUES %5(s32), %6(s32)175 %7:_(s32) = COPY $x14176 %8:_(s32) = COPY $x15177 %2:_(s64) = G_MERGE_VALUES %7(s32), %8(s32)178 %9:_(s64) = G_FSHL %0, %1, %2(s64)179 %10:_(s32), %11:_(s32) = G_UNMERGE_VALUES %9(s64)180 $x10 = COPY %10(s32)181 $x11 = COPY %11(s32)182 PseudoRET implicit $x10, implicit $x11183 184...185---186name: fshr_i8187body: |188 bb.1:189 liveins: $x10, $x11, $x12190 191 ; CHECK-LABEL: name: fshr_i8192 ; CHECK: liveins: $x10, $x11, $x12193 ; CHECK-NEXT: {{ $}}194 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $x10195 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $x11196 ; CHECK-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $x12197 ; CHECK-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 7198 ; CHECK-NEXT: [[AND:%[0-9]+]]:_(s32) = G_AND [[COPY2]], [[C]]199 ; CHECK-NEXT: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 -1200 ; CHECK-NEXT: [[XOR:%[0-9]+]]:_(s32) = G_XOR [[COPY2]], [[C1]]201 ; CHECK-NEXT: [[AND1:%[0-9]+]]:_(s32) = G_AND [[XOR]], [[C]]202 ; CHECK-NEXT: [[C2:%[0-9]+]]:_(s32) = G_CONSTANT i32 1203 ; CHECK-NEXT: [[SHL:%[0-9]+]]:_(s32) = G_SHL [[COPY]], [[C2]](s32)204 ; CHECK-NEXT: [[SHL1:%[0-9]+]]:_(s32) = G_SHL [[SHL]], [[AND1]](s32)205 ; CHECK-NEXT: [[C3:%[0-9]+]]:_(s32) = G_CONSTANT i32 255206 ; CHECK-NEXT: [[AND2:%[0-9]+]]:_(s32) = G_AND [[COPY1]], [[C3]]207 ; CHECK-NEXT: [[LSHR:%[0-9]+]]:_(s32) = G_LSHR [[AND2]], [[AND]](s32)208 ; CHECK-NEXT: [[OR:%[0-9]+]]:_(s32) = disjoint G_OR [[SHL1]], [[LSHR]]209 ; CHECK-NEXT: $x10 = COPY [[OR]](s32)210 ; CHECK-NEXT: PseudoRET implicit $x10211 %3:_(s32) = COPY $x10212 %0:_(s8) = G_TRUNC %3(s32)213 %4:_(s32) = COPY $x11214 %1:_(s8) = G_TRUNC %4(s32)215 %5:_(s32) = COPY $x12216 %2:_(s8) = G_TRUNC %5(s32)217 %6:_(s8) = G_FSHR %0, %1, %2(s8)218 %7:_(s32) = G_ANYEXT %6(s8)219 $x10 = COPY %7(s32)220 PseudoRET implicit $x10221 222...223---224name: fshr_i16225body: |226 bb.1:227 liveins: $x10, $x11, $x12228 229 ; CHECK-LABEL: name: fshr_i16230 ; CHECK: liveins: $x10, $x11, $x12231 ; CHECK-NEXT: {{ $}}232 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $x10233 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $x11234 ; CHECK-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $x12235 ; CHECK-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 15236 ; CHECK-NEXT: [[AND:%[0-9]+]]:_(s32) = G_AND [[COPY2]], [[C]]237 ; CHECK-NEXT: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 -1238 ; CHECK-NEXT: [[XOR:%[0-9]+]]:_(s32) = G_XOR [[COPY2]], [[C1]]239 ; CHECK-NEXT: [[AND1:%[0-9]+]]:_(s32) = G_AND [[XOR]], [[C]]240 ; CHECK-NEXT: [[C2:%[0-9]+]]:_(s32) = G_CONSTANT i32 1241 ; CHECK-NEXT: [[SHL:%[0-9]+]]:_(s32) = G_SHL [[COPY]], [[C2]](s32)242 ; CHECK-NEXT: [[SHL1:%[0-9]+]]:_(s32) = G_SHL [[SHL]], [[AND1]](s32)243 ; CHECK-NEXT: [[C3:%[0-9]+]]:_(s32) = G_CONSTANT i32 65535244 ; CHECK-NEXT: [[AND2:%[0-9]+]]:_(s32) = G_AND [[COPY1]], [[C3]]245 ; CHECK-NEXT: [[LSHR:%[0-9]+]]:_(s32) = G_LSHR [[AND2]], [[AND]](s32)246 ; CHECK-NEXT: [[OR:%[0-9]+]]:_(s32) = disjoint G_OR [[SHL1]], [[LSHR]]247 ; CHECK-NEXT: $x10 = COPY [[OR]](s32)248 ; CHECK-NEXT: PseudoRET implicit $x10249 %3:_(s32) = COPY $x10250 %0:_(s16) = G_TRUNC %3(s32)251 %4:_(s32) = COPY $x11252 %1:_(s16) = G_TRUNC %4(s32)253 %5:_(s32) = COPY $x12254 %2:_(s16) = G_TRUNC %5(s32)255 %6:_(s16) = G_FSHR %0, %1, %2(s16)256 %7:_(s32) = G_ANYEXT %6(s16)257 $x10 = COPY %7(s32)258 PseudoRET implicit $x10259 260...261---262name: fshr_i32263body: |264 bb.1:265 liveins: $x10, $x11, $x12266 267 ; CHECK-LABEL: name: fshr_i32268 ; CHECK: liveins: $x10, $x11, $x12269 ; CHECK-NEXT: {{ $}}270 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $x10271 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $x11272 ; CHECK-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $x12273 ; CHECK-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 31274 ; CHECK-NEXT: [[AND:%[0-9]+]]:_(s32) = G_AND [[COPY2]], [[C]]275 ; CHECK-NEXT: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 -1276 ; CHECK-NEXT: [[XOR:%[0-9]+]]:_(s32) = G_XOR [[COPY2]], [[C1]]277 ; CHECK-NEXT: [[AND1:%[0-9]+]]:_(s32) = G_AND [[XOR]], [[C]]278 ; CHECK-NEXT: [[C2:%[0-9]+]]:_(s32) = G_CONSTANT i32 1279 ; CHECK-NEXT: [[SHL:%[0-9]+]]:_(s32) = G_SHL [[COPY]], [[C2]](s32)280 ; CHECK-NEXT: [[SHL1:%[0-9]+]]:_(s32) = G_SHL [[SHL]], [[AND1]](s32)281 ; CHECK-NEXT: [[LSHR:%[0-9]+]]:_(s32) = G_LSHR [[COPY1]], [[AND]](s32)282 ; CHECK-NEXT: [[OR:%[0-9]+]]:_(s32) = disjoint G_OR [[SHL1]], [[LSHR]]283 ; CHECK-NEXT: $x10 = COPY [[OR]](s32)284 ; CHECK-NEXT: PseudoRET implicit $x10285 %0:_(s32) = COPY $x10286 %1:_(s32) = COPY $x11287 %2:_(s32) = COPY $x12288 %3:_(s32) = G_FSHR %0, %1, %2(s32)289 $x10 = COPY %3(s32)290 PseudoRET implicit $x10291 292...293---294name: fshr_i64295body: |296 bb.1:297 liveins: $x10, $x11, $x12, $x13, $x14, $x15298 299 ; CHECK-LABEL: name: fshr_i64300 ; CHECK: liveins: $x10, $x11, $x12, $x13, $x14, $x15301 ; CHECK-NEXT: {{ $}}302 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $x10303 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $x11304 ; CHECK-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $x12305 ; CHECK-NEXT: [[COPY3:%[0-9]+]]:_(s32) = COPY $x13306 ; CHECK-NEXT: [[COPY4:%[0-9]+]]:_(s32) = COPY $x14307 ; CHECK-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 63308 ; CHECK-NEXT: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 0309 ; CHECK-NEXT: [[AND:%[0-9]+]]:_(s32) = G_AND [[COPY4]], [[C]]310 ; CHECK-NEXT: [[C2:%[0-9]+]]:_(s32) = G_CONSTANT i32 -1311 ; CHECK-NEXT: [[XOR:%[0-9]+]]:_(s32) = G_XOR [[COPY4]], [[C2]]312 ; CHECK-NEXT: [[AND1:%[0-9]+]]:_(s32) = G_AND [[XOR]], [[C]]313 ; CHECK-NEXT: [[C3:%[0-9]+]]:_(s32) = G_CONSTANT i32 1314 ; CHECK-NEXT: [[SHL:%[0-9]+]]:_(s32) = G_SHL [[COPY]], [[C3]](s32)315 ; CHECK-NEXT: [[SHL1:%[0-9]+]]:_(s32) = G_SHL [[COPY1]], [[C3]](s32)316 ; CHECK-NEXT: [[C4:%[0-9]+]]:_(s32) = G_CONSTANT i32 31317 ; CHECK-NEXT: [[LSHR:%[0-9]+]]:_(s32) = G_LSHR [[COPY]], [[C4]](s32)318 ; CHECK-NEXT: [[OR:%[0-9]+]]:_(s32) = G_OR [[SHL1]], [[LSHR]]319 ; CHECK-NEXT: [[C5:%[0-9]+]]:_(s32) = G_CONSTANT i32 32320 ; CHECK-NEXT: [[SUB:%[0-9]+]]:_(s32) = G_SUB [[AND1]], [[C5]]321 ; CHECK-NEXT: [[SUB1:%[0-9]+]]:_(s32) = G_SUB [[C5]], [[AND1]]322 ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(s32) = G_ICMP intpred(ult), [[AND1]](s32), [[C5]]323 ; CHECK-NEXT: [[ICMP1:%[0-9]+]]:_(s32) = G_ICMP intpred(eq), [[AND1]](s32), [[C1]]324 ; CHECK-NEXT: [[SHL2:%[0-9]+]]:_(s32) = G_SHL [[SHL]], [[AND1]](s32)325 ; CHECK-NEXT: [[LSHR1:%[0-9]+]]:_(s32) = G_LSHR [[SHL]], [[SUB1]](s32)326 ; CHECK-NEXT: [[SHL3:%[0-9]+]]:_(s32) = G_SHL [[OR]], [[AND1]](s32)327 ; CHECK-NEXT: [[OR1:%[0-9]+]]:_(s32) = G_OR [[LSHR1]], [[SHL3]]328 ; CHECK-NEXT: [[SHL4:%[0-9]+]]:_(s32) = G_SHL [[SHL]], [[SUB]](s32)329 ; CHECK-NEXT: [[SELECT:%[0-9]+]]:_(s32) = G_SELECT [[ICMP]](s32), [[SHL2]], [[C1]]330 ; CHECK-NEXT: [[SELECT1:%[0-9]+]]:_(s32) = G_SELECT [[ICMP]](s32), [[OR1]], [[SHL4]]331 ; CHECK-NEXT: [[SELECT2:%[0-9]+]]:_(s32) = G_SELECT [[ICMP1]](s32), [[OR]], [[SELECT1]]332 ; CHECK-NEXT: [[SUB2:%[0-9]+]]:_(s32) = G_SUB [[AND]], [[C5]]333 ; CHECK-NEXT: [[SUB3:%[0-9]+]]:_(s32) = G_SUB [[C5]], [[AND]]334 ; CHECK-NEXT: [[ICMP2:%[0-9]+]]:_(s32) = G_ICMP intpred(ult), [[AND]](s32), [[C5]]335 ; CHECK-NEXT: [[ICMP3:%[0-9]+]]:_(s32) = G_ICMP intpred(eq), [[AND]](s32), [[C1]]336 ; CHECK-NEXT: [[LSHR2:%[0-9]+]]:_(s32) = G_LSHR [[COPY3]], [[AND]](s32)337 ; CHECK-NEXT: [[LSHR3:%[0-9]+]]:_(s32) = G_LSHR [[COPY2]], [[AND]](s32)338 ; CHECK-NEXT: [[SHL5:%[0-9]+]]:_(s32) = G_SHL [[COPY3]], [[SUB3]](s32)339 ; CHECK-NEXT: [[OR2:%[0-9]+]]:_(s32) = G_OR [[LSHR3]], [[SHL5]]340 ; CHECK-NEXT: [[LSHR4:%[0-9]+]]:_(s32) = G_LSHR [[COPY3]], [[SUB2]](s32)341 ; CHECK-NEXT: [[SELECT3:%[0-9]+]]:_(s32) = G_SELECT [[ICMP2]](s32), [[OR2]], [[LSHR4]]342 ; CHECK-NEXT: [[SELECT4:%[0-9]+]]:_(s32) = G_SELECT [[ICMP3]](s32), [[COPY2]], [[SELECT3]]343 ; CHECK-NEXT: [[SELECT5:%[0-9]+]]:_(s32) = G_SELECT [[ICMP2]](s32), [[LSHR2]], [[C1]]344 ; CHECK-NEXT: [[OR3:%[0-9]+]]:_(s32) = G_OR [[SELECT]], [[SELECT4]]345 ; CHECK-NEXT: [[OR4:%[0-9]+]]:_(s32) = G_OR [[SELECT2]], [[SELECT5]]346 ; CHECK-NEXT: $x10 = COPY [[OR3]](s32)347 ; CHECK-NEXT: $x11 = COPY [[OR4]](s32)348 ; CHECK-NEXT: PseudoRET implicit $x10, implicit $x11349 %3:_(s32) = COPY $x10350 %4:_(s32) = COPY $x11351 %0:_(s64) = G_MERGE_VALUES %3(s32), %4(s32)352 %5:_(s32) = COPY $x12353 %6:_(s32) = COPY $x13354 %1:_(s64) = G_MERGE_VALUES %5(s32), %6(s32)355 %7:_(s32) = COPY $x14356 %8:_(s32) = COPY $x15357 %2:_(s64) = G_MERGE_VALUES %7(s32), %8(s32)358 %9:_(s64) = G_FSHR %0, %1, %2(s64)359 %10:_(s32), %11:_(s32) = G_UNMERGE_VALUES %9(s64)360 $x10 = COPY %10(s32)361 $x11 = COPY %11(s32)362 PseudoRET implicit $x10, implicit $x11363 364...365