forked from OSchip/llvm-project
29 lines
798 B
LLVM
29 lines
798 B
LLVM
|
; RUN: opt -S -gvn-hoist < %s | FileCheck %s
|
||
|
|
||
|
; Check that the call and fcmp are hoisted.
|
||
|
; CHECK-LABEL: define void @fun(
|
||
|
; CHECK: call float
|
||
|
; CHECK: fcmp oeq
|
||
|
; CHECK-NOT: call float
|
||
|
; CHECK-NOT: fcmp oeq
|
||
|
|
||
|
define void @fun(float %__b) minsize {
|
||
|
entry:
|
||
|
br label %if.then
|
||
|
|
||
|
if.then: ; preds = %entry
|
||
|
br i1 undef, label %if.then8, label %lor.lhs.false
|
||
|
|
||
|
lor.lhs.false: ; preds = %if.then
|
||
|
%0 = call float @llvm.fabs.f32(float %__b) #2
|
||
|
%cmpinf7 = fcmp oeq float %0, 0x7FF0000000000000
|
||
|
unreachable
|
||
|
|
||
|
if.then8: ; preds = %if.then
|
||
|
%1 = call float @llvm.fabs.f32(float %__b) #2
|
||
|
%cmpinf10 = fcmp oeq float %1, 0x7FF0000000000000
|
||
|
ret void
|
||
|
}
|
||
|
|
||
|
declare float @llvm.fabs.f32(float)
|