https://gcc.gnu.org/bugzilla/show_bug.cgi?id=36884
Andrew Pinski <pinskia at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- See Also| |https://gcc.gnu.org/bugzill | |a/show_bug.cgi?id=109907 --- Comment #8 from Andrew Pinski <pinskia at gcc dot gnu.org> --- I think the biggest issue now is: ``` ;; _6 = _2 >= 0; (insn 10 7 11 (set (reg:HI 48) (not:HI (reg:HI 44 [ _2 ]))) "/app/example.cpp":6:3 -1 (nil)) (insn 11 10 12 (set (reg:HI 49) (lshiftrt:HI (reg:HI 48) (const_int 15 [0xf]))) "/app/example.cpp":6:3 -1 (nil)) (insn 12 11 0 (set (reg:QI 45 [ _6 ]) (subreg:QI (reg:HI 49) 0)) "/app/example.cpp":6:3 -1 (nil)) ``` If this was expanded instead using the bit select. I had noticed a similar thing in PR 109907 too.