git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@162180
91177308-0d34-0410-b5e6-
96231b3b80d8
CallInst *CI = cast<CallInst>(LHSI);
LibFunc::Func Func;
// Various optimization for fabs compared with zero.
- if (RHSC->isNullValue() &&
+ if (RHSC->isNullValue() && CI->getCalledFunction() &&
TLI->getLibFunc(CI->getCalledFunction()->getName(), Func) &&
TLI->has(Func)) {
if (Func == LibFunc::fabs || Func == LibFunc::fabsf ||
; CHECK-NOT: fabs
; CHECK: fcmp ueq double %a, 0.000000e+00
}
+
+; Don't crash.
+define i32 @test17(double %a, double (double)* %p) nounwind {
+ %call = tail call double %p(double %a) nounwind
+ %cmp = fcmp ueq double %call, 0.000000e+00
+ %conv = zext i1 %cmp to i32
+ ret i32 %conv
+}