1483 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py2; RUN: llc -global-isel -mtriple aarch64 -aarch64-min-jump-table-entries=4 -O0 -aarch64-enable-atomic-cfg-tidy=0 -stop-after=irtranslator -simplify-mir -verify-machineinstrs %s -o - 2>&1 | FileCheck %s3 4define i32 @switch(i32 %argc) {5 ; CHECK-LABEL: name: switch6 ; CHECK: bb.1.entry:7 ; CHECK-NEXT: liveins: $w08 ; CHECK-NEXT: {{ $}}9 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $w010 ; CHECK-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 10011 ; CHECK-NEXT: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 20012 ; CHECK-NEXT: [[C2:%[0-9]+]]:_(s32) = G_CONSTANT i32 213 ; CHECK-NEXT: [[C3:%[0-9]+]]:_(s32) = G_CONSTANT i32 114 ; CHECK-NEXT: [[C4:%[0-9]+]]:_(s32) = G_CONSTANT i32 015 ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(s1) = G_ICMP intpred(eq), [[COPY]](s32), [[C]]16 ; CHECK-NEXT: G_BRCOND [[ICMP]](s1), %bb.317 ; CHECK-NEXT: G_BR %bb.618 ; CHECK-NEXT: {{ $}}19 ; CHECK-NEXT: bb.6.entry:20 ; CHECK-NEXT: [[ICMP1:%[0-9]+]]:_(s1) = G_ICMP intpred(eq), [[COPY]](s32), [[C1]]21 ; CHECK-NEXT: G_BRCOND [[ICMP1]](s1), %bb.422 ; CHECK-NEXT: G_BR %bb.223 ; CHECK-NEXT: {{ $}}24 ; CHECK-NEXT: bb.2.default:25 ; CHECK-NEXT: [[ADD:%[0-9]+]]:_(s32) = G_ADD [[COPY]], [[C4]]26 ; CHECK-NEXT: G_BR %bb.527 ; CHECK-NEXT: {{ $}}28 ; CHECK-NEXT: bb.3.case100:29 ; CHECK-NEXT: [[ADD1:%[0-9]+]]:_(s32) = G_ADD [[COPY]], [[C3]]30 ; CHECK-NEXT: G_BR %bb.531 ; CHECK-NEXT: {{ $}}32 ; CHECK-NEXT: bb.4.case200:33 ; CHECK-NEXT: [[ADD2:%[0-9]+]]:_(s32) = G_ADD [[COPY]], [[C2]]34 ; CHECK-NEXT: G_BR %bb.535 ; CHECK-NEXT: {{ $}}36 ; CHECK-NEXT: bb.5.return:37 ; CHECK-NEXT: [[PHI:%[0-9]+]]:_(s32) = G_PHI [[ADD]](s32), %bb.2, [[ADD1]](s32), %bb.3, [[ADD2]](s32), %bb.438 ; CHECK-NEXT: $w0 = COPY [[PHI]](s32)39 ; CHECK-NEXT: RET_ReallyLR implicit $w040entry:41 switch i32 %argc, label %default [42 i32 100, label %case10043 i32 200, label %case20044 ]45 46default:47 %tmp0 = add i32 %argc, 048 br label %return49 50case100:51 %tmp1 = add i32 %argc, 152 br label %return53 54case200:55 %tmp2 = add i32 %argc, 256 br label %return57 58return:59 %res = phi i32 [ %tmp0, %default ], [ %tmp1, %case100 ], [ %tmp2, %case200 ]60 ret i32 %res61}62 63define i32 @test_cfg_remap(i32 %in) {64 ; CHECK-LABEL: name: test_cfg_remap65 ; CHECK: bb.1.entry:66 ; CHECK-NEXT: liveins: $w067 ; CHECK-NEXT: {{ $}}68 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $w069 ; CHECK-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 170 ; CHECK-NEXT: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 5771 ; CHECK-NEXT: [[DEF:%[0-9]+]]:_(s32) = G_IMPLICIT_DEF72 ; CHECK-NEXT: [[C2:%[0-9]+]]:_(s32) = G_CONSTANT i32 4273 ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(s1) = G_ICMP intpred(eq), [[COPY]](s32), [[C]]74 ; CHECK-NEXT: G_BRCOND [[ICMP]](s1), %bb.275 ; CHECK-NEXT: G_BR %bb.576 ; CHECK-NEXT: {{ $}}77 ; CHECK-NEXT: bb.5.entry:78 ; CHECK-NEXT: [[ICMP1:%[0-9]+]]:_(s1) = G_ICMP intpred(eq), [[COPY]](s32), [[C1]]79 ; CHECK-NEXT: G_BRCOND [[ICMP1]](s1), %bb.380 ; CHECK-NEXT: G_BR %bb.481 ; CHECK-NEXT: {{ $}}82 ; CHECK-NEXT: bb.2.next:83 ; CHECK-NEXT: G_BR %bb.484 ; CHECK-NEXT: {{ $}}85 ; CHECK-NEXT: bb.3.other:86 ; CHECK-NEXT: $w0 = COPY [[DEF]](s32)87 ; CHECK-NEXT: RET_ReallyLR implicit $w088 ; CHECK-NEXT: {{ $}}89 ; CHECK-NEXT: bb.4.phi.block:90 ; CHECK-NEXT: [[PHI:%[0-9]+]]:_(s32) = G_PHI [[C]](s32), %bb.5, [[C2]](s32), %bb.291 ; CHECK-NEXT: $w0 = COPY [[PHI]](s32)92 ; CHECK-NEXT: RET_ReallyLR implicit $w093entry:94 switch i32 %in, label %phi.block [i32 1, label %next95 i32 57, label %other]96 97next:98 br label %phi.block99 100other:101 ret i32 undef102 103phi.block:104 %res = phi i32 [1, %entry], [42, %next]105 ret i32 %res106}107 108define i32 @test_cfg_remap_multiple_preds(i32 %in) {109 ; CHECK-LABEL: name: test_cfg_remap_multiple_preds110 ; CHECK: bb.1.entry:111 ; CHECK-NEXT: liveins: $w0112 ; CHECK-NEXT: {{ $}}113 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $w0114 ; CHECK-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 1115 ; CHECK-NEXT: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 57116 ; CHECK-NEXT: [[C2:%[0-9]+]]:_(s32) = G_CONSTANT i32 128117 ; CHECK-NEXT: [[DEF:%[0-9]+]]:_(s32) = G_IMPLICIT_DEF118 ; CHECK-NEXT: [[C3:%[0-9]+]]:_(s32) = G_CONSTANT i32 12119 ; CHECK-NEXT: [[C4:%[0-9]+]]:_(s32) = G_CONSTANT i32 42120 ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(s1) = G_ICMP intpred(eq), [[COPY]](s32), [[C]]121 ; CHECK-NEXT: G_BRCOND [[ICMP]](s1), %bb.3122 ; CHECK-NEXT: G_BR %bb.6123 ; CHECK-NEXT: {{ $}}124 ; CHECK-NEXT: bb.6.entry:125 ; CHECK-NEXT: [[ICMP1:%[0-9]+]]:_(s1) = G_ICMP intpred(eq), [[COPY]](s32), [[C1]]126 ; CHECK-NEXT: G_BRCOND [[ICMP1]](s1), %bb.4127 ; CHECK-NEXT: G_BR %bb.7128 ; CHECK-NEXT: {{ $}}129 ; CHECK-NEXT: bb.7.entry:130 ; CHECK-NEXT: [[ICMP2:%[0-9]+]]:_(s1) = G_ICMP intpred(eq), [[COPY]](s32), [[C2]]131 ; CHECK-NEXT: G_BRCOND [[ICMP2]](s1), %bb.5132 ; CHECK-NEXT: G_BR %bb.8133 ; CHECK-NEXT: {{ $}}134 ; CHECK-NEXT: bb.8.entry:135 ; CHECK-NEXT: G_BR %bb.5136 ; CHECK-NEXT: {{ $}}137 ; CHECK-NEXT: bb.2.odd:138 ; CHECK-NEXT: successors:139 ; CHECK-NEXT: {{ $}}140 ; CHECK-NEXT: bb.3.next:141 ; CHECK-NEXT: G_BR %bb.5142 ; CHECK-NEXT: {{ $}}143 ; CHECK-NEXT: bb.4.other:144 ; CHECK-NEXT: $w0 = COPY [[DEF]](s32)145 ; CHECK-NEXT: RET_ReallyLR implicit $w0146 ; CHECK-NEXT: {{ $}}147 ; CHECK-NEXT: bb.5.phi.block:148 ; CHECK-NEXT: [[PHI:%[0-9]+]]:_(s32) = G_PHI [[C]](s32), %bb.7, [[C]](s32), %bb.8, [[C4]](s32), %bb.3149 ; CHECK-NEXT: $w0 = COPY [[C3]](s32)150 ; CHECK-NEXT: RET_ReallyLR implicit $w0151entry:152 switch i32 %in, label %odd [i32 1, label %next153 i32 57, label %other154 i32 128, label %phi.block155 i32 256, label %phi.block]156odd:157 unreachable158 159next:160 br label %phi.block161 162other:163 ret i32 undef164 165phi.block:166 %res = phi i32 [1, %entry], [1, %entry], [42, %next]167 ret i32 12168}169 170define i32 @jt_test(i32 %x) {171 ; CHECK-LABEL: name: jt_test172 ; CHECK: bb.1.entry:173 ; CHECK-NEXT: liveins: $w0174 ; CHECK-NEXT: {{ $}}175 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $w0176 ; CHECK-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 71177 ; CHECK-NEXT: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 3178 ; CHECK-NEXT: [[C2:%[0-9]+]]:_(s32) = G_CONSTANT i32 42179 ; CHECK-NEXT: [[C3:%[0-9]+]]:_(s32) = G_CONSTANT i32 0180 ; CHECK-NEXT: [[C4:%[0-9]+]]:_(s32) = G_CONSTANT i32 4181 ; CHECK-NEXT: [[SUB:%[0-9]+]]:_(s32) = G_SUB [[COPY]], [[C4]]182 ; CHECK-NEXT: [[ZEXT:%[0-9]+]]:_(s64) = G_ZEXT [[SUB]](s32)183 ; CHECK-NEXT: [[ZEXT1:%[0-9]+]]:_(s64) = G_ZEXT [[C]](s32)184 ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(s1) = G_ICMP intpred(ugt), [[ZEXT]](s64), [[ZEXT1]]185 ; CHECK-NEXT: G_BRCOND [[ICMP]](s1), %bb.4186 ; CHECK-NEXT: {{ $}}187 ; CHECK-NEXT: bb.5.entry:188 ; CHECK-NEXT: successors: %bb.3, %bb.4, %bb.2189 ; CHECK-NEXT: {{ $}}190 ; CHECK-NEXT: [[JUMP_TABLE:%[0-9]+]]:_(p0) = G_JUMP_TABLE %jump-table.0191 ; CHECK-NEXT: G_BRJT [[JUMP_TABLE]](p0), %jump-table.0, [[ZEXT]](s64)192 ; CHECK-NEXT: {{ $}}193 ; CHECK-NEXT: bb.2.sw.bb:194 ; CHECK-NEXT: [[ADD:%[0-9]+]]:_(s32) = nsw G_ADD [[COPY]], [[C2]]195 ; CHECK-NEXT: G_BR %bb.4196 ; CHECK-NEXT: {{ $}}197 ; CHECK-NEXT: bb.3.sw.bb1:198 ; CHECK-NEXT: [[MUL:%[0-9]+]]:_(s32) = nsw G_MUL [[COPY]], [[C1]]199 ; CHECK-NEXT: G_BR %bb.4200 ; CHECK-NEXT: {{ $}}201 ; CHECK-NEXT: bb.4.return:202 ; CHECK-NEXT: [[PHI:%[0-9]+]]:_(s32) = G_PHI [[MUL]](s32), %bb.3, [[ADD]](s32), %bb.2, [[C3]](s32), %bb.1, [[C3]](s32), %bb.5203 ; CHECK-NEXT: $w0 = COPY [[PHI]](s32)204 ; CHECK-NEXT: RET_ReallyLR implicit $w0205entry:206 switch i32 %x, label %return [207 i32 75, label %sw.bb208 i32 34, label %sw.bb209 i32 56, label %sw.bb210 i32 35, label %sw.bb211 i32 40, label %sw.bb212 i32 4, label %sw.bb1213 i32 5, label %sw.bb1214 i32 6, label %sw.bb1215 ]216 217sw.bb:218 %add = add nsw i32 %x, 42219 br label %return220 221sw.bb1:222 %mul = mul nsw i32 %x, 3223 br label %return224 225return:226 %retval.0 = phi i32 [ %mul, %sw.bb1 ], [ %add, %sw.bb ], [ 0, %entry ]227 ret i32 %retval.0228}229 230%0 = type { i32, ptr }231%1 = type { ptr, i32, i32 }232 233@global = external hidden constant [55 x %0], align 8234 235define void @jt_multiple_jump_tables(ptr %arg, i32 %arg1, ptr %arg2) {236 ; CHECK-LABEL: name: jt_multiple_jump_tables237 ; CHECK: bb.1.bb:238 ; CHECK-NEXT: liveins: $w1, $x0, $x2239 ; CHECK-NEXT: {{ $}}240 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(p0) = COPY $x0241 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $w1242 ; CHECK-NEXT: [[COPY2:%[0-9]+]]:_(p0) = COPY $x2243 ; CHECK-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 3244 ; CHECK-NEXT: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 4245 ; CHECK-NEXT: [[C2:%[0-9]+]]:_(s32) = G_CONSTANT i32 6246 ; CHECK-NEXT: [[C3:%[0-9]+]]:_(s32) = G_CONSTANT i32 7247 ; CHECK-NEXT: [[C4:%[0-9]+]]:_(s32) = G_CONSTANT i32 8248 ; CHECK-NEXT: [[C5:%[0-9]+]]:_(s32) = G_CONSTANT i32 9249 ; CHECK-NEXT: [[C6:%[0-9]+]]:_(s32) = G_CONSTANT i32 10250 ; CHECK-NEXT: [[C7:%[0-9]+]]:_(s32) = G_CONSTANT i32 11251 ; CHECK-NEXT: [[C8:%[0-9]+]]:_(s32) = G_CONSTANT i32 12252 ; CHECK-NEXT: [[C9:%[0-9]+]]:_(s32) = G_CONSTANT i32 13253 ; CHECK-NEXT: [[C10:%[0-9]+]]:_(s32) = G_CONSTANT i32 14254 ; CHECK-NEXT: [[C11:%[0-9]+]]:_(s32) = G_CONSTANT i32 15255 ; CHECK-NEXT: [[C12:%[0-9]+]]:_(s32) = G_CONSTANT i32 16256 ; CHECK-NEXT: [[C13:%[0-9]+]]:_(s32) = G_CONSTANT i32 17257 ; CHECK-NEXT: [[C14:%[0-9]+]]:_(s32) = G_CONSTANT i32 18258 ; CHECK-NEXT: [[C15:%[0-9]+]]:_(s32) = G_CONSTANT i32 19259 ; CHECK-NEXT: [[C16:%[0-9]+]]:_(s32) = G_CONSTANT i32 20260 ; CHECK-NEXT: [[C17:%[0-9]+]]:_(s32) = G_CONSTANT i32 21261 ; CHECK-NEXT: [[C18:%[0-9]+]]:_(s32) = G_CONSTANT i32 22262 ; CHECK-NEXT: [[C19:%[0-9]+]]:_(s32) = G_CONSTANT i32 23263 ; CHECK-NEXT: [[C20:%[0-9]+]]:_(s32) = G_CONSTANT i32 24264 ; CHECK-NEXT: [[C21:%[0-9]+]]:_(s32) = G_CONSTANT i32 25265 ; CHECK-NEXT: [[C22:%[0-9]+]]:_(s32) = G_CONSTANT i32 26266 ; CHECK-NEXT: [[C23:%[0-9]+]]:_(s32) = G_CONSTANT i32 27267 ; CHECK-NEXT: [[C24:%[0-9]+]]:_(s32) = G_CONSTANT i32 28268 ; CHECK-NEXT: [[C25:%[0-9]+]]:_(s32) = G_CONSTANT i32 29269 ; CHECK-NEXT: [[C26:%[0-9]+]]:_(s32) = G_CONSTANT i32 30270 ; CHECK-NEXT: [[C27:%[0-9]+]]:_(s32) = G_CONSTANT i32 31271 ; CHECK-NEXT: [[C28:%[0-9]+]]:_(s32) = G_CONSTANT i32 32272 ; CHECK-NEXT: [[C29:%[0-9]+]]:_(s32) = G_CONSTANT i32 33273 ; CHECK-NEXT: [[C30:%[0-9]+]]:_(s32) = G_CONSTANT i32 34274 ; CHECK-NEXT: [[C31:%[0-9]+]]:_(s32) = G_CONSTANT i32 35275 ; CHECK-NEXT: [[C32:%[0-9]+]]:_(s32) = G_CONSTANT i32 36276 ; CHECK-NEXT: [[C33:%[0-9]+]]:_(s32) = G_CONSTANT i32 37277 ; CHECK-NEXT: [[C34:%[0-9]+]]:_(s32) = G_CONSTANT i32 38278 ; CHECK-NEXT: [[C35:%[0-9]+]]:_(s32) = G_CONSTANT i32 39279 ; CHECK-NEXT: [[C36:%[0-9]+]]:_(s32) = G_CONSTANT i32 41280 ; CHECK-NEXT: [[C37:%[0-9]+]]:_(s32) = G_CONSTANT i32 42281 ; CHECK-NEXT: [[C38:%[0-9]+]]:_(s32) = G_CONSTANT i32 43282 ; CHECK-NEXT: [[C39:%[0-9]+]]:_(s32) = G_CONSTANT i32 44283 ; CHECK-NEXT: [[C40:%[0-9]+]]:_(s32) = G_CONSTANT i32 45284 ; CHECK-NEXT: [[C41:%[0-9]+]]:_(s32) = G_CONSTANT i32 46285 ; CHECK-NEXT: [[C42:%[0-9]+]]:_(s32) = G_CONSTANT i32 47286 ; CHECK-NEXT: [[C43:%[0-9]+]]:_(s32) = G_CONSTANT i32 48287 ; CHECK-NEXT: [[C44:%[0-9]+]]:_(s32) = G_CONSTANT i32 49288 ; CHECK-NEXT: [[C45:%[0-9]+]]:_(s32) = G_CONSTANT i32 50289 ; CHECK-NEXT: [[C46:%[0-9]+]]:_(s32) = G_CONSTANT i32 51290 ; CHECK-NEXT: [[C47:%[0-9]+]]:_(s32) = G_CONSTANT i32 52291 ; CHECK-NEXT: [[C48:%[0-9]+]]:_(s32) = G_CONSTANT i32 53292 ; CHECK-NEXT: [[C49:%[0-9]+]]:_(s32) = G_CONSTANT i32 54293 ; CHECK-NEXT: [[C50:%[0-9]+]]:_(s32) = G_CONSTANT i32 55294 ; CHECK-NEXT: [[C51:%[0-9]+]]:_(s32) = G_CONSTANT i32 4352295 ; CHECK-NEXT: [[C52:%[0-9]+]]:_(s32) = G_CONSTANT i32 4353296 ; CHECK-NEXT: [[C53:%[0-9]+]]:_(s32) = G_CONSTANT i32 4354297 ; CHECK-NEXT: [[C54:%[0-9]+]]:_(s32) = G_CONSTANT i32 4355298 ; CHECK-NEXT: [[GV:%[0-9]+]]:_(p0) = G_GLOBAL_VALUE @global299 ; CHECK-NEXT: [[C55:%[0-9]+]]:_(p0) = G_CONSTANT i64 0300 ; CHECK-NEXT: [[C56:%[0-9]+]]:_(s64) = G_CONSTANT i64 0301 ; CHECK-NEXT: [[C57:%[0-9]+]]:_(s64) = G_CONSTANT i64 1302 ; CHECK-NEXT: [[C58:%[0-9]+]]:_(s64) = G_CONSTANT i64 2303 ; CHECK-NEXT: [[C59:%[0-9]+]]:_(s64) = G_CONSTANT i64 3304 ; CHECK-NEXT: [[C60:%[0-9]+]]:_(s64) = G_CONSTANT i64 4305 ; CHECK-NEXT: [[C61:%[0-9]+]]:_(s64) = G_CONSTANT i64 5306 ; CHECK-NEXT: [[C62:%[0-9]+]]:_(s64) = G_CONSTANT i64 6307 ; CHECK-NEXT: [[C63:%[0-9]+]]:_(s64) = G_CONSTANT i64 7308 ; CHECK-NEXT: [[C64:%[0-9]+]]:_(s64) = G_CONSTANT i64 8309 ; CHECK-NEXT: [[C65:%[0-9]+]]:_(s64) = G_CONSTANT i64 9310 ; CHECK-NEXT: [[C66:%[0-9]+]]:_(s64) = G_CONSTANT i64 10311 ; CHECK-NEXT: [[C67:%[0-9]+]]:_(s64) = G_CONSTANT i64 11312 ; CHECK-NEXT: [[C68:%[0-9]+]]:_(s64) = G_CONSTANT i64 12313 ; CHECK-NEXT: [[C69:%[0-9]+]]:_(s64) = G_CONSTANT i64 13314 ; CHECK-NEXT: [[C70:%[0-9]+]]:_(s64) = G_CONSTANT i64 14315 ; CHECK-NEXT: [[C71:%[0-9]+]]:_(s64) = G_CONSTANT i64 15316 ; CHECK-NEXT: [[C72:%[0-9]+]]:_(s64) = G_CONSTANT i64 16317 ; CHECK-NEXT: [[C73:%[0-9]+]]:_(s64) = G_CONSTANT i64 17318 ; CHECK-NEXT: [[C74:%[0-9]+]]:_(s64) = G_CONSTANT i64 18319 ; CHECK-NEXT: [[C75:%[0-9]+]]:_(s64) = G_CONSTANT i64 19320 ; CHECK-NEXT: [[C76:%[0-9]+]]:_(s64) = G_CONSTANT i64 20321 ; CHECK-NEXT: [[C77:%[0-9]+]]:_(s64) = G_CONSTANT i64 21322 ; CHECK-NEXT: [[C78:%[0-9]+]]:_(s64) = G_CONSTANT i64 22323 ; CHECK-NEXT: [[C79:%[0-9]+]]:_(s64) = G_CONSTANT i64 23324 ; CHECK-NEXT: [[C80:%[0-9]+]]:_(s64) = G_CONSTANT i64 24325 ; CHECK-NEXT: [[C81:%[0-9]+]]:_(s64) = G_CONSTANT i64 25326 ; CHECK-NEXT: [[C82:%[0-9]+]]:_(s64) = G_CONSTANT i64 26327 ; CHECK-NEXT: [[C83:%[0-9]+]]:_(s64) = G_CONSTANT i64 27328 ; CHECK-NEXT: [[C84:%[0-9]+]]:_(s64) = G_CONSTANT i64 28329 ; CHECK-NEXT: [[C85:%[0-9]+]]:_(s64) = G_CONSTANT i64 29330 ; CHECK-NEXT: [[C86:%[0-9]+]]:_(s64) = G_CONSTANT i64 30331 ; CHECK-NEXT: [[C87:%[0-9]+]]:_(s64) = G_CONSTANT i64 31332 ; CHECK-NEXT: [[C88:%[0-9]+]]:_(s64) = G_CONSTANT i64 32333 ; CHECK-NEXT: [[C89:%[0-9]+]]:_(s64) = G_CONSTANT i64 33334 ; CHECK-NEXT: [[C90:%[0-9]+]]:_(s64) = G_CONSTANT i64 34335 ; CHECK-NEXT: [[C91:%[0-9]+]]:_(s64) = G_CONSTANT i64 35336 ; CHECK-NEXT: [[C92:%[0-9]+]]:_(s64) = G_CONSTANT i64 36337 ; CHECK-NEXT: [[C93:%[0-9]+]]:_(s64) = G_CONSTANT i64 37338 ; CHECK-NEXT: [[C94:%[0-9]+]]:_(s64) = G_CONSTANT i64 38339 ; CHECK-NEXT: [[C95:%[0-9]+]]:_(s64) = G_CONSTANT i64 39340 ; CHECK-NEXT: [[C96:%[0-9]+]]:_(s64) = G_CONSTANT i64 40341 ; CHECK-NEXT: [[C97:%[0-9]+]]:_(s64) = G_CONSTANT i64 41342 ; CHECK-NEXT: [[C98:%[0-9]+]]:_(s64) = G_CONSTANT i64 42343 ; CHECK-NEXT: [[C99:%[0-9]+]]:_(s64) = G_CONSTANT i64 43344 ; CHECK-NEXT: [[C100:%[0-9]+]]:_(s64) = G_CONSTANT i64 44345 ; CHECK-NEXT: [[C101:%[0-9]+]]:_(s64) = G_CONSTANT i64 45346 ; CHECK-NEXT: [[C102:%[0-9]+]]:_(s64) = G_CONSTANT i64 46347 ; CHECK-NEXT: [[C103:%[0-9]+]]:_(s64) = G_CONSTANT i64 47348 ; CHECK-NEXT: [[C104:%[0-9]+]]:_(s64) = G_CONSTANT i64 48349 ; CHECK-NEXT: [[C105:%[0-9]+]]:_(s64) = G_CONSTANT i64 49350 ; CHECK-NEXT: [[C106:%[0-9]+]]:_(s64) = G_CONSTANT i64 50351 ; CHECK-NEXT: [[C107:%[0-9]+]]:_(s64) = G_CONSTANT i64 51352 ; CHECK-NEXT: [[C108:%[0-9]+]]:_(s64) = G_CONSTANT i64 52353 ; CHECK-NEXT: [[C109:%[0-9]+]]:_(s64) = G_CONSTANT i64 53354 ; CHECK-NEXT: [[C110:%[0-9]+]]:_(s64) = G_CONSTANT i64 54355 ; CHECK-NEXT: [[FRAME_INDEX:%[0-9]+]]:_(p0) = G_FRAME_INDEX %stack.0.tmp356 ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(s1) = G_ICMP intpred(eq), [[COPY1]](s32), [[C]]357 ; CHECK-NEXT: G_BRCOND [[ICMP]](s1), %bb.56358 ; CHECK-NEXT: G_BR %bb.61359 ; CHECK-NEXT: {{ $}}360 ; CHECK-NEXT: bb.61.bb:361 ; CHECK-NEXT: [[ICMP1:%[0-9]+]]:_(s1) = G_ICMP intpred(eq), [[COPY1]](s32), [[C1]]362 ; CHECK-NEXT: G_BRCOND [[ICMP1]](s1), %bb.2363 ; CHECK-NEXT: G_BR %bb.62364 ; CHECK-NEXT: {{ $}}365 ; CHECK-NEXT: bb.62.bb:366 ; CHECK-NEXT: [[ICMP2:%[0-9]+]]:_(s1) = G_ICMP intpred(eq), [[COPY1]](s32), [[C2]]367 ; CHECK-NEXT: G_BRCOND [[ICMP2]](s1), %bb.3368 ; CHECK-NEXT: G_BR %bb.63369 ; CHECK-NEXT: {{ $}}370 ; CHECK-NEXT: bb.63.bb:371 ; CHECK-NEXT: [[ICMP3:%[0-9]+]]:_(s1) = G_ICMP intpred(eq), [[COPY1]](s32), [[C3]]372 ; CHECK-NEXT: G_BRCOND [[ICMP3]](s1), %bb.4373 ; CHECK-NEXT: G_BR %bb.64374 ; CHECK-NEXT: {{ $}}375 ; CHECK-NEXT: bb.64.bb:376 ; CHECK-NEXT: [[ICMP4:%[0-9]+]]:_(s1) = G_ICMP intpred(eq), [[COPY1]](s32), [[C4]]377 ; CHECK-NEXT: G_BRCOND [[ICMP4]](s1), %bb.5378 ; CHECK-NEXT: G_BR %bb.65379 ; CHECK-NEXT: {{ $}}380 ; CHECK-NEXT: bb.65.bb:381 ; CHECK-NEXT: [[ICMP5:%[0-9]+]]:_(s1) = G_ICMP intpred(eq), [[COPY1]](s32), [[C5]]382 ; CHECK-NEXT: G_BRCOND [[ICMP5]](s1), %bb.6383 ; CHECK-NEXT: G_BR %bb.66384 ; CHECK-NEXT: {{ $}}385 ; CHECK-NEXT: bb.66.bb:386 ; CHECK-NEXT: [[ICMP6:%[0-9]+]]:_(s1) = G_ICMP intpred(eq), [[COPY1]](s32), [[C6]]387 ; CHECK-NEXT: G_BRCOND [[ICMP6]](s1), %bb.7388 ; CHECK-NEXT: G_BR %bb.67389 ; CHECK-NEXT: {{ $}}390 ; CHECK-NEXT: bb.67.bb:391 ; CHECK-NEXT: [[ICMP7:%[0-9]+]]:_(s1) = G_ICMP intpred(eq), [[COPY1]](s32), [[C7]]392 ; CHECK-NEXT: G_BRCOND [[ICMP7]](s1), %bb.8393 ; CHECK-NEXT: G_BR %bb.68394 ; CHECK-NEXT: {{ $}}395 ; CHECK-NEXT: bb.68.bb:396 ; CHECK-NEXT: [[ICMP8:%[0-9]+]]:_(s1) = G_ICMP intpred(eq), [[COPY1]](s32), [[C8]]397 ; CHECK-NEXT: G_BRCOND [[ICMP8]](s1), %bb.9398 ; CHECK-NEXT: G_BR %bb.69399 ; CHECK-NEXT: {{ $}}400 ; CHECK-NEXT: bb.69.bb:401 ; CHECK-NEXT: [[ICMP9:%[0-9]+]]:_(s1) = G_ICMP intpred(eq), [[COPY1]](s32), [[C9]]402 ; CHECK-NEXT: G_BRCOND [[ICMP9]](s1), %bb.10403 ; CHECK-NEXT: G_BR %bb.70404 ; CHECK-NEXT: {{ $}}405 ; CHECK-NEXT: bb.70.bb:406 ; CHECK-NEXT: [[ICMP10:%[0-9]+]]:_(s1) = G_ICMP intpred(eq), [[COPY1]](s32), [[C10]]407 ; CHECK-NEXT: G_BRCOND [[ICMP10]](s1), %bb.11408 ; CHECK-NEXT: G_BR %bb.71409 ; CHECK-NEXT: {{ $}}410 ; CHECK-NEXT: bb.71.bb:411 ; CHECK-NEXT: [[ICMP11:%[0-9]+]]:_(s1) = G_ICMP intpred(eq), [[COPY1]](s32), [[C11]]412 ; CHECK-NEXT: G_BRCOND [[ICMP11]](s1), %bb.12413 ; CHECK-NEXT: G_BR %bb.72414 ; CHECK-NEXT: {{ $}}415 ; CHECK-NEXT: bb.72.bb:416 ; CHECK-NEXT: [[ICMP12:%[0-9]+]]:_(s1) = G_ICMP intpred(eq), [[COPY1]](s32), [[C12]]417 ; CHECK-NEXT: G_BRCOND [[ICMP12]](s1), %bb.13418 ; CHECK-NEXT: G_BR %bb.73419 ; CHECK-NEXT: {{ $}}420 ; CHECK-NEXT: bb.73.bb:421 ; CHECK-NEXT: [[ICMP13:%[0-9]+]]:_(s1) = G_ICMP intpred(eq), [[COPY1]](s32), [[C13]]422 ; CHECK-NEXT: G_BRCOND [[ICMP13]](s1), %bb.14423 ; CHECK-NEXT: G_BR %bb.74424 ; CHECK-NEXT: {{ $}}425 ; CHECK-NEXT: bb.74.bb:426 ; CHECK-NEXT: [[ICMP14:%[0-9]+]]:_(s1) = G_ICMP intpred(eq), [[COPY1]](s32), [[C14]]427 ; CHECK-NEXT: G_BRCOND [[ICMP14]](s1), %bb.15428 ; CHECK-NEXT: G_BR %bb.75429 ; CHECK-NEXT: {{ $}}430 ; CHECK-NEXT: bb.75.bb:431 ; CHECK-NEXT: [[ICMP15:%[0-9]+]]:_(s1) = G_ICMP intpred(eq), [[COPY1]](s32), [[C15]]432 ; CHECK-NEXT: G_BRCOND [[ICMP15]](s1), %bb.16433 ; CHECK-NEXT: G_BR %bb.76434 ; CHECK-NEXT: {{ $}}435 ; CHECK-NEXT: bb.76.bb:436 ; CHECK-NEXT: [[ICMP16:%[0-9]+]]:_(s1) = G_ICMP intpred(eq), [[COPY1]](s32), [[C16]]437 ; CHECK-NEXT: G_BRCOND [[ICMP16]](s1), %bb.17438 ; CHECK-NEXT: G_BR %bb.77439 ; CHECK-NEXT: {{ $}}440 ; CHECK-NEXT: bb.77.bb:441 ; CHECK-NEXT: [[ICMP17:%[0-9]+]]:_(s1) = G_ICMP intpred(eq), [[COPY1]](s32), [[C17]]442 ; CHECK-NEXT: G_BRCOND [[ICMP17]](s1), %bb.18443 ; CHECK-NEXT: G_BR %bb.78444 ; CHECK-NEXT: {{ $}}445 ; CHECK-NEXT: bb.78.bb:446 ; CHECK-NEXT: [[ICMP18:%[0-9]+]]:_(s1) = G_ICMP intpred(eq), [[COPY1]](s32), [[C18]]447 ; CHECK-NEXT: G_BRCOND [[ICMP18]](s1), %bb.19448 ; CHECK-NEXT: G_BR %bb.79449 ; CHECK-NEXT: {{ $}}450 ; CHECK-NEXT: bb.79.bb:451 ; CHECK-NEXT: [[ICMP19:%[0-9]+]]:_(s1) = G_ICMP intpred(eq), [[COPY1]](s32), [[C19]]452 ; CHECK-NEXT: G_BRCOND [[ICMP19]](s1), %bb.20453 ; CHECK-NEXT: G_BR %bb.80454 ; CHECK-NEXT: {{ $}}455 ; CHECK-NEXT: bb.80.bb:456 ; CHECK-NEXT: [[ICMP20:%[0-9]+]]:_(s1) = G_ICMP intpred(eq), [[COPY1]](s32), [[C20]]457 ; CHECK-NEXT: G_BRCOND [[ICMP20]](s1), %bb.21458 ; CHECK-NEXT: G_BR %bb.81459 ; CHECK-NEXT: {{ $}}460 ; CHECK-NEXT: bb.81.bb:461 ; CHECK-NEXT: [[ICMP21:%[0-9]+]]:_(s1) = G_ICMP intpred(eq), [[COPY1]](s32), [[C21]]462 ; CHECK-NEXT: G_BRCOND [[ICMP21]](s1), %bb.22463 ; CHECK-NEXT: G_BR %bb.82464 ; CHECK-NEXT: {{ $}}465 ; CHECK-NEXT: bb.82.bb:466 ; CHECK-NEXT: [[ICMP22:%[0-9]+]]:_(s1) = G_ICMP intpred(eq), [[COPY1]](s32), [[C22]]467 ; CHECK-NEXT: G_BRCOND [[ICMP22]](s1), %bb.23468 ; CHECK-NEXT: G_BR %bb.83469 ; CHECK-NEXT: {{ $}}470 ; CHECK-NEXT: bb.83.bb:471 ; CHECK-NEXT: [[ICMP23:%[0-9]+]]:_(s1) = G_ICMP intpred(eq), [[COPY1]](s32), [[C23]]472 ; CHECK-NEXT: G_BRCOND [[ICMP23]](s1), %bb.24473 ; CHECK-NEXT: G_BR %bb.84474 ; CHECK-NEXT: {{ $}}475 ; CHECK-NEXT: bb.84.bb:476 ; CHECK-NEXT: [[ICMP24:%[0-9]+]]:_(s1) = G_ICMP intpred(eq), [[COPY1]](s32), [[C24]]477 ; CHECK-NEXT: G_BRCOND [[ICMP24]](s1), %bb.25478 ; CHECK-NEXT: G_BR %bb.85479 ; CHECK-NEXT: {{ $}}480 ; CHECK-NEXT: bb.85.bb:481 ; CHECK-NEXT: [[ICMP25:%[0-9]+]]:_(s1) = G_ICMP intpred(eq), [[COPY1]](s32), [[C25]]482 ; CHECK-NEXT: G_BRCOND [[ICMP25]](s1), %bb.26483 ; CHECK-NEXT: G_BR %bb.86484 ; CHECK-NEXT: {{ $}}485 ; CHECK-NEXT: bb.86.bb:486 ; CHECK-NEXT: [[ICMP26:%[0-9]+]]:_(s1) = G_ICMP intpred(eq), [[COPY1]](s32), [[C26]]487 ; CHECK-NEXT: G_BRCOND [[ICMP26]](s1), %bb.27488 ; CHECK-NEXT: G_BR %bb.87489 ; CHECK-NEXT: {{ $}}490 ; CHECK-NEXT: bb.87.bb:491 ; CHECK-NEXT: [[ICMP27:%[0-9]+]]:_(s1) = G_ICMP intpred(eq), [[COPY1]](s32), [[C27]]492 ; CHECK-NEXT: G_BRCOND [[ICMP27]](s1), %bb.28493 ; CHECK-NEXT: G_BR %bb.88494 ; CHECK-NEXT: {{ $}}495 ; CHECK-NEXT: bb.88.bb:496 ; CHECK-NEXT: [[ICMP28:%[0-9]+]]:_(s1) = G_ICMP intpred(eq), [[COPY1]](s32), [[C28]]497 ; CHECK-NEXT: G_BRCOND [[ICMP28]](s1), %bb.29498 ; CHECK-NEXT: G_BR %bb.89499 ; CHECK-NEXT: {{ $}}500 ; CHECK-NEXT: bb.89.bb:501 ; CHECK-NEXT: [[ICMP29:%[0-9]+]]:_(s1) = G_ICMP intpred(eq), [[COPY1]](s32), [[C29]]502 ; CHECK-NEXT: G_BRCOND [[ICMP29]](s1), %bb.30503 ; CHECK-NEXT: G_BR %bb.90504 ; CHECK-NEXT: {{ $}}505 ; CHECK-NEXT: bb.90.bb:506 ; CHECK-NEXT: [[ICMP30:%[0-9]+]]:_(s1) = G_ICMP intpred(eq), [[COPY1]](s32), [[C30]]507 ; CHECK-NEXT: G_BRCOND [[ICMP30]](s1), %bb.31508 ; CHECK-NEXT: G_BR %bb.91509 ; CHECK-NEXT: {{ $}}510 ; CHECK-NEXT: bb.91.bb:511 ; CHECK-NEXT: [[ICMP31:%[0-9]+]]:_(s1) = G_ICMP intpred(eq), [[COPY1]](s32), [[C31]]512 ; CHECK-NEXT: G_BRCOND [[ICMP31]](s1), %bb.32513 ; CHECK-NEXT: G_BR %bb.92514 ; CHECK-NEXT: {{ $}}515 ; CHECK-NEXT: bb.92.bb:516 ; CHECK-NEXT: [[ICMP32:%[0-9]+]]:_(s1) = G_ICMP intpred(eq), [[COPY1]](s32), [[C32]]517 ; CHECK-NEXT: G_BRCOND [[ICMP32]](s1), %bb.33518 ; CHECK-NEXT: G_BR %bb.93519 ; CHECK-NEXT: {{ $}}520 ; CHECK-NEXT: bb.93.bb:521 ; CHECK-NEXT: [[ICMP33:%[0-9]+]]:_(s1) = G_ICMP intpred(eq), [[COPY1]](s32), [[C33]]522 ; CHECK-NEXT: G_BRCOND [[ICMP33]](s1), %bb.34523 ; CHECK-NEXT: G_BR %bb.94524 ; CHECK-NEXT: {{ $}}525 ; CHECK-NEXT: bb.94.bb:526 ; CHECK-NEXT: [[ICMP34:%[0-9]+]]:_(s1) = G_ICMP intpred(eq), [[COPY1]](s32), [[C34]]527 ; CHECK-NEXT: G_BRCOND [[ICMP34]](s1), %bb.35528 ; CHECK-NEXT: G_BR %bb.95529 ; CHECK-NEXT: {{ $}}530 ; CHECK-NEXT: bb.95.bb:531 ; CHECK-NEXT: [[ICMP35:%[0-9]+]]:_(s1) = G_ICMP intpred(eq), [[COPY1]](s32), [[C35]]532 ; CHECK-NEXT: G_BRCOND [[ICMP35]](s1), %bb.36533 ; CHECK-NEXT: G_BR %bb.96534 ; CHECK-NEXT: {{ $}}535 ; CHECK-NEXT: bb.96.bb:536 ; CHECK-NEXT: [[ICMP36:%[0-9]+]]:_(s1) = G_ICMP intpred(eq), [[COPY1]](s32), [[C36]]537 ; CHECK-NEXT: G_BRCOND [[ICMP36]](s1), %bb.37538 ; CHECK-NEXT: G_BR %bb.97539 ; CHECK-NEXT: {{ $}}540 ; CHECK-NEXT: bb.97.bb:541 ; CHECK-NEXT: [[ICMP37:%[0-9]+]]:_(s1) = G_ICMP intpred(eq), [[COPY1]](s32), [[C37]]542 ; CHECK-NEXT: G_BRCOND [[ICMP37]](s1), %bb.38543 ; CHECK-NEXT: G_BR %bb.98544 ; CHECK-NEXT: {{ $}}545 ; CHECK-NEXT: bb.98.bb:546 ; CHECK-NEXT: [[ICMP38:%[0-9]+]]:_(s1) = G_ICMP intpred(eq), [[COPY1]](s32), [[C38]]547 ; CHECK-NEXT: G_BRCOND [[ICMP38]](s1), %bb.39548 ; CHECK-NEXT: G_BR %bb.99549 ; CHECK-NEXT: {{ $}}550 ; CHECK-NEXT: bb.99.bb:551 ; CHECK-NEXT: [[ICMP39:%[0-9]+]]:_(s1) = G_ICMP intpred(eq), [[COPY1]](s32), [[C39]]552 ; CHECK-NEXT: G_BRCOND [[ICMP39]](s1), %bb.40553 ; CHECK-NEXT: G_BR %bb.100554 ; CHECK-NEXT: {{ $}}555 ; CHECK-NEXT: bb.100.bb:556 ; CHECK-NEXT: [[ICMP40:%[0-9]+]]:_(s1) = G_ICMP intpred(eq), [[COPY1]](s32), [[C40]]557 ; CHECK-NEXT: G_BRCOND [[ICMP40]](s1), %bb.41558 ; CHECK-NEXT: G_BR %bb.101559 ; CHECK-NEXT: {{ $}}560 ; CHECK-NEXT: bb.101.bb:561 ; CHECK-NEXT: [[ICMP41:%[0-9]+]]:_(s1) = G_ICMP intpred(eq), [[COPY1]](s32), [[C41]]562 ; CHECK-NEXT: G_BRCOND [[ICMP41]](s1), %bb.42563 ; CHECK-NEXT: G_BR %bb.102564 ; CHECK-NEXT: {{ $}}565 ; CHECK-NEXT: bb.102.bb:566 ; CHECK-NEXT: [[ICMP42:%[0-9]+]]:_(s1) = G_ICMP intpred(eq), [[COPY1]](s32), [[C42]]567 ; CHECK-NEXT: G_BRCOND [[ICMP42]](s1), %bb.43568 ; CHECK-NEXT: G_BR %bb.103569 ; CHECK-NEXT: {{ $}}570 ; CHECK-NEXT: bb.103.bb:571 ; CHECK-NEXT: [[ICMP43:%[0-9]+]]:_(s1) = G_ICMP intpred(eq), [[COPY1]](s32), [[C43]]572 ; CHECK-NEXT: G_BRCOND [[ICMP43]](s1), %bb.44573 ; CHECK-NEXT: G_BR %bb.104574 ; CHECK-NEXT: {{ $}}575 ; CHECK-NEXT: bb.104.bb:576 ; CHECK-NEXT: [[ICMP44:%[0-9]+]]:_(s1) = G_ICMP intpred(eq), [[COPY1]](s32), [[C44]]577 ; CHECK-NEXT: G_BRCOND [[ICMP44]](s1), %bb.45578 ; CHECK-NEXT: G_BR %bb.105579 ; CHECK-NEXT: {{ $}}580 ; CHECK-NEXT: bb.105.bb:581 ; CHECK-NEXT: [[ICMP45:%[0-9]+]]:_(s1) = G_ICMP intpred(eq), [[COPY1]](s32), [[C45]]582 ; CHECK-NEXT: G_BRCOND [[ICMP45]](s1), %bb.46583 ; CHECK-NEXT: G_BR %bb.106584 ; CHECK-NEXT: {{ $}}585 ; CHECK-NEXT: bb.106.bb:586 ; CHECK-NEXT: [[ICMP46:%[0-9]+]]:_(s1) = G_ICMP intpred(eq), [[COPY1]](s32), [[C46]]587 ; CHECK-NEXT: G_BRCOND [[ICMP46]](s1), %bb.47588 ; CHECK-NEXT: G_BR %bb.107589 ; CHECK-NEXT: {{ $}}590 ; CHECK-NEXT: bb.107.bb:591 ; CHECK-NEXT: [[ICMP47:%[0-9]+]]:_(s1) = G_ICMP intpred(eq), [[COPY1]](s32), [[C47]]592 ; CHECK-NEXT: G_BRCOND [[ICMP47]](s1), %bb.48593 ; CHECK-NEXT: G_BR %bb.108594 ; CHECK-NEXT: {{ $}}595 ; CHECK-NEXT: bb.108.bb:596 ; CHECK-NEXT: [[ICMP48:%[0-9]+]]:_(s1) = G_ICMP intpred(eq), [[COPY1]](s32), [[C48]]597 ; CHECK-NEXT: G_BRCOND [[ICMP48]](s1), %bb.49598 ; CHECK-NEXT: G_BR %bb.109599 ; CHECK-NEXT: {{ $}}600 ; CHECK-NEXT: bb.109.bb:601 ; CHECK-NEXT: [[ICMP49:%[0-9]+]]:_(s1) = G_ICMP intpred(eq), [[COPY1]](s32), [[C49]]602 ; CHECK-NEXT: G_BRCOND [[ICMP49]](s1), %bb.50603 ; CHECK-NEXT: G_BR %bb.110604 ; CHECK-NEXT: {{ $}}605 ; CHECK-NEXT: bb.110.bb:606 ; CHECK-NEXT: [[ICMP50:%[0-9]+]]:_(s1) = G_ICMP intpred(eq), [[COPY1]](s32), [[C50]]607 ; CHECK-NEXT: G_BRCOND [[ICMP50]](s1), %bb.51608 ; CHECK-NEXT: G_BR %bb.111609 ; CHECK-NEXT: {{ $}}610 ; CHECK-NEXT: bb.111.bb:611 ; CHECK-NEXT: [[ICMP51:%[0-9]+]]:_(s1) = G_ICMP intpred(eq), [[COPY1]](s32), [[C51]]612 ; CHECK-NEXT: G_BRCOND [[ICMP51]](s1), %bb.52613 ; CHECK-NEXT: G_BR %bb.112614 ; CHECK-NEXT: {{ $}}615 ; CHECK-NEXT: bb.112.bb:616 ; CHECK-NEXT: [[ICMP52:%[0-9]+]]:_(s1) = G_ICMP intpred(eq), [[COPY1]](s32), [[C52]]617 ; CHECK-NEXT: G_BRCOND [[ICMP52]](s1), %bb.53618 ; CHECK-NEXT: G_BR %bb.113619 ; CHECK-NEXT: {{ $}}620 ; CHECK-NEXT: bb.113.bb:621 ; CHECK-NEXT: [[ICMP53:%[0-9]+]]:_(s1) = G_ICMP intpred(eq), [[COPY1]](s32), [[C53]]622 ; CHECK-NEXT: G_BRCOND [[ICMP53]](s1), %bb.54623 ; CHECK-NEXT: G_BR %bb.114624 ; CHECK-NEXT: {{ $}}625 ; CHECK-NEXT: bb.114.bb:626 ; CHECK-NEXT: [[ICMP54:%[0-9]+]]:_(s1) = G_ICMP intpred(eq), [[COPY1]](s32), [[C54]]627 ; CHECK-NEXT: G_BRCOND [[ICMP54]](s1), %bb.55628 ; CHECK-NEXT: G_BR %bb.60629 ; CHECK-NEXT: {{ $}}630 ; CHECK-NEXT: bb.2.bb3:631 ; CHECK-NEXT: G_BR %bb.56632 ; CHECK-NEXT: {{ $}}633 ; CHECK-NEXT: bb.3.bb4:634 ; CHECK-NEXT: G_BR %bb.56635 ; CHECK-NEXT: {{ $}}636 ; CHECK-NEXT: bb.4.bb5:637 ; CHECK-NEXT: G_BR %bb.56638 ; CHECK-NEXT: {{ $}}639 ; CHECK-NEXT: bb.5.bb6:640 ; CHECK-NEXT: G_BR %bb.56641 ; CHECK-NEXT: {{ $}}642 ; CHECK-NEXT: bb.6.bb7:643 ; CHECK-NEXT: G_BR %bb.56644 ; CHECK-NEXT: {{ $}}645 ; CHECK-NEXT: bb.7.bb8:646 ; CHECK-NEXT: G_BR %bb.56647 ; CHECK-NEXT: {{ $}}648 ; CHECK-NEXT: bb.8.bb9:649 ; CHECK-NEXT: G_BR %bb.56650 ; CHECK-NEXT: {{ $}}651 ; CHECK-NEXT: bb.9.bb10:652 ; CHECK-NEXT: G_BR %bb.56653 ; CHECK-NEXT: {{ $}}654 ; CHECK-NEXT: bb.10.bb11:655 ; CHECK-NEXT: G_BR %bb.56656 ; CHECK-NEXT: {{ $}}657 ; CHECK-NEXT: bb.11.bb12:658 ; CHECK-NEXT: G_BR %bb.56659 ; CHECK-NEXT: {{ $}}660 ; CHECK-NEXT: bb.12.bb13:661 ; CHECK-NEXT: G_BR %bb.56662 ; CHECK-NEXT: {{ $}}663 ; CHECK-NEXT: bb.13.bb14:664 ; CHECK-NEXT: G_BR %bb.56665 ; CHECK-NEXT: {{ $}}666 ; CHECK-NEXT: bb.14.bb15:667 ; CHECK-NEXT: G_BR %bb.56668 ; CHECK-NEXT: {{ $}}669 ; CHECK-NEXT: bb.15.bb16:670 ; CHECK-NEXT: G_BR %bb.56671 ; CHECK-NEXT: {{ $}}672 ; CHECK-NEXT: bb.16.bb17:673 ; CHECK-NEXT: G_BR %bb.56674 ; CHECK-NEXT: {{ $}}675 ; CHECK-NEXT: bb.17.bb18:676 ; CHECK-NEXT: G_BR %bb.56677 ; CHECK-NEXT: {{ $}}678 ; CHECK-NEXT: bb.18.bb19:679 ; CHECK-NEXT: G_BR %bb.56680 ; CHECK-NEXT: {{ $}}681 ; CHECK-NEXT: bb.19.bb20:682 ; CHECK-NEXT: G_BR %bb.56683 ; CHECK-NEXT: {{ $}}684 ; CHECK-NEXT: bb.20.bb21:685 ; CHECK-NEXT: G_BR %bb.56686 ; CHECK-NEXT: {{ $}}687 ; CHECK-NEXT: bb.21.bb22:688 ; CHECK-NEXT: G_BR %bb.56689 ; CHECK-NEXT: {{ $}}690 ; CHECK-NEXT: bb.22.bb23:691 ; CHECK-NEXT: G_BR %bb.56692 ; CHECK-NEXT: {{ $}}693 ; CHECK-NEXT: bb.23.bb24:694 ; CHECK-NEXT: G_BR %bb.56695 ; CHECK-NEXT: {{ $}}696 ; CHECK-NEXT: bb.24.bb25:697 ; CHECK-NEXT: G_BR %bb.56698 ; CHECK-NEXT: {{ $}}699 ; CHECK-NEXT: bb.25.bb26:700 ; CHECK-NEXT: G_BR %bb.56701 ; CHECK-NEXT: {{ $}}702 ; CHECK-NEXT: bb.26.bb27:703 ; CHECK-NEXT: G_BR %bb.56704 ; CHECK-NEXT: {{ $}}705 ; CHECK-NEXT: bb.27.bb28:706 ; CHECK-NEXT: G_BR %bb.56707 ; CHECK-NEXT: {{ $}}708 ; CHECK-NEXT: bb.28.bb29:709 ; CHECK-NEXT: G_BR %bb.56710 ; CHECK-NEXT: {{ $}}711 ; CHECK-NEXT: bb.29.bb30:712 ; CHECK-NEXT: G_BR %bb.56713 ; CHECK-NEXT: {{ $}}714 ; CHECK-NEXT: bb.30.bb31:715 ; CHECK-NEXT: G_BR %bb.56716 ; CHECK-NEXT: {{ $}}717 ; CHECK-NEXT: bb.31.bb32:718 ; CHECK-NEXT: G_BR %bb.56719 ; CHECK-NEXT: {{ $}}720 ; CHECK-NEXT: bb.32.bb33:721 ; CHECK-NEXT: G_BR %bb.56722 ; CHECK-NEXT: {{ $}}723 ; CHECK-NEXT: bb.33.bb34:724 ; CHECK-NEXT: G_BR %bb.56725 ; CHECK-NEXT: {{ $}}726 ; CHECK-NEXT: bb.34.bb35:727 ; CHECK-NEXT: G_BR %bb.56728 ; CHECK-NEXT: {{ $}}729 ; CHECK-NEXT: bb.35.bb36:730 ; CHECK-NEXT: G_BR %bb.56731 ; CHECK-NEXT: {{ $}}732 ; CHECK-NEXT: bb.36.bb37:733 ; CHECK-NEXT: G_BR %bb.56734 ; CHECK-NEXT: {{ $}}735 ; CHECK-NEXT: bb.37.bb38:736 ; CHECK-NEXT: G_BR %bb.56737 ; CHECK-NEXT: {{ $}}738 ; CHECK-NEXT: bb.38.bb39:739 ; CHECK-NEXT: G_BR %bb.56740 ; CHECK-NEXT: {{ $}}741 ; CHECK-NEXT: bb.39.bb40:742 ; CHECK-NEXT: G_BR %bb.56743 ; CHECK-NEXT: {{ $}}744 ; CHECK-NEXT: bb.40.bb41:745 ; CHECK-NEXT: G_BR %bb.56746 ; CHECK-NEXT: {{ $}}747 ; CHECK-NEXT: bb.41.bb42:748 ; CHECK-NEXT: G_BR %bb.56749 ; CHECK-NEXT: {{ $}}750 ; CHECK-NEXT: bb.42.bb43:751 ; CHECK-NEXT: G_BR %bb.56752 ; CHECK-NEXT: {{ $}}753 ; CHECK-NEXT: bb.43.bb44:754 ; CHECK-NEXT: G_BR %bb.56755 ; CHECK-NEXT: {{ $}}756 ; CHECK-NEXT: bb.44.bb45:757 ; CHECK-NEXT: G_BR %bb.56758 ; CHECK-NEXT: {{ $}}759 ; CHECK-NEXT: bb.45.bb46:760 ; CHECK-NEXT: G_BR %bb.56761 ; CHECK-NEXT: {{ $}}762 ; CHECK-NEXT: bb.46.bb47:763 ; CHECK-NEXT: G_BR %bb.56764 ; CHECK-NEXT: {{ $}}765 ; CHECK-NEXT: bb.47.bb48:766 ; CHECK-NEXT: G_BR %bb.56767 ; CHECK-NEXT: {{ $}}768 ; CHECK-NEXT: bb.48.bb49:769 ; CHECK-NEXT: G_BR %bb.56770 ; CHECK-NEXT: {{ $}}771 ; CHECK-NEXT: bb.49.bb50:772 ; CHECK-NEXT: G_BR %bb.56773 ; CHECK-NEXT: {{ $}}774 ; CHECK-NEXT: bb.50.bb51:775 ; CHECK-NEXT: G_BR %bb.56776 ; CHECK-NEXT: {{ $}}777 ; CHECK-NEXT: bb.51.bb52:778 ; CHECK-NEXT: G_BR %bb.56779 ; CHECK-NEXT: {{ $}}780 ; CHECK-NEXT: bb.52.bb53:781 ; CHECK-NEXT: G_BR %bb.56782 ; CHECK-NEXT: {{ $}}783 ; CHECK-NEXT: bb.53.bb54:784 ; CHECK-NEXT: G_BR %bb.56785 ; CHECK-NEXT: {{ $}}786 ; CHECK-NEXT: bb.54.bb55:787 ; CHECK-NEXT: G_BR %bb.56788 ; CHECK-NEXT: {{ $}}789 ; CHECK-NEXT: bb.55.bb56:790 ; CHECK-NEXT: G_BR %bb.56791 ; CHECK-NEXT: {{ $}}792 ; CHECK-NEXT: bb.56.bb57:793 ; CHECK-NEXT: [[PHI:%[0-9]+]]:_(s64) = G_PHI [[C56]](s64), %bb.1, [[C57]](s64), %bb.2, [[C58]](s64), %bb.3, [[C59]](s64), %bb.4, [[C60]](s64), %bb.5, [[C61]](s64), %bb.6, [[C62]](s64), %bb.7, [[C63]](s64), %bb.8, [[C64]](s64), %bb.9, [[C65]](s64), %bb.10, [[C66]](s64), %bb.11, [[C67]](s64), %bb.12, [[C68]](s64), %bb.13, [[C69]](s64), %bb.14, [[C70]](s64), %bb.15, [[C71]](s64), %bb.16, [[C72]](s64), %bb.17, [[C73]](s64), %bb.18, [[C74]](s64), %bb.19, [[C75]](s64), %bb.20, [[C76]](s64), %bb.21, [[C77]](s64), %bb.22, [[C78]](s64), %bb.23, [[C79]](s64), %bb.24, [[C80]](s64), %bb.25, [[C81]](s64), %bb.26, [[C82]](s64), %bb.27, [[C83]](s64), %bb.28, [[C84]](s64), %bb.29, [[C85]](s64), %bb.30, [[C86]](s64), %bb.31, [[C87]](s64), %bb.32, [[C88]](s64), %bb.33, [[C89]](s64), %bb.34, [[C90]](s64), %bb.35, [[C91]](s64), %bb.36, [[C92]](s64), %bb.37, [[C93]](s64), %bb.38, [[C94]](s64), %bb.39, [[C95]](s64), %bb.40, [[C96]](s64), %bb.41, [[C97]](s64), %bb.42, [[C98]](s64), %bb.43, [[C99]](s64), %bb.44, [[C100]](s64), %bb.45, [[C101]](s64), %bb.46, [[C102]](s64), %bb.47, [[C103]](s64), %bb.48, [[C104]](s64), %bb.49, [[C105]](s64), %bb.50, [[C106]](s64), %bb.51, [[C107]](s64), %bb.52, [[C108]](s64), %bb.53, [[C109]](s64), %bb.54, [[C110]](s64), %bb.55794 ; CHECK-NEXT: [[C111:%[0-9]+]]:_(s64) = G_CONSTANT i64 16795 ; CHECK-NEXT: [[MUL:%[0-9]+]]:_(s64) = nsw G_MUL [[PHI]], [[C111]]796 ; CHECK-NEXT: [[PTR_ADD:%[0-9]+]]:_(p0) = nusw inbounds G_PTR_ADD [[GV]], [[MUL]](s64)797 ; CHECK-NEXT: [[C112:%[0-9]+]]:_(s64) = G_CONSTANT i64 8798 ; CHECK-NEXT: [[PTR_ADD1:%[0-9]+]]:_(p0) = nuw nusw inbounds G_PTR_ADD [[PTR_ADD]], [[C112]](s64)799 ; CHECK-NEXT: [[LOAD:%[0-9]+]]:_(p0) = G_LOAD [[PTR_ADD1]](p0) :: (load (p0) from %ir.tmp59)800 ; CHECK-NEXT: ADJCALLSTACKDOWN 0, 0, implicit-def $sp, implicit $sp801 ; CHECK-NEXT: $x0 = COPY [[COPY]](p0)802 ; CHECK-NEXT: $x1 = COPY [[LOAD]](p0)803 ; CHECK-NEXT: BL @wibble, csr_aarch64_aapcs_thisreturn, implicit-def $lr, implicit $sp, implicit $x0, implicit $x1804 ; CHECK-NEXT: ADJCALLSTACKUP 0, 0, implicit-def $sp, implicit $sp805 ; CHECK-NEXT: [[COPY3:%[0-9]+]]:_(p0) = COPY [[COPY]](p0)806 ; CHECK-NEXT: G_BR %bb.59807 ; CHECK-NEXT: {{ $}}808 ; CHECK-NEXT: bb.57.bb62:809 ; CHECK-NEXT: ADJCALLSTACKDOWN 0, 0, implicit-def $sp, implicit $sp810 ; CHECK-NEXT: $x0 = COPY [[COPY]](p0)811 ; CHECK-NEXT: $x1 = COPY [[COPY2]](p0)812 ; CHECK-NEXT: BL @wibble, csr_aarch64_aapcs_thisreturn, implicit-def $lr, implicit $sp, implicit $x0, implicit $x1813 ; CHECK-NEXT: ADJCALLSTACKUP 0, 0, implicit-def $sp, implicit $sp814 ; CHECK-NEXT: [[COPY4:%[0-9]+]]:_(p0) = COPY [[COPY]](p0)815 ; CHECK-NEXT: G_BR %bb.59816 ; CHECK-NEXT: {{ $}}817 ; CHECK-NEXT: bb.58.bb64:818 ; CHECK-NEXT: ADJCALLSTACKDOWN 0, 0, implicit-def $sp, implicit $sp819 ; CHECK-NEXT: $w0 = COPY [[COPY1]](s32)820 ; CHECK-NEXT: $x1 = COPY [[FRAME_INDEX]](p0)821 ; CHECK-NEXT: BL @baz, csr_aarch64_aapcs, implicit-def $lr, implicit $sp, implicit $w0, implicit $x1822 ; CHECK-NEXT: ADJCALLSTACKUP 0, 0, implicit-def $sp, implicit $sp823 ; CHECK-NEXT: ADJCALLSTACKDOWN 0, 0, implicit-def $sp, implicit $sp824 ; CHECK-NEXT: $x0 = COPY [[COPY]](p0)825 ; CHECK-NEXT: $x1 = COPY [[FRAME_INDEX]](p0)826 ; CHECK-NEXT: BL @wibble, csr_aarch64_aapcs_thisreturn, implicit-def $lr, implicit $sp, implicit $x0, implicit $x1827 ; CHECK-NEXT: ADJCALLSTACKUP 0, 0, implicit-def $sp, implicit $sp828 ; CHECK-NEXT: [[COPY5:%[0-9]+]]:_(p0) = COPY [[COPY]](p0)829 ; CHECK-NEXT: G_BR %bb.59830 ; CHECK-NEXT: {{ $}}831 ; CHECK-NEXT: bb.59.bb68:832 ; CHECK-NEXT: RET_ReallyLR833 ; CHECK-NEXT: {{ $}}834 ; CHECK-NEXT: bb.60.bb69:835 ; CHECK-NEXT: [[ICMP55:%[0-9]+]]:_(s1) = G_ICMP intpred(eq), [[COPY2]](p0), [[C55]]836 ; CHECK-NEXT: G_BRCOND [[ICMP55]](s1), %bb.58837 ; CHECK-NEXT: G_BR %bb.57838bb:839 %tmp = alloca [16 x i32], align 4840 switch i32 %arg1, label %bb69 [841 i32 3, label %bb57842 i32 4, label %bb3843 i32 6, label %bb4844 i32 7, label %bb5845 i32 8, label %bb6846 i32 9, label %bb7847 i32 10, label %bb8848 i32 11, label %bb9849 i32 12, label %bb10850 i32 13, label %bb11851 i32 14, label %bb12852 i32 15, label %bb13853 i32 16, label %bb14854 i32 17, label %bb15855 i32 18, label %bb16856 i32 19, label %bb17857 i32 20, label %bb18858 i32 21, label %bb19859 i32 22, label %bb20860 i32 23, label %bb21861 i32 24, label %bb22862 i32 25, label %bb23863 i32 26, label %bb24864 i32 27, label %bb25865 i32 28, label %bb26866 i32 29, label %bb27867 i32 30, label %bb28868 i32 31, label %bb29869 i32 32, label %bb30870 i32 33, label %bb31871 i32 34, label %bb32872 i32 35, label %bb33873 i32 36, label %bb34874 i32 37, label %bb35875 i32 38, label %bb36876 i32 39, label %bb37877 i32 41, label %bb38878 i32 42, label %bb39879 i32 43, label %bb40880 i32 44, label %bb41881 i32 45, label %bb42882 i32 46, label %bb43883 i32 47, label %bb44884 i32 48, label %bb45885 i32 49, label %bb46886 i32 50, label %bb47887 i32 51, label %bb48888 i32 52, label %bb49889 i32 53, label %bb50890 i32 54, label %bb51891 i32 55, label %bb52892 i32 4352, label %bb53893 i32 4353, label %bb54894 i32 4354, label %bb55895 i32 4355, label %bb56896 ]897 898bb3: ; preds = %bb899 br label %bb57900 901bb4: ; preds = %bb902 br label %bb57903 904bb5: ; preds = %bb905 br label %bb57906 907bb6: ; preds = %bb908 br label %bb57909 910bb7: ; preds = %bb911 br label %bb57912 913bb8: ; preds = %bb914 br label %bb57915 916bb9: ; preds = %bb917 br label %bb57918 919bb10: ; preds = %bb920 br label %bb57921 922bb11: ; preds = %bb923 br label %bb57924 925bb12: ; preds = %bb926 br label %bb57927 928bb13: ; preds = %bb929 br label %bb57930 931bb14: ; preds = %bb932 br label %bb57933 934bb15: ; preds = %bb935 br label %bb57936 937bb16: ; preds = %bb938 br label %bb57939 940bb17: ; preds = %bb941 br label %bb57942 943bb18: ; preds = %bb944 br label %bb57945 946bb19: ; preds = %bb947 br label %bb57948 949bb20: ; preds = %bb950 br label %bb57951 952bb21: ; preds = %bb953 br label %bb57954 955bb22: ; preds = %bb956 br label %bb57957 958bb23: ; preds = %bb959 br label %bb57960 961bb24: ; preds = %bb962 br label %bb57963 964bb25: ; preds = %bb965 br label %bb57966 967bb26: ; preds = %bb968 br label %bb57969 970bb27: ; preds = %bb971 br label %bb57972 973bb28: ; preds = %bb974 br label %bb57975 976bb29: ; preds = %bb977 br label %bb57978 979bb30: ; preds = %bb980 br label %bb57981 982bb31: ; preds = %bb983 br label %bb57984 985bb32: ; preds = %bb986 br label %bb57987 988bb33: ; preds = %bb989 br label %bb57990 991bb34: ; preds = %bb992 br label %bb57993 994bb35: ; preds = %bb995 br label %bb57996 997bb36: ; preds = %bb998 br label %bb57999 1000bb37: ; preds = %bb1001 br label %bb571002 1003bb38: ; preds = %bb1004 br label %bb571005 1006bb39: ; preds = %bb1007 br label %bb571008 1009bb40: ; preds = %bb1010 br label %bb571011 1012bb41: ; preds = %bb1013 br label %bb571014 1015bb42: ; preds = %bb1016 br label %bb571017 1018bb43: ; preds = %bb1019 br label %bb571020 1021bb44: ; preds = %bb1022 br label %bb571023 1024bb45: ; preds = %bb1025 br label %bb571026 1027bb46: ; preds = %bb1028 br label %bb571029 1030bb47: ; preds = %bb1031 br label %bb571032 1033bb48: ; preds = %bb1034 br label %bb571035 1036bb49: ; preds = %bb1037 br label %bb571038 1039bb50: ; preds = %bb1040 br label %bb571041 1042bb51: ; preds = %bb1043 br label %bb571044 1045bb52: ; preds = %bb1046 br label %bb571047 1048bb53: ; preds = %bb1049 br label %bb571050 1051bb54: ; preds = %bb1052 br label %bb571053 1054bb55: ; preds = %bb1055 br label %bb571056 1057bb56: ; preds = %bb1058 br label %bb571059 1060bb57: ; preds = %bb56, %bb55, %bb54, %bb53, %bb52, %bb51, %bb50, %bb49, %bb48, %bb47, %bb46, %bb45, %bb44, %bb43, %bb42, %bb41, %bb40, %bb39, %bb38, %bb37, %bb36, %bb35, %bb34, %bb33, %bb32, %bb31, %bb30, %bb29, %bb28, %bb27, %bb26, %bb25, %bb24, %bb23, %bb22, %bb21, %bb20, %bb19, %bb18, %bb17, %bb16, %bb15, %bb14, %bb13, %bb12, %bb11, %bb10, %bb9, %bb8, %bb7, %bb6, %bb5, %bb4, %bb3, %bb1061 %tmp58 = phi i64 [ 0, %bb ], [ 1, %bb3 ], [ 2, %bb4 ], [ 3, %bb5 ], [ 4, %bb6 ], [ 5, %bb7 ], [ 6, %bb8 ], [ 7, %bb9 ], [ 8, %bb10 ], [ 9, %bb11 ], [ 10, %bb12 ], [ 11, %bb13 ], [ 12, %bb14 ], [ 13, %bb15 ], [ 14, %bb16 ], [ 15, %bb17 ], [ 16, %bb18 ], [ 17, %bb19 ], [ 18, %bb20 ], [ 19, %bb21 ], [ 20, %bb22 ], [ 21, %bb23 ], [ 22, %bb24 ], [ 23, %bb25 ], [ 24, %bb26 ], [ 25, %bb27 ], [ 26, %bb28 ], [ 27, %bb29 ], [ 28, %bb30 ], [ 29, %bb31 ], [ 30, %bb32 ], [ 31, %bb33 ], [ 32, %bb34 ], [ 33, %bb35 ], [ 34, %bb36 ], [ 35, %bb37 ], [ 36, %bb38 ], [ 37, %bb39 ], [ 38, %bb40 ], [ 39, %bb41 ], [ 40, %bb42 ], [ 41, %bb43 ], [ 42, %bb44 ], [ 43, %bb45 ], [ 44, %bb46 ], [ 45, %bb47 ], [ 46, %bb48 ], [ 47, %bb49 ], [ 48, %bb50 ], [ 49, %bb51 ], [ 50, %bb52 ], [ 51, %bb53 ], [ 52, %bb54 ], [ 53, %bb55 ], [ 54, %bb56 ]1062 %tmp59 = getelementptr inbounds [55 x %0], ptr @global, i64 0, i64 %tmp58, i32 11063 %tmp60 = load ptr, ptr %tmp59, align 81064 %tmp61 = call ptr @wibble(ptr %arg, ptr %tmp60)1065 br label %bb681066 1067bb62: ; preds = %bb691068 %tmp63 = call ptr @wibble(ptr %arg, ptr nonnull %arg2)1069 br label %bb681070 1071bb64: ; preds = %bb691072 call void @baz(i32 %arg1, ptr %tmp)1073 %tmp67 = call ptr @wibble(ptr %arg, ptr %tmp)1074 br label %bb681075 1076bb68: ; preds = %bb64, %bb62, %bb571077 ret void1078 1079bb69: ; preds = %bb1080 %tmp70 = icmp eq ptr %arg2, null1081 br i1 %tmp70, label %bb64, label %bb621082}1083 1084declare ptr @wibble(ptr returned, ptr)1085 1086declare void @baz(i32, ptr)1087 1088 1089; Check that with 2 jump tables, the phi node doesn't lose the edge from the1090; second one.1091define void @jt_2_tables_phi_edge_from_second() {1092 ; CHECK-LABEL: name: jt_2_tables_phi_edge_from_second1093 ; CHECK: bb.1.entry:1094 ; CHECK-NEXT: [[DEF:%[0-9]+]]:_(p0) = G_IMPLICIT_DEF1095 ; CHECK-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 1231096 ; CHECK-NEXT: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 2631097 ; CHECK-NEXT: [[C2:%[0-9]+]]:_(s32) = G_CONSTANT i32 2651098 ; CHECK-NEXT: [[C3:%[0-9]+]]:_(s32) = G_CONSTANT i32 2701099 ; CHECK-NEXT: [[C4:%[0-9]+]]:_(s32) = G_CONSTANT i32 2791100 ; CHECK-NEXT: [[DEF1:%[0-9]+]]:_(s32) = G_IMPLICIT_DEF1101 ; CHECK-NEXT: [[C5:%[0-9]+]]:_(s32) = G_CONSTANT i32 371102 ; CHECK-NEXT: [[C6:%[0-9]+]]:_(s32) = G_CONSTANT i32 431103 ; CHECK-NEXT: [[C7:%[0-9]+]]:_(s32) = G_CONSTANT i32 451104 ; CHECK-NEXT: [[C8:%[0-9]+]]:_(s32) = G_CONSTANT i32 601105 ; CHECK-NEXT: [[C9:%[0-9]+]]:_(s32) = G_CONSTANT i32 2781106 ; CHECK-NEXT: [[C10:%[0-9]+]]:_(s32) = G_CONSTANT i32 2801107 ; CHECK-NEXT: [[C11:%[0-9]+]]:_(s32) = G_CONSTANT i32 2811108 ; CHECK-NEXT: [[C12:%[0-9]+]]:_(s32) = G_CONSTANT i32 2831109 ; CHECK-NEXT: [[DEF2:%[0-9]+]]:_(s1) = G_IMPLICIT_DEF1110 ; CHECK-NEXT: [[C13:%[0-9]+]]:_(s32) = G_CONSTANT i32 01111 ; CHECK-NEXT: [[C14:%[0-9]+]]:_(s32) = G_CONSTANT i32 11112 ; CHECK-NEXT: [[C15:%[0-9]+]]:_(s32) = G_CONSTANT i32 41113 ; CHECK-NEXT: [[C16:%[0-9]+]]:_(s32) = G_CONSTANT i32 61114 ; CHECK-NEXT: [[C17:%[0-9]+]]:_(s32) = G_CONSTANT i32 71115 ; CHECK-NEXT: [[C18:%[0-9]+]]:_(s32) = G_CONSTANT i32 81116 ; CHECK-NEXT: [[C19:%[0-9]+]]:_(s32) = G_CONSTANT i32 91117 ; CHECK-NEXT: [[C20:%[0-9]+]]:_(s32) = G_CONSTANT i32 121118 ; CHECK-NEXT: [[C21:%[0-9]+]]:_(s32) = G_CONSTANT i32 151119 ; CHECK-NEXT: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[DEF]](p0) :: (load (s32) from `ptr undef`, align 8)1120 ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(s1) = G_ICMP intpred(eq), [[LOAD]](s32), [[C]]1121 ; CHECK-NEXT: G_BRCOND [[ICMP]](s1), %bb.61122 ; CHECK-NEXT: G_BR %bb.191123 ; CHECK-NEXT: {{ $}}1124 ; CHECK-NEXT: bb.19.entry:1125 ; CHECK-NEXT: [[ICMP1:%[0-9]+]]:_(s1) = G_ICMP intpred(eq), [[LOAD]](s32), [[C1]]1126 ; CHECK-NEXT: G_BRCOND [[ICMP1]](s1), %bb.41127 ; CHECK-NEXT: G_BR %bb.201128 ; CHECK-NEXT: {{ $}}1129 ; CHECK-NEXT: bb.20.entry:1130 ; CHECK-NEXT: [[ICMP2:%[0-9]+]]:_(s1) = G_ICMP intpred(eq), [[LOAD]](s32), [[C2]]1131 ; CHECK-NEXT: G_BRCOND [[ICMP2]](s1), %bb.71132 ; CHECK-NEXT: G_BR %bb.211133 ; CHECK-NEXT: {{ $}}1134 ; CHECK-NEXT: bb.21.entry:1135 ; CHECK-NEXT: [[ICMP3:%[0-9]+]]:_(s1) = G_ICMP intpred(eq), [[LOAD]](s32), [[C3]]1136 ; CHECK-NEXT: G_BRCOND [[ICMP3]](s1), %bb.21137 ; CHECK-NEXT: G_BR %bb.221138 ; CHECK-NEXT: {{ $}}1139 ; CHECK-NEXT: bb.22.entry:1140 ; CHECK-NEXT: [[ICMP4:%[0-9]+]]:_(s1) = G_ICMP intpred(eq), [[LOAD]](s32), [[C4]]1141 ; CHECK-NEXT: G_BRCOND [[ICMP4]](s1), %bb.51142 ; CHECK-NEXT: G_BR %bb.231143 ; CHECK-NEXT: {{ $}}1144 ; CHECK-NEXT: bb.23.entry:1145 ; CHECK-NEXT: G_BR %bb.31146 ; CHECK-NEXT: {{ $}}1147 ; CHECK-NEXT: bb.2.if.then:1148 ; CHECK-NEXT: successors:1149 ; CHECK-NEXT: {{ $}}1150 ; CHECK-NEXT: bb.3.sw.bb2.i41:1151 ; CHECK-NEXT: successors:1152 ; CHECK-NEXT: {{ $}}1153 ; CHECK-NEXT: bb.4.sw.bb7.i44:1154 ; CHECK-NEXT: successors:1155 ; CHECK-NEXT: {{ $}}1156 ; CHECK-NEXT: bb.5.sw.bb8.i45:1157 ; CHECK-NEXT: successors:1158 ; CHECK-NEXT: {{ $}}1159 ; CHECK-NEXT: bb.6.sw.bb13.i47:1160 ; CHECK-NEXT: successors:1161 ; CHECK-NEXT: {{ $}}1162 ; CHECK-NEXT: bb.7.sw.bb14.i48:1163 ; CHECK-NEXT: [[ICMP5:%[0-9]+]]:_(s1) = G_ICMP intpred(eq), [[DEF1]](s32), [[C5]]1164 ; CHECK-NEXT: G_BRCOND [[ICMP5]](s1), %bb.101165 ; CHECK-NEXT: G_BR %bb.241166 ; CHECK-NEXT: {{ $}}1167 ; CHECK-NEXT: bb.24.sw.bb14.i48:1168 ; CHECK-NEXT: [[ICMP6:%[0-9]+]]:_(s1) = G_ICMP intpred(eq), [[DEF1]](s32), [[C6]]1169 ; CHECK-NEXT: G_BRCOND [[ICMP6]](s1), %bb.161170 ; CHECK-NEXT: G_BR %bb.251171 ; CHECK-NEXT: {{ $}}1172 ; CHECK-NEXT: bb.25.sw.bb14.i48:1173 ; CHECK-NEXT: [[ICMP7:%[0-9]+]]:_(s1) = G_ICMP intpred(eq), [[DEF1]](s32), [[C7]]1174 ; CHECK-NEXT: G_BRCOND [[ICMP7]](s1), %bb.91175 ; CHECK-NEXT: G_BR %bb.261176 ; CHECK-NEXT: {{ $}}1177 ; CHECK-NEXT: bb.26.sw.bb14.i48:1178 ; CHECK-NEXT: [[ICMP8:%[0-9]+]]:_(s1) = G_ICMP intpred(eq), [[DEF1]](s32), [[C8]]1179 ; CHECK-NEXT: G_BRCOND [[ICMP8]](s1), %bb.141180 ; CHECK-NEXT: G_BR %bb.271181 ; CHECK-NEXT: {{ $}}1182 ; CHECK-NEXT: bb.27.sw.bb14.i48:1183 ; CHECK-NEXT: [[ICMP9:%[0-9]+]]:_(s1) = G_ICMP intpred(eq), [[DEF1]](s32), [[C9]]1184 ; CHECK-NEXT: G_BRCOND [[ICMP9]](s1), %bb.111185 ; CHECK-NEXT: G_BR %bb.281186 ; CHECK-NEXT: {{ $}}1187 ; CHECK-NEXT: bb.28.sw.bb14.i48:1188 ; CHECK-NEXT: [[ICMP10:%[0-9]+]]:_(s1) = G_ICMP intpred(eq), [[DEF1]](s32), [[C10]]1189 ; CHECK-NEXT: G_BRCOND [[ICMP10]](s1), %bb.131190 ; CHECK-NEXT: G_BR %bb.291191 ; CHECK-NEXT: {{ $}}1192 ; CHECK-NEXT: bb.29.sw.bb14.i48:1193 ; CHECK-NEXT: [[ICMP11:%[0-9]+]]:_(s1) = G_ICMP intpred(eq), [[DEF1]](s32), [[C11]]1194 ; CHECK-NEXT: G_BRCOND [[ICMP11]](s1), %bb.151195 ; CHECK-NEXT: G_BR %bb.301196 ; CHECK-NEXT: {{ $}}1197 ; CHECK-NEXT: bb.30.sw.bb14.i48:1198 ; CHECK-NEXT: [[ICMP12:%[0-9]+]]:_(s1) = G_ICMP intpred(eq), [[DEF1]](s32), [[C12]]1199 ; CHECK-NEXT: G_BRCOND [[ICMP12]](s1), %bb.121200 ; CHECK-NEXT: G_BR %bb.181201 ; CHECK-NEXT: {{ $}}1202 ; CHECK-NEXT: bb.8.sw.default.i49:1203 ; CHECK-NEXT: successors:1204 ; CHECK-NEXT: {{ $}}1205 ; CHECK-NEXT: bb.9.sw.bb1.i:1206 ; CHECK-NEXT: G_BR %bb.161207 ; CHECK-NEXT: {{ $}}1208 ; CHECK-NEXT: bb.10.sw.bb4.i:1209 ; CHECK-NEXT: G_BR %bb.161210 ; CHECK-NEXT: {{ $}}1211 ; CHECK-NEXT: bb.11.sw.bb6.i:1212 ; CHECK-NEXT: G_BR %bb.161213 ; CHECK-NEXT: {{ $}}1214 ; CHECK-NEXT: bb.12.sw.bb7.i:1215 ; CHECK-NEXT: G_BR %bb.161216 ; CHECK-NEXT: {{ $}}1217 ; CHECK-NEXT: bb.13.sw.bb8.i:1218 ; CHECK-NEXT: G_BR %bb.161219 ; CHECK-NEXT: {{ $}}1220 ; CHECK-NEXT: bb.14.sw.bb9.i:1221 ; CHECK-NEXT: G_BR %bb.161222 ; CHECK-NEXT: {{ $}}1223 ; CHECK-NEXT: bb.15.sw.bb12.i:1224 ; CHECK-NEXT: G_BR %bb.161225 ; CHECK-NEXT: {{ $}}1226 ; CHECK-NEXT: bb.16.land.rhs.lr.ph:1227 ; CHECK-NEXT: [[PHI:%[0-9]+]]:_(s32) = G_PHI [[C13]](s32), %bb.24, [[C14]](s32), %bb.9, [[C15]](s32), %bb.10, [[C16]](s32), %bb.11, [[C17]](s32), %bb.12, [[C18]](s32), %bb.13, [[C19]](s32), %bb.14, [[C20]](s32), %bb.151228 ; CHECK-NEXT: G_BRCOND [[DEF2]](s1), %bb.171229 ; CHECK-NEXT: G_BR %bb.181230 ; CHECK-NEXT: {{ $}}1231 ; CHECK-NEXT: bb.17.while.body:1232 ; CHECK-NEXT: successors:1233 ; CHECK-NEXT: {{ $}}1234 ; CHECK-NEXT: ADJCALLSTACKDOWN 0, 0, implicit-def $sp, implicit $sp1235 ; CHECK-NEXT: BL @jt_2_tables_phi_edge_from_second, csr_aarch64_aapcs, implicit-def $lr, implicit $sp1236 ; CHECK-NEXT: ADJCALLSTACKUP 0, 0, implicit-def $sp, implicit $sp1237 ; CHECK-NEXT: {{ $}}1238 ; CHECK-NEXT: bb.18.while.end:1239 ; CHECK-NEXT: [[PHI1:%[0-9]+]]:_(s32) = G_PHI [[C21]](s32), %bb.30, [[PHI]](s32), %bb.161240 ; CHECK-NEXT: RET_ReallyLR1241entry:1242 %0 = load i32, ptr undef, align 81243 switch i32 %0, label %sw.default.i49 [1244 i32 270, label %if.then1245 i32 265, label %sw.bb14.i481246 i32 123, label %sw.bb13.i471247 i32 279, label %sw.bb8.i451248 i32 286, label %sw.bb2.i411249 i32 263, label %sw.bb7.i441250 ]1251 1252if.then: ; preds = %entry1253 unreachable1254 1255sw.bb2.i41: ; preds = %entry1256 unreachable1257 1258sw.bb7.i44: ; preds = %entry1259 unreachable1260 1261sw.bb8.i45: ; preds = %entry1262 unreachable1263 1264sw.bb13.i47: ; preds = %entry1265 unreachable1266 1267sw.bb14.i48: ; preds = %entry1268 switch i32 undef, label %while.end [1269 i32 43, label %land.rhs.lr.ph1270 i32 45, label %sw.bb1.i1271 i32 280, label %sw.bb8.i1272 i32 60, label %sw.bb9.i1273 i32 37, label %sw.bb4.i1274 i32 281, label %sw.bb12.i1275 i32 278, label %sw.bb6.i1276 i32 283, label %sw.bb7.i1277 ]1278 1279sw.default.i49: ; preds = %entry1280 unreachable1281 1282sw.bb1.i: ; preds = %sw.bb14.i481283 br label %land.rhs.lr.ph1284 1285sw.bb4.i: ; preds = %sw.bb14.i481286 br label %land.rhs.lr.ph1287 1288sw.bb6.i: ; preds = %sw.bb14.i481289 br label %land.rhs.lr.ph1290 1291sw.bb7.i: ; preds = %sw.bb14.i481292 br label %land.rhs.lr.ph1293 1294sw.bb8.i: ; preds = %sw.bb14.i481295 br label %land.rhs.lr.ph1296 1297sw.bb9.i: ; preds = %sw.bb14.i481298 br label %land.rhs.lr.ph1299 1300sw.bb12.i: ; preds = %sw.bb14.i481301 br label %land.rhs.lr.ph1302 1303land.rhs.lr.ph: ; preds = %sw.bb12.i, %sw.bb9.i, %sw.bb8.i, %sw.bb7.i, %sw.bb6.i, %sw.bb4.i, %sw.bb1.i, %sw.bb14.i481304 %retval.0.i.ph = phi i32 [ 0, %sw.bb14.i48 ], [ 1, %sw.bb1.i ], [ 4, %sw.bb4.i ], [ 6, %sw.bb6.i ], [ 7, %sw.bb7.i ], [ 8, %sw.bb8.i ], [ 9, %sw.bb9.i ], [ 12, %sw.bb12.i ]1305 br i1 undef, label %while.body, label %while.end1306 1307while.body: ; preds = %land.rhs.lr.ph1308 call void @jt_2_tables_phi_edge_from_second()1309 unreachable1310 1311while.end: ; preds = %land.rhs.lr.ph, %sw.bb14.i481312 %op.0.lcssa = phi i32 [ 15, %sw.bb14.i48 ], [ %retval.0.i.ph, %land.rhs.lr.ph ]1313 ret void1314}1315 1316 1317define i32 @range_test(i32 %x) {1318 ; CHECK-LABEL: name: range_test1319 ; CHECK: bb.1.entry:1320 ; CHECK-NEXT: liveins: $w01321 ; CHECK-NEXT: {{ $}}1322 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $w01323 ; CHECK-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 61324 ; CHECK-NEXT: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 241325 ; CHECK-NEXT: [[C2:%[0-9]+]]:_(s32) = G_CONSTANT i32 31326 ; CHECK-NEXT: [[C3:%[0-9]+]]:_(s32) = G_CONSTANT i32 421327 ; CHECK-NEXT: [[C4:%[0-9]+]]:_(s32) = G_CONSTANT i32 01328 ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(s1) = G_ICMP intpred(eq), [[COPY]](s32), [[C]]1329 ; CHECK-NEXT: G_BRCOND [[ICMP]](s1), %bb.31330 ; CHECK-NEXT: G_BR %bb.51331 ; CHECK-NEXT: {{ $}}1332 ; CHECK-NEXT: bb.5.entry:1333 ; CHECK-NEXT: [[SUB:%[0-9]+]]:_(s32) = G_SUB [[COPY]], [[C1]]1334 ; CHECK-NEXT: [[C5:%[0-9]+]]:_(s32) = G_CONSTANT i32 21335 ; CHECK-NEXT: [[ICMP1:%[0-9]+]]:_(s1) = G_ICMP intpred(ule), [[SUB]](s32), [[C5]]1336 ; CHECK-NEXT: G_BRCOND [[ICMP1]](s1), %bb.21337 ; CHECK-NEXT: G_BR %bb.41338 ; CHECK-NEXT: {{ $}}1339 ; CHECK-NEXT: bb.2.sw.bb:1340 ; CHECK-NEXT: [[ADD:%[0-9]+]]:_(s32) = nsw G_ADD [[COPY]], [[C3]]1341 ; CHECK-NEXT: G_BR %bb.41342 ; CHECK-NEXT: {{ $}}1343 ; CHECK-NEXT: bb.3.sw.bb1:1344 ; CHECK-NEXT: [[MUL:%[0-9]+]]:_(s32) = nsw G_MUL [[COPY]], [[C2]]1345 ; CHECK-NEXT: G_BR %bb.41346 ; CHECK-NEXT: {{ $}}1347 ; CHECK-NEXT: bb.4.return:1348 ; CHECK-NEXT: [[PHI:%[0-9]+]]:_(s32) = G_PHI [[MUL]](s32), %bb.3, [[ADD]](s32), %bb.2, [[C4]](s32), %bb.51349 ; CHECK-NEXT: $w0 = COPY [[PHI]](s32)1350 ; CHECK-NEXT: RET_ReallyLR implicit $w01351entry:1352 switch i32 %x, label %return [1353 i32 24, label %sw.bb1354 i32 25, label %sw.bb1355 i32 26, label %sw.bb1356 i32 6, label %sw.bb11357 ]1358 1359sw.bb:1360 %add = add nsw i32 %x, 421361 br label %return1362 1363sw.bb1:1364 %mul = mul nsw i32 %x, 31365 br label %return1366 1367return:1368 %retval.0 = phi i32 [ %mul, %sw.bb1 ], [ %add, %sw.bb ], [ 0, %entry ]1369 ret i32 %retval.01370}1371 1372define ptr @test_range_phi_switch_cycle() {1373 ; CHECK-LABEL: name: test_range_phi_switch_cycle1374 ; CHECK: bb.1.bb:1375 ; CHECK-NEXT: [[DEF:%[0-9]+]]:_(s32) = G_IMPLICIT_DEF1376 ; CHECK-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 3051377 ; CHECK-NEXT: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 3071378 ; CHECK-NEXT: [[C2:%[0-9]+]]:_(s32) = G_CONSTANT i32 4971379 ; CHECK-NEXT: [[C3:%[0-9]+]]:_(s32) = G_CONSTANT i32 41380 ; CHECK-NEXT: [[C4:%[0-9]+]]:_(s32) = G_CONSTANT i32 31381 ; CHECK-NEXT: [[C5:%[0-9]+]]:_(s32) = G_CONSTANT i32 11382 ; CHECK-NEXT: G_BR %bb.21383 ; CHECK-NEXT: {{ $}}1384 ; CHECK-NEXT: bb.2.bb1:1385 ; CHECK-NEXT: [[PHI:%[0-9]+]]:_(s32) = G_PHI [[DEF]](s32), %bb.1, [[C3]](s32), %bb.3, [[C4]](s32), %bb.4, [[C5]](s32), %bb.21386 ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(s1) = G_ICMP intpred(eq), [[DEF]](s32), [[C]]1387 ; CHECK-NEXT: G_BRCOND [[ICMP]](s1), %bb.21388 ; CHECK-NEXT: G_BR %bb.61389 ; CHECK-NEXT: {{ $}}1390 ; CHECK-NEXT: bb.6.bb1:1391 ; CHECK-NEXT: [[ICMP1:%[0-9]+]]:_(s1) = G_ICMP intpred(eq), [[DEF]](s32), [[C1]]1392 ; CHECK-NEXT: G_BRCOND [[ICMP1]](s1), %bb.31393 ; CHECK-NEXT: G_BR %bb.71394 ; CHECK-NEXT: {{ $}}1395 ; CHECK-NEXT: bb.7.bb1:1396 ; CHECK-NEXT: [[ICMP2:%[0-9]+]]:_(s1) = G_ICMP intpred(eq), [[DEF]](s32), [[C2]]1397 ; CHECK-NEXT: G_BRCOND [[ICMP2]](s1), %bb.41398 ; CHECK-NEXT: G_BR %bb.51399 ; CHECK-NEXT: {{ $}}1400 ; CHECK-NEXT: bb.3.bb2:1401 ; CHECK-NEXT: G_BR %bb.21402 ; CHECK-NEXT: {{ $}}1403 ; CHECK-NEXT: bb.4.bb3:1404 ; CHECK-NEXT: G_BR %bb.21405 ; CHECK-NEXT: {{ $}}1406 ; CHECK-NEXT: bb.5.bb4:1407 ; CHECK-NEXT: ADJCALLSTACKDOWN 0, 0, implicit-def $sp, implicit $sp1408 ; CHECK-NEXT: $w0 = COPY [[PHI]](s32)1409 ; CHECK-NEXT: BL @ham, csr_aarch64_aapcs, implicit-def $lr, implicit $sp, implicit $w0, implicit-def $x01410 ; CHECK-NEXT: ADJCALLSTACKUP 0, 0, implicit-def $sp, implicit $sp1411 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(p0) = COPY $x01412bb:1413 br label %bb11414 1415bb1: ; preds = %bb3, %bb2, %bb1, %bb1416 %tmp = phi i32 [undef, %bb ], [ 4, %bb2 ], [ 3, %bb3 ], [ 1, %bb1]1417 switch i32 undef, label %bb4 [1418 i32 305, label %bb11419 i32 497, label %bb31420 i32 307, label %bb21421 ]1422 1423bb2: ; preds = %bb11424 br label %bb11425 1426bb3: ; preds = %bb11427 br label %bb11428 1429bb4: ; preds = %bb11430 %tmp5 = tail call ptr @ham(i32 %tmp)1431 unreachable1432}1433 1434declare ptr @ham(i32)1435 1436define internal void @bar() unnamed_addr #1 {1437 ; CHECK-LABEL: name: bar1438 ; CHECK: bb.1 (%ir-block.0):1439 unreachable1440}1441 1442define i1 @i1_value_cmp_is_signed(i1) {1443 ; CHECK-LABEL: name: i1_value_cmp_is_signed1444 ; CHECK: bb.1.Entry:1445 ; CHECK-NEXT: liveins: $w01446 ; CHECK-NEXT: {{ $}}1447 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $w01448 ; CHECK-NEXT: [[TRUNC:%[0-9]+]]:_(s8) = G_TRUNC [[COPY]](s32)1449 ; CHECK-NEXT: [[ASSERT_ZEXT:%[0-9]+]]:_(s8) = G_ASSERT_ZEXT [[TRUNC]], 11450 ; CHECK-NEXT: [[TRUNC1:%[0-9]+]]:_(s1) = G_TRUNC [[ASSERT_ZEXT]](s8)1451 ; CHECK-NEXT: [[C:%[0-9]+]]:_(s1) = G_CONSTANT i1 true1452 ; CHECK-NEXT: [[C1:%[0-9]+]]:_(s1) = G_CONSTANT i1 false1453 ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(s1) = G_ICMP intpred(sle), [[TRUNC1]](s1), [[C1]]1454 ; CHECK-NEXT: G_BRCOND [[ICMP]](s1), %bb.31455 ; CHECK-NEXT: G_BR %bb.21456 ; CHECK-NEXT: {{ $}}1457 ; CHECK-NEXT: bb.2.BadValue:1458 ; CHECK-NEXT: successors:1459 ; CHECK-NEXT: {{ $}}1460 ; CHECK-NEXT: ADJCALLSTACKDOWN 0, 0, implicit-def $sp, implicit $sp1461 ; CHECK-NEXT: BL @bar, csr_aarch64_aapcs, implicit-def $lr, implicit $sp1462 ; CHECK-NEXT: ADJCALLSTACKUP 0, 0, implicit-def $sp, implicit $sp1463 ; CHECK-NEXT: {{ $}}1464 ; CHECK-NEXT: bb.3.OkValue:1465 ; CHECK-NEXT: [[ZEXT:%[0-9]+]]:_(s8) = G_ZEXT [[TRUNC1]](s1)1466 ; CHECK-NEXT: [[ANYEXT:%[0-9]+]]:_(s32) = G_ANYEXT [[ZEXT]](s8)1467 ; CHECK-NEXT: $w0 = COPY [[ANYEXT]](s32)1468 ; CHECK-NEXT: RET_ReallyLR implicit $w01469Entry:1470 switch i1 %0, label %BadValue [1471 i1 false, label %OkValue1472 i1 true, label %OkValue1473 ]1474 1475BadValue:1476 call fastcc void @bar()1477 unreachable1478 1479OkValue:1480 ret i1 %01481}1482 1483