return-constant.ll 808 B

1234567891011121314151617181920212223242526272829
  1. ; RUN: opt < %s -ipconstprop -instcombine -S | grep "ret i1 true" | count 2
  2. define internal i32 @foo(i1 %C) {
  3. br i1 %C, label %T, label %F
  4. T: ; preds = %0
  5. ret i32 52
  6. F: ; preds = %0
  7. ret i32 52
  8. }
  9. define i1 @caller(i1 %C) {
  10. %X = call i32 @foo( i1 %C ) ; <i32> [#uses=1]
  11. %Y = icmp ne i32 %X, 0 ; <i1> [#uses=1]
  12. ret i1 %Y
  13. }
  14. define i1 @invokecaller(i1 %C) personality i32 (...)* @__gxx_personality_v0 {
  15. %X = invoke i32 @foo( i1 %C ) to label %OK unwind label %FAIL ; <i32> [#uses=1]
  16. OK:
  17. %Y = icmp ne i32 %X, 0 ; <i1> [#uses=1]
  18. ret i1 %Y
  19. FAIL:
  20. %exn = landingpad {i8*, i32}
  21. cleanup
  22. ret i1 false
  23. }
  24. declare i32 @__gxx_personality_v0(...)