Undocumented parameters for __builtin_cpu_supports()?

classic Classic list List threaded Threaded
2 messages Options
Reply | Threaded
Open this post in threaded view
|

Undocumented parameters for __builtin_cpu_supports()?

Martin Reinecke
Compiling and running the following code on a CPU with BMI2 support
prints "BMI2 detected" as one would expect:

#include <stdio.h>

int main(void)
  {
  if (__builtin_cpu_supports("bmi2"))
    printf("BMI2 detected\n");
  return 0;
  }

However, "bmi2" is not documented in the list of arguments at
https://gcc.gnu.org/onlinedocs/gcc-8.2.0/gcc/x86-Built-in-Functions.html#x86-Built-in-Functions

Is this list supposed to be complete? If yes, I can open a PR. If not,
is there any other way to obtain the full list of allowed parameters?

Cheers,
  Martin

Reply | Threaded
Open this post in threaded view
|

Re: Undocumented parameters for __builtin_cpu_supports()?

Martin Liška-2
On 11/6/18 1:35 PM, Martin Reinecke wrote:

> Compiling and running the following code on a CPU with BMI2 support
> prints "BMI2 detected" as one would expect:
>
> #include <stdio.h>
>
> int main(void)
>   {
>   if (__builtin_cpu_supports("bmi2"))
>     printf("BMI2 detected\n");
>   return 0;
>   }
>
> However, "bmi2" is not documented in the list of arguments at
> https://gcc.gnu.org/onlinedocs/gcc-8.2.0/gcc/x86-Built-in-Functions.html#x86-Built-in-Functions

Hi.

Thanks for reporting that. Yes, it's missing.

>
> Is this list supposed to be complete? If yes, I can open a PR. If not,
> is there any other way to obtain the full list of allowed parameters?

If I see correctly, not.

I filed a PR for it:
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87903

for which I'll prepare a patch.

Martin

>
> Cheers,
>   Martin
>