diff --git a/polly/lib/Transform/ScheduleOptimizer.cpp b/polly/lib/Transform/ScheduleOptimizer.cpp index 230317869f71..c64f836b4c02 100644 --- a/polly/lib/Transform/ScheduleOptimizer.cpp +++ b/polly/lib/Transform/ScheduleOptimizer.cpp @@ -910,9 +910,10 @@ getMicroKernelParams(const TargetTransformInfo *TTI, MatMulInfoTy MMI) { 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); + int Nr = ceil(sqrt((double)(Nvec * LatencyVectorFma * ThroughputVectorFma)) / + Nvec) * + Nvec; + int Mr = ceil((double)(Nvec * LatencyVectorFma * ThroughputVectorFma / Nr)); return {Mr, Nr}; }