[InstCombine] Signed saturation patterns
[llvm-core.git] / test / Transforms / Sink / convergent.ll
blobb209e670546850aebee792572bfd75c69b6cafa9
1 ; RUN: opt -sink -S < %s | FileCheck %s
3 ; Verify that IR sinking does not move convergent operations to
4 ; blocks that are not control equivalent.
6 ; CHECK: define i32 @foo
7 ; CHECK: entry
8 ; CHECK-NEXT: call i32 @bar
9 ; CHECK-NEXT: br i1 %arg
11 define i32 @foo(i1 %arg) {
12 entry:
13   %c = call i32 @bar() readonly convergent
14   br i1 %arg, label %then, label %end
16 then:
17   ret i32 %c
19 end:
20   ret i32 0
23 declare i32 @bar() readonly convergent