1804 lines · plain
1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py2# RUN: llc -mtriple=riscv64 -run-pass=legalizer %s -o - \3# RUN: | FileCheck %s4---5name: cmp_sgt_i86body: |7 bb.0.entry:8 ; CHECK-LABEL: name: cmp_sgt_i89 ; CHECK: [[COPY:%[0-9]+]]:_(s64) = COPY $x1010 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s64) = COPY $x1111 ; CHECK-NEXT: [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 5612 ; CHECK-NEXT: [[SHL:%[0-9]+]]:_(s64) = G_SHL [[COPY]], [[C]](s64)13 ; CHECK-NEXT: [[ASHR:%[0-9]+]]:_(s64) = G_ASHR [[SHL]], [[C]](s64)14 ; CHECK-NEXT: [[SHL1:%[0-9]+]]:_(s64) = G_SHL [[COPY1]], [[C]](s64)15 ; CHECK-NEXT: [[ASHR1:%[0-9]+]]:_(s64) = G_ASHR [[SHL1]], [[C]](s64)16 ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(s64) = G_ICMP intpred(sgt), [[ASHR]](s64), [[ASHR1]]17 ; CHECK-NEXT: $x10 = COPY [[ICMP]](s64)18 ; CHECK-NEXT: PseudoRET implicit $x1019 %0:_(s64) = COPY $x1020 %1:_(s64) = COPY $x1121 %2:_(s8) = G_TRUNC %0(s64)22 %3:_(s8) = G_TRUNC %1(s64)23 %4:_(s1) = G_ICMP intpred(sgt), %2(s8), %324 %5:_(s64) = G_ANYEXT %4(s1)25 $x10 = COPY %5(s64)26 PseudoRET implicit $x1027 28...29---30name: cmp_sgt_i1531body: |32 bb.0.entry:33 ; CHECK-LABEL: name: cmp_sgt_i1534 ; CHECK: [[COPY:%[0-9]+]]:_(s64) = COPY $x1035 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s64) = COPY $x1136 ; CHECK-NEXT: [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 4937 ; CHECK-NEXT: [[SHL:%[0-9]+]]:_(s64) = G_SHL [[COPY]], [[C]](s64)38 ; CHECK-NEXT: [[ASHR:%[0-9]+]]:_(s64) = G_ASHR [[SHL]], [[C]](s64)39 ; CHECK-NEXT: [[SHL1:%[0-9]+]]:_(s64) = G_SHL [[COPY1]], [[C]](s64)40 ; CHECK-NEXT: [[ASHR1:%[0-9]+]]:_(s64) = G_ASHR [[SHL1]], [[C]](s64)41 ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(s64) = G_ICMP intpred(sgt), [[ASHR]](s64), [[ASHR1]]42 ; CHECK-NEXT: $x10 = COPY [[ICMP]](s64)43 ; CHECK-NEXT: PseudoRET implicit $x1044 %0:_(s64) = COPY $x1045 %1:_(s64) = COPY $x1146 %2:_(s15) = G_TRUNC %0(s64)47 %3:_(s15) = G_TRUNC %1(s64)48 %4:_(s1) = G_ICMP intpred(sgt), %2(s15), %349 %5:_(s64) = G_ANYEXT %4(s1)50 $x10 = COPY %5(s64)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]+]]:_(s64) = COPY $x1060 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s64) = COPY $x1161 ; CHECK-NEXT: [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 4862 ; CHECK-NEXT: [[SHL:%[0-9]+]]:_(s64) = G_SHL [[COPY]], [[C]](s64)63 ; CHECK-NEXT: [[ASHR:%[0-9]+]]:_(s64) = G_ASHR [[SHL]], [[C]](s64)64 ; CHECK-NEXT: [[SHL1:%[0-9]+]]:_(s64) = G_SHL [[COPY1]], [[C]](s64)65 ; CHECK-NEXT: [[ASHR1:%[0-9]+]]:_(s64) = G_ASHR [[SHL1]], [[C]](s64)66 ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(s64) = G_ICMP intpred(sgt), [[ASHR]](s64), [[ASHR1]]67 ; CHECK-NEXT: $x10 = COPY [[ICMP]](s64)68 ; CHECK-NEXT: PseudoRET implicit $x1069 %0:_(s64) = COPY $x1070 %1:_(s64) = COPY $x1171 %2:_(s16) = G_TRUNC %0(s64)72 %3:_(s16) = G_TRUNC %1(s64)73 %4:_(s1) = G_ICMP intpred(sgt), %2(s16), %374 %5:_(s64) = G_ANYEXT %4(s1)75 $x10 = COPY %5(s64)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]+]]:_(s64) = COPY $x1085 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s64) = COPY $x1186 ; CHECK-NEXT: [[SEXT_INREG:%[0-9]+]]:_(s64) = G_SEXT_INREG [[COPY]], 3287 ; CHECK-NEXT: [[SEXT_INREG1:%[0-9]+]]:_(s64) = G_SEXT_INREG [[COPY1]], 3288 ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(s64) = G_ICMP intpred(sgt), [[SEXT_INREG]](s64), [[SEXT_INREG1]]89 ; CHECK-NEXT: $x10 = COPY [[ICMP]](s64)90 ; CHECK-NEXT: PseudoRET implicit $x1091 %0:_(s64) = COPY $x1092 %1:_(s64) = COPY $x1193 %2:_(s32) = G_TRUNC %0(s64)94 %3:_(s32) = G_TRUNC %1(s64)95 %4:_(s1) = G_ICMP intpred(sgt), %2(s32), %396 %5:_(s64) = G_ANYEXT %4(s1)97 $x10 = COPY %5(s64)98 PseudoRET implicit $x1099 100...101---102name: cmp_sgt_i64103body: |104 bb.0.entry:105 ; CHECK-LABEL: name: cmp_sgt_i64106 ; CHECK: [[COPY:%[0-9]+]]:_(s64) = COPY $x10107 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s64) = COPY $x11108 ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(s64) = G_ICMP intpred(sgt), [[COPY]](s64), [[COPY1]]109 ; CHECK-NEXT: $x10 = COPY [[ICMP]](s64)110 ; CHECK-NEXT: PseudoRET implicit $x10111 %0:_(s64) = COPY $x10112 %1:_(s64) = COPY $x11113 %2:_(s1) = G_ICMP intpred(sgt), %0(s64), %1114 %3:_(s64) = G_ANYEXT %2(s1)115 $x10 = COPY %3(s64)116 PseudoRET implicit $x10117 118...119---120name: cmp_sgt_i72121body: |122 bb.0.entry:123 ; CHECK-LABEL: name: cmp_sgt_i72124 ; CHECK: %xhi:_(s64) = COPY $x10125 ; CHECK-NEXT: %xlo:_(s64) = COPY $x11126 ; CHECK-NEXT: %yhi:_(s64) = COPY $x12127 ; CHECK-NEXT: %ylo:_(s64) = COPY $x13128 ; CHECK-NEXT: [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 56129 ; CHECK-NEXT: [[SHL:%[0-9]+]]:_(s64) = G_SHL %xlo, [[C]](s64)130 ; CHECK-NEXT: [[ASHR:%[0-9]+]]:_(s64) = G_ASHR [[SHL]], [[C]](s64)131 ; CHECK-NEXT: [[SHL1:%[0-9]+]]:_(s64) = G_SHL %ylo, [[C]](s64)132 ; CHECK-NEXT: [[ASHR1:%[0-9]+]]:_(s64) = G_ASHR [[SHL1]], [[C]](s64)133 ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(s64) = G_ICMP intpred(ugt), %xhi(s64), %yhi134 ; CHECK-NEXT: [[ICMP1:%[0-9]+]]:_(s64) = G_ICMP intpred(sgt), [[ASHR]](s64), [[ASHR1]]135 ; CHECK-NEXT: [[ICMP2:%[0-9]+]]:_(s64) = G_ICMP intpred(eq), [[ASHR]](s64), [[ASHR1]]136 ; CHECK-NEXT: [[TRUNC:%[0-9]+]]:_(s32) = G_TRUNC [[ICMP]](s64)137 ; CHECK-NEXT: [[TRUNC1:%[0-9]+]]:_(s32) = G_TRUNC [[ICMP1]](s64)138 ; CHECK-NEXT: [[SELECT:%[0-9]+]]:_(s32) = G_SELECT [[ICMP2]](s64), [[TRUNC]], [[TRUNC1]]139 ; CHECK-NEXT: %z0:_(s64) = G_ANYEXT [[SELECT]](s32)140 ; CHECK-NEXT: $x10 = COPY %z0(s64)141 ; CHECK-NEXT: PseudoRET implicit $x10142 %xhi:_(s64) = COPY $x10143 %xlo:_(s64) = COPY $x11144 %yhi:_(s64) = COPY $x12145 %ylo:_(s64) = COPY $x13146 %x0:_(s128) = G_MERGE_VALUES %xhi(s64), %xlo(s64)147 %y0:_(s128) = G_MERGE_VALUES %yhi(s64), %ylo(s64)148 %x:_(s72) = G_TRUNC %x0(s128)149 %y:_(s72) = G_TRUNC %y0(s128)150 %z:_(s1) = G_ICMP intpred(sgt), %x, %y151 %z0:_(s64) = G_ANYEXT %z(s1)152 $x10 = COPY %z0(s64)153 PseudoRET implicit $x10154 155...156---157name: cmp_sgt_i128158body: |159 bb.0.entry:160 ; CHECK-LABEL: name: cmp_sgt_i128161 ; CHECK: %xhi:_(s64) = COPY $x10162 ; CHECK-NEXT: %xlo:_(s64) = COPY $x11163 ; CHECK-NEXT: %yhi:_(s64) = COPY $x12164 ; CHECK-NEXT: %ylo:_(s64) = COPY $x13165 ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(s64) = G_ICMP intpred(ugt), %xhi(s64), %yhi166 ; CHECK-NEXT: [[ICMP1:%[0-9]+]]:_(s64) = G_ICMP intpred(sgt), %xlo(s64), %ylo167 ; CHECK-NEXT: [[ICMP2:%[0-9]+]]:_(s64) = G_ICMP intpred(eq), %xlo(s64), %ylo168 ; CHECK-NEXT: [[TRUNC:%[0-9]+]]:_(s32) = G_TRUNC [[ICMP]](s64)169 ; CHECK-NEXT: [[TRUNC1:%[0-9]+]]:_(s32) = G_TRUNC [[ICMP1]](s64)170 ; CHECK-NEXT: [[SELECT:%[0-9]+]]:_(s32) = G_SELECT [[ICMP2]](s64), [[TRUNC]], [[TRUNC1]]171 ; CHECK-NEXT: %z0:_(s64) = G_ANYEXT [[SELECT]](s32)172 ; CHECK-NEXT: $x10 = COPY %z0(s64)173 ; CHECK-NEXT: PseudoRET implicit $x10174 %xhi:_(s64) = COPY $x10175 %xlo:_(s64) = COPY $x11176 %yhi:_(s64) = COPY $x12177 %ylo:_(s64) = COPY $x13178 %x:_(s128) = G_MERGE_VALUES %xhi(s64), %xlo(s64)179 %y:_(s128) = G_MERGE_VALUES %yhi(s64), %ylo(s64)180 %z:_(s1) = G_ICMP intpred(sgt), %x, %y181 %z0:_(s64) = G_ANYEXT %z(s1)182 $x10 = COPY %z0(s64)183 PseudoRET implicit $x10184 185...186---187name: cmp_slt_i8188body: |189 bb.0.entry:190 ; CHECK-LABEL: name: cmp_slt_i8191 ; CHECK: [[COPY:%[0-9]+]]:_(s64) = COPY $x10192 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s64) = COPY $x11193 ; CHECK-NEXT: [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 56194 ; CHECK-NEXT: [[SHL:%[0-9]+]]:_(s64) = G_SHL [[COPY]], [[C]](s64)195 ; CHECK-NEXT: [[ASHR:%[0-9]+]]:_(s64) = G_ASHR [[SHL]], [[C]](s64)196 ; CHECK-NEXT: [[SHL1:%[0-9]+]]:_(s64) = G_SHL [[COPY1]], [[C]](s64)197 ; CHECK-NEXT: [[ASHR1:%[0-9]+]]:_(s64) = G_ASHR [[SHL1]], [[C]](s64)198 ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(s64) = G_ICMP intpred(slt), [[ASHR]](s64), [[ASHR1]]199 ; CHECK-NEXT: $x10 = COPY [[ICMP]](s64)200 ; CHECK-NEXT: PseudoRET implicit $x10201 %0:_(s64) = COPY $x10202 %1:_(s64) = COPY $x11203 %2:_(s8) = G_TRUNC %0(s64)204 %3:_(s8) = G_TRUNC %1(s64)205 %4:_(s1) = G_ICMP intpred(slt), %2(s8), %3206 %5:_(s64) = G_ANYEXT %4(s1)207 $x10 = COPY %5(s64)208 PseudoRET implicit $x10209 210...211---212name: cmp_slt_i15213body: |214 bb.0.entry:215 ; CHECK-LABEL: name: cmp_slt_i15216 ; CHECK: [[COPY:%[0-9]+]]:_(s64) = COPY $x10217 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s64) = COPY $x11218 ; CHECK-NEXT: [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 49219 ; CHECK-NEXT: [[SHL:%[0-9]+]]:_(s64) = G_SHL [[COPY]], [[C]](s64)220 ; CHECK-NEXT: [[ASHR:%[0-9]+]]:_(s64) = G_ASHR [[SHL]], [[C]](s64)221 ; CHECK-NEXT: [[SHL1:%[0-9]+]]:_(s64) = G_SHL [[COPY1]], [[C]](s64)222 ; CHECK-NEXT: [[ASHR1:%[0-9]+]]:_(s64) = G_ASHR [[SHL1]], [[C]](s64)223 ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(s64) = G_ICMP intpred(slt), [[ASHR]](s64), [[ASHR1]]224 ; CHECK-NEXT: $x10 = COPY [[ICMP]](s64)225 ; CHECK-NEXT: PseudoRET implicit $x10226 %0:_(s64) = COPY $x10227 %1:_(s64) = COPY $x11228 %2:_(s15) = G_TRUNC %0(s64)229 %3:_(s15) = G_TRUNC %1(s64)230 %4:_(s1) = G_ICMP intpred(slt), %2(s15), %3231 %5:_(s64) = G_ANYEXT %4(s1)232 $x10 = COPY %5(s64)233 PseudoRET implicit $x10234 235...236---237name: cmp_slt_i16238body: |239 bb.0.entry:240 ; CHECK-LABEL: name: cmp_slt_i16241 ; CHECK: [[COPY:%[0-9]+]]:_(s64) = COPY $x10242 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s64) = COPY $x11243 ; CHECK-NEXT: [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 48244 ; CHECK-NEXT: [[SHL:%[0-9]+]]:_(s64) = G_SHL [[COPY]], [[C]](s64)245 ; CHECK-NEXT: [[ASHR:%[0-9]+]]:_(s64) = G_ASHR [[SHL]], [[C]](s64)246 ; CHECK-NEXT: [[SHL1:%[0-9]+]]:_(s64) = G_SHL [[COPY1]], [[C]](s64)247 ; CHECK-NEXT: [[ASHR1:%[0-9]+]]:_(s64) = G_ASHR [[SHL1]], [[C]](s64)248 ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(s64) = G_ICMP intpred(slt), [[ASHR]](s64), [[ASHR1]]249 ; CHECK-NEXT: $x10 = COPY [[ICMP]](s64)250 ; CHECK-NEXT: PseudoRET implicit $x10251 %0:_(s64) = COPY $x10252 %1:_(s64) = COPY $x11253 %2:_(s16) = G_TRUNC %0(s64)254 %3:_(s16) = G_TRUNC %1(s64)255 %4:_(s1) = G_ICMP intpred(slt), %2(s16), %3256 %5:_(s64) = G_ANYEXT %4(s1)257 $x10 = COPY %5(s64)258 PseudoRET implicit $x10259 260...261---262name: cmp_slt_i32263body: |264 bb.0.entry:265 ; CHECK-LABEL: name: cmp_slt_i32266 ; CHECK: [[COPY:%[0-9]+]]:_(s64) = COPY $x10267 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s64) = COPY $x11268 ; CHECK-NEXT: [[SEXT_INREG:%[0-9]+]]:_(s64) = G_SEXT_INREG [[COPY]], 32269 ; CHECK-NEXT: [[SEXT_INREG1:%[0-9]+]]:_(s64) = G_SEXT_INREG [[COPY1]], 32270 ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(s64) = G_ICMP intpred(slt), [[SEXT_INREG]](s64), [[SEXT_INREG1]]271 ; CHECK-NEXT: $x10 = COPY [[ICMP]](s64)272 ; CHECK-NEXT: PseudoRET implicit $x10273 %0:_(s64) = COPY $x10274 %1:_(s64) = COPY $x11275 %2:_(s32) = G_TRUNC %0(s64)276 %3:_(s32) = G_TRUNC %1(s64)277 %4:_(s1) = G_ICMP intpred(slt), %2(s32), %3278 %5:_(s64) = G_ANYEXT %4(s1)279 $x10 = COPY %5(s64)280 PseudoRET implicit $x10281 282...283---284name: cmp_slt_i64285body: |286 bb.0.entry:287 ; CHECK-LABEL: name: cmp_slt_i64288 ; CHECK: [[COPY:%[0-9]+]]:_(s64) = COPY $x10289 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s64) = COPY $x11290 ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(s64) = G_ICMP intpred(slt), [[COPY]](s64), [[COPY1]]291 ; CHECK-NEXT: $x10 = COPY [[ICMP]](s64)292 ; CHECK-NEXT: PseudoRET implicit $x10293 %0:_(s64) = COPY $x10294 %1:_(s64) = COPY $x11295 %2:_(s1) = G_ICMP intpred(slt), %0(s64), %1296 %3:_(s64) = G_ANYEXT %2(s1)297 $x10 = COPY %3(s64)298 PseudoRET implicit $x10299 300...301---302name: cmp_slt_i72303body: |304 bb.0.entry:305 ; CHECK-LABEL: name: cmp_slt_i72306 ; CHECK: %xhi:_(s64) = COPY $x10307 ; CHECK-NEXT: %xlo:_(s64) = COPY $x11308 ; CHECK-NEXT: %yhi:_(s64) = COPY $x12309 ; CHECK-NEXT: %ylo:_(s64) = COPY $x13310 ; CHECK-NEXT: [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 56311 ; CHECK-NEXT: [[SHL:%[0-9]+]]:_(s64) = G_SHL %xlo, [[C]](s64)312 ; CHECK-NEXT: [[ASHR:%[0-9]+]]:_(s64) = G_ASHR [[SHL]], [[C]](s64)313 ; CHECK-NEXT: [[SHL1:%[0-9]+]]:_(s64) = G_SHL %ylo, [[C]](s64)314 ; CHECK-NEXT: [[ASHR1:%[0-9]+]]:_(s64) = G_ASHR [[SHL1]], [[C]](s64)315 ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(s64) = G_ICMP intpred(uge), %xhi(s64), %yhi316 ; CHECK-NEXT: [[ICMP1:%[0-9]+]]:_(s64) = G_ICMP intpred(sge), [[ASHR]](s64), [[ASHR1]]317 ; CHECK-NEXT: [[ICMP2:%[0-9]+]]:_(s64) = G_ICMP intpred(eq), [[ASHR]](s64), [[ASHR1]]318 ; CHECK-NEXT: [[TRUNC:%[0-9]+]]:_(s32) = G_TRUNC [[ICMP]](s64)319 ; CHECK-NEXT: [[TRUNC1:%[0-9]+]]:_(s32) = G_TRUNC [[ICMP1]](s64)320 ; CHECK-NEXT: [[SELECT:%[0-9]+]]:_(s32) = G_SELECT [[ICMP2]](s64), [[TRUNC]], [[TRUNC1]]321 ; CHECK-NEXT: %z0:_(s64) = G_ANYEXT [[SELECT]](s32)322 ; CHECK-NEXT: $x10 = COPY %z0(s64)323 ; CHECK-NEXT: PseudoRET implicit $x10324 %xhi:_(s64) = COPY $x10325 %xlo:_(s64) = COPY $x11326 %yhi:_(s64) = COPY $x12327 %ylo:_(s64) = COPY $x13328 %x0:_(s128) = G_MERGE_VALUES %xhi(s64), %xlo(s64)329 %y0:_(s128) = G_MERGE_VALUES %yhi(s64), %ylo(s64)330 %x:_(s72) = G_TRUNC %x0(s128)331 %y:_(s72) = G_TRUNC %y0(s128)332 %z:_(s1) = G_ICMP intpred(sge), %x, %y333 %z0:_(s64) = G_ANYEXT %z(s1)334 $x10 = COPY %z0(s64)335 PseudoRET implicit $x10336 337...338---339name: cmp_slt_i128340body: |341 bb.0.entry:342 ; CHECK-LABEL: name: cmp_slt_i128343 ; CHECK: %xhi:_(s64) = COPY $x10344 ; CHECK-NEXT: %xlo:_(s64) = COPY $x11345 ; CHECK-NEXT: %yhi:_(s64) = COPY $x12346 ; CHECK-NEXT: %ylo:_(s64) = COPY $x13347 ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(s64) = G_ICMP intpred(ult), %xhi(s64), %yhi348 ; CHECK-NEXT: [[ICMP1:%[0-9]+]]:_(s64) = G_ICMP intpred(slt), %xlo(s64), %ylo349 ; CHECK-NEXT: [[ICMP2:%[0-9]+]]:_(s64) = G_ICMP intpred(eq), %xlo(s64), %ylo350 ; CHECK-NEXT: [[TRUNC:%[0-9]+]]:_(s32) = G_TRUNC [[ICMP]](s64)351 ; CHECK-NEXT: [[TRUNC1:%[0-9]+]]:_(s32) = G_TRUNC [[ICMP1]](s64)352 ; CHECK-NEXT: [[SELECT:%[0-9]+]]:_(s32) = G_SELECT [[ICMP2]](s64), [[TRUNC]], [[TRUNC1]]353 ; CHECK-NEXT: %z0:_(s64) = G_ANYEXT [[SELECT]](s32)354 ; CHECK-NEXT: $x10 = COPY %z0(s64)355 ; CHECK-NEXT: PseudoRET implicit $x10356 %xhi:_(s64) = COPY $x10357 %xlo:_(s64) = COPY $x11358 %yhi:_(s64) = COPY $x12359 %ylo:_(s64) = COPY $x13360 %x:_(s128) = G_MERGE_VALUES %xhi(s64), %xlo(s64)361 %y:_(s128) = G_MERGE_VALUES %yhi(s64), %ylo(s64)362 %z:_(s1) = G_ICMP intpred(slt), %x, %y363 %z0:_(s64) = G_ANYEXT %z(s1)364 $x10 = COPY %z0(s64)365 PseudoRET implicit $x10366 367...368---369name: cmp_sge_i8370body: |371 bb.0.entry:372 ; CHECK-LABEL: name: cmp_sge_i8373 ; CHECK: [[COPY:%[0-9]+]]:_(s64) = COPY $x10374 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s64) = COPY $x11375 ; CHECK-NEXT: [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 56376 ; CHECK-NEXT: [[SHL:%[0-9]+]]:_(s64) = G_SHL [[COPY]], [[C]](s64)377 ; CHECK-NEXT: [[ASHR:%[0-9]+]]:_(s64) = G_ASHR [[SHL]], [[C]](s64)378 ; CHECK-NEXT: [[SHL1:%[0-9]+]]:_(s64) = G_SHL [[COPY1]], [[C]](s64)379 ; CHECK-NEXT: [[ASHR1:%[0-9]+]]:_(s64) = G_ASHR [[SHL1]], [[C]](s64)380 ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(s64) = G_ICMP intpred(sge), [[ASHR]](s64), [[ASHR1]]381 ; CHECK-NEXT: $x10 = COPY [[ICMP]](s64)382 ; CHECK-NEXT: PseudoRET implicit $x10383 %0:_(s64) = COPY $x10384 %1:_(s64) = COPY $x11385 %2:_(s8) = G_TRUNC %0(s64)386 %3:_(s8) = G_TRUNC %1(s64)387 %4:_(s1) = G_ICMP intpred(sge), %2(s8), %3388 %5:_(s64) = G_ANYEXT %4(s1)389 $x10 = COPY %5(s64)390 PseudoRET implicit $x10391 392...393---394name: cmp_sge_i15395body: |396 bb.0.entry:397 ; CHECK-LABEL: name: cmp_sge_i15398 ; CHECK: [[COPY:%[0-9]+]]:_(s64) = COPY $x10399 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s64) = COPY $x11400 ; CHECK-NEXT: [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 49401 ; CHECK-NEXT: [[SHL:%[0-9]+]]:_(s64) = G_SHL [[COPY]], [[C]](s64)402 ; CHECK-NEXT: [[ASHR:%[0-9]+]]:_(s64) = G_ASHR [[SHL]], [[C]](s64)403 ; CHECK-NEXT: [[SHL1:%[0-9]+]]:_(s64) = G_SHL [[COPY1]], [[C]](s64)404 ; CHECK-NEXT: [[ASHR1:%[0-9]+]]:_(s64) = G_ASHR [[SHL1]], [[C]](s64)405 ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(s64) = G_ICMP intpred(sge), [[ASHR]](s64), [[ASHR1]]406 ; CHECK-NEXT: $x10 = COPY [[ICMP]](s64)407 ; CHECK-NEXT: PseudoRET implicit $x10408 %0:_(s64) = COPY $x10409 %1:_(s64) = COPY $x11410 %2:_(s15) = G_TRUNC %0(s64)411 %3:_(s15) = G_TRUNC %1(s64)412 %4:_(s1) = G_ICMP intpred(sge), %2(s15), %3413 %5:_(s64) = G_ANYEXT %4(s1)414 $x10 = COPY %5(s64)415 PseudoRET implicit $x10416 417...418---419name: cmp_sge_i16420body: |421 bb.0.entry:422 ; CHECK-LABEL: name: cmp_sge_i16423 ; CHECK: [[COPY:%[0-9]+]]:_(s64) = COPY $x10424 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s64) = COPY $x11425 ; CHECK-NEXT: [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 48426 ; CHECK-NEXT: [[SHL:%[0-9]+]]:_(s64) = G_SHL [[COPY]], [[C]](s64)427 ; CHECK-NEXT: [[ASHR:%[0-9]+]]:_(s64) = G_ASHR [[SHL]], [[C]](s64)428 ; CHECK-NEXT: [[SHL1:%[0-9]+]]:_(s64) = G_SHL [[COPY1]], [[C]](s64)429 ; CHECK-NEXT: [[ASHR1:%[0-9]+]]:_(s64) = G_ASHR [[SHL1]], [[C]](s64)430 ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(s64) = G_ICMP intpred(sge), [[ASHR]](s64), [[ASHR1]]431 ; CHECK-NEXT: $x10 = COPY [[ICMP]](s64)432 ; CHECK-NEXT: PseudoRET implicit $x10433 %0:_(s64) = COPY $x10434 %1:_(s64) = COPY $x11435 %2:_(s16) = G_TRUNC %0(s64)436 %3:_(s16) = G_TRUNC %1(s64)437 %4:_(s1) = G_ICMP intpred(sge), %2(s16), %3438 %5:_(s64) = G_ANYEXT %4(s1)439 $x10 = COPY %5(s64)440 PseudoRET implicit $x10441 442...443---444name: cmp_sge_i32445body: |446 bb.0.entry:447 ; CHECK-LABEL: name: cmp_sge_i32448 ; CHECK: [[COPY:%[0-9]+]]:_(s64) = COPY $x10449 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s64) = COPY $x11450 ; CHECK-NEXT: [[SEXT_INREG:%[0-9]+]]:_(s64) = G_SEXT_INREG [[COPY]], 32451 ; CHECK-NEXT: [[SEXT_INREG1:%[0-9]+]]:_(s64) = G_SEXT_INREG [[COPY1]], 32452 ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(s64) = G_ICMP intpred(sge), [[SEXT_INREG]](s64), [[SEXT_INREG1]]453 ; CHECK-NEXT: $x10 = COPY [[ICMP]](s64)454 ; CHECK-NEXT: PseudoRET implicit $x10455 %0:_(s64) = COPY $x10456 %1:_(s64) = COPY $x11457 %2:_(s32) = G_TRUNC %0(s64)458 %3:_(s32) = G_TRUNC %1(s64)459 %4:_(s1) = G_ICMP intpred(sge), %2(s32), %3460 %5:_(s64) = G_ANYEXT %4(s1)461 $x10 = COPY %5(s64)462 PseudoRET implicit $x10463 464...465---466name: cmp_sge_i64467body: |468 bb.0.entry:469 ; CHECK-LABEL: name: cmp_sge_i64470 ; CHECK: [[COPY:%[0-9]+]]:_(s64) = COPY $x10471 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s64) = COPY $x11472 ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(s64) = G_ICMP intpred(sge), [[COPY]](s64), [[COPY1]]473 ; CHECK-NEXT: $x10 = COPY [[ICMP]](s64)474 ; CHECK-NEXT: PseudoRET implicit $x10475 %0:_(s64) = COPY $x10476 %1:_(s64) = COPY $x11477 %2:_(s1) = G_ICMP intpred(sge), %0(s64), %1478 %3:_(s64) = G_ANYEXT %2(s1)479 $x10 = COPY %3(s64)480 PseudoRET implicit $x10481 482...483---484name: cmp_sge_i72485body: |486 bb.0.entry:487 ; CHECK-LABEL: name: cmp_sge_i72488 ; CHECK: %xhi:_(s64) = COPY $x10489 ; CHECK-NEXT: %xlo:_(s64) = COPY $x11490 ; CHECK-NEXT: %yhi:_(s64) = COPY $x12491 ; CHECK-NEXT: %ylo:_(s64) = COPY $x13492 ; CHECK-NEXT: [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 56493 ; CHECK-NEXT: [[SHL:%[0-9]+]]:_(s64) = G_SHL %xlo, [[C]](s64)494 ; CHECK-NEXT: [[ASHR:%[0-9]+]]:_(s64) = G_ASHR [[SHL]], [[C]](s64)495 ; CHECK-NEXT: [[SHL1:%[0-9]+]]:_(s64) = G_SHL %ylo, [[C]](s64)496 ; CHECK-NEXT: [[ASHR1:%[0-9]+]]:_(s64) = G_ASHR [[SHL1]], [[C]](s64)497 ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(s64) = G_ICMP intpred(uge), %xhi(s64), %yhi498 ; CHECK-NEXT: [[ICMP1:%[0-9]+]]:_(s64) = G_ICMP intpred(sge), [[ASHR]](s64), [[ASHR1]]499 ; CHECK-NEXT: [[ICMP2:%[0-9]+]]:_(s64) = G_ICMP intpred(eq), [[ASHR]](s64), [[ASHR1]]500 ; CHECK-NEXT: [[TRUNC:%[0-9]+]]:_(s32) = G_TRUNC [[ICMP]](s64)501 ; CHECK-NEXT: [[TRUNC1:%[0-9]+]]:_(s32) = G_TRUNC [[ICMP1]](s64)502 ; CHECK-NEXT: [[SELECT:%[0-9]+]]:_(s32) = G_SELECT [[ICMP2]](s64), [[TRUNC]], [[TRUNC1]]503 ; CHECK-NEXT: %z0:_(s64) = G_ANYEXT [[SELECT]](s32)504 ; CHECK-NEXT: $x10 = COPY %z0(s64)505 ; CHECK-NEXT: PseudoRET implicit $x10506 %xhi:_(s64) = COPY $x10507 %xlo:_(s64) = COPY $x11508 %yhi:_(s64) = COPY $x12509 %ylo:_(s64) = COPY $x13510 %x0:_(s128) = G_MERGE_VALUES %xhi(s64), %xlo(s64)511 %y0:_(s128) = G_MERGE_VALUES %yhi(s64), %ylo(s64)512 %x:_(s72) = G_TRUNC %x0(s128)513 %y:_(s72) = G_TRUNC %y0(s128)514 %z:_(s1) = G_ICMP intpred(sge), %x, %y515 %z0:_(s64) = G_ANYEXT %z(s1)516 $x10 = COPY %z0(s64)517 PseudoRET implicit $x10518 519...520---521name: cmp_sge_i128522body: |523 bb.0.entry:524 ; CHECK-LABEL: name: cmp_sge_i128525 ; CHECK: %xhi:_(s64) = COPY $x10526 ; CHECK-NEXT: %xlo:_(s64) = COPY $x11527 ; CHECK-NEXT: %yhi:_(s64) = COPY $x12528 ; CHECK-NEXT: %ylo:_(s64) = COPY $x13529 ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(s64) = G_ICMP intpred(uge), %xhi(s64), %yhi530 ; CHECK-NEXT: [[ICMP1:%[0-9]+]]:_(s64) = G_ICMP intpred(sge), %xlo(s64), %ylo531 ; CHECK-NEXT: [[ICMP2:%[0-9]+]]:_(s64) = G_ICMP intpred(eq), %xlo(s64), %ylo532 ; CHECK-NEXT: [[TRUNC:%[0-9]+]]:_(s32) = G_TRUNC [[ICMP]](s64)533 ; CHECK-NEXT: [[TRUNC1:%[0-9]+]]:_(s32) = G_TRUNC [[ICMP1]](s64)534 ; CHECK-NEXT: [[SELECT:%[0-9]+]]:_(s32) = G_SELECT [[ICMP2]](s64), [[TRUNC]], [[TRUNC1]]535 ; CHECK-NEXT: %z0:_(s64) = G_ANYEXT [[SELECT]](s32)536 ; CHECK-NEXT: $x10 = COPY %z0(s64)537 ; CHECK-NEXT: PseudoRET implicit $x10538 %xhi:_(s64) = COPY $x10539 %xlo:_(s64) = COPY $x11540 %yhi:_(s64) = COPY $x12541 %ylo:_(s64) = COPY $x13542 %x:_(s128) = G_MERGE_VALUES %xhi(s64), %xlo(s64)543 %y:_(s128) = G_MERGE_VALUES %yhi(s64), %ylo(s64)544 %z:_(s1) = G_ICMP intpred(sge), %x, %y545 %z0:_(s64) = G_ANYEXT %z(s1)546 $x10 = COPY %z0(s64)547 PseudoRET implicit $x10548 549...550---551name: cmp_sle_i8552body: |553 bb.0.entry:554 ; CHECK-LABEL: name: cmp_sle_i8555 ; CHECK: [[COPY:%[0-9]+]]:_(s64) = COPY $x10556 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s64) = COPY $x11557 ; CHECK-NEXT: [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 56558 ; CHECK-NEXT: [[SHL:%[0-9]+]]:_(s64) = G_SHL [[COPY]], [[C]](s64)559 ; CHECK-NEXT: [[ASHR:%[0-9]+]]:_(s64) = G_ASHR [[SHL]], [[C]](s64)560 ; CHECK-NEXT: [[SHL1:%[0-9]+]]:_(s64) = G_SHL [[COPY1]], [[C]](s64)561 ; CHECK-NEXT: [[ASHR1:%[0-9]+]]:_(s64) = G_ASHR [[SHL1]], [[C]](s64)562 ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(s64) = G_ICMP intpred(sle), [[ASHR]](s64), [[ASHR1]]563 ; CHECK-NEXT: $x10 = COPY [[ICMP]](s64)564 ; CHECK-NEXT: PseudoRET implicit $x10565 %0:_(s64) = COPY $x10566 %1:_(s64) = COPY $x11567 %2:_(s8) = G_TRUNC %0(s64)568 %3:_(s8) = G_TRUNC %1(s64)569 %4:_(s1) = G_ICMP intpred(sle), %2(s8), %3570 %5:_(s64) = G_ANYEXT %4(s1)571 $x10 = COPY %5(s64)572 PseudoRET implicit $x10573 574...575---576name: cmp_sle_i15577body: |578 bb.0.entry:579 ; CHECK-LABEL: name: cmp_sle_i15580 ; CHECK: [[COPY:%[0-9]+]]:_(s64) = COPY $x10581 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s64) = COPY $x11582 ; CHECK-NEXT: [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 49583 ; CHECK-NEXT: [[SHL:%[0-9]+]]:_(s64) = G_SHL [[COPY]], [[C]](s64)584 ; CHECK-NEXT: [[ASHR:%[0-9]+]]:_(s64) = G_ASHR [[SHL]], [[C]](s64)585 ; CHECK-NEXT: [[SHL1:%[0-9]+]]:_(s64) = G_SHL [[COPY1]], [[C]](s64)586 ; CHECK-NEXT: [[ASHR1:%[0-9]+]]:_(s64) = G_ASHR [[SHL1]], [[C]](s64)587 ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(s64) = G_ICMP intpred(sle), [[ASHR]](s64), [[ASHR1]]588 ; CHECK-NEXT: $x10 = COPY [[ICMP]](s64)589 ; CHECK-NEXT: PseudoRET implicit $x10590 %0:_(s64) = COPY $x10591 %1:_(s64) = COPY $x11592 %2:_(s15) = G_TRUNC %0(s64)593 %3:_(s15) = G_TRUNC %1(s64)594 %4:_(s1) = G_ICMP intpred(sle), %2(s15), %3595 %5:_(s64) = G_ANYEXT %4(s1)596 $x10 = COPY %5(s64)597 PseudoRET implicit $x10598 599...600---601name: cmp_sle_i16602body: |603 bb.0.entry:604 ; CHECK-LABEL: name: cmp_sle_i16605 ; CHECK: [[COPY:%[0-9]+]]:_(s64) = COPY $x10606 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s64) = COPY $x11607 ; CHECK-NEXT: [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 48608 ; CHECK-NEXT: [[SHL:%[0-9]+]]:_(s64) = G_SHL [[COPY]], [[C]](s64)609 ; CHECK-NEXT: [[ASHR:%[0-9]+]]:_(s64) = G_ASHR [[SHL]], [[C]](s64)610 ; CHECK-NEXT: [[SHL1:%[0-9]+]]:_(s64) = G_SHL [[COPY1]], [[C]](s64)611 ; CHECK-NEXT: [[ASHR1:%[0-9]+]]:_(s64) = G_ASHR [[SHL1]], [[C]](s64)612 ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(s64) = G_ICMP intpred(sle), [[ASHR]](s64), [[ASHR1]]613 ; CHECK-NEXT: $x10 = COPY [[ICMP]](s64)614 ; CHECK-NEXT: PseudoRET implicit $x10615 %0:_(s64) = COPY $x10616 %1:_(s64) = COPY $x11617 %2:_(s16) = G_TRUNC %0(s64)618 %3:_(s16) = G_TRUNC %1(s64)619 %4:_(s1) = G_ICMP intpred(sle), %2(s16), %3620 %5:_(s64) = G_ANYEXT %4(s1)621 $x10 = COPY %5(s64)622 PseudoRET implicit $x10623 624...625---626name: cmp_sle_i32627body: |628 bb.0.entry:629 ; CHECK-LABEL: name: cmp_sle_i32630 ; CHECK: [[COPY:%[0-9]+]]:_(s64) = COPY $x10631 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s64) = COPY $x11632 ; CHECK-NEXT: [[SEXT_INREG:%[0-9]+]]:_(s64) = G_SEXT_INREG [[COPY]], 32633 ; CHECK-NEXT: [[SEXT_INREG1:%[0-9]+]]:_(s64) = G_SEXT_INREG [[COPY1]], 32634 ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(s64) = G_ICMP intpred(sle), [[SEXT_INREG]](s64), [[SEXT_INREG1]]635 ; CHECK-NEXT: $x10 = COPY [[ICMP]](s64)636 ; CHECK-NEXT: PseudoRET implicit $x10637 %0:_(s64) = COPY $x10638 %1:_(s64) = COPY $x11639 %2:_(s32) = G_TRUNC %0(s64)640 %3:_(s32) = G_TRUNC %1(s64)641 %4:_(s1) = G_ICMP intpred(sle), %2(s32), %3642 %5:_(s64) = G_ANYEXT %4(s1)643 $x10 = COPY %5(s64)644 PseudoRET implicit $x10645 646...647---648name: cmp_sle_i64649body: |650 bb.0.entry:651 ; CHECK-LABEL: name: cmp_sle_i64652 ; CHECK: [[COPY:%[0-9]+]]:_(s64) = COPY $x10653 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s64) = COPY $x11654 ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(s64) = G_ICMP intpred(sle), [[COPY]](s64), [[COPY1]]655 ; CHECK-NEXT: $x10 = COPY [[ICMP]](s64)656 ; CHECK-NEXT: PseudoRET implicit $x10657 %0:_(s64) = COPY $x10658 %1:_(s64) = COPY $x11659 %2:_(s1) = G_ICMP intpred(sle), %0(s64), %1660 %3:_(s64) = G_ANYEXT %2(s1)661 $x10 = COPY %3(s64)662 PseudoRET implicit $x10663 664...665---666name: cmp_sle_i72667body: |668 bb.0.entry:669 ; CHECK-LABEL: name: cmp_sle_i72670 ; CHECK: %xhi:_(s64) = COPY $x10671 ; CHECK-NEXT: %xlo:_(s64) = COPY $x11672 ; CHECK-NEXT: %yhi:_(s64) = COPY $x12673 ; CHECK-NEXT: %ylo:_(s64) = COPY $x13674 ; CHECK-NEXT: [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 56675 ; CHECK-NEXT: [[SHL:%[0-9]+]]:_(s64) = G_SHL %xlo, [[C]](s64)676 ; CHECK-NEXT: [[ASHR:%[0-9]+]]:_(s64) = G_ASHR [[SHL]], [[C]](s64)677 ; CHECK-NEXT: [[SHL1:%[0-9]+]]:_(s64) = G_SHL %ylo, [[C]](s64)678 ; CHECK-NEXT: [[ASHR1:%[0-9]+]]:_(s64) = G_ASHR [[SHL1]], [[C]](s64)679 ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(s64) = G_ICMP intpred(ule), %xhi(s64), %yhi680 ; CHECK-NEXT: [[ICMP1:%[0-9]+]]:_(s64) = G_ICMP intpred(sle), [[ASHR]](s64), [[ASHR1]]681 ; CHECK-NEXT: [[ICMP2:%[0-9]+]]:_(s64) = G_ICMP intpred(eq), [[ASHR]](s64), [[ASHR1]]682 ; CHECK-NEXT: [[TRUNC:%[0-9]+]]:_(s32) = G_TRUNC [[ICMP]](s64)683 ; CHECK-NEXT: [[TRUNC1:%[0-9]+]]:_(s32) = G_TRUNC [[ICMP1]](s64)684 ; CHECK-NEXT: [[SELECT:%[0-9]+]]:_(s32) = G_SELECT [[ICMP2]](s64), [[TRUNC]], [[TRUNC1]]685 ; CHECK-NEXT: %z0:_(s64) = G_ANYEXT [[SELECT]](s32)686 ; CHECK-NEXT: $x10 = COPY %z0(s64)687 ; CHECK-NEXT: PseudoRET implicit $x10688 %xhi:_(s64) = COPY $x10689 %xlo:_(s64) = COPY $x11690 %yhi:_(s64) = COPY $x12691 %ylo:_(s64) = COPY $x13692 %x0:_(s128) = G_MERGE_VALUES %xhi(s64), %xlo(s64)693 %y0:_(s128) = G_MERGE_VALUES %yhi(s64), %ylo(s64)694 %x:_(s72) = G_TRUNC %x0(s128)695 %y:_(s72) = G_TRUNC %y0(s128)696 %z:_(s1) = G_ICMP intpred(sle), %x, %y697 %z0:_(s64) = G_ANYEXT %z(s1)698 $x10 = COPY %z0(s64)699 PseudoRET implicit $x10700 701...702---703name: cmp_sle_i128704body: |705 bb.0.entry:706 ; CHECK-LABEL: name: cmp_sle_i128707 ; CHECK: %xhi:_(s64) = COPY $x10708 ; CHECK-NEXT: %xlo:_(s64) = COPY $x11709 ; CHECK-NEXT: %yhi:_(s64) = COPY $x12710 ; CHECK-NEXT: %ylo:_(s64) = COPY $x13711 ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(s64) = G_ICMP intpred(ule), %xhi(s64), %yhi712 ; CHECK-NEXT: [[ICMP1:%[0-9]+]]:_(s64) = G_ICMP intpred(sle), %xlo(s64), %ylo713 ; CHECK-NEXT: [[ICMP2:%[0-9]+]]:_(s64) = G_ICMP intpred(eq), %xlo(s64), %ylo714 ; CHECK-NEXT: [[TRUNC:%[0-9]+]]:_(s32) = G_TRUNC [[ICMP]](s64)715 ; CHECK-NEXT: [[TRUNC1:%[0-9]+]]:_(s32) = G_TRUNC [[ICMP1]](s64)716 ; CHECK-NEXT: [[SELECT:%[0-9]+]]:_(s32) = G_SELECT [[ICMP2]](s64), [[TRUNC]], [[TRUNC1]]717 ; CHECK-NEXT: %z0:_(s64) = G_ANYEXT [[SELECT]](s32)718 ; CHECK-NEXT: $x10 = COPY %z0(s64)719 ; CHECK-NEXT: PseudoRET implicit $x10720 %xhi:_(s64) = COPY $x10721 %xlo:_(s64) = COPY $x11722 %yhi:_(s64) = COPY $x12723 %ylo:_(s64) = COPY $x13724 %x:_(s128) = G_MERGE_VALUES %xhi(s64), %xlo(s64)725 %y:_(s128) = G_MERGE_VALUES %yhi(s64), %ylo(s64)726 %z:_(s1) = G_ICMP intpred(sle), %x, %y727 %z0:_(s64) = G_ANYEXT %z(s1)728 $x10 = COPY %z0(s64)729 PseudoRET implicit $x10730 731...732---733name: cmp_ugt_i8734body: |735 bb.0.entry:736 ; CHECK-LABEL: name: cmp_ugt_i8737 ; CHECK: [[COPY:%[0-9]+]]:_(s64) = COPY $x10738 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s64) = COPY $x11739 ; CHECK-NEXT: [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 255740 ; CHECK-NEXT: [[AND:%[0-9]+]]:_(s64) = G_AND [[COPY]], [[C]]741 ; CHECK-NEXT: [[AND1:%[0-9]+]]:_(s64) = G_AND [[COPY1]], [[C]]742 ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(s64) = G_ICMP intpred(ugt), [[AND]](s64), [[AND1]]743 ; CHECK-NEXT: $x10 = COPY [[ICMP]](s64)744 ; CHECK-NEXT: PseudoRET implicit $x10745 %0:_(s64) = COPY $x10746 %1:_(s64) = COPY $x11747 %2:_(s8) = G_TRUNC %0(s64)748 %3:_(s8) = G_TRUNC %1(s64)749 %4:_(s1) = G_ICMP intpred(ugt), %2(s8), %3750 %5:_(s64) = G_ANYEXT %4(s1)751 $x10 = COPY %5(s64)752 PseudoRET implicit $x10753 754...755---756name: cmp_ugt_i15757body: |758 bb.0.entry:759 ; CHECK-LABEL: name: cmp_ugt_i15760 ; CHECK: [[COPY:%[0-9]+]]:_(s64) = COPY $x10761 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s64) = COPY $x11762 ; CHECK-NEXT: [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 32767763 ; CHECK-NEXT: [[AND:%[0-9]+]]:_(s64) = G_AND [[COPY]], [[C]]764 ; CHECK-NEXT: [[AND1:%[0-9]+]]:_(s64) = G_AND [[COPY1]], [[C]]765 ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(s64) = G_ICMP intpred(ugt), [[AND]](s64), [[AND1]]766 ; CHECK-NEXT: $x10 = COPY [[ICMP]](s64)767 ; CHECK-NEXT: PseudoRET implicit $x10768 %0:_(s64) = COPY $x10769 %1:_(s64) = COPY $x11770 %2:_(s15) = G_TRUNC %0(s64)771 %3:_(s15) = G_TRUNC %1(s64)772 %4:_(s1) = G_ICMP intpred(ugt), %2(s15), %3773 %5:_(s64) = G_ANYEXT %4(s1)774 $x10 = COPY %5(s64)775 PseudoRET implicit $x10776 777...778---779name: cmp_ugt_i16780body: |781 bb.0.entry:782 ; CHECK-LABEL: name: cmp_ugt_i16783 ; CHECK: [[COPY:%[0-9]+]]:_(s64) = COPY $x10784 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s64) = COPY $x11785 ; CHECK-NEXT: [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 65535786 ; CHECK-NEXT: [[AND:%[0-9]+]]:_(s64) = G_AND [[COPY]], [[C]]787 ; CHECK-NEXT: [[AND1:%[0-9]+]]:_(s64) = G_AND [[COPY1]], [[C]]788 ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(s64) = G_ICMP intpred(ugt), [[AND]](s64), [[AND1]]789 ; CHECK-NEXT: $x10 = COPY [[ICMP]](s64)790 ; CHECK-NEXT: PseudoRET implicit $x10791 %0:_(s64) = COPY $x10792 %1:_(s64) = COPY $x11793 %2:_(s16) = G_TRUNC %0(s64)794 %3:_(s16) = G_TRUNC %1(s64)795 %4:_(s1) = G_ICMP intpred(ugt), %2(s16), %3796 %5:_(s64) = G_ANYEXT %4(s1)797 $x10 = COPY %5(s64)798 PseudoRET implicit $x10799 800...801---802name: cmp_ugt_i32803body: |804 bb.0.entry:805 ; CHECK-LABEL: name: cmp_ugt_i32806 ; CHECK: [[COPY:%[0-9]+]]:_(s64) = COPY $x10807 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s64) = COPY $x11808 ; CHECK-NEXT: [[SEXT_INREG:%[0-9]+]]:_(s64) = G_SEXT_INREG [[COPY]], 32809 ; CHECK-NEXT: [[SEXT_INREG1:%[0-9]+]]:_(s64) = G_SEXT_INREG [[COPY1]], 32810 ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(s64) = G_ICMP intpred(ugt), [[SEXT_INREG]](s64), [[SEXT_INREG1]]811 ; CHECK-NEXT: $x10 = COPY [[ICMP]](s64)812 ; CHECK-NEXT: PseudoRET implicit $x10813 %0:_(s64) = COPY $x10814 %1:_(s64) = COPY $x11815 %2:_(s32) = G_TRUNC %0(s64)816 %3:_(s32) = G_TRUNC %1(s64)817 %4:_(s1) = G_ICMP intpred(ugt), %2(s32), %3818 %5:_(s64) = G_ANYEXT %4(s1)819 $x10 = COPY %5(s64)820 PseudoRET implicit $x10821 822...823---824name: cmp_ugt_i64825body: |826 bb.0.entry:827 ; CHECK-LABEL: name: cmp_ugt_i64828 ; CHECK: [[COPY:%[0-9]+]]:_(s64) = COPY $x10829 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s64) = COPY $x11830 ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(s64) = G_ICMP intpred(ugt), [[COPY]](s64), [[COPY1]]831 ; CHECK-NEXT: $x10 = COPY [[ICMP]](s64)832 ; CHECK-NEXT: PseudoRET implicit $x10833 %0:_(s64) = COPY $x10834 %1:_(s64) = COPY $x11835 %2:_(s1) = G_ICMP intpred(ugt), %0(s64), %1836 %3:_(s64) = G_ANYEXT %2(s1)837 $x10 = COPY %3(s64)838 PseudoRET implicit $x10839 840...841---842name: cmp_ugt_i72843body: |844 bb.0.entry:845 ; CHECK-LABEL: name: cmp_ugt_i72846 ; CHECK: %xhi:_(s64) = COPY $x10847 ; CHECK-NEXT: %xlo:_(s64) = COPY $x11848 ; CHECK-NEXT: %yhi:_(s64) = COPY $x12849 ; CHECK-NEXT: %ylo:_(s64) = COPY $x13850 ; CHECK-NEXT: [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 -1851 ; CHECK-NEXT: [[C1:%[0-9]+]]:_(s64) = G_CONSTANT i64 255852 ; CHECK-NEXT: [[AND:%[0-9]+]]:_(s64) = G_AND %xhi, [[C]]853 ; CHECK-NEXT: [[AND1:%[0-9]+]]:_(s64) = G_AND %xlo, [[C1]]854 ; CHECK-NEXT: [[AND2:%[0-9]+]]:_(s64) = G_AND %yhi, [[C]]855 ; CHECK-NEXT: [[AND3:%[0-9]+]]:_(s64) = G_AND %ylo, [[C1]]856 ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(s64) = G_ICMP intpred(ugt), [[AND]](s64), [[AND2]]857 ; CHECK-NEXT: [[ICMP1:%[0-9]+]]:_(s64) = G_ICMP intpred(ugt), [[AND1]](s64), [[AND3]]858 ; CHECK-NEXT: [[ICMP2:%[0-9]+]]:_(s64) = G_ICMP intpred(eq), [[AND1]](s64), [[AND3]]859 ; CHECK-NEXT: [[TRUNC:%[0-9]+]]:_(s32) = G_TRUNC [[ICMP]](s64)860 ; CHECK-NEXT: [[TRUNC1:%[0-9]+]]:_(s32) = G_TRUNC [[ICMP1]](s64)861 ; CHECK-NEXT: [[SELECT:%[0-9]+]]:_(s32) = G_SELECT [[ICMP2]](s64), [[TRUNC]], [[TRUNC1]]862 ; CHECK-NEXT: %z0:_(s64) = G_ANYEXT [[SELECT]](s32)863 ; CHECK-NEXT: $x10 = COPY %z0(s64)864 ; CHECK-NEXT: PseudoRET implicit $x10865 %xhi:_(s64) = COPY $x10866 %xlo:_(s64) = COPY $x11867 %yhi:_(s64) = COPY $x12868 %ylo:_(s64) = COPY $x13869 %x0:_(s128) = G_MERGE_VALUES %xhi(s64), %xlo(s64)870 %y0:_(s128) = G_MERGE_VALUES %yhi(s64), %ylo(s64)871 %x:_(s72) = G_TRUNC %x0(s128)872 %y:_(s72) = G_TRUNC %y0(s128)873 %z:_(s1) = G_ICMP intpred(ugt), %x, %y874 %z0:_(s64) = G_ANYEXT %z(s1)875 $x10 = COPY %z0(s64)876 PseudoRET implicit $x10877 878...879---880name: cmp_ugt_i128881body: |882 bb.0.entry:883 ; CHECK-LABEL: name: cmp_ugt_i128884 ; CHECK: %xhi:_(s64) = COPY $x10885 ; CHECK-NEXT: %xlo:_(s64) = COPY $x11886 ; CHECK-NEXT: %yhi:_(s64) = COPY $x12887 ; CHECK-NEXT: %ylo:_(s64) = COPY $x13888 ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(s64) = G_ICMP intpred(ugt), %xhi(s64), %yhi889 ; CHECK-NEXT: [[ICMP1:%[0-9]+]]:_(s64) = G_ICMP intpred(ugt), %xlo(s64), %ylo890 ; CHECK-NEXT: [[ICMP2:%[0-9]+]]:_(s64) = G_ICMP intpred(eq), %xlo(s64), %ylo891 ; CHECK-NEXT: [[TRUNC:%[0-9]+]]:_(s32) = G_TRUNC [[ICMP]](s64)892 ; CHECK-NEXT: [[TRUNC1:%[0-9]+]]:_(s32) = G_TRUNC [[ICMP1]](s64)893 ; CHECK-NEXT: [[SELECT:%[0-9]+]]:_(s32) = G_SELECT [[ICMP2]](s64), [[TRUNC]], [[TRUNC1]]894 ; CHECK-NEXT: %z0:_(s64) = G_ANYEXT [[SELECT]](s32)895 ; CHECK-NEXT: $x10 = COPY %z0(s64)896 ; CHECK-NEXT: PseudoRET implicit $x10897 %xhi:_(s64) = COPY $x10898 %xlo:_(s64) = COPY $x11899 %yhi:_(s64) = COPY $x12900 %ylo:_(s64) = COPY $x13901 %x:_(s128) = G_MERGE_VALUES %xhi(s64), %xlo(s64)902 %y:_(s128) = G_MERGE_VALUES %yhi(s64), %ylo(s64)903 %z:_(s1) = G_ICMP intpred(ugt), %x, %y904 %z0:_(s64) = G_ANYEXT %z(s1)905 $x10 = COPY %z0(s64)906 PseudoRET implicit $x10907 908...909---910name: cmp_ult_i8911body: |912 bb.0.entry:913 ; CHECK-LABEL: name: cmp_ult_i8914 ; CHECK: [[COPY:%[0-9]+]]:_(s64) = COPY $x10915 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s64) = COPY $x11916 ; CHECK-NEXT: [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 255917 ; CHECK-NEXT: [[AND:%[0-9]+]]:_(s64) = G_AND [[COPY]], [[C]]918 ; CHECK-NEXT: [[AND1:%[0-9]+]]:_(s64) = G_AND [[COPY1]], [[C]]919 ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(s64) = G_ICMP intpred(ult), [[AND]](s64), [[AND1]]920 ; CHECK-NEXT: $x10 = COPY [[ICMP]](s64)921 ; CHECK-NEXT: PseudoRET implicit $x10922 %0:_(s64) = COPY $x10923 %1:_(s64) = COPY $x11924 %2:_(s8) = G_TRUNC %0(s64)925 %3:_(s8) = G_TRUNC %1(s64)926 %4:_(s1) = G_ICMP intpred(ult), %2(s8), %3927 %5:_(s64) = G_ANYEXT %4(s1)928 $x10 = COPY %5(s64)929 PseudoRET implicit $x10930 931...932---933name: cmp_ult_i15934body: |935 bb.0.entry:936 ; CHECK-LABEL: name: cmp_ult_i15937 ; CHECK: [[COPY:%[0-9]+]]:_(s64) = COPY $x10938 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s64) = COPY $x11939 ; CHECK-NEXT: [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 32767940 ; CHECK-NEXT: [[AND:%[0-9]+]]:_(s64) = G_AND [[COPY]], [[C]]941 ; CHECK-NEXT: [[AND1:%[0-9]+]]:_(s64) = G_AND [[COPY1]], [[C]]942 ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(s64) = G_ICMP intpred(ult), [[AND]](s64), [[AND1]]943 ; CHECK-NEXT: $x10 = COPY [[ICMP]](s64)944 ; CHECK-NEXT: PseudoRET implicit $x10945 %0:_(s64) = COPY $x10946 %1:_(s64) = COPY $x11947 %2:_(s15) = G_TRUNC %0(s64)948 %3:_(s15) = G_TRUNC %1(s64)949 %4:_(s1) = G_ICMP intpred(ult), %2(s15), %3950 %5:_(s64) = G_ANYEXT %4(s1)951 $x10 = COPY %5(s64)952 PseudoRET implicit $x10953 954...955---956name: cmp_ult_i16957body: |958 bb.0.entry:959 ; CHECK-LABEL: name: cmp_ult_i16960 ; CHECK: [[COPY:%[0-9]+]]:_(s64) = COPY $x10961 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s64) = COPY $x11962 ; CHECK-NEXT: [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 65535963 ; CHECK-NEXT: [[AND:%[0-9]+]]:_(s64) = G_AND [[COPY]], [[C]]964 ; CHECK-NEXT: [[AND1:%[0-9]+]]:_(s64) = G_AND [[COPY1]], [[C]]965 ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(s64) = G_ICMP intpred(ult), [[AND]](s64), [[AND1]]966 ; CHECK-NEXT: $x10 = COPY [[ICMP]](s64)967 ; CHECK-NEXT: PseudoRET implicit $x10968 %0:_(s64) = COPY $x10969 %1:_(s64) = COPY $x11970 %2:_(s16) = G_TRUNC %0(s64)971 %3:_(s16) = G_TRUNC %1(s64)972 %4:_(s1) = G_ICMP intpred(ult), %2(s16), %3973 %5:_(s64) = G_ANYEXT %4(s1)974 $x10 = COPY %5(s64)975 PseudoRET implicit $x10976 977...978---979name: cmp_ult_i32980body: |981 bb.0.entry:982 ; CHECK-LABEL: name: cmp_ult_i32983 ; CHECK: [[COPY:%[0-9]+]]:_(s64) = COPY $x10984 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s64) = COPY $x11985 ; CHECK-NEXT: [[SEXT_INREG:%[0-9]+]]:_(s64) = G_SEXT_INREG [[COPY]], 32986 ; CHECK-NEXT: [[SEXT_INREG1:%[0-9]+]]:_(s64) = G_SEXT_INREG [[COPY1]], 32987 ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(s64) = G_ICMP intpred(ult), [[SEXT_INREG]](s64), [[SEXT_INREG1]]988 ; CHECK-NEXT: $x10 = COPY [[ICMP]](s64)989 ; CHECK-NEXT: PseudoRET implicit $x10990 %0:_(s64) = COPY $x10991 %1:_(s64) = COPY $x11992 %2:_(s32) = G_TRUNC %0(s64)993 %3:_(s32) = G_TRUNC %1(s64)994 %4:_(s1) = G_ICMP intpred(ult), %2(s32), %3995 %5:_(s64) = G_ANYEXT %4(s1)996 $x10 = COPY %5(s64)997 PseudoRET implicit $x10998 999...1000---1001name: cmp_ult_i641002body: |1003 bb.0.entry:1004 ; CHECK-LABEL: name: cmp_ult_i641005 ; CHECK: [[COPY:%[0-9]+]]:_(s64) = COPY $x101006 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s64) = COPY $x111007 ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(s64) = G_ICMP intpred(ult), [[COPY]](s64), [[COPY1]]1008 ; CHECK-NEXT: $x10 = COPY [[ICMP]](s64)1009 ; CHECK-NEXT: PseudoRET implicit $x101010 %0:_(s64) = COPY $x101011 %1:_(s64) = COPY $x111012 %2:_(s1) = G_ICMP intpred(ult), %0(s64), %11013 %3:_(s64) = G_ANYEXT %2(s1)1014 $x10 = COPY %3(s64)1015 PseudoRET implicit $x101016 1017...1018---1019name: cmp_ult_i721020body: |1021 bb.0.entry:1022 ; CHECK-LABEL: name: cmp_ult_i721023 ; CHECK: %xhi:_(s64) = COPY $x101024 ; CHECK-NEXT: %xlo:_(s64) = COPY $x111025 ; CHECK-NEXT: %yhi:_(s64) = COPY $x121026 ; CHECK-NEXT: %ylo:_(s64) = COPY $x131027 ; CHECK-NEXT: [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 -11028 ; CHECK-NEXT: [[C1:%[0-9]+]]:_(s64) = G_CONSTANT i64 2551029 ; CHECK-NEXT: [[AND:%[0-9]+]]:_(s64) = G_AND %xhi, [[C]]1030 ; CHECK-NEXT: [[AND1:%[0-9]+]]:_(s64) = G_AND %xlo, [[C1]]1031 ; CHECK-NEXT: [[AND2:%[0-9]+]]:_(s64) = G_AND %yhi, [[C]]1032 ; CHECK-NEXT: [[AND3:%[0-9]+]]:_(s64) = G_AND %ylo, [[C1]]1033 ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(s64) = G_ICMP intpred(ult), [[AND]](s64), [[AND2]]1034 ; CHECK-NEXT: [[ICMP1:%[0-9]+]]:_(s64) = G_ICMP intpred(ult), [[AND1]](s64), [[AND3]]1035 ; CHECK-NEXT: [[ICMP2:%[0-9]+]]:_(s64) = G_ICMP intpred(eq), [[AND1]](s64), [[AND3]]1036 ; CHECK-NEXT: [[TRUNC:%[0-9]+]]:_(s32) = G_TRUNC [[ICMP]](s64)1037 ; CHECK-NEXT: [[TRUNC1:%[0-9]+]]:_(s32) = G_TRUNC [[ICMP1]](s64)1038 ; CHECK-NEXT: [[SELECT:%[0-9]+]]:_(s32) = G_SELECT [[ICMP2]](s64), [[TRUNC]], [[TRUNC1]]1039 ; CHECK-NEXT: %z0:_(s64) = G_ANYEXT [[SELECT]](s32)1040 ; CHECK-NEXT: $x10 = COPY %z0(s64)1041 ; CHECK-NEXT: PseudoRET implicit $x101042 %xhi:_(s64) = COPY $x101043 %xlo:_(s64) = COPY $x111044 %yhi:_(s64) = COPY $x121045 %ylo:_(s64) = COPY $x131046 %x0:_(s128) = G_MERGE_VALUES %xhi(s64), %xlo(s64)1047 %y0:_(s128) = G_MERGE_VALUES %yhi(s64), %ylo(s64)1048 %x:_(s72) = G_TRUNC %x0(s128)1049 %y:_(s72) = G_TRUNC %y0(s128)1050 %z:_(s1) = G_ICMP intpred(ult), %x, %y1051 %z0:_(s64) = G_ANYEXT %z(s1)1052 $x10 = COPY %z0(s64)1053 PseudoRET implicit $x101054 1055...1056---1057name: cmp_ult_i1281058body: |1059 bb.0.entry:1060 ; CHECK-LABEL: name: cmp_ult_i1281061 ; CHECK: %xhi:_(s64) = COPY $x101062 ; CHECK-NEXT: %xlo:_(s64) = COPY $x111063 ; CHECK-NEXT: %yhi:_(s64) = COPY $x121064 ; CHECK-NEXT: %ylo:_(s64) = COPY $x131065 ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(s64) = G_ICMP intpred(uge), %xhi(s64), %yhi1066 ; CHECK-NEXT: [[ICMP1:%[0-9]+]]:_(s64) = G_ICMP intpred(sge), %xlo(s64), %ylo1067 ; CHECK-NEXT: [[ICMP2:%[0-9]+]]:_(s64) = G_ICMP intpred(eq), %xlo(s64), %ylo1068 ; CHECK-NEXT: [[TRUNC:%[0-9]+]]:_(s32) = G_TRUNC [[ICMP]](s64)1069 ; CHECK-NEXT: [[TRUNC1:%[0-9]+]]:_(s32) = G_TRUNC [[ICMP1]](s64)1070 ; CHECK-NEXT: [[SELECT:%[0-9]+]]:_(s32) = G_SELECT [[ICMP2]](s64), [[TRUNC]], [[TRUNC1]]1071 ; CHECK-NEXT: %z0:_(s64) = G_ANYEXT [[SELECT]](s32)1072 ; CHECK-NEXT: $x10 = COPY %z0(s64)1073 ; CHECK-NEXT: PseudoRET implicit $x101074 %xhi:_(s64) = COPY $x101075 %xlo:_(s64) = COPY $x111076 %yhi:_(s64) = COPY $x121077 %ylo:_(s64) = COPY $x131078 %x:_(s128) = G_MERGE_VALUES %xhi(s64), %xlo(s64)1079 %y:_(s128) = G_MERGE_VALUES %yhi(s64), %ylo(s64)1080 %z:_(s1) = G_ICMP intpred(sge), %x, %y1081 %z0:_(s64) = G_ANYEXT %z(s1)1082 $x10 = COPY %z0(s64)1083 PseudoRET implicit $x101084 1085...1086---1087name: cmp_uge_i81088body: |1089 bb.0.entry:1090 ; CHECK-LABEL: name: cmp_uge_i81091 ; CHECK: [[COPY:%[0-9]+]]:_(s64) = COPY $x101092 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s64) = COPY $x111093 ; CHECK-NEXT: [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 2551094 ; CHECK-NEXT: [[AND:%[0-9]+]]:_(s64) = G_AND [[COPY]], [[C]]1095 ; CHECK-NEXT: [[AND1:%[0-9]+]]:_(s64) = G_AND [[COPY1]], [[C]]1096 ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(s64) = G_ICMP intpred(uge), [[AND]](s64), [[AND1]]1097 ; CHECK-NEXT: $x10 = COPY [[ICMP]](s64)1098 ; CHECK-NEXT: PseudoRET implicit $x101099 %0:_(s64) = COPY $x101100 %1:_(s64) = COPY $x111101 %2:_(s8) = G_TRUNC %0(s64)1102 %3:_(s8) = G_TRUNC %1(s64)1103 %4:_(s1) = G_ICMP intpred(uge), %2(s8), %31104 %5:_(s64) = G_ANYEXT %4(s1)1105 $x10 = COPY %5(s64)1106 PseudoRET implicit $x101107 1108...1109---1110name: cmp_uge_i151111body: |1112 bb.0.entry:1113 ; CHECK-LABEL: name: cmp_uge_i151114 ; CHECK: [[COPY:%[0-9]+]]:_(s64) = COPY $x101115 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s64) = COPY $x111116 ; CHECK-NEXT: [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 327671117 ; CHECK-NEXT: [[AND:%[0-9]+]]:_(s64) = G_AND [[COPY]], [[C]]1118 ; CHECK-NEXT: [[AND1:%[0-9]+]]:_(s64) = G_AND [[COPY1]], [[C]]1119 ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(s64) = G_ICMP intpred(uge), [[AND]](s64), [[AND1]]1120 ; CHECK-NEXT: $x10 = COPY [[ICMP]](s64)1121 ; CHECK-NEXT: PseudoRET implicit $x101122 %0:_(s64) = COPY $x101123 %1:_(s64) = COPY $x111124 %2:_(s15) = G_TRUNC %0(s64)1125 %3:_(s15) = G_TRUNC %1(s64)1126 %4:_(s1) = G_ICMP intpred(uge), %2(s15), %31127 %5:_(s64) = G_ANYEXT %4(s1)1128 $x10 = COPY %5(s64)1129 PseudoRET implicit $x101130 1131...1132---1133name: cmp_uge_i161134body: |1135 bb.0.entry:1136 ; CHECK-LABEL: name: cmp_uge_i161137 ; CHECK: [[COPY:%[0-9]+]]:_(s64) = COPY $x101138 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s64) = COPY $x111139 ; CHECK-NEXT: [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 655351140 ; CHECK-NEXT: [[AND:%[0-9]+]]:_(s64) = G_AND [[COPY]], [[C]]1141 ; CHECK-NEXT: [[AND1:%[0-9]+]]:_(s64) = G_AND [[COPY1]], [[C]]1142 ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(s64) = G_ICMP intpred(uge), [[AND]](s64), [[AND1]]1143 ; CHECK-NEXT: $x10 = COPY [[ICMP]](s64)1144 ; CHECK-NEXT: PseudoRET implicit $x101145 %0:_(s64) = COPY $x101146 %1:_(s64) = COPY $x111147 %2:_(s16) = G_TRUNC %0(s64)1148 %3:_(s16) = G_TRUNC %1(s64)1149 %4:_(s1) = G_ICMP intpred(uge), %2(s16), %31150 %5:_(s64) = G_ANYEXT %4(s1)1151 $x10 = COPY %5(s64)1152 PseudoRET implicit $x101153 1154...1155---1156name: cmp_uge_i321157body: |1158 bb.0.entry:1159 ; CHECK-LABEL: name: cmp_uge_i321160 ; CHECK: [[COPY:%[0-9]+]]:_(s64) = COPY $x101161 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s64) = COPY $x111162 ; CHECK-NEXT: [[SEXT_INREG:%[0-9]+]]:_(s64) = G_SEXT_INREG [[COPY]], 321163 ; CHECK-NEXT: [[SEXT_INREG1:%[0-9]+]]:_(s64) = G_SEXT_INREG [[COPY1]], 321164 ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(s64) = G_ICMP intpred(uge), [[SEXT_INREG]](s64), [[SEXT_INREG1]]1165 ; CHECK-NEXT: $x10 = COPY [[ICMP]](s64)1166 ; CHECK-NEXT: PseudoRET implicit $x101167 %0:_(s64) = COPY $x101168 %1:_(s64) = COPY $x111169 %2:_(s32) = G_TRUNC %0(s64)1170 %3:_(s32) = G_TRUNC %1(s64)1171 %4:_(s1) = G_ICMP intpred(uge), %2(s32), %31172 %5:_(s64) = G_ANYEXT %4(s1)1173 $x10 = COPY %5(s64)1174 PseudoRET implicit $x101175 1176...1177---1178name: cmp_uge_i641179body: |1180 bb.0.entry:1181 ; CHECK-LABEL: name: cmp_uge_i641182 ; CHECK: [[COPY:%[0-9]+]]:_(s64) = COPY $x101183 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s64) = COPY $x111184 ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(s64) = G_ICMP intpred(uge), [[COPY]](s64), [[COPY1]]1185 ; CHECK-NEXT: $x10 = COPY [[ICMP]](s64)1186 ; CHECK-NEXT: PseudoRET implicit $x101187 %0:_(s64) = COPY $x101188 %1:_(s64) = COPY $x111189 %2:_(s1) = G_ICMP intpred(uge), %0(s64), %11190 %3:_(s64) = G_ANYEXT %2(s1)1191 $x10 = COPY %3(s64)1192 PseudoRET implicit $x101193 1194...1195---1196name: cmp_uge_i721197body: |1198 bb.0.entry:1199 ; CHECK-LABEL: name: cmp_uge_i721200 ; CHECK: %xhi:_(s64) = COPY $x101201 ; CHECK-NEXT: %xlo:_(s64) = COPY $x111202 ; CHECK-NEXT: %yhi:_(s64) = COPY $x121203 ; CHECK-NEXT: %ylo:_(s64) = COPY $x131204 ; CHECK-NEXT: [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 -11205 ; CHECK-NEXT: [[C1:%[0-9]+]]:_(s64) = G_CONSTANT i64 2551206 ; CHECK-NEXT: [[AND:%[0-9]+]]:_(s64) = G_AND %xhi, [[C]]1207 ; CHECK-NEXT: [[AND1:%[0-9]+]]:_(s64) = G_AND %xlo, [[C1]]1208 ; CHECK-NEXT: [[AND2:%[0-9]+]]:_(s64) = G_AND %yhi, [[C]]1209 ; CHECK-NEXT: [[AND3:%[0-9]+]]:_(s64) = G_AND %ylo, [[C1]]1210 ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(s64) = G_ICMP intpred(uge), [[AND]](s64), [[AND2]]1211 ; CHECK-NEXT: [[ICMP1:%[0-9]+]]:_(s64) = G_ICMP intpred(uge), [[AND1]](s64), [[AND3]]1212 ; CHECK-NEXT: [[ICMP2:%[0-9]+]]:_(s64) = G_ICMP intpred(eq), [[AND1]](s64), [[AND3]]1213 ; CHECK-NEXT: [[TRUNC:%[0-9]+]]:_(s32) = G_TRUNC [[ICMP]](s64)1214 ; CHECK-NEXT: [[TRUNC1:%[0-9]+]]:_(s32) = G_TRUNC [[ICMP1]](s64)1215 ; CHECK-NEXT: [[SELECT:%[0-9]+]]:_(s32) = G_SELECT [[ICMP2]](s64), [[TRUNC]], [[TRUNC1]]1216 ; CHECK-NEXT: %z0:_(s64) = G_ANYEXT [[SELECT]](s32)1217 ; CHECK-NEXT: $x10 = COPY %z0(s64)1218 ; CHECK-NEXT: PseudoRET implicit $x101219 %xhi:_(s64) = COPY $x101220 %xlo:_(s64) = COPY $x111221 %yhi:_(s64) = COPY $x121222 %ylo:_(s64) = COPY $x131223 %x0:_(s128) = G_MERGE_VALUES %xhi(s64), %xlo(s64)1224 %y0:_(s128) = G_MERGE_VALUES %yhi(s64), %ylo(s64)1225 %x:_(s72) = G_TRUNC %x0(s128)1226 %y:_(s72) = G_TRUNC %y0(s128)1227 %z:_(s1) = G_ICMP intpred(uge), %x, %y1228 %z0:_(s64) = G_ANYEXT %z(s1)1229 $x10 = COPY %z0(s64)1230 PseudoRET implicit $x101231 1232...1233---1234name: cmp_uge_i1281235body: |1236 bb.0.entry:1237 ; CHECK-LABEL: name: cmp_uge_i1281238 ; CHECK: %xhi:_(s64) = COPY $x101239 ; CHECK-NEXT: %xlo:_(s64) = COPY $x111240 ; CHECK-NEXT: %yhi:_(s64) = COPY $x121241 ; CHECK-NEXT: %ylo:_(s64) = COPY $x131242 ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(s64) = G_ICMP intpred(uge), %xhi(s64), %yhi1243 ; CHECK-NEXT: [[ICMP1:%[0-9]+]]:_(s64) = G_ICMP intpred(uge), %xlo(s64), %ylo1244 ; CHECK-NEXT: [[ICMP2:%[0-9]+]]:_(s64) = G_ICMP intpred(eq), %xlo(s64), %ylo1245 ; CHECK-NEXT: [[TRUNC:%[0-9]+]]:_(s32) = G_TRUNC [[ICMP]](s64)1246 ; CHECK-NEXT: [[TRUNC1:%[0-9]+]]:_(s32) = G_TRUNC [[ICMP1]](s64)1247 ; CHECK-NEXT: [[SELECT:%[0-9]+]]:_(s32) = G_SELECT [[ICMP2]](s64), [[TRUNC]], [[TRUNC1]]1248 ; CHECK-NEXT: %z0:_(s64) = G_ANYEXT [[SELECT]](s32)1249 ; CHECK-NEXT: $x10 = COPY %z0(s64)1250 ; CHECK-NEXT: PseudoRET implicit $x101251 %xhi:_(s64) = COPY $x101252 %xlo:_(s64) = COPY $x111253 %yhi:_(s64) = COPY $x121254 %ylo:_(s64) = COPY $x131255 %x:_(s128) = G_MERGE_VALUES %xhi(s64), %xlo(s64)1256 %y:_(s128) = G_MERGE_VALUES %yhi(s64), %ylo(s64)1257 %z:_(s1) = G_ICMP intpred(uge), %x, %y1258 %z0:_(s64) = G_ANYEXT %z(s1)1259 $x10 = COPY %z0(s64)1260 PseudoRET implicit $x101261 1262...1263---1264name: cmp_ule_i81265body: |1266 bb.0.entry:1267 ; CHECK-LABEL: name: cmp_ule_i81268 ; CHECK: [[COPY:%[0-9]+]]:_(s64) = COPY $x101269 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s64) = COPY $x111270 ; CHECK-NEXT: [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 2551271 ; CHECK-NEXT: [[AND:%[0-9]+]]:_(s64) = G_AND [[COPY]], [[C]]1272 ; CHECK-NEXT: [[AND1:%[0-9]+]]:_(s64) = G_AND [[COPY1]], [[C]]1273 ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(s64) = G_ICMP intpred(ule), [[AND]](s64), [[AND1]]1274 ; CHECK-NEXT: $x10 = COPY [[ICMP]](s64)1275 ; CHECK-NEXT: PseudoRET implicit $x101276 %0:_(s64) = COPY $x101277 %1:_(s64) = COPY $x111278 %2:_(s8) = G_TRUNC %0(s64)1279 %3:_(s8) = G_TRUNC %1(s64)1280 %4:_(s1) = G_ICMP intpred(ule), %2(s8), %31281 %5:_(s64) = G_ANYEXT %4(s1)1282 $x10 = COPY %5(s64)1283 PseudoRET implicit $x101284 1285...1286---1287name: cmp_ule_i151288body: |1289 bb.0.entry:1290 ; CHECK-LABEL: name: cmp_ule_i151291 ; CHECK: [[COPY:%[0-9]+]]:_(s64) = COPY $x101292 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s64) = COPY $x111293 ; CHECK-NEXT: [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 327671294 ; CHECK-NEXT: [[AND:%[0-9]+]]:_(s64) = G_AND [[COPY]], [[C]]1295 ; CHECK-NEXT: [[AND1:%[0-9]+]]:_(s64) = G_AND [[COPY1]], [[C]]1296 ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(s64) = G_ICMP intpred(ule), [[AND]](s64), [[AND1]]1297 ; CHECK-NEXT: $x10 = COPY [[ICMP]](s64)1298 ; CHECK-NEXT: PseudoRET implicit $x101299 %0:_(s64) = COPY $x101300 %1:_(s64) = COPY $x111301 %2:_(s15) = G_TRUNC %0(s64)1302 %3:_(s15) = G_TRUNC %1(s64)1303 %4:_(s1) = G_ICMP intpred(ule), %2(s15), %31304 %5:_(s64) = G_ANYEXT %4(s1)1305 $x10 = COPY %5(s64)1306 PseudoRET implicit $x101307 1308...1309---1310name: cmp_ule_i161311body: |1312 bb.0.entry:1313 ; CHECK-LABEL: name: cmp_ule_i161314 ; CHECK: [[COPY:%[0-9]+]]:_(s64) = COPY $x101315 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s64) = COPY $x111316 ; CHECK-NEXT: [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 655351317 ; CHECK-NEXT: [[AND:%[0-9]+]]:_(s64) = G_AND [[COPY]], [[C]]1318 ; CHECK-NEXT: [[AND1:%[0-9]+]]:_(s64) = G_AND [[COPY1]], [[C]]1319 ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(s64) = G_ICMP intpred(ule), [[AND]](s64), [[AND1]]1320 ; CHECK-NEXT: $x10 = COPY [[ICMP]](s64)1321 ; CHECK-NEXT: PseudoRET implicit $x101322 %0:_(s64) = COPY $x101323 %1:_(s64) = COPY $x111324 %2:_(s16) = G_TRUNC %0(s64)1325 %3:_(s16) = G_TRUNC %1(s64)1326 %4:_(s1) = G_ICMP intpred(ule), %2(s16), %31327 %5:_(s64) = G_ANYEXT %4(s1)1328 $x10 = COPY %5(s64)1329 PseudoRET implicit $x101330 1331...1332---1333name: cmp_ule_i321334body: |1335 bb.0.entry:1336 ; CHECK-LABEL: name: cmp_ule_i321337 ; CHECK: [[COPY:%[0-9]+]]:_(s64) = COPY $x101338 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s64) = COPY $x111339 ; CHECK-NEXT: [[SEXT_INREG:%[0-9]+]]:_(s64) = G_SEXT_INREG [[COPY]], 321340 ; CHECK-NEXT: [[SEXT_INREG1:%[0-9]+]]:_(s64) = G_SEXT_INREG [[COPY1]], 321341 ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(s64) = G_ICMP intpred(ule), [[SEXT_INREG]](s64), [[SEXT_INREG1]]1342 ; CHECK-NEXT: $x10 = COPY [[ICMP]](s64)1343 ; CHECK-NEXT: PseudoRET implicit $x101344 %0:_(s64) = COPY $x101345 %1:_(s64) = COPY $x111346 %2:_(s32) = G_TRUNC %0(s64)1347 %3:_(s32) = G_TRUNC %1(s64)1348 %4:_(s1) = G_ICMP intpred(ule), %2(s32), %31349 %5:_(s64) = G_ANYEXT %4(s1)1350 $x10 = COPY %5(s64)1351 PseudoRET implicit $x101352 1353...1354---1355name: cmp_ule_i641356body: |1357 bb.0.entry:1358 ; CHECK-LABEL: name: cmp_ule_i641359 ; CHECK: [[COPY:%[0-9]+]]:_(s64) = COPY $x101360 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s64) = COPY $x111361 ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(s64) = G_ICMP intpred(ule), [[COPY]](s64), [[COPY1]]1362 ; CHECK-NEXT: $x10 = COPY [[ICMP]](s64)1363 ; CHECK-NEXT: PseudoRET implicit $x101364 %0:_(s64) = COPY $x101365 %1:_(s64) = COPY $x111366 %2:_(s1) = G_ICMP intpred(ule), %0(s64), %11367 %3:_(s64) = G_ANYEXT %2(s1)1368 $x10 = COPY %3(s64)1369 PseudoRET implicit $x101370 1371...1372---1373name: cmp_ule_i721374body: |1375 bb.0.entry:1376 ; CHECK-LABEL: name: cmp_ule_i721377 ; CHECK: %xhi:_(s64) = COPY $x101378 ; CHECK-NEXT: %xlo:_(s64) = COPY $x111379 ; CHECK-NEXT: %yhi:_(s64) = COPY $x121380 ; CHECK-NEXT: %ylo:_(s64) = COPY $x131381 ; CHECK-NEXT: [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 -11382 ; CHECK-NEXT: [[C1:%[0-9]+]]:_(s64) = G_CONSTANT i64 2551383 ; CHECK-NEXT: [[AND:%[0-9]+]]:_(s64) = G_AND %xhi, [[C]]1384 ; CHECK-NEXT: [[AND1:%[0-9]+]]:_(s64) = G_AND %xlo, [[C1]]1385 ; CHECK-NEXT: [[AND2:%[0-9]+]]:_(s64) = G_AND %yhi, [[C]]1386 ; CHECK-NEXT: [[AND3:%[0-9]+]]:_(s64) = G_AND %ylo, [[C1]]1387 ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(s64) = G_ICMP intpred(ule), [[AND]](s64), [[AND2]]1388 ; CHECK-NEXT: [[ICMP1:%[0-9]+]]:_(s64) = G_ICMP intpred(ule), [[AND1]](s64), [[AND3]]1389 ; CHECK-NEXT: [[ICMP2:%[0-9]+]]:_(s64) = G_ICMP intpred(eq), [[AND1]](s64), [[AND3]]1390 ; CHECK-NEXT: [[TRUNC:%[0-9]+]]:_(s32) = G_TRUNC [[ICMP]](s64)1391 ; CHECK-NEXT: [[TRUNC1:%[0-9]+]]:_(s32) = G_TRUNC [[ICMP1]](s64)1392 ; CHECK-NEXT: [[SELECT:%[0-9]+]]:_(s32) = G_SELECT [[ICMP2]](s64), [[TRUNC]], [[TRUNC1]]1393 ; CHECK-NEXT: %z0:_(s64) = G_ANYEXT [[SELECT]](s32)1394 ; CHECK-NEXT: $x10 = COPY %z0(s64)1395 ; CHECK-NEXT: PseudoRET implicit $x101396 %xhi:_(s64) = COPY $x101397 %xlo:_(s64) = COPY $x111398 %yhi:_(s64) = COPY $x121399 %ylo:_(s64) = COPY $x131400 %x0:_(s128) = G_MERGE_VALUES %xhi(s64), %xlo(s64)1401 %y0:_(s128) = G_MERGE_VALUES %yhi(s64), %ylo(s64)1402 %x:_(s72) = G_TRUNC %x0(s128)1403 %y:_(s72) = G_TRUNC %y0(s128)1404 %z:_(s1) = G_ICMP intpred(ule), %x, %y1405 %z0:_(s64) = G_ANYEXT %z(s1)1406 $x10 = COPY %z0(s64)1407 PseudoRET implicit $x101408 1409...1410---1411name: cmp_ule_i1281412body: |1413 bb.0.entry:1414 ; CHECK-LABEL: name: cmp_ule_i1281415 ; CHECK: %xhi:_(s64) = COPY $x101416 ; CHECK-NEXT: %xlo:_(s64) = COPY $x111417 ; CHECK-NEXT: %yhi:_(s64) = COPY $x121418 ; CHECK-NEXT: %ylo:_(s64) = COPY $x131419 ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(s64) = G_ICMP intpred(ule), %xhi(s64), %yhi1420 ; CHECK-NEXT: [[ICMP1:%[0-9]+]]:_(s64) = G_ICMP intpred(ule), %xlo(s64), %ylo1421 ; CHECK-NEXT: [[ICMP2:%[0-9]+]]:_(s64) = G_ICMP intpred(eq), %xlo(s64), %ylo1422 ; CHECK-NEXT: [[TRUNC:%[0-9]+]]:_(s32) = G_TRUNC [[ICMP]](s64)1423 ; CHECK-NEXT: [[TRUNC1:%[0-9]+]]:_(s32) = G_TRUNC [[ICMP1]](s64)1424 ; CHECK-NEXT: [[SELECT:%[0-9]+]]:_(s32) = G_SELECT [[ICMP2]](s64), [[TRUNC]], [[TRUNC1]]1425 ; CHECK-NEXT: %z0:_(s64) = G_ANYEXT [[SELECT]](s32)1426 ; CHECK-NEXT: $x10 = COPY %z0(s64)1427 ; CHECK-NEXT: PseudoRET implicit $x101428 %xhi:_(s64) = COPY $x101429 %xlo:_(s64) = COPY $x111430 %yhi:_(s64) = COPY $x121431 %ylo:_(s64) = COPY $x131432 %x:_(s128) = G_MERGE_VALUES %xhi(s64), %xlo(s64)1433 %y:_(s128) = G_MERGE_VALUES %yhi(s64), %ylo(s64)1434 %z:_(s1) = G_ICMP intpred(ule), %x, %y1435 %z0:_(s64) = G_ANYEXT %z(s1)1436 $x10 = COPY %z0(s64)1437 PseudoRET implicit $x101438 1439...1440---1441name: cmp_eq_i81442body: |1443 bb.0.entry:1444 ; CHECK-LABEL: name: cmp_eq_i81445 ; CHECK: [[COPY:%[0-9]+]]:_(s64) = COPY $x101446 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s64) = COPY $x111447 ; CHECK-NEXT: [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 2551448 ; CHECK-NEXT: [[AND:%[0-9]+]]:_(s64) = G_AND [[COPY]], [[C]]1449 ; CHECK-NEXT: [[AND1:%[0-9]+]]:_(s64) = G_AND [[COPY1]], [[C]]1450 ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(s64) = G_ICMP intpred(eq), [[AND]](s64), [[AND1]]1451 ; CHECK-NEXT: $x10 = COPY [[ICMP]](s64)1452 ; CHECK-NEXT: PseudoRET implicit $x101453 %0:_(s64) = COPY $x101454 %1:_(s64) = COPY $x111455 %2:_(s8) = G_TRUNC %0(s64)1456 %3:_(s8) = G_TRUNC %1(s64)1457 %4:_(s1) = G_ICMP intpred(eq), %2(s8), %31458 %5:_(s64) = G_ANYEXT %4(s1)1459 $x10 = COPY %5(s64)1460 PseudoRET implicit $x101461 1462...1463---1464name: cmp_eq_i151465body: |1466 bb.0.entry:1467 ; CHECK-LABEL: name: cmp_eq_i151468 ; CHECK: [[COPY:%[0-9]+]]:_(s64) = COPY $x101469 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s64) = COPY $x111470 ; CHECK-NEXT: [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 327671471 ; CHECK-NEXT: [[AND:%[0-9]+]]:_(s64) = G_AND [[COPY]], [[C]]1472 ; CHECK-NEXT: [[AND1:%[0-9]+]]:_(s64) = G_AND [[COPY1]], [[C]]1473 ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(s64) = G_ICMP intpred(eq), [[AND]](s64), [[AND1]]1474 ; CHECK-NEXT: $x10 = COPY [[ICMP]](s64)1475 ; CHECK-NEXT: PseudoRET implicit $x101476 %0:_(s64) = COPY $x101477 %1:_(s64) = COPY $x111478 %2:_(s15) = G_TRUNC %0(s64)1479 %3:_(s15) = G_TRUNC %1(s64)1480 %4:_(s1) = G_ICMP intpred(eq), %2(s15), %31481 %5:_(s64) = G_ANYEXT %4(s1)1482 $x10 = COPY %5(s64)1483 PseudoRET implicit $x101484 1485...1486---1487name: cmp_eq_i161488body: |1489 bb.0.entry:1490 ; CHECK-LABEL: name: cmp_eq_i161491 ; CHECK: [[COPY:%[0-9]+]]:_(s64) = COPY $x101492 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s64) = COPY $x111493 ; CHECK-NEXT: [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 655351494 ; CHECK-NEXT: [[AND:%[0-9]+]]:_(s64) = G_AND [[COPY]], [[C]]1495 ; CHECK-NEXT: [[AND1:%[0-9]+]]:_(s64) = G_AND [[COPY1]], [[C]]1496 ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(s64) = G_ICMP intpred(eq), [[AND]](s64), [[AND1]]1497 ; CHECK-NEXT: $x10 = COPY [[ICMP]](s64)1498 ; CHECK-NEXT: PseudoRET implicit $x101499 %0:_(s64) = COPY $x101500 %1:_(s64) = COPY $x111501 %2:_(s16) = G_TRUNC %0(s64)1502 %3:_(s16) = G_TRUNC %1(s64)1503 %4:_(s1) = G_ICMP intpred(eq), %2(s16), %31504 %5:_(s64) = G_ANYEXT %4(s1)1505 $x10 = COPY %5(s64)1506 PseudoRET implicit $x101507 1508...1509---1510name: cmp_eq_i321511body: |1512 bb.0.entry:1513 ; CHECK-LABEL: name: cmp_eq_i321514 ; CHECK: [[COPY:%[0-9]+]]:_(s64) = COPY $x101515 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s64) = COPY $x111516 ; CHECK-NEXT: [[SEXT_INREG:%[0-9]+]]:_(s64) = G_SEXT_INREG [[COPY]], 321517 ; CHECK-NEXT: [[SEXT_INREG1:%[0-9]+]]:_(s64) = G_SEXT_INREG [[COPY1]], 321518 ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(s64) = G_ICMP intpred(eq), [[SEXT_INREG]](s64), [[SEXT_INREG1]]1519 ; CHECK-NEXT: $x10 = COPY [[ICMP]](s64)1520 ; CHECK-NEXT: PseudoRET implicit $x101521 %0:_(s64) = COPY $x101522 %1:_(s64) = COPY $x111523 %2:_(s32) = G_TRUNC %0(s64)1524 %3:_(s32) = G_TRUNC %1(s64)1525 %4:_(s1) = G_ICMP intpred(eq), %2(s32), %31526 %5:_(s64) = G_ANYEXT %4(s1)1527 $x10 = COPY %5(s64)1528 PseudoRET implicit $x101529 1530...1531---1532name: cmp_eq_i641533body: |1534 bb.0.entry:1535 ; CHECK-LABEL: name: cmp_eq_i641536 ; CHECK: [[COPY:%[0-9]+]]:_(s64) = COPY $x101537 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s64) = COPY $x111538 ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(s64) = G_ICMP intpred(eq), [[COPY]](s64), [[COPY1]]1539 ; CHECK-NEXT: $x10 = COPY [[ICMP]](s64)1540 ; CHECK-NEXT: PseudoRET implicit $x101541 %0:_(s64) = COPY $x101542 %1:_(s64) = COPY $x111543 %2:_(s1) = G_ICMP intpred(eq), %0(s64), %11544 %3:_(s64) = G_ANYEXT %2(s1)1545 $x10 = COPY %3(s64)1546 PseudoRET implicit $x101547 1548...1549---1550name: cmp_eq_i721551body: |1552 bb.0.entry:1553 ; CHECK-LABEL: name: cmp_eq_i721554 ; CHECK: %xhi:_(s64) = COPY $x101555 ; CHECK-NEXT: %xlo:_(s64) = COPY $x111556 ; CHECK-NEXT: %yhi:_(s64) = COPY $x121557 ; CHECK-NEXT: %ylo:_(s64) = COPY $x131558 ; CHECK-NEXT: [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 -11559 ; CHECK-NEXT: [[C1:%[0-9]+]]:_(s64) = G_CONSTANT i64 2551560 ; CHECK-NEXT: [[AND:%[0-9]+]]:_(s64) = G_AND %xhi, [[C]]1561 ; CHECK-NEXT: [[AND1:%[0-9]+]]:_(s64) = G_AND %xlo, [[C1]]1562 ; CHECK-NEXT: [[AND2:%[0-9]+]]:_(s64) = G_AND %yhi, [[C]]1563 ; CHECK-NEXT: [[AND3:%[0-9]+]]:_(s64) = G_AND %ylo, [[C1]]1564 ; CHECK-NEXT: [[C2:%[0-9]+]]:_(s64) = G_CONSTANT i64 01565 ; CHECK-NEXT: [[XOR:%[0-9]+]]:_(s64) = G_XOR [[AND]], [[AND2]]1566 ; CHECK-NEXT: [[XOR1:%[0-9]+]]:_(s64) = G_XOR [[AND1]], [[AND3]]1567 ; CHECK-NEXT: [[OR:%[0-9]+]]:_(s64) = G_OR [[XOR]], [[XOR1]]1568 ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(s64) = G_ICMP intpred(eq), [[OR]](s64), [[C2]]1569 ; CHECK-NEXT: $x10 = COPY [[ICMP]](s64)1570 ; CHECK-NEXT: PseudoRET implicit $x101571 %xhi:_(s64) = COPY $x101572 %xlo:_(s64) = COPY $x111573 %yhi:_(s64) = COPY $x121574 %ylo:_(s64) = COPY $x131575 %x0:_(s128) = G_MERGE_VALUES %xhi(s64), %xlo(s64)1576 %y0:_(s128) = G_MERGE_VALUES %yhi(s64), %ylo(s64)1577 %x:_(s72) = G_TRUNC %x0(s128)1578 %y:_(s72) = G_TRUNC %y0(s128)1579 %z:_(s1) = G_ICMP intpred(eq), %x, %y1580 %z0:_(s64) = G_ANYEXT %z(s1)1581 $x10 = COPY %z0(s64)1582 PseudoRET implicit $x101583 1584...1585---1586name: cmp_eq_i1281587body: |1588 bb.0.entry:1589 ; CHECK-LABEL: name: cmp_eq_i1281590 ; CHECK: %xhi:_(s64) = COPY $x101591 ; CHECK-NEXT: %xlo:_(s64) = COPY $x111592 ; CHECK-NEXT: %yhi:_(s64) = COPY $x121593 ; CHECK-NEXT: %ylo:_(s64) = COPY $x131594 ; CHECK-NEXT: [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 01595 ; CHECK-NEXT: [[XOR:%[0-9]+]]:_(s64) = G_XOR %xhi, %yhi1596 ; CHECK-NEXT: [[XOR1:%[0-9]+]]:_(s64) = G_XOR %xlo, %ylo1597 ; CHECK-NEXT: [[OR:%[0-9]+]]:_(s64) = G_OR [[XOR]], [[XOR1]]1598 ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(s64) = G_ICMP intpred(eq), [[OR]](s64), [[C]]1599 ; CHECK-NEXT: $x10 = COPY [[ICMP]](s64)1600 ; CHECK-NEXT: PseudoRET implicit $x101601 %xhi:_(s64) = COPY $x101602 %xlo:_(s64) = COPY $x111603 %yhi:_(s64) = COPY $x121604 %ylo:_(s64) = COPY $x131605 %x:_(s128) = G_MERGE_VALUES %xhi(s64), %xlo(s64)1606 %y:_(s128) = G_MERGE_VALUES %yhi(s64), %ylo(s64)1607 %z:_(s1) = G_ICMP intpred(eq), %x, %y1608 %z0:_(s64) = G_ANYEXT %z(s1)1609 $x10 = COPY %z0(s64)1610 PseudoRET implicit $x101611 1612...1613---1614name: cmp_ne_i81615body: |1616 bb.0.entry:1617 ; CHECK-LABEL: name: cmp_ne_i81618 ; CHECK: [[COPY:%[0-9]+]]:_(s64) = COPY $x101619 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s64) = COPY $x111620 ; CHECK-NEXT: [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 2551621 ; CHECK-NEXT: [[AND:%[0-9]+]]:_(s64) = G_AND [[COPY]], [[C]]1622 ; CHECK-NEXT: [[AND1:%[0-9]+]]:_(s64) = G_AND [[COPY1]], [[C]]1623 ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(s64) = G_ICMP intpred(ne), [[AND]](s64), [[AND1]]1624 ; CHECK-NEXT: $x10 = COPY [[ICMP]](s64)1625 ; CHECK-NEXT: PseudoRET implicit $x101626 %0:_(s64) = COPY $x101627 %1:_(s64) = COPY $x111628 %2:_(s8) = G_TRUNC %0(s64)1629 %3:_(s8) = G_TRUNC %1(s64)1630 %4:_(s1) = G_ICMP intpred(ne), %2(s8), %31631 %5:_(s64) = G_ANYEXT %4(s1)1632 $x10 = COPY %5(s64)1633 PseudoRET implicit $x101634 1635...1636---1637name: cmp_ne_i151638body: |1639 bb.0.entry:1640 ; CHECK-LABEL: name: cmp_ne_i151641 ; CHECK: [[COPY:%[0-9]+]]:_(s64) = COPY $x101642 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s64) = COPY $x111643 ; CHECK-NEXT: [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 327671644 ; CHECK-NEXT: [[AND:%[0-9]+]]:_(s64) = G_AND [[COPY]], [[C]]1645 ; CHECK-NEXT: [[AND1:%[0-9]+]]:_(s64) = G_AND [[COPY1]], [[C]]1646 ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(s64) = G_ICMP intpred(ne), [[AND]](s64), [[AND1]]1647 ; CHECK-NEXT: $x10 = COPY [[ICMP]](s64)1648 ; CHECK-NEXT: PseudoRET implicit $x101649 %0:_(s64) = COPY $x101650 %1:_(s64) = COPY $x111651 %2:_(s15) = G_TRUNC %0(s64)1652 %3:_(s15) = G_TRUNC %1(s64)1653 %4:_(s1) = G_ICMP intpred(ne), %2(s15), %31654 %5:_(s64) = G_ANYEXT %4(s1)1655 $x10 = COPY %5(s64)1656 PseudoRET implicit $x101657 1658...1659---1660name: cmp_ne_i161661body: |1662 bb.0.entry:1663 ; CHECK-LABEL: name: cmp_ne_i161664 ; CHECK: [[COPY:%[0-9]+]]:_(s64) = COPY $x101665 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s64) = COPY $x111666 ; CHECK-NEXT: [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 655351667 ; CHECK-NEXT: [[AND:%[0-9]+]]:_(s64) = G_AND [[COPY]], [[C]]1668 ; CHECK-NEXT: [[AND1:%[0-9]+]]:_(s64) = G_AND [[COPY1]], [[C]]1669 ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(s64) = G_ICMP intpred(ne), [[AND]](s64), [[AND1]]1670 ; CHECK-NEXT: $x10 = COPY [[ICMP]](s64)1671 ; CHECK-NEXT: PseudoRET implicit $x101672 %0:_(s64) = COPY $x101673 %1:_(s64) = COPY $x111674 %2:_(s16) = G_TRUNC %0(s64)1675 %3:_(s16) = G_TRUNC %1(s64)1676 %4:_(s1) = G_ICMP intpred(ne), %2(s16), %31677 %5:_(s64) = G_ANYEXT %4(s1)1678 $x10 = COPY %5(s64)1679 PseudoRET implicit $x101680 1681...1682---1683name: cmp_ne_i321684body: |1685 bb.0.entry:1686 ; CHECK-LABEL: name: cmp_ne_i321687 ; CHECK: [[COPY:%[0-9]+]]:_(s64) = COPY $x101688 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s64) = COPY $x111689 ; CHECK-NEXT: [[SEXT_INREG:%[0-9]+]]:_(s64) = G_SEXT_INREG [[COPY]], 321690 ; CHECK-NEXT: [[SEXT_INREG1:%[0-9]+]]:_(s64) = G_SEXT_INREG [[COPY1]], 321691 ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(s64) = G_ICMP intpred(ne), [[SEXT_INREG]](s64), [[SEXT_INREG1]]1692 ; CHECK-NEXT: $x10 = COPY [[ICMP]](s64)1693 ; CHECK-NEXT: PseudoRET implicit $x101694 %0:_(s64) = COPY $x101695 %1:_(s64) = COPY $x111696 %2:_(s32) = G_TRUNC %0(s64)1697 %3:_(s32) = G_TRUNC %1(s64)1698 %4:_(s1) = G_ICMP intpred(ne), %2(s32), %31699 %5:_(s64) = G_ANYEXT %4(s1)1700 $x10 = COPY %5(s64)1701 PseudoRET implicit $x101702 1703...1704---1705name: cmp_ne_i641706body: |1707 bb.0.entry:1708 ; CHECK-LABEL: name: cmp_ne_i641709 ; CHECK: [[COPY:%[0-9]+]]:_(s64) = COPY $x101710 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s64) = COPY $x111711 ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(s64) = G_ICMP intpred(ne), [[COPY]](s64), [[COPY1]]1712 ; CHECK-NEXT: $x10 = COPY [[ICMP]](s64)1713 ; CHECK-NEXT: PseudoRET implicit $x101714 %0:_(s64) = COPY $x101715 %1:_(s64) = COPY $x111716 %2:_(s1) = G_ICMP intpred(ne), %0(s64), %11717 %3:_(s64) = G_ANYEXT %2(s1)1718 $x10 = COPY %3(s64)1719 PseudoRET implicit $x101720 1721...1722---1723name: cmp_ne_i721724body: |1725 bb.0.entry:1726 ; CHECK-LABEL: name: cmp_ne_i721727 ; CHECK: %xhi:_(s64) = COPY $x101728 ; CHECK-NEXT: %xlo:_(s64) = COPY $x111729 ; CHECK-NEXT: %yhi:_(s64) = COPY $x121730 ; CHECK-NEXT: %ylo:_(s64) = COPY $x131731 ; CHECK-NEXT: [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 -11732 ; CHECK-NEXT: [[C1:%[0-9]+]]:_(s64) = G_CONSTANT i64 2551733 ; CHECK-NEXT: [[AND:%[0-9]+]]:_(s64) = G_AND %xhi, [[C]]1734 ; CHECK-NEXT: [[AND1:%[0-9]+]]:_(s64) = G_AND %xlo, [[C1]]1735 ; CHECK-NEXT: [[AND2:%[0-9]+]]:_(s64) = G_AND %yhi, [[C]]1736 ; CHECK-NEXT: [[AND3:%[0-9]+]]:_(s64) = G_AND %ylo, [[C1]]1737 ; CHECK-NEXT: [[C2:%[0-9]+]]:_(s64) = G_CONSTANT i64 01738 ; CHECK-NEXT: [[XOR:%[0-9]+]]:_(s64) = G_XOR [[AND]], [[AND2]]1739 ; CHECK-NEXT: [[XOR1:%[0-9]+]]:_(s64) = G_XOR [[AND1]], [[AND3]]1740 ; CHECK-NEXT: [[OR:%[0-9]+]]:_(s64) = G_OR [[XOR]], [[XOR1]]1741 ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(s64) = G_ICMP intpred(ne), [[OR]](s64), [[C2]]1742 ; CHECK-NEXT: $x10 = COPY [[ICMP]](s64)1743 ; CHECK-NEXT: PseudoRET implicit $x101744 %xhi:_(s64) = COPY $x101745 %xlo:_(s64) = COPY $x111746 %yhi:_(s64) = COPY $x121747 %ylo:_(s64) = COPY $x131748 %x0:_(s128) = G_MERGE_VALUES %xhi(s64), %xlo(s64)1749 %y0:_(s128) = G_MERGE_VALUES %yhi(s64), %ylo(s64)1750 %x:_(s72) = G_TRUNC %x0(s128)1751 %y:_(s72) = G_TRUNC %y0(s128)1752 %z:_(s1) = G_ICMP intpred(ne), %x, %y1753 %z0:_(s64) = G_ANYEXT %z(s1)1754 $x10 = COPY %z0(s64)1755 PseudoRET implicit $x101756 1757...1758---1759name: cmp_ne_i1281760body: |1761 bb.0.entry:1762 ; CHECK-LABEL: name: cmp_ne_i1281763 ; CHECK: %xhi:_(s64) = COPY $x101764 ; CHECK-NEXT: %xlo:_(s64) = COPY $x111765 ; CHECK-NEXT: %yhi:_(s64) = COPY $x121766 ; CHECK-NEXT: %ylo:_(s64) = COPY $x131767 ; CHECK-NEXT: [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 01768 ; CHECK-NEXT: [[XOR:%[0-9]+]]:_(s64) = G_XOR %xhi, %yhi1769 ; CHECK-NEXT: [[XOR1:%[0-9]+]]:_(s64) = G_XOR %xlo, %ylo1770 ; CHECK-NEXT: [[OR:%[0-9]+]]:_(s64) = G_OR [[XOR]], [[XOR1]]1771 ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(s64) = G_ICMP intpred(ne), [[OR]](s64), [[C]]1772 ; CHECK-NEXT: $x10 = COPY [[ICMP]](s64)1773 ; CHECK-NEXT: PseudoRET implicit $x101774 %xhi:_(s64) = COPY $x101775 %xlo:_(s64) = COPY $x111776 %yhi:_(s64) = COPY $x121777 %ylo:_(s64) = COPY $x131778 %x:_(s128) = G_MERGE_VALUES %xhi(s64), %xlo(s64)1779 %y:_(s128) = G_MERGE_VALUES %yhi(s64), %ylo(s64)1780 %z:_(s1) = G_ICMP intpred(ne), %x, %y1781 %z0:_(s64) = G_ANYEXT %z(s1)1782 $x10 = COPY %z0(s64)1783 PseudoRET implicit $x101784 1785...1786---1787name: cmp_ne_ptr1788body: |1789 bb.0.entry:1790 ; CHECK-LABEL: name: cmp_ne_ptr1791 ; CHECK: [[COPY:%[0-9]+]]:_(p0) = COPY $x101792 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(p0) = COPY $x111793 ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(s64) = G_ICMP intpred(ne), [[COPY]](p0), [[COPY1]]1794 ; CHECK-NEXT: $x10 = COPY [[ICMP]](s64)1795 ; CHECK-NEXT: PseudoRET implicit $x101796 %0:_(p0) = COPY $x101797 %1:_(p0) = COPY $x111798 %2:_(s1) = G_ICMP intpred(ne), %0(p0), %11799 %3:_(s64) = G_ANYEXT %2(s1)1800 $x10 = COPY %3(s64)1801 PseudoRET implicit $x101802 1803...1804