]> git.ipfire.org Git - thirdparty/gcc.git/commit
combine: Fix handling of unsigned constants
authorStefan Schulze Frielinghaus <stefansf@linux.ibm.com>
Sun, 15 Oct 2023 09:20:01 +0000 (11:20 +0200)
committerStefan Schulze Frielinghaus <stefansf@linux.ibm.com>
Sun, 15 Oct 2023 09:20:01 +0000 (11:20 +0200)
commit648d30716d0cdb5dec96b2da9ed23328bad7cb9f
tree7a832c1609ed7e52be2b869e69f2a8ca7924b411
parent77faa3e198a6b6f9a55a8010bef1c394d2e3cf8e
combine: Fix handling of unsigned constants

If a CONST_INT represents an integer of a mode with fewer bits than in
HOST_WIDE_INT, then the integer is sign extended.  For those two
optimizations touched by this patch, the integers of interest have only
the most significant bit set w.r.t their mode, therefore, they were sign
extended.  Thus in order to get the integer of interest, we have to chop
off the high bits.

gcc/ChangeLog:

* combine.cc (simplify_compare_const): Fix handling of unsigned
constants.
gcc/combine.cc