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