• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1; RUN: opt -sink -S < %s | FileCheck %s
2
3; Verify that IR sinking does not move convergent operations to
4; blocks that are not control equivalent.
5
6; CHECK: define i32 @foo
7; CHECK: entry
8; CHECK-NEXT: call i32 @bar
9; CHECK-NEXT: br i1 %arg
10
11define i32 @foo(i1 %arg) {
12entry:
13  %c = call i32 @bar() readonly convergent
14  br i1 %arg, label %then, label %end
15
16then:
17  ret i32 %c
18
19end:
20  ret i32 0
21}
22
23declare i32 @bar() readonly convergent
24