[all-commits] [llvm/llvm-project] f229ba: [X86][AVX10] Permit AVX512 options/features used t...
Phoebe Wang via All-commits
all-commits at lists.llvm.org
Thu Nov 9 23:21:20 PST 2023
Branch: refs/heads/main
Home: https://github.com/llvm/llvm-project
Commit: f229ba4e8d6bb24622b2d41b3c89585cb9005d8d
https://github.com/llvm/llvm-project/commit/f229ba4e8d6bb24622b2d41b3c89585cb9005d8d
Author: Phoebe Wang <phoebe.wang at intel.com>
Date: 2023-11-10 (Fri, 10 Nov 2023)
Changed paths:
M clang/include/clang/Basic/DiagnosticCommonKinds.td
M clang/lib/Basic/Targets/X86.cpp
M clang/lib/Driver/ToolChains/Arch/X86.cpp
M clang/lib/Headers/avx2intrin.h
M clang/lib/Headers/avx512bf16intrin.h
M clang/lib/Headers/avx512bwintrin.h
M clang/lib/Headers/avx512dqintrin.h
M clang/lib/Headers/avx512fintrin.h
M clang/lib/Headers/avx512fp16intrin.h
M clang/lib/Headers/avx512ifmavlintrin.h
M clang/lib/Headers/avx512pfintrin.h
M clang/lib/Headers/avx512vbmivlintrin.h
M clang/lib/Headers/avx512vlbf16intrin.h
M clang/lib/Headers/avx512vlbitalgintrin.h
M clang/lib/Headers/avx512vlbwintrin.h
M clang/lib/Headers/avx512vlcdintrin.h
M clang/lib/Headers/avx512vldqintrin.h
M clang/lib/Headers/avx512vlfp16intrin.h
M clang/lib/Headers/avx512vlintrin.h
M clang/lib/Headers/avx512vlvbmi2intrin.h
M clang/lib/Headers/avx512vlvnniintrin.h
M clang/lib/Headers/avx512vlvp2intersectintrin.h
M clang/lib/Headers/avx512vpopcntdqvlintrin.h
M clang/lib/Headers/avxintrin.h
M clang/lib/Headers/emmintrin.h
M clang/lib/Headers/gfniintrin.h
M clang/lib/Headers/pmmintrin.h
M clang/lib/Headers/smmintrin.h
M clang/lib/Headers/tmmintrin.h
M clang/lib/Headers/xmmintrin.h
M clang/test/CodeGen/X86/avx512-error.c
M clang/test/CodeGen/target-avx-abi-diag.c
M clang/test/Driver/x86-target-features.c
Log Message:
-----------
[X86][AVX10] Permit AVX512 options/features used together with AVX10 (#71318)
This patch relaxes the driver logic to permit combinations between
AVX512 and AVX10 options and makes sure we have a unified behavior
between options and features combination.
Here are rules we are following when handle these combinations:
1. evex512 can only be used for avx512xxx options/features. It will be
ignored if used without them;
2. avx512xxx and avx10.xxx are options in two worlds. Avoid to use them
together in any case. It will enable a common super set when they are
used together. E.g., "-mavx512f -mavx10.1-256" euqals "-mavx10.1-512".
Compiler emits warnings when user using combinations like "-mavx512f
-mavx10.1-256" in case they won't get unexpected result silently.
Function target feature attribute follows the same rule now. We have to
add "no-evex512" feature for intrinsics shared between AVX512 and AVX10.
We also add "no-evex512" for early ISAs like AVX etc., because some of
them are called by AVX512 intrinsics.
More information about the All-commits
mailing list