@@ -68,6 +68,7 @@ HARDWARE_INTRINSIC(Sve, CreateWhileLessThanOrEqualMask8Bit,
68
68
HARDWARE_INTRINSIC (Sve , Divide , -1 , 2 , true, {INS_invalid , INS_invalid , INS_invalid , INS_invalid , INS_sve_sdiv , INS_sve_udiv , INS_sve_sdiv , INS_sve_udiv , INS_sve_fdiv , INS_sve_fdiv }, HW_Category_SIMD , HW_Flag_Scalable |HW_Flag_EmbeddedMaskedOperation |HW_Flag_HasRMWSemantics |HW_Flag_LowMaskedOperation )
69
69
HARDWARE_INTRINSIC (Sve , DotProduct , -1 , 3 , true, {INS_invalid , INS_invalid , INS_invalid , INS_invalid , INS_sve_sdot , INS_sve_udot , INS_sve_sdot , INS_sve_udot , INS_invalid , INS_invalid }, HW_Category_SIMD , HW_Flag_Scalable |HW_Flag_HasRMWSemantics )
70
70
HARDWARE_INTRINSIC (Sve , DotProductBySelectedScalar , -1 , 4 , true, {INS_invalid , INS_invalid , INS_invalid , INS_invalid , INS_sve_sdot , INS_sve_udot , INS_sve_sdot , INS_sve_udot , INS_invalid , INS_invalid }, HW_Category_SIMDByIndexedElement , HW_Flag_Scalable |HW_Flag_BaseTypeFromFirstArg |HW_Flag_HasImmediateOperand |HW_Flag_HasRMWSemantics |HW_Flag_LowVectorOperation )
71
+ HARDWARE_INTRINSIC (Sve , ExtractVector , -1 , 3 , true, {INS_sve_ext , INS_sve_ext , INS_sve_ext , INS_sve_ext , INS_sve_ext , INS_sve_ext , INS_sve_ext , INS_sve_ext , INS_sve_ext , INS_sve_ext }, HW_Category_SIMD , HW_Flag_Scalable |HW_Flag_HasImmediateOperand |HW_Flag_HasRMWSemantics |HW_Flag_SpecialCodeGen )
71
72
HARDWARE_INTRINSIC (Sve , FusedMultiplyAdd , -1 , -1 , false, {INS_invalid , INS_invalid , INS_invalid , INS_invalid , INS_invalid , INS_invalid , INS_invalid , INS_invalid , INS_sve_fmla , INS_sve_fmla }, HW_Category_SIMD , HW_Flag_Scalable |HW_Flag_EmbeddedMaskedOperation |HW_Flag_HasRMWSemantics |HW_Flag_LowMaskedOperation |HW_Flag_FmaIntrinsic |HW_Flag_SpecialCodeGen )
72
73
HARDWARE_INTRINSIC (Sve , FusedMultiplyAddBySelectedScalar , -1 , 4 , true, {INS_invalid , INS_invalid , INS_invalid , INS_invalid , INS_invalid , INS_invalid , INS_invalid , INS_invalid , INS_sve_fmla , INS_sve_fmla }, HW_Category_SIMDByIndexedElement , HW_Flag_Scalable |HW_Flag_HasImmediateOperand |HW_Flag_HasRMWSemantics |HW_Flag_FmaIntrinsic |HW_Flag_LowVectorOperation )
73
74
HARDWARE_INTRINSIC (Sve , FusedMultiplyAddNegated , -1 , -1 , false, {INS_invalid , INS_invalid , INS_invalid , INS_invalid , INS_invalid , INS_invalid , INS_invalid , INS_invalid , INS_sve_fnmla , INS_sve_fnmla }, HW_Category_SIMD , HW_Flag_Scalable |HW_Flag_EmbeddedMaskedOperation |HW_Flag_HasRMWSemantics |HW_Flag_LowMaskedOperation |HW_Flag_FmaIntrinsic |HW_Flag_SpecialCodeGen )
@@ -204,6 +205,9 @@ HARDWARE_INTRINSIC(Sve, StoreNarrowing,
204
205
HARDWARE_INTRINSIC (Sve , StoreNonTemporal , -1 , 3 , true, {INS_sve_stnt1b , INS_sve_stnt1b , INS_sve_stnt1h , INS_sve_stnt1h , INS_sve_stnt1w , INS_sve_stnt1w , INS_sve_stnt1d , INS_sve_stnt1d , INS_sve_stnt1w , INS_sve_stnt1d }, HW_Category_MemoryStore , HW_Flag_Scalable |HW_Flag_BaseTypeFromFirstArg |HW_Flag_ExplicitMaskedOperation |HW_Flag_SpecialCodeGen |HW_Flag_LowMaskedOperation )
205
206
HARDWARE_INTRINSIC (Sve , Subtract , -1 , 2 , true, {INS_sve_sub , INS_sve_sub , INS_sve_sub , INS_sve_sub , INS_sve_sub , INS_sve_sub , INS_sve_sub , INS_sve_sub , INS_sve_fsub , INS_sve_fsub }, HW_Category_SIMD , HW_Flag_Scalable |HW_Flag_OptionalEmbeddedMaskedOperation |HW_Flag_HasRMWSemantics |HW_Flag_LowMaskedOperation )
206
207
HARDWARE_INTRINSIC (Sve , SubtractSaturate , -1 , 2 , true, {INS_sve_sqsub , INS_sve_uqsub , INS_sve_sqsub , INS_sve_uqsub , INS_sve_sqsub , INS_sve_uqsub , INS_sve_sqsub , INS_sve_uqsub , INS_invalid , INS_invalid }, HW_Category_SIMD , HW_Flag_Scalable |HW_Flag_OptionalEmbeddedMaskedOperation |HW_Flag_HasRMWSemantics |HW_Flag_LowMaskedOperation )
208
+ HARDWARE_INTRINSIC (Sve , TestAnyTrue , -1 , 2 , true, {INS_sve_ptest , INS_sve_ptest , INS_sve_ptest , INS_sve_ptest , INS_sve_ptest , INS_sve_ptest , INS_sve_ptest , INS_sve_ptest , INS_invalid , INS_invalid }, HW_Category_SIMD , HW_Flag_Scalable |HW_Flag_ExplicitMaskedOperation |HW_Flag_LowMaskedOperation |HW_Flag_BaseTypeFromFirstArg |HW_Flag_SpecialCodeGen )
209
+ HARDWARE_INTRINSIC (Sve , TestFirstTrue , -1 , 2 , true, {INS_sve_ptest , INS_sve_ptest , INS_sve_ptest , INS_sve_ptest , INS_sve_ptest , INS_sve_ptest , INS_sve_ptest , INS_sve_ptest , INS_invalid , INS_invalid }, HW_Category_SIMD , HW_Flag_Scalable |HW_Flag_ExplicitMaskedOperation |HW_Flag_LowMaskedOperation |HW_Flag_BaseTypeFromFirstArg |HW_Flag_SpecialCodeGen )
210
+ HARDWARE_INTRINSIC (Sve , TestLastTrue , -1 , 2 , true, {INS_sve_ptest , INS_sve_ptest , INS_sve_ptest , INS_sve_ptest , INS_sve_ptest , INS_sve_ptest , INS_sve_ptest , INS_sve_ptest , INS_invalid , INS_invalid }, HW_Category_SIMD , HW_Flag_Scalable |HW_Flag_ExplicitMaskedOperation |HW_Flag_LowMaskedOperation |HW_Flag_BaseTypeFromFirstArg |HW_Flag_SpecialCodeGen )
207
211
HARDWARE_INTRINSIC (Sve , TransposeEven , -1 , 2 , true, {INS_sve_trn1 , INS_sve_trn1 , INS_sve_trn1 , INS_sve_trn1 , INS_sve_trn1 , INS_sve_trn1 , INS_sve_trn1 , INS_sve_trn1 , INS_sve_trn1 , INS_sve_trn1 }, HW_Category_SIMD , HW_Flag_Scalable |HW_Flag_SpecialCodeGen )
208
212
HARDWARE_INTRINSIC (Sve , TransposeOdd , -1 , 2 , true, {INS_sve_trn2 , INS_sve_trn2 , INS_sve_trn2 , INS_sve_trn2 , INS_sve_trn2 , INS_sve_trn2 , INS_sve_trn2 , INS_sve_trn2 , INS_sve_trn2 , INS_sve_trn2 }, HW_Category_SIMD , HW_Flag_Scalable |HW_Flag_SpecialCodeGen )
209
213
HARDWARE_INTRINSIC (Sve , UnzipEven , -1 , 2 , true, {INS_sve_uzp1 , INS_sve_uzp1 , INS_sve_uzp1 , INS_sve_uzp1 , INS_sve_uzp1 , INS_sve_uzp1 , INS_sve_uzp1 , INS_sve_uzp1 , INS_sve_uzp1 , INS_sve_uzp1 }, HW_Category_SIMD , HW_Flag_Scalable |HW_Flag_SpecialCodeGen )
0 commit comments