https://gcc.gnu.org/bugzilla/show_bug.cgi?id=123972
--- Comment #3 from Richard Biener <rguenth at gcc dot gnu.org> ---
There is no test coverage on x86_64 for gimple_assign_cast_p including
FIX_TRUNC_EXPR.
I wonder whether changing tree_nop_conversion_p to do
/* Otherwise fall back on comparing machine modes (e.g. for
aggregate types, floats). */
return (TYPE_MODE (outer_type) == TYPE_MODE (inner_type)
&& element_mode (outer_type) == element_mode (inner_type));
would be good to avoid most vector mode issues (they can be BLKmode,
integer mode or vector mode). There's vector bool left where
x86 can have QImode 8, 4 and 2 element vectors (with QImode elements
but a single bit type precision elements). But "generate no code"
is probably OK there.
In the end tree_nop_conversion_p might be another "bad" predicate.