@@ -81,33 +81,35 @@ enum CORINFO_InstructionSet
81
81
InstructionSet_VectorT128=36 ,
82
82
InstructionSet_VectorT256=37 ,
83
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_AVX512BW_X64=60 ,
106
- InstructionSet_AVX512CD_X64=61 ,
107
- InstructionSet_AVX512DQ_X64=62 ,
108
- InstructionSet_AVX512VBMI_X64=63 ,
109
- InstructionSet_AVX10v1_X64=64 ,
110
- InstructionSet_AVX10v1_V512_X64=65 ,
84
+ InstructionSet_APX=39 ,
85
+ InstructionSet_X86Base_X64=40 ,
86
+ InstructionSet_SSE_X64=41 ,
87
+ InstructionSet_SSE2_X64=42 ,
88
+ InstructionSet_SSE3_X64=43 ,
89
+ InstructionSet_SSSE3_X64=44 ,
90
+ InstructionSet_SSE41_X64=45 ,
91
+ InstructionSet_SSE42_X64=46 ,
92
+ InstructionSet_AVX_X64=47 ,
93
+ InstructionSet_AVX2_X64=48 ,
94
+ InstructionSet_AES_X64=49 ,
95
+ InstructionSet_BMI1_X64=50 ,
96
+ InstructionSet_BMI2_X64=51 ,
97
+ InstructionSet_FMA_X64=52 ,
98
+ InstructionSet_LZCNT_X64=53 ,
99
+ InstructionSet_PCLMULQDQ_X64=54 ,
100
+ InstructionSet_POPCNT_X64=55 ,
101
+ InstructionSet_AVXVNNI_X64=56 ,
102
+ InstructionSet_MOVBE_X64=57 ,
103
+ InstructionSet_X86Serialize_X64=58 ,
104
+ InstructionSet_EVEX_X64=59 ,
105
+ InstructionSet_AVX512F_X64=60 ,
106
+ InstructionSet_AVX512BW_X64=61 ,
107
+ InstructionSet_AVX512CD_X64=62 ,
108
+ InstructionSet_AVX512DQ_X64=63 ,
109
+ InstructionSet_AVX512VBMI_X64=64 ,
110
+ InstructionSet_AVX10v1_X64=65 ,
111
+ InstructionSet_AVX10v1_V512_X64=66 ,
112
+ InstructionSet_APX_X64=67 ,
111
113
#endif // TARGET_AMD64
112
114
#ifdef TARGET_X86
113
115
InstructionSet_X86Base=1 ,
@@ -148,33 +150,35 @@ enum CORINFO_InstructionSet
148
150
InstructionSet_VectorT128=36 ,
149
151
InstructionSet_VectorT256=37 ,
150
152
InstructionSet_VectorT512=38 ,
151
- InstructionSet_X86Base_X64=39 ,
152
- InstructionSet_SSE_X64=40 ,
153
- InstructionSet_SSE2_X64=41 ,
154
- InstructionSet_SSE3_X64=42 ,
155
- InstructionSet_SSSE3_X64=43 ,
156
- InstructionSet_SSE41_X64=44 ,
157
- InstructionSet_SSE42_X64=45 ,
158
- InstructionSet_AVX_X64=46 ,
159
- InstructionSet_AVX2_X64=47 ,
160
- InstructionSet_AES_X64=48 ,
161
- InstructionSet_BMI1_X64=49 ,
162
- InstructionSet_BMI2_X64=50 ,
163
- InstructionSet_FMA_X64=51 ,
164
- InstructionSet_LZCNT_X64=52 ,
165
- InstructionSet_PCLMULQDQ_X64=53 ,
166
- InstructionSet_POPCNT_X64=54 ,
167
- InstructionSet_AVXVNNI_X64=55 ,
168
- InstructionSet_MOVBE_X64=56 ,
169
- InstructionSet_X86Serialize_X64=57 ,
170
- InstructionSet_EVEX_X64=58 ,
171
- InstructionSet_AVX512F_X64=59 ,
172
- InstructionSet_AVX512BW_X64=60 ,
173
- InstructionSet_AVX512CD_X64=61 ,
174
- InstructionSet_AVX512DQ_X64=62 ,
175
- InstructionSet_AVX512VBMI_X64=63 ,
176
- InstructionSet_AVX10v1_X64=64 ,
177
- InstructionSet_AVX10v1_V512_X64=65 ,
153
+ InstructionSet_APX=39 ,
154
+ InstructionSet_X86Base_X64=40 ,
155
+ InstructionSet_SSE_X64=41 ,
156
+ InstructionSet_SSE2_X64=42 ,
157
+ InstructionSet_SSE3_X64=43 ,
158
+ InstructionSet_SSSE3_X64=44 ,
159
+ InstructionSet_SSE41_X64=45 ,
160
+ InstructionSet_SSE42_X64=46 ,
161
+ InstructionSet_AVX_X64=47 ,
162
+ InstructionSet_AVX2_X64=48 ,
163
+ InstructionSet_AES_X64=49 ,
164
+ InstructionSet_BMI1_X64=50 ,
165
+ InstructionSet_BMI2_X64=51 ,
166
+ InstructionSet_FMA_X64=52 ,
167
+ InstructionSet_LZCNT_X64=53 ,
168
+ InstructionSet_PCLMULQDQ_X64=54 ,
169
+ InstructionSet_POPCNT_X64=55 ,
170
+ InstructionSet_AVXVNNI_X64=56 ,
171
+ InstructionSet_MOVBE_X64=57 ,
172
+ InstructionSet_X86Serialize_X64=58 ,
173
+ InstructionSet_EVEX_X64=59 ,
174
+ InstructionSet_AVX512F_X64=60 ,
175
+ InstructionSet_AVX512BW_X64=61 ,
176
+ InstructionSet_AVX512CD_X64=62 ,
177
+ InstructionSet_AVX512DQ_X64=63 ,
178
+ InstructionSet_AVX512VBMI_X64=64 ,
179
+ InstructionSet_AVX10v1_X64=65 ,
180
+ InstructionSet_AVX10v1_V512_X64=66 ,
181
+ InstructionSet_APX_X64=67 ,
178
182
#endif // TARGET_X86
179
183
180
184
};
@@ -344,6 +348,8 @@ struct CORINFO_InstructionSetFlags
344
348
AddInstructionSet (InstructionSet_AVX10v1_X64);
345
349
if (HasInstructionSet (InstructionSet_AVX10v1_V512))
346
350
AddInstructionSet (InstructionSet_AVX10v1_V512_X64);
351
+ if (HasInstructionSet (InstructionSet_APX))
352
+ AddInstructionSet (InstructionSet_APX_X64);
347
353
#endif // TARGET_AMD64
348
354
#ifdef TARGET_X86
349
355
#endif // TARGET_X86
@@ -532,6 +538,10 @@ inline CORINFO_InstructionSetFlags EnsureInstructionSetFlagsAreValid(CORINFO_Ins
532
538
resultflags.RemoveInstructionSet (InstructionSet_AVX10v1_V512);
533
539
if (resultflags.HasInstructionSet (InstructionSet_AVX10v1_V512_X64) && !resultflags.HasInstructionSet (InstructionSet_AVX10v1_V512))
534
540
resultflags.RemoveInstructionSet (InstructionSet_AVX10v1_V512_X64);
541
+ if (resultflags.HasInstructionSet (InstructionSet_APX) && !resultflags.HasInstructionSet (InstructionSet_APX_X64))
542
+ resultflags.RemoveInstructionSet (InstructionSet_APX);
543
+ if (resultflags.HasInstructionSet (InstructionSet_APX_X64) && !resultflags.HasInstructionSet (InstructionSet_APX))
544
+ resultflags.RemoveInstructionSet (InstructionSet_APX_X64);
535
545
if (resultflags.HasInstructionSet (InstructionSet_SSE) && !resultflags.HasInstructionSet (InstructionSet_X86Base))
536
546
resultflags.RemoveInstructionSet (InstructionSet_SSE);
537
547
if (resultflags.HasInstructionSet (InstructionSet_SSE2) && !resultflags.HasInstructionSet (InstructionSet_SSE))
@@ -940,6 +950,10 @@ inline const char *InstructionSetToString(CORINFO_InstructionSet instructionSet)
940
950
return " VectorT256" ;
941
951
case InstructionSet_VectorT512 :
942
952
return " VectorT512" ;
953
+ case InstructionSet_APX :
954
+ return " APX" ;
955
+ case InstructionSet_APX_X64 :
956
+ return " APX_X64" ;
943
957
#endif // TARGET_AMD64
944
958
#ifdef TARGET_X86
945
959
case InstructionSet_X86Base :
@@ -1018,6 +1032,8 @@ inline const char *InstructionSetToString(CORINFO_InstructionSet instructionSet)
1018
1032
return " VectorT256" ;
1019
1033
case InstructionSet_VectorT512 :
1020
1034
return " VectorT512" ;
1035
+ case InstructionSet_APX :
1036
+ return " APX" ;
1021
1037
#endif // TARGET_X86
1022
1038
1023
1039
default :
@@ -1088,6 +1104,7 @@ inline CORINFO_InstructionSet InstructionSetFromR2RInstructionSet(ReadyToRunInst
1088
1104
case READYTORUN_INSTRUCTION_VectorT128: return InstructionSet_VectorT128;
1089
1105
case READYTORUN_INSTRUCTION_VectorT256: return InstructionSet_VectorT256;
1090
1106
case READYTORUN_INSTRUCTION_VectorT512: return InstructionSet_VectorT512;
1107
+ case READYTORUN_INSTRUCTION_Apx: return InstructionSet_APX;
1091
1108
#endif // TARGET_AMD64
1092
1109
#ifdef TARGET_X86
1093
1110
case READYTORUN_INSTRUCTION_X86Base: return InstructionSet_X86Base;
@@ -1125,6 +1142,7 @@ inline CORINFO_InstructionSet InstructionSetFromR2RInstructionSet(ReadyToRunInst
1125
1142
case READYTORUN_INSTRUCTION_VectorT128: return InstructionSet_VectorT128;
1126
1143
case READYTORUN_INSTRUCTION_VectorT256: return InstructionSet_VectorT256;
1127
1144
case READYTORUN_INSTRUCTION_VectorT512: return InstructionSet_VectorT512;
1145
+ case READYTORUN_INSTRUCTION_Apx: return InstructionSet_APX;
1128
1146
#endif // TARGET_X86
1129
1147
1130
1148
default :
0 commit comments