llvm-project/llvm/test/Transforms/GVNHoist/hoist-call.ll

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)