On Fri, Nov 25, 2022 at 01:57:35PM +0100, Martin Liška wrote: > PR target/107551 > > gcc/ChangeLog: > > * config/i386/i386-builtins.cc (fold_builtin_cpu): Use same path > as for PR103661. > * doc/extend.texi: Fix "x86-64" use. > > gcc/testsuite/ChangeLog: > > * gcc.target/i386/builtin_target.c: Add more checks. > + > + field_val = (1U << feature);
Just field_val = 1U << feature; ? > + final = build2 (BIT_AND_EXPR, unsigned_type_node, array_elt, > + build_int_cstu (unsigned_type_node, field_val)); > + if (feature == (INT_TYPE_SIZE - 1)) Just if (feature == INT_TYPE_SIZE - 1) ? > + return build2 (NE_EXPR, integer_type_node, final, > + build_int_cst (unsigned_type_node, 0)); > + else > + return build1 (NOP_EXPR, integer_type_node, final); > } > gcc_unreachable (); > } Otherwise LGTM, though I must say the destinction for when __builtin_cpu_is and __builtin_cpu_supports works looks completely random. Jakub