llvmbot wrote:

<!--LLVM PR SUMMARY COMMENT-->
@llvm/pr-subscribers-llvm-transforms

@llvm/pr-subscribers-backend-x86

Author: Phoebe Wang (phoebewang)

<details>
<summary>Changes</summary>

The 256-bit maximum vector register size control was removed from AVX10 
whitepaper, ref: https://cdrdv2.intel.com/v1/dl/getContent/784343

We have warned these options in LLVM21 through #<!-- -->28154. This patch 
removes underlying implementations in LLVM22.

---

Patch is 455.29 KiB, truncated to 20.00 KiB below, full version: 
https://github.com/llvm/llvm-project/pull/157034.diff


156 Files Affected:

- (modified) clang/docs/ReleaseNotes.rst (+4) 
- (modified) clang/docs/UsersManual.rst (+6-51) 
- (modified) clang/include/clang/Basic/BuiltinsX86.td (+382-382) 
- (modified) clang/include/clang/Basic/BuiltinsX86_64.td (+15-15) 
- (modified) clang/include/clang/Driver/Options.td (+4-14) 
- (modified) clang/lib/Basic/Targets/X86.cpp (+14-83) 
- (modified) clang/lib/Basic/Targets/X86.h (-3) 
- (modified) clang/lib/CodeGen/Targets/X86.cpp (+2-20) 
- (modified) clang/lib/Driver/ToolChains/Arch/X86.cpp (-41) 
- (modified) clang/lib/Headers/amxavx512intrin.h (+1-1) 
- (modified) clang/lib/Headers/avx10_2_512bf16intrin.h (+1-1) 
- (modified) clang/lib/Headers/avx10_2_512convertintrin.h (+1-1) 
- (modified) clang/lib/Headers/avx10_2_512niintrin.h (+1-1) 
- (modified) clang/lib/Headers/avx10_2_512satcvtdsintrin.h (+1-1) 
- (modified) clang/lib/Headers/avx10_2bf16intrin.h (+2-2) 
- (modified) clang/lib/Headers/avx10_2convertintrin.h (+2-2) 
- (modified) clang/lib/Headers/avx10_2copyintrin.h (+1-1) 
- (modified) clang/lib/Headers/avx10_2niintrin.h (+2-2) 
- (modified) clang/lib/Headers/avx10_2satcvtdsintrin.h (+2-2) 
- (modified) clang/lib/Headers/avx2intrin.h (-9) 
- (modified) clang/lib/Headers/avx512bf16intrin.h (+3-4) 
- (modified) clang/lib/Headers/avx512bitalgintrin.h (+1-2) 
- (modified) clang/lib/Headers/avx512bwintrin.h (+3-4) 
- (modified) clang/lib/Headers/avx512cdintrin.h (+2-2) 
- (modified) clang/lib/Headers/avx512dqintrin.h (+4-3) 
- (modified) clang/lib/Headers/avx512fintrin.h (+6-5) 
- (modified) clang/lib/Headers/avx512fp16intrin.h (+4-6) 
- (modified) clang/lib/Headers/avx512ifmaintrin.h (+2-2) 
- (modified) clang/lib/Headers/avx512ifmavlintrin.h (+2-2) 
- (modified) clang/lib/Headers/avx512vbmi2intrin.h (+3-2) 
- (modified) clang/lib/Headers/avx512vbmiintrin.h (+2-2) 
- (modified) clang/lib/Headers/avx512vbmivlintrin.h (+2-2) 
- (modified) clang/lib/Headers/avx512vlbf16intrin.h (+2-2) 
- (modified) clang/lib/Headers/avx512vlbitalgintrin.h (+2-2) 
- (modified) clang/lib/Headers/avx512vlbwintrin.h (+2-4) 
- (modified) clang/lib/Headers/avx512vlcdintrin.h (+2-4) 
- (modified) clang/lib/Headers/avx512vldqintrin.h (+2-4) 
- (modified) clang/lib/Headers/avx512vlfp16intrin.h (+2-2) 
- (modified) clang/lib/Headers/avx512vlintrin.h (+2-4) 
- (modified) clang/lib/Headers/avx512vlvbmi2intrin.h (+2-2) 
- (modified) clang/lib/Headers/avx512vlvnniintrin.h (+2-2) 
- (modified) clang/lib/Headers/avx512vlvp2intersectintrin.h (+2-2) 
- (modified) clang/lib/Headers/avx512vnniintrin.h (+2-2) 
- (modified) clang/lib/Headers/avx512vp2intersectintrin.h (+1-2) 
- (modified) clang/lib/Headers/avx512vpopcntdqintrin.h (+2-3) 
- (modified) clang/lib/Headers/avx512vpopcntdqvlintrin.h (+4-4) 
- (modified) clang/lib/Headers/avxintrin.h (-9) 
- (modified) clang/lib/Headers/emmintrin.h (-6) 
- (modified) clang/lib/Headers/fmaintrin.h (+2-2) 
- (modified) clang/lib/Headers/gfniintrin.h (+2-27) 
- (modified) clang/lib/Headers/mmintrin.h (+3-9) 
- (modified) clang/lib/Headers/movrs_avx10_2_512intrin.h (+2-2) 
- (modified) clang/lib/Headers/movrs_avx10_2intrin.h (+4-4) 
- (modified) clang/lib/Headers/pmmintrin.h (-6) 
- (modified) clang/lib/Headers/sm4evexintrin.h (+2-2) 
- (modified) clang/lib/Headers/smmintrin.h (-6) 
- (modified) clang/lib/Headers/tmmintrin.h (-6) 
- (modified) clang/lib/Headers/vaesintrin.h (+1-2) 
- (modified) clang/lib/Headers/xmmintrin.h (-9) 
- (modified) clang/test/CodeGen/X86/amx_avx512_api.c (+1-1) 
- (modified) clang/test/CodeGen/X86/amxavx512-builtins.c (+1-1) 
- (modified) clang/test/CodeGen/X86/avx10_2_512bf16-builtins.c (+2-2) 
- (modified) clang/test/CodeGen/X86/avx10_2_512convert-builtins.c (+2-2) 
- (modified) clang/test/CodeGen/X86/avx10_2_512minmax-builtins.c (+2-2) 
- (modified) clang/test/CodeGen/X86/avx10_2_512minmax-error.c (+2-2) 
- (modified) clang/test/CodeGen/X86/avx10_2_512ni-builtins.c (+2-2) 
- (modified) clang/test/CodeGen/X86/avx10_2_512satcvt-builtins.c (+2-2) 
- (modified) clang/test/CodeGen/X86/avx10_2_512satcvtds-builtins-errors.c 
(+2-2) 
- (modified) clang/test/CodeGen/X86/avx10_2_512satcvtds-builtins-x64-error.c 
(+1-1) 
- (modified) clang/test/CodeGen/X86/avx10_2_512satcvtds-builtins-x64.c (+1-1) 
- (modified) clang/test/CodeGen/X86/avx10_2_512satcvtds-builtins.c (+2-2) 
- (modified) clang/test/CodeGen/X86/avx10_2bf16-builtins.c (+2-2) 
- (modified) clang/test/CodeGen/X86/avx10_2convert-builtins.c (+2-2) 
- (modified) clang/test/CodeGen/X86/avx10_2minmax-builtins.c (+2-2) 
- (modified) clang/test/CodeGen/X86/avx10_2ni-builtins.c (+2-2) 
- (modified) clang/test/CodeGen/X86/avx10_2satcvt-builtins.c (+2-2) 
- (modified) clang/test/CodeGen/X86/avx10_2satcvtds-builtins-x64.c (+1-1) 
- (modified) clang/test/CodeGen/X86/avx10_2satcvtds-builtins.c (+2-2) 
- (modified) clang/test/CodeGen/X86/avx512-error.c (+4-14) 
- (modified) clang/test/CodeGen/X86/avx512copy-builtins.c (+1-1) 
- (modified) clang/test/CodeGen/X86/avx512vlbw-builtins.c (+4-4) 
- (modified) clang/test/CodeGen/X86/avxvnniint16-builtins.c (+4-4) 
- (modified) clang/test/CodeGen/X86/avxvnniint8-builtins.c (+4-4) 
- (modified) clang/test/CodeGen/X86/movrs-avx10.2-512-builtins-error-32.c 
(+1-1) 
- (modified) clang/test/CodeGen/X86/movrs-avx10.2-512-builtins.c (+1-1) 
- (modified) clang/test/CodeGen/X86/movrs-avx10.2-builtins-error-32.c (+1-1) 
- (modified) clang/test/CodeGen/X86/movrs-avx10.2-builtins.c (+1-1) 
- (modified) clang/test/CodeGen/X86/sm4-evex-builtins.c (+2-2) 
- (modified) clang/test/CodeGen/attr-cpuspecific.c (+1-1) 
- (modified) clang/test/CodeGen/attr-target-x86.c (+7-12) 
- (modified) clang/test/CodeGen/regcall2.c (+2-2) 
- (modified) clang/test/CodeGen/target-avx-abi-diag.c (+1-53) 
- (modified) clang/test/CodeGen/target-builtin-noerror.c (+2-4) 
- (modified) clang/test/Driver/x86-target-features.c (+8-34) 
- (modified) clang/test/Preprocessor/predefined-arch-macros-x86.c (-1) 
- (modified) clang/test/Preprocessor/predefined-arch-macros.c (-48) 
- (modified) clang/test/Preprocessor/x86_target_features.c (+14-59) 
- (modified) llvm/include/llvm/TargetParser/X86TargetParser.def (+2-2) 
- (modified) llvm/lib/IR/Verifier.cpp (-10) 
- (modified) llvm/lib/Target/X86/MCTargetDesc/X86MCCodeEmitter.cpp (-3) 
- (modified) llvm/lib/Target/X86/MCTargetDesc/X86MCTargetDesc.cpp (-12) 
- (modified) llvm/lib/Target/X86/X86.td (+12-14) 
- (modified) llvm/lib/Target/X86/X86ISelLowering.cpp (+14-20) 
- (modified) llvm/lib/Target/X86/X86ISelLoweringCall.cpp (+2-2) 
- (modified) llvm/lib/Target/X86/X86InstrAMX.td (+7-7) 
- (modified) llvm/lib/Target/X86/X86InstrAVX10.td (+52-79) 
- (modified) llvm/lib/Target/X86/X86InstrAVX512.td (+21-21) 
- (modified) llvm/lib/Target/X86/X86InstrPredicates.td (-3) 
- (modified) llvm/lib/Target/X86/X86Subtarget.cpp (-18) 
- (modified) llvm/lib/Target/X86/X86Subtarget.h (+2-4) 
- (modified) llvm/lib/Target/X86/X86TargetTransformInfo.cpp (+2-2) 
- (modified) llvm/lib/TargetParser/Host.cpp (+2-8) 
- (modified) llvm/lib/TargetParser/X86TargetParser.cpp (+18-22) 
- (modified) llvm/test/CodeGen/X86/amx-across-func-tilemovrow.ll (+3-3) 
- (modified) llvm/test/CodeGen/X86/amx-avx512-intrinsics.ll (+1-1) 
- (modified) llvm/test/CodeGen/X86/amx-tile-avx512-internals.ll (+1-1) 
- (modified) llvm/test/CodeGen/X86/avx10.2-fma-commute.ll (+1-1) 
- (modified) llvm/test/CodeGen/X86/avx10_2-cmp.ll (+2-2) 
- (modified) llvm/test/CodeGen/X86/avx10_2_512bf16-arith.ll (+2-2) 
- (modified) llvm/test/CodeGen/X86/avx10_2_512bf16-intrinsics.ll (+2-2) 
- (modified) llvm/test/CodeGen/X86/avx10_2_512convert-intrinsics.ll (+2-2) 
- (modified) llvm/test/CodeGen/X86/avx10_2_512fptosi_satcvtds.ll (+2-2) 
- (modified) llvm/test/CodeGen/X86/avx10_2_512minmax-intrinsics.ll (+2-2) 
- (modified) llvm/test/CodeGen/X86/avx10_2_512ni-intrinsics.ll (+2-2) 
- (modified) llvm/test/CodeGen/X86/avx10_2_512satcvt-intrinsics.ll (+2-2) 
- (modified) llvm/test/CodeGen/X86/avx10_2_512satcvtds-intrinsics.ll (+2-2) 
- (modified) llvm/test/CodeGen/X86/avx10_2bf16-arith.ll (+6-19) 
- (modified) llvm/test/CodeGen/X86/avx10_2bf16-intrinsics.ll (+2-2) 
- (modified) llvm/test/CodeGen/X86/avx10_2convert-intrinsics.ll (+2-2) 
- (modified) llvm/test/CodeGen/X86/avx10_2fptosi_satcvtds.ll (+2-2) 
- (modified) llvm/test/CodeGen/X86/avx10_2minmax-intrinsics.ll (+2-2) 
- (modified) llvm/test/CodeGen/X86/avx10_2ni-intrinsics.ll (+2-2) 
- (modified) llvm/test/CodeGen/X86/avx10_2satcvt-intrinsics.ll (+2-2) 
- (modified) llvm/test/CodeGen/X86/avx10_2satcvtds-intrinsics.ll (+2-2) 
- (modified) llvm/test/CodeGen/X86/avx10_2satcvtds-x64-intrinsics.ll (+1-1) 
- (modified) llvm/test/CodeGen/X86/avx512bwvl-arith.ll (+14-28) 
- (modified) llvm/test/CodeGen/X86/avx512copy-intrinsics.ll (+1-1) 
- (modified) llvm/test/CodeGen/X86/avxvnniint16-intrinsics.ll (+2-2) 
- (modified) llvm/test/CodeGen/X86/avxvnniint8-intrinsics.ll (+2-2) 
- (modified) llvm/test/CodeGen/X86/comi-flags.ll (+1-1) 
- (removed) llvm/test/CodeGen/X86/evex512-mem.ll (-29) 
- (modified) llvm/test/CodeGen/X86/fminimum-fmaximum.ll (+1-1) 
- (modified) llvm/test/CodeGen/X86/fminimumnum-fmaximumnum.ll (+1-1) 
- (modified) llvm/test/CodeGen/X86/movrs-avx10.2-512-intrinsics.ll (+1-1) 
- (modified) llvm/test/CodeGen/X86/movrs-avx10.2-intrinsics.ll (+1-1) 
- (removed) llvm/test/CodeGen/X86/pr90844.ll (-36) 
- (modified) llvm/test/CodeGen/X86/sm4-evex-intrinsics.ll (+2-2) 
- (modified) llvm/test/CodeGen/X86/vector-fshl-128.ll (+1-2) 
- (modified) llvm/test/CodeGen/X86/vector-fshl-256.ll (+89-140) 
- (modified) llvm/test/CodeGen/X86/vector-fshr-128.ll (+1-2) 
- (modified) llvm/test/CodeGen/X86/vector-fshr-256.ll (+68-104) 
- (modified) 
llvm/test/Instrumentation/MemorySanitizer/X86/avx10_2_512ni-intrinsics.ll 
(+1-1) 
- (modified) 
llvm/test/Instrumentation/MemorySanitizer/X86/avx10_2ni-intrinsics.ll (+1-1) 
- (modified) 
llvm/test/Transforms/LoopVectorize/X86/cost-conditional-branches.ll (+175-17) 
- (modified) 
llvm/test/Transforms/SLPVectorizer/X86/revec-getExtractWithExtendCost.ll (+1-1) 
- (modified) llvm/test/Transforms/SLPVectorizer/X86/revec-load-compress.ll 
(+1-1) 


