HomeFreeBSD

Merge commit 87f3407856e6 from llvm-project (by Phoebe Wang):

Description

Merge commit 87f3407856e6 from llvm-project (by Phoebe Wang):

[X86][Driver] Do not add `-evex512` for `-march=native` when the target doesn't support AVX512 (#91694)

This prevents problems with ports that fail to build with
CPUTYPE=native, if the native CPU supports AVX512F, resulting in errors
like:

/wrkdirs/usr/ports/archivers/libdeflate/work/libdeflate-1.20/lib/x86/adler32_template.h:197:21: error: always_inline function '_mm512_set1_epi8' requires target feature 'evex512', but would be inlined into function 'adler32_x86_avx512_vl512_vnni' that is compiled without support for 'evex512'
  197 |         const vec_t ones = VSET1_8(1);
      |                            ^
/wrkdirs/usr/ports/archivers/libdeflate/work/libdeflate-1.20/lib/x86/adler32_template.h:116:23: note: expanded from macro 'VSET1_8'
  116 | #  define VSET1_8(a)            _mm512_set1_epi8(a)
      |                                 ^
/wrkdirs/usr/ports/archivers/libdeflate/work/libdeflate-1.20/lib/x86/adler32_template.h:197:21: error: AVX vector return of type '__m512i' (vector of 8 'long long' values) without 'evex512' enabled changes the ABI
/wrkdirs/usr/ports/archivers/libdeflate/work/libdeflate-1.20/lib/x86/adler32_template.h:116:23: note: expanded from macro 'VSET1_8'
  116 | #  define VSET1_8(a)            _mm512_set1_epi8(a)
      |                                 ^

Ports known to be affected are: archivers/libdeflate, devel/highway,
www/node20, and lang/rust.

(For rust itself there is also a similar issue reported at
https://github.com/rust-lang/rust/pull/121088).

PR: 276104
Reported by: netchild
MFC after: 3 days

Details

Provenance
dimAuthored on May 16 2024, 6:21 PM
Parents
rG3cb6c6c9eeb3: libcapsicum: document return values
Branches
Unknown
Tags
Unknown