Description: call of overloaded ‘ceil(long unsigned int)’ is ambiguous, call of overloaded ‘sqrt(long unsigned int)’ is ambiguous Index: llvm-toolchain-5.0-5.0/tools/polly/lib/Transform/ScheduleOptimizer.cpp =================================================================== --- llvm-toolchain-5.0-5.0.orig/tools/polly/lib/Transform/ScheduleOptimizer.cpp +++ llvm-toolchain-5.0-5.0/tools/polly/lib/Transform/ScheduleOptimizer.cpp @@ -971,9 +971,9 @@ getMicroKernelParams(const llvm::TargetT auto Nvec = RegisterBitwidth / ElementSize; if (Nvec == 0) Nvec = 2; - int Nr = - ceil(sqrt(Nvec * LatencyVectorFma * ThroughputVectorFma) / Nvec) * Nvec; - int Mr = ceil(Nvec * LatencyVectorFma * ThroughputVectorFma / Nr); + double _tmp = Nvec * LatencyVectorFma * ThroughputVectorFma; + int Nr = ceil(sqrt(_tmp) / Nvec) * Nvec; + int Mr = ceil(_tmp / Nr); return {Mr, Nr}; }