``````````diff
diff --git a/clang/docs/ReleaseNotes.rst b/clang/docs/ReleaseNotes.rst
index dd53b4d46f3cc..7b2a0bdfefa2b 100644
--- a/clang/docs/ReleaseNotes.rst
+++ b/clang/docs/ReleaseNotes.rst
@@ -373,6 +373,10 @@ X86 Support
 - NOTE: Please avoid use of the __builtin_ia32_* intrinsics - these are not
   guaranteed to exist in future releases, or match behaviour with previous
   releases of clang or other compilers.
+- Remove `m[no-]avx10.x-[256,512]` and `m[no-]evex512` options from Clang
+  driver.
+- Remove `[no-]evex512` feature request from intrinsics and builtins.
+- Change features `avx10.x-[256,512]` to `avx10.x`.
 
 Arm and AArch64 Support
 ^^^^^^^^^^^^^^^^^^^^^^^
diff --git a/clang/docs/UsersManual.rst b/clang/docs/UsersManual.rst
index 0e85c8109fd5e..a8bbf146431ea 100644
--- a/clang/docs/UsersManual.rst
+++ b/clang/docs/UsersManual.rst
@@ -4581,59 +4581,14 @@ implicitly included in later levels.
 - ``-march=x86-64-v3``: (close to Haswell) AVX, AVX2, BMI1, BMI2, F16C, FMA, 
