[Bug tree-optimization/95356] [11 Regression] ICE in vect_get_constant_vectors, at tree-vect-slp.c:3635 since r11-564-g79f0451c67e8ed56

rguenth at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Thu May 28 12:22:23 GMT 2020


https://gcc.gnu.org/bugzilla/show_bug.cgi?id=95356

--- Comment #10 from Richard Biener <rguenth at gcc dot gnu.org> ---
OK, so vectorizable_shift doing

              else if (dt[1] == vect_constant_def)
                {
                  /* Convert the scalar constant shift amounts in-place.  */
                  slp_tree shift = SLP_TREE_CHILDREN (slp_node)[1];
                  gcc_assert (SLP_TREE_DEF_TYPE (shift) == vect_constant_def);
                  for (unsigned i = 0;
                       i < SLP_TREE_SCALAR_OPS (shift).length (); ++i)
                    {
                      SLP_TREE_SCALAR_OPS (shift)[i]
                          = fold_convert (TREE_TYPE (vectype),
                                          SLP_TREE_SCALAR_OPS (shift)[i]);
                      gcc_assert ((TREE_CODE (SLP_TREE_SCALAR_OPS (shift)[i])
                                   == INTEGER_CST));
                    }

no longer works because we already tried code-generating it.  The above would
need to happen at analysis time (ensuring the node is not shared - which would
be a problem for the above code as well).


More information about the Gcc-bugs mailing list