canon.ll 601 B

123456789101112131415161718192021222324
  1. ; This test shows a few canonicalizations made by deadargelim
  2. ; RUN: opt < %s -deadargelim -S > %t
  3. ; This test should remove {} and replace it with void
  4. ; RUN: cat %t | grep "define internal void @test"
  5. ; This test shouls replace the {i32} return value with just i32
  6. ; RUN: cat %t | grep "define internal i32 @test2"
  7. define internal {} @test() {
  8. ret {} undef
  9. }
  10. define internal {i32} @test2() {
  11. ret {i32} undef
  12. }
  13. define void @caller() {
  14. call {} @test()
  15. %X = call {i32} @test2()
  16. %Y = extractvalue {i32} %X, 0
  17. call void @user(i32 %Y, {i32} %X)
  18. ret void
  19. }
  20. declare void @user(i32, {i32})