https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115405
Andrew Pinski <pinskia at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Last reconfirmed| |2024-06-09 Status|UNCONFIRMED |NEW Ever confirmed|0 |1 Component|rtl-optimization |middle-end --- Comment #1 from Andrew Pinski <pinskia at gcc dot gnu.org> --- Confirmed. Looks to be a mising sign extend when expanding the VCE like MEM_REF. ;; _4 = MEM[(_BitInt(17) *)&b]; (insn 8 7 9 (parallel [ (set (reg:SI 103) (and:SI (reg/v:SI 100 [ bD.2205 ]) (const_int 131071 [0x1ffff]))) (clobber (reg:CC 17 flags)) ]) "/app/example.cpp":6:10 -1 (nil)) (insn 9 8 0 (set (reg:SI 99 [ _4 ]) (reg:SI 103)) "/app/example.cpp":6:10 -1 (nil)) ;; b ={v} {CLOBBER(eos)}; (nil) ;; if (_4 != -65536) (insn 10 9 11 (set (reg:CCZ 17 flags) (compare:CCZ (reg:SI 99 [ _4 ]) (const_int -65536 [0xffffffffffff0000]))) "/app/example.cpp":13:6 -1 (nil))