<table border="1" cellspacing="0" cellpadding="8">
    <tr>
        <th>Issue</th>
        <td>
            <a href=https://github.com/llvm/llvm-project/issues/127271>127271</a>
        </td>
    </tr>

    <tr>
        <th>Summary</th>
        <td>
            cpuid.h doesn't like -masm=intel
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            new issue
      </td>
    </tr>

    <tr>
      <th>Assignees</th>
      <td>
      </td>
    </tr>

    <tr>
      <th>Reporter</th>
      <td>
          Alcaro
      </td>
    </tr>
</table>

<pre>
    ```c
#include <cpuid.h>

unsigned get_cpuid_max(unsigned ext, unsigned* sig)
{
        return __get_cpuid_max(ext, sig);
}
```
-masm=intel

Expected: Should work, like gcc; the relevant asm supports both at&t and intel syntax https://github.com/gcc-mirror/gcc/blob/master/gcc/config/i386/cpuid.h#L280

Actual: The clang version of that header is at&t syntax only https://github.com/llvm/llvm-project/blob/main/clang/lib/Headers/cpuid.h#L271, and returns
```
In file included from <source>:1:
/opt/compiler-explorer/clang-19.1.0/lib/clang/19/include/cpuid.h:309:5: error: unknown token in expression
  309 |     __cpuid(__leaf, __eax, __ebx, __ecx, __edx);
      | ^
/opt/compiler-explorer/clang-19.1.0/lib/clang/19/include/cpuid.h:271:12: note: expanded from macro '__cpuid'
  271 |           "  cpuid\n" \
 |            ^
<inline asm>:2:11: note: instantiated into assembly here
 2 |           xchgq  %rbx,rdi
      |                  ^
In file included from <source>:1:
/opt/compiler-explorer/clang-19.1.0/lib/clang/19/include/cpuid.h:309:5: error: unknown token in expression
  309 |     __cpuid(__leaf, __eax, __ebx, __ecx, __edx);
      | ^
/opt/compiler-explorer/clang-19.1.0/lib/clang/19/include/cpuid.h:270:11: note: expanded from macro '__cpuid'
  270 |     __asm("  xchgq %%rbx,%q1\n" \
      |           ^
<inline asm>:4:10: note: instantiated into assembly here
    4 |   xchgq  %rbx,rdi
      | ^
```

https://godbolt.org/z/qMoPs5cPW
</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJzsVk2P4jgQ_TXmUmrklAkhhxwyzKBdaVcaaVfaIzJOQbzt2Gnb6ab316_sANPN7Ncc5rYRAjt2qt579eJChqBPlqhh5QdWflzIKfbON61R0rvFwXWvDVvz-aMYbxkKbZWZOgImtmqcdLfsmfiUlng72RytgxPFfV7cD_LMcHNboHNkuIXrnGELQZ8Y1ilA9SGHqT3FyVvY7-_DXJ6-PCHy9upj-r5iZLx9GGQYmPiobSQz4_p0HklF6pho4ZfeTaaDF-cfUyyjHwlOSjHxAWJP4MnQs7QRZBggTOPofAxwcLEHGRmuI0jbQY4N4dVGeYY-xjEw0TLcMdyddOynw1K5IU2Uehi0987PE4a7g3EHhrtBhkhf7ipnj4nVTovNOs0vyqL4CTd8ZtGqOEmTOPzaEygj7QmeyQftLLgjxF5G6El25EGHK9oLRmfN6z8BNeb5-vMwevc7qfgWq7YJU8qYNul084ecKdxhrYokapJoLmK4K86PFo7aEFxM1MHRuyFZKbjJK0pOEm2RMCav7dwYszjDqA35BzqPxvksWwbzUNTLYslvmK4IizopOad4A1C0gtdMtGXSkHJVRAuTfbTuxUJ0j2RBW6Dz6CkkWRlvAQSvgVVbSNd-tiPDzX5vSB4T2f2ekjnz4HAdqOugO9-smiPkUKz89H34Jf1FW2DiZV2kTPQ8SnuTepDKO2BY3ahUGRpWxY3lBSgiwLyn3No0Y-U27X2_7UpGbLU12hLkty-VMaEoirdQtA1R2qhlpPwOOZAh0HBI3iRPKTjehT-r_vSUwJQ-i-s7_U7Kr64Zzv8--84-418V97_6jL9hmbyCm-y0udAMy1upGZZPxZ33_qLuf-u_VYLIv9F_ALC6JPg3610SvzndGG_vzljXHZyJS-eTnH8w3D397D6HUn3-bdE1oqtFLRfUFJWoy6rgNV_0zYZWol5jpfC4kUckUcluLdYFrqjYKL5Z6AY5lhyLFWJRCL5EuVrVhVqvu6PivKrZitMgtVmm4zzlXugQJmoKrLAqFkYeyITc8REtvUBeZYjpD4Bvcg84TKfAVtzoEMOXMFFHQ83FBtA5CpZhFecm-q7vLiZvmm_uNxlIaikXpM8N_hkAAP__QaeUzQ">