diff --git a/src/ipa/libipa/fixedpoint.h b/src/ipa/libipa/fixedpoint.h
index fe75af16bb54..fd57826d0ac0 100644
--- a/src/ipa/libipa/fixedpoint.h
+++ b/src/ipa/libipa/fixedpoint.h
@@ -63,12 +63,7 @@ struct FixedPointQTraits {
 	{
 		v = std::clamp(v, min, max);
 
-		/*
-		 * The intermediate cast to int is needed on arm platforms to properly
-		 * cast negative values. See
-		 * https://embeddeduse.com/2013/08/25/casting-a-negative-float-to-an-unsigned-int/
-		 */
-		return static_cast<T>(static_cast<int>(std::round(v * (1 << F)))) & BitMask;
+		return static_cast<T>(std::round(v * (1 << F))) & BitMask;
 	}
 };
 