LZCNT, MOVBE, XSAVE
 - ``-march=x86-64-v4``: AVX512F, AVX512BW, AVX512CD, AVX512DQ, AVX512VL
 
-`Intel AVX10 ISA <https://cdrdv2.intel.com/v1/dl/getContent/784267>`_ is
+`Intel AVX10 ISA <https://cdrdv2.intel.com/v1/dl/getContent/784343>`_ is
 a major new vector ISA incorporating the modern vectorization aspects of
 Intel AVX-512. This ISA will be supported on all future Intel processors.
-Users are supposed to use the new options ``-mavx10.N`` and ``-mavx10.N-512``
-on these processors and should not use traditional AVX512 options anymore.
-
-The ``N`` in ``-mavx10.N`` represents a continuous integer number starting
-from ``1``. ``-mavx10.N`` is an alias of ``-mavx10.N-256``, which means to
-enable all instructions within AVX10 version N at a maximum vector length of
-256 bits. ``-mavx10.N-512`` enables all instructions at a maximum vector
-length of 512 bits, which is a superset of instructions ``-mavx10.N`` enabled.
-
-Current binaries built with AVX512 features can run on Intel AVX10/512 capable
-processors without re-compile, but cannot run on AVX10/256 capable processors.
-Users need to re-compile their code with ``-mavx10.N``, and maybe update some
-code that calling to 512-bit X86 specific intrinsics and passing or returning
-512-bit vector types in function call, if they want to run on AVX10/256 capable
-processors. Binaries built with ``-mavx10.N`` can run on both AVX10/256 and
-AVX10/512 capable processors.
-
-Users can add a ``-mno-evex512`` in the command line with AVX512 options if
-they want to run the binary on both legacy AVX512 and new AVX10/256 capable
-processors. The option has the same constraints as ``-mavx10.N``, i.e.,
-cannot call to 512-bit X86 specific intrinsics and pass or return 512-bit 
vector
-types in function call.
-
-Users should avoid using AVX512 features in function target attributes when
-developing code for AVX10. If they have to do so, they need to add an explicit
-``evex512`` or ``no-evex512`` together with AVX512 features for 512-bit or
-non-512-bit functions respectively to avoid unexpected code generation. Both
-command line option and target attribute of EVEX512 feature can only be used
-with AVX512. They don't affect vector size of AVX10.
-
-User should not mix the use AVX10 and AVX512 options together at any time,
-because the option combinations are conflicting sometimes. For example, a
-combination of ``-mavx512f -mavx10.1-256`` doesn't show a clear intention to
-compiler, since instructions in AVX512F and AVX10.1/256 intersect but do not
-overlap. In this case, compiler will emit warning for it, but the behavior
-is determined. It will generate the same code as option ``-mavx10.1-512``.
-A similar case is ``-mavx512f -mavx10.2-256``, which equals to
-``-mavx10.1-512 -mavx10.2-256``, because ``avx10.2-256`` implies 
``avx10.1-256``
-and ``-mavx512f -mavx10.1-256`` equals to ``-mavx10.1-512``.
-
-There are some new macros introduced with AVX10 support. ``-mavx10.1-256`` will
-enable ``__AVX10_1__`` and ``__EVEX256__``, while ``-mavx10.1-512`` enables
-``__AVX10_1__``, ``__EVEX256__``, ``__EVEX512__``  and ``__AVX10_1_512__``.
-Besides, both ``-mavx10.1-256`` and ``-mavx10.1-512`` will enable all AVX512
-feature specific macros. A AVX512 feature will enable both ``__EVEX256__``,
-``__EVEX512__`` and its own macro. So ``__EVEX512__`` can be used to guard code
-that can run on both legacy AVX512 and AVX10/512 capable processors but cannot
-run on AVX10/256, while a AVX512 macro like ``__AVX512F__`` cannot tell the
-difference among the three options. Users need to check additional macros
-``__AVX10_1__`` and ``__EVEX512__`` if they want to make distinction.
+Users are supposed to use the new options ``-mavx10.N`` on these processors
+and should not use traditional AVX512 options anymore. The ``N`` in
+``-mavx10.N`` represents a continuous integer number starting
+from ``1``. Current binaries built with AVX512 features can run on Intel AVX10
+capable processors without re-compile.
 
 ARM
 ^^^
