[Bug tree-optimization/109735] [14 Regression] ICE in vectorizable_store, at tree-vect-stmts.cc:8529 since r14-322-g821ef93976e750
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=109735 Richard Biener changed: What|Removed |Added Resolution|--- |FIXED Status|ASSIGNED|RESOLVED --- Comment #4 from Richard Biener --- Fixed.
[Bug tree-optimization/109735] [14 Regression] ICE in vectorizable_store, at tree-vect-stmts.cc:8529 since r14-322-g821ef93976e750
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=109735 --- Comment #3 from CVS Commits --- The master branch has been updated by Richard Biener : https://gcc.gnu.org/g:37b5f031292fbdb854ee791de3883362cf2afcff commit r14-494-g37b5f031292fbdb854ee791de3883362cf2afcff Author: Richard Biener Date: Fri May 5 08:54:28 2023 +0200 tree-optimization/109735 - conversion for vectorized pointer-diff There's handling in vectorizable_operation for POINTER_DIFF_EXPR requiring conversion of the result of the unsigned operation to a signed type. But that's conditional on the "default" kind of vectorization. In this PR it's shown the emulated vector path needs it and I think the masked operation case will, too (though we might eventually never mask an integral MINUS_EXPR). So the following makes that handling unconditional. PR tree-optimization/109735 * tree-vect-stmts.cc (vectorizable_operation): Perform conversion for POINTER_DIFF_EXPR unconditionally.
[Bug tree-optimization/109735] [14 Regression] ICE in vectorizable_store, at tree-vect-stmts.cc:8529 since r14-322-g821ef93976e750
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=109735 --- Comment #2 from Richard Biener --- We have a sign mismatch here from vectorizing a POINTER_MINUS_EXPR. (gdb) p debug ((slp_tree)0x39c2970) pr83329.c:11:6: note: node 0x39c2970 (max_nunits=1, refcnt=1) vector(1) int pr83329.c:11:6: note: op template: _2 = - pr83329.c:11:6: note: stmt 0 _2 = - pr83329.c:11:6: note: stmt 1 _3 = - pr83329.c:11:6: note: children 0x39c2a00 0x39c2a90 but (gdb) p debug_gimple_stmt (0x76fc3dc0) _24 = VIEW_CONVERT_EXPR(_23); there's code to handle this but it's conditional on a special case. The fix is to invoke it generally I think.
[Bug tree-optimization/109735] [14 Regression] ICE in vectorizable_store, at tree-vect-stmts.cc:8529 since r14-322-g821ef93976e750
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=109735 --- Comment #1 from Richard Biener --- I will have a look.
[Bug tree-optimization/109735] [14 Regression] ICE in vectorizable_store, at tree-vect-stmts.cc:8529 since r14-322-g821ef93976e750
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=109735 Martin Liška changed: What|Removed |Added Assignee|unassigned at gcc dot gnu.org |rguenth at gcc dot gnu.org Last reconfirmed||2023-05-04 Ever confirmed|0 |1 Status|UNCONFIRMED |ASSIGNED Target Milestone|--- |14.0