https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99825
Jakub Jelinek <jakub at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |tnfchris at gcc dot gnu.org --- Comment #2 from Jakub Jelinek <jakub at gcc dot gnu.org> --- 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.