[Bug tree-optimization/114464] [14 regression] ICE when building tdscpp-20240212
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=114464 Richard Biener changed: What|Removed |Added Status|ASSIGNED|RESOLVED Resolution|--- |FIXED --- Comment #9 from Richard Biener --- Fixed (but possibly latent in GCC 13).
[Bug tree-optimization/114464] [14 regression] ICE when building tdscpp-20240212
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=114464 --- Comment #8 from GCC Commits --- The master branch has been updated by Richard Biener : https://gcc.gnu.org/g:226a220d0056396e825e12435cc0da52cbd5ac56 commit r14-9665-g226a220d0056396e825e12435cc0da52cbd5ac56 Author: Richard Biener Date: Tue Mar 26 09:39:30 2024 +0100 tree-optimization/114464 - verify types in recurrence vectorization The following adds missing verification of vector type compatibility to recurrence vectorization. PR tree-optimization/114464 * tree-vect-loop.cc (vectorizable_recurr): Verify the latch vector type is compatible with what we chose for the recurrence. * g++.dg/vect/pr114464.cc: New testcase.
[Bug tree-optimization/114464] [14 regression] ICE when building tdscpp-20240212
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=114464 Richard Biener changed: What|Removed |Added Assignee|unassigned at gcc dot gnu.org |rguenth at gcc dot gnu.org Status|NEW |ASSIGNED --- Comment #7 from Richard Biener --- Mine.
[Bug tree-optimization/114464] [14 regression] ICE when building tdscpp-20240212
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=114464 --- Comment #6 from Andrew Pinski --- (In reply to Xi Ruoyao from comment #4) > Interestingly, this only happens when N % 16 == 0. That depends on the target, for aarch64 (and arm with neon enabled), GCC ICEs for all multiplies of 8, while x86_64 is multiples of 16.
[Bug tree-optimization/114464] [14 regression] ICE when building tdscpp-20240212
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=114464 Andrew Pinski changed: What|Removed |Added Status|UNCONFIRMED |NEW CC||pinskia at gcc dot gnu.org Ever confirmed|0 |1 Last reconfirmed||2024-03-25 Keywords||needs-bisection --- Comment #5 from Andrew Pinski --- Better reduced testcase (removes the template and unused arguments): ``` void h(unsigned char *scratch, bool carry) { for (int i = 0; i < 16; i++) { bool b = scratch[i] <<= 1; if (carry) scratch[i] |= 1; carry = b; } } ```
[Bug tree-optimization/114464] [14 regression] ICE when building tdscpp-20240212
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=114464 Xi Ruoyao changed: What|Removed |Added CC||xry111 at gcc dot gnu.org --- Comment #4 from Xi Ruoyao --- Interestingly, this only happens when N % 16 == 0.
[Bug tree-optimization/114464] [14 regression] ICE when building tdscpp-20240212
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=114464 --- Comment #3 from Sam James --- Reduced: ``` template void double_to_int(double, unsigned char *scratch, bool carry) { for (int i = 0; i < N; i++) { bool b = scratch[i] <<= 1; if (carry) scratch[i] |= 1; carry = b; } } double bcp_row_data_d; unsigned char bcp_row_data_ptr; bool carry; void bcp_row_data() { double_to_int<16>(bcp_row_data_d, _row_data_ptr, carry); } ```
[Bug tree-optimization/114464] [14 regression] ICE when building tdscpp-20240212
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=114464 --- Comment #2 from Sam James --- Ah, yes, sorry. Reducing too.
[Bug tree-optimization/114464] [14 regression] ICE when building tdscpp-20240212
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=114464 Richard Biener changed: What|Removed |Added Keywords||ice-on-valid-code, ||needs-reduction Target Milestone|--- |14.0 CC||rguenth at gcc dot gnu.org Component|middle-end |tree-optimization --- Comment #1 from Richard Biener --- x86-64?