https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66165
Bug ID: 66165 Summary: vect_transform_slp_perm_load: vec out of range ? Product: gcc Version: 6.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: dcb314 at hotmail dot com Target Milestone: --- Created attachment 35551 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=35551&action=edit gzipped C++ source code The attached code, when compiled by gcc trunk dated 20150513 and with flag -O3, says this: $ ../results/bin/g++ -c -O3 bug206.cc renderers/agg/src/agg_curves.cpp: In member function ‘unsigned int mapserver::curve3_inc::vertex(double*, double*)’: renderers/agg/src/agg_curves.cpp:101:14: internal compiler error: Segmentation fault 0xd8357f crash_signal ../../src/trunk/gcc/toplev.c:380 0xfe20ad vec<unsigned int, va_heap, vl_embed>::operator[](unsigned int) ../../src/trunk/gcc/vec.h:736 0xfe20ad vec<unsigned int, va_heap, vl_ptr>::operator[](unsigned int) ../../src/trunk/gcc/vec.h:1202 0xfe20ad vect_transform_slp_perm_load(_slp_tree*, vec<tree_node*, va_heap, vl_ptr>, gimple_stmt_iterator*, int, _slp_instance*, bool) ../../src/trunk/gcc/tree-vect-slp.c:3292 0xfe4218 vect_supported_load_permutation_p ../../src/trunk/gcc/tree-vect-slp.c:1419 0xfe4218 vect_analyze_slp_instance ../../src/trunk/gcc/tree-vect-slp.c:1826 0xfe55b6 vect_analyze_slp(_loop_vec_info*, _bb_vec_info*, unsigned int) ../../src/trunk/gcc/tree-vect-slp.c:1896 0xfe5a63 vect_slp_analyze_bb_1 ../../src/trunk/gcc/tree-vect-slp.c:2430 0xfe5a63 vect_slp_analyze_bb(basic_block_def*) ../../src/trunk/gcc/tree-vect-slp.c:2560 0xfe8eb2 execute ../../src/trunk/gcc/tree-vectorizer.c:662 Please submit a full bug report, with preprocessed source if appropriate. Please include the complete backtrace with any bug report. See <http://gcc.gnu.org/bugs.html> for instructions. $ Line tree-vect-slp.c:3292 is i = SLP_TREE_LOAD_PERMUTATION (node)[k];