[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