[InstCombine] Signed saturation tests. NFC
[llvm-complete.git] / test / Transforms / IPConstantProp / return-constant.ll
blob195420d6aad7ed851a9a31dc0a20bc784fa53e64
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
5 T:              ; preds = %0
6         ret i32 52
8 F:              ; preds = %0
9         ret i32 52
12 define i1 @caller(i1 %C) {
13         %X = call i32 @foo( i1 %C )             ; <i32> [#uses=1]
14         %Y = icmp ne i32 %X, 0          ; <i1> [#uses=1]
15         ret i1 %Y
18 define i1 @invokecaller(i1 %C) personality i32 (...)* @__gxx_personality_v0 {
19         %X = invoke i32 @foo( i1 %C ) to label %OK unwind label %FAIL             ; <i32> [#uses=1]
20 OK:
21         %Y = icmp ne i32 %X, 0          ; <i1> [#uses=1]
22         ret i1 %Y 
23 FAIL:
24         %exn = landingpad {i8*, i32}
25                  cleanup
26         ret i1 false
29 declare i32 @__gxx_personality_v0(...)