https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91126

--- Comment #3 from Richard Biener <rguenth at gcc dot gnu.org> ---
So the issue is the usual GET_MODE_SIZE != ref->size.  native_encode_int
encodes two 32bit numbers (but only 3 bytes from them, in big-endian) while VN
expects it to encode a 3-byte 24bit number.  There's the possibility to disable
handling of non-mode precision entities or properly fix it (I think we "simply"
need to offset the encoding for big-endian).  Note the issue is probably latent
for the other places VN uses native_encode_expr on non-mode precision entities.

There's already a guard on non-mode precision extracts but not for
mode-precision extracts of non-mode precision values which I think has the very
same issue.

Reply via email to