Re-land [openmp] Fix warnings when building on Windows with latest MSVC or Clang...
[llvm-project.git] / llvm / test / Transforms / SCCP / remove-call-inst.ll
blob6881b82a938fb9134197fc59855b7ecf4321a29d
1 ; NOTE: Assertions have been autogenerated by utils/update_test_checks.py
2 ; RUN: opt < %s -S -passes=ipsccp | FileCheck %s
3 ; PR5596
5 ; IPSCCP should propagate the 0 argument, eliminate the switch, and propagate
6 ; the result.
8 define i32 @main() noreturn nounwind {
9 ; CHECK-LABEL: @main(
10 ; CHECK-NEXT:  entry:
11 ; CHECK-NEXT:    ret i32 123
13 entry:
14   %call2 = tail call i32 @wwrite(i64 0) nounwind
15   ret i32 %call2
18 define internal i32 @wwrite(i64 %i) nounwind readnone willreturn {
19 ; CHECK-LABEL: @wwrite(
20 ; CHECK-NEXT:  entry:
21 ; CHECK-NEXT:    br label [[SW_DEFAULT:%.*]]
22 ; CHECK:       sw.default:
23 ; CHECK-NEXT:    ret i32 undef
25 entry:
26   switch i64 %i, label %sw.default [
27   i64 3, label %return
28   i64 10, label %return
29   ]
31 sw.default:
32   ret i32 123
34 return:
35   ret i32 0
38 ; CHECK: attributes #0 = { noreturn nounwind }
39 ; CHECK: attributes #1 = { nounwind willreturn memory(none) }