@@ -25,7 +25,7 @@ HARDWARE_INTRINSIC(Sve, AbsoluteDifference,
25
25
HARDWARE_INTRINSIC (Sve , Add , -1 , -1 , {INS_sve_add , INS_sve_add , INS_sve_add , INS_sve_add , INS_sve_add , INS_sve_add , INS_sve_add , INS_sve_add , INS_sve_fadd , INS_sve_fadd }, HW_Category_SIMD , HW_Flag_Scalable |HW_Flag_OptionalEmbeddedMaskedOperation |HW_Flag_HasRMWSemantics |HW_Flag_LowMaskedOperation )
26
26
HARDWARE_INTRINSIC (Sve , AddAcross , -1 , 1 , {INS_sve_saddv , INS_sve_uaddv , INS_sve_saddv , INS_sve_uaddv , INS_sve_saddv , INS_sve_uaddv , INS_sve_uaddv , INS_sve_uaddv , INS_sve_faddv , INS_sve_faddv }, HW_Category_SIMD , HW_Flag_Scalable |HW_Flag_BaseTypeFromFirstArg |HW_Flag_EmbeddedMaskedOperation |HW_Flag_LowMaskedOperation |HW_Flag_ReduceOperation )
27
27
HARDWARE_INTRINSIC (Sve , AddRotateComplex , -1 , -1 , {INS_invalid , INS_invalid , INS_invalid , INS_invalid , INS_invalid , INS_invalid , INS_invalid , INS_invalid , INS_sve_fcadd , INS_sve_fcadd }, HW_Category_SIMD , HW_Flag_Scalable |HW_Flag_EmbeddedMaskedOperation |HW_Flag_LowMaskedOperation |HW_Flag_HasRMWSemantics |HW_Flag_HasImmediateOperand )
28
- HARDWARE_INTRINSIC (Sve , AddSaturate , -1 , 2 , {INS_sve_sqadd , INS_sve_uqadd , INS_sve_sqadd , INS_sve_uqadd , INS_sve_sqadd , INS_sve_uqadd , INS_sve_sqadd , INS_sve_uqadd , INS_invalid , INS_invalid }, HW_Category_SIMD , HW_Flag_Scalable | HW_Flag_HasRMWSemantics | HW_Flag_LowMaskedOperation )
28
+ HARDWARE_INTRINSIC (Sve , AddSaturate , -1 , 2 , {INS_sve_sqadd , INS_sve_uqadd , INS_sve_sqadd , INS_sve_uqadd , INS_sve_sqadd , INS_sve_uqadd , INS_sve_sqadd , INS_sve_uqadd , INS_invalid , INS_invalid }, HW_Category_SIMD , HW_Flag_Scalable )
29
29
HARDWARE_INTRINSIC (Sve , AddSequentialAcross , -1 , -1 , {INS_invalid , INS_invalid , INS_invalid , INS_invalid , INS_invalid , INS_invalid , INS_invalid , INS_invalid , INS_sve_fadda , INS_sve_fadda }, HW_Category_SIMD , HW_Flag_Scalable |HW_Flag_EmbeddedMaskedOperation |HW_Flag_LowMaskedOperation |HW_Flag_HasRMWSemantics |HW_Flag_ReduceOperation )
30
30
HARDWARE_INTRINSIC (Sve , And , -1 , -1 , {INS_sve_and , INS_sve_and , INS_sve_and , INS_sve_and , INS_sve_and , INS_sve_and , INS_sve_and , INS_sve_and , INS_invalid , INS_invalid }, HW_Category_SIMD , HW_Flag_Scalable |HW_Flag_OptionalEmbeddedMaskedOperation |HW_Flag_HasRMWSemantics |HW_Flag_LowMaskedOperation )
31
31
HARDWARE_INTRINSIC (Sve , AndAcross , -1 , -1 , {INS_sve_andv , INS_sve_andv , INS_sve_andv , INS_sve_andv , INS_sve_andv , INS_sve_andv , INS_sve_andv , INS_sve_andv , INS_invalid , INS_invalid }, HW_Category_SIMD , HW_Flag_Scalable |HW_Flag_EmbeddedMaskedOperation |HW_Flag_LowMaskedOperation |HW_Flag_ReduceOperation )
@@ -280,7 +280,7 @@ HARDWARE_INTRINSIC(Sve, StoreAndZip,
280
280
HARDWARE_INTRINSIC (Sve , StoreNarrowing , -1 , 3 , {INS_sve_st1b , INS_sve_st1b , INS_sve_st1h , INS_sve_st1h , INS_sve_st1w , INS_sve_st1w , INS_sve_st1d , INS_sve_st1d , INS_invalid , INS_invalid }, HW_Category_MemoryStore , HW_Flag_Scalable |HW_Flag_BaseTypeFromFirstArg |HW_Flag_ExplicitMaskedOperation |HW_Flag_SpecialImport |HW_Flag_SpecialCodeGen |HW_Flag_LowMaskedOperation )
281
281
HARDWARE_INTRINSIC (Sve , StoreNonTemporal , -1 , 3 , {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 )
282
282
HARDWARE_INTRINSIC (Sve , Subtract , -1 , 2 , {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 )
283
- HARDWARE_INTRINSIC (Sve , SubtractSaturate , -1 , 2 , {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_HasRMWSemantics | HW_Flag_LowMaskedOperation )
283
+ HARDWARE_INTRINSIC (Sve , SubtractSaturate , -1 , 2 , {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 )
284
284
HARDWARE_INTRINSIC (Sve , TestAnyTrue , -1 , 2 , {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 )
285
285
HARDWARE_INTRINSIC (Sve , TestFirstTrue , -1 , 2 , {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 )
286
286
HARDWARE_INTRINSIC (Sve , TestLastTrue , -1 , 2 , {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 )
@@ -312,8 +312,8 @@ HARDWARE_INTRINSIC(Sve, ZipLow,
312
312
#define SPECIAL_NI_Sve NI_Sve_ConditionalExtractAfterLastActiveElementScalar
313
313
HARDWARE_INTRINSIC (Sve , ConditionalExtractAfterLastActiveElementScalar , 0 , 3 , {INS_sve_clasta , INS_sve_clasta , INS_sve_clasta , INS_sve_clasta , INS_sve_clasta , INS_sve_clasta , INS_sve_clasta , INS_sve_clasta , INS_sve_clasta , INS_sve_clasta }, HW_Category_Scalar , HW_Flag_Scalable |HW_Flag_SpecialCodeGen |HW_Flag_SpecialImport |HW_Flag_HasRMWSemantics |HW_Flag_ExplicitMaskedOperation |HW_Flag_LowMaskedOperation )
314
314
HARDWARE_INTRINSIC (Sve , ConditionalExtractLastActiveElementScalar , 0 , 3 , {INS_sve_clastb , INS_sve_clastb , INS_sve_clastb , INS_sve_clastb , INS_sve_clastb , INS_sve_clastb , INS_sve_clastb , INS_sve_clastb , INS_sve_clastb , INS_sve_clastb }, HW_Category_Scalar , HW_Flag_Scalable |HW_Flag_SpecialCodeGen |HW_Flag_SpecialImport |HW_Flag_HasRMWSemantics |HW_Flag_ExplicitMaskedOperation |HW_Flag_LowMaskedOperation )
315
- HARDWARE_INTRINSIC (Sve , ConvertMaskToVector , -1 , 1 , {INS_sve_mov , INS_sve_mov , INS_sve_mov , INS_sve_mov , INS_sve_mov , INS_sve_mov , INS_sve_mov , INS_sve_mov , INS_sve_mov , INS_sve_mov }, HW_Category_Helper , HW_Flag_Scalable | HW_Flag_ExplicitMaskedOperation )
316
- HARDWARE_INTRINSIC (Sve , ConvertVectorToMask , -1 , 2 , {INS_sve_cmpne , INS_sve_cmpne , INS_sve_cmpne , INS_sve_cmpne , INS_sve_cmpne , INS_sve_cmpne , INS_sve_cmpne , INS_sve_cmpne , INS_sve_cmpne , INS_sve_cmpne }, HW_Category_Helper , HW_Flag_Scalable |HW_Flag_ReturnsPerElementMask |HW_Flag_LowMaskedOperation )
315
+ HARDWARE_INTRINSIC (Sve , ConvertMaskToVector , -1 , 1 , {INS_sve_mov , INS_sve_mov , INS_sve_mov , INS_sve_mov , INS_sve_mov , INS_sve_mov , INS_sve_mov , INS_sve_mov , INS_sve_mov , INS_sve_mov }, HW_Category_Helper , HW_Flag_Scalable )
316
+ HARDWARE_INTRINSIC (Sve , ConvertVectorToMask , -1 , 2 , {INS_sve_cmpne , INS_sve_cmpne , INS_sve_cmpne , INS_sve_cmpne , INS_sve_cmpne , INS_sve_cmpne , INS_sve_cmpne , INS_sve_cmpne , INS_sve_cmpne , INS_sve_cmpne }, HW_Category_Helper , HW_Flag_Scalable |HW_Flag_ExplicitMaskedOperation | HW_Flag_ReturnsPerElementMask |HW_Flag_LowMaskedOperation )
317
317
HARDWARE_INTRINSIC (Sve , CreateTrueMaskAll , -1 , 0 , {INS_sve_ptrue , INS_sve_ptrue , INS_sve_ptrue , INS_sve_ptrue , INS_sve_ptrue , INS_sve_ptrue , INS_sve_ptrue , INS_sve_ptrue , INS_sve_ptrue , INS_sve_ptrue }, HW_Category_Helper , HW_Flag_Scalable |HW_Flag_ReturnsPerElementMask )
318
318
// Scalar variants of Saturating*By*BitElementCount. There is 8bit versions as the generic version is scalar only.
319
319
HARDWARE_INTRINSIC (Sve , SaturatingDecrementBy16BitElementCountScalar , 0 , 3 , {INS_invalid , INS_invalid , INS_invalid , INS_invalid , INS_sve_sqdech , INS_sve_uqdech , INS_sve_sqdech , INS_sve_uqdech , INS_invalid , INS_invalid }, HW_Category_Scalar , HW_Flag_Scalable |HW_Flag_HasImmediateOperand |HW_Flag_SpecialCodeGen |HW_Flag_SpecialImport |HW_Flag_HasRMWSemantics )
0 commit comments