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.

Reply via email to