From 8c04c78cfad861aea526fcc52b2d1228893710c2 Mon Sep 17 00:00:00 2001 From: Matt Arsenault Date: Fri, 2 Dec 2022 15:39:59 -0500 Subject: [PATCH] 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. --- .../GlobalISel/arm64-irtranslator-switch.ll | 1904 ++++++++++---------- .../AArch64/GlobalISel/irtranslator-localescape.ll | 54 +- 2 files changed, 997 insertions(+), 961 deletions(-) diff --git a/llvm/test/CodeGen/AArch64/GlobalISel/arm64-irtranslator-switch.ll b/llvm/test/CodeGen/AArch64/GlobalISel/arm64-irtranslator-switch.ll index 3ed7ac0..17457c0 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 1a6fdcb..4de9da0 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 , %stack.1.b - ; CHECK: LOCAL_ESCAPE , %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 , %stack.1.b + ; CHECK-NEXT: LOCAL_ESCAPE , %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 , %stack.1.b - ; CHECK: LOCAL_ESCAPE , %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 , %stack.1.b + ; CHECK-NEXT: LOCAL_ESCAPE , %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 , %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 , %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 -- 2.7.4