https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79971
--- Comment #3 from Richard Biener <rguenth at gcc dot gnu.org> --- Fix is simple though: Index: gcc/gimple-expr.c =================================================================== --- gcc/gimple-expr.c (revision 245987) +++ gcc/gimple-expr.c (working copy) @@ -124,7 +124,7 @@ /* Fixed point types with the same mode are compatible. */ else if (FIXED_POINT_TYPE_P (inner_type) && FIXED_POINT_TYPE_P (outer_type)) - return true; + return TYPE_SATURATING (inner_type) == TYPE_SATURATING (outer_type); /* We need to take special care recursing to pointed-to types. */ else if (POINTER_TYPE_P (inner_type) appearantly fixed-point support doesn't get much testing...