diff options
Diffstat (limited to 'test/CodeGen/AArch64/optimize-cond-branch.ll')
| -rw-r--r-- | test/CodeGen/AArch64/optimize-cond-branch.ll | 48 |
1 files changed, 0 insertions, 48 deletions
diff --git a/test/CodeGen/AArch64/optimize-cond-branch.ll b/test/CodeGen/AArch64/optimize-cond-branch.ll deleted file mode 100644 index ab4ad5e2ce93..000000000000 --- a/test/CodeGen/AArch64/optimize-cond-branch.ll +++ /dev/null @@ -1,48 +0,0 @@ -; RUN: llc -verify-machineinstrs -o - %s | FileCheck %s -target triple = "arm64--" - -; AArch64InstrInfo::optimizeCondBranch() optimizes the -; "x = and y, 256; cmp x, 0; br" from an "and; cbnz" to a tbnz instruction. -; It forgot to clear the a flag resulting in a MachineVerifier complaint. -; -; Writing a stable/simple test is tricky since most tbz instructions are already -; formed in SelectionDAG, optimizeCondBranch() only triggers if the and -; instruction is in a different block than the conditional jump. -; -; CHECK-LABEL: func -; CHECK-NOT: and -; CHECK: tbz -define void @func() { - %c0 = icmp sgt i64 0, 0 - br i1 %c0, label %b1, label %b6 - -b1: - br i1 undef, label %b3, label %b2 - -b2: - %v0 = tail call i32 @extfunc() - br label %b5 - -b3: - %v1 = load i32, i32* undef, align 4 - %v2 = and i32 %v1, 256 - br label %b5 - -b5: - %v3 = phi i32 [ %v2, %b3 ], [ %v0, %b2 ] - %c1 = icmp eq i32 %v3, 0 - br i1 %c1, label %b8, label %b7 - -b6: - tail call i32 @extfunc() - ret void - -b7: - tail call i32 @extfunc() - ret void - -b8: - ret void -} - -declare i32 @extfunc() |
