https://gcc.gnu.org/bugzilla/show_bug.cgi?id=117116
--- Comment #8 from Uroš Bizjak <ubizjak at gmail dot com> --- diff --git a/gcc/config/i386/i386-expand.cc b/gcc/config/i386/i386-expand.cc index 2b774ff7c4e..03a20aaca49 100644 --- a/gcc/config/i386/i386-expand.cc +++ b/gcc/config/i386/i386-expand.cc @@ -17642,9 +17642,7 @@ ix86_expand_vector_init (bool mmx_ok, rtx target, rtx vals) for (i = 0; i < n_elts; ++i) { x = XVECEXP (vals, 0, i); - if (!(CONST_SCALAR_INT_P (x) - || CONST_DOUBLE_P (x) - || CONST_FIXED_P (x))) + if (immediate_operand (x, inner_mode)) n_var++, one_var = i; else if (x != CONST0_RTX (inner_mode)) all_const_zero = false;