@@ -813,16 +813,20 @@ class TargetTransformInfo {
813813 LLVM_ABI AddressingModeKind
814814 getPreferredAddressingMode (const Loop *L, ScalarEvolution *SE) const ;
815815
816- // / Return true if the target supports masked store. A value of false for
817- // / IsMaskConstant indicates that the mask could either be variable or
818- // / constant. This is for targets that only support masked store with a
819- // / constant mask.
820- LLVM_ABI bool isLegalMaskedStore (Type *DataType, Align Alignment,
821- unsigned AddressSpace,
822- bool IsMaskConstant = false ) const ;
816+ // / Some targets only support masked load/store with a constant mask.
817+ enum MaskKind {
818+ VariableOrConstantMask,
819+ ConstantMask,
820+ };
821+
822+ // / Return true if the target supports masked store.
823+ LLVM_ABI bool
824+ isLegalMaskedStore (Type *DataType, Align Alignment, unsigned AddressSpace,
825+ MaskKind MaskKind = VariableOrConstantMask) const ;
823826 // / Return true if the target supports masked load.
824- LLVM_ABI bool isLegalMaskedLoad (Type *DataType, Align Alignment,
825- unsigned AddressSpace) const ;
827+ LLVM_ABI bool
828+ isLegalMaskedLoad (Type *DataType, Align Alignment, unsigned AddressSpace,
829+ MaskKind MaskKind = VariableOrConstantMask) const ;
826830
827831 // / Return true if the target supports nontemporal store.
828832 LLVM_ABI bool isLegalNTStore (Type *DataType, Align Alignment) const ;
0 commit comments