Bump version to 19.1.0-rc3
[llvm-project.git] / llvm / test / Transforms / SCCP / user-with-multiple-uses.ll
blobdeacc2bbcf39ba151ac5c42dfb872871fb8f1447
1 ; RUN: opt < %s -S -passes=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