@@ -71,15 +71,13 @@ private static class XArchIntrinsicConstants
71
71
public const int AvxVnni = 0x2000 ;
72
72
public const int Movbe = 0x4000 ;
73
73
public const int Avx512f = 0x8000 ;
74
- public const int Avx512f_vl = 0x10000 ;
74
+ public const int Avx512vl = 0x10000 ;
75
75
public const int Avx512bw = 0x20000 ;
76
76
public const int Avx512cd = 0x40000 ;
77
77
public const int Avx512dq = 0x80000 ;
78
78
public const int Avx512Vbmi = 0x100000 ;
79
79
public const int Serialize = 0x200000 ;
80
80
public const int Avx10v1 = 0x400000 ;
81
- public const int Avx10v1_v256 = 0x800000 ;
82
- public const int Avx10v1_v512 = 0x1000000 ;
83
81
84
82
public static void AddToBuilder ( InstructionSetSupportBuilder builder , int flags )
85
83
{
@@ -115,31 +113,31 @@ public static void AddToBuilder(InstructionSetSupportBuilder builder, int flags)
115
113
builder . AddSupportedInstructionSet ( "movbe" ) ;
116
114
if ( ( flags & Avx512f ) != 0 )
117
115
builder . AddSupportedInstructionSet ( "avx512f" ) ;
118
- if ( ( flags & Avx512f_vl ) != 0 )
116
+ if ( ( flags & Avx512vl ) != 0 )
119
117
builder . AddSupportedInstructionSet ( "avx512f_vl" ) ;
120
118
if ( ( flags & Avx512bw ) != 0 )
121
119
builder . AddSupportedInstructionSet ( "avx512bw" ) ;
122
- if ( ( ( flags & Avx512bw ) != 0 ) && ( ( flags & Avx512f_vl ) != 0 ) )
120
+ if ( ( ( flags & Avx512bw ) != 0 ) && ( ( flags & Avx512vl ) != 0 ) )
123
121
builder . AddSupportedInstructionSet ( "avx512bw_vl" ) ;
124
122
if ( ( flags & Avx512cd ) != 0 )
125
123
builder . AddSupportedInstructionSet ( "avx512cd" ) ;
126
- if ( ( ( flags & Avx512cd ) != 0 ) && ( flags & Avx512f_vl ) != 0 )
124
+ if ( ( ( flags & Avx512cd ) != 0 ) && ( flags & Avx512vl ) != 0 )
127
125
builder . AddSupportedInstructionSet ( "avx512cd_vl" ) ;
128
126
if ( ( flags & Avx512dq ) != 0 )
129
127
builder . AddSupportedInstructionSet ( "avx512dq" ) ;
130
- if ( ( ( flags & Avx512dq ) != 0 ) && ( flags & Avx512f_vl ) != 0 )
128
+ if ( ( ( flags & Avx512dq ) != 0 ) && ( flags & Avx512vl ) != 0 )
131
129
builder . AddSupportedInstructionSet ( "avx512dq_vl" ) ;
132
130
if ( ( flags & Avx512Vbmi ) != 0 )
133
131
builder . AddSupportedInstructionSet ( "avx512vbmi" ) ;
134
- if ( ( ( flags & Avx512Vbmi ) != 0 ) && ( flags & Avx512f_vl ) != 0 )
132
+ if ( ( ( flags & Avx512Vbmi ) != 0 ) && ( flags & Avx512vl ) != 0 )
135
133
builder . AddSupportedInstructionSet ( "avx512vbmi_vl" ) ;
136
134
if ( ( flags & Serialize ) != 0 )
137
135
builder . AddSupportedInstructionSet ( "serialize" ) ;
138
136
if ( ( flags & Avx10v1 ) != 0 )
139
137
builder . AddSupportedInstructionSet ( "avx10v1" ) ;
140
- if ( ( flags & Avx10v1_v256 ) != 0 )
138
+ if ( ( flags & Avx10v1 ) != 0 )
141
139
builder . AddSupportedInstructionSet ( "avx10v1_v256" ) ;
142
- if ( ( flags & Avx10v1_v512 ) != 0 )
140
+ if ( ( ( flags & Avx10v1 ) != 0 ) && ( ( flags & Avx512f ) != 0 ) )
143
141
builder . AddSupportedInstructionSet ( "avx10v1_v512" ) ;
144
142
}
145
143
@@ -184,32 +182,32 @@ public static int FromInstructionSet(InstructionSet instructionSet)
184
182
InstructionSet . X64_MOVBE_X64 => Movbe ,
185
183
InstructionSet . X64_AVX512F => Avx512f ,
186
184
InstructionSet . X64_AVX512F_X64 => Avx512f ,
187
- InstructionSet . X64_AVX512F_VL => Avx512f_vl ,
188
- InstructionSet . X64_AVX512F_VL_X64 => Avx512f_vl ,
185
+ InstructionSet . X64_AVX512F_VL => Avx512vl ,
186
+ InstructionSet . X64_AVX512F_VL_X64 => Avx512vl ,
189
187
InstructionSet . X64_AVX512BW => Avx512bw ,
190
188
InstructionSet . X64_AVX512BW_X64 => Avx512bw ,
191
- InstructionSet . X64_AVX512BW_VL => ( Avx512bw | Avx512f_vl ) ,
192
- InstructionSet . X64_AVX512BW_VL_X64 => ( Avx512bw | Avx512f_vl ) ,
189
+ InstructionSet . X64_AVX512BW_VL => ( Avx512bw | Avx512vl ) ,
190
+ InstructionSet . X64_AVX512BW_VL_X64 => ( Avx512bw | Avx512vl ) ,
193
191
InstructionSet . X64_AVX512CD => Avx512cd ,
194
192
InstructionSet . X64_AVX512CD_X64 => Avx512cd ,
195
- InstructionSet . X64_AVX512CD_VL => ( Avx512cd | Avx512f_vl ) ,
196
- InstructionSet . X64_AVX512CD_VL_X64 => ( Avx512cd | Avx512f_vl ) ,
193
+ InstructionSet . X64_AVX512CD_VL => ( Avx512cd | Avx512vl ) ,
194
+ InstructionSet . X64_AVX512CD_VL_X64 => ( Avx512cd | Avx512vl ) ,
197
195
InstructionSet . X64_AVX512DQ => Avx512dq ,
198
196
InstructionSet . X64_AVX512DQ_X64 => Avx512dq ,
199
- InstructionSet . X64_AVX512DQ_VL => ( Avx512dq | Avx512f_vl ) ,
200
- InstructionSet . X64_AVX512DQ_VL_X64 => ( Avx512dq | Avx512f_vl ) ,
197
+ InstructionSet . X64_AVX512DQ_VL => ( Avx512dq | Avx512vl ) ,
198
+ InstructionSet . X64_AVX512DQ_VL_X64 => ( Avx512dq | Avx512vl ) ,
201
199
InstructionSet . X64_AVX512VBMI => Avx512Vbmi ,
202
200
InstructionSet . X64_AVX512VBMI_X64 => Avx512Vbmi ,
203
- InstructionSet . X64_AVX512VBMI_VL => ( Avx512Vbmi | Avx512f_vl ) ,
204
- InstructionSet . X64_AVX512VBMI_VL_X64 => ( Avx512Vbmi | Avx512f_vl ) ,
201
+ InstructionSet . X64_AVX512VBMI_VL => ( Avx512Vbmi | Avx512vl ) ,
202
+ InstructionSet . X64_AVX512VBMI_VL_X64 => ( Avx512Vbmi | Avx512vl ) ,
205
203
InstructionSet . X64_X86Serialize => Serialize ,
206
204
InstructionSet . X64_X86Serialize_X64 => Serialize ,
207
205
InstructionSet . X64_AVX10v1 => Avx10v1 ,
208
206
InstructionSet . X64_AVX10v1_X64 => Avx10v1 ,
209
- InstructionSet . X64_AVX10v1_V256 => Avx10v1_v256 ,
210
- InstructionSet . X64_AVX10v1_V256_X64 => Avx10v1_v256 ,
211
- InstructionSet . X64_AVX10v1_V512 => Avx10v1_v512 ,
212
- InstructionSet . X64_AVX10v1_V512_X64 => Avx10v1_v512 ,
207
+ InstructionSet . X64_AVX10v1_V256 => Avx10v1 ,
208
+ InstructionSet . X64_AVX10v1_V256_X64 => Avx10v1 ,
209
+ InstructionSet . X64_AVX10v1_V512 => ( Avx10v1 | Avx512f ) ,
210
+ InstructionSet . X64_AVX10v1_V512_X64 => ( Avx10v1 | Avx512f ) ,
213
211
214
212
// Baseline ISAs - they're always available
215
213
InstructionSet . X64_SSE => 0 ,
0 commit comments