https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88301
--- Comment #2 from Marc Glisse <glisse at gcc dot gnu.org> --- 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; Not sure where this [0, 0] range is coming from...