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

    <tr>
        <th>Summary</th>
        <td>
            Not all Skylake CPUs support AVX
        </td>
    </tr>

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

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

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

<pre>
    @blastwave reported `clang -march=native` (on clang 14.0.5 as shipped with FreeBSD) generating binaries that wouldn't work on the host they were compiled on.  The CPU reports itself as (in FreeBSD's dmesg output):

```
CPU: Intel(R) Pentium(R) CPU G4500 @ 3.50GHz (3500.00-MHz K8-class CPU)
  Origin="GenuineIntel"  Id=0x506e3 Family=0x6  Model=0x5e  Stepping=3
 Features=0xbfebfbff<FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CLFLUSH,DTS,ACPI,MMX,FXSR,SSE,SSE2,SS,HTT,TM,PBE>
 Features2=0x4ffaebbf<SSE3,PCLMULQDQ,DTES64,MON,DS_CPL,VMX,EST,TM2,SSSE3,SDBG,CX16,xTPR,PDCM,PCID,SSE4.1,SSE4.2,x2APIC,MOVBE,POPCNT,TSCDLT,AESNI,XSAVE,OSXSAVE,RDRAND>
 AMD Features=0x2c100800<SYSCALL,NX,Page1GB,RDTSCP,LM>
  AMD Features2=0x121<LAHF,ABM,Prefetch>
  Structured Extended Features=0x2942607<FSGSBASE,TSCADJ,SGX,ERMS,INVPCID,NFPUSG,RDSEED,SMAP,CLFLUSHOPT,PROCTRACE>
 Structured Extended Features3=0xc000000<IBPB,STIBP>
  XSAVE Features=0xf<XSAVEOPT,XSAVEC,XINUSE,XSAVES>
  VT-x: PAT,HLT,MTF,PAUSE,EPT,UG,VPID
  TSC: P-state invariant, performance statistics
```

