1586 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---5name: cmp_sgt_i76body: |7 bb.0.entry:8 ; CHECK-LABEL: name: cmp_sgt_i79 ; CHECK: [[COPY:%[0-9]+]]:_(s32) = COPY $x1010 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $x1111 ; CHECK-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 2512 ; CHECK-NEXT: [[SHL:%[0-9]+]]:_(s32) = G_SHL [[COPY]], [[C]](s32)13 ; CHECK-NEXT: [[ASHR:%[0-9]+]]:_(s32) = G_ASHR [[SHL]], [[C]](s32)14 ; CHECK-NEXT: [[SHL1:%[0-9]+]]:_(s32) = G_SHL [[COPY1]], [[C]](s32)15 ; CHECK-NEXT: [[ASHR1:%[0-9]+]]:_(s32) = G_ASHR [[SHL1]], [[C]](s32)16 ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(s32) = G_ICMP intpred(sgt), [[ASHR]](s32), [[ASHR1]]17 ; CHECK-NEXT: $x10 = COPY [[ICMP]](s32)18 ; CHECK-NEXT: PseudoRET implicit $x1019 %0:_(s32) = COPY $x1020 %1:_(s32) = COPY $x1121 %2:_(s7) = G_TRUNC %0(s32)22 %3:_(s7) = G_TRUNC %1(s32)23 %4:_(s1) = G_ICMP intpred(sgt), %2(s7), %324 %5:_(s32) = G_ANYEXT %4(s1)25 $x10 = COPY %5(s32)26 PseudoRET implicit $x1027 28...29---30name: cmp_sgt_i831body: |32 bb.0.entry:33 ; CHECK-LABEL: name: cmp_sgt_i834 ; CHECK: [[COPY:%[0-9]+]]:_(s32) = COPY $x1035 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $x1136 ; CHECK-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 2437 ; CHECK-NEXT: [[SHL:%[0-9]+]]:_(s32) = G_SHL [[COPY]], [[C]](s32)38 ; CHECK-NEXT: [[ASHR:%[0-9]+]]:_(s32) = G_ASHR [[SHL]], [[C]](s32)39 ; CHECK-NEXT: [[SHL1:%[0-9]+]]:_(s32) = G_SHL [[COPY1]], [[C]](s32)40 ; CHECK-NEXT: [[ASHR1:%[0-9]+]]:_(s32) = G_ASHR [[SHL1]], [[C]](s32)41 ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(s32) = G_ICMP intpred(sgt), [[ASHR]](s32), [[ASHR1]]42 ; CHECK-NEXT: $x10 = COPY [[ICMP]](s32)43 ; CHECK-NEXT: PseudoRET implicit $x1044 %0:_(s32) = COPY $x1045 %1:_(s32) = COPY $x1146 %2:_(s8) = G_TRUNC %0(s32)47 %3:_(s8) = G_TRUNC %1(s32)48 %4:_(s1) = G_ICMP intpred(sgt), %2(s8), %349 %5:_(s32) = G_ANYEXT %4(s1)50 $x10 = COPY %5(s32)51 PseudoRET implicit $x1052 53...54---55name: cmp_sgt_i1656body: |57 bb.0.entry:58 ; CHECK-LABEL: name: cmp_sgt_i1659 ; CHECK: [[COPY:%[0-9]+]]:_(s32) = COPY $x1060 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $x1161 ; CHECK-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 1662 ; CHECK-NEXT: [[SHL:%[0-9]+]]:_(s32) = G_SHL [[COPY]], [[C]](s32)63 ; CHECK-NEXT: [[ASHR:%[0-9]+]]:_(s32) = G_ASHR [[SHL]], [[C]](s32)64 ; CHECK-NEXT: [[SHL1:%[0-9]+]]:_(s32) = G_SHL [[COPY1]], [[C]](s32)65 ; CHECK-NEXT: [[ASHR1:%[0-9]+]]:_(s32) = G_ASHR [[SHL1]], [[C]](s32)66 ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(s32) = G_ICMP intpred(sgt), [[ASHR]](s32), [[ASHR1]]67 ; CHECK-NEXT: $x10 = COPY [[ICMP]](s32)68 ; CHECK-NEXT: PseudoRET implicit $x1069 %0:_(s32) = COPY $x1070 %1:_(s32) = COPY $x1171 %2:_(s16) = G_TRUNC %0(s32)72 %3:_(s16) = G_TRUNC %1(s32)73 %4:_(s1) = G_ICMP intpred(sgt), %2(s16), %374 %5:_(s32) = G_ANYEXT %4(s1)75 $x10 = COPY %5(s32)76 PseudoRET implicit $x1077 78...79---80name: cmp_sgt_i3281body: |82 bb.0.entry:83 ; CHECK-LABEL: name: cmp_sgt_i3284 ; CHECK: [[COPY:%[0-9]+]]:_(s32) = COPY $x1085 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $x1186 ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(s32) = G_ICMP intpred(sgt), [[COPY]](s32), [[COPY1]]87 ; CHECK-NEXT: $x10 = COPY [[ICMP]](s32)88 ; CHECK-NEXT: PseudoRET implicit $x1089 %0:_(s32) = COPY $x1090 %1:_(s32) = COPY $x1191 %2:_(s1) = G_ICMP intpred(sgt), %0(s32), %192 %3:_(s32) = G_ANYEXT %2(s1)93 $x10 = COPY %3(s32)94 PseudoRET implicit $x1095 96...97---98name: cmp_sgt_i4899body: |100 bb.0.entry:101 ; CHECK-LABEL: name: cmp_sgt_i48102 ; CHECK: %xhi:_(s32) = COPY $x10103 ; CHECK-NEXT: %xlo:_(s32) = COPY $x11104 ; CHECK-NEXT: %yhi:_(s32) = COPY $x12105 ; CHECK-NEXT: %ylo:_(s32) = COPY $x13106 ; CHECK-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 16107 ; CHECK-NEXT: [[SHL:%[0-9]+]]:_(s32) = G_SHL %xlo, [[C]](s32)108 ; CHECK-NEXT: [[ASHR:%[0-9]+]]:_(s32) = G_ASHR [[SHL]], [[C]](s32)109 ; CHECK-NEXT: [[SHL1:%[0-9]+]]:_(s32) = G_SHL %ylo, [[C]](s32)110 ; CHECK-NEXT: [[ASHR1:%[0-9]+]]:_(s32) = G_ASHR [[SHL1]], [[C]](s32)111 ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(s32) = G_ICMP intpred(ugt), %xhi(s32), %yhi112 ; CHECK-NEXT: [[ICMP1:%[0-9]+]]:_(s32) = G_ICMP intpred(sgt), [[ASHR]](s32), [[ASHR1]]113 ; CHECK-NEXT: [[ICMP2:%[0-9]+]]:_(s32) = G_ICMP intpred(eq), [[ASHR]](s32), [[ASHR1]]114 ; CHECK-NEXT: [[SELECT:%[0-9]+]]:_(s32) = G_SELECT [[ICMP2]](s32), [[ICMP]], [[ICMP1]]115 ; CHECK-NEXT: $x10 = COPY [[SELECT]](s32)116 ; CHECK-NEXT: PseudoRET implicit $x10117 %xhi:_(s32) = COPY $x10118 %xlo:_(s32) = COPY $x11119 %yhi:_(s32) = COPY $x12120 %ylo:_(s32) = COPY $x13121 %x0:_(s64) = G_MERGE_VALUES %xhi(s32), %xlo(s32)122 %y0:_(s64) = G_MERGE_VALUES %yhi(s32), %ylo(s32)123 %x:_(s48) = G_TRUNC %x0(s64)124 %y:_(s48) = G_TRUNC %y0(s64)125 %z:_(s1) = G_ICMP intpred(sgt), %x(s48), %y126 %z0:_(s32) = G_ANYEXT %z(s1)127 $x10 = COPY %z0(s32)128 PseudoRET implicit $x10129 130...131---132name: cmp_sgt_i64133body: |134 bb.0.entry:135 ; CHECK-LABEL: name: cmp_sgt_i64136 ; CHECK: %xhi:_(s32) = COPY $x10137 ; CHECK-NEXT: %xlo:_(s32) = COPY $x11138 ; CHECK-NEXT: %yhi:_(s32) = COPY $x12139 ; CHECK-NEXT: %ylo:_(s32) = COPY $x13140 ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(s32) = G_ICMP intpred(ugt), %xhi(s32), %yhi141 ; CHECK-NEXT: [[ICMP1:%[0-9]+]]:_(s32) = G_ICMP intpred(sgt), %xlo(s32), %ylo142 ; CHECK-NEXT: [[ICMP2:%[0-9]+]]:_(s32) = G_ICMP intpred(eq), %xlo(s32), %ylo143 ; CHECK-NEXT: [[SELECT:%[0-9]+]]:_(s32) = G_SELECT [[ICMP2]](s32), [[ICMP]], [[ICMP1]]144 ; CHECK-NEXT: $x10 = COPY [[SELECT]](s32)145 ; CHECK-NEXT: PseudoRET implicit $x10146 %xhi:_(s32) = COPY $x10147 %xlo:_(s32) = COPY $x11148 %yhi:_(s32) = COPY $x12149 %ylo:_(s32) = COPY $x13150 %x:_(s64) = G_MERGE_VALUES %xhi(s32), %xlo(s32)151 %y:_(s64) = G_MERGE_VALUES %yhi(s32), %ylo(s32)152 %z:_(s1) = G_ICMP intpred(sgt), %x, %y153 %z0:_(s32) = G_ANYEXT %z(s1)154 $x10 = COPY %z0(s32)155 PseudoRET implicit $x10156 157...158---159name: cmp_slt_i7160body: |161 bb.0.entry:162 ; CHECK-LABEL: name: cmp_slt_i7163 ; CHECK: [[COPY:%[0-9]+]]:_(s32) = COPY $x10164 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $x11165 ; CHECK-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 25166 ; CHECK-NEXT: [[SHL:%[0-9]+]]:_(s32) = G_SHL [[COPY]], [[C]](s32)167 ; CHECK-NEXT: [[ASHR:%[0-9]+]]:_(s32) = G_ASHR [[SHL]], [[C]](s32)168 ; CHECK-NEXT: [[SHL1:%[0-9]+]]:_(s32) = G_SHL [[COPY1]], [[C]](s32)169 ; CHECK-NEXT: [[ASHR1:%[0-9]+]]:_(s32) = G_ASHR [[SHL1]], [[C]](s32)170 ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(s32) = G_ICMP intpred(slt), [[ASHR]](s32), [[ASHR1]]171 ; CHECK-NEXT: $x10 = COPY [[ICMP]](s32)172 ; CHECK-NEXT: PseudoRET implicit $x10173 %0:_(s32) = COPY $x10174 %1:_(s32) = COPY $x11175 %2:_(s7) = G_TRUNC %0(s32)176 %3:_(s7) = G_TRUNC %1(s32)177 %4:_(s1) = G_ICMP intpred(slt), %2(s7), %3178 %5:_(s32) = G_ANYEXT %4(s1)179 $x10 = COPY %5(s32)180 PseudoRET implicit $x10181 182...183---184name: cmp_slt_i8185body: |186 bb.0.entry:187 ; CHECK-LABEL: name: cmp_slt_i8188 ; CHECK: [[COPY:%[0-9]+]]:_(s32) = COPY $x10189 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $x11190 ; CHECK-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 24191 ; CHECK-NEXT: [[SHL:%[0-9]+]]:_(s32) = G_SHL [[COPY]], [[C]](s32)192 ; CHECK-NEXT: [[ASHR:%[0-9]+]]:_(s32) = G_ASHR [[SHL]], [[C]](s32)193 ; CHECK-NEXT: [[SHL1:%[0-9]+]]:_(s32) = G_SHL [[COPY1]], [[C]](s32)194 ; CHECK-NEXT: [[ASHR1:%[0-9]+]]:_(s32) = G_ASHR [[SHL1]], [[C]](s32)195 ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(s32) = G_ICMP intpred(slt), [[ASHR]](s32), [[ASHR1]]196 ; CHECK-NEXT: $x10 = COPY [[ICMP]](s32)197 ; CHECK-NEXT: PseudoRET implicit $x10198 %0:_(s32) = COPY $x10199 %1:_(s32) = COPY $x11200 %2:_(s8) = G_TRUNC %0(s32)201 %3:_(s8) = G_TRUNC %1(s32)202 %4:_(s1) = G_ICMP intpred(slt), %2(s8), %3203 %5:_(s32) = G_ANYEXT %4(s1)204 $x10 = COPY %5(s32)205 PseudoRET implicit $x10206 207...208---209name: cmp_slt_i16210body: |211 bb.0.entry:212 ; CHECK-LABEL: name: cmp_slt_i16213 ; CHECK: [[COPY:%[0-9]+]]:_(s32) = COPY $x10214 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $x11215 ; CHECK-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 16216 ; CHECK-NEXT: [[SHL:%[0-9]+]]:_(s32) = G_SHL [[COPY]], [[C]](s32)217 ; CHECK-NEXT: [[ASHR:%[0-9]+]]:_(s32) = G_ASHR [[SHL]], [[C]](s32)218 ; CHECK-NEXT: [[SHL1:%[0-9]+]]:_(s32) = G_SHL [[COPY1]], [[C]](s32)219 ; CHECK-NEXT: [[ASHR1:%[0-9]+]]:_(s32) = G_ASHR [[SHL1]], [[C]](s32)220 ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(s32) = G_ICMP intpred(slt), [[ASHR]](s32), [[ASHR1]]221 ; CHECK-NEXT: $x10 = COPY [[ICMP]](s32)222 ; CHECK-NEXT: PseudoRET implicit $x10223 %0:_(s32) = COPY $x10224 %1:_(s32) = COPY $x11225 %2:_(s16) = G_TRUNC %0(s32)226 %3:_(s16) = G_TRUNC %1(s32)227 %4:_(s1) = G_ICMP intpred(slt), %2(s16), %3228 %5:_(s32) = G_ANYEXT %4(s1)229 $x10 = COPY %5(s32)230 PseudoRET implicit $x10231 232...233---234name: cmp_slt_i32235body: |236 bb.0.entry:237 ; CHECK-LABEL: name: cmp_slt_i32238 ; CHECK: [[COPY:%[0-9]+]]:_(s32) = COPY $x10239 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $x11240 ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(s32) = G_ICMP intpred(slt), [[COPY]](s32), [[COPY1]]241 ; CHECK-NEXT: $x10 = COPY [[ICMP]](s32)242 ; CHECK-NEXT: PseudoRET implicit $x10243 %0:_(s32) = COPY $x10244 %1:_(s32) = COPY $x11245 %2:_(s1) = G_ICMP intpred(slt), %0(s32), %1246 %3:_(s32) = G_ANYEXT %2(s1)247 $x10 = COPY %3(s32)248 PseudoRET implicit $x10249 250...251---252name: cmp_slt_i48253body: |254 bb.0.entry:255 ; CHECK-LABEL: name: cmp_slt_i48256 ; CHECK: %xhi:_(s32) = COPY $x10257 ; CHECK-NEXT: %xlo:_(s32) = COPY $x11258 ; CHECK-NEXT: %yhi:_(s32) = COPY $x12259 ; CHECK-NEXT: %ylo:_(s32) = COPY $x13260 ; CHECK-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 16261 ; CHECK-NEXT: [[SHL:%[0-9]+]]:_(s32) = G_SHL %xlo, [[C]](s32)262 ; CHECK-NEXT: [[ASHR:%[0-9]+]]:_(s32) = G_ASHR [[SHL]], [[C]](s32)263 ; CHECK-NEXT: [[SHL1:%[0-9]+]]:_(s32) = G_SHL %ylo, [[C]](s32)264 ; CHECK-NEXT: [[ASHR1:%[0-9]+]]:_(s32) = G_ASHR [[SHL1]], [[C]](s32)265 ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(s32) = G_ICMP intpred(ult), %xhi(s32), %yhi266 ; CHECK-NEXT: [[ICMP1:%[0-9]+]]:_(s32) = G_ICMP intpred(slt), [[ASHR]](s32), [[ASHR1]]267 ; CHECK-NEXT: [[ICMP2:%[0-9]+]]:_(s32) = G_ICMP intpred(eq), [[ASHR]](s32), [[ASHR1]]268 ; CHECK-NEXT: [[SELECT:%[0-9]+]]:_(s32) = G_SELECT [[ICMP2]](s32), [[ICMP]], [[ICMP1]]269 ; CHECK-NEXT: $x10 = COPY [[SELECT]](s32)270 ; CHECK-NEXT: PseudoRET implicit $x10271 %xhi:_(s32) = COPY $x10272 %xlo:_(s32) = COPY $x11273 %yhi:_(s32) = COPY $x12274 %ylo:_(s32) = COPY $x13275 %x0:_(s64) = G_MERGE_VALUES %xhi(s32), %xlo(s32)276 %y0:_(s64) = G_MERGE_VALUES %yhi(s32), %ylo(s32)277 %x:_(s48) = G_TRUNC %x0(s64)278 %y:_(s48) = G_TRUNC %y0(s64)279 %z:_(s1) = G_ICMP intpred(slt), %x(s48), %y280 %z0:_(s32) = G_ANYEXT %z(s1)281 $x10 = COPY %z0(s32)282 PseudoRET implicit $x10283 284...285---286name: cmp_slt_i64287body: |288 bb.0.entry:289 ; CHECK-LABEL: name: cmp_slt_i64290 ; CHECK: %xhi:_(s32) = COPY $x10291 ; CHECK-NEXT: %xlo:_(s32) = COPY $x11292 ; CHECK-NEXT: %yhi:_(s32) = COPY $x12293 ; CHECK-NEXT: %ylo:_(s32) = COPY $x13294 ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(s32) = G_ICMP intpred(ult), %xhi(s32), %yhi295 ; CHECK-NEXT: [[ICMP1:%[0-9]+]]:_(s32) = G_ICMP intpred(slt), %xlo(s32), %ylo296 ; CHECK-NEXT: [[ICMP2:%[0-9]+]]:_(s32) = G_ICMP intpred(eq), %xlo(s32), %ylo297 ; CHECK-NEXT: [[SELECT:%[0-9]+]]:_(s32) = G_SELECT [[ICMP2]](s32), [[ICMP]], [[ICMP1]]298 ; CHECK-NEXT: $x10 = COPY [[SELECT]](s32)299 ; CHECK-NEXT: PseudoRET implicit $x10300 %xhi:_(s32) = COPY $x10301 %xlo:_(s32) = COPY $x11302 %yhi:_(s32) = COPY $x12303 %ylo:_(s32) = COPY $x13304 %x:_(s64) = G_MERGE_VALUES %xhi(s32), %xlo(s32)305 %y:_(s64) = G_MERGE_VALUES %yhi(s32), %ylo(s32)306 %z:_(s1) = G_ICMP intpred(slt), %x, %y307 %z0:_(s32) = G_ANYEXT %z(s1)308 $x10 = COPY %z0(s32)309 PseudoRET implicit $x10310 311...312---313name: cmp_sge_i7314body: |315 bb.0.entry:316 ; CHECK-LABEL: name: cmp_sge_i7317 ; CHECK: [[COPY:%[0-9]+]]:_(s32) = COPY $x10318 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $x11319 ; CHECK-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 25320 ; CHECK-NEXT: [[SHL:%[0-9]+]]:_(s32) = G_SHL [[COPY]], [[C]](s32)321 ; CHECK-NEXT: [[ASHR:%[0-9]+]]:_(s32) = G_ASHR [[SHL]], [[C]](s32)322 ; CHECK-NEXT: [[SHL1:%[0-9]+]]:_(s32) = G_SHL [[COPY1]], [[C]](s32)323 ; CHECK-NEXT: [[ASHR1:%[0-9]+]]:_(s32) = G_ASHR [[SHL1]], [[C]](s32)324 ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(s32) = G_ICMP intpred(sge), [[ASHR]](s32), [[ASHR1]]325 ; CHECK-NEXT: $x10 = COPY [[ICMP]](s32)326 ; CHECK-NEXT: PseudoRET implicit $x10327 %0:_(s32) = COPY $x10328 %1:_(s32) = COPY $x11329 %2:_(s7) = G_TRUNC %0(s32)330 %3:_(s7) = G_TRUNC %1(s32)331 %4:_(s1) = G_ICMP intpred(sge), %2(s7), %3332 %5:_(s32) = G_ANYEXT %4(s1)333 $x10 = COPY %5(s32)334 PseudoRET implicit $x10335 336...337---338name: cmp_sge_i8339body: |340 bb.0.entry:341 ; CHECK-LABEL: name: cmp_sge_i8342 ; CHECK: [[COPY:%[0-9]+]]:_(s32) = COPY $x10343 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $x11344 ; CHECK-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 24345 ; CHECK-NEXT: [[SHL:%[0-9]+]]:_(s32) = G_SHL [[COPY]], [[C]](s32)346 ; CHECK-NEXT: [[ASHR:%[0-9]+]]:_(s32) = G_ASHR [[SHL]], [[C]](s32)347 ; CHECK-NEXT: [[SHL1:%[0-9]+]]:_(s32) = G_SHL [[COPY1]], [[C]](s32)348 ; CHECK-NEXT: [[ASHR1:%[0-9]+]]:_(s32) = G_ASHR [[SHL1]], [[C]](s32)349 ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(s32) = G_ICMP intpred(sge), [[ASHR]](s32), [[ASHR1]]350 ; CHECK-NEXT: $x10 = COPY [[ICMP]](s32)351 ; CHECK-NEXT: PseudoRET implicit $x10352 %0:_(s32) = COPY $x10353 %1:_(s32) = COPY $x11354 %2:_(s8) = G_TRUNC %0(s32)355 %3:_(s8) = G_TRUNC %1(s32)356 %4:_(s1) = G_ICMP intpred(sge), %2(s8), %3357 %5:_(s32) = G_ANYEXT %4(s1)358 $x10 = COPY %5(s32)359 PseudoRET implicit $x10360 361...362---363name: cmp_sge_i16364body: |365 bb.0.entry:366 ; CHECK-LABEL: name: cmp_sge_i16367 ; CHECK: [[COPY:%[0-9]+]]:_(s32) = COPY $x10368 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $x11369 ; CHECK-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 16370 ; CHECK-NEXT: [[SHL:%[0-9]+]]:_(s32) = G_SHL [[COPY]], [[C]](s32)371 ; CHECK-NEXT: [[ASHR:%[0-9]+]]:_(s32) = G_ASHR [[SHL]], [[C]](s32)372 ; CHECK-NEXT: [[SHL1:%[0-9]+]]:_(s32) = G_SHL [[COPY1]], [[C]](s32)373 ; CHECK-NEXT: [[ASHR1:%[0-9]+]]:_(s32) = G_ASHR [[SHL1]], [[C]](s32)374 ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(s32) = G_ICMP intpred(sge), [[ASHR]](s32), [[ASHR1]]375 ; CHECK-NEXT: $x10 = COPY [[ICMP]](s32)376 ; CHECK-NEXT: PseudoRET implicit $x10377 %0:_(s32) = COPY $x10378 %1:_(s32) = COPY $x11379 %2:_(s16) = G_TRUNC %0(s32)380 %3:_(s16) = G_TRUNC %1(s32)381 %4:_(s1) = G_ICMP intpred(sge), %2(s16), %3382 %5:_(s32) = G_ANYEXT %4(s1)383 $x10 = COPY %5(s32)384 PseudoRET implicit $x10385 386...387---388name: cmp_sge_i32389body: |390 bb.0.entry:391 ; CHECK-LABEL: name: cmp_sge_i32392 ; CHECK: [[COPY:%[0-9]+]]:_(s32) = COPY $x10393 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $x11394 ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(s32) = G_ICMP intpred(sge), [[COPY]](s32), [[COPY1]]395 ; CHECK-NEXT: $x10 = COPY [[ICMP]](s32)396 ; CHECK-NEXT: PseudoRET implicit $x10397 %0:_(s32) = COPY $x10398 %1:_(s32) = COPY $x11399 %2:_(s1) = G_ICMP intpred(sge), %0(s32), %1400 %3:_(s32) = G_ANYEXT %2(s1)401 $x10 = COPY %3(s32)402 PseudoRET implicit $x10403 404...405---406name: cmp_sge_i48407body: |408 bb.0.entry:409 ; CHECK-LABEL: name: cmp_sge_i48410 ; CHECK: %xhi:_(s32) = COPY $x10411 ; CHECK-NEXT: %xlo:_(s32) = COPY $x11412 ; CHECK-NEXT: %yhi:_(s32) = COPY $x12413 ; CHECK-NEXT: %ylo:_(s32) = COPY $x13414 ; CHECK-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 16415 ; CHECK-NEXT: [[SHL:%[0-9]+]]:_(s32) = G_SHL %xlo, [[C]](s32)416 ; CHECK-NEXT: [[ASHR:%[0-9]+]]:_(s32) = G_ASHR [[SHL]], [[C]](s32)417 ; CHECK-NEXT: [[SHL1:%[0-9]+]]:_(s32) = G_SHL %ylo, [[C]](s32)418 ; CHECK-NEXT: [[ASHR1:%[0-9]+]]:_(s32) = G_ASHR [[SHL1]], [[C]](s32)419 ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(s32) = G_ICMP intpred(uge), %xhi(s32), %yhi420 ; CHECK-NEXT: [[ICMP1:%[0-9]+]]:_(s32) = G_ICMP intpred(sge), [[ASHR]](s32), [[ASHR1]]421 ; CHECK-NEXT: [[ICMP2:%[0-9]+]]:_(s32) = G_ICMP intpred(eq), [[ASHR]](s32), [[ASHR1]]422 ; CHECK-NEXT: [[SELECT:%[0-9]+]]:_(s32) = G_SELECT [[ICMP2]](s32), [[ICMP]], [[ICMP1]]423 ; CHECK-NEXT: $x10 = COPY [[SELECT]](s32)424 ; CHECK-NEXT: PseudoRET implicit $x10425 %xhi:_(s32) = COPY $x10426 %xlo:_(s32) = COPY $x11427 %yhi:_(s32) = COPY $x12428 %ylo:_(s32) = COPY $x13429 %x0:_(s64) = G_MERGE_VALUES %xhi(s32), %xlo(s32)430 %y0:_(s64) = G_MERGE_VALUES %yhi(s32), %ylo(s32)431 %x:_(s48) = G_TRUNC %x0(s64)432 %y:_(s48) = G_TRUNC %y0(s64)433 %z:_(s1) = G_ICMP intpred(sge), %x(s48), %y434 %z0:_(s32) = G_ANYEXT %z(s1)435 $x10 = COPY %z0(s32)436 PseudoRET implicit $x10437 438...439---440name: cmp_sge_i64441body: |442 bb.0.entry:443 ; CHECK-LABEL: name: cmp_sge_i64444 ; CHECK: %xhi:_(s32) = COPY $x10445 ; CHECK-NEXT: %xlo:_(s32) = COPY $x11446 ; CHECK-NEXT: %yhi:_(s32) = COPY $x12447 ; CHECK-NEXT: %ylo:_(s32) = COPY $x13448 ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(s32) = G_ICMP intpred(uge), %xhi(s32), %yhi449 ; CHECK-NEXT: [[ICMP1:%[0-9]+]]:_(s32) = G_ICMP intpred(sge), %xlo(s32), %ylo450 ; CHECK-NEXT: [[ICMP2:%[0-9]+]]:_(s32) = G_ICMP intpred(eq), %xlo(s32), %ylo451 ; CHECK-NEXT: [[SELECT:%[0-9]+]]:_(s32) = G_SELECT [[ICMP2]](s32), [[ICMP]], [[ICMP1]]452 ; CHECK-NEXT: $x10 = COPY [[SELECT]](s32)453 ; CHECK-NEXT: PseudoRET implicit $x10454 %xhi:_(s32) = COPY $x10455 %xlo:_(s32) = COPY $x11456 %yhi:_(s32) = COPY $x12457 %ylo:_(s32) = COPY $x13458 %x:_(s64) = G_MERGE_VALUES %xhi(s32), %xlo(s32)459 %y:_(s64) = G_MERGE_VALUES %yhi(s32), %ylo(s32)460 %z:_(s1) = G_ICMP intpred(sge), %x, %y461 %z0:_(s32) = G_ANYEXT %z(s1)462 $x10 = COPY %z0(s32)463 PseudoRET implicit $x10464 465...466---467name: cmp_sle_i7468body: |469 bb.0.entry:470 ; CHECK-LABEL: name: cmp_sle_i7471 ; CHECK: [[COPY:%[0-9]+]]:_(s32) = COPY $x10472 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $x11473 ; CHECK-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 25474 ; CHECK-NEXT: [[SHL:%[0-9]+]]:_(s32) = G_SHL [[COPY]], [[C]](s32)475 ; CHECK-NEXT: [[ASHR:%[0-9]+]]:_(s32) = G_ASHR [[SHL]], [[C]](s32)476 ; CHECK-NEXT: [[SHL1:%[0-9]+]]:_(s32) = G_SHL [[COPY1]], [[C]](s32)477 ; CHECK-NEXT: [[ASHR1:%[0-9]+]]:_(s32) = G_ASHR [[SHL1]], [[C]](s32)478 ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(s32) = G_ICMP intpred(sle), [[ASHR]](s32), [[ASHR1]]479 ; CHECK-NEXT: $x10 = COPY [[ICMP]](s32)480 ; CHECK-NEXT: PseudoRET implicit $x10481 %0:_(s32) = COPY $x10482 %1:_(s32) = COPY $x11483 %2:_(s7) = G_TRUNC %0(s32)484 %3:_(s7) = G_TRUNC %1(s32)485 %4:_(s1) = G_ICMP intpred(sle), %2(s7), %3486 %5:_(s32) = G_ANYEXT %4(s1)487 $x10 = COPY %5(s32)488 PseudoRET implicit $x10489 490...491---492name: cmp_sle_i8493body: |494 bb.0.entry:495 ; CHECK-LABEL: name: cmp_sle_i8496 ; CHECK: [[COPY:%[0-9]+]]:_(s32) = COPY $x10497 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $x11498 ; CHECK-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 24499 ; CHECK-NEXT: [[SHL:%[0-9]+]]:_(s32) = G_SHL [[COPY]], [[C]](s32)500 ; CHECK-NEXT: [[ASHR:%[0-9]+]]:_(s32) = G_ASHR [[SHL]], [[C]](s32)501 ; CHECK-NEXT: [[SHL1:%[0-9]+]]:_(s32) = G_SHL [[COPY1]], [[C]](s32)502 ; CHECK-NEXT: [[ASHR1:%[0-9]+]]:_(s32) = G_ASHR [[SHL1]], [[C]](s32)503 ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(s32) = G_ICMP intpred(sle), [[ASHR]](s32), [[ASHR1]]504 ; CHECK-NEXT: $x10 = COPY [[ICMP]](s32)505 ; CHECK-NEXT: PseudoRET implicit $x10506 %0:_(s32) = COPY $x10507 %1:_(s32) = COPY $x11508 %2:_(s8) = G_TRUNC %0(s32)509 %3:_(s8) = G_TRUNC %1(s32)510 %4:_(s1) = G_ICMP intpred(sle), %2(s8), %3511 %5:_(s32) = G_ANYEXT %4(s1)512 $x10 = COPY %5(s32)513 PseudoRET implicit $x10514 515...516---517name: cmp_sle_i16518body: |519 bb.0.entry:520 ; CHECK-LABEL: name: cmp_sle_i16521 ; CHECK: [[COPY:%[0-9]+]]:_(s32) = COPY $x10522 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $x11523 ; CHECK-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 16524 ; CHECK-NEXT: [[SHL:%[0-9]+]]:_(s32) = G_SHL [[COPY]], [[C]](s32)525 ; CHECK-NEXT: [[ASHR:%[0-9]+]]:_(s32) = G_ASHR [[SHL]], [[C]](s32)526 ; CHECK-NEXT: [[SHL1:%[0-9]+]]:_(s32) = G_SHL [[COPY1]], [[C]](s32)527 ; CHECK-NEXT: [[ASHR1:%[0-9]+]]:_(s32) = G_ASHR [[SHL1]], [[C]](s32)528 ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(s32) = G_ICMP intpred(sle), [[ASHR]](s32), [[ASHR1]]529 ; CHECK-NEXT: $x10 = COPY [[ICMP]](s32)530 ; CHECK-NEXT: PseudoRET implicit $x10531 %0:_(s32) = COPY $x10532 %1:_(s32) = COPY $x11533 %2:_(s16) = G_TRUNC %0(s32)534 %3:_(s16) = G_TRUNC %1(s32)535 %4:_(s1) = G_ICMP intpred(sle), %2(s16), %3536 %5:_(s32) = G_ANYEXT %4(s1)537 $x10 = COPY %5(s32)538 PseudoRET implicit $x10539 540...541---542name: cmp_sle_i32543body: |544 bb.0.entry:545 ; CHECK-LABEL: name: cmp_sle_i32546 ; CHECK: [[COPY:%[0-9]+]]:_(s32) = COPY $x10547 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $x11548 ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(s32) = G_ICMP intpred(sle), [[COPY]](s32), [[COPY1]]549 ; CHECK-NEXT: $x10 = COPY [[ICMP]](s32)550 ; CHECK-NEXT: PseudoRET implicit $x10551 %0:_(s32) = COPY $x10552 %1:_(s32) = COPY $x11553 %2:_(s1) = G_ICMP intpred(sle), %0(s32), %1554 %3:_(s32) = G_ANYEXT %2(s1)555 $x10 = COPY %3(s32)556 PseudoRET implicit $x10557 558...559---560name: cmp_sle_i48561body: |562 bb.0.entry:563 ; CHECK-LABEL: name: cmp_sle_i48564 ; CHECK: %xhi:_(s32) = COPY $x10565 ; CHECK-NEXT: %xlo:_(s32) = COPY $x11566 ; CHECK-NEXT: %yhi:_(s32) = COPY $x12567 ; CHECK-NEXT: %ylo:_(s32) = COPY $x13568 ; CHECK-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 16569 ; CHECK-NEXT: [[SHL:%[0-9]+]]:_(s32) = G_SHL %xlo, [[C]](s32)570 ; CHECK-NEXT: [[ASHR:%[0-9]+]]:_(s32) = G_ASHR [[SHL]], [[C]](s32)571 ; CHECK-NEXT: [[SHL1:%[0-9]+]]:_(s32) = G_SHL %ylo, [[C]](s32)572 ; CHECK-NEXT: [[ASHR1:%[0-9]+]]:_(s32) = G_ASHR [[SHL1]], [[C]](s32)573 ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(s32) = G_ICMP intpred(ule), %xhi(s32), %yhi574 ; CHECK-NEXT: [[ICMP1:%[0-9]+]]:_(s32) = G_ICMP intpred(sle), [[ASHR]](s32), [[ASHR1]]575 ; CHECK-NEXT: [[ICMP2:%[0-9]+]]:_(s32) = G_ICMP intpred(eq), [[ASHR]](s32), [[ASHR1]]576 ; CHECK-NEXT: [[SELECT:%[0-9]+]]:_(s32) = G_SELECT [[ICMP2]](s32), [[ICMP]], [[ICMP1]]577 ; CHECK-NEXT: $x10 = COPY [[SELECT]](s32)578 ; CHECK-NEXT: PseudoRET implicit $x10579 %xhi:_(s32) = COPY $x10580 %xlo:_(s32) = COPY $x11581 %yhi:_(s32) = COPY $x12582 %ylo:_(s32) = COPY $x13583 %x0:_(s64) = G_MERGE_VALUES %xhi(s32), %xlo(s32)584 %y0:_(s64) = G_MERGE_VALUES %yhi(s32), %ylo(s32)585 %x:_(s48) = G_TRUNC %x0(s64)586 %y:_(s48) = G_TRUNC %y0(s64)587 %z:_(s1) = G_ICMP intpred(sle), %x(s48), %y588 %z0:_(s32) = G_ANYEXT %z(s1)589 $x10 = COPY %z0(s32)590 PseudoRET implicit $x10591 592...593---594name: cmp_sle_i64595body: |596 bb.0.entry:597 ; CHECK-LABEL: name: cmp_sle_i64598 ; CHECK: %xhi:_(s32) = COPY $x10599 ; CHECK-NEXT: %xlo:_(s32) = COPY $x11600 ; CHECK-NEXT: %yhi:_(s32) = COPY $x12601 ; CHECK-NEXT: %ylo:_(s32) = COPY $x13602 ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(s32) = G_ICMP intpred(ule), %xhi(s32), %yhi603 ; CHECK-NEXT: [[ICMP1:%[0-9]+]]:_(s32) = G_ICMP intpred(sle), %xlo(s32), %ylo604 ; CHECK-NEXT: [[ICMP2:%[0-9]+]]:_(s32) = G_ICMP intpred(eq), %xlo(s32), %ylo605 ; CHECK-NEXT: [[SELECT:%[0-9]+]]:_(s32) = G_SELECT [[ICMP2]](s32), [[ICMP]], [[ICMP1]]606 ; CHECK-NEXT: $x10 = COPY [[SELECT]](s32)607 ; CHECK-NEXT: PseudoRET implicit $x10608 %xhi:_(s32) = COPY $x10609 %xlo:_(s32) = COPY $x11610 %yhi:_(s32) = COPY $x12611 %ylo:_(s32) = COPY $x13612 %x:_(s64) = G_MERGE_VALUES %xhi(s32), %xlo(s32)613 %y:_(s64) = G_MERGE_VALUES %yhi(s32), %ylo(s32)614 %z:_(s1) = G_ICMP intpred(sle), %x, %y615 %z0:_(s32) = G_ANYEXT %z(s1)616 $x10 = COPY %z0(s32)617 PseudoRET implicit $x10618 619...620---621name: cmp_ugt_i7622body: |623 bb.0.entry:624 ; CHECK-LABEL: name: cmp_ugt_i7625 ; CHECK: [[COPY:%[0-9]+]]:_(s32) = COPY $x10626 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $x11627 ; CHECK-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 127628 ; CHECK-NEXT: [[AND:%[0-9]+]]:_(s32) = G_AND [[COPY]], [[C]]629 ; CHECK-NEXT: [[AND1:%[0-9]+]]:_(s32) = G_AND [[COPY1]], [[C]]630 ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(s32) = G_ICMP intpred(ugt), [[AND]](s32), [[AND1]]631 ; CHECK-NEXT: $x10 = COPY [[ICMP]](s32)632 ; CHECK-NEXT: PseudoRET implicit $x10633 %0:_(s32) = COPY $x10634 %1:_(s32) = COPY $x11635 %2:_(s7) = G_TRUNC %0(s32)636 %3:_(s7) = G_TRUNC %1(s32)637 %4:_(s1) = G_ICMP intpred(ugt), %2(s7), %3638 %5:_(s32) = G_ANYEXT %4(s1)639 $x10 = COPY %5(s32)640 PseudoRET implicit $x10641 642...643---644name: cmp_ugt_i8645body: |646 bb.0.entry:647 ; CHECK-LABEL: name: cmp_ugt_i8648 ; CHECK: [[COPY:%[0-9]+]]:_(s32) = COPY $x10649 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $x11650 ; CHECK-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 255651 ; CHECK-NEXT: [[AND:%[0-9]+]]:_(s32) = G_AND [[COPY]], [[C]]652 ; CHECK-NEXT: [[AND1:%[0-9]+]]:_(s32) = G_AND [[COPY1]], [[C]]653 ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(s32) = G_ICMP intpred(ugt), [[AND]](s32), [[AND1]]654 ; CHECK-NEXT: $x10 = COPY [[ICMP]](s32)655 ; CHECK-NEXT: PseudoRET implicit $x10656 %0:_(s32) = COPY $x10657 %1:_(s32) = COPY $x11658 %2:_(s8) = G_TRUNC %0(s32)659 %3:_(s8) = G_TRUNC %1(s32)660 %4:_(s1) = G_ICMP intpred(ugt), %2(s8), %3661 %5:_(s32) = G_ANYEXT %4(s1)662 $x10 = COPY %5(s32)663 PseudoRET implicit $x10664 665...666---667name: cmp_ugt_i16668body: |669 bb.0.entry:670 ; CHECK-LABEL: name: cmp_ugt_i16671 ; CHECK: [[COPY:%[0-9]+]]:_(s32) = COPY $x10672 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $x11673 ; CHECK-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 65535674 ; CHECK-NEXT: [[AND:%[0-9]+]]:_(s32) = G_AND [[COPY]], [[C]]675 ; CHECK-NEXT: [[AND1:%[0-9]+]]:_(s32) = G_AND [[COPY1]], [[C]]676 ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(s32) = G_ICMP intpred(ugt), [[AND]](s32), [[AND1]]677 ; CHECK-NEXT: $x10 = COPY [[ICMP]](s32)678 ; CHECK-NEXT: PseudoRET implicit $x10679 %0:_(s32) = COPY $x10680 %1:_(s32) = COPY $x11681 %2:_(s16) = G_TRUNC %0(s32)682 %3:_(s16) = G_TRUNC %1(s32)683 %4:_(s1) = G_ICMP intpred(ugt), %2(s16), %3684 %5:_(s32) = G_ANYEXT %4(s1)685 $x10 = COPY %5(s32)686 PseudoRET implicit $x10687 688...689---690name: cmp_ugt_i32691body: |692 bb.0.entry:693 ; CHECK-LABEL: name: cmp_ugt_i32694 ; CHECK: [[COPY:%[0-9]+]]:_(s32) = COPY $x10695 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $x11696 ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(s32) = G_ICMP intpred(ugt), [[COPY]](s32), [[COPY1]]697 ; CHECK-NEXT: $x10 = COPY [[ICMP]](s32)698 ; CHECK-NEXT: PseudoRET implicit $x10699 %0:_(s32) = COPY $x10700 %1:_(s32) = COPY $x11701 %2:_(s1) = G_ICMP intpred(ugt), %0(s32), %1702 %3:_(s32) = G_ANYEXT %2(s1)703 $x10 = COPY %3(s32)704 PseudoRET implicit $x10705 706...707---708name: cmp_ugt_i48709body: |710 bb.0.entry:711 ; CHECK-LABEL: name: cmp_ugt_i48712 ; CHECK: %xhi:_(s32) = COPY $x10713 ; CHECK-NEXT: %xlo:_(s32) = COPY $x11714 ; CHECK-NEXT: %yhi:_(s32) = COPY $x12715 ; CHECK-NEXT: %ylo:_(s32) = COPY $x13716 ; CHECK-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 -1717 ; CHECK-NEXT: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 65535718 ; CHECK-NEXT: [[AND:%[0-9]+]]:_(s32) = G_AND %xhi, [[C]]719 ; CHECK-NEXT: [[AND1:%[0-9]+]]:_(s32) = G_AND %xlo, [[C1]]720 ; CHECK-NEXT: [[AND2:%[0-9]+]]:_(s32) = G_AND %yhi, [[C]]721 ; CHECK-NEXT: [[AND3:%[0-9]+]]:_(s32) = G_AND %ylo, [[C1]]722 ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(s32) = G_ICMP intpred(ugt), [[AND]](s32), [[AND2]]723 ; CHECK-NEXT: [[ICMP1:%[0-9]+]]:_(s32) = G_ICMP intpred(ugt), [[AND1]](s32), [[AND3]]724 ; CHECK-NEXT: [[ICMP2:%[0-9]+]]:_(s32) = G_ICMP intpred(eq), [[AND1]](s32), [[AND3]]725 ; CHECK-NEXT: [[SELECT:%[0-9]+]]:_(s32) = G_SELECT [[ICMP2]](s32), [[ICMP]], [[ICMP1]]726 ; CHECK-NEXT: $x10 = COPY [[SELECT]](s32)727 ; CHECK-NEXT: PseudoRET implicit $x10728 %xhi:_(s32) = COPY $x10729 %xlo:_(s32) = COPY $x11730 %yhi:_(s32) = COPY $x12731 %ylo:_(s32) = COPY $x13732 %x0:_(s64) = G_MERGE_VALUES %xhi(s32), %xlo(s32)733 %y0:_(s64) = G_MERGE_VALUES %yhi(s32), %ylo(s32)734 %x:_(s48) = G_TRUNC %x0(s64)735 %y:_(s48) = G_TRUNC %y0(s64)736 %z:_(s1) = G_ICMP intpred(ugt), %x(s48), %y737 %z0:_(s32) = G_ANYEXT %z(s1)738 $x10 = COPY %z0(s32)739 PseudoRET implicit $x10740 741...742---743name: cmp_ugt_i64744body: |745 bb.0.entry:746 ; CHECK-LABEL: name: cmp_ugt_i64747 ; CHECK: %xhi:_(s32) = COPY $x10748 ; CHECK-NEXT: %xlo:_(s32) = COPY $x11749 ; CHECK-NEXT: %yhi:_(s32) = COPY $x12750 ; CHECK-NEXT: %ylo:_(s32) = COPY $x13751 ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(s32) = G_ICMP intpred(ugt), %xhi(s32), %yhi752 ; CHECK-NEXT: [[ICMP1:%[0-9]+]]:_(s32) = G_ICMP intpred(ugt), %xlo(s32), %ylo753 ; CHECK-NEXT: [[ICMP2:%[0-9]+]]:_(s32) = G_ICMP intpred(eq), %xlo(s32), %ylo754 ; CHECK-NEXT: [[SELECT:%[0-9]+]]:_(s32) = G_SELECT [[ICMP2]](s32), [[ICMP]], [[ICMP1]]755 ; CHECK-NEXT: $x10 = COPY [[SELECT]](s32)756 ; CHECK-NEXT: PseudoRET implicit $x10757 %xhi:_(s32) = COPY $x10758 %xlo:_(s32) = COPY $x11759 %yhi:_(s32) = COPY $x12760 %ylo:_(s32) = COPY $x13761 %x:_(s64) = G_MERGE_VALUES %xhi(s32), %xlo(s32)762 %y:_(s64) = G_MERGE_VALUES %yhi(s32), %ylo(s32)763 %z:_(s1) = G_ICMP intpred(ugt), %x, %y764 %z0:_(s32) = G_ANYEXT %z(s1)765 $x10 = COPY %z0(s32)766 PseudoRET implicit $x10767 768...769---770name: cmp_ult_i7771body: |772 bb.0.entry:773 ; CHECK-LABEL: name: cmp_ult_i7774 ; CHECK: [[COPY:%[0-9]+]]:_(s32) = COPY $x10775 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $x11776 ; CHECK-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 127777 ; CHECK-NEXT: [[AND:%[0-9]+]]:_(s32) = G_AND [[COPY]], [[C]]778 ; CHECK-NEXT: [[AND1:%[0-9]+]]:_(s32) = G_AND [[COPY1]], [[C]]779 ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(s32) = G_ICMP intpred(ult), [[AND]](s32), [[AND1]]780 ; CHECK-NEXT: $x10 = COPY [[ICMP]](s32)781 ; CHECK-NEXT: PseudoRET implicit $x10782 %0:_(s32) = COPY $x10783 %1:_(s32) = COPY $x11784 %2:_(s7) = G_TRUNC %0(s32)785 %3:_(s7) = G_TRUNC %1(s32)786 %4:_(s1) = G_ICMP intpred(ult), %2(s7), %3787 %5:_(s32) = G_ANYEXT %4(s1)788 $x10 = COPY %5(s32)789 PseudoRET implicit $x10790 791...792---793name: cmp_ult_i8794body: |795 bb.0.entry:796 ; CHECK-LABEL: name: cmp_ult_i8797 ; CHECK: [[COPY:%[0-9]+]]:_(s32) = COPY $x10798 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $x11799 ; CHECK-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 255800 ; CHECK-NEXT: [[AND:%[0-9]+]]:_(s32) = G_AND [[COPY]], [[C]]801 ; CHECK-NEXT: [[AND1:%[0-9]+]]:_(s32) = G_AND [[COPY1]], [[C]]802 ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(s32) = G_ICMP intpred(ult), [[AND]](s32), [[AND1]]803 ; CHECK-NEXT: $x10 = COPY [[ICMP]](s32)804 ; CHECK-NEXT: PseudoRET implicit $x10805 %0:_(s32) = COPY $x10806 %1:_(s32) = COPY $x11807 %2:_(s8) = G_TRUNC %0(s32)808 %3:_(s8) = G_TRUNC %1(s32)809 %4:_(s1) = G_ICMP intpred(ult), %2(s8), %3810 %5:_(s32) = G_ANYEXT %4(s1)811 $x10 = COPY %5(s32)812 PseudoRET implicit $x10813 814...815---816name: cmp_ult_i16817body: |818 bb.0.entry:819 ; CHECK-LABEL: name: cmp_ult_i16820 ; CHECK: [[COPY:%[0-9]+]]:_(s32) = COPY $x10821 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $x11822 ; CHECK-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 65535823 ; CHECK-NEXT: [[AND:%[0-9]+]]:_(s32) = G_AND [[COPY]], [[C]]824 ; CHECK-NEXT: [[AND1:%[0-9]+]]:_(s32) = G_AND [[COPY1]], [[C]]825 ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(s32) = G_ICMP intpred(ult), [[AND]](s32), [[AND1]]826 ; CHECK-NEXT: $x10 = COPY [[ICMP]](s32)827 ; CHECK-NEXT: PseudoRET implicit $x10828 %0:_(s32) = COPY $x10829 %1:_(s32) = COPY $x11830 %2:_(s16) = G_TRUNC %0(s32)831 %3:_(s16) = G_TRUNC %1(s32)832 %4:_(s1) = G_ICMP intpred(ult), %2(s16), %3833 %5:_(s32) = G_ANYEXT %4(s1)834 $x10 = COPY %5(s32)835 PseudoRET implicit $x10836 837...838---839name: cmp_ult_i32840body: |841 bb.0.entry:842 ; CHECK-LABEL: name: cmp_ult_i32843 ; CHECK: [[COPY:%[0-9]+]]:_(s32) = COPY $x10844 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $x11845 ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(s32) = G_ICMP intpred(ult), [[COPY]](s32), [[COPY1]]846 ; CHECK-NEXT: $x10 = COPY [[ICMP]](s32)847 ; CHECK-NEXT: PseudoRET implicit $x10848 %0:_(s32) = COPY $x10849 %1:_(s32) = COPY $x11850 %2:_(s1) = G_ICMP intpred(ult), %0(s32), %1851 %3:_(s32) = G_ANYEXT %2(s1)852 $x10 = COPY %3(s32)853 PseudoRET implicit $x10854 855...856---857name: cmp_ult_i48858body: |859 bb.0.entry:860 ; CHECK-LABEL: name: cmp_ult_i48861 ; CHECK: %xhi:_(s32) = COPY $x10862 ; CHECK-NEXT: %xlo:_(s32) = COPY $x11863 ; CHECK-NEXT: %yhi:_(s32) = COPY $x12864 ; CHECK-NEXT: %ylo:_(s32) = COPY $x13865 ; CHECK-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 -1866 ; CHECK-NEXT: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 65535867 ; CHECK-NEXT: [[AND:%[0-9]+]]:_(s32) = G_AND %xhi, [[C]]868 ; CHECK-NEXT: [[AND1:%[0-9]+]]:_(s32) = G_AND %xlo, [[C1]]869 ; CHECK-NEXT: [[AND2:%[0-9]+]]:_(s32) = G_AND %yhi, [[C]]870 ; CHECK-NEXT: [[AND3:%[0-9]+]]:_(s32) = G_AND %ylo, [[C1]]871 ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(s32) = G_ICMP intpred(ult), [[AND]](s32), [[AND2]]872 ; CHECK-NEXT: [[ICMP1:%[0-9]+]]:_(s32) = G_ICMP intpred(ult), [[AND1]](s32), [[AND3]]873 ; CHECK-NEXT: [[ICMP2:%[0-9]+]]:_(s32) = G_ICMP intpred(eq), [[AND1]](s32), [[AND3]]874 ; CHECK-NEXT: [[SELECT:%[0-9]+]]:_(s32) = G_SELECT [[ICMP2]](s32), [[ICMP]], [[ICMP1]]875 ; CHECK-NEXT: $x10 = COPY [[SELECT]](s32)876 ; CHECK-NEXT: PseudoRET implicit $x10877 %xhi:_(s32) = COPY $x10878 %xlo:_(s32) = COPY $x11879 %yhi:_(s32) = COPY $x12880 %ylo:_(s32) = COPY $x13881 %x0:_(s64) = G_MERGE_VALUES %xhi(s32), %xlo(s32)882 %y0:_(s64) = G_MERGE_VALUES %yhi(s32), %ylo(s32)883 %x:_(s48) = G_TRUNC %x0(s64)884 %y:_(s48) = G_TRUNC %y0(s64)885 %z:_(s1) = G_ICMP intpred(ult), %x(s48), %y886 %z0:_(s32) = G_ANYEXT %z(s1)887 $x10 = COPY %z0(s32)888 PseudoRET implicit $x10889 890...891---892name: cmp_ult_i64893body: |894 bb.0.entry:895 ; CHECK-LABEL: name: cmp_ult_i64896 ; CHECK: %xhi:_(s32) = COPY $x10897 ; CHECK-NEXT: %xlo:_(s32) = COPY $x11898 ; CHECK-NEXT: %yhi:_(s32) = COPY $x12899 ; CHECK-NEXT: %ylo:_(s32) = COPY $x13900 ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(s32) = G_ICMP intpred(uge), %xhi(s32), %yhi901 ; CHECK-NEXT: [[ICMP1:%[0-9]+]]:_(s32) = G_ICMP intpred(sge), %xlo(s32), %ylo902 ; CHECK-NEXT: [[ICMP2:%[0-9]+]]:_(s32) = G_ICMP intpred(eq), %xlo(s32), %ylo903 ; CHECK-NEXT: [[SELECT:%[0-9]+]]:_(s32) = G_SELECT [[ICMP2]](s32), [[ICMP]], [[ICMP1]]904 ; CHECK-NEXT: $x10 = COPY [[SELECT]](s32)905 ; CHECK-NEXT: PseudoRET implicit $x10906 %xhi:_(s32) = COPY $x10907 %xlo:_(s32) = COPY $x11908 %yhi:_(s32) = COPY $x12909 %ylo:_(s32) = COPY $x13910 %x:_(s64) = G_MERGE_VALUES %xhi(s32), %xlo(s32)911 %y:_(s64) = G_MERGE_VALUES %yhi(s32), %ylo(s32)912 %z:_(s1) = G_ICMP intpred(sge), %x, %y913 %z0:_(s32) = G_ANYEXT %z(s1)914 $x10 = COPY %z0(s32)915 PseudoRET implicit $x10916 917...918---919name: cmp_uge_i7920body: |921 bb.0.entry:922 ; CHECK-LABEL: name: cmp_uge_i7923 ; CHECK: [[COPY:%[0-9]+]]:_(s32) = COPY $x10924 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $x11925 ; CHECK-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 127926 ; CHECK-NEXT: [[AND:%[0-9]+]]:_(s32) = G_AND [[COPY]], [[C]]927 ; CHECK-NEXT: [[AND1:%[0-9]+]]:_(s32) = G_AND [[COPY1]], [[C]]928 ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(s32) = G_ICMP intpred(uge), [[AND]](s32), [[AND1]]929 ; CHECK-NEXT: $x10 = COPY [[ICMP]](s32)930 ; CHECK-NEXT: PseudoRET implicit $x10931 %0:_(s32) = COPY $x10932 %1:_(s32) = COPY $x11933 %2:_(s7) = G_TRUNC %0(s32)934 %3:_(s7) = G_TRUNC %1(s32)935 %4:_(s1) = G_ICMP intpred(uge), %2(s7), %3936 %5:_(s32) = G_ANYEXT %4(s1)937 $x10 = COPY %5(s32)938 PseudoRET implicit $x10939 940...941---942name: cmp_uge_i8943body: |944 bb.0.entry:945 ; CHECK-LABEL: name: cmp_uge_i8946 ; CHECK: [[COPY:%[0-9]+]]:_(s32) = COPY $x10947 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $x11948 ; CHECK-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 255949 ; CHECK-NEXT: [[AND:%[0-9]+]]:_(s32) = G_AND [[COPY]], [[C]]950 ; CHECK-NEXT: [[AND1:%[0-9]+]]:_(s32) = G_AND [[COPY1]], [[C]]951 ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(s32) = G_ICMP intpred(uge), [[AND]](s32), [[AND1]]952 ; CHECK-NEXT: $x10 = COPY [[ICMP]](s32)953 ; CHECK-NEXT: PseudoRET implicit $x10954 %0:_(s32) = COPY $x10955 %1:_(s32) = COPY $x11956 %2:_(s8) = G_TRUNC %0(s32)957 %3:_(s8) = G_TRUNC %1(s32)958 %4:_(s1) = G_ICMP intpred(uge), %2(s8), %3959 %5:_(s32) = G_ANYEXT %4(s1)960 $x10 = COPY %5(s32)961 PseudoRET implicit $x10962 963...964---965name: cmp_uge_i16966body: |967 bb.0.entry:968 ; CHECK-LABEL: name: cmp_uge_i16969 ; CHECK: [[COPY:%[0-9]+]]:_(s32) = COPY $x10970 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $x11971 ; CHECK-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 65535972 ; CHECK-NEXT: [[AND:%[0-9]+]]:_(s32) = G_AND [[COPY]], [[C]]973 ; CHECK-NEXT: [[AND1:%[0-9]+]]:_(s32) = G_AND [[COPY1]], [[C]]974 ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(s32) = G_ICMP intpred(uge), [[AND]](s32), [[AND1]]975 ; CHECK-NEXT: $x10 = COPY [[ICMP]](s32)976 ; CHECK-NEXT: PseudoRET implicit $x10977 %0:_(s32) = COPY $x10978 %1:_(s32) = COPY $x11979 %2:_(s16) = G_TRUNC %0(s32)980 %3:_(s16) = G_TRUNC %1(s32)981 %4:_(s1) = G_ICMP intpred(uge), %2(s16), %3982 %5:_(s32) = G_ANYEXT %4(s1)983 $x10 = COPY %5(s32)984 PseudoRET implicit $x10985 986...987---988name: cmp_uge_i32989body: |990 bb.0.entry:991 ; CHECK-LABEL: name: cmp_uge_i32992 ; CHECK: [[COPY:%[0-9]+]]:_(s32) = COPY $x10993 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $x11994 ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(s32) = G_ICMP intpred(uge), [[COPY]](s32), [[COPY1]]995 ; CHECK-NEXT: $x10 = COPY [[ICMP]](s32)996 ; CHECK-NEXT: PseudoRET implicit $x10997 %0:_(s32) = COPY $x10998 %1:_(s32) = COPY $x11999 %2:_(s1) = G_ICMP intpred(uge), %0(s32), %11000 %3:_(s32) = G_ANYEXT %2(s1)1001 $x10 = COPY %3(s32)1002 PseudoRET implicit $x101003 1004...1005---1006name: cmp_uge_i481007body: |1008 bb.0.entry:1009 ; CHECK-LABEL: name: cmp_uge_i481010 ; CHECK: %xhi:_(s32) = COPY $x101011 ; CHECK-NEXT: %xlo:_(s32) = COPY $x111012 ; CHECK-NEXT: %yhi:_(s32) = COPY $x121013 ; CHECK-NEXT: %ylo:_(s32) = COPY $x131014 ; CHECK-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 -11015 ; CHECK-NEXT: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 655351016 ; CHECK-NEXT: [[AND:%[0-9]+]]:_(s32) = G_AND %xhi, [[C]]1017 ; CHECK-NEXT: [[AND1:%[0-9]+]]:_(s32) = G_AND %xlo, [[C1]]1018 ; CHECK-NEXT: [[AND2:%[0-9]+]]:_(s32) = G_AND %yhi, [[C]]1019 ; CHECK-NEXT: [[AND3:%[0-9]+]]:_(s32) = G_AND %ylo, [[C1]]1020 ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(s32) = G_ICMP intpred(uge), [[AND]](s32), [[AND2]]1021 ; CHECK-NEXT: [[ICMP1:%[0-9]+]]:_(s32) = G_ICMP intpred(uge), [[AND1]](s32), [[AND3]]1022 ; CHECK-NEXT: [[ICMP2:%[0-9]+]]:_(s32) = G_ICMP intpred(eq), [[AND1]](s32), [[AND3]]1023 ; CHECK-NEXT: [[SELECT:%[0-9]+]]:_(s32) = G_SELECT [[ICMP2]](s32), [[ICMP]], [[ICMP1]]1024 ; CHECK-NEXT: $x10 = COPY [[SELECT]](s32)1025 ; CHECK-NEXT: PseudoRET implicit $x101026 %xhi:_(s32) = COPY $x101027 %xlo:_(s32) = COPY $x111028 %yhi:_(s32) = COPY $x121029 %ylo:_(s32) = COPY $x131030 %x0:_(s64) = G_MERGE_VALUES %xhi(s32), %xlo(s32)1031 %y0:_(s64) = G_MERGE_VALUES %yhi(s32), %ylo(s32)1032 %x:_(s48) = G_TRUNC %x0(s64)1033 %y:_(s48) = G_TRUNC %y0(s64)1034 %z:_(s1) = G_ICMP intpred(uge), %x(s48), %y1035 %z0:_(s32) = G_ANYEXT %z(s1)1036 $x10 = COPY %z0(s32)1037 PseudoRET implicit $x101038 1039...1040---1041name: cmp_uge_i641042body: |1043 bb.0.entry:1044 ; CHECK-LABEL: name: cmp_uge_i641045 ; CHECK: %xhi:_(s32) = COPY $x101046 ; CHECK-NEXT: %xlo:_(s32) = COPY $x111047 ; CHECK-NEXT: %yhi:_(s32) = COPY $x121048 ; CHECK-NEXT: %ylo:_(s32) = COPY $x131049 ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(s32) = G_ICMP intpred(uge), %xhi(s32), %yhi1050 ; CHECK-NEXT: [[ICMP1:%[0-9]+]]:_(s32) = G_ICMP intpred(uge), %xlo(s32), %ylo1051 ; CHECK-NEXT: [[ICMP2:%[0-9]+]]:_(s32) = G_ICMP intpred(eq), %xlo(s32), %ylo1052 ; CHECK-NEXT: [[SELECT:%[0-9]+]]:_(s32) = G_SELECT [[ICMP2]](s32), [[ICMP]], [[ICMP1]]1053 ; CHECK-NEXT: $x10 = COPY [[SELECT]](s32)1054 ; CHECK-NEXT: PseudoRET implicit $x101055 %xhi:_(s32) = COPY $x101056 %xlo:_(s32) = COPY $x111057 %yhi:_(s32) = COPY $x121058 %ylo:_(s32) = COPY $x131059 %x:_(s64) = G_MERGE_VALUES %xhi(s32), %xlo(s32)1060 %y:_(s64) = G_MERGE_VALUES %yhi(s32), %ylo(s32)1061 %z:_(s1) = G_ICMP intpred(uge), %x, %y1062 %z0:_(s32) = G_ANYEXT %z(s1)1063 $x10 = COPY %z0(s32)1064 PseudoRET implicit $x101065 1066...1067---1068name: cmp_ule_i71069body: |1070 bb.0.entry:1071 ; CHECK-LABEL: name: cmp_ule_i71072 ; CHECK: [[COPY:%[0-9]+]]:_(s32) = COPY $x101073 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $x111074 ; CHECK-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 1271075 ; CHECK-NEXT: [[AND:%[0-9]+]]:_(s32) = G_AND [[COPY]], [[C]]1076 ; CHECK-NEXT: [[AND1:%[0-9]+]]:_(s32) = G_AND [[COPY1]], [[C]]1077 ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(s32) = G_ICMP intpred(ule), [[AND]](s32), [[AND1]]1078 ; CHECK-NEXT: $x10 = COPY [[ICMP]](s32)1079 ; CHECK-NEXT: PseudoRET implicit $x101080 %0:_(s32) = COPY $x101081 %1:_(s32) = COPY $x111082 %2:_(s7) = G_TRUNC %0(s32)1083 %3:_(s7) = G_TRUNC %1(s32)1084 %4:_(s1) = G_ICMP intpred(ule), %2(s7), %31085 %5:_(s32) = G_ANYEXT %4(s1)1086 $x10 = COPY %5(s32)1087 PseudoRET implicit $x101088 1089...1090---1091name: cmp_ule_i81092body: |1093 bb.0.entry:1094 ; CHECK-LABEL: name: cmp_ule_i81095 ; CHECK: [[COPY:%[0-9]+]]:_(s32) = COPY $x101096 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $x111097 ; CHECK-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 2551098 ; CHECK-NEXT: [[AND:%[0-9]+]]:_(s32) = G_AND [[COPY]], [[C]]1099 ; CHECK-NEXT: [[AND1:%[0-9]+]]:_(s32) = G_AND [[COPY1]], [[C]]1100 ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(s32) = G_ICMP intpred(ule), [[AND]](s32), [[AND1]]1101 ; CHECK-NEXT: $x10 = COPY [[ICMP]](s32)1102 ; CHECK-NEXT: PseudoRET implicit $x101103 %0:_(s32) = COPY $x101104 %1:_(s32) = COPY $x111105 %2:_(s8) = G_TRUNC %0(s32)1106 %3:_(s8) = G_TRUNC %1(s32)1107 %4:_(s1) = G_ICMP intpred(ule), %2(s8), %31108 %5:_(s32) = G_ANYEXT %4(s1)1109 $x10 = COPY %5(s32)1110 PseudoRET implicit $x101111 1112...1113---1114name: cmp_ule_i161115body: |1116 bb.0.entry:1117 ; CHECK-LABEL: name: cmp_ule_i161118 ; CHECK: [[COPY:%[0-9]+]]:_(s32) = COPY $x101119 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $x111120 ; CHECK-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 655351121 ; CHECK-NEXT: [[AND:%[0-9]+]]:_(s32) = G_AND [[COPY]], [[C]]1122 ; CHECK-NEXT: [[AND1:%[0-9]+]]:_(s32) = G_AND [[COPY1]], [[C]]1123 ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(s32) = G_ICMP intpred(ule), [[AND]](s32), [[AND1]]1124 ; CHECK-NEXT: $x10 = COPY [[ICMP]](s32)1125 ; CHECK-NEXT: PseudoRET implicit $x101126 %0:_(s32) = COPY $x101127 %1:_(s32) = COPY $x111128 %2:_(s16) = G_TRUNC %0(s32)1129 %3:_(s16) = G_TRUNC %1(s32)1130 %4:_(s1) = G_ICMP intpred(ule), %2(s16), %31131 %5:_(s32) = G_ANYEXT %4(s1)1132 $x10 = COPY %5(s32)1133 PseudoRET implicit $x101134 1135...1136---1137name: cmp_ule_i321138body: |1139 bb.0.entry:1140 ; CHECK-LABEL: name: cmp_ule_i321141 ; CHECK: [[COPY:%[0-9]+]]:_(s32) = COPY $x101142 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $x111143 ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(s32) = G_ICMP intpred(ule), [[COPY]](s32), [[COPY1]]1144 ; CHECK-NEXT: $x10 = COPY [[ICMP]](s32)1145 ; CHECK-NEXT: PseudoRET implicit $x101146 %0:_(s32) = COPY $x101147 %1:_(s32) = COPY $x111148 %2:_(s1) = G_ICMP intpred(ule), %0(s32), %11149 %3:_(s32) = G_ANYEXT %2(s1)1150 $x10 = COPY %3(s32)1151 PseudoRET implicit $x101152 1153...1154---1155name: cmp_ule_i481156body: |1157 bb.0.entry:1158 ; CHECK-LABEL: name: cmp_ule_i481159 ; CHECK: %xhi:_(s32) = COPY $x101160 ; CHECK-NEXT: %xlo:_(s32) = COPY $x111161 ; CHECK-NEXT: %yhi:_(s32) = COPY $x121162 ; CHECK-NEXT: %ylo:_(s32) = COPY $x131163 ; CHECK-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 -11164 ; CHECK-NEXT: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 655351165 ; CHECK-NEXT: [[AND:%[0-9]+]]:_(s32) = G_AND %xhi, [[C]]1166 ; CHECK-NEXT: [[AND1:%[0-9]+]]:_(s32) = G_AND %xlo, [[C1]]1167 ; CHECK-NEXT: [[AND2:%[0-9]+]]:_(s32) = G_AND %yhi, [[C]]1168 ; CHECK-NEXT: [[AND3:%[0-9]+]]:_(s32) = G_AND %ylo, [[C1]]1169 ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(s32) = G_ICMP intpred(ule), [[AND]](s32), [[AND2]]1170 ; CHECK-NEXT: [[ICMP1:%[0-9]+]]:_(s32) = G_ICMP intpred(ule), [[AND1]](s32), [[AND3]]1171 ; CHECK-NEXT: [[ICMP2:%[0-9]+]]:_(s32) = G_ICMP intpred(eq), [[AND1]](s32), [[AND3]]1172 ; CHECK-NEXT: [[SELECT:%[0-9]+]]:_(s32) = G_SELECT [[ICMP2]](s32), [[ICMP]], [[ICMP1]]1173 ; CHECK-NEXT: $x10 = COPY [[SELECT]](s32)1174 ; CHECK-NEXT: PseudoRET implicit $x101175 %xhi:_(s32) = COPY $x101176 %xlo:_(s32) = COPY $x111177 %yhi:_(s32) = COPY $x121178 %ylo:_(s32) = COPY $x131179 %x0:_(s64) = G_MERGE_VALUES %xhi(s32), %xlo(s32)1180 %y0:_(s64) = G_MERGE_VALUES %yhi(s32), %ylo(s32)1181 %x:_(s48) = G_TRUNC %x0(s64)1182 %y:_(s48) = G_TRUNC %y0(s64)1183 %z:_(s1) = G_ICMP intpred(ule), %x(s48), %y1184 %z0:_(s32) = G_ANYEXT %z(s1)1185 $x10 = COPY %z0(s32)1186 PseudoRET implicit $x101187 1188...1189---1190name: cmp_ule_i641191body: |1192 bb.0.entry:1193 ; CHECK-LABEL: name: cmp_ule_i641194 ; CHECK: %xhi:_(s32) = COPY $x101195 ; CHECK-NEXT: %xlo:_(s32) = COPY $x111196 ; CHECK-NEXT: %yhi:_(s32) = COPY $x121197 ; CHECK-NEXT: %ylo:_(s32) = COPY $x131198 ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(s32) = G_ICMP intpred(ule), %xhi(s32), %yhi1199 ; CHECK-NEXT: [[ICMP1:%[0-9]+]]:_(s32) = G_ICMP intpred(ule), %xlo(s32), %ylo1200 ; CHECK-NEXT: [[ICMP2:%[0-9]+]]:_(s32) = G_ICMP intpred(eq), %xlo(s32), %ylo1201 ; CHECK-NEXT: [[SELECT:%[0-9]+]]:_(s32) = G_SELECT [[ICMP2]](s32), [[ICMP]], [[ICMP1]]1202 ; CHECK-NEXT: $x10 = COPY [[SELECT]](s32)1203 ; CHECK-NEXT: PseudoRET implicit $x101204 %xhi:_(s32) = COPY $x101205 %xlo:_(s32) = COPY $x111206 %yhi:_(s32) = COPY $x121207 %ylo:_(s32) = COPY $x131208 %x:_(s64) = G_MERGE_VALUES %xhi(s32), %xlo(s32)1209 %y:_(s64) = G_MERGE_VALUES %yhi(s32), %ylo(s32)1210 %z:_(s1) = G_ICMP intpred(ule), %x, %y1211 %z0:_(s32) = G_ANYEXT %z(s1)1212 $x10 = COPY %z0(s32)1213 PseudoRET implicit $x101214 1215...1216---1217name: cmp_eq_i71218body: |1219 bb.0.entry:1220 ; CHECK-LABEL: name: cmp_eq_i71221 ; CHECK: [[COPY:%[0-9]+]]:_(s32) = COPY $x101222 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $x111223 ; CHECK-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 1271224 ; CHECK-NEXT: [[AND:%[0-9]+]]:_(s32) = G_AND [[COPY]], [[C]]1225 ; CHECK-NEXT: [[AND1:%[0-9]+]]:_(s32) = G_AND [[COPY1]], [[C]]1226 ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(s32) = G_ICMP intpred(eq), [[AND]](s32), [[AND1]]1227 ; CHECK-NEXT: $x10 = COPY [[ICMP]](s32)1228 ; CHECK-NEXT: PseudoRET implicit $x101229 %0:_(s32) = COPY $x101230 %1:_(s32) = COPY $x111231 %2:_(s7) = G_TRUNC %0(s32)1232 %3:_(s7) = G_TRUNC %1(s32)1233 %4:_(s1) = G_ICMP intpred(eq), %2(s7), %31234 %5:_(s32) = G_ANYEXT %4(s1)1235 $x10 = COPY %5(s32)1236 PseudoRET implicit $x101237 1238...1239---1240name: cmp_eq_i81241body: |1242 bb.0.entry:1243 ; CHECK-LABEL: name: cmp_eq_i81244 ; CHECK: [[COPY:%[0-9]+]]:_(s32) = COPY $x101245 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $x111246 ; CHECK-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 2551247 ; CHECK-NEXT: [[AND:%[0-9]+]]:_(s32) = G_AND [[COPY]], [[C]]1248 ; CHECK-NEXT: [[AND1:%[0-9]+]]:_(s32) = G_AND [[COPY1]], [[C]]1249 ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(s32) = G_ICMP intpred(eq), [[AND]](s32), [[AND1]]1250 ; CHECK-NEXT: $x10 = COPY [[ICMP]](s32)1251 ; CHECK-NEXT: PseudoRET implicit $x101252 %0:_(s32) = COPY $x101253 %1:_(s32) = COPY $x111254 %2:_(s8) = G_TRUNC %0(s32)1255 %3:_(s8) = G_TRUNC %1(s32)1256 %4:_(s1) = G_ICMP intpred(eq), %2(s8), %31257 %5:_(s32) = G_ANYEXT %4(s1)1258 $x10 = COPY %5(s32)1259 PseudoRET implicit $x101260 1261...1262---1263name: cmp_eq_i161264body: |1265 bb.0.entry:1266 ; CHECK-LABEL: name: cmp_eq_i161267 ; CHECK: [[COPY:%[0-9]+]]:_(s32) = COPY $x101268 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $x111269 ; CHECK-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 655351270 ; CHECK-NEXT: [[AND:%[0-9]+]]:_(s32) = G_AND [[COPY]], [[C]]1271 ; CHECK-NEXT: [[AND1:%[0-9]+]]:_(s32) = G_AND [[COPY1]], [[C]]1272 ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(s32) = G_ICMP intpred(eq), [[AND]](s32), [[AND1]]1273 ; CHECK-NEXT: $x10 = COPY [[ICMP]](s32)1274 ; CHECK-NEXT: PseudoRET implicit $x101275 %0:_(s32) = COPY $x101276 %1:_(s32) = COPY $x111277 %2:_(s16) = G_TRUNC %0(s32)1278 %3:_(s16) = G_TRUNC %1(s32)1279 %4:_(s1) = G_ICMP intpred(eq), %2(s16), %31280 %5:_(s32) = G_ANYEXT %4(s1)1281 $x10 = COPY %5(s32)1282 PseudoRET implicit $x101283 1284...1285---1286name: cmp_eq_i321287body: |1288 bb.0.entry:1289 ; CHECK-LABEL: name: cmp_eq_i321290 ; CHECK: [[COPY:%[0-9]+]]:_(s32) = COPY $x101291 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $x111292 ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(s32) = G_ICMP intpred(eq), [[COPY]](s32), [[COPY1]]1293 ; CHECK-NEXT: $x10 = COPY [[ICMP]](s32)1294 ; CHECK-NEXT: PseudoRET implicit $x101295 %0:_(s32) = COPY $x101296 %1:_(s32) = COPY $x111297 %2:_(s1) = G_ICMP intpred(eq), %0(s32), %11298 %3:_(s32) = G_ANYEXT %2(s1)1299 $x10 = COPY %3(s32)1300 PseudoRET implicit $x101301 1302...1303---1304name: cmp_eq_i481305body: |1306 bb.0.entry:1307 ; CHECK-LABEL: name: cmp_eq_i481308 ; CHECK: %xhi:_(s32) = COPY $x101309 ; CHECK-NEXT: %xlo:_(s32) = COPY $x111310 ; CHECK-NEXT: %yhi:_(s32) = COPY $x121311 ; CHECK-NEXT: %ylo:_(s32) = COPY $x131312 ; CHECK-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 -11313 ; CHECK-NEXT: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 655351314 ; CHECK-NEXT: [[AND:%[0-9]+]]:_(s32) = G_AND %xhi, [[C]]1315 ; CHECK-NEXT: [[AND1:%[0-9]+]]:_(s32) = G_AND %xlo, [[C1]]1316 ; CHECK-NEXT: [[AND2:%[0-9]+]]:_(s32) = G_AND %yhi, [[C]]1317 ; CHECK-NEXT: [[AND3:%[0-9]+]]:_(s32) = G_AND %ylo, [[C1]]1318 ; CHECK-NEXT: [[C2:%[0-9]+]]:_(s32) = G_CONSTANT i32 01319 ; CHECK-NEXT: [[XOR:%[0-9]+]]:_(s32) = G_XOR [[AND]], [[AND2]]1320 ; CHECK-NEXT: [[XOR1:%[0-9]+]]:_(s32) = G_XOR [[AND1]], [[AND3]]1321 ; CHECK-NEXT: [[OR:%[0-9]+]]:_(s32) = G_OR [[XOR]], [[XOR1]]1322 ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(s32) = G_ICMP intpred(eq), [[OR]](s32), [[C2]]1323 ; CHECK-NEXT: $x10 = COPY [[ICMP]](s32)1324 ; CHECK-NEXT: PseudoRET implicit $x101325 %xhi:_(s32) = COPY $x101326 %xlo:_(s32) = COPY $x111327 %yhi:_(s32) = COPY $x121328 %ylo:_(s32) = COPY $x131329 %x0:_(s64) = G_MERGE_VALUES %xhi(s32), %xlo(s32)1330 %y0:_(s64) = G_MERGE_VALUES %yhi(s32), %ylo(s32)1331 %x:_(s48) = G_TRUNC %x0(s64)1332 %y:_(s48) = G_TRUNC %y0(s64)1333 %z:_(s1) = G_ICMP intpred(eq), %x(s48), %y1334 %z0:_(s32) = G_ANYEXT %z(s1)1335 $x10 = COPY %z0(s32)1336 PseudoRET implicit $x101337 1338...1339---1340name: cmp_eq_i641341body: |1342 bb.0.entry:1343 ; CHECK-LABEL: name: cmp_eq_i641344 ; CHECK: %xhi:_(s32) = COPY $x101345 ; CHECK-NEXT: %xlo:_(s32) = COPY $x111346 ; CHECK-NEXT: %yhi:_(s32) = COPY $x121347 ; CHECK-NEXT: %ylo:_(s32) = COPY $x131348 ; CHECK-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 01349 ; CHECK-NEXT: [[XOR:%[0-9]+]]:_(s32) = G_XOR %xhi, %yhi1350 ; CHECK-NEXT: [[XOR1:%[0-9]+]]:_(s32) = G_XOR %xlo, %ylo1351 ; CHECK-NEXT: [[OR:%[0-9]+]]:_(s32) = G_OR [[XOR]], [[XOR1]]1352 ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(s32) = G_ICMP intpred(eq), [[OR]](s32), [[C]]1353 ; CHECK-NEXT: $x10 = COPY [[ICMP]](s32)1354 ; CHECK-NEXT: PseudoRET implicit $x101355 %xhi:_(s32) = COPY $x101356 %xlo:_(s32) = COPY $x111357 %yhi:_(s32) = COPY $x121358 %ylo:_(s32) = COPY $x131359 %x:_(s64) = G_MERGE_VALUES %xhi(s32), %xlo(s32)1360 %y:_(s64) = G_MERGE_VALUES %yhi(s32), %ylo(s32)1361 %z:_(s1) = G_ICMP intpred(eq), %x, %y1362 %z0:_(s32) = G_ANYEXT %z(s1)1363 $x10 = COPY %z0(s32)1364 PseudoRET implicit $x101365 1366...1367---1368name: cmp_ne_i71369body: |1370 bb.0.entry:1371 ; CHECK-LABEL: name: cmp_ne_i71372 ; CHECK: [[COPY:%[0-9]+]]:_(s32) = COPY $x101373 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $x111374 ; CHECK-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 1271375 ; CHECK-NEXT: [[AND:%[0-9]+]]:_(s32) = G_AND [[COPY]], [[C]]1376 ; CHECK-NEXT: [[AND1:%[0-9]+]]:_(s32) = G_AND [[COPY1]], [[C]]1377 ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(s32) = G_ICMP intpred(ne), [[AND]](s32), [[AND1]]1378 ; CHECK-NEXT: $x10 = COPY [[ICMP]](s32)1379 ; CHECK-NEXT: PseudoRET implicit $x101380 %0:_(s32) = COPY $x101381 %1:_(s32) = COPY $x111382 %2:_(s7) = G_TRUNC %0(s32)1383 %3:_(s7) = G_TRUNC %1(s32)1384 %4:_(s1) = G_ICMP intpred(ne), %2(s7), %31385 %5:_(s32) = G_ANYEXT %4(s1)1386 $x10 = COPY %5(s32)1387 PseudoRET implicit $x101388 1389...1390---1391name: cmp_ne_i81392body: |1393 bb.0.entry:1394 ; CHECK-LABEL: name: cmp_ne_i81395 ; CHECK: [[COPY:%[0-9]+]]:_(s32) = COPY $x101396 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $x111397 ; CHECK-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 2551398 ; CHECK-NEXT: [[AND:%[0-9]+]]:_(s32) = G_AND [[COPY]], [[C]]1399 ; CHECK-NEXT: [[AND1:%[0-9]+]]:_(s32) = G_AND [[COPY1]], [[C]]1400 ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(s32) = G_ICMP intpred(ne), [[AND]](s32), [[AND1]]1401 ; CHECK-NEXT: $x10 = COPY [[ICMP]](s32)1402 ; CHECK-NEXT: PseudoRET implicit $x101403 %0:_(s32) = COPY $x101404 %1:_(s32) = COPY $x111405 %2:_(s8) = G_TRUNC %0(s32)1406 %3:_(s8) = G_TRUNC %1(s32)1407 %4:_(s1) = G_ICMP intpred(ne), %2(s8), %31408 %5:_(s32) = G_ANYEXT %4(s1)1409 $x10 = COPY %5(s32)1410 PseudoRET implicit $x101411 1412...1413---1414name: cmp_ne_i161415body: |1416 bb.0.entry:1417 ; CHECK-LABEL: name: cmp_ne_i161418 ; CHECK: [[COPY:%[0-9]+]]:_(s32) = COPY $x101419 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $x111420 ; CHECK-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 655351421 ; CHECK-NEXT: [[AND:%[0-9]+]]:_(s32) = G_AND [[COPY]], [[C]]1422 ; CHECK-NEXT: [[AND1:%[0-9]+]]:_(s32) = G_AND [[COPY1]], [[C]]1423 ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(s32) = G_ICMP intpred(ne), [[AND]](s32), [[AND1]]1424 ; CHECK-NEXT: $x10 = COPY [[ICMP]](s32)1425 ; CHECK-NEXT: PseudoRET implicit $x101426 %0:_(s32) = COPY $x101427 %1:_(s32) = COPY $x111428 %2:_(s16) = G_TRUNC %0(s32)1429 %3:_(s16) = G_TRUNC %1(s32)1430 %4:_(s1) = G_ICMP intpred(ne), %2(s16), %31431 %5:_(s32) = G_ANYEXT %4(s1)1432 $x10 = COPY %5(s32)1433 PseudoRET implicit $x101434 1435...1436---1437name: cmp_ne_i321438body: |1439 bb.0.entry:1440 ; CHECK-LABEL: name: cmp_ne_i321441 ; CHECK: [[COPY:%[0-9]+]]:_(s32) = COPY $x101442 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $x111443 ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(s32) = G_ICMP intpred(ne), [[COPY]](s32), [[COPY1]]1444 ; CHECK-NEXT: $x10 = COPY [[ICMP]](s32)1445 ; CHECK-NEXT: PseudoRET implicit $x101446 %0:_(s32) = COPY $x101447 %1:_(s32) = COPY $x111448 %2:_(s1) = G_ICMP intpred(ne), %0(s32), %11449 %3:_(s32) = G_ANYEXT %2(s1)1450 $x10 = COPY %3(s32)1451 PseudoRET implicit $x101452 1453...1454---1455name: cmp_ne_i481456body: |1457 bb.0.entry:1458 ; CHECK-LABEL: name: cmp_ne_i481459 ; CHECK: %xhi:_(s32) = COPY $x101460 ; CHECK-NEXT: %xlo:_(s32) = COPY $x111461 ; CHECK-NEXT: %yhi:_(s32) = COPY $x121462 ; CHECK-NEXT: %ylo:_(s32) = COPY $x131463 ; CHECK-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 -11464 ; CHECK-NEXT: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 655351465 ; CHECK-NEXT: [[AND:%[0-9]+]]:_(s32) = G_AND %xhi, [[C]]1466 ; CHECK-NEXT: [[AND1:%[0-9]+]]:_(s32) = G_AND %xlo, [[C1]]1467 ; CHECK-NEXT: [[AND2:%[0-9]+]]:_(s32) = G_AND %yhi, [[C]]1468 ; CHECK-NEXT: [[AND3:%[0-9]+]]:_(s32) = G_AND %ylo, [[C1]]1469 ; CHECK-NEXT: [[C2:%[0-9]+]]:_(s32) = G_CONSTANT i32 01470 ; CHECK-NEXT: [[XOR:%[0-9]+]]:_(s32) = G_XOR [[AND]], [[AND2]]1471 ; CHECK-NEXT: [[XOR1:%[0-9]+]]:_(s32) = G_XOR [[AND1]], [[AND3]]1472 ; CHECK-NEXT: [[OR:%[0-9]+]]:_(s32) = G_OR [[XOR]], [[XOR1]]1473 ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(s32) = G_ICMP intpred(ne), [[OR]](s32), [[C2]]1474 ; CHECK-NEXT: $x10 = COPY [[ICMP]](s32)1475 ; CHECK-NEXT: PseudoRET implicit $x101476 %xhi:_(s32) = COPY $x101477 %xlo:_(s32) = COPY $x111478 %yhi:_(s32) = COPY $x121479 %ylo:_(s32) = COPY $x131480 %x0:_(s64) = G_MERGE_VALUES %xhi(s32), %xlo(s32)1481 %y0:_(s64) = G_MERGE_VALUES %yhi(s32), %ylo(s32)1482 %x:_(s48) = G_TRUNC %x0(s64)1483 %y:_(s48) = G_TRUNC %y0(s64)1484 %z:_(s1) = G_ICMP intpred(ne), %x(s48), %y1485 %z0:_(s32) = G_ANYEXT %z(s1)1486 $x10 = COPY %z0(s32)1487 PseudoRET implicit $x101488 1489...1490---1491name: cmp_ne_i641492body: |1493 bb.0.entry:1494 ; CHECK-LABEL: name: cmp_ne_i641495 ; CHECK: %xhi:_(s32) = COPY $x101496 ; CHECK-NEXT: %xlo:_(s32) = COPY $x111497 ; CHECK-NEXT: %yhi:_(s32) = COPY $x121498 ; CHECK-NEXT: %ylo:_(s32) = COPY $x131499 ; CHECK-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 01500 ; CHECK-NEXT: [[XOR:%[0-9]+]]:_(s32) = G_XOR %xhi, %yhi1501 ; CHECK-NEXT: [[XOR1:%[0-9]+]]:_(s32) = G_XOR %xlo, %ylo1502 ; CHECK-NEXT: [[OR:%[0-9]+]]:_(s32) = G_OR [[XOR]], [[XOR1]]1503 ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(s32) = G_ICMP intpred(ne), [[OR]](s32), [[C]]1504 ; CHECK-NEXT: $x10 = COPY [[ICMP]](s32)1505 ; CHECK-NEXT: PseudoRET implicit $x101506 %xhi:_(s32) = COPY $x101507 %xlo:_(s32) = COPY $x111508 %yhi:_(s32) = COPY $x121509 %ylo:_(s32) = COPY $x131510 %x:_(s64) = G_MERGE_VALUES %xhi(s32), %xlo(s32)1511 %y:_(s64) = G_MERGE_VALUES %yhi(s32), %ylo(s32)1512 %z:_(s1) = G_ICMP intpred(ne), %x, %y1513 %z0:_(s32) = G_ANYEXT %z(s1)1514 $x10 = COPY %z0(s32)1515 PseudoRET implicit $x101516 1517...1518---1519name: cmp_eq_ptr1520body: |1521 bb.0.entry:1522 ; CHECK-LABEL: name: cmp_eq_ptr1523 ; CHECK: [[COPY:%[0-9]+]]:_(p0) = COPY $x101524 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(p0) = COPY $x111525 ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(s32) = G_ICMP intpred(eq), [[COPY]](p0), [[COPY1]]1526 ; CHECK-NEXT: $x10 = COPY [[ICMP]](s32)1527 ; CHECK-NEXT: PseudoRET implicit $x101528 %0:_(p0) = COPY $x101529 %1:_(p0) = COPY $x111530 %2:_(s1) = G_ICMP intpred(eq), %0(p0), %11531 %3:_(s32) = G_ANYEXT %2(s1)1532 $x10 = COPY %3(s32)1533 PseudoRET implicit $x101534 1535...1536---1537name: cmp_slt_i1281538body: |1539 bb.1:1540 liveins: $x10, $x111541 1542 ; CHECK-LABEL: name: cmp_slt_i1281543 ; CHECK: liveins: $x10, $x111544 ; CHECK-NEXT: {{ $}}1545 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(p0) = COPY $x101546 ; CHECK-NEXT: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p0) :: (load (s32), align 8)1547 ; CHECK-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 41548 ; CHECK-NEXT: [[PTR_ADD:%[0-9]+]]:_(p0) = nuw inbounds G_PTR_ADD [[COPY]], [[C]](s32)1549 ; CHECK-NEXT: [[LOAD1:%[0-9]+]]:_(s32) = G_LOAD [[PTR_ADD]](p0) :: (load (s32) from unknown-address + 4)1550 ; CHECK-NEXT: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 81551 ; CHECK-NEXT: [[PTR_ADD1:%[0-9]+]]:_(p0) = nuw inbounds G_PTR_ADD [[COPY]], [[C1]](s32)1552 ; CHECK-NEXT: [[LOAD2:%[0-9]+]]:_(s32) = G_LOAD [[PTR_ADD1]](p0) :: (load (s32) from unknown-address + 8, align 8)1553 ; CHECK-NEXT: [[C2:%[0-9]+]]:_(s32) = G_CONSTANT i32 121554 ; CHECK-NEXT: [[PTR_ADD2:%[0-9]+]]:_(p0) = nuw inbounds G_PTR_ADD [[COPY]], [[C2]](s32)1555 ; CHECK-NEXT: [[LOAD3:%[0-9]+]]:_(s32) = G_LOAD [[PTR_ADD2]](p0) :: (load (s32) from unknown-address + 12)1556 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(p0) = COPY $x111557 ; CHECK-NEXT: [[LOAD4:%[0-9]+]]:_(s32) = G_LOAD [[COPY1]](p0) :: (load (s32), align 8)1558 ; CHECK-NEXT: [[PTR_ADD3:%[0-9]+]]:_(p0) = nuw inbounds G_PTR_ADD [[COPY1]], [[C]](s32)1559 ; CHECK-NEXT: [[LOAD5:%[0-9]+]]:_(s32) = G_LOAD [[PTR_ADD3]](p0) :: (load (s32) from unknown-address + 4)1560 ; CHECK-NEXT: [[PTR_ADD4:%[0-9]+]]:_(p0) = nuw inbounds G_PTR_ADD [[COPY1]], [[C1]](s32)1561 ; CHECK-NEXT: [[LOAD6:%[0-9]+]]:_(s32) = G_LOAD [[PTR_ADD4]](p0) :: (load (s32) from unknown-address + 8, align 8)1562 ; CHECK-NEXT: [[PTR_ADD5:%[0-9]+]]:_(p0) = nuw inbounds G_PTR_ADD [[COPY1]], [[C2]](s32)1563 ; CHECK-NEXT: [[LOAD7:%[0-9]+]]:_(s32) = G_LOAD [[PTR_ADD5]](p0) :: (load (s32) from unknown-address + 12)1564 ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(s32) = G_ICMP intpred(ult), [[LOAD]](s32), [[LOAD4]]1565 ; CHECK-NEXT: [[ICMP1:%[0-9]+]]:_(s32) = G_ICMP intpred(ult), [[LOAD1]](s32), [[LOAD5]]1566 ; CHECK-NEXT: [[ICMP2:%[0-9]+]]:_(s32) = G_ICMP intpred(eq), [[LOAD1]](s32), [[LOAD5]]1567 ; CHECK-NEXT: [[SELECT:%[0-9]+]]:_(s32) = G_SELECT [[ICMP2]](s32), [[ICMP]], [[ICMP1]]1568 ; CHECK-NEXT: [[ICMP3:%[0-9]+]]:_(s32) = G_ICMP intpred(ult), [[LOAD2]](s32), [[LOAD6]]1569 ; CHECK-NEXT: [[ICMP4:%[0-9]+]]:_(s32) = G_ICMP intpred(eq), [[LOAD2]](s32), [[LOAD6]]1570 ; CHECK-NEXT: [[SELECT1:%[0-9]+]]:_(s32) = G_SELECT [[ICMP4]](s32), [[SELECT]], [[ICMP3]]1571 ; CHECK-NEXT: [[ICMP5:%[0-9]+]]:_(s32) = G_ICMP intpred(slt), [[LOAD3]](s32), [[LOAD7]]1572 ; CHECK-NEXT: [[ICMP6:%[0-9]+]]:_(s32) = G_ICMP intpred(eq), [[LOAD3]](s32), [[LOAD7]]1573 ; CHECK-NEXT: [[SELECT2:%[0-9]+]]:_(s32) = G_SELECT [[ICMP6]](s32), [[SELECT1]], [[ICMP5]]1574 ; CHECK-NEXT: $x10 = COPY [[SELECT2]](s32)1575 ; CHECK-NEXT: PseudoRET implicit $x101576 %2:_(p0) = COPY $x101577 %0:_(s128) = G_LOAD %2(p0) :: (load (s128), align 8)1578 %3:_(p0) = COPY $x111579 %1:_(s128) = G_LOAD %3(p0) :: (load (s128), align 8)1580 %4:_(s1) = G_ICMP intpred(slt), %0(s128), %11581 %5:_(s32) = G_ANYEXT %4(s1)1582 $x10 = COPY %5(s32)1583 PseudoRET implicit $x101584 1585...1586