[Bug tree-optimization/95487] [10/11 Regression] ICE: verify_gimple failed (error: invalid vector types in nop conversion) with -O3 -march=skylake-avx512 since r10-1052-gc29c92c789d93848
rguenth at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Wed Jun 3 06:22:45 GMT 2020
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=95487
Richard Biener <rguenth at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Target| |x86_64-*-* i?86-*-*
Target Milestone|--- |10.2
CC| |jakub at gcc dot gnu.org,
| |rguenth at gcc dot gnu.org
--- Comment #2 from Richard Biener <rguenth at gcc dot gnu.org> ---
So the issue is in the scatter store the mask is vectorized with V32QImode
but we expect a vector boolean (it seems). And we run into
if (TYPE_MODE (masktype) == TYPE_MODE (optype))
utype = masktype;
else
utype = lang_hooks.types.type_for_mode (TYPE_MODE (optype), 1);
with maskype QImode and optype V32QImode. utype is V32QImode as well after
the above and then with masktype still QImode we do
if (!useless_type_conversion_p (masktype, utype))
{
gcc_assert (TYPE_PRECISION (utype)
<= TYPE_PRECISION (masktype));
var = vect_get_new_ssa_name (masktype, vect_scalar_var);
new_stmt = gimple_build_assign (var, NOP_EXPR, mask_arg);
vect_finish_stmt_generation (vinfo, stmt_info, new_stmt,
gsi);
mask_arg = var;
and emit the bogus NOP_EXPR trying to convert from V32QImode to QImode. Oops?
Jakub, you added the scatter support - do you remember what the code tries to
do here?
More information about the Gcc-bugs
mailing list