seen on trunk, 6 and 5 branches on x86_64-linux-gnu, works with -O1 and up:
$ g++ -c -O0 main.cpp
main.cpp: In function 'void p(AV)':
main.cpp:80:6: note: The ABI for passing parameters with 32-byte alignment has changed in GCC 4.6
void p(union AV a) {
^
main.cpp: In function 'void test(AV, int)':
main.cpp:101:29: internal compiler error: in convert_move, at expr.c:230
r.av = _mm256_shift_left(a.av,n); ~~~~~~~~~~~~~~~~~^~~~~~~~
0x898da0 convert_move(rtx_def*, rtx_def*, int) ../../src/gcc/expr.c:230
0x89f5cb store_expr_with_bounds(tree_node*, rtx_def*, int, bool, bool, tree_node*) ../../src/gcc/expr.c:5628
0x89fa3e expand_assignment(tree_node*, tree_node*, bool) ../../src/gcc/expr.c:5320
0x7b3dcd expand_gimple_stmt_1 ../../src/gcc/cfgexpand.c:3641
0x7b3dcd expand_gimple_stmt ../../src/gcc/cfgexpand.c:3737
0x7b538f expand_gimple_basic_block ../../src/gcc/cfgexpand.c:5744
0x7ba596 execute ../../src/gcc/cfgexpand.c:6358
Please submit a full bug report,
with preprocessed source if appropriate.
Created attachment 40223
test case
seen on trunk, 6 and 5 branches on x86_64-linux-gnu, works with -O1 and up:
$ g++ -c -O0 main.cpp shift_left( a.av,n) ;
~~ ~~~~~~~ ~~~~~~~ ~^~~~~~ ~~ move(rtx_ def*, rtx_def*, int)
../../ src/gcc/ expr.c: 230 with_bounds( tree_node* , rtx_def*, int, bool, bool, tree_node*)
../../ src/gcc/ expr.c: 5628 assignment( tree_node* , tree_node*, bool)
../../ src/gcc/ expr.c: 5320 gimple_ stmt_1
../../ src/gcc/ cfgexpand. c:3641
../../ src/gcc/ cfgexpand. c:3737 gimple_ basic_block
../../ src/gcc/ cfgexpand. c:5744
../../ src/gcc/ cfgexpand. c:6358
main.cpp: In function 'void p(AV)':
main.cpp:80:6: note: The ABI for passing parameters with 32-byte alignment has changed in GCC 4.6
void p(union AV a) {
^
main.cpp: In function 'void test(AV, int)':
main.cpp:101:29: internal compiler error: in convert_move, at expr.c:230
r.av = _mm256_
0x898da0 convert_
0x89f5cb store_expr_
0x89fa3e expand_
0x7b3dcd expand_
0x7b3dcd expand_gimple_stmt
0x7b538f expand_
0x7ba596 execute
Please submit a full bug report,
with preprocessed source if appropriate.