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

Andrew Pinski <pinskia at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |NEW
     Ever confirmed|0                           |1
   Last reconfirmed|                            |2021-08-07

--- Comment #2 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
Summary of some of these
/* x + (x & 0x80000000) -> x & 0x7fffffff */
No one does
/* (x | 0x80000000) + 0x80000000 -> x & 0x7FFFFFFF */
LLVM does
/* x & (0x7FFFFFFF - x) -> x & 0x80000000 */
No one does, ICC does (-x + 0x7FFFFFFF) & x
/* x | (x + 0x80000000) -> x | 0x80000000 */
LLVM does
/* x | (0x7FFFFFFF - x) -> x | 0x7FFFFFFF */
No one does, ICC does (-x + 0x7FFFFFFF) | x

/* x | (x ^ y) -> x | y */
GCC and LLVM

/* -x | 0xFFFFFFFE -> x | 0xFFFFFFFE */
LLVM does
/* 0 - (x & 0x80000000) -> x & 0x80000000 */
LLVM does

/* ~(x + c) -> ~c - x */
GCC and LLVM
/* (x | c) - c -> x & ∼c */
GCC and LLVM

/* 0x7FFFFFFF - (x ^ c) -> x ^ (0x7FFFFFFF - c) */
LLVM does

Reply via email to