[llvm] 8c04c78 - AArch64/GlobalISel: Regenerate test checks

Matt Arsenault via llvm-commits llvm-commits at lists.llvm.org
Fri Dec 2 13:19:49 PST 2022


Author: Matt Arsenault
Date: 2022-12-02T16:19:38-05:00
New Revision: 8c04c78cfad861aea526fcc52b2d1228893710c2

URL: https://github.com/llvm/llvm-project/commit/8c04c78cfad861aea526fcc52b2d1228893710c2
DIFF: https://github.com/llvm/llvm-project/commit/8c04c78cfad861aea526fcc52b2d1228893710c2.diff

LOG: AArch64/GlobalISel: Regenerate test checks

Try to shrink the diff in the opaque pointer conversion. Had to work
around some update_mir_test_checks bugs. It seems to struggle when the
successor list is empty around the blank line checks it inserts.

Added: 
    

Modified: 
    llvm/test/CodeGen/AArch64/GlobalISel/arm64-irtranslator-switch.ll
    llvm/test/CodeGen/AArch64/GlobalISel/irtranslator-localescape.ll

Removed: 
    


################################################################################
diff  --git a/llvm/test/CodeGen/AArch64/GlobalISel/arm64-irtranslator-switch.ll b/llvm/test/CodeGen/AArch64/GlobalISel/arm64-irtranslator-switch.ll
index 3ed7ac05d2716..17457c063734c 100644
--- a/llvm/test/CodeGen/AArch64/GlobalISel/arm64-irtranslator-switch.ll
+++ b/llvm/test/CodeGen/AArch64/GlobalISel/arm64-irtranslator-switch.ll
@@ -1,40 +1,42 @@
 ; NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py
