@@ -77,40 +77,42 @@ enum CORINFO_InstructionSet
77
77
InstructionSet_AVX512VBMI=32 ,
78
78
InstructionSet_AVX512VBMI_VL=33 ,
79
79
InstructionSet_AVX10v1=34 ,
80
- InstructionSet_VectorT128=35 ,
81
- InstructionSet_VectorT256=36 ,
82
- InstructionSet_VectorT512=37 ,
83
- InstructionSet_X86Base_X64=38 ,
84
- InstructionSet_SSE_X64=39 ,
85
- InstructionSet_SSE2_X64=40 ,
86
- InstructionSet_SSE3_X64=41 ,
87
- InstructionSet_SSSE3_X64=42 ,
88
- InstructionSet_SSE41_X64=43 ,
89
- InstructionSet_SSE42_X64=44 ,
90
- InstructionSet_AVX_X64=45 ,
91
- InstructionSet_AVX2_X64=46 ,
92
- InstructionSet_AES_X64=47 ,
93
- InstructionSet_BMI1_X64=48 ,
94
- InstructionSet_BMI2_X64=49 ,
95
- InstructionSet_FMA_X64=50 ,
96
- InstructionSet_LZCNT_X64=51 ,
97
- InstructionSet_PCLMULQDQ_X64=52 ,
98
- InstructionSet_POPCNT_X64=53 ,
99
- InstructionSet_AVXVNNI_X64=54 ,
100
- InstructionSet_MOVBE_X64=55 ,
101
- InstructionSet_X86Serialize_X64=56 ,
102
- InstructionSet_EVEX_X64=57 ,
103
- InstructionSet_AVX512F_X64=58 ,
104
- InstructionSet_AVX512F_VL_X64=59 ,
105
- InstructionSet_AVX512BW_X64=60 ,
106
- InstructionSet_AVX512BW_VL_X64=61 ,
107
- InstructionSet_AVX512CD_X64=62 ,
108
- InstructionSet_AVX512CD_VL_X64=63 ,
109
- InstructionSet_AVX512DQ_X64=64 ,
110
- InstructionSet_AVX512DQ_VL_X64=65 ,
111
- InstructionSet_AVX512VBMI_X64=66 ,
112
- InstructionSet_AVX512VBMI_VL_X64=67 ,
113
- InstructionSet_AVX10v1_X64=68 ,
80
+ InstructionSet_AVX10v1_V512=35 ,
81
+ InstructionSet_VectorT128=36 ,
82
+ InstructionSet_VectorT256=37 ,
83
+ InstructionSet_VectorT512=38 ,
84
+ InstructionSet_X86Base_X64=39 ,
85
+ InstructionSet_SSE_X64=40 ,
86
+ InstructionSet_SSE2_X64=41 ,
87
+ InstructionSet_SSE3_X64=42 ,
88
+ InstructionSet_SSSE3_X64=43 ,
89
+ InstructionSet_SSE41_X64=44 ,
90
+ InstructionSet_SSE42_X64=45 ,
91
+ InstructionSet_AVX_X64=46 ,
92
+ InstructionSet_AVX2_X64=47 ,
93
+ InstructionSet_AES_X64=48 ,
94
+ InstructionSet_BMI1_X64=49 ,
95
+ InstructionSet_BMI2_X64=50 ,
96
+ InstructionSet_FMA_X64=51 ,
97
+ InstructionSet_LZCNT_X64=52 ,
98
+ InstructionSet_PCLMULQDQ_X64=53 ,
99
+ InstructionSet_POPCNT_X64=54 ,
100
+ InstructionSet_AVXVNNI_X64=55 ,
101
+ InstructionSet_MOVBE_X64=56 ,
102
+ InstructionSet_X86Serialize_X64=57 ,
103
+ InstructionSet_EVEX_X64=58 ,
104
+ InstructionSet_AVX512F_X64=59 ,
105
+ InstructionSet_AVX512F_VL_X64=60 ,
106
+ InstructionSet_AVX512BW_X64=61 ,
107
+ InstructionSet_AVX512BW_VL_X64=62 ,
108
+ InstructionSet_AVX512CD_X64=63 ,
109
+ InstructionSet_AVX512CD_VL_X64=64 ,
110
+ InstructionSet_AVX512DQ_X64=65 ,
111
+ InstructionSet_AVX512DQ_VL_X64=66 ,
112
+ InstructionSet_AVX512VBMI_X64=67 ,
113
+ InstructionSet_AVX512VBMI_VL_X64=68 ,
114
+ InstructionSet_AVX10v1_X64=69 ,
115
+ InstructionSet_AVX10v1_V512_X64=70 ,
114
116
#endif // TARGET_AMD64
115
117
#ifdef TARGET_X86
116
118
InstructionSet_X86Base=1 ,
@@ -147,40 +149,42 @@ enum CORINFO_InstructionSet
147
149
InstructionSet_AVX512VBMI=32 ,
148
150
InstructionSet_AVX512VBMI_VL=33 ,
149
151
InstructionSet_AVX10v1=34 ,
150
- InstructionSet_VectorT128=35 ,
151
- InstructionSet_VectorT256=36 ,
152
- InstructionSet_VectorT512=37 ,
153
- InstructionSet_X86Base_X64=38 ,
154
- InstructionSet_SSE_X64=39 ,
155
- InstructionSet_SSE2_X64=40 ,
156
- InstructionSet_SSE3_X64=41 ,
157
- InstructionSet_SSSE3_X64=42 ,
158
- InstructionSet_SSE41_X64=43 ,
159
- InstructionSet_SSE42_X64=44 ,
160
- InstructionSet_AVX_X64=45 ,
161
- InstructionSet_AVX2_X64=46 ,
162
- InstructionSet_AES_X64=47 ,
163
- InstructionSet_BMI1_X64=48 ,
164
- InstructionSet_BMI2_X64=49 ,
165
- InstructionSet_FMA_X64=50 ,
166
- InstructionSet_LZCNT_X64=51 ,
167
- InstructionSet_PCLMULQDQ_X64=52 ,
168
- InstructionSet_POPCNT_X64=53 ,
169
- InstructionSet_AVXVNNI_X64=54 ,
170
- InstructionSet_MOVBE_X64=55 ,
171
- InstructionSet_X86Serialize_X64=56 ,
172
- InstructionSet_EVEX_X64=57 ,
173
- InstructionSet_AVX512F_X64=58 ,
174
- InstructionSet_AVX512F_VL_X64=59 ,
175
- InstructionSet_AVX512BW_X64=60 ,
176
- InstructionSet_AVX512BW_VL_X64=61 ,
177
- InstructionSet_AVX512CD_X64=62 ,
178
- InstructionSet_AVX512CD_VL_X64=63 ,
179
- InstructionSet_AVX512DQ_X64=64 ,
180
- InstructionSet_AVX512DQ_VL_X64=65 ,
181
- InstructionSet_AVX512VBMI_X64=66 ,
182
- InstructionSet_AVX512VBMI_VL_X64=67 ,
183
- InstructionSet_AVX10v1_X64=68 ,
152
+ InstructionSet_AVX10v1_V512=35 ,
153
+ InstructionSet_VectorT128=36 ,
154
+ InstructionSet_VectorT256=37 ,
155
+ InstructionSet_VectorT512=38 ,
156
+ InstructionSet_X86Base_X64=39 ,
157
+ InstructionSet_SSE_X64=40 ,
158
+ InstructionSet_SSE2_X64=41 ,
159
+ InstructionSet_SSE3_X64=42 ,
160
+ InstructionSet_SSSE3_X64=43 ,
161
+ InstructionSet_SSE41_X64=44 ,
162
+ InstructionSet_SSE42_X64=45 ,
163
+ InstructionSet_AVX_X64=46 ,
164
+ InstructionSet_AVX2_X64=47 ,
165
+ InstructionSet_AES_X64=48 ,
166
+ InstructionSet_BMI1_X64=49 ,
167
+ InstructionSet_BMI2_X64=50 ,
168
+ InstructionSet_FMA_X64=51 ,
169
+ InstructionSet_LZCNT_X64=52 ,
170
+ InstructionSet_PCLMULQDQ_X64=53 ,
171
+ InstructionSet_POPCNT_X64=54 ,
172
+ InstructionSet_AVXVNNI_X64=55 ,
173
+ InstructionSet_MOVBE_X64=56 ,
174
+ InstructionSet_X86Serialize_X64=57 ,
175
+ InstructionSet_EVEX_X64=58 ,
176
+ InstructionSet_AVX512F_X64=59 ,
177
+ InstructionSet_AVX512F_VL_X64=60 ,
178
+ InstructionSet_AVX512BW_X64=61 ,
179
+ InstructionSet_AVX512BW_VL_X64=62 ,
180
+ InstructionSet_AVX512CD_X64=63 ,
181
+ InstructionSet_AVX512CD_VL_X64=64 ,
182
+ InstructionSet_AVX512DQ_X64=65 ,
183
+ InstructionSet_AVX512DQ_VL_X64=66 ,
184
+ InstructionSet_AVX512VBMI_X64=67 ,
185
+ InstructionSet_AVX512VBMI_VL_X64=68 ,
186
+ InstructionSet_AVX10v1_X64=69 ,
187
+ InstructionSet_AVX10v1_V512_X64=70 ,
184
188
#endif // TARGET_X86
185
189
186
190
};
@@ -358,6 +362,8 @@ struct CORINFO_InstructionSetFlags
358
362
AddInstructionSet (InstructionSet_AVX512VBMI_VL_X64);
359
363
if (HasInstructionSet (InstructionSet_AVX10v1))
360
364
AddInstructionSet (InstructionSet_AVX10v1_X64);
365
+ if (HasInstructionSet (InstructionSet_AVX10v1_V512))
366
+ AddInstructionSet (InstructionSet_AVX10v1_V512_X64);
361
367
#endif // TARGET_AMD64
362
368
#ifdef TARGET_X86
363
369
#endif // TARGET_X86
@@ -562,6 +568,10 @@ inline CORINFO_InstructionSetFlags EnsureInstructionSetFlagsAreValid(CORINFO_Ins
562
568
resultflags.RemoveInstructionSet (InstructionSet_AVX10v1);
563
569
if (resultflags.HasInstructionSet (InstructionSet_AVX10v1_X64) && !resultflags.HasInstructionSet (InstructionSet_AVX10v1))
564
570
resultflags.RemoveInstructionSet (InstructionSet_AVX10v1_X64);
571
+ if (resultflags.HasInstructionSet (InstructionSet_AVX10v1_V512) && !resultflags.HasInstructionSet (InstructionSet_AVX10v1_V512_X64))
572
+ resultflags.RemoveInstructionSet (InstructionSet_AVX10v1_V512);
573
+ if (resultflags.HasInstructionSet (InstructionSet_AVX10v1_V512_X64) && !resultflags.HasInstructionSet (InstructionSet_AVX10v1_V512))
574
+ resultflags.RemoveInstructionSet (InstructionSet_AVX10v1_V512_X64);
565
575
if (resultflags.HasInstructionSet (InstructionSet_SSE) && !resultflags.HasInstructionSet (InstructionSet_X86Base))
566
576
resultflags.RemoveInstructionSet (InstructionSet_SSE);
567
577
if (resultflags.HasInstructionSet (InstructionSet_SSE2) && !resultflags.HasInstructionSet (InstructionSet_SSE))
@@ -638,6 +648,30 @@ inline CORINFO_InstructionSetFlags EnsureInstructionSetFlagsAreValid(CORINFO_Ins
638
648
resultflags.RemoveInstructionSet (InstructionSet_AVX512VBMI_VL);
639
649
if (resultflags.HasInstructionSet (InstructionSet_AVX10v1) && !resultflags.HasInstructionSet (InstructionSet_EVEX))
640
650
resultflags.RemoveInstructionSet (InstructionSet_AVX10v1);
651
+ if (resultflags.HasInstructionSet (InstructionSet_AVX10v1_V512) && !resultflags.HasInstructionSet (InstructionSet_EVEX))
652
+ resultflags.RemoveInstructionSet (InstructionSet_AVX10v1_V512);
653
+ if (resultflags.HasInstructionSet (InstructionSet_AVX10v1_V512) && !resultflags.HasInstructionSet (InstructionSet_AVX10v1))
654
+ resultflags.RemoveInstructionSet (InstructionSet_AVX10v1_V512);
655
+ if (resultflags.HasInstructionSet (InstructionSet_AVX10v1_V512) && !resultflags.HasInstructionSet (InstructionSet_AVX512F))
656
+ resultflags.RemoveInstructionSet (InstructionSet_AVX10v1_V512);
657
+ if (resultflags.HasInstructionSet (InstructionSet_AVX10v1_V512) && !resultflags.HasInstructionSet (InstructionSet_AVX512F_VL))
658
+ resultflags.RemoveInstructionSet (InstructionSet_AVX10v1_V512);
659
+ if (resultflags.HasInstructionSet (InstructionSet_AVX10v1_V512) && !resultflags.HasInstructionSet (InstructionSet_AVX512CD))
660
+ resultflags.RemoveInstructionSet (InstructionSet_AVX10v1_V512);
661
+ if (resultflags.HasInstructionSet (InstructionSet_AVX10v1_V512) && !resultflags.HasInstructionSet (InstructionSet_AVX512CD_VL))
662
+ resultflags.RemoveInstructionSet (InstructionSet_AVX10v1_V512);
663
+ if (resultflags.HasInstructionSet (InstructionSet_AVX10v1_V512) && !resultflags.HasInstructionSet (InstructionSet_AVX512BW))
664
+ resultflags.RemoveInstructionSet (InstructionSet_AVX10v1_V512);
665
+ if (resultflags.HasInstructionSet (InstructionSet_AVX10v1_V512) && !resultflags.HasInstructionSet (InstructionSet_AVX512BW_VL))
666
+ resultflags.RemoveInstructionSet (InstructionSet_AVX10v1_V512);
667
+ if (resultflags.HasInstructionSet (InstructionSet_AVX10v1_V512) && !resultflags.HasInstructionSet (InstructionSet_AVX512DQ))
668
+ resultflags.RemoveInstructionSet (InstructionSet_AVX10v1_V512);
669
+ if (resultflags.HasInstructionSet (InstructionSet_AVX10v1_V512) && !resultflags.HasInstructionSet (InstructionSet_AVX512DQ_VL))
670
+ resultflags.RemoveInstructionSet (InstructionSet_AVX10v1_V512);
671
+ if (resultflags.HasInstructionSet (InstructionSet_AVX10v1_V512) && !resultflags.HasInstructionSet (InstructionSet_AVX512VBMI))
672
+ resultflags.RemoveInstructionSet (InstructionSet_AVX10v1_V512);
673
+ if (resultflags.HasInstructionSet (InstructionSet_AVX10v1_V512) && !resultflags.HasInstructionSet (InstructionSet_AVX512VBMI_VL))
674
+ resultflags.RemoveInstructionSet (InstructionSet_AVX10v1_V512);
641
675
if (resultflags.HasInstructionSet (InstructionSet_VectorT128) && !resultflags.HasInstructionSet (InstructionSet_SSE2))
642
676
resultflags.RemoveInstructionSet (InstructionSet_VectorT128);
643
677
if (resultflags.HasInstructionSet (InstructionSet_VectorT256) && !resultflags.HasInstructionSet (InstructionSet_AVX2))
@@ -728,6 +762,30 @@ inline CORINFO_InstructionSetFlags EnsureInstructionSetFlagsAreValid(CORINFO_Ins
728
762
resultflags.RemoveInstructionSet (InstructionSet_AVX512VBMI_VL);
729
763
if (resultflags.HasInstructionSet (InstructionSet_AVX10v1) && !resultflags.HasInstructionSet (InstructionSet_EVEX))
730
764
resultflags.RemoveInstructionSet (InstructionSet_AVX10v1);
765
+ if (resultflags.HasInstructionSet (InstructionSet_AVX10v1_V512) && !resultflags.HasInstructionSet (InstructionSet_EVEX))
766
+ resultflags.RemoveInstructionSet (InstructionSet_AVX10v1_V512);
767
+ if (resultflags.HasInstructionSet (InstructionSet_AVX10v1_V512) && !resultflags.HasInstructionSet (InstructionSet_AVX10v1))
768
+ resultflags.RemoveInstructionSet (InstructionSet_AVX10v1_V512);
769
+ if (resultflags.HasInstructionSet (InstructionSet_AVX10v1_V512) && !resultflags.HasInstructionSet (InstructionSet_AVX512F))
770
+ resultflags.RemoveInstructionSet (InstructionSet_AVX10v1_V512);
771
+ if (resultflags.HasInstructionSet (InstructionSet_AVX10v1_V512) && !resultflags.HasInstructionSet (InstructionSet_AVX512F_VL))
772
+ resultflags.RemoveInstructionSet (InstructionSet_AVX10v1_V512);
773
+ if (resultflags.HasInstructionSet (InstructionSet_AVX10v1_V512) && !resultflags.HasInstructionSet (InstructionSet_AVX512CD))
774
+ resultflags.RemoveInstructionSet (InstructionSet_AVX10v1_V512);
775
+ if (resultflags.HasInstructionSet (InstructionSet_AVX10v1_V512) && !resultflags.HasInstructionSet (InstructionSet_AVX512CD_VL))
776
+ resultflags.RemoveInstructionSet (InstructionSet_AVX10v1_V512);
777
+ if (resultflags.HasInstructionSet (InstructionSet_AVX10v1_V512) && !resultflags.HasInstructionSet (InstructionSet_AVX512BW))
778
+ resultflags.RemoveInstructionSet (InstructionSet_AVX10v1_V512);
779
+ if (resultflags.HasInstructionSet (InstructionSet_AVX10v1_V512) && !resultflags.HasInstructionSet (InstructionSet_AVX512BW_VL))
780
+ resultflags.RemoveInstructionSet (InstructionSet_AVX10v1_V512);
781
+ if (resultflags.HasInstructionSet (InstructionSet_AVX10v1_V512) && !resultflags.HasInstructionSet (InstructionSet_AVX512DQ))
782
+ resultflags.RemoveInstructionSet (InstructionSet_AVX10v1_V512);
783
+ if (resultflags.HasInstructionSet (InstructionSet_AVX10v1_V512) && !resultflags.HasInstructionSet (InstructionSet_AVX512DQ_VL))
784
+ resultflags.RemoveInstructionSet (InstructionSet_AVX10v1_V512);
785
+ if (resultflags.HasInstructionSet (InstructionSet_AVX10v1_V512) && !resultflags.HasInstructionSet (InstructionSet_AVX512VBMI))
786
+ resultflags.RemoveInstructionSet (InstructionSet_AVX10v1_V512);
787
+ if (resultflags.HasInstructionSet (InstructionSet_AVX10v1_V512) && !resultflags.HasInstructionSet (InstructionSet_AVX512VBMI_VL))
788
+ resultflags.RemoveInstructionSet (InstructionSet_AVX10v1_V512);
731
789
if (resultflags.HasInstructionSet (InstructionSet_VectorT128) && !resultflags.HasInstructionSet (InstructionSet_SSE2))
732
790
resultflags.RemoveInstructionSet (InstructionSet_VectorT128);
733
791
if (resultflags.HasInstructionSet (InstructionSet_VectorT256) && !resultflags.HasInstructionSet (InstructionSet_AVX2))
@@ -938,6 +996,10 @@ inline const char *InstructionSetToString(CORINFO_InstructionSet instructionSet)
938
996
return " AVX10v1" ;
939
997
case InstructionSet_AVX10v1_X64 :
940
998
return " AVX10v1_X64" ;
999
+ case InstructionSet_AVX10v1_V512 :
1000
+ return " AVX10v1_V512" ;
1001
+ case InstructionSet_AVX10v1_V512_X64 :
1002
+ return " AVX10v1_V512_X64" ;
941
1003
case InstructionSet_VectorT128 :
942
1004
return " VectorT128" ;
943
1005
case InstructionSet_VectorT256 :
@@ -1014,6 +1076,8 @@ inline const char *InstructionSetToString(CORINFO_InstructionSet instructionSet)
1014
1076
return " AVX512VBMI_VL" ;
1015
1077
case InstructionSet_AVX10v1 :
1016
1078
return " AVX10v1" ;
1079
+ case InstructionSet_AVX10v1_V512 :
1080
+ return " AVX10v1_V512" ;
1017
1081
case InstructionSet_VectorT128 :
1018
1082
return " VectorT128" ;
1019
1083
case InstructionSet_VectorT256 :
@@ -1086,6 +1150,7 @@ inline CORINFO_InstructionSet InstructionSetFromR2RInstructionSet(ReadyToRunInst
1086
1150
case READYTORUN_INSTRUCTION_Avx512Vbmi: return InstructionSet_AVX512VBMI;
1087
1151
case READYTORUN_INSTRUCTION_Avx512Vbmi_VL: return InstructionSet_AVX512VBMI_VL;
1088
1152
case READYTORUN_INSTRUCTION_Avx10v1: return InstructionSet_AVX10v1;
1153
+ case READYTORUN_INSTRUCTION_Avx10v1_V512: return InstructionSet_AVX10v1_V512;
1089
1154
case READYTORUN_INSTRUCTION_VectorT128: return InstructionSet_VectorT128;
1090
1155
case READYTORUN_INSTRUCTION_VectorT256: return InstructionSet_VectorT256;
1091
1156
case READYTORUN_INSTRUCTION_VectorT512: return InstructionSet_VectorT512;
@@ -1122,6 +1187,7 @@ inline CORINFO_InstructionSet InstructionSetFromR2RInstructionSet(ReadyToRunInst
1122
1187
case READYTORUN_INSTRUCTION_Avx512Vbmi: return InstructionSet_AVX512VBMI;
1123
1188
case READYTORUN_INSTRUCTION_Avx512Vbmi_VL: return InstructionSet_AVX512VBMI_VL;
1124
1189
case READYTORUN_INSTRUCTION_Avx10v1: return InstructionSet_AVX10v1;
1190
+ case READYTORUN_INSTRUCTION_Avx10v1_V512: return InstructionSet_AVX10v1_V512;
1125
1191
case READYTORUN_INSTRUCTION_VectorT128: return InstructionSet_VectorT128;
1126
1192
case READYTORUN_INSTRUCTION_VectorT256: return InstructionSet_VectorT256;
1127
1193
case READYTORUN_INSTRUCTION_VectorT512: return InstructionSet_VectorT512;
0 commit comments