diff --git a/clang/include/clang/Basic/BuiltinsX86.td 
b/clang/include/clang/Basic/BuiltinsX86.td
index acd8f70c4a5f2..cdd5d54a68d79 100644
--- a/clang/include/clang/Basic/BuiltinsX86.td
+++ b/clang/include/clang/Basic/BuiltinsX86.td
@@ -387,7 +387,7 @@ let Features = "vaes", Attributes = [NoThrow, Const, 
RequiredVectorWidth<256>] i
   def aesenc256 : X86Builtin<"_Vector<4, long long int>(_Vector<4, long long 
int>, _Vector<4, long long int>)">;
 }
 
-let Features = "avx512f,evex512,vaes", Attributes = [NoThrow, Const, 
RequiredVectorWidth<512>] in {
+let Features = "avx512f,vaes", Attributes = [NoThrow, Const, 
RequiredVectorWidth<512>] in {
   def aesenc512 : X86Builtin<"_Vector<8, long long int>(_Vector<8, long long 
int>, _Vector<8, long long int>)">;
 }
 
@@ -395,7 +395,7 @@ let Features = "vaes", Attributes = [NoThrow, Const, 
RequiredVectorWidth<256>] i
   def aesenclast256 : X86Builtin<"_Vector<4, long long int>(_Vector<4, long 
