https://gcc.gnu.org/bugzilla/show_bug.cgi?id=82170
Segher Boessenkool <segher at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Target|x86_64-*-* |x86_64-*-*, powerpc*-*-*
Status|UNCONFIRMED |NEW
Last reconfirmed| |2017-09-14
CC| |segher at gcc dot gnu.org
Ever confirmed|0 |1
--- Comment #9 from Segher Boessenkool <segher at gcc dot gnu.org> ---
For range tests, one of the first things the tree optimisers do (in
003t.original) is change (a <= x && x < b) into (x - a u< b - a)
(where u< is unsigned compare). And this in as narrow a type as
possible.
This survives all the way through the gimple optimisers. There is
no way combine can deal with this in general.
Maybe there should be a separate EXPR for range tests?
(The generated code looks relatively *good* on x86, btw ;-) )