diff options
author | Hans Wennborg <hans@hanshq.net> | 2019-09-30 08:47:46 +0000 |
---|---|---|
committer | Hans Wennborg <hans@hanshq.net> | 2019-09-30 08:47:46 +0000 |
commit | 8569c0f1ab8a6674aad621fbca8d2d24fbecdc5b (patch) | |
tree | ad08fe969660233f1c3daad4e60dfe3ac525f7bd | |
parent | 180f1feba9f3c6f9fb8bfba7d74c4d7045fc13a9 (diff) | |
download | bcm5719-llvm-8569c0f1ab8a6674aad621fbca8d2d24fbecdc5b.tar.gz bcm5719-llvm-8569c0f1ab8a6674aad621fbca8d2d24fbecdc5b.zip |
Pre-commit a test case for PR43129.
llvm-svn: 373190
-rw-r--r-- | llvm/test/CodeGen/X86/switch-bt.ll | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/llvm/test/CodeGen/X86/switch-bt.ll b/llvm/test/CodeGen/X86/switch-bt.ll index 958d053c22f..797ad4bccfd 100644 --- a/llvm/test/CodeGen/X86/switch-bt.ll +++ b/llvm/test/CodeGen/X86/switch-bt.ll @@ -155,3 +155,43 @@ sw.epilog: ; CHECK: cmpl $60 ; CHECK: jne } + + +; TODO: Omit the range check when the default case is unreachable, see PR43129. +declare void @g(i32) +define void @test5(i32 %x) { + +; CHECK-LABEL: test5 +; CHECK: cmpl $8, %edi +; CHECK: ja + +; 73 = 2^0 + 2^3 + 2^6 +; CHECK: movl $73 +; CHECK-NEXT: btl +; CHECK-NEXT: jb + +; 146 = 2^1 + 2^4 + 2^7 +; CHECK-NEXT: movl $146 +; CHECK-NEXT: btl +; CHECK-NEXT: jae + + +entry: + switch i32 %x, label %return [ + i32 0, label %bb0 + i32 3, label %bb0 + i32 6, label %bb0 + + i32 1, label %bb1 + i32 4, label %bb1 + i32 7, label %bb1 + + i32 2, label %bb2 + i32 5, label %bb2 + i32 8, label %bb2 + ] +bb0: tail call void @g(i32 0) br label %return +bb1: tail call void @g(i32 1) br label %return +bb2: tail call void @g(i32 2) br label %return +return: unreachable +} |