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

--- Comment #4 from Uroš Bizjak <ubizjak at gmail dot com> ---
(In reply to Robin Dapp from comment #0)
> Similar to PR123792 for aarch64, we could do better at

Please also see PR36503. For x86, we use:

(INTVAL (operands[3]) & (<MODE_SIZE> * BITS_PER_UNIT - 1)) == 0

instead of

INTVAL (operands[3]) == GET_MODE_BITSIZE (<MODE>mode)

to also cover multiplies of bit sizes (32, 64, 128, ...) for constant operand.

Based on the discussion here, we will also use:

INTVAL (operands[3]) & (<MODE_SIZE> * BITS_PER_UNIT - 1)
== <MODE_SIZE> * BITS_PER_UNIT - 1

to cover (31, 63, 127) in case of NOT insn.

Reply via email to