https://gcc.gnu.org/bugzilla/show_bug.cgi?id=103311
Bug ID: 103311 Summary: [12 Regression] ICE in complex_mul_pattern::build(vec_info*) Product: gcc Version: 12.0 Status: UNCONFIRMED Keywords: ice-on-valid-code Severity: normal Priority: P3 Component: tree-optimization Assignee: unassigned at gcc dot gnu.org Reporter: asolokha at gmx dot com Target Milestone: --- Target: aarch64-linux-gnu gcc-12.0.0-alpha20111114 snapshot (g:3057f1ab737582a9fb37a3fb967ed8bf3659f2f4) ICEs when compiling the following testcase w/ -march=armv8.3-a -O1 -ftree-slp-vectorize: _Complex double y; void cbknu (_Complex double f) { const _Complex double cone = 1.0e0; f = f * cone; y = f * cone; } % aarch64-linux-gnu-gcc-12.0.0 -march=armv8.3-a -O1 -ftree-slp-vectorize -c cbknu.c during GIMPLE pass: slp cbknu.c: In function 'cbknu': cbknu.c:4:1: internal compiler error: in operator[], at vec.h:889 4 | cbknu (_Complex double f) | ^~~~~ 0x7e18be vec<tree_node*, va_heap, vl_embed>::operator[](unsigned int) /var/tmp/portage/cross-aarch64-linux-gnu/gcc-12.0.0_alpha20211114/work/gcc-12-20211114/gcc/vec.h:889 0x7e1a73 vec<_slp_tree*, va_heap, vl_embed>::operator[](unsigned int) /var/tmp/portage/cross-aarch64-linux-gnu/gcc-12.0.0_alpha20211114/work/gcc-12-20211114/gcc/tree-vect-slp-patterns.c:1119 0x7e1a73 vec<_slp_tree*, va_heap, vl_ptr>::operator[](unsigned int) /var/tmp/portage/cross-aarch64-linux-gnu/gcc-12.0.0_alpha20211114/work/gcc-12-20211114/gcc/vec.h:1495 0x7e1a73 complex_mul_pattern::build(vec_info*) /var/tmp/portage/cross-aarch64-linux-gnu/gcc-12.0.0_alpha20211114/work/gcc-12-20211114/gcc/tree-vect-slp-patterns.c:1083 0x11f8b00 vect_match_slp_patterns_2 /var/tmp/portage/cross-aarch64-linux-gnu/gcc-12.0.0_alpha20211114/work/gcc-12-20211114/gcc/tree-vect-slp.c:2915 0x11f8aa6 vect_match_slp_patterns_2 /var/tmp/portage/cross-aarch64-linux-gnu/gcc-12.0.0_alpha20211114/work/gcc-12-20211114/gcc/tree-vect-slp.c:2907 0x11f8aa6 vect_match_slp_patterns_2 /var/tmp/portage/cross-aarch64-linux-gnu/gcc-12.0.0_alpha20211114/work/gcc-12-20211114/gcc/tree-vect-slp.c:2907 0x11fce1e vect_match_slp_patterns /var/tmp/portage/cross-aarch64-linux-gnu/gcc-12.0.0_alpha20211114/work/gcc-12-20211114/gcc/tree-vect-slp.c:2943 0x11fce1e vect_analyze_slp(vec_info*, unsigned int) /var/tmp/portage/cross-aarch64-linux-gnu/gcc-12.0.0_alpha20211114/work/gcc-12-20211114/gcc/tree-vect-slp.c:3426 0x12030dc vect_slp_analyze_bb_1 /var/tmp/portage/cross-aarch64-linux-gnu/gcc-12.0.0_alpha20211114/work/gcc-12-20211114/gcc/tree-vect-slp.c:5744 0x12030dc vect_slp_region /var/tmp/portage/cross-aarch64-linux-gnu/gcc-12.0.0_alpha20211114/work/gcc-12-20211114/gcc/tree-vect-slp.c:5846 0x1204b24 vect_slp_bbs /var/tmp/portage/cross-aarch64-linux-gnu/gcc-12.0.0_alpha20211114/work/gcc-12-20211114/gcc/tree-vect-slp.c:6038 0x1204f68 vect_slp_function(function*) /var/tmp/portage/cross-aarch64-linux-gnu/gcc-12.0.0_alpha20211114/work/gcc-12-20211114/gcc/tree-vect-slp.c:6126 0x120c28a execute /var/tmp/portage/cross-aarch64-linux-gnu/gcc-12.0.0_alpha20211114/work/gcc-12-20211114/gcc/tree-vectorizer.c:1459