------- Comment #1 from jakub at gcc dot gnu dot org 2008-09-19 13:58 ------- The problem is const_vector_from_tree called on: <vector_cst 0x7ffff3375e10 type <vector_type 0x7ffff33ed540 __vector signed int type <integer_type 0x7ffff332d540 int sizes-gimplified public SI size <integer_cst 0x7ffff3319930 constant 32> unit size <integer_cst 0x7ffff33195a0 constant 4> align 32 symtab 0 alias set -1 canonical type 0x7ffff332d540 precision 32 min <integer_cst 0x7ffff33198a0 -2147483648> max <integer_cst 0x7ffff33198d0 2147483647> pointer_to_this <pointer_type 0x7ffff333c9c0>> V4SI size <integer_cst 0x7ffff3319c90 constant 128> unit size <integer_cst 0x7ffff3319cc0 constant 16> align 128 symtab 0 alias set -1 canonical type 0x7ffff33ed540 nunits 4> constant elt0: <integer_cst 0x7ffff3352570 type <integer_type 0x7ffff332d540 int> constant 3> elt1: <integer_cst 0x7ffff3352570 3> elt2: <integer_cst 0x7ffff3352570 3> elt3: <integer_cst 0x7ffff3352570 3> elt4: <integer_cst 0x7ffff3352570 3> elt5: <integer_cst 0x7ffff3352570 3> elt6: <integer_cst 0x7ffff3352570 3> elt7: <integer_cst 0x7ffff3352570 3>>
Note V4SImode, yet 8 elements. This allocates a vector with rtvec_alloc (4), yet fills in 8 elements. Looking what creates it. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37574