-; RUN: llc -mtriple aarch64 -O0 -aarch64-enable-atomic-cfg-tidy=0 -stop-after=irtranslator -global-isel -verify-machineinstrs %s -o - 2>&1 | FileCheck %s
+; RUN: llc -global-isel -mtriple aarch64 -O0 -aarch64-enable-atomic-cfg-tidy=0 -stop-after=irtranslator -simplify-mir -verify-machineinstrs %s -o - 2>&1 | FileCheck %s
 
 define i32 @switch(i32 %argc) {
   ; CHECK-LABEL: name: switch
   ; CHECK: bb.1.entry:
-  ; CHECK:   successors: %bb.3(0x40000000), %bb.6(0x40000000)
-  ; CHECK:   liveins: $w0
-  ; CHECK:   [[COPY:%[0-9]+]]:_(s32) = COPY $w0
-  ; CHECK:   [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 100
-  ; CHECK:   [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 200
-  ; CHECK:   [[C2:%[0-9]+]]:_(s32) = G_CONSTANT i32 2
-  ; CHECK:   [[C3:%[0-9]+]]:_(s32) = G_CONSTANT i32 1
-  ; CHECK:   [[C4:%[0-9]+]]:_(s32) = G_CONSTANT i32 0
-  ; CHECK:   [[ICMP:%[0-9]+]]:_(s1) = G_ICMP intpred(eq), [[COPY]](s32), [[C]]
-  ; CHECK:   G_BRCOND [[ICMP]](s1), %bb.3
-  ; CHECK:   G_BR %bb.6
-  ; CHECK: bb.6.entry:
-  ; CHECK:   successors: %bb.4(0x40000000), %bb.2(0x40000000)
-  ; CHECK:   [[ICMP1:%[0-9]+]]:_(s1) = G_ICMP intpred(eq), [[COPY]](s32), [[C1]]
-  ; CHECK:   G_BRCOND [[ICMP1]](s1), %bb.4
-  ; CHECK:   G_BR %bb.2
-  ; CHECK: bb.2.default:
-  ; CHECK:   successors: %bb.5(0x80000000)
-  ; CHECK:   [[ADD:%[0-9]+]]:_(s32) = G_ADD [[COPY]], [[C4]]
-  ; CHECK:   G_BR %bb.5
-  ; CHECK: bb.3.case100:
-  ; CHECK:   successors: %bb.5(0x80000000)
-  ; CHECK:   [[ADD1:%[0-9]+]]:_(s32) = G_ADD [[COPY]], [[C3]]
-  ; CHECK:   G_BR %bb.5
-  ; CHECK: bb.4.case200:
-  ; CHECK:   successors: %bb.5(0x80000000)
-  ; CHECK:   [[ADD2:%[0-9]+]]:_(s32) = G_ADD [[COPY]], [[C2]]
-  ; CHECK: bb.5.return:
-  ; CHECK:   [[PHI:%[0-9]+]]:_(s32) = G_PHI [[ADD]](s32), %bb.2, [[ADD1]](s32), %bb.3, [[ADD2]](s32), %bb.4
-  ; CHECK:   $w0 = COPY [[PHI]](s32)
-  ; CHECK:   RET_ReallyLR implicit $w0
+  ; CHECK-NEXT:   liveins: $w0
+  ; CHECK-NEXT: {{  $}}
+  ; CHECK-NEXT:   [[COPY:%[0-9]+]]:_(s32) = COPY $w0
+  ; CHECK-NEXT:   [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 100
+  ; CHECK-NEXT:   [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 200
+  ; CHECK-NEXT:   [[C2:%[0-9]+]]:_(s32) = G_CONSTANT i32 2
+  ; CHECK-NEXT:   [[C3:%[0-9]+]]:_(s32) = G_CONSTANT i32 1
+  ; CHECK-NEXT:   [[C4:%[0-9]+]]:_(s32) = G_CONSTANT i32 0
+  ; CHECK-NEXT:   [[ICMP:%[0-9]+]]:_(s1) = G_ICMP intpred(eq), [[COPY]](s32), [[C]]
+  ; CHECK-NEXT:   G_BRCOND [[ICMP]](s1), %bb.3
+  ; CHECK-NEXT:   G_BR %bb.6
+  ; CHECK-NEXT: {{  $}}
+  ; CHECK-NEXT: bb.6.entry:
+  ; CHECK-NEXT:   [[ICMP1:%[0-9]+]]:_(s1) = G_ICMP intpred(eq), [[COPY]](s32), [[C1]]
+  ; CHECK-NEXT:   G_BRCOND [[ICMP1]](s1), %bb.4
+  ; CHECK-NEXT:   G_BR %bb.2
+  ; CHECK-NEXT: {{  $}}
+  ; CHECK-NEXT: bb.2.default:
+  ; CHECK-NEXT:   [[ADD:%[0-9]+]]:_(s32) = G_ADD [[COPY]], [[C4]]
+  ; CHECK-NEXT:   G_BR %bb.5
+  ; CHECK-NEXT: {{  $}}
+  ; CHECK-NEXT: bb.3.case100:
+  ; CHECK-NEXT:   [[ADD1:%[0-9]+]]:_(s32) = G_ADD [[COPY]], [[C3]]
+  ; CHECK-NEXT:   G_BR %bb.5
+  ; CHECK-NEXT: {{  $}}
+  ; CHECK-NEXT: bb.4.case200:
+  ; CHECK-NEXT:   [[ADD2:%[0-9]+]]:_(s32) = G_ADD [[COPY]], [[C2]]
+  ; CHECK-NEXT:   G_BR %bb.5
+  ; CHECK-NEXT: {{  $}}
+  ; CHECK-NEXT: bb.5.return:
+  ; CHECK-NEXT:   [[PHI:%[0-9]+]]:_(s32) = G_PHI [[ADD]](s32), %bb.2, [[ADD1]](s32), %bb.3, [[ADD2]](s32), %bb.4
+  ; CHECK-NEXT:   $w0 = COPY [[PHI]](s32)
+  ; CHECK-NEXT:   RET_ReallyLR implicit $w0
 entry:
   switch i32 %argc, label %default [
     i32 100, label %case100
@@ -61,31 +63,33 @@ return:
 define i32 @test_cfg_remap(i32 %in) {
   ; CHECK-LABEL: name: test_cfg_remap
   ; CHECK: bb.1.entry:
-  ; CHECK:   successors: %bb.2(0x40000000), %bb.5(0x40000000)
-  ; CHECK:   liveins: $w0
-  ; CHECK:   [[COPY:%[0-9]+]]:_(s32) = COPY $w0
-  ; CHECK:   [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 1
-  ; CHECK:   [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 57
-  ; CHECK:   [[DEF:%[0-9]+]]:_(s32) = G_IMPLICIT_DEF
-  ; CHECK:   [[C2:%[0-9]+]]:_(s32) = G_CONSTANT i32 42
-  ; CHECK:   [[ICMP:%[0-9]+]]:_(s1) = G_ICMP intpred(eq), [[COPY]](s32), [[C]]
-  ; CHECK:   G_BRCOND [[ICMP]](s1), %bb.2
-  ; CHECK:   G_BR %bb.5
-  ; CHECK: bb.5.entry:
-  ; CHECK:   successors: %bb.3(0x40000000), %bb.4(0x40000000)
-  ; CHECK:   [[ICMP1:%[0-9]+]]:_(s1) = G_ICMP intpred(eq), [[COPY]](s32), [[C1]]
-  ; CHECK:   G_BRCOND [[ICMP1]](s1), %bb.3
-  ; CHECK:   G_BR %bb.4
-  ; CHECK: bb.2.next:
-  ; CHECK:   successors: %bb.4(0x80000000)
-  ; CHECK:   G_BR %bb.4
-  ; CHECK: bb.3.other:
-  ; CHECK:   $w0 = COPY [[DEF]](s32)
-  ; CHECK:   RET_ReallyLR implicit $w0
-  ; CHECK: bb.4.phi.block:
-  ; CHECK:   [[PHI:%[0-9]+]]:_(s32) = G_PHI [[C]](s32), %bb.5, [[C2]](s32), %bb.2
-  ; CHECK:   $w0 = COPY [[PHI]](s32)
-  ; CHECK:   RET_ReallyLR implicit $w0
+  ; CHECK-NEXT:   liveins: $w0
+  ; CHECK-NEXT: {{  $}}
+  ; CHECK-NEXT:   [[COPY:%[0-9]+]]:_(s32) = COPY $w0
+  ; CHECK-NEXT:   [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 1
+  ; CHECK-NEXT:   [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 57
+  ; CHECK-NEXT:   [[DEF:%[0-9]+]]:_(s32) = G_IMPLICIT_DEF
+  ; CHECK-NEXT:   [[C2:%[0-9]+]]:_(s32) = G_CONSTANT i32 42
+  ; CHECK-NEXT:   [[ICMP:%[0-9]+]]:_(s1) = G_ICMP intpred(eq), [[COPY]](s32), [[C]]
+  ; CHECK-NEXT:   G_BRCOND [[ICMP]](s1), %bb.2
+  ; CHECK-NEXT:   G_BR %bb.5
+  ; CHECK-NEXT: {{  $}}
+  ; CHECK-NEXT: bb.5.entry:
+  ; CHECK-NEXT:   [[ICMP1:%[0-9]+]]:_(s1) = G_ICMP intpred(eq), [[COPY]](s32), [[C1]]
+  ; CHECK-NEXT:   G_BRCOND [[ICMP1]](s1), %bb.3
+  ; CHECK-NEXT:   G_BR %bb.4
+  ; CHECK-NEXT: {{  $}}
+  ; CHECK-NEXT: bb.2.next:
+  ; CHECK-NEXT:   G_BR %bb.4
+  ; CHECK-NEXT: {{  $}}
+  ; CHECK-NEXT: bb.3.other:
+  ; CHECK-NEXT:   $w0 = COPY [[DEF]](s32)
+  ; CHECK-NEXT:   RET_ReallyLR implicit $w0
+  ; CHECK-NEXT: {{  $}}
+  ; CHECK-NEXT: bb.4.phi.block:
+  ; CHECK-NEXT:   [[PHI:%[0-9]+]]:_(s32) = G_PHI [[C]](s32), %bb.5, [[C2]](s32), %bb.2
+  ; CHECK-NEXT:   $w0 = COPY [[PHI]](s32)
+  ; CHECK-NEXT:   RET_ReallyLR implicit $w0
 entry:
   switch i32 %in, label %phi.block [i32 1, label %next
                                     i32 57, label %other]
@@ -104,43 +108,47 @@ phi.block:
 define i32 @test_cfg_remap_multiple_preds(i32 %in) {
   ; CHECK-LABEL: name: test_cfg_remap_multiple_preds
   ; CHECK: bb.1.entry:
-  ; CHECK:   successors: %bb.3(0x40000000), %bb.6(0x40000000)
-  ; CHECK:   liveins: $w0
-  ; CHECK:   [[COPY:%[0-9]+]]:_(s32) = COPY $w0
-  ; CHECK:   [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 1
-  ; CHECK:   [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 57
-  ; CHECK:   [[C2:%[0-9]+]]:_(s32) = G_CONSTANT i32 128
-  ; CHECK:   [[DEF:%[0-9]+]]:_(s32) = G_IMPLICIT_DEF
-  ; CHECK:   [[C3:%[0-9]+]]:_(s32) = G_CONSTANT i32 12
-  ; CHECK:   [[C4:%[0-9]+]]:_(s32) = G_CONSTANT i32 42
-  ; CHECK:   [[ICMP:%[0-9]+]]:_(s1) = G_ICMP intpred(eq), [[COPY]](s32), [[C]]
-  ; CHECK:   G_BRCOND [[ICMP]](s1), %bb.3
-  ; CHECK:   G_BR %bb.6
-  ; CHECK: bb.6.entry:
-  ; CHECK:   successors: %bb.4(0x40000000), %bb.7(0x40000000)
-  ; CHECK:   [[ICMP1:%[0-9]+]]:_(s1) = G_ICMP intpred(eq), [[COPY]](s32), [[C1]]
-  ; CHECK:   G_BRCOND [[ICMP1]](s1), %bb.4
-  ; CHECK:   G_BR %bb.7
-  ; CHECK: bb.7.entry:
-  ; CHECK:   successors: %bb.5(0x40000000), %bb.8(0x40000000)
-  ; CHECK:   [[ICMP2:%[0-9]+]]:_(s1) = G_ICMP intpred(eq), [[COPY]](s32), [[C2]]
-  ; CHECK:   G_BRCOND [[ICMP2]](s1), %bb.5
-  ; CHECK:   G_BR %bb.8
-  ; CHECK: bb.8.entry:
-  ; CHECK:   successors: %bb.5(0x80000000)
-  ; CHECK:   G_BR %bb.5
-  ; CHECK: bb.2.odd:
-  ; CHECK:   successors:
+  ; CHECK-NEXT:   liveins: $w0
+  ; CHECK-NEXT: {{  $}}
+  ; CHECK-NEXT:   [[COPY:%[0-9]+]]:_(s32) = COPY $w0
+  ; CHECK-NEXT:   [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 1
+  ; CHECK-NEXT:   [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 57
+  ; CHECK-NEXT:   [[C2:%[0-9]+]]:_(s32) = G_CONSTANT i32 128
+  ; CHECK-NEXT:   [[DEF:%[0-9]+]]:_(s32) = G_IMPLICIT_DEF
+  ; CHECK-NEXT:   [[C3:%[0-9]+]]:_(s32) = G_CONSTANT i32 12
+  ; CHECK-NEXT:   [[C4:%[0-9]+]]:_(s32) = G_CONSTANT i32 42
+  ; CHECK-NEXT:   [[ICMP:%[0-9]+]]:_(s1) = G_ICMP intpred(eq), [[COPY]](s32), [[C]]
+  ; CHECK-NEXT:   G_BRCOND [[ICMP]](s1), %bb.3
+  ; CHECK-NEXT:   G_BR %bb.6
+  ; CHECK-NEXT: {{  $}}
+  ; CHECK-NEXT: bb.6.entry:
+  ; CHECK-NEXT:   [[ICMP1:%[0-9]+]]:_(s1) = G_ICMP intpred(eq), [[COPY]](s32), [[C1]]
+  ; CHECK-NEXT:   G_BRCOND [[ICMP1]](s1), %bb.4
+  ; CHECK-NEXT:   G_BR %bb.7
+  ; CHECK-NEXT: {{  $}}
+  ; CHECK-NEXT: bb.7.entry:
+  ; CHECK-NEXT:   [[ICMP2:%[0-9]+]]:_(s1) = G_ICMP intpred(eq), [[COPY]](s32), [[C2]]
+  ; CHECK-NEXT:   G_BRCOND [[ICMP2]](s1), %bb.5
+  ; CHECK-NEXT:   G_BR %bb.8
+  ; CHECK-NEXT: {{  $}}
+  ; CHECK-NEXT: bb.8.entry:
+  ; CHECK-NEXT:   G_BR %bb.5
+  ; CHECK-NEXT: {{  $}}
+  ; CHECK-NEXT: bb.2.odd:
+  ; CHECK-NEXT:   successors:
+  ; CHECK: {{  $}}
+  ; CHECK: {{  $}}
   ; CHECK: bb.3.next:
-  ; CHECK:   successors: %bb.5(0x80000000)
-  ; CHECK:   G_BR %bb.5
-  ; CHECK: bb.4.other:
-  ; CHECK:   $w0 = COPY [[DEF]](s32)
-  ; CHECK:   RET_ReallyLR implicit $w0
-  ; CHECK: bb.5.phi.block:
-  ; CHECK:   [[PHI:%[0-9]+]]:_(s32) = G_PHI [[C]](s32), %bb.7, [[C]](s32), %bb.8, [[C4]](s32), %bb.3
-  ; CHECK:   $w0 = COPY [[C3]](s32)
-  ; CHECK:   RET_ReallyLR implicit $w0
+  ; CHECK-NEXT:   G_BR %bb.5
+  ; CHECK-NEXT: {{  $}}
+  ; CHECK-NEXT: bb.4.other:
+  ; CHECK-NEXT:   $w0 = COPY [[DEF]](s32)
+  ; CHECK-NEXT:   RET_ReallyLR implicit $w0
+  ; CHECK-NEXT: {{  $}}
+  ; CHECK-NEXT: bb.5.phi.block:
+  ; CHECK-NEXT:   [[PHI:%[0-9]+]]:_(s32) = G_PHI [[C]](s32), %bb.7, [[C]](s32), %bb.8, [[C4]](s32), %bb.3
+  ; CHECK-NEXT:   $w0 = COPY [[C3]](s32)
+  ; CHECK-NEXT:   RET_ReallyLR implicit $w0
 entry:
   switch i32 %in, label %odd [i32 1, label %next
                               i32 57, label %other
@@ -163,34 +171,38 @@ phi.block:
 define i32 @jt_test(i32 %x) {
   ; CHECK-LABEL: name: jt_test
   ; CHECK: bb.1.entry:
-  ; CHECK:   successors: %bb.4(0x40000000), %bb.5(0x40000000)
-  ; CHECK:   liveins: $w0
-  ; CHECK:   [[COPY:%[0-9]+]]:_(s32) = COPY $w0
-  ; CHECK:   [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 71
-  ; CHECK:   [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 3
-  ; CHECK:   [[C2:%[0-9]+]]:_(s32) = G_CONSTANT i32 42
-  ; CHECK:   [[C3:%[0-9]+]]:_(s32) = G_CONSTANT i32 0
-  ; CHECK:   [[C4:%[0-9]+]]:_(s32) = G_CONSTANT i32 4
-  ; CHECK:   [[SUB:%[0-9]+]]:_(s32) = G_SUB [[COPY]], [[C4]]
-  ; CHECK:   [[ZEXT:%[0-9]+]]:_(s64) = G_ZEXT [[SUB]](s32)
-  ; CHECK:   [[ZEXT1:%[0-9]+]]:_(s64) = G_ZEXT [[C]](s32)
-  ; CHECK:   [[ICMP:%[0-9]+]]:_(s1) = G_ICMP intpred(ugt), [[ZEXT]](s64), [[ZEXT1]]
-  ; CHECK:   G_BRCOND [[ICMP]](s1), %bb.4
-  ; CHECK: bb.5.entry:
-  ; CHECK:   successors: %bb.3(0x2aaaaaab), %bb.4(0x2aaaaaab), %bb.2(0x2aaaaaab)
-  ; CHECK:   [[JUMP_TABLE:%[0-9]+]]:_(p0) = G_JUMP_TABLE %jump-table.0
-  ; CHECK:   G_BRJT [[JUMP_TABLE]](p0), %jump-table.0, [[ZEXT]](s64)
-  ; CHECK: bb.2.sw.bb:
-  ; CHECK:   successors: %bb.4(0x80000000)
-  ; CHECK:   [[ADD:%[0-9]+]]:_(s32) = nsw G_ADD [[COPY]], [[C2]]
-  ; CHECK:   G_BR %bb.4
-  ; CHECK: bb.3.sw.bb1:
-  ; CHECK:   successors: %bb.4(0x80000000)
-  ; CHECK:   [[MUL:%[0-9]+]]:_(s32) = nsw G_MUL [[COPY]], [[C1]]
-  ; CHECK: bb.4.return:
-  ; CHECK:   [[PHI:%[0-9]+]]:_(s32) = G_PHI [[MUL]](s32), %bb.3, [[ADD]](s32), %bb.2, [[C3]](s32), %bb.1, [[C3]](s32), %bb.5
-  ; CHECK:   $w0 = COPY [[PHI]](s32)
-  ; CHECK:   RET_ReallyLR implicit $w0
+  ; CHECK-NEXT:   liveins: $w0
+  ; CHECK-NEXT: {{  $}}
+  ; CHECK-NEXT:   [[COPY:%[0-9]+]]:_(s32) = COPY $w0
+  ; CHECK-NEXT:   [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 71
+  ; CHECK-NEXT:   [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 3
+  ; CHECK-NEXT:   [[C2:%[0-9]+]]:_(s32) = G_CONSTANT i32 42
+  ; CHECK-NEXT:   [[C3:%[0-9]+]]:_(s32) = G_CONSTANT i32 0
+  ; CHECK-NEXT:   [[C4:%[0-9]+]]:_(s32) = G_CONSTANT i32 4
+  ; CHECK-NEXT:   [[SUB:%[0-9]+]]:_(s32) = G_SUB [[COPY]], [[C4]]
+  ; CHECK-NEXT:   [[ZEXT:%[0-9]+]]:_(s64) = G_ZEXT [[SUB]](s32)
+  ; CHECK-NEXT:   [[ZEXT1:%[0-9]+]]:_(s64) = G_ZEXT [[C]](s32)
+  ; CHECK-NEXT:   [[ICMP:%[0-9]+]]:_(s1) = G_ICMP intpred(ugt), [[ZEXT]](s64), [[ZEXT1]]
+  ; CHECK-NEXT:   G_BRCOND [[ICMP]](s1), %bb.4
+  ; CHECK-NEXT: {{  $}}
+  ; CHECK-NEXT: bb.5.entry:
+  ; CHECK-NEXT:   successors: %bb.3, %bb.4, %bb.2
+  ; CHECK-NEXT: {{  $}}
+  ; CHECK-NEXT:   [[JUMP_TABLE:%[0-9]+]]:_(p0) = G_JUMP_TABLE %jump-table.0
+  ; CHECK-NEXT:   G_BRJT [[JUMP_TABLE]](p0), %jump-table.0, [[ZEXT]](s64)
+  ; CHECK-NEXT: {{  $}}
+  ; CHECK-NEXT: bb.2.sw.bb:
+  ; CHECK-NEXT:   [[ADD:%[0-9]+]]:_(s32) = nsw G_ADD [[COPY]], [[C2]]
+  ; CHECK-NEXT:   G_BR %bb.4
+  ; CHECK-NEXT: {{  $}}
+  ; CHECK-NEXT: bb.3.sw.bb1:
+  ; CHECK-NEXT:   [[MUL:%[0-9]+]]:_(s32) = nsw G_MUL [[COPY]], [[C1]]
+  ; CHECK-NEXT:   G_BR %bb.4
+  ; CHECK-NEXT: {{  $}}
+  ; CHECK-NEXT: bb.4.return:
+  ; CHECK-NEXT:   [[PHI:%[0-9]+]]:_(s32) = G_PHI [[MUL]](s32), %bb.3, [[ADD]](s32), %bb.2, [[C3]](s32), %bb.1, [[C3]](s32), %bb.5
+  ; CHECK-NEXT:   $w0 = COPY [[PHI]](s32)
+  ; CHECK-NEXT:   RET_ReallyLR implicit $w0
 entry:
   switch i32 %x, label %return [
     i32 75, label %sw.bb
@@ -224,604 +236,607 @@ return:
 define void @jt_multiple_jump_tables(%1* %arg, i32 %arg1, i32* %arg2) {
   ; CHECK-LABEL: name: jt_multiple_jump_tables
   ; CHECK: bb.1.bb:
-  ; CHECK:   successors: %bb.56(0x40000000), %bb.61(0x40000000)
-  ; CHECK:   liveins: $w1, $x0, $x2
-  ; CHECK:   [[COPY:%[0-9]+]]:_(p0) = COPY $x0
-  ; CHECK:   [[COPY1:%[0-9]+]]:_(s32) = COPY $w1
-  ; CHECK:   [[COPY2:%[0-9]+]]:_(p0) = COPY $x2
-  ; CHECK:   [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 3
-  ; CHECK:   [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 4
-  ; CHECK:   [[C2:%[0-9]+]]:_(s32) = G_CONSTANT i32 6
-  ; CHECK:   [[C3:%[0-9]+]]:_(s32) = G_CONSTANT i32 7
-  ; CHECK:   [[C4:%[0-9]+]]:_(s32) = G_CONSTANT i32 8
-  ; CHECK:   [[C5:%[0-9]+]]:_(s32) = G_CONSTANT i32 9
-  ; CHECK:   [[C6:%[0-9]+]]:_(s32) = G_CONSTANT i32 10
-  ; CHECK:   [[C7:%[0-9]+]]:_(s32) = G_CONSTANT i32 11
-  ; CHECK:   [[C8:%[0-9]+]]:_(s32) = G_CONSTANT i32 12
-  ; CHECK:   [[C9:%[0-9]+]]:_(s32) = G_CONSTANT i32 13
-  ; CHECK:   [[C10:%[0-9]+]]:_(s32) = G_CONSTANT i32 14
-  ; CHECK:   [[C11:%[0-9]+]]:_(s32) = G_CONSTANT i32 15
-  ; CHECK:   [[C12:%[0-9]+]]:_(s32) = G_CONSTANT i32 16
-  ; CHECK:   [[C13:%[0-9]+]]:_(s32) = G_CONSTANT i32 17
-  ; CHECK:   [[C14:%[0-9]+]]:_(s32) = G_CONSTANT i32 18
-  ; CHECK:   [[C15:%[0-9]+]]:_(s32) = G_CONSTANT i32 19
-  ; CHECK:   [[C16:%[0-9]+]]:_(s32) = G_CONSTANT i32 20
-  ; CHECK:   [[C17:%[0-9]+]]:_(s32) = G_CONSTANT i32 21
-  ; CHECK:   [[C18:%[0-9]+]]:_(s32) = G_CONSTANT i32 22
-  ; CHECK:   [[C19:%[0-9]+]]:_(s32) = G_CONSTANT i32 23
-  ; CHECK:   [[C20:%[0-9]+]]:_(s32) = G_CONSTANT i32 24
-  ; CHECK:   [[C21:%[0-9]+]]:_(s32) = G_CONSTANT i32 25
-  ; CHECK:   [[C22:%[0-9]+]]:_(s32) = G_CONSTANT i32 26
-  ; CHECK:   [[C23:%[0-9]+]]:_(s32) = G_CONSTANT i32 27
-  ; CHECK:   [[C24:%[0-9]+]]:_(s32) = G_CONSTANT i32 28
-  ; CHECK:   [[C25:%[0-9]+]]:_(s32) = G_CONSTANT i32 29
-  ; CHECK:   [[C26:%[0-9]+]]:_(s32) = G_CONSTANT i32 30
-  ; CHECK:   [[C27:%[0-9]+]]:_(s32) = G_CONSTANT i32 31
-  ; CHECK:   [[C28:%[0-9]+]]:_(s32) = G_CONSTANT i32 32
-  ; CHECK:   [[C29:%[0-9]+]]:_(s32) = G_CONSTANT i32 33
-  ; CHECK:   [[C30:%[0-9]+]]:_(s32) = G_CONSTANT i32 34
-  ; CHECK:   [[C31:%[0-9]+]]:_(s32) = G_CONSTANT i32 35
-  ; CHECK:   [[C32:%[0-9]+]]:_(s32) = G_CONSTANT i32 36
-  ; CHECK:   [[C33:%[0-9]+]]:_(s32) = G_CONSTANT i32 37
-  ; CHECK:   [[C34:%[0-9]+]]:_(s32) = G_CONSTANT i32 38
-  ; CHECK:   [[C35:%[0-9]+]]:_(s32) = G_CONSTANT i32 39
-  ; CHECK:   [[C36:%[0-9]+]]:_(s32) = G_CONSTANT i32 41
-  ; CHECK:   [[C37:%[0-9]+]]:_(s32) = G_CONSTANT i32 42
-  ; CHECK:   [[C38:%[0-9]+]]:_(s32) = G_CONSTANT i32 43
-  ; CHECK:   [[C39:%[0-9]+]]:_(s32) = G_CONSTANT i32 44
-  ; CHECK:   [[C40:%[0-9]+]]:_(s32) = G_CONSTANT i32 45
-  ; CHECK:   [[C41:%[0-9]+]]:_(s32) = G_CONSTANT i32 46
-  ; CHECK:   [[C42:%[0-9]+]]:_(s32) = G_CONSTANT i32 47
-  ; CHECK:   [[C43:%[0-9]+]]:_(s32) = G_CONSTANT i32 48
-  ; CHECK:   [[C44:%[0-9]+]]:_(s32) = G_CONSTANT i32 49
-  ; CHECK:   [[C45:%[0-9]+]]:_(s32) = G_CONSTANT i32 50
-  ; CHECK:   [[C46:%[0-9]+]]:_(s32) = G_CONSTANT i32 51
-  ; CHECK:   [[C47:%[0-9]+]]:_(s32) = G_CONSTANT i32 52
-  ; CHECK:   [[C48:%[0-9]+]]:_(s32) = G_CONSTANT i32 53
-  ; CHECK:   [[C49:%[0-9]+]]:_(s32) = G_CONSTANT i32 54
-  ; CHECK:   [[C50:%[0-9]+]]:_(s32) = G_CONSTANT i32 55
-  ; CHECK:   [[C51:%[0-9]+]]:_(s32) = G_CONSTANT i32 4352
-  ; CHECK:   [[C52:%[0-9]+]]:_(s32) = G_CONSTANT i32 4353
-  ; CHECK:   [[C53:%[0-9]+]]:_(s32) = G_CONSTANT i32 4354
-  ; CHECK:   [[C54:%[0-9]+]]:_(s32) = G_CONSTANT i32 4355
-  ; CHECK:   [[GV:%[0-9]+]]:_(p0) = G_GLOBAL_VALUE @global
-  ; CHECK:   [[C55:%[0-9]+]]:_(p0) = G_CONSTANT i64 0
-  ; CHECK:   [[C56:%[0-9]+]]:_(s64) = G_CONSTANT i64 0
-  ; CHECK:   [[C57:%[0-9]+]]:_(s64) = G_CONSTANT i64 1
-  ; CHECK:   [[C58:%[0-9]+]]:_(s64) = G_CONSTANT i64 2
-  ; CHECK:   [[C59:%[0-9]+]]:_(s64) = G_CONSTANT i64 3
-  ; CHECK:   [[C60:%[0-9]+]]:_(s64) = G_CONSTANT i64 4
-  ; CHECK:   [[C61:%[0-9]+]]:_(s64) = G_CONSTANT i64 5
-  ; CHECK:   [[C62:%[0-9]+]]:_(s64) = G_CONSTANT i64 6
-  ; CHECK:   [[C63:%[0-9]+]]:_(s64) = G_CONSTANT i64 7
-  ; CHECK:   [[C64:%[0-9]+]]:_(s64) = G_CONSTANT i64 8
-  ; CHECK:   [[C65:%[0-9]+]]:_(s64) = G_CONSTANT i64 9
-  ; CHECK:   [[C66:%[0-9]+]]:_(s64) = G_CONSTANT i64 10
-  ; CHECK:   [[C67:%[0-9]+]]:_(s64) = G_CONSTANT i64 11
-  ; CHECK:   [[C68:%[0-9]+]]:_(s64) = G_CONSTANT i64 12
-  ; CHECK:   [[C69:%[0-9]+]]:_(s64) = G_CONSTANT i64 13
-  ; CHECK:   [[C70:%[0-9]+]]:_(s64) = G_CONSTANT i64 14
-  ; CHECK:   [[C71:%[0-9]+]]:_(s64) = G_CONSTANT i64 15
-  ; CHECK:   [[C72:%[0-9]+]]:_(s64) = G_CONSTANT i64 16
-  ; CHECK:   [[C73:%[0-9]+]]:_(s64) = G_CONSTANT i64 17
-  ; CHECK:   [[C74:%[0-9]+]]:_(s64) = G_CONSTANT i64 18
-  ; CHECK:   [[C75:%[0-9]+]]:_(s64) = G_CONSTANT i64 19
-  ; CHECK:   [[C76:%[0-9]+]]:_(s64) = G_CONSTANT i64 20
-  ; CHECK:   [[C77:%[0-9]+]]:_(s64) = G_CONSTANT i64 21
-  ; CHECK:   [[C78:%[0-9]+]]:_(s64) = G_CONSTANT i64 22
-  ; CHECK:   [[C79:%[0-9]+]]:_(s64) = G_CONSTANT i64 23
-  ; CHECK:   [[C80:%[0-9]+]]:_(s64) = G_CONSTANT i64 24
-  ; CHECK:   [[C81:%[0-9]+]]:_(s64) = G_CONSTANT i64 25
-  ; CHECK:   [[C82:%[0-9]+]]:_(s64) = G_CONSTANT i64 26
-  ; CHECK:   [[C83:%[0-9]+]]:_(s64) = G_CONSTANT i64 27
-  ; CHECK:   [[C84:%[0-9]+]]:_(s64) = G_CONSTANT i64 28
-  ; CHECK:   [[C85:%[0-9]+]]:_(s64) = G_CONSTANT i64 29
-  ; CHECK:   [[C86:%[0-9]+]]:_(s64) = G_CONSTANT i64 30
-  ; CHECK:   [[C87:%[0-9]+]]:_(s64) = G_CONSTANT i64 31
-  ; CHECK:   [[C88:%[0-9]+]]:_(s64) = G_CONSTANT i64 32
-  ; CHECK:   [[C89:%[0-9]+]]:_(s64) = G_CONSTANT i64 33
-  ; CHECK:   [[C90:%[0-9]+]]:_(s64) = G_CONSTANT i64 34
-  ; CHECK:   [[C91:%[0-9]+]]:_(s64) = G_CONSTANT i64 35
-  ; CHECK:   [[C92:%[0-9]+]]:_(s64) = G_CONSTANT i64 36
-  ; CHECK:   [[C93:%[0-9]+]]:_(s64) = G_CONSTANT i64 37
-  ; CHECK:   [[C94:%[0-9]+]]:_(s64) = G_CONSTANT i64 38
-  ; CHECK:   [[C95:%[0-9]+]]:_(s64) = G_CONSTANT i64 39
-  ; CHECK:   [[C96:%[0-9]+]]:_(s64) = G_CONSTANT i64 40
-  ; CHECK:   [[C97:%[0-9]+]]:_(s64) = G_CONSTANT i64 41
-  ; CHECK:   [[C98:%[0-9]+]]:_(s64) = G_CONSTANT i64 42
-  ; CHECK:   [[C99:%[0-9]+]]:_(s64) = G_CONSTANT i64 43
-  ; CHECK:   [[C100:%[0-9]+]]:_(s64) = G_CONSTANT i64 44
-  ; CHECK:   [[C101:%[0-9]+]]:_(s64) = G_CONSTANT i64 45
-  ; CHECK:   [[C102:%[0-9]+]]:_(s64) = G_CONSTANT i64 46
-  ; CHECK:   [[C103:%[0-9]+]]:_(s64) = G_CONSTANT i64 47
-  ; CHECK:   [[C104:%[0-9]+]]:_(s64) = G_CONSTANT i64 48
-  ; CHECK:   [[C105:%[0-9]+]]:_(s64) = G_CONSTANT i64 49
-  ; CHECK:   [[C106:%[0-9]+]]:_(s64) = G_CONSTANT i64 50
-  ; CHECK:   [[C107:%[0-9]+]]:_(s64) = G_CONSTANT i64 51
-  ; CHECK:   [[C108:%[0-9]+]]:_(s64) = G_CONSTANT i64 52
-  ; CHECK:   [[C109:%[0-9]+]]:_(s64) = G_CONSTANT i64 53
-  ; CHECK:   [[C110:%[0-9]+]]:_(s64) = G_CONSTANT i64 54
-  ; CHECK:   [[FRAME_INDEX:%[0-9]+]]:_(p0) = G_FRAME_INDEX %stack.0.tmp
-  ; CHECK:   [[ICMP:%[0-9]+]]:_(s1) = G_ICMP intpred(eq), [[COPY1]](s32), [[C]]
-  ; CHECK:   G_BRCOND [[ICMP]](s1), %bb.56
-  ; CHECK:   G_BR %bb.61
-  ; CHECK: bb.61.bb:
-  ; CHECK:   successors: %bb.2(0x40000000), %bb.62(0x40000000)
-  ; CHECK:   [[ICMP1:%[0-9]+]]:_(s1) = G_ICMP intpred(eq), [[COPY1]](s32), [[C1]]
-  ; CHECK:   G_BRCOND [[ICMP1]](s1), %bb.2
-  ; CHECK:   G_BR %bb.62
-  ; CHECK: bb.62.bb:
-  ; CHECK:   successors: %bb.3(0x40000000), %bb.63(0x40000000)
-  ; CHECK:   [[ICMP2:%[0-9]+]]:_(s1) = G_ICMP intpred(eq), [[COPY1]](s32), [[C2]]
-  ; CHECK:   G_BRCOND [[ICMP2]](s1), %bb.3
-  ; CHECK:   G_BR %bb.63
-  ; CHECK: bb.63.bb:
-  ; CHECK:   successors: %bb.4(0x40000000), %bb.64(0x40000000)
-  ; CHECK:   [[ICMP3:%[0-9]+]]:_(s1) = G_ICMP intpred(eq), [[COPY1]](s32), [[C3]]
-  ; CHECK:   G_BRCOND [[ICMP3]](s1), %bb.4
-  ; CHECK:   G_BR %bb.64
-  ; CHECK: bb.64.bb:
-  ; CHECK:   successors: %bb.5(0x40000000), %bb.65(0x40000000)
-  ; CHECK:   [[ICMP4:%[0-9]+]]:_(s1) = G_ICMP intpred(eq), [[COPY1]](s32), [[C4]]
-  ; CHECK:   G_BRCOND [[ICMP4]](s1), %bb.5
-  ; CHECK:   G_BR %bb.65
-  ; CHECK: bb.65.bb:
-  ; CHECK:   successors: %bb.6(0x40000000), %bb.66(0x40000000)
-  ; CHECK:   [[ICMP5:%[0-9]+]]:_(s1) = G_ICMP intpred(eq), [[COPY1]](s32), [[C5]]
-  ; CHECK:   G_BRCOND [[ICMP5]](s1), %bb.6
-  ; CHECK:   G_BR %bb.66
-  ; CHECK: bb.66.bb:
-  ; CHECK:   successors: %bb.7(0x40000000), %bb.67(0x40000000)
-  ; CHECK:   [[ICMP6:%[0-9]+]]:_(s1) = G_ICMP intpred(eq), [[COPY1]](s32), [[C6]]
-  ; CHECK:   G_BRCOND [[ICMP6]](s1), %bb.7
-  ; CHECK:   G_BR %bb.67
-  ; CHECK: bb.67.bb:
-  ; CHECK:   successors: %bb.8(0x40000000), %bb.68(0x40000000)
-  ; CHECK:   [[ICMP7:%[0-9]+]]:_(s1) = G_ICMP intpred(eq), [[COPY1]](s32), [[C7]]
-  ; CHECK:   G_BRCOND [[ICMP7]](s1), %bb.8
-  ; CHECK:   G_BR %bb.68
-  ; CHECK: bb.68.bb:
-  ; CHECK:   successors: %bb.9(0x40000000), %bb.69(0x40000000)
-  ; CHECK:   [[ICMP8:%[0-9]+]]:_(s1) = G_ICMP intpred(eq), [[COPY1]](s32), [[C8]]
-  ; CHECK:   G_BRCOND [[ICMP8]](s1), %bb.9
-  ; CHECK:   G_BR %bb.69
-  ; CHECK: bb.69.bb:
-  ; CHECK:   successors: %bb.10(0x40000000), %bb.70(0x40000000)
-  ; CHECK:   [[ICMP9:%[0-9]+]]:_(s1) = G_ICMP intpred(eq), [[COPY1]](s32), [[C9]]
-  ; CHECK:   G_BRCOND [[ICMP9]](s1), %bb.10
-  ; CHECK:   G_BR %bb.70
-  ; CHECK: bb.70.bb:
-  ; CHECK:   successors: %bb.11(0x40000000), %bb.71(0x40000000)
-  ; CHECK:   [[ICMP10:%[0-9]+]]:_(s1) = G_ICMP intpred(eq), [[COPY1]](s32), [[C10]]
-  ; CHECK:   G_BRCOND [[ICMP10]](s1), %bb.11
-  ; CHECK:   G_BR %bb.71
-  ; CHECK: bb.71.bb:
-  ; CHECK:   successors: %bb.12(0x40000000), %bb.72(0x40000000)
-  ; CHECK:   [[ICMP11:%[0-9]+]]:_(s1) = G_ICMP intpred(eq), [[COPY1]](s32), [[C11]]
-  ; CHECK:   G_BRCOND [[ICMP11]](s1), %bb.12
-  ; CHECK:   G_BR %bb.72
-  ; CHECK: bb.72.bb:
-  ; CHECK:   successors: %bb.13(0x40000000), %bb.73(0x40000000)
-  ; CHECK:   [[ICMP12:%[0-9]+]]:_(s1) = G_ICMP intpred(eq), [[COPY1]](s32), [[C12]]
-  ; CHECK:   G_BRCOND [[ICMP12]](s1), %bb.13
-  ; CHECK:   G_BR %bb.73
-  ; CHECK: bb.73.bb:
-  ; CHECK:   successors: %bb.14(0x40000000), %bb.74(0x40000000)
-  ; CHECK:   [[ICMP13:%[0-9]+]]:_(s1) = G_ICMP intpred(eq), [[COPY1]](s32), [[C13]]
-  ; CHECK:   G_BRCOND [[ICMP13]](s1), %bb.14
-  ; CHECK:   G_BR %bb.74
-  ; CHECK: bb.74.bb:
-  ; CHECK:   successors: %bb.15(0x40000000), %bb.75(0x40000000)
-  ; CHECK:   [[ICMP14:%[0-9]+]]:_(s1) = G_ICMP intpred(eq), [[COPY1]](s32), [[C14]]
-  ; CHECK:   G_BRCOND [[ICMP14]](s1), %bb.15
-  ; CHECK:   G_BR %bb.75
-  ; CHECK: bb.75.bb:
-  ; CHECK:   successors: %bb.16(0x40000000), %bb.76(0x40000000)
-  ; CHECK:   [[ICMP15:%[0-9]+]]:_(s1) = G_ICMP intpred(eq), [[COPY1]](s32), [[C15]]
-  ; CHECK:   G_BRCOND [[ICMP15]](s1), %bb.16
-  ; CHECK:   G_BR %bb.76
-  ; CHECK: bb.76.bb:
-  ; CHECK:   successors: %bb.17(0x40000000), %bb.77(0x40000000)
-  ; CHECK:   [[ICMP16:%[0-9]+]]:_(s1) = G_ICMP intpred(eq), [[COPY1]](s32), [[C16]]
-  ; CHECK:   G_BRCOND [[ICMP16]](s1), %bb.17
-  ; CHECK:   G_BR %bb.77
-  ; CHECK: bb.77.bb:
-  ; CHECK:   successors: %bb.18(0x40000000), %bb.78(0x40000000)
-  ; CHECK:   [[ICMP17:%[0-9]+]]:_(s1) = G_ICMP intpred(eq), [[COPY1]](s32), [[C17]]
-  ; CHECK:   G_BRCOND [[ICMP17]](s1), %bb.18
-  ; CHECK:   G_BR %bb.78
-  ; CHECK: bb.78.bb:
-  ; CHECK:   successors: %bb.19(0x40000000), %bb.79(0x40000000)
-  ; CHECK:   [[ICMP18:%[0-9]+]]:_(s1) = G_ICMP intpred(eq), [[COPY1]](s32), [[C18]]
-  ; CHECK:   G_BRCOND [[ICMP18]](s1), %bb.19
-  ; CHECK:   G_BR %bb.79
-  ; CHECK: bb.79.bb:
-  ; CHECK:   successors: %bb.20(0x40000000), %bb.80(0x40000000)
-  ; CHECK:   [[ICMP19:%[0-9]+]]:_(s1) = G_ICMP intpred(eq), [[COPY1]](s32), [[C19]]
-  ; CHECK:   G_BRCOND [[ICMP19]](s1), %bb.20
-  ; CHECK:   G_BR %bb.80
-  ; CHECK: bb.80.bb:
-  ; CHECK:   successors: %bb.21(0x40000000), %bb.81(0x40000000)
-  ; CHECK:   [[ICMP20:%[0-9]+]]:_(s1) = G_ICMP intpred(eq), [[COPY1]](s32), [[C20]]
-  ; CHECK:   G_BRCOND [[ICMP20]](s1), %bb.21
-  ; CHECK:   G_BR %bb.81
-  ; CHECK: bb.81.bb:
-  ; CHECK:   successors: %bb.22(0x40000000), %bb.82(0x40000000)
-  ; CHECK:   [[ICMP21:%[0-9]+]]:_(s1) = G_ICMP intpred(eq), [[COPY1]](s32), [[C21]]
-  ; CHECK:   G_BRCOND [[ICMP21]](s1), %bb.22
-  ; CHECK:   G_BR %bb.82
-  ; CHECK: bb.82.bb:
-  ; CHECK:   successors: %bb.23(0x40000000), %bb.83(0x40000000)
-  ; CHECK:   [[ICMP22:%[0-9]+]]:_(s1) = G_ICMP intpred(eq), [[COPY1]](s32), [[C22]]
-  ; CHECK:   G_BRCOND [[ICMP22]](s1), %bb.23
-  ; CHECK:   G_BR %bb.83
-  ; CHECK: bb.83.bb:
-  ; CHECK:   successors: %bb.24(0x40000000), %bb.84(0x40000000)
-  ; CHECK:   [[ICMP23:%[0-9]+]]:_(s1) = G_ICMP intpred(eq), [[COPY1]](s32), [[C23]]
-  ; CHECK:   G_BRCOND [[ICMP23]](s1), %bb.24
-  ; CHECK:   G_BR %bb.84
-  ; CHECK: bb.84.bb:
-  ; CHECK:   successors: %bb.25(0x40000000), %bb.85(0x40000000)
-  ; CHECK:   [[ICMP24:%[0-9]+]]:_(s1) = G_ICMP intpred(eq), [[COPY1]](s32), [[C24]]
-  ; CHECK:   G_BRCOND [[ICMP24]](s1), %bb.25
-  ; CHECK:   G_BR %bb.85
-  ; CHECK: bb.85.bb:
-  ; CHECK:   successors: %bb.26(0x40000000), %bb.86(0x40000000)
-  ; CHECK:   [[ICMP25:%[0-9]+]]:_(s1) = G_ICMP intpred(eq), [[COPY1]](s32), [[C25]]
-  ; CHECK:   G_BRCOND [[ICMP25]](s1), %bb.26
-  ; CHECK:   G_BR %bb.86
-  ; CHECK: bb.86.bb:
-  ; CHECK:   successors: %bb.27(0x40000000), %bb.87(0x40000000)
-  ; CHECK:   [[ICMP26:%[0-9]+]]:_(s1) = G_ICMP intpred(eq), [[COPY1]](s32), [[C26]]
-  ; CHECK:   G_BRCOND [[ICMP26]](s1), %bb.27
-  ; CHECK:   G_BR %bb.87
-  ; CHECK: bb.87.bb:
-  ; CHECK:   successors: %bb.28(0x40000000), %bb.88(0x40000000)
-  ; CHECK:   [[ICMP27:%[0-9]+]]:_(s1) = G_ICMP intpred(eq), [[COPY1]](s32), [[C27]]
-  ; CHECK:   G_BRCOND [[ICMP27]](s1), %bb.28
-  ; CHECK:   G_BR %bb.88
-  ; CHECK: bb.88.bb:
-  ; CHECK:   successors: %bb.29(0x40000000), %bb.89(0x40000000)
-  ; CHECK:   [[ICMP28:%[0-9]+]]:_(s1) = G_ICMP intpred(eq), [[COPY1]](s32), [[C28]]
-  ; CHECK:   G_BRCOND [[ICMP28]](s1), %bb.29
-  ; CHECK:   G_BR %bb.89
-  ; CHECK: bb.89.bb:
-  ; CHECK:   successors: %bb.30(0x40000000), %bb.90(0x40000000)
-  ; CHECK:   [[ICMP29:%[0-9]+]]:_(s1) = G_ICMP intpred(eq), [[COPY1]](s32), [[C29]]
-  ; CHECK:   G_BRCOND [[ICMP29]](s1), %bb.30
-  ; CHECK:   G_BR %bb.90
-  ; CHECK: bb.90.bb:
-  ; CHECK:   successors: %bb.31(0x40000000), %bb.91(0x40000000)
-  ; CHECK:   [[ICMP30:%[0-9]+]]:_(s1) = G_ICMP intpred(eq), [[COPY1]](s32), [[C30]]
-  ; CHECK:   G_BRCOND [[ICMP30]](s1), %bb.31
-  ; CHECK:   G_BR %bb.91
-  ; CHECK: bb.91.bb:
-  ; CHECK:   successors: %bb.32(0x40000000), %bb.92(0x40000000)
-  ; CHECK:   [[ICMP31:%[0-9]+]]:_(s1) = G_ICMP intpred(eq), [[COPY1]](s32), [[C31]]
-  ; CHECK:   G_BRCOND [[ICMP31]](s1), %bb.32
-  ; CHECK:   G_BR %bb.92
-  ; CHECK: bb.92.bb:
-  ; CHECK:   successors: %bb.33(0x40000000), %bb.93(0x40000000)
-  ; CHECK:   [[ICMP32:%[0-9]+]]:_(s1) = G_ICMP intpred(eq), [[COPY1]](s32), [[C32]]
-  ; CHECK:   G_BRCOND [[ICMP32]](s1), %bb.33
-  ; CHECK:   G_BR %bb.93
-  ; CHECK: bb.93.bb:
-  ; CHECK:   successors: %bb.34(0x40000000), %bb.94(0x40000000)
-  ; CHECK:   [[ICMP33:%[0-9]+]]:_(s1) = G_ICMP intpred(eq), [[COPY1]](s32), [[C33]]
-  ; CHECK:   G_BRCOND [[ICMP33]](s1), %bb.34
-  ; CHECK:   G_BR %bb.94
-  ; CHECK: bb.94.bb:
-  ; CHECK:   successors: %bb.35(0x40000000), %bb.95(0x40000000)
-  ; CHECK:   [[ICMP34:%[0-9]+]]:_(s1) = G_ICMP intpred(eq), [[COPY1]](s32), [[C34]]
-  ; CHECK:   G_BRCOND [[ICMP34]](s1), %bb.35
-  ; CHECK:   G_BR %bb.95
-  ; CHECK: bb.95.bb:
-  ; CHECK:   successors: %bb.36(0x40000000), %bb.96(0x40000000)
-  ; CHECK:   [[ICMP35:%[0-9]+]]:_(s1) = G_ICMP intpred(eq), [[COPY1]](s32), [[C35]]
-  ; CHECK:   G_BRCOND [[ICMP35]](s1), %bb.36
-  ; CHECK:   G_BR %bb.96
-  ; CHECK: bb.96.bb:
-  ; CHECK:   successors: %bb.37(0x40000000), %bb.97(0x40000000)
-  ; CHECK:   [[ICMP36:%[0-9]+]]:_(s1) = G_ICMP intpred(eq), [[COPY1]](s32), [[C36]]
-  ; CHECK:   G_BRCOND [[ICMP36]](s1), %bb.37
-  ; CHECK:   G_BR %bb.97
-  ; CHECK: bb.97.bb:
-  ; CHECK:   successors: %bb.38(0x40000000), %bb.98(0x40000000)
-  ; CHECK:   [[ICMP37:%[0-9]+]]:_(s1) = G_ICMP intpred(eq), [[COPY1]](s32), [[C37]]
-  ; CHECK:   G_BRCOND [[ICMP37]](s1), %bb.38
-  ; CHECK:   G_BR %bb.98
-  ; CHECK: bb.98.bb:
-  ; CHECK:   successors: %bb.39(0x40000000), %bb.99(0x40000000)
-  ; CHECK:   [[ICMP38:%[0-9]+]]:_(s1) = G_ICMP intpred(eq), [[COPY1]](s32), [[C38]]
-  ; CHECK:   G_BRCOND [[ICMP38]](s1), %bb.39
-  ; CHECK:   G_BR %bb.99
-  ; CHECK: bb.99.bb:
-  ; CHECK:   successors: %bb.40(0x40000000), %bb.100(0x40000000)
-  ; CHECK:   [[ICMP39:%[0-9]+]]:_(s1) = G_ICMP intpred(eq), [[COPY1]](s32), [[C39]]
-  ; CHECK:   G_BRCOND [[ICMP39]](s1), %bb.40
-  ; CHECK:   G_BR %bb.100
-  ; CHECK: bb.100.bb:
-  ; CHECK:   successors: %bb.41(0x40000000), %bb.101(0x40000000)
-  ; CHECK:   [[ICMP40:%[0-9]+]]:_(s1) = G_ICMP intpred(eq), [[COPY1]](s32), [[C40]]
-  ; CHECK:   G_BRCOND [[ICMP40]](s1), %bb.41
-  ; CHECK:   G_BR %bb.101
-  ; CHECK: bb.101.bb:
-  ; CHECK:   successors: %bb.42(0x40000000), %bb.102(0x40000000)
-  ; CHECK:   [[ICMP41:%[0-9]+]]:_(s1) = G_ICMP intpred(eq), [[COPY1]](s32), [[C41]]
-  ; CHECK:   G_BRCOND [[ICMP41]](s1), %bb.42
-  ; CHECK:   G_BR %bb.102
-  ; CHECK: bb.102.bb:
-  ; CHECK:   successors: %bb.43(0x40000000), %bb.103(0x40000000)
-  ; CHECK:   [[ICMP42:%[0-9]+]]:_(s1) = G_ICMP intpred(eq), [[COPY1]](s32), [[C42]]
-  ; CHECK:   G_BRCOND [[ICMP42]](s1), %bb.43
-  ; CHECK:   G_BR %bb.103
-  ; CHECK: bb.103.bb:
-  ; CHECK:   successors: %bb.44(0x40000000), %bb.104(0x40000000)
-  ; CHECK:   [[ICMP43:%[0-9]+]]:_(s1) = G_ICMP intpred(eq), [[COPY1]](s32), [[C43]]
-  ; CHECK:   G_BRCOND [[ICMP43]](s1), %bb.44
-  ; CHECK:   G_BR %bb.104
-  ; CHECK: bb.104.bb:
-  ; CHECK:   successors: %bb.45(0x40000000), %bb.105(0x40000000)
-  ; CHECK:   [[ICMP44:%[0-9]+]]:_(s1) = G_ICMP intpred(eq), [[COPY1]](s32), [[C44]]
-  ; CHECK:   G_BRCOND [[ICMP44]](s1), %bb.45
-  ; CHECK:   G_BR %bb.105
-  ; CHECK: bb.105.bb:
-  ; CHECK:   successors: %bb.46(0x40000000), %bb.106(0x40000000)
-  ; CHECK:   [[ICMP45:%[0-9]+]]:_(s1) = G_ICMP intpred(eq), [[COPY1]](s32), [[C45]]
-  ; CHECK:   G_BRCOND [[ICMP45]](s1), %bb.46
-  ; CHECK:   G_BR %bb.106
-  ; CHECK: bb.106.bb:
-  ; CHECK:   successors: %bb.47(0x40000000), %bb.107(0x40000000)
-  ; CHECK:   [[ICMP46:%[0-9]+]]:_(s1) = G_ICMP intpred(eq), [[COPY1]](s32), [[C46]]
-  ; CHECK:   G_BRCOND [[ICMP46]](s1), %bb.47
-  ; CHECK:   G_BR %bb.107
-  ; CHECK: bb.107.bb:
-  ; CHECK:   successors: %bb.48(0x40000000), %bb.108(0x40000000)
-  ; CHECK:   [[ICMP47:%[0-9]+]]:_(s1) = G_ICMP intpred(eq), [[COPY1]](s32), [[C47]]
-  ; CHECK:   G_BRCOND [[ICMP47]](s1), %bb.48
-  ; CHECK:   G_BR %bb.108
-  ; CHECK: bb.108.bb:
-  ; CHECK:   successors: %bb.49(0x40000000), %bb.109(0x40000000)
-  ; CHECK:   [[ICMP48:%[0-9]+]]:_(s1) = G_ICMP intpred(eq), [[COPY1]](s32), [[C48]]
-  ; CHECK:   G_BRCOND [[ICMP48]](s1), %bb.49
-  ; CHECK:   G_BR %bb.109
-  ; CHECK: bb.109.bb:
-  ; CHECK:   successors: %bb.50(0x40000000), %bb.110(0x40000000)
-  ; CHECK:   [[ICMP49:%[0-9]+]]:_(s1) = G_ICMP intpred(eq), [[COPY1]](s32), [[C49]]
-  ; CHECK:   G_BRCOND [[ICMP49]](s1), %bb.50
-  ; CHECK:   G_BR %bb.110
-  ; CHECK: bb.110.bb:
-  ; CHECK:   successors: %bb.51(0x40000000), %bb.111(0x40000000)
-  ; CHECK:   [[ICMP50:%[0-9]+]]:_(s1) = G_ICMP intpred(eq), [[COPY1]](s32), [[C50]]
-  ; CHECK:   G_BRCOND [[ICMP50]](s1), %bb.51
-  ; CHECK:   G_BR %bb.111
-  ; CHECK: bb.111.bb:
-  ; CHECK:   successors: %bb.52(0x40000000), %bb.112(0x40000000)
-  ; CHECK:   [[ICMP51:%[0-9]+]]:_(s1) = G_ICMP intpred(eq), [[COPY1]](s32), [[C51]]
-  ; CHECK:   G_BRCOND [[ICMP51]](s1), %bb.52
-  ; CHECK:   G_BR %bb.112
-  ; CHECK: bb.112.bb:
-  ; CHECK:   successors: %bb.53(0x40000000), %bb.113(0x40000000)
-  ; CHECK:   [[ICMP52:%[0-9]+]]:_(s1) = G_ICMP intpred(eq), [[COPY1]](s32), [[C52]]
-  ; CHECK:   G_BRCOND [[ICMP52]](s1), %bb.53
-  ; CHECK:   G_BR %bb.113
-  ; CHECK: bb.113.bb:
-  ; CHECK:   successors: %bb.54(0x40000000), %bb.114(0x40000000)
-  ; CHECK:   [[ICMP53:%[0-9]+]]:_(s1) = G_ICMP intpred(eq), [[COPY1]](s32), [[C53]]
-  ; CHECK:   G_BRCOND [[ICMP53]](s1), %bb.54
-  ; CHECK:   G_BR %bb.114
-  ; CHECK: bb.114.bb:
-  ; CHECK:   successors: %bb.55(0x40000000), %bb.60(0x40000000)
-  ; CHECK:   [[ICMP54:%[0-9]+]]:_(s1) = G_ICMP intpred(eq), [[COPY1]](s32), [[C54]]
-  ; CHECK:   G_BRCOND [[ICMP54]](s1), %bb.55
-  ; CHECK:   G_BR %bb.60
-  ; CHECK: bb.2.bb3:
-  ; CHECK:   successors: %bb.56(0x80000000)
-  ; CHECK:   G_BR %bb.56
-  ; CHECK: bb.3.bb4:
-  ; CHECK:   successors: %bb.56(0x80000000)
-  ; CHECK:   G_BR %bb.56
-  ; CHECK: bb.4.bb5:
-  ; CHECK:   successors: %bb.56(0x80000000)
-  ; CHECK:   G_BR %bb.56
-  ; CHECK: bb.5.bb6:
-  ; CHECK:   successors: %bb.56(0x80000000)
-  ; CHECK:   G_BR %bb.56
-  ; CHECK: bb.6.bb7:
-  ; CHECK:   successors: %bb.56(0x80000000)
-  ; CHECK:   G_BR %bb.56
-  ; CHECK: bb.7.bb8:
-  ; CHECK:   successors: %bb.56(0x80000000)
-  ; CHECK:   G_BR %bb.56
-  ; CHECK: bb.8.bb9:
-  ; CHECK:   successors: %bb.56(0x80000000)
-  ; CHECK:   G_BR %bb.56
-  ; CHECK: bb.9.bb10:
-  ; CHECK:   successors: %bb.56(0x80000000)
-  ; CHECK:   G_BR %bb.56
-  ; CHECK: bb.10.bb11:
-  ; CHECK:   successors: %bb.56(0x80000000)
-  ; CHECK:   G_BR %bb.56
-  ; CHECK: bb.11.bb12:
-  ; CHECK:   successors: %bb.56(0x80000000)
-  ; CHECK:   G_BR %bb.56
-  ; CHECK: bb.12.bb13:
-  ; CHECK:   successors: %bb.56(0x80000000)
-  ; CHECK:   G_BR %bb.56
-  ; CHECK: bb.13.bb14:
-  ; CHECK:   successors: %bb.56(0x80000000)
-  ; CHECK:   G_BR %bb.56
-  ; CHECK: bb.14.bb15:
-  ; CHECK:   successors: %bb.56(0x80000000)
-  ; CHECK:   G_BR %bb.56
-  ; CHECK: bb.15.bb16:
-  ; CHECK:   successors: %bb.56(0x80000000)
-  ; CHECK:   G_BR %bb.56
-  ; CHECK: bb.16.bb17:
-  ; CHECK:   successors: %bb.56(0x80000000)
-  ; CHECK:   G_BR %bb.56
-  ; CHECK: bb.17.bb18:
-  ; CHECK:   successors: %bb.56(0x80000000)
-  ; CHECK:   G_BR %bb.56
-  ; CHECK: bb.18.bb19:
-  ; CHECK:   successors: %bb.56(0x80000000)
-  ; CHECK:   G_BR %bb.56
-  ; CHECK: bb.19.bb20:
-  ; CHECK:   successors: %bb.56(0x80000000)
-  ; CHECK:   G_BR %bb.56
-  ; CHECK: bb.20.bb21:
-  ; CHECK:   successors: %bb.56(0x80000000)
-  ; CHECK:   G_BR %bb.56
-  ; CHECK: bb.21.bb22:
-  ; CHECK:   successors: %bb.56(0x80000000)
-  ; CHECK:   G_BR %bb.56
-  ; CHECK: bb.22.bb23:
-  ; CHECK:   successors: %bb.56(0x80000000)
-  ; CHECK:   G_BR %bb.56
-  ; CHECK: bb.23.bb24:
-  ; CHECK:   successors: %bb.56(0x80000000)
-  ; CHECK:   G_BR %bb.56
-  ; CHECK: bb.24.bb25:
-  ; CHECK:   successors: %bb.56(0x80000000)
-  ; CHECK:   G_BR %bb.56
-  ; CHECK: bb.25.bb26:
-  ; CHECK:   successors: %bb.56(0x80000000)
-  ; CHECK:   G_BR %bb.56
-  ; CHECK: bb.26.bb27:
-  ; CHECK:   successors: %bb.56(0x80000000)
-  ; CHECK:   G_BR %bb.56
-  ; CHECK: bb.27.bb28:
-  ; CHECK:   successors: %bb.56(0x80000000)
-  ; CHECK:   G_BR %bb.56
-  ; CHECK: bb.28.bb29:
-  ; CHECK:   successors: %bb.56(0x80000000)
-  ; CHECK:   G_BR %bb.56
-  ; CHECK: bb.29.bb30:
-  ; CHECK:   successors: %bb.56(0x80000000)
-  ; CHECK:   G_BR %bb.56
-  ; CHECK: bb.30.bb31:
-  ; CHECK:   successors: %bb.56(0x80000000)
-  ; CHECK:   G_BR %bb.56
-  ; CHECK: bb.31.bb32:
-  ; CHECK:   successors: %bb.56(0x80000000)
-  ; CHECK:   G_BR %bb.56
-  ; CHECK: bb.32.bb33:
-  ; CHECK:   successors: %bb.56(0x80000000)
-  ; CHECK:   G_BR %bb.56
-  ; CHECK: bb.33.bb34:
-  ; CHECK:   successors: %bb.56(0x80000000)
-  ; CHECK:   G_BR %bb.56
-  ; CHECK: bb.34.bb35:
-  ; CHECK:   successors: %bb.56(0x80000000)
-  ; CHECK:   G_BR %bb.56
-  ; CHECK: bb.35.bb36:
-  ; CHECK:   successors: %bb.56(0x80000000)
-  ; CHECK:   G_BR %bb.56
-  ; CHECK: bb.36.bb37:
-  ; CHECK:   successors: %bb.56(0x80000000)
-  ; CHECK:   G_BR %bb.56
-  ; CHECK: bb.37.bb38:
-  ; CHECK:   successors: %bb.56(0x80000000)
-  ; CHECK:   G_BR %bb.56
-  ; CHECK: bb.38.bb39:
-  ; CHECK:   successors: %bb.56(0x80000000)
-  ; CHECK:   G_BR %bb.56
-  ; CHECK: bb.39.bb40:
-  ; CHECK:   successors: %bb.56(0x80000000)
-  ; CHECK:   G_BR %bb.56
-  ; CHECK: bb.40.bb41:
-  ; CHECK:   successors: %bb.56(0x80000000)
-  ; CHECK:   G_BR %bb.56
-  ; CHECK: bb.41.bb42:
-  ; CHECK:   successors: %bb.56(0x80000000)
-  ; CHECK:   G_BR %bb.56
-  ; CHECK: bb.42.bb43:
-  ; CHECK:   successors: %bb.56(0x80000000)
-  ; CHECK:   G_BR %bb.56
-  ; CHECK: bb.43.bb44:
-  ; CHECK:   successors: %bb.56(0x80000000)
-  ; CHECK:   G_BR %bb.56
-  ; CHECK: bb.44.bb45:
-  ; CHECK:   successors: %bb.56(0x80000000)
-  ; CHECK:   G_BR %bb.56
-  ; CHECK: bb.45.bb46:
-  ; CHECK:   successors: %bb.56(0x80000000)
-  ; CHECK:   G_BR %bb.56
-  ; CHECK: bb.46.bb47:
-  ; CHECK:   successors: %bb.56(0x80000000)
-  ; CHECK:   G_BR %bb.56
-  ; CHECK: bb.47.bb48:
-  ; CHECK:   successors: %bb.56(0x80000000)
-  ; CHECK:   G_BR %bb.56
-  ; CHECK: bb.48.bb49:
-  ; CHECK:   successors: %bb.56(0x80000000)
-  ; CHECK:   G_BR %bb.56
-  ; CHECK: bb.49.bb50:
-  ; CHECK:   successors: %bb.56(0x80000000)
-  ; CHECK:   G_BR %bb.56
-  ; CHECK: bb.50.bb51:
-  ; CHECK:   successors: %bb.56(0x80000000)
-  ; CHECK:   G_BR %bb.56
-  ; CHECK: bb.51.bb52:
-  ; CHECK:   successors: %bb.56(0x80000000)
-  ; CHECK:   G_BR %bb.56
-  ; CHECK: bb.52.bb53:
-  ; CHECK:   successors: %bb.56(0x80000000)
-  ; CHECK:   G_BR %bb.56
-  ; CHECK: bb.53.bb54:
-  ; CHECK:   successors: %bb.56(0x80000000)
-  ; CHECK:   G_BR %bb.56
-  ; CHECK: bb.54.bb55:
-  ; CHECK:   successors: %bb.56(0x80000000)
-  ; CHECK:   G_BR %bb.56
-  ; CHECK: bb.55.bb56:
-  ; CHECK:   successors: %bb.56(0x80000000)
-  ; CHECK: bb.56.bb57:
-  ; CHECK:   successors: %bb.59(0x80000000)
-  ; CHECK:   [[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.55
-  ; CHECK:   [[C111:%[0-9]+]]:_(s64) = G_CONSTANT i64 16
-  ; CHECK:   [[MUL:%[0-9]+]]:_(s64) = G_MUL [[PHI]], [[C111]]
-  ; CHECK:   [[PTR_ADD:%[0-9]+]]:_(p0) = G_PTR_ADD [[GV]], [[MUL]](s64)
-  ; CHECK:   [[C112:%[0-9]+]]:_(s64) = G_CONSTANT i64 8
-  ; CHECK:   [[PTR_ADD1:%[0-9]+]]:_(p0) = G_PTR_ADD [[PTR_ADD]], [[C112]](s64)
-  ; CHECK:   [[LOAD:%[0-9]+]]:_(p0) = G_LOAD [[PTR_ADD1]](p0) :: (load (p0) from %ir.tmp59)
-  ; CHECK:   ADJCALLSTACKDOWN 0, 0, implicit-def $sp, implicit $sp
-  ; CHECK:   $x0 = COPY [[COPY]](p0)
-  ; CHECK:   $x1 = COPY [[LOAD]](p0)
-  ; CHECK:   BL @wibble, csr_aarch64_aapcs_thisreturn, implicit-def $lr, implicit $sp, implicit $x0, implicit $x1
-  ; CHECK:   [[COPY3:%[0-9]+]]:_(p0) = COPY [[COPY]](p0)
-  ; CHECK:   ADJCALLSTACKUP 0, 0, implicit-def $sp, implicit $sp
-  ; CHECK:   G_BR %bb.59
-  ; CHECK: bb.57.bb62:
-  ; CHECK:   successors: %bb.59(0x80000000)
-  ; CHECK:   ADJCALLSTACKDOWN 0, 0, implicit-def $sp, implicit $sp
-  ; CHECK:   $x0 = COPY [[COPY]](p0)
-  ; CHECK:   $x1 = COPY [[COPY2]](p0)
-  ; CHECK:   BL @wibble, csr_aarch64_aapcs_thisreturn, implicit-def $lr, implicit $sp, implicit $x0, implicit $x1
-  ; CHECK:   [[COPY4:%[0-9]+]]:_(p0) = COPY [[COPY]](p0)
-  ; CHECK:   ADJCALLSTACKUP 0, 0, implicit-def $sp, implicit $sp
-  ; CHECK:   G_BR %bb.59
-  ; CHECK: bb.58.bb64:
-  ; CHECK:   successors: %bb.59(0x80000000)
-  ; CHECK:   [[COPY5:%[0-9]+]]:_(p0) = COPY [[FRAME_INDEX]](p0)
-  ; CHECK:   ADJCALLSTACKDOWN 0, 0, implicit-def $sp, implicit $sp
-  ; CHECK:   $w0 = COPY [[COPY1]](s32)
-  ; CHECK:   $x1 = COPY [[COPY5]](p0)
-  ; CHECK:   BL @baz, csr_aarch64_aapcs, implicit-def $lr, implicit $sp, implicit $w0, implicit $x1
-  ; CHECK:   ADJCALLSTACKUP 0, 0, implicit-def $sp, implicit $sp
-  ; CHECK:   ADJCALLSTACKDOWN 0, 0, implicit-def $sp, implicit $sp
-  ; CHECK:   $x0 = COPY [[COPY]](p0)
-  ; CHECK:   $x1 = COPY [[COPY5]](p0)
-  ; CHECK:   BL @wibble, csr_aarch64_aapcs_thisreturn, implicit-def $lr, implicit $sp, implicit $x0, implicit $x1
-  ; CHECK:   [[COPY6:%[0-9]+]]:_(p0) = COPY [[COPY]](p0)
-  ; CHECK:   ADJCALLSTACKUP 0, 0, implicit-def $sp, implicit $sp
-  ; CHECK: bb.59.bb68:
-  ; CHECK:   RET_ReallyLR
-  ; CHECK: bb.60.bb69:
-  ; CHECK:   successors: %bb.58(0x40000000), %bb.57(0x40000000)
-  ; CHECK:   [[ICMP55:%[0-9]+]]:_(s1) = G_ICMP intpred(eq), [[COPY2]](p0), [[C55]]
-  ; CHECK:   G_BRCOND [[ICMP55]](s1), %bb.58
-  ; CHECK:   G_BR %bb.57
+  ; CHECK-NEXT:   liveins: $w1, $x0, $x2
+  ; CHECK-NEXT: {{  $}}
+  ; CHECK-NEXT:   [[COPY:%[0-9]+]]:_(p0) = COPY $x0
+  ; CHECK-NEXT:   [[COPY1:%[0-9]+]]:_(s32) = COPY $w1
+  ; CHECK-NEXT:   [[COPY2:%[0-9]+]]:_(p0) = COPY $x2
+  ; CHECK-NEXT:   [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 3
+  ; CHECK-NEXT:   [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 4
+  ; CHECK-NEXT:   [[C2:%[0-9]+]]:_(s32) = G_CONSTANT i32 6
+  ; CHECK-NEXT:   [[C3:%[0-9]+]]:_(s32) = G_CONSTANT i32 7
+  ; CHECK-NEXT:   [[C4:%[0-9]+]]:_(s32) = G_CONSTANT i32 8
+  ; CHECK-NEXT:   [[C5:%[0-9]+]]:_(s32) = G_CONSTANT i32 9
+  ; CHECK-NEXT:   [[C6:%[0-9]+]]:_(s32) = G_CONSTANT i32 10
+  ; CHECK-NEXT:   [[C7:%[0-9]+]]:_(s32) = G_CONSTANT i32 11
+  ; CHECK-NEXT:   [[C8:%[0-9]+]]:_(s32) = G_CONSTANT i32 12
+  ; CHECK-NEXT:   [[C9:%[0-9]+]]:_(s32) = G_CONSTANT i32 13
+  ; CHECK-NEXT:   [[C10:%[0-9]+]]:_(s32) = G_CONSTANT i32 14
+  ; CHECK-NEXT:   [[C11:%[0-9]+]]:_(s32) = G_CONSTANT i32 15
+  ; CHECK-NEXT:   [[C12:%[0-9]+]]:_(s32) = G_CONSTANT i32 16
+  ; CHECK-NEXT:   [[C13:%[0-9]+]]:_(s32) = G_CONSTANT i32 17
+  ; CHECK-NEXT:   [[C14:%[0-9]+]]:_(s32) = G_CONSTANT i32 18
+  ; CHECK-NEXT:   [[C15:%[0-9]+]]:_(s32) = G_CONSTANT i32 19
+  ; CHECK-NEXT:   [[C16:%[0-9]+]]:_(s32) = G_CONSTANT i32 20
+  ; CHECK-NEXT:   [[C17:%[0-9]+]]:_(s32) = G_CONSTANT i32 21
+  ; CHECK-NEXT:   [[C18:%[0-9]+]]:_(s32) = G_CONSTANT i32 22
+  ; CHECK-NEXT:   [[C19:%[0-9]+]]:_(s32) = G_CONSTANT i32 23
+  ; CHECK-NEXT:   [[C20:%[0-9]+]]:_(s32) = G_CONSTANT i32 24
+  ; CHECK-NEXT:   [[C21:%[0-9]+]]:_(s32) = G_CONSTANT i32 25
+  ; CHECK-NEXT:   [[C22:%[0-9]+]]:_(s32) = G_CONSTANT i32 26
+  ; CHECK-NEXT:   [[C23:%[0-9]+]]:_(s32) = G_CONSTANT i32 27
+  ; CHECK-NEXT:   [[C24:%[0-9]+]]:_(s32) = G_CONSTANT i32 28
+  ; CHECK-NEXT:   [[C25:%[0-9]+]]:_(s32) = G_CONSTANT i32 29
+  ; CHECK-NEXT:   [[C26:%[0-9]+]]:_(s32) = G_CONSTANT i32 30
+  ; CHECK-NEXT:   [[C27:%[0-9]+]]:_(s32) = G_CONSTANT i32 31
+  ; CHECK-NEXT:   [[C28:%[0-9]+]]:_(s32) = G_CONSTANT i32 32
+  ; CHECK-NEXT:   [[C29:%[0-9]+]]:_(s32) = G_CONSTANT i32 33
+  ; CHECK-NEXT:   [[C30:%[0-9]+]]:_(s32) = G_CONSTANT i32 34
+  ; CHECK-NEXT:   [[C31:%[0-9]+]]:_(s32) = G_CONSTANT i32 35
+  ; CHECK-NEXT:   [[C32:%[0-9]+]]:_(s32) = G_CONSTANT i32 36
+  ; CHECK-NEXT:   [[C33:%[0-9]+]]:_(s32) = G_CONSTANT i32 37
+  ; CHECK-NEXT:   [[C34:%[0-9]+]]:_(s32) = G_CONSTANT i32 38
+  ; CHECK-NEXT:   [[C35:%[0-9]+]]:_(s32) = G_CONSTANT i32 39
+  ; CHECK-NEXT:   [[C36:%[0-9]+]]:_(s32) = G_CONSTANT i32 41
+  ; CHECK-NEXT:   [[C37:%[0-9]+]]:_(s32) = G_CONSTANT i32 42
+  ; CHECK-NEXT:   [[C38:%[0-9]+]]:_(s32) = G_CONSTANT i32 43
+  ; CHECK-NEXT:   [[C39:%[0-9]+]]:_(s32) = G_CONSTANT i32 44
+  ; CHECK-NEXT:   [[C40:%[0-9]+]]:_(s32) = G_CONSTANT i32 45
+  ; CHECK-NEXT:   [[C41:%[0-9]+]]:_(s32) = G_CONSTANT i32 46
+  ; CHECK-NEXT:   [[C42:%[0-9]+]]:_(s32) = G_CONSTANT i32 47
+  ; CHECK-NEXT:   [[C43:%[0-9]+]]:_(s32) = G_CONSTANT i32 48
+  ; CHECK-NEXT:   [[C44:%[0-9]+]]:_(s32) = G_CONSTANT i32 49
+  ; CHECK-NEXT:   [[C45:%[0-9]+]]:_(s32) = G_CONSTANT i32 50
+  ; CHECK-NEXT:   [[C46:%[0-9]+]]:_(s32) = G_CONSTANT i32 51
+  ; CHECK-NEXT:   [[C47:%[0-9]+]]:_(s32) = G_CONSTANT i32 52
+  ; CHECK-NEXT:   [[C48:%[0-9]+]]:_(s32) = G_CONSTANT i32 53
+  ; CHECK-NEXT:   [[C49:%[0-9]+]]:_(s32) = G_CONSTANT i32 54
+  ; CHECK-NEXT:   [[C50:%[0-9]+]]:_(s32) = G_CONSTANT i32 55
+  ; CHECK-NEXT:   [[C51:%[0-9]+]]:_(s32) = G_CONSTANT i32 4352
+  ; CHECK-NEXT:   [[C52:%[0-9]+]]:_(s32) = G_CONSTANT i32 4353
+  ; CHECK-NEXT:   [[C53:%[0-9]+]]:_(s32) = G_CONSTANT i32 4354
+  ; CHECK-NEXT:   [[C54:%[0-9]+]]:_(s32) = G_CONSTANT i32 4355
+  ; CHECK-NEXT:   [[GV:%[0-9]+]]:_(p0) = G_GLOBAL_VALUE @global
+  ; CHECK-NEXT:   [[C55:%[0-9]+]]:_(p0) = G_CONSTANT i64 0
+  ; CHECK-NEXT:   [[C56:%[0-9]+]]:_(s64) = G_CONSTANT i64 0
+  ; CHECK-NEXT:   [[C57:%[0-9]+]]:_(s64) = G_CONSTANT i64 1
+  ; CHECK-NEXT:   [[C58:%[0-9]+]]:_(s64) = G_CONSTANT i64 2
+  ; CHECK-NEXT:   [[C59:%[0-9]+]]:_(s64) = G_CONSTANT i64 3
+  ; CHECK-NEXT:   [[C60:%[0-9]+]]:_(s64) = G_CONSTANT i64 4
+  ; CHECK-NEXT:   [[C61:%[0-9]+]]:_(s64) = G_CONSTANT i64 5
+  ; CHECK-NEXT:   [[C62:%[0-9]+]]:_(s64) = G_CONSTANT i64 6
+  ; CHECK-NEXT:   [[C63:%[0-9]+]]:_(s64) = G_CONSTANT i64 7
+  ; CHECK-NEXT:   [[C64:%[0-9]+]]:_(s64) = G_CONSTANT i64 8
+  ; CHECK-NEXT:   [[C65:%[0-9]+]]:_(s64) = G_CONSTANT i64 9
+  ; CHECK-NEXT:   [[C66:%[0-9]+]]:_(s64) = G_CONSTANT i64 10
+  ; CHECK-NEXT:   [[C67:%[0-9]+]]:_(s64) = G_CONSTANT i64 11
+  ; CHECK-NEXT:   [[C68:%[0-9]+]]:_(s64) = G_CONSTANT i64 12
+  ; CHECK-NEXT:   [[C69:%[0-9]+]]:_(s64) = G_CONSTANT i64 13
+  ; CHECK-NEXT:   [[C70:%[0-9]+]]:_(s64) = G_CONSTANT i64 14
+  ; CHECK-NEXT:   [[C71:%[0-9]+]]:_(s64) = G_CONSTANT i64 15
+  ; CHECK-NEXT:   [[C72:%[0-9]+]]:_(s64) = G_CONSTANT i64 16
+  ; CHECK-NEXT:   [[C73:%[0-9]+]]:_(s64) = G_CONSTANT i64 17
+  ; CHECK-NEXT:   [[C74:%[0-9]+]]:_(s64) = G_CONSTANT i64 18
+  ; CHECK-NEXT:   [[C75:%[0-9]+]]:_(s64) = G_CONSTANT i64 19
+  ; CHECK-NEXT:   [[C76:%[0-9]+]]:_(s64) = G_CONSTANT i64 20
+  ; CHECK-NEXT:   [[C77:%[0-9]+]]:_(s64) = G_CONSTANT i64 21
+  ; CHECK-NEXT:   [[C78:%[0-9]+]]:_(s64) = G_CONSTANT i64 22
+  ; CHECK-NEXT:   [[C79:%[0-9]+]]:_(s64) = G_CONSTANT i64 23
+  ; CHECK-NEXT:   [[C80:%[0-9]+]]:_(s64) = G_CONSTANT i64 24
+  ; CHECK-NEXT:   [[C81:%[0-9]+]]:_(s64) = G_CONSTANT i64 25
+  ; CHECK-NEXT:   [[C82:%[0-9]+]]:_(s64) = G_CONSTANT i64 26
+  ; CHECK-NEXT:   [[C83:%[0-9]+]]:_(s64) = G_CONSTANT i64 27
+  ; CHECK-NEXT:   [[C84:%[0-9]+]]:_(s64) = G_CONSTANT i64 28
+  ; CHECK-NEXT:   [[C85:%[0-9]+]]:_(s64) = G_CONSTANT i64 29
+  ; CHECK-NEXT:   [[C86:%[0-9]+]]:_(s64) = G_CONSTANT i64 30
+  ; CHECK-NEXT:   [[C87:%[0-9]+]]:_(s64) = G_CONSTANT i64 31
+  ; CHECK-NEXT:   [[C88:%[0-9]+]]:_(s64) = G_CONSTANT i64 32
+  ; CHECK-NEXT:   [[C89:%[0-9]+]]:_(s64) = G_CONSTANT i64 33
+  ; CHECK-NEXT:   [[C90:%[0-9]+]]:_(s64) = G_CONSTANT i64 34
+  ; CHECK-NEXT:   [[C91:%[0-9]+]]:_(s64) = G_CONSTANT i64 35
+  ; CHECK-NEXT:   [[C92:%[0-9]+]]:_(s64) = G_CONSTANT i64 36
+  ; CHECK-NEXT:   [[C93:%[0-9]+]]:_(s64) = G_CONSTANT i64 37
+  ; CHECK-NEXT:   [[C94:%[0-9]+]]:_(s64) = G_CONSTANT i64 38
+  ; CHECK-NEXT:   [[C95:%[0-9]+]]:_(s64) = G_CONSTANT i64 39
+  ; CHECK-NEXT:   [[C96:%[0-9]+]]:_(s64) = G_CONSTANT i64 40
+  ; CHECK-NEXT:   [[C97:%[0-9]+]]:_(s64) = G_CONSTANT i64 41
+  ; CHECK-NEXT:   [[C98:%[0-9]+]]:_(s64) = G_CONSTANT i64 42
+  ; CHECK-NEXT:   [[C99:%[0-9]+]]:_(s64) = G_CONSTANT i64 43
+  ; CHECK-NEXT:   [[C100:%[0-9]+]]:_(s64) = G_CONSTANT i64 44
+  ; CHECK-NEXT:   [[C101:%[0-9]+]]:_(s64) = G_CONSTANT i64 45
+  ; CHECK-NEXT:   [[C102:%[0-9]+]]:_(s64) = G_CONSTANT i64 46
+  ; CHECK-NEXT:   [[C103:%[0-9]+]]:_(s64) = G_CONSTANT i64 47
+  ; CHECK-NEXT:   [[C104:%[0-9]+]]:_(s64) = G_CONSTANT i64 48
+  ; CHECK-NEXT:   [[C105:%[0-9]+]]:_(s64) = G_CONSTANT i64 49
+  ; CHECK-NEXT:   [[C106:%[0-9]+]]:_(s64) = G_CONSTANT i64 50
+  ; CHECK-NEXT:   [[C107:%[0-9]+]]:_(s64) = G_CONSTANT i64 51
+  ; CHECK-NEXT:   [[C108:%[0-9]+]]:_(s64) = G_CONSTANT i64 52
+  ; CHECK-NEXT:   [[C109:%[0-9]+]]:_(s64) = G_CONSTANT i64 53
+  ; CHECK-NEXT:   [[C110:%[0-9]+]]:_(s64) = G_CONSTANT i64 54
+  ; CHECK-NEXT:   [[FRAME_INDEX:%[0-9]+]]:_(p0) = G_FRAME_INDEX %stack.0.tmp
+  ; CHECK-NEXT:   [[ICMP:%[0-9]+]]:_(s1) = G_ICMP intpred(eq), [[COPY1]](s32), [[C]]
+  ; CHECK-NEXT:   G_BRCOND [[ICMP]](s1), %bb.56
+  ; CHECK-NEXT:   G_BR %bb.61
+  ; CHECK-NEXT: {{  $}}
+  ; CHECK-NEXT: bb.61.bb:
+  ; CHECK-NEXT:   [[ICMP1:%[0-9]+]]:_(s1) = G_ICMP intpred(eq), [[COPY1]](s32), [[C1]]
+  ; CHECK-NEXT:   G_BRCOND [[ICMP1]](s1), %bb.2
+  ; CHECK-NEXT:   G_BR %bb.62
+  ; CHECK-NEXT: {{  $}}
+  ; CHECK-NEXT: bb.62.bb:
+  ; CHECK-NEXT:   [[ICMP2:%[0-9]+]]:_(s1) = G_ICMP intpred(eq), [[COPY1]](s32), [[C2]]
+  ; CHECK-NEXT:   G_BRCOND [[ICMP2]](s1), %bb.3
+  ; CHECK-NEXT:   G_BR %bb.63
+  ; CHECK-NEXT: {{  $}}
+  ; CHECK-NEXT: bb.63.bb:
+  ; CHECK-NEXT:   [[ICMP3:%[0-9]+]]:_(s1) = G_ICMP intpred(eq), [[COPY1]](s32), [[C3]]
+  ; CHECK-NEXT:   G_BRCOND [[ICMP3]](s1), %bb.4
+  ; CHECK-NEXT:   G_BR %bb.64
+  ; CHECK-NEXT: {{  $}}
+  ; CHECK-NEXT: bb.64.bb:
+  ; CHECK-NEXT:   [[ICMP4:%[0-9]+]]:_(s1) = G_ICMP intpred(eq), [[COPY1]](s32), [[C4]]
+  ; CHECK-NEXT:   G_BRCOND [[ICMP4]](s1), %bb.5
+  ; CHECK-NEXT:   G_BR %bb.65
+  ; CHECK-NEXT: {{  $}}
+  ; CHECK-NEXT: bb.65.bb:
+  ; CHECK-NEXT:   [[ICMP5:%[0-9]+]]:_(s1) = G_ICMP intpred(eq), [[COPY1]](s32), [[C5]]
+  ; CHECK-NEXT:   G_BRCOND [[ICMP5]](s1), %bb.6
+  ; CHECK-NEXT:   G_BR %bb.66
+  ; CHECK-NEXT: {{  $}}
+  ; CHECK-NEXT: bb.66.bb:
+  ; CHECK-NEXT:   [[ICMP6:%[0-9]+]]:_(s1) = G_ICMP intpred(eq), [[COPY1]](s32), [[C6]]
+  ; CHECK-NEXT:   G_BRCOND [[ICMP6]](s1), %bb.7
+  ; CHECK-NEXT:   G_BR %bb.67
+  ; CHECK-NEXT: {{  $}}
+  ; CHECK-NEXT: bb.67.bb:
+  ; CHECK-NEXT:   [[ICMP7:%[0-9]+]]:_(s1) = G_ICMP intpred(eq), [[COPY1]](s32), [[C7]]
+  ; CHECK-NEXT:   G_BRCOND [[ICMP7]](s1), %bb.8
+  ; CHECK-NEXT:   G_BR %bb.68
+  ; CHECK-NEXT: {{  $}}
+  ; CHECK-NEXT: bb.68.bb:
+  ; CHECK-NEXT:   [[ICMP8:%[0-9]+]]:_(s1) = G_ICMP intpred(eq), [[COPY1]](s32), [[C8]]
+  ; CHECK-NEXT:   G_BRCOND [[ICMP8]](s1), %bb.9
+  ; CHECK-NEXT:   G_BR %bb.69
+  ; CHECK-NEXT: {{  $}}
+  ; CHECK-NEXT: bb.69.bb:
+  ; CHECK-NEXT:   [[ICMP9:%[0-9]+]]:_(s1) = G_ICMP intpred(eq), [[COPY1]](s32), [[C9]]
+  ; CHECK-NEXT:   G_BRCOND [[ICMP9]](s1), %bb.10
+  ; CHECK-NEXT:   G_BR %bb.70
+  ; CHECK-NEXT: {{  $}}
+  ; CHECK-NEXT: bb.70.bb:
+  ; CHECK-NEXT:   [[ICMP10:%[0-9]+]]:_(s1) = G_ICMP intpred(eq), [[COPY1]](s32), [[C10]]
+  ; CHECK-NEXT:   G_BRCOND [[ICMP10]](s1), %bb.11
+  ; CHECK-NEXT:   G_BR %bb.71
+  ; CHECK-NEXT: {{  $}}
+  ; CHECK-NEXT: bb.71.bb:
+  ; CHECK-NEXT:   [[ICMP11:%[0-9]+]]:_(s1) = G_ICMP intpred(eq), [[COPY1]](s32), [[C11]]
+  ; CHECK-NEXT:   G_BRCOND [[ICMP11]](s1), %bb.12
+  ; CHECK-NEXT:   G_BR %bb.72
+  ; CHECK-NEXT: {{  $}}
+  ; CHECK-NEXT: bb.72.bb:
+  ; CHECK-NEXT:   [[ICMP12:%[0-9]+]]:_(s1) = G_ICMP intpred(eq), [[COPY1]](s32), [[C12]]
+  ; CHECK-NEXT:   G_BRCOND [[ICMP12]](s1), %bb.13
+  ; CHECK-NEXT:   G_BR %bb.73
+  ; CHECK-NEXT: {{  $}}
+  ; CHECK-NEXT: bb.73.bb:
+  ; CHECK-NEXT:   [[ICMP13:%[0-9]+]]:_(s1) = G_ICMP intpred(eq), [[COPY1]](s32), [[C13]]
+  ; CHECK-NEXT:   G_BRCOND [[ICMP13]](s1), %bb.14
+  ; CHECK-NEXT:   G_BR %bb.74
+  ; CHECK-NEXT: {{  $}}
+  ; CHECK-NEXT: bb.74.bb:
+  ; CHECK-NEXT:   [[ICMP14:%[0-9]+]]:_(s1) = G_ICMP intpred(eq), [[COPY1]](s32), [[C14]]
+  ; CHECK-NEXT:   G_BRCOND [[ICMP14]](s1), %bb.15
+  ; CHECK-NEXT:   G_BR %bb.75
+  ; CHECK-NEXT: {{  $}}
+  ; CHECK-NEXT: bb.75.bb:
+  ; CHECK-NEXT:   [[ICMP15:%[0-9]+]]:_(s1) = G_ICMP intpred(eq), [[COPY1]](s32), [[C15]]
+  ; CHECK-NEXT:   G_BRCOND [[ICMP15]](s1), %bb.16
+  ; CHECK-NEXT:   G_BR %bb.76
+  ; CHECK-NEXT: {{  $}}
+  ; CHECK-NEXT: bb.76.bb:
+  ; CHECK-NEXT:   [[ICMP16:%[0-9]+]]:_(s1) = G_ICMP intpred(eq), [[COPY1]](s32), [[C16]]
+  ; CHECK-NEXT:   G_BRCOND [[ICMP16]](s1), %bb.17
+  ; CHECK-NEXT:   G_BR %bb.77
+  ; CHECK-NEXT: {{  $}}
+  ; CHECK-NEXT: bb.77.bb:
+  ; CHECK-NEXT:   [[ICMP17:%[0-9]+]]:_(s1) = G_ICMP intpred(eq), [[COPY1]](s32), [[C17]]
+  ; CHECK-NEXT:   G_BRCOND [[ICMP17]](s1), %bb.18
+  ; CHECK-NEXT:   G_BR %bb.78
+  ; CHECK-NEXT: {{  $}}
+  ; CHECK-NEXT: bb.78.bb:
+  ; CHECK-NEXT:   [[ICMP18:%[0-9]+]]:_(s1) = G_ICMP intpred(eq), [[COPY1]](s32), [[C18]]
+  ; CHECK-NEXT:   G_BRCOND [[ICMP18]](s1), %bb.19
+  ; CHECK-NEXT:   G_BR %bb.79
+  ; CHECK-NEXT: {{  $}}
+  ; CHECK-NEXT: bb.79.bb:
+  ; CHECK-NEXT:   [[ICMP19:%[0-9]+]]:_(s1) = G_ICMP intpred(eq), [[COPY1]](s32), [[C19]]
+  ; CHECK-NEXT:   G_BRCOND [[ICMP19]](s1), %bb.20
+  ; CHECK-NEXT:   G_BR %bb.80
+  ; CHECK-NEXT: {{  $}}
+  ; CHECK-NEXT: bb.80.bb:
+  ; CHECK-NEXT:   [[ICMP20:%[0-9]+]]:_(s1) = G_ICMP intpred(eq), [[COPY1]](s32), [[C20]]
+  ; CHECK-NEXT:   G_BRCOND [[ICMP20]](s1), %bb.21
+  ; CHECK-NEXT:   G_BR %bb.81
+  ; CHECK-NEXT: {{  $}}
+  ; CHECK-NEXT: bb.81.bb:
+  ; CHECK-NEXT:   [[ICMP21:%[0-9]+]]:_(s1) = G_ICMP intpred(eq), [[COPY1]](s32), [[C21]]
+  ; CHECK-NEXT:   G_BRCOND [[ICMP21]](s1), %bb.22
+  ; CHECK-NEXT:   G_BR %bb.82
+  ; CHECK-NEXT: {{  $}}
+  ; CHECK-NEXT: bb.82.bb:
+  ; CHECK-NEXT:   [[ICMP22:%[0-9]+]]:_(s1) = G_ICMP intpred(eq), [[COPY1]](s32), [[C22]]
+  ; CHECK-NEXT:   G_BRCOND [[ICMP22]](s1), %bb.23
+  ; CHECK-NEXT:   G_BR %bb.83
+  ; CHECK-NEXT: {{  $}}
+  ; CHECK-NEXT: bb.83.bb:
+  ; CHECK-NEXT:   [[ICMP23:%[0-9]+]]:_(s1) = G_ICMP intpred(eq), [[COPY1]](s32), [[C23]]
+  ; CHECK-NEXT:   G_BRCOND [[ICMP23]](s1), %bb.24
+  ; CHECK-NEXT:   G_BR %bb.84
+  ; CHECK-NEXT: {{  $}}
+  ; CHECK-NEXT: bb.84.bb:
+  ; CHECK-NEXT:   [[ICMP24:%[0-9]+]]:_(s1) = G_ICMP intpred(eq), [[COPY1]](s32), [[C24]]
+  ; CHECK-NEXT:   G_BRCOND [[ICMP24]](s1), %bb.25
+  ; CHECK-NEXT:   G_BR %bb.85
+  ; CHECK-NEXT: {{  $}}
+  ; CHECK-NEXT: bb.85.bb:
+  ; CHECK-NEXT:   [[ICMP25:%[0-9]+]]:_(s1) = G_ICMP intpred(eq), [[COPY1]](s32), [[C25]]
+  ; CHECK-NEXT:   G_BRCOND [[ICMP25]](s1), %bb.26
+  ; CHECK-NEXT:   G_BR %bb.86
+  ; CHECK-NEXT: {{  $}}
+  ; CHECK-NEXT: bb.86.bb:
+  ; CHECK-NEXT:   [[ICMP26:%[0-9]+]]:_(s1) = G_ICMP intpred(eq), [[COPY1]](s32), [[C26]]
+  ; CHECK-NEXT:   G_BRCOND [[ICMP26]](s1), %bb.27
+  ; CHECK-NEXT:   G_BR %bb.87
+  ; CHECK-NEXT: {{  $}}
+  ; CHECK-NEXT: bb.87.bb:
+  ; CHECK-NEXT:   [[ICMP27:%[0-9]+]]:_(s1) = G_ICMP intpred(eq), [[COPY1]](s32), [[C27]]
+  ; CHECK-NEXT:   G_BRCOND [[ICMP27]](s1), %bb.28
+  ; CHECK-NEXT:   G_BR %bb.88
+  ; CHECK-NEXT: {{  $}}
+  ; CHECK-NEXT: bb.88.bb:
+  ; CHECK-NEXT:   [[ICMP28:%[0-9]+]]:_(s1) = G_ICMP intpred(eq), [[COPY1]](s32), [[C28]]
+  ; CHECK-NEXT:   G_BRCOND [[ICMP28]](s1), %bb.29
+  ; CHECK-NEXT:   G_BR %bb.89
+  ; CHECK-NEXT: {{  $}}
+  ; CHECK-NEXT: bb.89.bb:
+  ; CHECK-NEXT:   [[ICMP29:%[0-9]+]]:_(s1) = G_ICMP intpred(eq), [[COPY1]](s32), [[C29]]
+  ; CHECK-NEXT:   G_BRCOND [[ICMP29]](s1), %bb.30
+  ; CHECK-NEXT:   G_BR %bb.90
+  ; CHECK-NEXT: {{  $}}
+  ; CHECK-NEXT: bb.90.bb:
+  ; CHECK-NEXT:   [[ICMP30:%[0-9]+]]:_(s1) = G_ICMP intpred(eq), [[COPY1]](s32), [[C30]]
+  ; CHECK-NEXT:   G_BRCOND [[ICMP30]](s1), %bb.31
+  ; CHECK-NEXT:   G_BR %bb.91
+  ; CHECK-NEXT: {{  $}}
+  ; CHECK-NEXT: bb.91.bb:
+  ; CHECK-NEXT:   [[ICMP31:%[0-9]+]]:_(s1) = G_ICMP intpred(eq), [[COPY1]](s32), [[C31]]
+  ; CHECK-NEXT:   G_BRCOND [[ICMP31]](s1), %bb.32
+  ; CHECK-NEXT:   G_BR %bb.92
+  ; CHECK-NEXT: {{  $}}
+  ; CHECK-NEXT: bb.92.bb:
+  ; CHECK-NEXT:   [[ICMP32:%[0-9]+]]:_(s1) = G_ICMP intpred(eq), [[COPY1]](s32), [[C32]]
+  ; CHECK-NEXT:   G_BRCOND [[ICMP32]](s1), %bb.33
+  ; CHECK-NEXT:   G_BR %bb.93
+  ; CHECK-NEXT: {{  $}}
+  ; CHECK-NEXT: bb.93.bb:
+  ; CHECK-NEXT:   [[ICMP33:%[0-9]+]]:_(s1) = G_ICMP intpred(eq), [[COPY1]](s32), [[C33]]
+  ; CHECK-NEXT:   G_BRCOND [[ICMP33]](s1), %bb.34
+  ; CHECK-NEXT:   G_BR %bb.94
+  ; CHECK-NEXT: {{  $}}
+  ; CHECK-NEXT: bb.94.bb:
+  ; CHECK-NEXT:   [[ICMP34:%[0-9]+]]:_(s1) = G_ICMP intpred(eq), [[COPY1]](s32), [[C34]]
+  ; CHECK-NEXT:   G_BRCOND [[ICMP34]](s1), %bb.35
+  ; CHECK-NEXT:   G_BR %bb.95
+  ; CHECK-NEXT: {{  $}}
+  ; CHECK-NEXT: bb.95.bb:
+  ; CHECK-NEXT:   [[ICMP35:%[0-9]+]]:_(s1) = G_ICMP intpred(eq), [[COPY1]](s32), [[C35]]
+  ; CHECK-NEXT:   G_BRCOND [[ICMP35]](s1), %bb.36
+  ; CHECK-NEXT:   G_BR %bb.96
+  ; CHECK-NEXT: {{  $}}
+  ; CHECK-NEXT: bb.96.bb:
+  ; CHECK-NEXT:   [[ICMP36:%[0-9]+]]:_(s1) = G_ICMP intpred(eq), [[COPY1]](s32), [[C36]]
+  ; CHECK-NEXT:   G_BRCOND [[ICMP36]](s1), %bb.37
+  ; CHECK-NEXT:   G_BR %bb.97
+  ; CHECK-NEXT: {{  $}}
+  ; CHECK-NEXT: bb.97.bb:
+  ; CHECK-NEXT:   [[ICMP37:%[0-9]+]]:_(s1) = G_ICMP intpred(eq), [[COPY1]](s32), [[C37]]
+  ; CHECK-NEXT:   G_BRCOND [[ICMP37]](s1), %bb.38
+  ; CHECK-NEXT:   G_BR %bb.98
+  ; CHECK-NEXT: {{  $}}
+  ; CHECK-NEXT: bb.98.bb:
+  ; CHECK-NEXT:   [[ICMP38:%[0-9]+]]:_(s1) = G_ICMP intpred(eq), [[COPY1]](s32), [[C38]]
+  ; CHECK-NEXT:   G_BRCOND [[ICMP38]](s1), %bb.39
+  ; CHECK-NEXT:   G_BR %bb.99
+  ; CHECK-NEXT: {{  $}}
+  ; CHECK-NEXT: bb.99.bb:
+  ; CHECK-NEXT:   [[ICMP39:%[0-9]+]]:_(s1) = G_ICMP intpred(eq), [[COPY1]](s32), [[C39]]
+  ; CHECK-NEXT:   G_BRCOND [[ICMP39]](s1), %bb.40
+  ; CHECK-NEXT:   G_BR %bb.100
+  ; CHECK-NEXT: {{  $}}
+  ; CHECK-NEXT: bb.100.bb:
+  ; CHECK-NEXT:   [[ICMP40:%[0-9]+]]:_(s1) = G_ICMP intpred(eq), [[COPY1]](s32), [[C40]]
+  ; CHECK-NEXT:   G_BRCOND [[ICMP40]](s1), %bb.41
+  ; CHECK-NEXT:   G_BR %bb.101
+  ; CHECK-NEXT: {{  $}}
+  ; CHECK-NEXT: bb.101.bb:
+  ; CHECK-NEXT:   [[ICMP41:%[0-9]+]]:_(s1) = G_ICMP intpred(eq), [[COPY1]](s32), [[C41]]
+  ; CHECK-NEXT:   G_BRCOND [[ICMP41]](s1), %bb.42
+  ; CHECK-NEXT:   G_BR %bb.102
+  ; CHECK-NEXT: {{  $}}
+  ; CHECK-NEXT: bb.102.bb:
+  ; CHECK-NEXT:   [[ICMP42:%[0-9]+]]:_(s1) = G_ICMP intpred(eq), [[COPY1]](s32), [[C42]]
+  ; CHECK-NEXT:   G_BRCOND [[ICMP42]](s1), %bb.43
+  ; CHECK-NEXT:   G_BR %bb.103
+  ; CHECK-NEXT: {{  $}}
+  ; CHECK-NEXT: bb.103.bb:
+  ; CHECK-NEXT:   [[ICMP43:%[0-9]+]]:_(s1) = G_ICMP intpred(eq), [[COPY1]](s32), [[C43]]
+  ; CHECK-NEXT:   G_BRCOND [[ICMP43]](s1), %bb.44
+  ; CHECK-NEXT:   G_BR %bb.104
+  ; CHECK-NEXT: {{  $}}
+  ; CHECK-NEXT: bb.104.bb:
+  ; CHECK-NEXT:   [[ICMP44:%[0-9]+]]:_(s1) = G_ICMP intpred(eq), [[COPY1]](s32), [[C44]]
+  ; CHECK-NEXT:   G_BRCOND [[ICMP44]](s1), %bb.45
+  ; CHECK-NEXT:   G_BR %bb.105
+  ; CHECK-NEXT: {{  $}}
+  ; CHECK-NEXT: bb.105.bb:
+  ; CHECK-NEXT:   [[ICMP45:%[0-9]+]]:_(s1) = G_ICMP intpred(eq), [[COPY1]](s32), [[C45]]
+  ; CHECK-NEXT:   G_BRCOND [[ICMP45]](s1), %bb.46
+  ; CHECK-NEXT:   G_BR %bb.106
+  ; CHECK-NEXT: {{  $}}
+  ; CHECK-NEXT: bb.106.bb:
+  ; CHECK-NEXT:   [[ICMP46:%[0-9]+]]:_(s1) = G_ICMP intpred(eq), [[COPY1]](s32), [[C46]]
+  ; CHECK-NEXT:   G_BRCOND [[ICMP46]](s1), %bb.47
+  ; CHECK-NEXT:   G_BR %bb.107
+  ; CHECK-NEXT: {{  $}}
+  ; CHECK-NEXT: bb.107.bb:
+  ; CHECK-NEXT:   [[ICMP47:%[0-9]+]]:_(s1) = G_ICMP intpred(eq), [[COPY1]](s32), [[C47]]
+  ; CHECK-NEXT:   G_BRCOND [[ICMP47]](s1), %bb.48
+  ; CHECK-NEXT:   G_BR %bb.108
+  ; CHECK-NEXT: {{  $}}
+  ; CHECK-NEXT: bb.108.bb:
+  ; CHECK-NEXT:   [[ICMP48:%[0-9]+]]:_(s1) = G_ICMP intpred(eq), [[COPY1]](s32), [[C48]]
+  ; CHECK-NEXT:   G_BRCOND [[ICMP48]](s1), %bb.49
+  ; CHECK-NEXT:   G_BR %bb.109
+  ; CHECK-NEXT: {{  $}}
+  ; CHECK-NEXT: bb.109.bb:
+  ; CHECK-NEXT:   [[ICMP49:%[0-9]+]]:_(s1) = G_ICMP intpred(eq), [[COPY1]](s32), [[C49]]
+  ; CHECK-NEXT:   G_BRCOND [[ICMP49]](s1), %bb.50
+  ; CHECK-NEXT:   G_BR %bb.110
+  ; CHECK-NEXT: {{  $}}
+  ; CHECK-NEXT: bb.110.bb:
+  ; CHECK-NEXT:   [[ICMP50:%[0-9]+]]:_(s1) = G_ICMP intpred(eq), [[COPY1]](s32), [[C50]]
+  ; CHECK-NEXT:   G_BRCOND [[ICMP50]](s1), %bb.51
+  ; CHECK-NEXT:   G_BR %bb.111
+  ; CHECK-NEXT: {{  $}}
+  ; CHECK-NEXT: bb.111.bb:
+  ; CHECK-NEXT:   [[ICMP51:%[0-9]+]]:_(s1) = G_ICMP intpred(eq), [[COPY1]](s32), [[C51]]
+  ; CHECK-NEXT:   G_BRCOND [[ICMP51]](s1), %bb.52
+  ; CHECK-NEXT:   G_BR %bb.112
+  ; CHECK-NEXT: {{  $}}
+  ; CHECK-NEXT: bb.112.bb:
+  ; CHECK-NEXT:   [[ICMP52:%[0-9]+]]:_(s1) = G_ICMP intpred(eq), [[COPY1]](s32), [[C52]]
+  ; CHECK-NEXT:   G_BRCOND [[ICMP52]](s1), %bb.53
+  ; CHECK-NEXT:   G_BR %bb.113
+  ; CHECK-NEXT: {{  $}}
+  ; CHECK-NEXT: bb.113.bb:
+  ; CHECK-NEXT:   [[ICMP53:%[0-9]+]]:_(s1) = G_ICMP intpred(eq), [[COPY1]](s32), [[C53]]
+  ; CHECK-NEXT:   G_BRCOND [[ICMP53]](s1), %bb.54
+  ; CHECK-NEXT:   G_BR %bb.114
+  ; CHECK-NEXT: {{  $}}
+  ; CHECK-NEXT: bb.114.bb:
+  ; CHECK-NEXT:   [[ICMP54:%[0-9]+]]:_(s1) = G_ICMP intpred(eq), [[COPY1]](s32), [[C54]]
+  ; CHECK-NEXT:   G_BRCOND [[ICMP54]](s1), %bb.55
+  ; CHECK-NEXT:   G_BR %bb.60
+  ; CHECK-NEXT: {{  $}}
+  ; CHECK-NEXT: bb.2.bb3:
+  ; CHECK-NEXT:   G_BR %bb.56
+  ; CHECK-NEXT: {{  $}}
+  ; CHECK-NEXT: bb.3.bb4:
+  ; CHECK-NEXT:   G_BR %bb.56
+  ; CHECK-NEXT: {{  $}}
+  ; CHECK-NEXT: bb.4.bb5:
+  ; CHECK-NEXT:   G_BR %bb.56
+  ; CHECK-NEXT: {{  $}}
+  ; CHECK-NEXT: bb.5.bb6:
+  ; CHECK-NEXT:   G_BR %bb.56
+  ; CHECK-NEXT: {{  $}}
+  ; CHECK-NEXT: bb.6.bb7:
+  ; CHECK-NEXT:   G_BR %bb.56
+  ; CHECK-NEXT: {{  $}}
+  ; CHECK-NEXT: bb.7.bb8:
+  ; CHECK-NEXT:   G_BR %bb.56
+  ; CHECK-NEXT: {{  $}}
+  ; CHECK-NEXT: bb.8.bb9:
+  ; CHECK-NEXT:   G_BR %bb.56
+  ; CHECK-NEXT: {{  $}}
+  ; CHECK-NEXT: bb.9.bb10:
+  ; CHECK-NEXT:   G_BR %bb.56
+  ; CHECK-NEXT: {{  $}}
+  ; CHECK-NEXT: bb.10.bb11:
+  ; CHECK-NEXT:   G_BR %bb.56
+  ; CHECK-NEXT: {{  $}}
+  ; CHECK-NEXT: bb.11.bb12:
+  ; CHECK-NEXT:   G_BR %bb.56
+  ; CHECK-NEXT: {{  $}}
+  ; CHECK-NEXT: bb.12.bb13:
+  ; CHECK-NEXT:   G_BR %bb.56
+  ; CHECK-NEXT: {{  $}}
+  ; CHECK-NEXT: bb.13.bb14:
+  ; CHECK-NEXT:   G_BR %bb.56
+  ; CHECK-NEXT: {{  $}}
+  ; CHECK-NEXT: bb.14.bb15:
+  ; CHECK-NEXT:   G_BR %bb.56
+  ; CHECK-NEXT: {{  $}}
+  ; CHECK-NEXT: bb.15.bb16:
+  ; CHECK-NEXT:   G_BR %bb.56
+  ; CHECK-NEXT: {{  $}}
+  ; CHECK-NEXT: bb.16.bb17:
+  ; CHECK-NEXT:   G_BR %bb.56
+  ; CHECK-NEXT: {{  $}}
+  ; CHECK-NEXT: bb.17.bb18:
+  ; CHECK-NEXT:   G_BR %bb.56
+  ; CHECK-NEXT: {{  $}}
+  ; CHECK-NEXT: bb.18.bb19:
+  ; CHECK-NEXT:   G_BR %bb.56
+  ; CHECK-NEXT: {{  $}}
+  ; CHECK-NEXT: bb.19.bb20:
+  ; CHECK-NEXT:   G_BR %bb.56
+  ; CHECK-NEXT: {{  $}}
+  ; CHECK-NEXT: bb.20.bb21:
+  ; CHECK-NEXT:   G_BR %bb.56
+  ; CHECK-NEXT: {{  $}}
+  ; CHECK-NEXT: bb.21.bb22:
+  ; CHECK-NEXT:   G_BR %bb.56
+  ; CHECK-NEXT: {{  $}}
+  ; CHECK-NEXT: bb.22.bb23:
+  ; CHECK-NEXT:   G_BR %bb.56
+  ; CHECK-NEXT: {{  $}}
+  ; CHECK-NEXT: bb.23.bb24:
+  ; CHECK-NEXT:   G_BR %bb.56
+  ; CHECK-NEXT: {{  $}}
+  ; CHECK-NEXT: bb.24.bb25:
+  ; CHECK-NEXT:   G_BR %bb.56
+  ; CHECK-NEXT: {{  $}}
+  ; CHECK-NEXT: bb.25.bb26:
+  ; CHECK-NEXT:   G_BR %bb.56
+  ; CHECK-NEXT: {{  $}}
+  ; CHECK-NEXT: bb.26.bb27:
+  ; CHECK-NEXT:   G_BR %bb.56
+  ; CHECK-NEXT: {{  $}}
+  ; CHECK-NEXT: bb.27.bb28:
+  ; CHECK-NEXT:   G_BR %bb.56
+  ; CHECK-NEXT: {{  $}}
+  ; CHECK-NEXT: bb.28.bb29:
+  ; CHECK-NEXT:   G_BR %bb.56
+  ; CHECK-NEXT: {{  $}}
+  ; CHECK-NEXT: bb.29.bb30:
+  ; CHECK-NEXT:   G_BR %bb.56
+  ; CHECK-NEXT: {{  $}}
+  ; CHECK-NEXT: bb.30.bb31:
+  ; CHECK-NEXT:   G_BR %bb.56
+  ; CHECK-NEXT: {{  $}}
+  ; CHECK-NEXT: bb.31.bb32:
+  ; CHECK-NEXT:   G_BR %bb.56
+  ; CHECK-NEXT: {{  $}}
+  ; CHECK-NEXT: bb.32.bb33:
+  ; CHECK-NEXT:   G_BR %bb.56
+  ; CHECK-NEXT: {{  $}}
+  ; CHECK-NEXT: bb.33.bb34:
+  ; CHECK-NEXT:   G_BR %bb.56
+  ; CHECK-NEXT: {{  $}}
+  ; CHECK-NEXT: bb.34.bb35:
+  ; CHECK-NEXT:   G_BR %bb.56
+  ; CHECK-NEXT: {{  $}}
+  ; CHECK-NEXT: bb.35.bb36:
+  ; CHECK-NEXT:   G_BR %bb.56
+  ; CHECK-NEXT: {{  $}}
+  ; CHECK-NEXT: bb.36.bb37:
+  ; CHECK-NEXT:   G_BR %bb.56
+  ; CHECK-NEXT: {{  $}}
+  ; CHECK-NEXT: bb.37.bb38:
+  ; CHECK-NEXT:   G_BR %bb.56
+  ; CHECK-NEXT: {{  $}}
+  ; CHECK-NEXT: bb.38.bb39:
+  ; CHECK-NEXT:   G_BR %bb.56
+  ; CHECK-NEXT: {{  $}}
+  ; CHECK-NEXT: bb.39.bb40:
+  ; CHECK-NEXT:   G_BR %bb.56
+  ; CHECK-NEXT: {{  $}}
+  ; CHECK-NEXT: bb.40.bb41:
+  ; CHECK-NEXT:   G_BR %bb.56
+  ; CHECK-NEXT: {{  $}}
+  ; CHECK-NEXT: bb.41.bb42:
+  ; CHECK-NEXT:   G_BR %bb.56
+  ; CHECK-NEXT: {{  $}}
+  ; CHECK-NEXT: bb.42.bb43:
+  ; CHECK-NEXT:   G_BR %bb.56
+  ; CHECK-NEXT: {{  $}}
+  ; CHECK-NEXT: bb.43.bb44:
+  ; CHECK-NEXT:   G_BR %bb.56
+  ; CHECK-NEXT: {{  $}}
+  ; CHECK-NEXT: bb.44.bb45:
+  ; CHECK-NEXT:   G_BR %bb.56
+  ; CHECK-NEXT: {{  $}}
+  ; CHECK-NEXT: bb.45.bb46:
+  ; CHECK-NEXT:   G_BR %bb.56
+  ; CHECK-NEXT: {{  $}}
+  ; CHECK-NEXT: bb.46.bb47:
+  ; CHECK-NEXT:   G_BR %bb.56
+  ; CHECK-NEXT: {{  $}}
+  ; CHECK-NEXT: bb.47.bb48:
+  ; CHECK-NEXT:   G_BR %bb.56
+  ; CHECK-NEXT: {{  $}}
+  ; CHECK-NEXT: bb.48.bb49:
+  ; CHECK-NEXT:   G_BR %bb.56
+  ; CHECK-NEXT: {{  $}}
+  ; CHECK-NEXT: bb.49.bb50:
+  ; CHECK-NEXT:   G_BR %bb.56
+  ; CHECK-NEXT: {{  $}}
+  ; CHECK-NEXT: bb.50.bb51:
+  ; CHECK-NEXT:   G_BR %bb.56
+  ; CHECK-NEXT: {{  $}}
+  ; CHECK-NEXT: bb.51.bb52:
+  ; CHECK-NEXT:   G_BR %bb.56
+  ; CHECK-NEXT: {{  $}}
+  ; CHECK-NEXT: bb.52.bb53:
+  ; CHECK-NEXT:   G_BR %bb.56
+  ; CHECK-NEXT: {{  $}}
+  ; CHECK-NEXT: bb.53.bb54:
+  ; CHECK-NEXT:   G_BR %bb.56
+  ; CHECK-NEXT: {{  $}}
+  ; CHECK-NEXT: bb.54.bb55:
+  ; CHECK-NEXT:   G_BR %bb.56
+  ; CHECK-NEXT: {{  $}}
+  ; CHECK-NEXT: bb.55.bb56:
+  ; CHECK-NEXT:   G_BR %bb.56
+  ; CHECK-NEXT: {{  $}}
+  ; CHECK-NEXT: bb.56.bb57:
+  ; 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.55
+  ; CHECK-NEXT:   [[C111:%[0-9]+]]:_(s64) = G_CONSTANT i64 16
+  ; CHECK-NEXT:   [[MUL:%[0-9]+]]:_(s64) = G_MUL [[PHI]], [[C111]]
+  ; CHECK-NEXT:   [[PTR_ADD:%[0-9]+]]:_(p0) = G_PTR_ADD [[GV]], [[MUL]](s64)
+  ; CHECK-NEXT:   [[C112:%[0-9]+]]:_(s64) = G_CONSTANT i64 8
+  ; CHECK-NEXT:   [[PTR_ADD1:%[0-9]+]]:_(p0) = G_PTR_ADD [[PTR_ADD]], [[C112]](s64)
+  ; CHECK-NEXT:   [[LOAD:%[0-9]+]]:_(p0) = G_LOAD [[PTR_ADD1]](p0) :: (load (p0) from %ir.tmp59)
+  ; CHECK-NEXT:   ADJCALLSTACKDOWN 0, 0, implicit-def $sp, implicit $sp
+  ; CHECK-NEXT:   $x0 = COPY [[COPY]](p0)
+  ; CHECK-NEXT:   $x1 = COPY [[LOAD]](p0)
+  ; CHECK-NEXT:   BL @wibble, csr_aarch64_aapcs_thisreturn, implicit-def $lr, implicit $sp, implicit $x0, implicit $x1
+  ; CHECK-NEXT:   [[COPY3:%[0-9]+]]:_(p0) = COPY [[COPY]](p0)
+  ; CHECK-NEXT:   ADJCALLSTACKUP 0, 0, implicit-def $sp, implicit $sp
+  ; CHECK-NEXT:   G_BR %bb.59
+  ; CHECK-NEXT: {{  $}}
+  ; CHECK-NEXT: bb.57.bb62:
+  ; CHECK-NEXT:   ADJCALLSTACKDOWN 0, 0, implicit-def $sp, implicit $sp
+  ; CHECK-NEXT:   $x0 = COPY [[COPY]](p0)
+  ; CHECK-NEXT:   $x1 = COPY [[COPY2]](p0)
+  ; CHECK-NEXT:   BL @wibble, csr_aarch64_aapcs_thisreturn, implicit-def $lr, implicit $sp, implicit $x0, implicit $x1
+  ; CHECK-NEXT:   [[COPY4:%[0-9]+]]:_(p0) = COPY [[COPY]](p0)
+  ; CHECK-NEXT:   ADJCALLSTACKUP 0, 0, implicit-def $sp, implicit $sp
+  ; CHECK-NEXT:   G_BR %bb.59
+  ; CHECK-NEXT: {{  $}}
+  ; CHECK-NEXT: bb.58.bb64:
+  ; CHECK-NEXT:   [[COPY5:%[0-9]+]]:_(p0) = COPY [[FRAME_INDEX]](p0)
+  ; CHECK-NEXT:   ADJCALLSTACKDOWN 0, 0, implicit-def $sp, implicit $sp
+  ; CHECK-NEXT:   $w0 = COPY [[COPY1]](s32)
+  ; CHECK-NEXT:   $x1 = COPY [[COPY5]](p0)
+  ; CHECK-NEXT:   BL @baz, csr_aarch64_aapcs, implicit-def $lr, implicit $sp, implicit $w0, implicit $x1
+  ; CHECK-NEXT:   ADJCALLSTACKUP 0, 0, implicit-def $sp, implicit $sp
+  ; CHECK-NEXT:   ADJCALLSTACKDOWN 0, 0, implicit-def $sp, implicit $sp
+  ; CHECK-NEXT:   $x0 = COPY [[COPY]](p0)
+  ; CHECK-NEXT:   $x1 = COPY [[COPY5]](p0)
+  ; CHECK-NEXT:   BL @wibble, csr_aarch64_aapcs_thisreturn, implicit-def $lr, implicit $sp, implicit $x0, implicit $x1
+  ; CHECK-NEXT:   [[COPY6:%[0-9]+]]:_(p0) = COPY [[COPY]](p0)
+  ; CHECK-NEXT:   ADJCALLSTACKUP 0, 0, implicit-def $sp, implicit $sp
+  ; CHECK-NEXT:   G_BR %bb.59
+  ; CHECK-NEXT: {{  $}}
+  ; CHECK-NEXT: bb.59.bb68:
+  ; CHECK-NEXT:   RET_ReallyLR
+  ; CHECK-NEXT: {{  $}}
+  ; CHECK-NEXT: bb.60.bb69:
+  ; CHECK-NEXT:   [[ICMP55:%[0-9]+]]:_(s1) = G_ICMP intpred(eq), [[COPY2]](p0), [[C55]]
+  ; CHECK-NEXT:   G_BRCOND [[ICMP55]](s1), %bb.58
+  ; CHECK-NEXT:   G_BR %bb.57
 bb:
   %tmp = alloca [16 x i32], align 4
   switch i32 %arg1, label %bb69 [
@@ -1080,144 +1095,159 @@ declare void @baz(i32, i32*)
 define void @jt_2_tables_phi_edge_from_second() {
   ; CHECK-LABEL: name: jt_2_tables_phi_edge_from_second
   ; CHECK: bb.1.entry:
-  ; CHECK:   successors: %bb.6(0x40000000), %bb.19(0x40000000)
-  ; CHECK:   [[DEF:%[0-9]+]]:_(p0) = G_IMPLICIT_DEF
-  ; CHECK:   [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 123
-  ; CHECK:   [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 263
-  ; CHECK:   [[C2:%[0-9]+]]:_(s32) = G_CONSTANT i32 265
-  ; CHECK:   [[C3:%[0-9]+]]:_(s32) = G_CONSTANT i32 270
-  ; CHECK:   [[C4:%[0-9]+]]:_(s32) = G_CONSTANT i32 279
-  ; CHECK:   [[DEF1:%[0-9]+]]:_(s32) = G_IMPLICIT_DEF
-  ; CHECK:   [[C5:%[0-9]+]]:_(s32) = G_CONSTANT i32 37
-  ; CHECK:   [[C6:%[0-9]+]]:_(s32) = G_CONSTANT i32 43
-  ; CHECK:   [[C7:%[0-9]+]]:_(s32) = G_CONSTANT i32 45
-  ; CHECK:   [[C8:%[0-9]+]]:_(s32) = G_CONSTANT i32 60
-  ; CHECK:   [[C9:%[0-9]+]]:_(s32) = G_CONSTANT i32 278
-  ; CHECK:   [[C10:%[0-9]+]]:_(s32) = G_CONSTANT i32 280
-  ; CHECK:   [[C11:%[0-9]+]]:_(s32) = G_CONSTANT i32 281
-  ; CHECK:   [[C12:%[0-9]+]]:_(s32) = G_CONSTANT i32 283
-  ; CHECK:   [[DEF2:%[0-9]+]]:_(s1) = G_IMPLICIT_DEF
-  ; CHECK:   [[C13:%[0-9]+]]:_(s32) = G_CONSTANT i32 0
-  ; CHECK:   [[C14:%[0-9]+]]:_(s32) = G_CONSTANT i32 1
-  ; CHECK:   [[C15:%[0-9]+]]:_(s32) = G_CONSTANT i32 4
-  ; CHECK:   [[C16:%[0-9]+]]:_(s32) = G_CONSTANT i32 6
-  ; CHECK:   [[C17:%[0-9]+]]:_(s32) = G_CONSTANT i32 7
-  ; CHECK:   [[C18:%[0-9]+]]:_(s32) = G_CONSTANT i32 8
-  ; CHECK:   [[C19:%[0-9]+]]:_(s32) = G_CONSTANT i32 9
-  ; CHECK:   [[C20:%[0-9]+]]:_(s32) = G_CONSTANT i32 12
-  ; CHECK:   [[C21:%[0-9]+]]:_(s32) = G_CONSTANT i32 15
-  ; CHECK:   [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[DEF]](p0) :: (load (s32) from `i32* undef`, align 8)
-  ; CHECK:   [[ICMP:%[0-9]+]]:_(s1) = G_ICMP intpred(eq), [[LOAD]](s32), [[C]]
-  ; CHECK:   G_BRCOND [[ICMP]](s1), %bb.6
-  ; CHECK:   G_BR %bb.19
-  ; CHECK: bb.19.entry:
-  ; CHECK:   successors: %bb.4(0x40000000), %bb.20(0x40000000)
-  ; CHECK:   [[ICMP1:%[0-9]+]]:_(s1) = G_ICMP intpred(eq), [[LOAD]](s32), [[C1]]
-  ; CHECK:   G_BRCOND [[ICMP1]](s1), %bb.4
-  ; CHECK:   G_BR %bb.20
-  ; CHECK: bb.20.entry:
-  ; CHECK:   successors: %bb.7(0x40000000), %bb.21(0x40000000)
-  ; CHECK:   [[ICMP2:%[0-9]+]]:_(s1) = G_ICMP intpred(eq), [[LOAD]](s32), [[C2]]
-  ; CHECK:   G_BRCOND [[ICMP2]](s1), %bb.7
-  ; CHECK:   G_BR %bb.21
-  ; CHECK: bb.21.entry:
-  ; CHECK:   successors: %bb.2(0x40000000), %bb.22(0x40000000)
-  ; CHECK:   [[ICMP3:%[0-9]+]]:_(s1) = G_ICMP intpred(eq), [[LOAD]](s32), [[C3]]
-  ; CHECK:   G_BRCOND [[ICMP3]](s1), %bb.2
-  ; CHECK:   G_BR %bb.22
-  ; CHECK: bb.22.entry:
-  ; CHECK:   successors: %bb.5(0x40000000), %bb.23(0x40000000)
-  ; CHECK:   [[ICMP4:%[0-9]+]]:_(s1) = G_ICMP intpred(eq), [[LOAD]](s32), [[C4]]
-  ; CHECK:   G_BRCOND [[ICMP4]](s1), %bb.5
-  ; CHECK:   G_BR %bb.23
-  ; CHECK: bb.23.entry:
-  ; CHECK:   successors: %bb.3(0x80000000)
-  ; CHECK:   G_BR %bb.3
-  ; CHECK: bb.2.if.then:
-  ; CHECK:   successors:
+  ; CHECK-NEXT:   [[DEF:%[0-9]+]]:_(p0) = G_IMPLICIT_DEF
+  ; CHECK-NEXT:   [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 123
+  ; CHECK-NEXT:   [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 263
+  ; CHECK-NEXT:   [[C2:%[0-9]+]]:_(s32) = G_CONSTANT i32 265
+  ; CHECK-NEXT:   [[C3:%[0-9]+]]:_(s32) = G_CONSTANT i32 270
+  ; CHECK-NEXT:   [[C4:%[0-9]+]]:_(s32) = G_CONSTANT i32 279
+  ; CHECK-NEXT:   [[DEF1:%[0-9]+]]:_(s32) = G_IMPLICIT_DEF
+  ; CHECK-NEXT:   [[C5:%[0-9]+]]:_(s32) = G_CONSTANT i32 37
+  ; CHECK-NEXT:   [[C6:%[0-9]+]]:_(s32) = G_CONSTANT i32 43
+  ; CHECK-NEXT:   [[C7:%[0-9]+]]:_(s32) = G_CONSTANT i32 45
+  ; CHECK-NEXT:   [[C8:%[0-9]+]]:_(s32) = G_CONSTANT i32 60
+  ; CHECK-NEXT:   [[C9:%[0-9]+]]:_(s32) = G_CONSTANT i32 278
+  ; CHECK-NEXT:   [[C10:%[0-9]+]]:_(s32) = G_CONSTANT i32 280
+  ; CHECK-NEXT:   [[C11:%[0-9]+]]:_(s32) = G_CONSTANT i32 281
+  ; CHECK-NEXT:   [[C12:%[0-9]+]]:_(s32) = G_CONSTANT i32 283
+  ; CHECK-NEXT:   [[DEF2:%[0-9]+]]:_(s1) = G_IMPLICIT_DEF
+  ; CHECK-NEXT:   [[C13:%[0-9]+]]:_(s32) = G_CONSTANT i32 0
+  ; CHECK-NEXT:   [[C14:%[0-9]+]]:_(s32) = G_CONSTANT i32 1
+  ; CHECK-NEXT:   [[C15:%[0-9]+]]:_(s32) = G_CONSTANT i32 4
+  ; CHECK-NEXT:   [[C16:%[0-9]+]]:_(s32) = G_CONSTANT i32 6
+  ; CHECK-NEXT:   [[C17:%[0-9]+]]:_(s32) = G_CONSTANT i32 7
+  ; CHECK-NEXT:   [[C18:%[0-9]+]]:_(s32) = G_CONSTANT i32 8
+  ; CHECK-NEXT:   [[C19:%[0-9]+]]:_(s32) = G_CONSTANT i32 9
+  ; CHECK-NEXT:   [[C20:%[0-9]+]]:_(s32) = G_CONSTANT i32 12
+  ; CHECK-NEXT:   [[C21:%[0-9]+]]:_(s32) = G_CONSTANT i32 15
+  ; CHECK-NEXT:   [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[DEF]](p0) :: (load (s32) from `i32* undef`, align 8)
+  ; CHECK-NEXT:   [[ICMP:%[0-9]+]]:_(s1) = G_ICMP intpred(eq), [[LOAD]](s32), [[C]]
+  ; CHECK-NEXT:   G_BRCOND [[ICMP]](s1), %bb.6
+  ; CHECK-NEXT:   G_BR %bb.19
+  ; CHECK-NEXT: {{  $}}
+  ; CHECK-NEXT: bb.19.entry:
+  ; CHECK-NEXT:   [[ICMP1:%[0-9]+]]:_(s1) = G_ICMP intpred(eq), [[LOAD]](s32), [[C1]]
+  ; CHECK-NEXT:   G_BRCOND [[ICMP1]](s1), %bb.4
+  ; CHECK-NEXT:   G_BR %bb.20
+  ; CHECK-NEXT: {{  $}}
+  ; CHECK-NEXT: bb.20.entry:
+  ; CHECK-NEXT:   [[ICMP2:%[0-9]+]]:_(s1) = G_ICMP intpred(eq), [[LOAD]](s32), [[C2]]
+  ; CHECK-NEXT:   G_BRCOND [[ICMP2]](s1), %bb.7
+  ; CHECK-NEXT:   G_BR %bb.21
+  ; CHECK-NEXT: {{  $}}
+  ; CHECK-NEXT: bb.21.entry:
+  ; CHECK-NEXT:   [[ICMP3:%[0-9]+]]:_(s1) = G_ICMP intpred(eq), [[LOAD]](s32), [[C3]]
+  ; CHECK-NEXT:   G_BRCOND [[ICMP3]](s1), %bb.2
+  ; CHECK-NEXT:   G_BR %bb.22
+  ; CHECK-NEXT: {{  $}}
+  ; CHECK-NEXT: bb.22.entry:
+  ; CHECK-NEXT:   [[ICMP4:%[0-9]+]]:_(s1) = G_ICMP intpred(eq), [[LOAD]](s32), [[C4]]
+  ; CHECK-NEXT:   G_BRCOND [[ICMP4]](s1), %bb.5
+  ; CHECK-NEXT:   G_BR %bb.23
+  ; CHECK-NEXT: {{  $}}
+  ; CHECK-NEXT: bb.23.entry:
+  ; CHECK-NEXT:   G_BR %bb.3
+  ; CHECK-NEXT: {{  $}}
+  ; CHECK-NEXT: bb.2.if.then:
+  ; CHECK-NEXT:   successors:
+  ; CHECK: {{  $}}
+  ; CHECK: {{  $}}
   ; CHECK: bb.3.sw.bb2.i41:
-  ; CHECK:   successors:
+  ; CHECK-NEXT:   successors:
+  ; CHECK: {{  $}}
+  ; CHECK: {{  $}}
   ; CHECK: bb.4.sw.bb7.i44:
-  ; CHECK:   successors:
+  ; CHECK-NEXT:   successors:
+  ; CHECK: {{  $}}
+  ; CHECK: {{  $}}
   ; CHECK: bb.5.sw.bb8.i45:
-  ; CHECK:   successors:
+  ; CHECK-NEXT:   successors:
+  ; CHECK: {{  $}}
+  ; CHECK: {{  $}}
   ; CHECK: bb.6.sw.bb13.i47:
   ; CHECK:   successors:
+  ; CHECK: {{  $}}
+  ; CHECK: {{  $}}
   ; CHECK: bb.7.sw.bb14.i48:
-  ; CHECK:   successors: %bb.10(0x40000000), %bb.24(0x40000000)
-  ; CHECK:   [[ICMP5:%[0-9]+]]:_(s1) = G_ICMP intpred(eq), [[DEF1]](s32), [[C5]]
-  ; CHECK:   G_BRCOND [[ICMP5]](s1), %bb.10
-  ; CHECK:   G_BR %bb.24
-  ; CHECK: bb.24.sw.bb14.i48:
-  ; CHECK:   successors: %bb.16(0x40000000), %bb.25(0x40000000)
-  ; CHECK:   [[ICMP6:%[0-9]+]]:_(s1) = G_ICMP intpred(eq), [[DEF1]](s32), [[C6]]
-  ; CHECK:   G_BRCOND [[ICMP6]](s1), %bb.16
-  ; CHECK:   G_BR %bb.25
-  ; CHECK: bb.25.sw.bb14.i48:
-  ; CHECK:   successors: %bb.9(0x40000000), %bb.26(0x40000000)
-  ; CHECK:   [[ICMP7:%[0-9]+]]:_(s1) = G_ICMP intpred(eq), [[DEF1]](s32), [[C7]]
-  ; CHECK:   G_BRCOND [[ICMP7]](s1), %bb.9
-  ; CHECK:   G_BR %bb.26
-  ; CHECK: bb.26.sw.bb14.i48:
-  ; CHECK:   successors: %bb.14(0x40000000), %bb.27(0x40000000)
-  ; CHECK:   [[ICMP8:%[0-9]+]]:_(s1) = G_ICMP intpred(eq), [[DEF1]](s32), [[C8]]
-  ; CHECK:   G_BRCOND [[ICMP8]](s1), %bb.14
-  ; CHECK:   G_BR %bb.27
-  ; CHECK: bb.27.sw.bb14.i48:
-  ; CHECK:   successors: %bb.11(0x40000000), %bb.28(0x40000000)
-  ; CHECK:   [[ICMP9:%[0-9]+]]:_(s1) = G_ICMP intpred(eq), [[DEF1]](s32), [[C9]]
-  ; CHECK:   G_BRCOND [[ICMP9]](s1), %bb.11
-  ; CHECK:   G_BR %bb.28
-  ; CHECK: bb.28.sw.bb14.i48:
-  ; CHECK:   successors: %bb.13(0x40000000), %bb.29(0x40000000)
-  ; CHECK:   [[ICMP10:%[0-9]+]]:_(s1) = G_ICMP intpred(eq), [[DEF1]](s32), [[C10]]
-  ; CHECK:   G_BRCOND [[ICMP10]](s1), %bb.13
-  ; CHECK:   G_BR %bb.29
-  ; CHECK: bb.29.sw.bb14.i48:
-  ; CHECK:   successors: %bb.15(0x40000000), %bb.30(0x40000000)
-  ; CHECK:   [[ICMP11:%[0-9]+]]:_(s1) = G_ICMP intpred(eq), [[DEF1]](s32), [[C11]]
-  ; CHECK:   G_BRCOND [[ICMP11]](s1), %bb.15
-  ; CHECK:   G_BR %bb.30
-  ; CHECK: bb.30.sw.bb14.i48:
-  ; CHECK:   successors: %bb.12(0x40000000), %bb.18(0x40000000)
-  ; CHECK:   [[ICMP12:%[0-9]+]]:_(s1) = G_ICMP intpred(eq), [[DEF1]](s32), [[C12]]
-  ; CHECK:   G_BRCOND [[ICMP12]](s1), %bb.12
-  ; CHECK:   G_BR %bb.18
-  ; CHECK: bb.8.sw.default.i49:
-  ; CHECK:   successors:
+  ; CHECK-NEXT:   [[ICMP5:%[0-9]+]]:_(s1) = G_ICMP intpred(eq), [[DEF1]](s32), [[C5]]
+  ; CHECK-NEXT:   G_BRCOND [[ICMP5]](s1), %bb.10
+  ; CHECK-NEXT:   G_BR %bb.24
+  ; CHECK-NEXT: {{  $}}
+  ; CHECK-NEXT: bb.24.sw.bb14.i48:
+  ; CHECK-NEXT:   [[ICMP6:%[0-9]+]]:_(s1) = G_ICMP intpred(eq), [[DEF1]](s32), [[C6]]
+  ; CHECK-NEXT:   G_BRCOND [[ICMP6]](s1), %bb.16
+  ; CHECK-NEXT:   G_BR %bb.25
+  ; CHECK-NEXT: {{  $}}
+  ; CHECK-NEXT: bb.25.sw.bb14.i48:
+  ; CHECK-NEXT:   [[ICMP7:%[0-9]+]]:_(s1) = G_ICMP intpred(eq), [[DEF1]](s32), [[C7]]
+  ; CHECK-NEXT:   G_BRCOND [[ICMP7]](s1), %bb.9
+  ; CHECK-NEXT:   G_BR %bb.26
+  ; CHECK-NEXT: {{  $}}
+  ; CHECK-NEXT: bb.26.sw.bb14.i48:
+  ; CHECK-NEXT:   [[ICMP8:%[0-9]+]]:_(s1) = G_ICMP intpred(eq), [[DEF1]](s32), [[C8]]
+  ; CHECK-NEXT:   G_BRCOND [[ICMP8]](s1), %bb.14
+  ; CHECK-NEXT:   G_BR %bb.27
+  ; CHECK-NEXT: {{  $}}
+  ; CHECK-NEXT: bb.27.sw.bb14.i48:
+  ; CHECK-NEXT:   [[ICMP9:%[0-9]+]]:_(s1) = G_ICMP intpred(eq), [[DEF1]](s32), [[C9]]
+  ; CHECK-NEXT:   G_BRCOND [[ICMP9]](s1), %bb.11
+  ; CHECK-NEXT:   G_BR %bb.28
+  ; CHECK-NEXT: {{  $}}
+  ; CHECK-NEXT: bb.28.sw.bb14.i48:
+  ; CHECK-NEXT:   [[ICMP10:%[0-9]+]]:_(s1) = G_ICMP intpred(eq), [[DEF1]](s32), [[C10]]
+  ; CHECK-NEXT:   G_BRCOND [[ICMP10]](s1), %bb.13
+  ; CHECK-NEXT:   G_BR %bb.29
+  ; CHECK-NEXT: {{  $}}
+  ; CHECK-NEXT: bb.29.sw.bb14.i48:
+  ; CHECK-NEXT:   [[ICMP11:%[0-9]+]]:_(s1) = G_ICMP intpred(eq), [[DEF1]](s32), [[C11]]
+  ; CHECK-NEXT:   G_BRCOND [[ICMP11]](s1), %bb.15
+  ; CHECK-NEXT:   G_BR %bb.30
+  ; CHECK-NEXT: {{  $}}
+  ; CHECK-NEXT: bb.30.sw.bb14.i48:
+  ; CHECK-NEXT:   [[ICMP12:%[0-9]+]]:_(s1) = G_ICMP intpred(eq), [[DEF1]](s32), [[C12]]
+  ; CHECK-NEXT:   G_BRCOND [[ICMP12]](s1), %bb.12
+  ; CHECK-NEXT:   G_BR %bb.18
+  ; CHECK-NEXT: {{  $}}
+  ; CHECK-NEXT: bb.8.sw.default.i49:
+  ; CHECK-NEXT:   successors:
+  ; CHECK: {{  $}}
+  ; CHECK: {{  $}}
   ; CHECK: bb.9.sw.bb1.i:
-  ; CHECK:   successors: %bb.16(0x80000000)
-  ; CHECK:   G_BR %bb.16
-  ; CHECK: bb.10.sw.bb4.i:
-  ; CHECK:   successors: %bb.16(0x80000000)
-  ; CHECK:   G_BR %bb.16
-  ; CHECK: bb.11.sw.bb6.i:
-  ; CHECK:   successors: %bb.16(0x80000000)
-  ; CHECK:   G_BR %bb.16
-  ; CHECK: bb.12.sw.bb7.i:
-  ; CHECK:   successors: %bb.16(0x80000000)
-  ; CHECK:   G_BR %bb.16
-  ; CHECK: bb.13.sw.bb8.i:
-  ; CHECK:   successors: %bb.16(0x80000000)
-  ; CHECK:   G_BR %bb.16
-  ; CHECK: bb.14.sw.bb9.i:
-  ; CHECK:   successors: %bb.16(0x80000000)
-  ; CHECK:   G_BR %bb.16
-  ; CHECK: bb.15.sw.bb12.i:
-  ; CHECK:   successors: %bb.16(0x80000000)
-  ; CHECK: bb.16.land.rhs.lr.ph:
-  ; CHECK:   successors: %bb.17(0x40000000), %bb.18(0x40000000)
-  ; CHECK:   [[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.15
-  ; CHECK:   G_BRCOND [[DEF2]](s1), %bb.17
-  ; CHECK:   G_BR %bb.18
-  ; CHECK: bb.17.while.body:
-  ; CHECK:   successors:
+  ; CHECK-NEXT:   G_BR %bb.16
+  ; CHECK-NEXT: {{  $}}
+  ; CHECK-NEXT: bb.10.sw.bb4.i:
+  ; CHECK-NEXT:   G_BR %bb.16
+  ; CHECK-NEXT: {{  $}}
+  ; CHECK-NEXT: bb.11.sw.bb6.i:
+  ; CHECK-NEXT:   G_BR %bb.16
+  ; CHECK-NEXT: {{  $}}
+  ; CHECK-NEXT: bb.12.sw.bb7.i:
+  ; CHECK-NEXT:   G_BR %bb.16
+  ; CHECK-NEXT: {{  $}}
+  ; CHECK-NEXT: bb.13.sw.bb8.i:
+  ; CHECK-NEXT:   G_BR %bb.16
+  ; CHECK-NEXT: {{  $}}
+  ; CHECK-NEXT: bb.14.sw.bb9.i:
+  ; CHECK-NEXT:   G_BR %bb.16
+  ; CHECK-NEXT: {{  $}}
+  ; CHECK-NEXT: bb.15.sw.bb12.i:
+  ; CHECK-NEXT:   G_BR %bb.16
+  ; CHECK-NEXT: {{  $}}
+  ; CHECK-NEXT: bb.16.land.rhs.lr.ph:
+  ; 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.15
+  ; CHECK-NEXT:   G_BRCOND [[DEF2]](s1), %bb.17
+  ; CHECK-NEXT:   G_BR %bb.18
+  ; CHECK-NEXT: {{  $}}
+  ; CHECK-NEXT: bb.17.while.body:
+  ; CHECK-NEXT:   successors:
+  ; CHECK: {{  $}}
   ; CHECK:   ADJCALLSTACKDOWN 0, 0, implicit-def $sp, implicit $sp
-  ; CHECK:   BL @jt_2_tables_phi_edge_from_second, csr_aarch64_aapcs, implicit-def $lr, implicit $sp
-  ; CHECK:   ADJCALLSTACKUP 0, 0, implicit-def $sp, implicit $sp
-  ; CHECK: bb.18.while.end:
-  ; CHECK:   [[PHI1:%[0-9]+]]:_(s32) = G_PHI [[C21]](s32), %bb.30, [[PHI]](s32), %bb.16
-  ; CHECK:   RET_ReallyLR
+  ; CHECK-NEXT:   BL @jt_2_tables_phi_edge_from_second, csr_aarch64_aapcs, implicit-def $lr, implicit $sp
+  ; CHECK-NEXT:   ADJCALLSTACKUP 0, 0, implicit-def $sp, implicit $sp
+  ; CHECK-NEXT: {{  $}}
+  ; CHECK-NEXT: bb.18.while.end:
+  ; CHECK-NEXT:   [[PHI1:%[0-9]+]]:_(s32) = G_PHI [[C21]](s32), %bb.30, [[PHI]](s32), %bb.16
+  ; CHECK-NEXT:   RET_ReallyLR
 entry:
   %0 = load i32, i32* undef, align 8
   switch i32 %0, label %sw.default.i49 [
@@ -1297,35 +1327,37 @@ while.end:                                        ; preds = %land.rhs.lr.ph, %sw
 define i32 @range_test(i32 %x) {
   ; CHECK-LABEL: name: range_test
   ; CHECK: bb.1.entry:
-  ; CHECK:   successors: %bb.3(0x40000000), %bb.5(0x40000000)
-  ; CHECK:   liveins: $w0
-  ; CHECK:   [[COPY:%[0-9]+]]:_(s32) = COPY $w0
-  ; CHECK:   [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 6
-  ; CHECK:   [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 24
-  ; CHECK:   [[C2:%[0-9]+]]:_(s32) = G_CONSTANT i32 3
-  ; CHECK:   [[C3:%[0-9]+]]:_(s32) = G_CONSTANT i32 42
-  ; CHECK:   [[C4:%[0-9]+]]:_(s32) = G_CONSTANT i32 0
-  ; CHECK:   [[ICMP:%[0-9]+]]:_(s1) = G_ICMP intpred(eq), [[COPY]](s32), [[C]]
-  ; CHECK:   G_BRCOND [[ICMP]](s1), %bb.3
-  ; CHECK:   G_BR %bb.5
-  ; CHECK: bb.5.entry:
-  ; CHECK:   successors: %bb.2(0x40000000), %bb.4(0x40000000)
-  ; CHECK:   [[SUB:%[0-9]+]]:_(s32) = G_SUB [[COPY]], [[C1]]
-  ; CHECK:   [[C5:%[0-9]+]]:_(s32) = G_CONSTANT i32 2
-  ; CHECK:   [[ICMP1:%[0-9]+]]:_(s1) = G_ICMP intpred(ule), [[SUB]](s32), [[C5]]
-  ; CHECK:   G_BRCOND [[ICMP1]](s1), %bb.2
-  ; CHECK:   G_BR %bb.4
-  ; CHECK: bb.2.sw.bb:
-  ; CHECK:   successors: %bb.4(0x80000000)
-  ; CHECK:   [[ADD:%[0-9]+]]:_(s32) = nsw G_ADD [[COPY]], [[C3]]
-  ; CHECK:   G_BR %bb.4
-  ; CHECK: bb.3.sw.bb1:
-  ; CHECK:   successors: %bb.4(0x80000000)
-  ; CHECK:   [[MUL:%[0-9]+]]:_(s32) = nsw G_MUL [[COPY]], [[C2]]
-  ; CHECK: bb.4.return:
-  ; CHECK:   [[PHI:%[0-9]+]]:_(s32) = G_PHI [[MUL]](s32), %bb.3, [[ADD]](s32), %bb.2, [[C4]](s32), %bb.5
-  ; CHECK:   $w0 = COPY [[PHI]](s32)
-  ; CHECK:   RET_ReallyLR implicit $w0
+  ; CHECK-NEXT:   liveins: $w0
+  ; CHECK-NEXT: {{  $}}
+  ; CHECK-NEXT:   [[COPY:%[0-9]+]]:_(s32) = COPY $w0
+  ; CHECK-NEXT:   [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 6
+  ; CHECK-NEXT:   [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 24
+  ; CHECK-NEXT:   [[C2:%[0-9]+]]:_(s32) = G_CONSTANT i32 3
+  ; CHECK-NEXT:   [[C3:%[0-9]+]]:_(s32) = G_CONSTANT i32 42
+  ; CHECK-NEXT:   [[C4:%[0-9]+]]:_(s32) = G_CONSTANT i32 0
+  ; CHECK-NEXT:   [[ICMP:%[0-9]+]]:_(s1) = G_ICMP intpred(eq), [[COPY]](s32), [[C]]
+  ; CHECK-NEXT:   G_BRCOND [[ICMP]](s1), %bb.3
+  ; CHECK-NEXT:   G_BR %bb.5
+  ; CHECK-NEXT: {{  $}}
+  ; CHECK-NEXT: bb.5.entry:
+  ; CHECK-NEXT:   [[SUB:%[0-9]+]]:_(s32) = G_SUB [[COPY]], [[C1]]
+  ; CHECK-NEXT:   [[C5:%[0-9]+]]:_(s32) = G_CONSTANT i32 2
+  ; CHECK-NEXT:   [[ICMP1:%[0-9]+]]:_(s1) = G_ICMP intpred(ule), [[SUB]](s32), [[C5]]
+  ; CHECK-NEXT:   G_BRCOND [[ICMP1]](s1), %bb.2
+  ; CHECK-NEXT:   G_BR %bb.4
+  ; CHECK-NEXT: {{  $}}
+  ; CHECK-NEXT: bb.2.sw.bb:
+  ; CHECK-NEXT:   [[ADD:%[0-9]+]]:_(s32) = nsw G_ADD [[COPY]], [[C3]]
+  ; CHECK-NEXT:   G_BR %bb.4
+  ; CHECK-NEXT: {{  $}}
+  ; CHECK-NEXT: bb.3.sw.bb1:
+  ; CHECK-NEXT:   [[MUL:%[0-9]+]]:_(s32) = nsw G_MUL [[COPY]], [[C2]]
+  ; CHECK-NEXT:   G_BR %bb.4
+  ; CHECK-NEXT: {{  $}}
+  ; CHECK-NEXT: bb.4.return:
+  ; CHECK-NEXT:   [[PHI:%[0-9]+]]:_(s32) = G_PHI [[MUL]](s32), %bb.3, [[ADD]](s32), %bb.2, [[C4]](s32), %bb.5
+  ; CHECK-NEXT:   $w0 = COPY [[PHI]](s32)
+  ; CHECK-NEXT:   RET_ReallyLR implicit $w0
 entry:
   switch i32 %x, label %return [
     i32 24, label %sw.bb
@@ -1350,42 +1382,43 @@ return:
 define i64* @test_range_phi_switch_cycle() {
   ; CHECK-LABEL: name: test_range_phi_switch_cycle
   ; CHECK: bb.1.bb:
-  ; CHECK:   successors: %bb.2(0x80000000)
-  ; CHECK:   [[DEF:%[0-9]+]]:_(s32) = G_IMPLICIT_DEF
-  ; CHECK:   [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 305
-  ; CHECK:   [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 307
-  ; CHECK:   [[C2:%[0-9]+]]:_(s32) = G_CONSTANT i32 497
-  ; CHECK:   [[C3:%[0-9]+]]:_(s32) = G_CONSTANT i32 4
-  ; CHECK:   [[C4:%[0-9]+]]:_(s32) = G_CONSTANT i32 3
-  ; CHECK:   [[C5:%[0-9]+]]:_(s32) = G_CONSTANT i32 1
-  ; CHECK: bb.2.bb1:
-  ; CHECK:   successors: %bb.2(0x40000000), %bb.6(0x40000000)
-  ; CHECK:   [[PHI:%[0-9]+]]:_(s32) = G_PHI [[DEF]](s32), %bb.1, [[C3]](s32), %bb.3, [[C4]](s32), %bb.4, [[C5]](s32), %bb.2
-  ; CHECK:   [[ICMP:%[0-9]+]]:_(s1) = G_ICMP intpred(eq), [[DEF]](s32), [[C]]
-  ; CHECK:   G_BRCOND [[ICMP]](s1), %bb.2
-  ; CHECK:   G_BR %bb.6
-  ; CHECK: bb.6.bb1:
-  ; CHECK:   successors: %bb.3(0x40000000), %bb.7(0x40000000)
-  ; CHECK:   [[ICMP1:%[0-9]+]]:_(s1) = G_ICMP intpred(eq), [[DEF]](s32), [[C1]]
-  ; CHECK:   G_BRCOND [[ICMP1]](s1), %bb.3
-  ; CHECK:   G_BR %bb.7
-  ; CHECK: bb.7.bb1:
-  ; CHECK:   successors: %bb.4(0x40000000), %bb.5(0x40000000)
-  ; CHECK:   [[ICMP2:%[0-9]+]]:_(s1) = G_ICMP intpred(eq), [[DEF]](s32), [[C2]]
-  ; CHECK:   G_BRCOND [[ICMP2]](s1), %bb.4
-  ; CHECK:   G_BR %bb.5
-  ; CHECK: bb.3.bb2:
-  ; CHECK:   successors: %bb.2(0x80000000)
-  ; CHECK:   G_BR %bb.2
-  ; CHECK: bb.4.bb3:
-  ; CHECK:   successors: %bb.2(0x80000000)
-  ; CHECK:   G_BR %bb.2
-  ; CHECK: bb.5.bb4:
-  ; CHECK:   ADJCALLSTACKDOWN 0, 0, implicit-def $sp, implicit $sp
-  ; CHECK:   $w0 = COPY [[PHI]](s32)
-  ; CHECK:   BL @ham, csr_aarch64_aapcs, implicit-def $lr, implicit $sp, implicit $w0, implicit-def $x0
-  ; CHECK:   [[COPY:%[0-9]+]]:_(p0) = COPY $x0
-  ; CHECK:   ADJCALLSTACKUP 0, 0, implicit-def $sp, implicit $sp
+  ; CHECK-NEXT:   [[DEF:%[0-9]+]]:_(s32) = G_IMPLICIT_DEF
+  ; CHECK-NEXT:   [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 305
+  ; CHECK-NEXT:   [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 307
+  ; CHECK-NEXT:   [[C2:%[0-9]+]]:_(s32) = G_CONSTANT i32 497
+  ; CHECK-NEXT:   [[C3:%[0-9]+]]:_(s32) = G_CONSTANT i32 4
+  ; CHECK-NEXT:   [[C4:%[0-9]+]]:_(s32) = G_CONSTANT i32 3
+  ; CHECK-NEXT:   [[C5:%[0-9]+]]:_(s32) = G_CONSTANT i32 1
+  ; CHECK-NEXT:   G_BR %bb.2
+  ; CHECK-NEXT: {{  $}}
+  ; CHECK-NEXT: bb.2.bb1:
+  ; CHECK-NEXT:   [[PHI:%[0-9]+]]:_(s32) = G_PHI [[DEF]](s32), %bb.1, [[C3]](s32), %bb.3, [[C4]](s32), %bb.4, [[C5]](s32), %bb.2
+  ; CHECK-NEXT:   [[ICMP:%[0-9]+]]:_(s1) = G_ICMP intpred(eq), [[DEF]](s32), [[C]]
+  ; CHECK-NEXT:   G_BRCOND [[ICMP]](s1), %bb.2
+  ; CHECK-NEXT:   G_BR %bb.6
+  ; CHECK-NEXT: {{  $}}
+  ; CHECK-NEXT: bb.6.bb1:
+  ; CHECK-NEXT:   [[ICMP1:%[0-9]+]]:_(s1) = G_ICMP intpred(eq), [[DEF]](s32), [[C1]]
+  ; CHECK-NEXT:   G_BRCOND [[ICMP1]](s1), %bb.3
+  ; CHECK-NEXT:   G_BR %bb.7
+  ; CHECK-NEXT: {{  $}}
+  ; CHECK-NEXT: bb.7.bb1:
+  ; CHECK-NEXT:   [[ICMP2:%[0-9]+]]:_(s1) = G_ICMP intpred(eq), [[DEF]](s32), [[C2]]
+  ; CHECK-NEXT:   G_BRCOND [[ICMP2]](s1), %bb.4
+  ; CHECK-NEXT:   G_BR %bb.5
+  ; CHECK-NEXT: {{  $}}
+  ; CHECK-NEXT: bb.3.bb2:
+  ; CHECK-NEXT:   G_BR %bb.2
+  ; CHECK-NEXT: {{  $}}
+  ; CHECK-NEXT: bb.4.bb3:
+  ; CHECK-NEXT:   G_BR %bb.2
+  ; CHECK-NEXT: {{  $}}
+  ; CHECK-NEXT: bb.5.bb4:
+  ; CHECK-NEXT:   ADJCALLSTACKDOWN 0, 0, implicit-def $sp, implicit $sp
+  ; CHECK-NEXT:   $w0 = COPY [[PHI]](s32)
+  ; CHECK-NEXT:   BL @ham, csr_aarch64_aapcs, implicit-def $lr, implicit $sp, implicit $w0, implicit-def $x0
+  ; CHECK-NEXT:   [[COPY:%[0-9]+]]:_(p0) = COPY $x0
+  ; CHECK-NEXT:   ADJCALLSTACKUP 0, 0, implicit-def $sp, implicit $sp
 bb:
   br label %bb1
 
@@ -1419,27 +1452,30 @@ define internal void @bar() unnamed_addr #1 {
 define i1 @i1_value_cmp_is_signed(i1) {
   ; CHECK-LABEL: name: i1_value_cmp_is_signed
   ; CHECK: bb.1.Entry:
-  ; CHECK:   successors: %bb.3(0x40000000), %bb.2(0x40000000)
-  ; CHECK:   liveins: $w0
-  ; CHECK:   [[COPY:%[0-9]+]]:_(s32) = COPY $w0
-  ; CHECK:   [[TRUNC:%[0-9]+]]:_(s8) = G_TRUNC [[COPY]](s32)
-  ; CHECK:   [[ASSERT_ZEXT:%[0-9]+]]:_(s8) = G_ASSERT_ZEXT [[TRUNC]], 1
-  ; CHECK:   [[TRUNC1:%[0-9]+]]:_(s1) = G_TRUNC [[ASSERT_ZEXT]](s8)
-  ; CHECK:   [[C:%[0-9]+]]:_(s1) = G_CONSTANT i1 true
-  ; CHECK:   [[C1:%[0-9]+]]:_(s1) = G_CONSTANT i1 false
-  ; CHECK:   [[ICMP:%[0-9]+]]:_(s1) = G_ICMP intpred(sle), [[TRUNC1]](s1), [[C1]]
-  ; CHECK:   G_BRCOND [[ICMP]](s1), %bb.3
-  ; CHECK:   G_BR %bb.2
-  ; CHECK: bb.2.BadValue:
-  ; CHECK:   successors:
+  ; CHECK-NEXT:   liveins: $w0
+  ; CHECK-NEXT: {{  $}}
+  ; CHECK-NEXT:   [[COPY:%[0-9]+]]:_(s32) = COPY $w0
+  ; CHECK-NEXT:   [[TRUNC:%[0-9]+]]:_(s8) = G_TRUNC [[COPY]](s32)
+  ; CHECK-NEXT:   [[ASSERT_ZEXT:%[0-9]+]]:_(s8) = G_ASSERT_ZEXT [[TRUNC]], 1
+  ; CHECK-NEXT:   [[TRUNC1:%[0-9]+]]:_(s1) = G_TRUNC [[ASSERT_ZEXT]](s8)
+  ; CHECK-NEXT:   [[C:%[0-9]+]]:_(s1) = G_CONSTANT i1 true
+  ; CHECK-NEXT:   [[C1:%[0-9]+]]:_(s1) = G_CONSTANT i1 false
+  ; CHECK-NEXT:   [[ICMP:%[0-9]+]]:_(s1) = G_ICMP intpred(sle), [[TRUNC1]](s1), [[C1]]
+  ; CHECK-NEXT:   G_BRCOND [[ICMP]](s1), %bb.3
+  ; CHECK-NEXT:   G_BR %bb.2
+  ; CHECK-NEXT: {{  $}}
+  ; CHECK-NEXT: bb.2.BadValue:
+  ; CHECK-NEXT:   successors:
+  ; CHECK: {{  $}}
   ; CHECK:   ADJCALLSTACKDOWN 0, 0, implicit-def $sp, implicit $sp
-  ; CHECK:   BL @bar, csr_aarch64_aapcs, implicit-def $lr, implicit $sp
-  ; CHECK:   ADJCALLSTACKUP 0, 0, implicit-def $sp, implicit $sp
-  ; CHECK: bb.3.OkValue:
-  ; CHECK:   [[ZEXT:%[0-9]+]]:_(s8) = G_ZEXT [[TRUNC1]](s1)
-  ; CHECK:   [[ANYEXT:%[0-9]+]]:_(s32) = G_ANYEXT [[ZEXT]](s8)
-  ; CHECK:   $w0 = COPY [[ANYEXT]](s32)
-  ; CHECK:   RET_ReallyLR implicit $w0
+  ; CHECK-NEXT:   BL @bar, csr_aarch64_aapcs, implicit-def $lr, implicit $sp
+  ; CHECK-NEXT:   ADJCALLSTACKUP 0, 0, implicit-def $sp, implicit $sp
+  ; CHECK-NEXT: {{  $}}
+  ; CHECK-NEXT: bb.3.OkValue:
+  ; CHECK-NEXT:   [[ZEXT:%[0-9]+]]:_(s8) = G_ZEXT [[TRUNC1]](s1)
+  ; CHECK-NEXT:   [[ANYEXT:%[0-9]+]]:_(s32) = G_ANYEXT [[ZEXT]](s8)
+  ; CHECK-NEXT:   $w0 = COPY [[ANYEXT]](s32)
+  ; CHECK-NEXT:   RET_ReallyLR implicit $w0
 Entry:
   switch i1 %0, label %BadValue [
     i1 false, label %OkValue

diff  --git a/llvm/test/CodeGen/AArch64/GlobalISel/irtranslator-localescape.ll b/llvm/test/CodeGen/AArch64/GlobalISel/irtranslator-localescape.ll
index 1a6fdcb47e304..4de9da027033f 100644
--- a/llvm/test/CodeGen/AArch64/GlobalISel/irtranslator-localescape.ll
+++ b/llvm/test/CodeGen/AArch64/GlobalISel/irtranslator-localescape.ll
@@ -4,15 +4,15 @@
 define void @local_escape() {
   ; CHECK-LABEL: name: local_escape
   ; CHECK: bb.1 (%ir-block.0):
-  ; CHECK:   LOCAL_ESCAPE <mcsymbol .Llocal_escape$frame_escape_1>, %stack.1.b
-  ; CHECK:   LOCAL_ESCAPE <mcsymbol .Llocal_escape$frame_escape_0>, %stack.0.a
-  ; CHECK:   [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 42
-  ; CHECK:   [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 13
-  ; CHECK:   [[FRAME_INDEX:%[0-9]+]]:_(p0) = G_FRAME_INDEX %stack.0.a
-  ; CHECK:   [[FRAME_INDEX1:%[0-9]+]]:_(p0) = G_FRAME_INDEX %stack.1.b
-  ; CHECK:   G_STORE [[C]](s32), [[FRAME_INDEX]](p0) :: (store (s32) into %ir.a)
-  ; CHECK:   G_STORE [[C1]](s32), [[FRAME_INDEX1]](p0) :: (store (s32) into %ir.b)
-  ; CHECK:   RET_ReallyLR
+  ; CHECK-NEXT:   LOCAL_ESCAPE <mcsymbol .Llocal_escape$frame_escape_1>, %stack.1.b
+  ; CHECK-NEXT:   LOCAL_ESCAPE <mcsymbol .Llocal_escape$frame_escape_0>, %stack.0.a
+  ; CHECK-NEXT:   [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 42
+  ; CHECK-NEXT:   [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 13
+  ; CHECK-NEXT:   [[FRAME_INDEX:%[0-9]+]]:_(p0) = G_FRAME_INDEX %stack.0.a
+  ; CHECK-NEXT:   [[FRAME_INDEX1:%[0-9]+]]:_(p0) = G_FRAME_INDEX %stack.1.b
+  ; CHECK-NEXT:   G_STORE [[C]](s32), [[FRAME_INDEX]](p0) :: (store (s32) into %ir.a)
+  ; CHECK-NEXT:   G_STORE [[C1]](s32), [[FRAME_INDEX1]](p0) :: (store (s32) into %ir.b)
+  ; CHECK-NEXT:   RET_ReallyLR
   %a = alloca i32
   %b = alloca i32, i32 2
   call void (...) @llvm.localescape(i32* %a, i32* %b)
@@ -25,15 +25,15 @@ define void @local_escape() {
 define void @local_escape_insert_point() {
   ; CHECK-LABEL: name: local_escape_insert_point
   ; CHECK: bb.1 (%ir-block.0):
-  ; CHECK:   LOCAL_ESCAPE <mcsymbol .Llocal_escape_insert_point$frame_escape_2>, %stack.1.b
-  ; CHECK:   LOCAL_ESCAPE <mcsymbol .Llocal_escape_insert_point$frame_escape_0>, %stack.0.a
-  ; CHECK:   [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 42
-  ; CHECK:   [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 13
-  ; CHECK:   [[FRAME_INDEX:%[0-9]+]]:_(p0) = G_FRAME_INDEX %stack.0.a
-  ; CHECK:   [[FRAME_INDEX1:%[0-9]+]]:_(p0) = G_FRAME_INDEX %stack.1.b
-  ; CHECK:   G_STORE [[C]](s32), [[FRAME_INDEX]](p0) :: (store (s32) into %ir.a)
-  ; CHECK:   G_STORE [[C1]](s32), [[FRAME_INDEX1]](p0) :: (store (s32) into %ir.b)
-  ; CHECK:   RET_ReallyLR
+  ; CHECK-NEXT:   LOCAL_ESCAPE <mcsymbol .Llocal_escape_insert_point$frame_escape_2>, %stack.1.b
+  ; CHECK-NEXT:   LOCAL_ESCAPE <mcsymbol .Llocal_escape_insert_point$frame_escape_0>, %stack.0.a
+  ; CHECK-NEXT:   [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 42
+  ; CHECK-NEXT:   [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 13
+  ; CHECK-NEXT:   [[FRAME_INDEX:%[0-9]+]]:_(p0) = G_FRAME_INDEX %stack.0.a
+  ; CHECK-NEXT:   [[FRAME_INDEX1:%[0-9]+]]:_(p0) = G_FRAME_INDEX %stack.1.b
+  ; CHECK-NEXT:   G_STORE [[C]](s32), [[FRAME_INDEX]](p0) :: (store (s32) into %ir.a)
+  ; CHECK-NEXT:   G_STORE [[C1]](s32), [[FRAME_INDEX1]](p0) :: (store (s32) into %ir.b)
+  ; CHECK-NEXT:   RET_ReallyLR
   %a = alloca i32
   %b = alloca i32, i32 2
   store i32 42, i32* %a
@@ -48,15 +48,15 @@ declare void @foo([128 x i32]*)
 define void @local_escape_strip_ptr_cast() {
   ; CHECK-LABEL: name: local_escape_strip_ptr_cast
   ; CHECK: bb.1 (%ir-block.0):
-  ; CHECK:   LOCAL_ESCAPE <mcsymbol .Llocal_escape_strip_ptr_cast$frame_escape_0>, %stack.0.a
-  ; CHECK:   [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 42
-  ; CHECK:   [[FRAME_INDEX:%[0-9]+]]:_(p0) = G_FRAME_INDEX %stack.0.a
-  ; CHECK:   G_STORE [[C]](s32), [[FRAME_INDEX]](p0) :: (store (s32) into %ir.cast)
-  ; CHECK:   ADJCALLSTACKDOWN 0, 0, implicit-def $sp, implicit $sp
-  ; CHECK:   $x0 = COPY [[FRAME_INDEX]](p0)
-  ; CHECK:   BL @foo, csr_aarch64_aapcs, implicit-def $lr, implicit $sp, implicit $x0
-  ; CHECK:   ADJCALLSTACKUP 0, 0, implicit-def $sp, implicit $sp
-  ; CHECK:   RET_ReallyLR
+  ; CHECK-NEXT:   LOCAL_ESCAPE <mcsymbol .Llocal_escape_strip_ptr_cast$frame_escape_0>, %stack.0.a
+  ; CHECK-NEXT:   [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 42
+  ; CHECK-NEXT:   [[FRAME_INDEX:%[0-9]+]]:_(p0) = G_FRAME_INDEX %stack.0.a
+  ; CHECK-NEXT:   G_STORE [[C]](s32), [[FRAME_INDEX]](p0) :: (store (s32) into %ir.cast)
+  ; CHECK-NEXT:   ADJCALLSTACKDOWN 0, 0, implicit-def $sp, implicit $sp
+  ; CHECK-NEXT:   $x0 = COPY [[FRAME_INDEX]](p0)
+  ; CHECK-NEXT:   BL @foo, csr_aarch64_aapcs, implicit-def $lr, implicit $sp, implicit $x0
+  ; CHECK-NEXT:   ADJCALLSTACKUP 0, 0, implicit-def $sp, implicit $sp
+  ; CHECK-NEXT:   RET_ReallyLR
   %a = alloca [128 x i32]
   %cast = bitcast [128 x i32]* %a to i32*
   store i32 42, i32* %cast


        


More information about the llvm-commits mailing list