long int>, _Vector<4, long long int>)">;
 }
 
-let Features = "avx512f,evex512,vaes", Attributes = [NoThrow, Const, 
RequiredVectorWidth<512>] in {
+let Features = "avx512f,vaes", Attributes = [NoThrow, Const, 
RequiredVectorWidth<512>] in {
   def aesenclast512 : X86Builtin<"_Vector<8, long long int>(_Vector<8, long 
long int>, _Vector<8, long long int>)">;
 }
 
@@ -403,7 +403,7 @@ let Features = "vaes", Attributes = [NoThrow, Const, 
RequiredVectorWidth<256>] i
   def aesdec256 : X86Builtin<"_Vector<4, long long int>(_Vector<4, long long 
int>, _Vector<4, long long int>)">;
 }
 
-let Features = "avx512f,evex512,vaes", Attributes = [NoThrow, Const, 
RequiredVectorWidth<512>] in {
+let Features = "avx512f,vaes", Attributes = [NoThrow, Const, 
RequiredVectorWidth<512>] in {
   def aesdec512 : X86Builtin<"_Vector<8, long long int>(_Vector<8, long long 
int>, _Vector<8, long long int>)">;
 }
 
@@ -411,7 +411,7 @@ let Features = "vaes", Attributes = [NoThrow, Const, 
RequiredVectorWidth<256>] i
   def aesdeclast256 : X86Builtin<"_Vector<4, long long int>(_Vector<4, long 
long int>, _Vector<4, long long int>)">;
 }
 
-let Features = "avx512f,evex512,vaes", Attributes = [NoThrow, Const, 
RequiredVectorWidth<512>] in {
+let Features = "avx512f,vaes", Attributes = [NoThrow, Const, 
RequiredVectorWidth<512>] in {
   def aesdeclast512 : X86Builtin<"_Vector<8, long long int>(_Vector<8, long 
long int>, _Vector<8, long long int>)">;
 }
 
@@ -423,7 +423,7 @@ let Features = "avx,gfni", Attributes = [NoThrow, Const, 
RequiredVectorWidth<256
   def vgf2p8affineinvqb_v32qi : X86Builtin<"_Vector<32, char>(_Vector<32, 
char>, _Vector<32, char>, _Constant char)">;
 }
 
-let Features = "avx512f,evex512,gfni", Attributes = [NoThrow, Const, 
RequiredVectorWidth<512>] in {
+let Features = "avx512f,gfni", Attributes = [NoThrow, Const, 
RequiredVectorWidth<512>] in {
   def vgf2p8affineinvqb_v64qi : X86Builtin<"_Vector<64, char>(_Vector<64, 
char>, _Vector<64, char>, _Constant char)">;
 }
 
@@ -435,7 +435,7 @@ let Features = "avx,gfni", Attributes = [NoThrow, Const, 
RequiredVectorWidth<256
   def vgf2p8affineqb_v32qi : X86Builtin<"_Vector<32, char>(_Vector<32, char>, 
_Vector<32, char>, _Constant char)">;
 }
 
-let Features = "avx512f,evex512,gfni", Attributes = [NoThrow, Const, 
RequiredVectorWidth<512>] in {
+let Features = "avx512f,gfni", Attributes = [NoThrow, Const, 
RequiredVectorWidth<512>] in {
   def vgf2p8affineqb_v64qi : X86Builtin<"_Vector<64, char>(_Vector<64, char>, 
_Vector<64, char>, _Constant char)">;
 }
 
@@ -447,7 +447,7 @@ let Features = "avx,gfni", Attributes = [NoThrow, Const, 
RequiredVectorWidth<256
   def vgf2p8mulb_v32qi : X86Builtin<"_Vector<32, char>(_Vector<32, char>, 
_Vector<32, char>)">;
 }
 
-let Features = "avx512f,evex512,gfni", Attributes = [NoThrow, Const, 
RequiredVectorWidth<512>] in {
+let Features = "avx512f,gfni", Attributes = [NoThrow, Const, 
RequiredVectorWidth<512>] in {
   def vgf2p8mulb_v64qi : X86Builtin<"_Vector<64, char>(_Vector<64, char>, 
_Vector<64, char>)">;
 }
 
