Error: >$ g++ -c -O3 func.cpp func.cpp: In function ‘void test()’: func.cpp:5:6: error: definition in block 3 follows the use 5 | void test() { | ^~~~ for SSA_NAME: var_5.3_5 in statement: vect__6.8_50 = vect__4.7_58 << var_5.3_5; during GIMPLE pass: slp func.cpp:5:6: internal compiler error: verify_ssa failed 0x1339a82 verify_ssa(bool, bool) gcc/tree-ssa.c:1208 0x1025705 execute_function_todo gcc/passes.c:1992 0x10263de execute_todo gcc/passes.c:2039 Reproducer: extern short var_3, var_8; extern int var_5; extern char var_10; extern int arr_99[][16]; void test() { for (; 0 < var_10;) for (long a(var_8);; a++) arr_99[4][a] = var_3 << var_5; } GCC version: 11.0.0 20200625 (77d455ee81ec3a23f8b20259a31ab963716f8e82)
This bug might be related to bug 95761
Confirmed, mine.
Just for the record, started with r11-1649-gd2adb79eac663874.
The master branch has been updated by Richard Biener <rguenth@gcc.gnu.org>: https://gcc.gnu.org/g:9a4a52e359ba16a2516a735dca838af512b19336 commit r11-1710-g9a4a52e359ba16a2516a735dca838af512b19336 Author: Richard Biener <rguenther@suse.de> Date: Mon Jun 29 13:53:51 2020 +0200 tree-optimization/95916 - treat scalar ops explicitely This explicitely treats the case of scalar operands for SLP when computing insert locations. 2020-06-29 Richard Biener <rguenther@suse.de> PR tree-optimization/95916 * tree-vect-slp.c (vect_schedule_slp_instance): Explicitely handle the case of not vectorized externals. * gcc.dg/vect/pr95916.c: New testcase.
Fixed.
*** Bug 95987 has been marked as a duplicate of this bug. ***