https://gcc.gnu.org/bugzilla/show_bug.cgi?id=103523
--- Comment #10 from CVS Commits <cvs-commit at gcc dot gnu.org> --- The releases/gcc-11 branch has been updated by Joel Hutton <jo...@gcc.gnu.org>: https://gcc.gnu.org/g:f2cc8d059df8aea1b811a4a68512d137f4e83bd5 commit r11-9380-gf2cc8d059df8aea1b811a4a68512d137f4e83bd5 Author: Joel Hutton <joel.hut...@arm.com> Date: Fri Dec 10 10:26:42 2021 +0000 pr103523: Check for PLUS/MINUS support Check for PLUS_EXPR/MINUS_EXPR support in vectorizable_induction. PR103523 is an ICE on valid code: void d(float *a, float b, int c) { float e; for (; c; c--, e += b) a[c] = e; } This is due to not checking for PLUS_EXPR support, which is missing in VNx2sf mode. This causes an ICE at expand time. This patch adds a check for support in vectorizable_induction. gcc/ChangeLog: PR tree-optimization/103523 * tree-vect-loop.c (vectorizable_induction): Check for PLUS_EXPR/MINUS_EXPR support. gcc/testsuite/ChangeLog: * gcc.target/aarch64/pr103523.c: New test.