@@ -459,7 +459,7 @@ let Features = "vpclmulqdq", Attributes = [NoThrow, Const, 
RequiredVectorWidth<2
   def pclmulqdq256 : X86Builtin<"_Vector<4, long long int>(_Vector<4, long 
long int>, _Vector<4, long long int>, _Constant char)">;
 }
 
-let Features = "avx512f,evex512,vpclmulqdq", Attributes = [NoThrow, Const, 
RequiredVectorWidth<512>] in {
+let Features = "avx512f,vpclmulqdq", Attributes = [NoThrow, Const, 
RequiredVectorWidth<512>] in {
   def pclmulqdq512 : X86Builtin<"_Vector<8, long long int>(_Vector<8, long 
long int>, _Vector<8, long long int>, _Constant char)">;
 }
 
@@ -830,7 +830,7 @@ let Features = "fma|fma4", Attributes = [NoThrow, Const, 
RequiredVectorWidth<256
   def vfmaddsubpd256 : X86Builtin<"_Vector<4, double>(_Vector<4, double>, 
_Vector<4, double>, _Vector<4, double>)">;
 }
 
-let Features = "avx512f,evex512", Attributes = [NoThrow, Const, 
RequiredVectorWidth<512>] in {
+let Features = "avx512f", Attributes = [NoThrow, Const, 
RequiredVectorWidth<512>] in {
   def vfmaddpd512_mask : X86Builtin<"_Vector<8, double>(_Vector<8, double>, 
_Vector<8, double>, _Vector<8, double>, unsigned char, _Constant int)">;
   def vfmaddpd512_maskz : X86Builtin<"_Vector<8, double>(_Vector<8, double>, 
_Vector<8, double>, _Vector<8, double>, unsigned char, _Constant int)">;
   def vfmaddpd512_mask3 : X86Builtin<"_Vector<8, double>(_Vector<8, double>, 
_Vector<8, double>, _Vector<8, double>, unsigned char, _Constant int)">;
@@ -936,7 +936,7 @@ let Features = "pku", Attributes = [NoThrow] in {
   def wrpkru : X86Builtin<"void(unsigned int)">;
 }
 
-let Features = "avx512f,evex512", Attributes = [NoThrow, Const, 
RequiredVectorWidth<512>] in {
+let Features = "avx512f", Attributes = [NoThrow, Const, 
RequiredVectorWidth<512>] in {
   def sqrtpd512 : X86Builtin<"_Vector<8, double>(_Vector<8, double>, _Constant 
int)">;
   def sqrtps512 : X86Builtin<"_Vector<16, float>(_Vector<16, float>, _Constant 
int)">;
 }
@@ -946,7 +946,7 @@ let Features = "avx512f", Attributes = [NoThrow, Const, 
RequiredVectorWidth<128>
   def rsqrt14ss_mask : X86Builtin<"_Vector<4, float>(_Vector<4, float>, 
_Vector<4, float>, _Vector<4, float>, unsigned char)">;
 }
 
-let Features = "avx512f,evex512", Attributes = [NoThrow, Const, 
RequiredVectorWidth<512>] in {
+let Features = "avx512f", Attributes = [NoThrow, Const, 
RequiredVectorWidth<512>] in {
   def rsqrt14pd512_mask : X86Builtin<"_Vector<8, double>(_Vector<8, double>, 
_Vector<8, double>, unsigned char)">;
   def rsqrt14ps512_mask : X86Builtin<"_Vector<16, float>(_Vector<16, float>, 
_Vector<16, float>, unsigned short)">;
 }
@@ -956,7 +956,7 @@ let Features = "avx512f", Attributes = [NoThrow, Const, 
RequiredVectorWidth<128>
   def rcp14ss_mask : X86Builtin<"_Vector<4, float>(_Vector<4, float>, 
_Vector<4, float>, _Vector<4, float>, unsigned char)">;
 }
 
-let Features = "avx512f,evex512", Attributes = [NoThrow, Const, 
RequiredVectorWidth<512>] in {
+let Features = "avx512f", Attributes = [NoThrow, Const, 
RequiredVectorWidth<512>] in {
   def rcp14pd512_mask : X86Builtin<"_Vector<8, double>(_Vector<8, double>, 
_Vector<8, double>, unsigned char)">;
   def rcp14ps512_mask : X86Builtin<"_Vector<16, float>(_Vector<16, float>, 
_Vector<16, float>, unsigned short)">;
   def cvttps2dq512_mask : X86Builtin<"_Vector<16, int>(_Vector<16, float>, 
_Vector<16, int>, unsigned short, _Constant int)">;
@@ -974,7 +974,7 @@ let Features = "avx512vl", Attributes = [NoThrow, Const, 
RequiredVectorWidth<128
   def cmpps128_mask : X86Builtin<"unsigned char(_Vector<4, float>, _Vector<4, 
float>, _Constant int, unsigned char)">;
 }
 
-let Features = "avx512f,evex512", Attributes = [NoThrow, Const, 
RequiredVectorWidth<512>] in {
+let Features = "avx512f", Attributes = [NoThrow, Const, 
RequiredVectorWidth<512>] in {
   def cmppd512_mask : X86Builtin<"unsigned char(_Vector<8, double>, _Vector<8, 
double>, _Constant int, unsigned char, _Constant int)">;
 }
 
