forked from OSchip/llvm-project
25 lines
451 B
LLVM
25 lines
451 B
LLVM
; RUN: opt -S < %s -correlated-propagation | FileCheck %s
|
|
|
|
; CHECK: @test
|
|
define i16 @test(i32 %a, i1 %b) {
|
|
entry:
|
|
%c = icmp eq i32 %a, 0
|
|
br i1 %c, label %left, label %right
|
|
|
|
right:
|
|
%d = trunc i32 %a to i1
|
|
br label %merge
|
|
|
|
left:
|
|
br i1 %b, label %merge, label %other
|
|
|
|
other:
|
|
ret i16 23
|
|
|
|
merge:
|
|
%f = phi i1 [%b, %left], [%d, %right]
|
|
; CHECK: select i1 %f, i16 1, i16 0
|
|
%h = select i1 %f, i16 1, i16 0
|
|
; CHECK: ret i16 %h
|
|
ret i16 %h
|
|
} |