diff options
Diffstat (limited to 'llvm/test')
| -rw-r--r-- | llvm/test/CodeGen/AArch64/fast-isel-switch-phi.ll | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/llvm/test/CodeGen/AArch64/fast-isel-switch-phi.ll b/llvm/test/CodeGen/AArch64/fast-isel-switch-phi.ll new file mode 100644 index 00000000000..f2d8090aa0a --- /dev/null +++ b/llvm/test/CodeGen/AArch64/fast-isel-switch-phi.ll @@ -0,0 +1,26 @@ +; RUN: llc -mtriple=aarch64-apple-darwin -fast-isel -verify-machineinstrs < %s +; REQUIRES: asserts + +; Test that the Machine Instruction PHI node doesn't have more than one operand +; from the same predecessor. +define i32 @foo(i32 %a, i32 %b, i1 %c) { +entry: + br i1 %c, label %switch, label %direct + +switch: + switch i32 %a, label %exit [ + i32 43, label %continue + i32 45, label %continue + ] + +direct: + %var = add i32 %b, 1 + br label %continue + +continue: + %var.phi = phi i32 [ %var, %direct ], [ 0, %switch ], [ 0, %switch ] + ret i32 %var.phi + +exit: + ret i32 1 +} |

