[Bug target/99825] [11 Regression] ICE in vect_build_combine_node

tnfchris at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Tue Mar 30 10:15:56 GMT 2021


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

Tamar Christina <tnfchris at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Assignee|unassigned at gcc dot gnu.org      |tnfchris at gcc dot gnu.org

--- Comment #3 from Tamar Christina <tnfchris at gcc dot gnu.org> ---
(In reply to Jakub Jelinek from comment #2)
> 887	  perm.create (SLP_TREE_LANES (rep));
> 888	
> 889	  for (unsigned x = 0; x < SLP_TREE_LANES (rep); x+=2)
> 890	    {
> 891	      perm.quick_push (std::make_pair (0, x));
> 892	      perm.quick_push (std::make_pair (1, x+1));
> 893	    }
> 
> that was added in r11-6693-ge09173d84dabd186ad2463f47350c1bcabfeab8f
> can't really work, it allocates just SLP_TREE_LANES (resp) elements,
> but can quick_push one more elements - when SLP_TREE_LANES is odd (in this
> testcase 3).  So, either some caller needs to ensure SLP_TREE_LANES is even
> or this function isn't called, or it needs to be changed to handle even odd
> numbers.

It can't work on odd lanes since the operation needs to update both a real and
imaginary component. So this should have been rejected much earlier.

Testing a patch.


More information about the Gcc-bugs mailing list