diff options
Diffstat (limited to 'test/Transforms/DeadArgElim/canon.ll')
-rw-r--r-- | test/Transforms/DeadArgElim/canon.ll | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/test/Transforms/DeadArgElim/canon.ll b/test/Transforms/DeadArgElim/canon.ll new file mode 100644 index 000000000000..b8adb713a7af --- /dev/null +++ b/test/Transforms/DeadArgElim/canon.ll @@ -0,0 +1,24 @@ +; This test shows a few canonicalizations made by deadargelim +; RUN: llvm-as < %s | opt -deadargelim | llvm-dis > %t +; This test should remove {} and replace it with void +; RUN: cat %t | grep {define internal void @test} +; This test shouls replace the {i32} return value with just i32 +; RUN: cat %t | grep {define internal i32 @test2} + +define internal {} @test() { + ret {} undef +} + +define internal {i32} @test2() { + ret {i32} undef; +} + +define void @caller() { + call {} @test() + %X = call {i32} @test2(); + %Y = extractvalue {i32} %X, 0 + call void @user(i32 %Y, {i32} %X) + ret void +} + +declare void @user(i32, {i32}) |