@@ -986,7 +986,7 @@ let Features = "avx512vl", Attributes = [NoThrow, Const, 
RequiredVectorWidth<128
   def cmppd128_mask : X86Builtin<"unsigned char(_Vector<2, double>, _Vector<2, 
double>, _Constant int, unsigned char)">;
 }
 
-let Features = "avx512f,evex512", Attributes = [NoThrow, Const, 
RequiredVectorWidth<512>] in {
+let Features = "avx512f", Attributes = [NoThrow, Const, 
RequiredVectorWidth<512>] in {
   def rndscaleps_mask : X86Builtin<"_Vector<16, float>(_Vector<16, float>, 
_Constant int, _Vector<16, float>, unsigned short, _Constant int)">;
   def rndscalepd_mask : X86Builtin<"_Vector<8, double>(_Vector<8, double>, 
_Constant int, _Vector<8, double>, unsigned char, _Constant int)">;
   def cvtps2dq512_mask : X86Builtin<"_Vector<16, int>(_Vector<16, float>, 
_Vector<16, int>, unsigned short, _Constant int)">;
@@ -1004,12 +1004,12 @@ let Features = "avx512f,evex512", Attributes = 
[NoThrow, Const, RequiredVectorWi
   def vcvtph2ps512_mask : X86Builtin<"_Vector<16, float>(_Vector<16, short>, 
_Vector<16, float>, unsigned short, _Constant int)">;
 }
 
-let Features = "avx512f,evex512", Attributes = [NoThrow, Const, Constexpr, 
RequiredVectorWidth<512>] in {
+let Features = "avx512f", Attributes = [NoThrow, Const, Constexpr, 
RequiredVectorWidth<512>] in {
   def pmuldq512 : X86Builtin<"_Vector<8, long long int>(_Vector<16, int>, 
_Vector<16, int>)">;
   def pmuludq512 : X86Builtin<"_Vector<8, long long int>(_Vector<16, int>, 
_Vector<16, int>)">;
 }
 
-let Features = "avx512f,evex512", Attributes = [NoThrow, 
RequiredVectorWidth<512>] in {
+let Features = "avx512f", Attributes = [NoThrow, RequiredVectorWidth<512>] in {
   def loaddqusi512_mask : X86Builtin<"_Vector<16, int>(int const *, 
_Vector<16, int>, unsigned short)">;
   def loaddqudi512_mask : X86Builtin<"_Vector<8, long long int>(long long int 
const *, _Vector<8, long long int>, unsigned char)">;
   def loadups512_mask : X86Builtin<"_Vector<16, float>(float const *, 
_Vector<16, float>, unsigned short)">;
@@ -1024,7 +1024,7 @@ let Features = "avx512f,evex512", Attributes = [NoThrow, 
RequiredVectorWidth<512
   def storeaps512_mask : X86Builtin<"void(_Vector<16, float *>, _Vector<16, 
float>, unsigned short)">;
 }
 
-let Features = "avx512f,evex512", Attributes = [NoThrow, Const, 
RequiredVectorWidth<512>] in {
+let Features = "avx512f", Attributes = [NoThrow, Const, 
RequiredVectorWidth<512>] in {
   def alignq512 : X86Builtin<"_Vector<8, long long int>(_Vector<8, long long 
int>, _Vector<8, long long int>, _Constant int)">;
   def alignd512 : X86Builtin<"_Vector<16, int>(_Vector<16, int>, _Vector<16, 
int>, _Constant int)">;
 }
@@ -1045,7 +1045,7 @@ let Features = "avx512vl", Attributes = [NoThrow, Const, 
RequiredVectorWidth<256
   def alignq256 : X86Builtin<"_Vector<4, long long int>(_Vector<4, long long 
int>, _Vector<4, long long int>, _Constant int)">;
 }
 
-let Features = "avx512f,evex512", Attributes = [NoThrow, Const, 
RequiredVectorWidth<512>] in {
+let Features = "avx512f", Attributes = [NoThrow, Const, 
RequiredVectorWidth<512>] in {
   def extractf64x4_mask : X86Builtin<"_Vector<4, double>(_Vector<8, double>, 
_Constant int, _Vector<4, double>, unsigned char)">;
   def extractf32x4_mask : X86Builtin<"_Vector<4, float>(_Vector<16, float>, 
_Constant int, _Vector<4, float>, unsigned char)">;
 }
@@ -1058,7 +1058,7 @@ let Features = "avx512vl,avx512vnni|avxvnni", Attributes 
= [NoThrow, Const, Requ
   def vpdpbusd256 : X86Builtin<"_Vector<8, int>(_Vector<8, int>, _Vector<8, 
int>, _Vector<8, int>)">;
 }
 
-let Features = "avx512vnni,evex512", Attributes = [NoThrow, Const, 
RequiredVectorWidth<512>] in {
+let Features = "avx512vnni", Attributes = [NoThrow, Const, 
RequiredVectorWidth<512>] in {
   def vpdpbusd512 : X86Builtin<"_Vector<16, int>(_Vector<16, int>, _Vector<16, 
int>, _Vector<16, int>)">;
 }
 
@@ -1070,7 +1070,7 @@ let Features = "avx512vl,avx512vnni|avxvnni", Attributes 
= [NoThrow, Const, Requ
   def vpdpbusds256 : X86Builtin<"_Vector<8, int>(_Vector<8, int>, _Vector<8, 
int>, _Vector<8, int>)">;
 }
 
