https://gcc.gnu.org/bugzilla/show_bug.cgi?id=105591
Richard Biener <rguenth at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Target Milestone|--- |13.0 Status|UNCONFIRMED |NEW Last reconfirmed| |2022-05-13 Ever confirmed|0 |1 CC| |liuhongt at gcc dot gnu.org --- Comment #1 from Richard Biener <rguenth at gcc dot gnu.org> --- Confirmed. The offset is very large negative, built by simplify_bitfield_ref here: 2416 tem = build3 (BIT_FIELD_REF, TREE_TYPE (op), 2417 p, op1, bitsize_int (idx * elem_size)); (gdb) p idx $11 = 13704120150654661628 because we have a non-sensical permute: x_4 = VEC_PERM_EXPR <u_3(D), u_3(D), { 13704120150654661630, 0 }>; some sanity checking in simplify_bitfield_ref might be in order. Rejecting the __builtin_shuffle might be another option, it's surely going to cause issues elsewhere.