https://gcc.gnu.org/bugzilla/show_bug.cgi?id=119879
--- Comment #2 from Jan Hubicka <hubicka at gcc dot gnu.org> --- Created attachment 61166 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=61166&action=edit Fix I am testing The fix I am testing. When VEC_PACK_TRUNC_EXPR is used, add_hook is called with vec_promote_demote. When we simply truncate n doubles to n floats add_hook is called with regular statement. I used same logic to compute cost of promotes and normal statements which introduced the problem.