[Bug middle-end/88301] Optimization regression with undefined unsigned overflow

2018-12-01 Thread glisse at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88301 --- Comment #3 from Marc Glisse --- (In reply to Marc Glisse from comment #2) > Not sure where this [0, 0] range is coming from... Well, I guess it is EVRP trying to encode __builtin_unreachable for _3!=0 in the range information of _3, but not

[Bug middle-end/88301] Optimization regression with undefined unsigned overflow

2018-12-01 Thread glisse at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88301 --- Comment #2 from Marc Glisse --- In the EVRP dump, I see: _2: unsigned int [0, 1] _3: _Bool [0, 1] [...] _1 = REALPART_EXPR <_6>; # RANGE [0, 1] NONZERO 1 _2 = IMAGPART_EXPR <_6>; # RANGE [0, 0] NONZERO 0 _3 = (_BoolD.1896) _2; N

[Bug middle-end/88301] Optimization regression with undefined unsigned overflow

2018-12-01 Thread pinskia at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88301 --- Comment #1 from Andrew Pinski --- Unsigned addition never overflows. It wraps.