[InstCombine] Signed saturation patterns
[llvm-core.git] / test / Transforms / InstCombine / readnone-maythrow.ll
blobf01e90263a3031881e905c198b4041fbf18ad1fd
1 ; RUN: opt -S -instcombine < %s | FileCheck %s
3 declare void @readnone_but_may_throw() readnone
5 define void @f_0(i32* %ptr) {
6 ; CHECK-LABEL: @f_0(
7 entry:
8 ; CHECK:  store i32 10, i32* %ptr
9 ; CHECK-NEXT:  call void @readnone_but_may_throw()
10 ; CHECK-NEXT:  store i32 20, i32* %ptr, align 4
11 ; CHECK:  ret void
13   store i32 10, i32* %ptr
14   call void @readnone_but_may_throw()
15   store i32 20, i32* %ptr
16   ret void
19 define void @f_1(i1 %cond, i32* %ptr) {
20 ; CHECK-LABEL: @f_1(
21 ; CHECK:  store i32 10, i32* %ptr
22 ; CHECK-NEXT:  call void @readnone_but_may_throw()
24   store i32 10, i32* %ptr
25   call void @readnone_but_may_throw()
26   br i1 %cond, label %left, label %merge
28 left:
29   store i32 20, i32* %ptr
30   br label %merge
32 merge:
33   ret void