-let Features = "avx512vnni,evex512", Attributes = [NoThrow, Const, 
RequiredVectorWidth<512>] in {
+let Features = "avx512vnni", Attributes = [NoThrow, Const, 
RequiredVectorWidth<512>] in {
   def vpdpbusds512 : X86Builtin<"_Vector<16, int>(_Vector<16, int>, 
_Vector<16, int>, _Vector<16, int>)">;
 }
 
@@ -1082,7 +1082,7 @@ let Features = "avx512vl,avx512vnni|avxvnni", Attributes 
= [NoThrow, Const, Requ
   def vpdpwssd256 : X86Builtin<"_Vector<8, int>(_Vector<8, int>, _Vector<8, 
int>, _Vector<8, int>)">;
 }
 
-let Features = "avx512vnni,evex512", Attributes = [NoThrow, Const, 
RequiredVectorWidth<512>] in {
+let Features = "avx512vnni", Attributes = [NoThrow, Const, 
RequiredVectorWidth<512>] in {
   def vpdpwssd512 : X86Builtin<"_Vector<16, int>(_Vector<16, int>, _Vector<16, 
int>, _Vector<16, int>)">;
 }
 
@@ -1094,55 +1094,55 @@ let Features = "avx512vl,avx512vnni|avxvnni", 
Attributes = [NoThrow, Const, Requ
   def vpdpwssds256 : X86Builtin<"_Vector<8, int>(_Vector<8, int>, _Vector<8, 
int>, _Vector<8, int>)">;
 }
 
-let Features = "avx512vnni,evex512", Attributes = [NoThrow, Const, 
RequiredVectorWidth<512>] in {
+let Features = "avx512vnni", Attributes = [NoThrow, Const, 
RequiredVectorWidth<512>] in {
   def vpdpwssds512 : X86Builtin<"_Vector<16, int>(_Vector<16, int>, 
_Vector<16, int>, _Vector<16, int>)">;
 }
 
-let Features = "avxvnniint8|avx10.2-256", Attributes = [NoThrow, Const, 
RequiredVectorWidth<128>] in {
+let Features = "avxvnniint8|avx10.2", Attributes = [NoThrow, Const, 
RequiredVectorWidth<128>] in {
   def vpdpbssd128 : X86Builtin<"_Vector<4, int>(_Vector<4, int>, _Vector<4, 
int>, _Vector<4, int>)">;
 }
 
-let Features = "avxvnniint8|avx10.2-256", Attributes = [NoThrow, Const, 
RequiredVectorWidth<256>] in {
+let Features = "avxvnniint8|avx10.2", Attributes = [NoThrow, Const, 
RequiredVectorWidth<256>] in {
   def vpdpbssd256 : X86Builtin<"_Vector<8, int>(_Vector<8, int>, _Vector<8, 
int>, _Vector<8, int>)">;
 }
 
-let Features = "avxvnniint8|avx10.2-256", Attributes = [NoThrow, Const, 
RequiredVectorWidth<128>] in {
+let Features = "avxvnniint8|avx10.2", Attributes = [NoThrow, Const, 
RequiredVectorWidth<128>] in {
   def vpdpbssds128 : X86Builtin<"_Vector<4, int>(_Vector<4, int>, _Vector<4, 
int>, _Vector<4, int>)">;
 }
 
-let Features = "avxvnniint8|avx10.2-256", Attributes = [NoThrow, Const, 
RequiredVectorWidth<256>] in {
+let Features = "avxvnniint8|avx10.2", Attributes = [NoThrow, Const, 
RequiredVectorWidth<256>] in {
   def vpdpbssds256 : X86Builtin<"_Vector<8, int>(_Vector<8, int>, _Vector<8, 
int>, _Vector<8, int>)">;
 }
 
-let Features = "avxvnniint8|avx10.2-256", Attributes = [NoThrow, Const, 
RequiredVectorWidth<128>] in {
+let Features = "avxvnniint8|avx10.2", Attributes = [NoThrow, Const, 
RequiredVectorWidth<128>] in {
   def vpdpbsud128 : X86Builtin<"_Vector<4, int>(_Vector<4, int>, _Vector<4, 
int>, _Vector<4, int>)">;
 }
 
-let Features = "avxvnniint8|avx10.2-256", Attributes = [NoThrow, Const, 
RequiredVectorWidth<256>] in {
+let Features = "avxvnniint8|avx10.2", Attributes = [NoThrow, Const, 
RequiredVectorWidth<256>] in {
   def vpdpbsud256 : X86Builtin<"_Vector<8, int>(_Vector<8, int>, _Vector<8, 
int>, _Vector<8, int>)">;
 }
 
-let Features = "avxvnniint8|avx10.2-256", Attributes = [NoThrow, Const, 
RequiredVectorWidth<128>] in {
+let Features = "avxvnniint8|avx10.2", Attributes = [NoThrow, Const, 
RequiredVectorWidth<128>] in {
   def vpdpbsuds128 : X86Builtin<"_Vector<4, int>(_Vector<4, int>, _Vector<4, 
int>, _Vector<4, int>)">;
 }
 
-let Features = "avxvnniint8|avx10.2-256", Attributes = [...
[truncated]

``````````

</details>


https://github.com/llvm/llvm-project/pull/157034
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to