This is a Skylake CPU without AVX support.  Clang [detects](https://github.com/llvm/llvm-project/blob/284c6990c133ed88f32de111accacc9f55a7a51d/llvm/lib/TargetParser/Host.cpp#L767) it as type `skylake` and thus enables AVX, but that is not supported.

The following code, when compiled with `-march=native` triggers the bug:

```
#include <stdio.h>

int main()
{
 printf("%f\n", 1.0);
}
```

Please fix the `-march=native` logic to take this possibility into account.

## Additional details

```
esther$ uname -apKU 
FreeBSD esther 13.2-RELEASE-p4 FreeBSD 13.2-RELEASE-p4 GENERIC amd64 amd64 1302001 1302001
esther$ freebsd-version -kru 
13.2-RELEASE-p4
13.2-RELEASE-p4
13.2-RELEASE-p4
esther$ sysctl hw.model 
hw.model: Intel(R) Pentium(R) CPU G4500 @ 3.50GHz
esther$ cat foo.c 
#include <stdio.h>
int main() {
 printf("%f\n", 1.0);
 return 0;
 }
esther$ cc -std=iso9899:1999 -m64 -O3 -ffast-math -ffp-contract=on -march=native -mtune=native -mfma -S -o foo.s foo.c
esther$ cat foo.s 
        .text
        .file   "foo.c"
 .section        .rodata.cst8,"aM",@progbits,8
        .p2align 3                               # -- Begin function main
.LCPI0_0:
 .quad   0x3ff0000000000000              # double 1
 .text
        .globl  main
        .p2align        4, 0x90
 .type   main,@function
main:                                   # @main
 .cfi_startproc
# %bb.0:
        pushq   %rbp
 .cfi_def_cfa_offset 16
        .cfi_offset %rbp, -16
        movq %rsp, %rbp
        .cfi_def_cfa_register %rbp
        vmovsd .LCPI0_0(%rip), %xmm0           # xmm0 = mem[0],zero
        movl $.L.str, %edi
        movb    $1, %al
        callq   printf
 xorl    %eax, %eax
        popq    %rbp
        .cfi_def_cfa %rsp, 8
        retq
.Lfunc_end0:
        .size   main, .Lfunc_end0-main
        .cfi_endproc
 # -- End function
        .type   .L.str,@object                  # @.str
        .section .rodata.str1.1,"aMS",@progbits,1
.L.str:
        .asciz "%f\n"
        .size   .L.str, 4

        .ident  "FreeBSD clang version 14.0.5 (https://github.com/llvm/llvm-project.git llvmorg-14.0.5-0-gc12386ae247c)"
        .section ".note.GNU-stack","",@progbits
        .addrsig
esther$ cc -o foo foo.s
esther$ ./foo
Illegal instruction (core dumped)
```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJycWF9zozgS_zTKSxeUEOA_D3mwsZ341k68wUnNPU0JaLBuMGKQSJz59FcSkDhOdu52qZQspP7761a3CFdKFBXiNQnnJFxc8VYfZHOdlrxVmP7A5iqR2es1CWhScqVf-DNCg7VsNGZARjQteVWAc-RNeiD-ouJaPCMZUSBsIivotr3ApW4IXIE6iLrGDF6EPsCqQZzHC8KmUGCFDdeiKiARFW8EKtAHruFFtmVWETY20-YHyAr0AeEglTaTV3jBBiGVx1qUmIGsXID9ASHaPfZ2KhBaYZkb9YRNRPWud6wgO6IqQLa6bjVhU-LPCF0QOowj2v_Z12j3SPwZrCuNJWGTB2P5Dist2uPwavTeBCGlQAIKvhvSm9tfRq8fUupS6mxvf8EfEyctuVKG2ii1wgHuG1GIivgLwtgNVq2osFfFANYZ8Rf0FNIR-rDiR1G-2oURwFZmWHa7CBBrrGtRFcRf-L3kFXLdNqgsTZJjkid5TvxoZdRHT9slYdHCDLvYjPs4Iizaxg9mZWZWtpEZo28TwqLZbm224-XObOwfLNVNRzUzVNv7J8u47wT6I7O4WW0e41ujZx8bIdFubTi23wiLVt-sqtgqj-Mlsz-ERbd7I2O_NYLmS-IvL_xh1qEgzzkmiXEojpe-IY4228fNn4s_rb5lPAqMrvs78xp_j3Yb67VRvYw7DZ3KjjtezG-st56x_LTfWQ8XkTUjWi86IwPXGyaG-cR6XLb3T3ML5f0uutt3aC42ZjJbxnfG6W_x7MlQ3MfD7GHxMLtbvPs32y4-xoylHqUTSo2L_46j2cZ4cGcc2PECvZu5FbKPIxOTzfZd0gdRHVwe84gfbWa3K2PT3HrVYI7aHOA3vlg3bWq4MlieNFYZZhcmTQM2omOTRfFNPJ8NmTNb_MvgcmPRfdiaMK7vnnrc7la7x_jGGhsvlxbJ7Wz3nh_3O5s0D_fR_mEWnUX8d-b41p6U2of40Xq-M3jE-_V8d-aRBfujDyZl7HKn105NDL-t7x6tP3YlPhPytHdOpgR02X1r47rdr2y-dyxLK-rROPm0Wy8GRnOmDJ-jNNcIonrmjeCVJiyCGptcNkdepQhmWygtUvVlBerG_UEoEAo4xD9eS_6jK3empspWw-zpG6i2NrXPBYhsBSbhPEONqVYkXBA2OWhdK1Ps2IqwVSH0oU3cVB4JW5Xl8_Dj1I38D6aasFVSyoSwFZsE6Wg6pann-5hNJrnPMvQ8j6cpT9NpHoZ8zEMvO5MjDN-eNwXqHW8UNoStbqXSblrXhPmb8WhsCqfQpkDr1xpNW1GdX6aR8CoDfWgVYMWTEpXxz6CWtLprEUJBJfXgMmbuR6gQclmW8sX0llRmaHhfDli9Nw3bjMiIftHFdCOKAhtlm07SFr_vD4T5okrLNkMgfqR0JqT7fqi6UVQajlxUhE3eSj8Zz_s8qRtR6dzuMcLCnIRRZacReC61DWo-8Cx-kyG7ErlCyMXJWv61c6UsRApagjYppE1S1VIpkYhS6FcQlZbA01S2lf6AKWE-YT7MskxoISteQoaai1L9BhpU-mBCH0Bb8SOCw-s_HqHb6_sxdDTg-S5zHpab5SxeOnUwtOtP6zfLu-XDOgJ-zEZBP3o-ZZR6w--l7rxBTFTmPGOjhKzA-dG0vREX0v_u4rsO9apSXcLhxT2avtyLH17_0f3hUkXKNeRSuin8P3n3MePgnyQbNKjbpgL6vvKWf2dmpeAobe4pQsnpZGpuU950OgXnOArAuffByXOutHPk-mDmtZPKSjc81cRfmHB8zFFwjrqt8Pw9P3JwYnCk9V91KPwVPAqG6ts9rsaTvljKRYkAQBjrRDHWE7gKU5Pdb5SNzLjmbqq0uQURxvi2A4sEtG5kkQitCIsmFwpqxktRVODD7x9zohwH5liICvK26pTbuFmB7ibarel3-laBwP3Z8gwA6MnPc3r-fJacyTYpEbyB9QskilImJZxp_ORC_5jLFNDTlL4JM0W757RwDOZ3BHbdn_0P_wdLSUDPTHDTXHxXmje6bmT6lu1AWJgk7hkY_VO36vDTSgqbpD4XkmH-Pc35d5nnCjV4owsnDU2_1zOzCJxLsqN8_mn3ld3_oOZc0qCtwUIojc2XlM9H-awyeIusOYhhI2pz8jrhp-ORXuBjl4i_gCMeSTintp9Hv7CRnywtgbDA3bhKN708zMQnqqSTHHg9DS8_kqS8LA2kfbXo9k6yKTu-EPlpkM5PF9GQ9U-4jMYXMJ0henF8GtQ_h_w3WfUdq-xz1F0lfp1lIJzROl_ks9GMVfaeUcPhW1YZfMzdN54-x9_QJAGVibkb_WUWW8ILM_uSMtQSpRvPfkbYahJ_VU68wXsr7pPjXKXCfF5-qN9fYvOeB8F5m34jExlW2hbCod923-5Dq-y_4f_23dEthAazIJvC6YQ41ClSj_mTEUcWjFOb75_M7rEijLmV1Oje3D2ay3P6o4fJjJd4XYCTZY0SxVdtyvaPrklcbruErXLZn6Z1WWLBSxCVsl8gnUWTVDYIWXusMXu_xA0Xnqvs2s-m_pRf4bVnLsuBT0f06nA9TdMJhl42ZqMszHI_zbIx9ak3HnMPR1l4Ja4ZZb7nUZ9RFngT16cYJmFI88z3As4pCSgeuShdA6grm-JKKNXi9dhjbHRV8gRLZf-Tw1iFL2A3DUrh4qq5tlFJ2kKRgJZCafUuRQtd4vWd1MDL8vyjQg3XanPrvmqb8vpvfzlYIxRhK2vkfwMAAP__0CEpLw">