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 ;-) )