https://gcc.gnu.org/bugzilla/show_bug.cgi?id=114339

--- Comment #7 from Andrew Pinski <pinskia at gcc dot gnu.org> ---

This looks wrong:
```
;; mask_patt_17.15_55 = vect_cst__53 <= { 0, 9223372036854775807 };

(insn 21 20 22 (set (reg:V2DI 111)
        (mem/u/c:V2DI (symbol_ref/u:DI ("*.LC1") [flags 0x2]) [0  S16 A128]))
-1
     (expr_list:REG_EQUAL (const_vector:V2DI [
                (const_int 1 [0x1])
                (const_int -9223372036854775808 [0x8000000000000000])
            ])
        (nil)))

(insn 22 21 23 (set (reg:V2DI 112)
        (gt:V2DI (reg:V2DI 111)
            (reg:V2DI 100 [ vect_cst__53 ]))) -1
     (nil))

(insn 23 22 0 (set (reg:V2DI 102 [ mask_patt_17.15D.3121 ])
        (reg:V2DI 112)) -1
     (nil))
```

we go from `a <= INT_MAX` to `INT_MIN > a` which is basically going from `true`
to `a != INT_MIN`.

Reply via email to