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

Reply via email to