Hi, We have a '{2,2}' expression (vector initializer) propagated by dom into a BIT_FIELD_REF:
before (bug.c.105t.vrp2): vector long int vect_cst_.47; vect_cst_.47_66 = {2, 2}; D.2103_79 = BIT_FIELD_REF <vect_cst_.47_66, 64, 0>; after (bug.c.106t.dom3): " Optimizing block #7 Optimizing statement <L0>:; Optimizing statement D.2102_78 = BIT_FIELD_REF <vect_vec_iv_.48_67, 64, 0>; Optimizing statement D.2103_79 = BIT_FIELD_REF <vect_cst_.47_66, 64, 0>; Replaced 'vect_cst_.47_66' with constant '{2, 2}' " D.2103_79 = BIT_FIELD_REF <{2, 2}, 64, 0>; ...which causes he following ICE: " bug.c:8: error: invalid reference prefix {2, 2} bug.c:8: internal compiler error: verify_stmts failed " Several testcases are available in the bugzilla report (PR30784). So, the question is - what needs to be fixed - is it copy propagation that allows propagating the initializer into a BIT_FIELD_REF? or vect_lower pass that creates these BIT_FIELD_REFs after vectorization? thanks, dorit