Safe Haskell | None |
---|---|
Language | GHC2021 |
System.CPUFeatures.Arm.Constraint
Description
This module provides the constraint interface to detect CPU features.
You can mark your function with Has<FEATURE NAME> =>
to indicate that
it requires a specific CPU feature.
You can detect the availability and get the constraint Has<FEATURE NAME>
by pattern-matching on the variable query<FEATURE NAME>
.
Example:
-- This function requires FEAT_PMULL someFunction :: HasFEAT_PMULL => ... case queryFEAT_PMULL of Just Dict -> {- In this branch, HasFEAT_PMULL is available -} someFunction Nothing -> {- In this branch, HasFEAT_PMULL is not available -} error "FEAT_PMULL not available"
Documentation
class FEAT_AES ~ 'True => HasFEAT_AES Source #
Instances
FEAT_AES ~ 'True => HasFEAT_AES Source # | |
Defined in System.CPUFeatures.Arm.Constraint.Unsafe |
queryFEAT_AES :: Maybe (Dict HasFEAT_AES) Source #
class FEAT_AFP ~ 'True => HasFEAT_AFP Source #
Instances
FEAT_AFP ~ 'True => HasFEAT_AFP Source # | |
Defined in System.CPUFeatures.Arm.Constraint.Unsafe |
queryFEAT_AFP :: Maybe (Dict HasFEAT_AFP) Source #
class FEAT_BF16 ~ 'True => HasFEAT_BF16 Source #
Instances
FEAT_BF16 ~ 'True => HasFEAT_BF16 Source # | |
Defined in System.CPUFeatures.Arm.Constraint.Unsafe |
class FEAT_BTI ~ 'True => HasFEAT_BTI Source #
Instances
FEAT_BTI ~ 'True => HasFEAT_BTI Source # | |
Defined in System.CPUFeatures.Arm.Constraint.Unsafe |
queryFEAT_BTI :: Maybe (Dict HasFEAT_BTI) Source #
class FEAT_CSV2 ~ 'True => HasFEAT_CSV2 Source #
Instances
FEAT_CSV2 ~ 'True => HasFEAT_CSV2 Source # | |
Defined in System.CPUFeatures.Arm.Constraint.Unsafe |
class FEAT_CSV3 ~ 'True => HasFEAT_CSV3 Source #
Instances
FEAT_CSV3 ~ 'True => HasFEAT_CSV3 Source # | |
Defined in System.CPUFeatures.Arm.Constraint.Unsafe |
class FEAT_DIT ~ 'True => HasFEAT_DIT Source #
Instances
FEAT_DIT ~ 'True => HasFEAT_DIT Source # | |
Defined in System.CPUFeatures.Arm.Constraint.Unsafe |
queryFEAT_DIT :: Maybe (Dict HasFEAT_DIT) Source #
class FEAT_DotProd ~ 'True => HasFEAT_DotProd Source #
Instances
FEAT_DotProd ~ 'True => HasFEAT_DotProd Source # | |
Defined in System.CPUFeatures.Arm.Constraint.Unsafe |
class FEAT_DPB ~ 'True => HasFEAT_DPB Source #
Instances
FEAT_DPB ~ 'True => HasFEAT_DPB Source # | |
Defined in System.CPUFeatures.Arm.Constraint.Unsafe |
queryFEAT_DPB :: Maybe (Dict HasFEAT_DPB) Source #
class FEAT_DPB2 ~ 'True => HasFEAT_DPB2 Source #
Instances
FEAT_DPB2 ~ 'True => HasFEAT_DPB2 Source # | |
Defined in System.CPUFeatures.Arm.Constraint.Unsafe |
class FEAT_ECV ~ 'True => HasFEAT_ECV Source #
Instances
FEAT_ECV ~ 'True => HasFEAT_ECV Source # | |
Defined in System.CPUFeatures.Arm.Constraint.Unsafe |
queryFEAT_ECV :: Maybe (Dict HasFEAT_ECV) Source #
class FEAT_FCMA ~ 'True => HasFEAT_FCMA Source #
Instances
FEAT_FCMA ~ 'True => HasFEAT_FCMA Source # | |
Defined in System.CPUFeatures.Arm.Constraint.Unsafe |
class FEAT_FHM ~ 'True => HasFEAT_FHM Source #
Instances
FEAT_FHM ~ 'True => HasFEAT_FHM Source # | |
Defined in System.CPUFeatures.Arm.Constraint.Unsafe |
queryFEAT_FHM :: Maybe (Dict HasFEAT_FHM) Source #
class FEAT_FlagM ~ 'True => HasFEAT_FlagM Source #
Instances
FEAT_FlagM ~ 'True => HasFEAT_FlagM Source # | |
Defined in System.CPUFeatures.Arm.Constraint.Unsafe |
class FEAT_FlagM2 ~ 'True => HasFEAT_FlagM2 Source #
Instances
FEAT_FlagM2 ~ 'True => HasFEAT_FlagM2 Source # | |
Defined in System.CPUFeatures.Arm.Constraint.Unsafe |
class FEAT_FP16 ~ 'True => HasFEAT_FP16 Source #
Instances
FEAT_FP16 ~ 'True => HasFEAT_FP16 Source # | |
Defined in System.CPUFeatures.Arm.Constraint.Unsafe |
class FEAT_FPAC ~ 'True => HasFEAT_FPAC Source #
Instances
FEAT_FPAC ~ 'True => HasFEAT_FPAC Source # | |
Defined in System.CPUFeatures.Arm.Constraint.Unsafe |
class FEAT_FRINTTS ~ 'True => HasFEAT_FRINTTS Source #
Instances
FEAT_FRINTTS ~ 'True => HasFEAT_FRINTTS Source # | |
Defined in System.CPUFeatures.Arm.Constraint.Unsafe |
class FEAT_I8MM ~ 'True => HasFEAT_I8MM Source #
Instances
FEAT_I8MM ~ 'True => HasFEAT_I8MM Source # | |
Defined in System.CPUFeatures.Arm.Constraint.Unsafe |
class FEAT_JSCVT ~ 'True => HasFEAT_JSCVT Source #
Instances
FEAT_JSCVT ~ 'True => HasFEAT_JSCVT Source # | |
Defined in System.CPUFeatures.Arm.Constraint.Unsafe |
class FEAT_LRCPC ~ 'True => HasFEAT_LRCPC Source #
Instances
FEAT_LRCPC ~ 'True => HasFEAT_LRCPC Source # | |
Defined in System.CPUFeatures.Arm.Constraint.Unsafe |
class FEAT_LRCPC2 ~ 'True => HasFEAT_LRCPC2 Source #
Instances
FEAT_LRCPC2 ~ 'True => HasFEAT_LRCPC2 Source # | |
Defined in System.CPUFeatures.Arm.Constraint.Unsafe |
class FEAT_LSE ~ 'True => HasFEAT_LSE Source #
Instances
FEAT_LSE ~ 'True => HasFEAT_LSE Source # | |
Defined in System.CPUFeatures.Arm.Constraint.Unsafe |
queryFEAT_LSE :: Maybe (Dict HasFEAT_LSE) Source #
class FEAT_LSE2 ~ 'True => HasFEAT_LSE2 Source #
Instances
FEAT_LSE2 ~ 'True => HasFEAT_LSE2 Source # | |
Defined in System.CPUFeatures.Arm.Constraint.Unsafe |
class FEAT_PAuth ~ 'True => HasFEAT_PAuth Source #
Instances
FEAT_PAuth ~ 'True => HasFEAT_PAuth Source # | |
Defined in System.CPUFeatures.Arm.Constraint.Unsafe |
class FEAT_PAuth2 ~ 'True => HasFEAT_PAuth2 Source #
Instances
FEAT_PAuth2 ~ 'True => HasFEAT_PAuth2 Source # | |
Defined in System.CPUFeatures.Arm.Constraint.Unsafe |
class FEAT_PMULL ~ 'True => HasFEAT_PMULL Source #
Instances
FEAT_PMULL ~ 'True => HasFEAT_PMULL Source # | |
Defined in System.CPUFeatures.Arm.Constraint.Unsafe |
class FEAT_RDM ~ 'True => HasFEAT_RDM Source #
Instances
FEAT_RDM ~ 'True => HasFEAT_RDM Source # | |
Defined in System.CPUFeatures.Arm.Constraint.Unsafe |
queryFEAT_RDM :: Maybe (Dict HasFEAT_RDM) Source #
class FEAT_RPRES ~ 'True => HasFEAT_RPRES Source #
Instances
FEAT_RPRES ~ 'True => HasFEAT_RPRES Source # | |
Defined in System.CPUFeatures.Arm.Constraint.Unsafe |
class FEAT_SB ~ 'True => HasFEAT_SB Source #
Instances
FEAT_SB ~ 'True => HasFEAT_SB Source # | |
Defined in System.CPUFeatures.Arm.Constraint.Unsafe |
queryFEAT_SB :: Maybe (Dict HasFEAT_SB) Source #
class FEAT_SHA1 ~ 'True => HasFEAT_SHA1 Source #
Instances
FEAT_SHA1 ~ 'True => HasFEAT_SHA1 Source # | |
Defined in System.CPUFeatures.Arm.Constraint.Unsafe |
class FEAT_SHA256 ~ 'True => HasFEAT_SHA256 Source #
Instances
FEAT_SHA256 ~ 'True => HasFEAT_SHA256 Source # | |
Defined in System.CPUFeatures.Arm.Constraint.Unsafe |
class FEAT_SHA3 ~ 'True => HasFEAT_SHA3 Source #
Instances
FEAT_SHA3 ~ 'True => HasFEAT_SHA3 Source # | |
Defined in System.CPUFeatures.Arm.Constraint.Unsafe |
class FEAT_SHA512 ~ 'True => HasFEAT_SHA512 Source #
Instances
FEAT_SHA512 ~ 'True => HasFEAT_SHA512 Source # | |
Defined in System.CPUFeatures.Arm.Constraint.Unsafe |
class FEAT_SME ~ 'True => HasFEAT_SME Source #
Instances
FEAT_SME ~ 'True => HasFEAT_SME Source # | |
Defined in System.CPUFeatures.Arm.Constraint.Unsafe |
queryFEAT_SME :: Maybe (Dict HasFEAT_SME) Source #
class FEAT_SME_F64F64 ~ 'True => HasFEAT_SME_F64F64 Source #
Instances
class FEAT_SME_I16I64 ~ 'True => HasFEAT_SME_I16I64 Source #
Instances
class FEAT_SME2 ~ 'True => HasFEAT_SME2 Source #
Instances
FEAT_SME2 ~ 'True => HasFEAT_SME2 Source # | |
Defined in System.CPUFeatures.Arm.Constraint.Unsafe |
class FEAT_SPECRES ~ 'True => HasFEAT_SPECRES Source #
Instances
FEAT_SPECRES ~ 'True => HasFEAT_SPECRES Source # | |
Defined in System.CPUFeatures.Arm.Constraint.Unsafe |
class FEAT_SSBS ~ 'True => HasFEAT_SSBS Source #
Instances
FEAT_SSBS ~ 'True => HasFEAT_SSBS Source # | |
Defined in System.CPUFeatures.Arm.Constraint.Unsafe |
class FEAT_SVE ~ 'True => HasFEAT_SVE Source #
Instances
FEAT_SVE ~ 'True => HasFEAT_SVE Source # | |
Defined in System.CPUFeatures.Arm.Constraint.Unsafe |
queryFEAT_SVE :: Maybe (Dict HasFEAT_SVE) Source #
class FEAT_SVE2 ~ 'True => HasFEAT_SVE2 Source #
Instances
FEAT_SVE2 ~ 'True => HasFEAT_SVE2 Source # | |
Defined in System.CPUFeatures.Arm.Constraint.Unsafe |
class FEAT_WFxT ~ 'True => HasFEAT_WFxT Source #
Instances
FEAT_WFxT ~ 'True => HasFEAT_WFxT Source # | |
Defined in System.CPUFeatures.Arm.Constraint.Unsafe |