Skip to content

Commit 68e6973

Browse files
phoebewangllvmbot
authored andcommitted
[X86][AVX10] Remove VAES and VPCLMULQDQ feature from AVX10.1 (#135489)
According to SDM, they require both VAES/VPCLMULQDQ and AVX10.1 CPUID bits. Fixes: #135394 (cherry picked from commit ebba554)
1 parent e0db588 commit 68e6973

File tree

3 files changed

+6
-7
lines changed

3 files changed

+6
-7
lines changed

clang/test/CodeGen/attr-target-x86.c

+4-4
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ void f_default2(void) {
5656
__attribute__((target("avx, sse4.2, arch= ivybridge")))
5757
void f_avx_sse4_2_ivybridge_2(void) {}
5858

59-
// CHECK: [[f_no_aes_ivybridge]] = {{.*}}"target-cpu"="ivybridge" "target-features"="+avx,+cmov,+crc32,+cx16,+cx8,+f16c,+fsgsbase,+fxsr,+mmx,+pclmul,+popcnt,+rdrnd,+sahf,+sse,+sse2,+sse3,+sse4.1,+sse4.2,+ssse3,+x87,+xsave,+xsaveopt,-aes,-amx-avx512,-avx10.1-256,-avx10.1-512,-avx10.2-256,-avx10.2-512,-vaes"
59+
// CHECK: [[f_no_aes_ivybridge]] = {{.*}}"target-cpu"="ivybridge" "target-features"="+avx,+cmov,+crc32,+cx16,+cx8,+f16c,+fsgsbase,+fxsr,+mmx,+pclmul,+popcnt,+rdrnd,+sahf,+sse,+sse2,+sse3,+sse4.1,+sse4.2,+ssse3,+x87,+xsave,+xsaveopt,-aes,-vaes"
6060
__attribute__((target("no-aes, arch=ivybridge")))
6161
void f_no_aes_ivybridge(void) {}
6262

@@ -98,11 +98,11 @@ void f_x86_64_v3(void) {}
9898
__attribute__((target("arch=x86-64-v4")))
9999
void f_x86_64_v4(void) {}
100100

101-
// CHECK: [[f_avx10_1_256]] = {{.*}}"target-cpu"="i686" "target-features"="+aes,+avx,+avx10.1-256,+avx2,+avx512bf16,+avx512bitalg,+avx512bw,+avx512cd,+avx512dq,+avx512f,+avx512fp16,+avx512ifma,+avx512vbmi,+avx512vbmi2,+avx512vl,+avx512vnni,+avx512vpopcntdq,+cmov,+crc32,+cx8,+f16c,+fma,+mmx,+pclmul,+popcnt,+sse,+sse2,+sse3,+sse4.1,+sse4.2,+ssse3,+vaes,+vpclmulqdq,+x87,+xsave,-amx-avx512,-avx10.1-512,-avx10.2-512,-evex512"
101+
// CHECK: [[f_avx10_1_256]] = {{.*}}"target-cpu"="i686" "target-features"="+avx,+avx10.1-256,+avx2,+avx512bf16,+avx512bitalg,+avx512bw,+avx512cd,+avx512dq,+avx512f,+avx512fp16,+avx512ifma,+avx512vbmi,+avx512vbmi2,+avx512vl,+avx512vnni,+avx512vpopcntdq,+cmov,+crc32,+cx8,+f16c,+fma,+mmx,+popcnt,+sse,+sse2,+sse3,+sse4.1,+sse4.2,+ssse3,+x87,+xsave,-amx-avx512,-avx10.1-512,-avx10.2-512,-evex512"
102102
__attribute__((target("avx10.1-256")))
103103
void f_avx10_1_256(void) {}
104104

105-
// CHECK: [[f_avx10_1_512]] = {{.*}}"target-cpu"="i686" "target-features"="+aes,+avx,+avx10.1-256,+avx10.1-512,+avx2,+avx512bf16,+avx512bitalg,+avx512bw,+avx512cd,+avx512dq,+avx512f,+avx512fp16,+avx512ifma,+avx512vbmi,+avx512vbmi2,+avx512vl,+avx512vnni,+avx512vpopcntdq,+cmov,+crc32,+cx8,+evex512,+f16c,+fma,+mmx,+pclmul,+popcnt,+sse,+sse2,+sse3,+sse4.1,+sse4.2,+ssse3,+vaes,+vpclmulqdq,+x87,+xsave"
105+
// CHECK: [[f_avx10_1_512]] = {{.*}}"target-cpu"="i686" "target-features"="+avx,+avx10.1-256,+avx10.1-512,+avx2,+avx512bf16,+avx512bitalg,+avx512bw,+avx512cd,+avx512dq,+avx512f,+avx512fp16,+avx512ifma,+avx512vbmi,+avx512vbmi2,+avx512vl,+avx512vnni,+avx512vpopcntdq,+cmov,+crc32,+cx8,+evex512,+f16c,+fma,+mmx,+popcnt,+sse,+sse2,+sse3,+sse4.1,+sse4.2,+ssse3,+x87,+xsave"
106106
__attribute__((target("avx10.1-512")))
107107
void f_avx10_1_512(void) {}
108108

@@ -112,4 +112,4 @@ void f_prefer_256_bit(void) {}
112112

113113
// CHECK: [[f_no_prefer_256_bit]] = {{.*}}"target-features"="{{.*}}-prefer-256-bit
114114
__attribute__((target("no-prefer-256-bit")))
115-
void f_no_prefer_256_bit(void) {}
115+
void f_no_prefer_256_bit(void) {}

llvm/lib/Target/X86/X86.td

+1-1
Original file line numberDiff line numberDiff line change
@@ -338,7 +338,7 @@ def FeatureAVX10_1 : SubtargetFeature<"avx10.1-256", "HasAVX10_1", "true",
338338
"Support AVX10.1 up to 256-bit instruction",
339339
[FeatureCDI, FeatureVBMI, FeatureIFMA, FeatureVNNI,
340340
FeatureBF16, FeatureVPOPCNTDQ, FeatureVBMI2, FeatureBITALG,
341-
FeatureVAES, FeatureVPCLMULQDQ, FeatureFP16]>;
341+
FeatureFP16]>;
342342
def FeatureAVX10_1_512 : SubtargetFeature<"avx10.1-512", "HasAVX10_1_512", "true",
343343
"Support AVX10.1 up to 512-bit instruction",
344344
[FeatureAVX10_1, FeatureEVEX512]>;

llvm/lib/TargetParser/X86TargetParser.cpp

+1-2
Original file line numberDiff line numberDiff line change
@@ -637,8 +637,7 @@ constexpr FeatureBitset ImpliedFeaturesAVXVNNI = FeatureAVX2;
637637
constexpr FeatureBitset ImpliedFeaturesAVX10_1 =
638638
FeatureAVX512CD | FeatureAVX512VBMI | FeatureAVX512IFMA |
639639
FeatureAVX512VNNI | FeatureAVX512BF16 | FeatureAVX512VPOPCNTDQ |
640-
FeatureAVX512VBMI2 | FeatureAVX512BITALG | FeatureVAES | FeatureVPCLMULQDQ |
641-
FeatureAVX512FP16;
640+
FeatureAVX512VBMI2 | FeatureAVX512BITALG | FeatureAVX512FP16;
642641
constexpr FeatureBitset ImpliedFeaturesAVX10_1_512 =
643642
FeatureAVX10_1 | FeatureEVEX512;
644643
constexpr FeatureBitset ImpliedFeaturesAVX10_2 = FeatureAVX10_1;

0 commit comments

Comments
 (0)