Comment 4 for bug 1642109

Revision history for this message
In , Doko-v (doko-v) wrote :

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
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.