[InstCombine] Signed saturation tests. NFC
[llvm-complete.git] / test / Transforms / IPConstantProp / user-with-multiple-uses.ll
blob3146709aec62a1cf8b32ead093a136b2ce467bbe
1 ; RUN: opt < %s -S -ipsccp | FileCheck %s
2 ; PR5596
4 ; IPSCCP should propagate the 0 argument, eliminate the switch, and propagate
5 ; the result.
7 ; CHECK: define i32 @main() #0 {
8 ; CHECK-NEXT: entry:
9 ; CHECK-NEXT: %call2 = tail call i32 @wwrite(i64 0) [[NUW:#[0-9]+]]
10 ; CHECK-NEXT: ret i32 123
12 define i32 @main() noreturn nounwind {
13 entry:
14   %call2 = tail call i32 @wwrite(i64 0) nounwind
15   ret i32 %call2
18 define internal i32 @wwrite(i64 %i) nounwind {
19 entry:
20   switch i64 %i, label %sw.default [
21     i64 3, label %return
22     i64 10, label %return
23   ]
25 sw.default:
26   ret i32 123
28 return:
29   ret i32 0
32 ; CHECK: attributes #0 = { noreturn nounwind }
33 ; CHECK: attributes #1 = { nounwind }