https://gcc.gnu.org/bugzilla/show_bug.cgi?id=105126
--- Comment #5 from Andrew Pinski <pinskia at gcc dot gnu.org> --- Note for aarch64, is_bin_1 produces better code on the trunk than is_bin_0. There is an extra zero extent for is_bin_0 there. So I suspect this is we get a promotion/demotion pass, it will definitely need to check some target specific hooks/macros to get the best code generation. x86_64 might be one of the few targets (left) that demotion makes a difference while most other targets want promotions really.