cpu-features-0.1.0.0: A library to detect CPU features
Safe HaskellNone
LanguageGHC2021

System.CPUFeatures.Arm.TypeBool

Description

This module provides the type-level interface to detect CPU features. You can mark your function with <FEATURE NAME> ~ True => to indicate that it requires a specific CPU feature. You can detect the availability and get the constraint <FEATURE NAME> ~ True by pattern-matching on the variable s<FEATURE NAME>.

Example:

-- This function requires FEAT_PMULL
someFunction :: FEAT_PMULL ~ True => ...

case sFEAT_PMULL of
  STrue -> {- In this branch, FEAT_PMULL is True -} someFunction
  SFalse -> {- In this branch, FEAT_PMULL is False -} error "FEAT_PMULL not available"

Documentation

type family FEAT_AES :: Bool Source #

type family FEAT_AFP :: Bool Source #

type family FEAT_BF16 :: Bool Source #

type family FEAT_BTI :: Bool Source #

type family FEAT_CSV2 :: Bool Source #

type family FEAT_CSV3 :: Bool Source #

type family FEAT_DIT :: Bool Source #

type family FEAT_DotProd :: Bool Source #

type family FEAT_DPB :: Bool Source #

type family FEAT_DPB2 :: Bool Source #

type family FEAT_ECV :: Bool Source #

type family FEAT_FCMA :: Bool Source #

type family FEAT_FHM :: Bool Source #

type family FEAT_FlagM :: Bool Source #

type family FEAT_FlagM2 :: Bool Source #

type family FEAT_FP16 :: Bool Source #

type family FEAT_FPAC :: Bool Source #

type family FEAT_FRINTTS :: Bool Source #

type family FEAT_I8MM :: Bool Source #

type family FEAT_JSCVT :: Bool Source #

type family FEAT_LRCPC :: Bool Source #

type family FEAT_LRCPC2 :: Bool Source #

type family FEAT_LSE :: Bool Source #

type family FEAT_LSE2 :: Bool Source #

type family FEAT_PAuth :: Bool Source #

type family FEAT_PAuth2 :: Bool Source #

type family FEAT_PMULL :: Bool Source #

type family FEAT_RDM :: Bool Source #

type family FEAT_RPRES :: Bool Source #

type family FEAT_SB :: Bool Source #

type family FEAT_SHA1 :: Bool Source #

type family FEAT_SHA256 :: Bool Source #

type family FEAT_SHA3 :: Bool Source #

type family FEAT_SHA512 :: Bool Source #

type family FEAT_SME :: Bool Source #

type family FEAT_SME_F64F64 :: Bool Source #

type family FEAT_SME_I16I64 :: Bool Source #

type family FEAT_SME2 :: Bool Source #

type family FEAT_SPECRES :: Bool Source #

type family FEAT_SSBS :: Bool Source #

type family FEAT_SVE :: Bool Source #

type family FEAT_SVE2 :: Bool Source #

type family FEAT_WFxT :: Bool Source #

data SBool (x :: Bool) where Source #

Constructors

STrue :: SBool 'True 
SFalse :: SBool 'False