PrimOp

ghc-8.8.0.20190721: The GHC API

Safe Haskell | None
Language | Haskell2010

PrimOp

Synopsis

- data PrimOp
  - = CharGtOp
  - | CharGeOp
  - | CharEqOp
  - | CharNeOp
  - | CharLtOp
  - | CharLeOp
  - | OrdOp
  - | IntAddOp
  - | IntSubOp
  - | IntMulOp
  - | IntMulMayOfloOp
  - | IntQuotOp
  - | IntRemOp
  - | IntQuotRemOp
  - | AndIOp
  - | OrIOp
  - | XorIOp
  - | NotIOp
  - | IntNegOp
  - | IntAddCOp
  - | IntSubCOp
  - | IntGtOp
  - | IntGeOp
  - | IntEqOp
  - | IntNeOp
  - | IntLtOp
  - | IntLeOp
  - | ChrOp
  - | Int2WordOp
  - | Int2FloatOp
  - | Int2DoubleOp
  - | Word2FloatOp
  - | Word2DoubleOp
  - | ISllOp
  - | ISraOp
  - | ISrlOp
  - | Int8Extend
  - | Int8Narrow
  - | Int8NegOp
  - | Int8AddOp
  - | Int8SubOp
  - | Int8MulOp
  - | Int8QuotOp
  - | Int8RemOp
  - | Int8QuotRemOp
  - | Int8EqOp
  - | Int8GeOp
  - | Int8GtOp
  - | Int8LeOp
  - | Int8LtOp
  - | Int8NeOp
  - | Word8Extend
  - | Word8Narrow
  - | Word8NotOp
  - | Word8AddOp
  - | Word8SubOp
  - | Word8MulOp
  - | Word8QuotOp
  - | Word8RemOp
  - | Word8QuotRemOp
  - | Word8EqOp
  - | Word8GeOp
  - | Word8GtOp
  - | Word8LeOp
  - | Word8LtOp
  - | Word8NeOp
  - | Int16Extend
  - | Int16Narrow
  - | Int16NegOp
  - | Int16AddOp
  - | Int16SubOp
  - | Int16MulOp
  - | Int16QuotOp
  - | Int16RemOp
  - | Int16QuotRemOp
  - | Int16EqOp
  - | Int16GeOp
  - | Int16GtOp
  - | Int16LeOp
  - | Int16LtOp
  - | Int16NeOp
  - | Word16Extend
  - | Word16Narrow
  - | Word16NotOp
  - | Word16AddOp
  - | Word16SubOp
  - | Word16MulOp
  - | Word16QuotOp
  - | Word16RemOp
  - | Word16QuotRemOp
  - | Word16EqOp
  - | Word16GeOp
  - | Word16GtOp
  - | Word16LeOp
  - | Word16LtOp
  - | Word16NeOp
  - | WordAddOp
  - | WordAddCOp
  - | WordSubCOp
  - | WordAdd2Op
  - | WordSubOp
  - | WordMulOp
  - | WordMul2Op
  - | WordQuotOp
  - | WordRemOp
  - | WordQuotRemOp
  - | WordQuotRem2Op
  - | AndOp
  - | OrOp
  - | XorOp
  - | NotOp
  - | SllOp
  - | SrlOp
  - | Word2IntOp
  - | WordGtOp
  - | WordGeOp
  - | WordEqOp
  - | WordNeOp
  - | WordLtOp
  - | WordLeOp
  - | PopCnt8Op
  - | PopCnt16Op
  - | PopCnt32Op
  - | PopCnt64Op
  - | PopCntOp
  - | Pdep8Op
  - | Pdep16Op
  - | Pdep32Op
  - | Pdep64Op
  - | PdepOp
  - | Pext8Op
  - | Pext16Op
  - | Pext32Op
  - | Pext64Op
  - | PextOp
  - | Clz8Op
  - | Clz16Op
  - | Clz32Op
  - | Clz64Op
  - | ClzOp
  - | Ctz8Op
  - | Ctz16Op
  - | Ctz32Op
  - | Ctz64Op
  - | CtzOp
  - | BSwap16Op
  - | BSwap32Op
  - | BSwap64Op
  - | BSwapOp
  - | Narrow8IntOp
  - | Narrow16IntOp
  - | Narrow32IntOp
  - | Narrow8WordOp
  - | Narrow16WordOp
  - | Narrow32WordOp
  - | DoubleGtOp
  - | DoubleGeOp
  - | DoubleEqOp
  - | DoubleNeOp
  - | DoubleLtOp
  - | DoubleLeOp
  - | DoubleAddOp
  - | DoubleSubOp
  - | DoubleMulOp
  - | DoubleDivOp
  - | DoubleNegOp
  - | DoubleFabsOp
  - | Double2IntOp
  - | Double2FloatOp
  - | DoubleExpOp
  - | DoubleLogOp
  - | DoubleSqrtOp
  - | DoubleSinOp
  - | DoubleCosOp
  - | DoubleTanOp
  - | DoubleAsinOp
  - | DoubleAcosOp
  - | DoubleAtanOp
  - | DoubleSinhOp
  - | DoubleCoshOp
  - | DoubleTanhOp
  - | DoubleAsinhOp
  - | DoubleAcoshOp
  - | DoubleAtanhOp
  - | DoublePowerOp
  - | DoubleDecode_2IntOp
  - | DoubleDecode_Int64Op
  - | FloatGtOp
  - | FloatGeOp
  - | FloatEqOp
  - | FloatNeOp
  - | FloatLtOp
  - | FloatLeOp
  - | FloatAddOp
  - | FloatSubOp
  - | FloatMulOp
  - | FloatDivOp
  - | FloatNegOp
  - | FloatFabsOp
  - | Float2IntOp
  - | FloatExpOp
  - | FloatLogOp
  - | FloatSqrtOp
  - | FloatSinOp
  - | FloatCosOp
  - | FloatTanOp
  - | FloatAsinOp
  - | FloatAcosOp
  - | FloatAtanOp
  - | FloatSinhOp
  - | FloatCoshOp
  - | FloatTanhOp
  - | FloatAsinhOp
  - | FloatAcoshOp
  - | FloatAtanhOp
  - | FloatPowerOp
  - | Float2DoubleOp
  - | FloatDecode_IntOp
  - | NewArrayOp
  - | SameMutableArrayOp
  - | ReadArrayOp
  - | WriteArrayOp
  - | SizeofArrayOp
  - | SizeofMutableArrayOp
  - | IndexArrayOp
  - | UnsafeFreezeArrayOp
  - | UnsafeThawArrayOp
  - | CopyArrayOp
  - | CopyMutableArrayOp
  - | CloneArrayOp
  - | CloneMutableArrayOp
  - | FreezeArrayOp
  - | ThawArrayOp
  - | CasArrayOp
  - | NewSmallArrayOp
  - | SameSmallMutableArrayOp
  - | ReadSmallArrayOp
  - | WriteSmallArrayOp
  - | SizeofSmallArrayOp
  - | SizeofSmallMutableArrayOp
  - | IndexSmallArrayOp
  - | UnsafeFreezeSmallArrayOp
  - | UnsafeThawSmallArrayOp
  - | CopySmallArrayOp
  - | CopySmallMutableArrayOp
  - | CloneSmallArrayOp
  - | CloneSmallMutableArrayOp
  - | FreezeSmallArrayOp
  - | ThawSmallArrayOp
  - | CasSmallArrayOp
  - | NewByteArrayOp_Char
  - | NewPinnedByteArrayOp_Char
  - | NewAlignedPinnedByteArrayOp_Char
  - | MutableByteArrayIsPinnedOp
  - | ByteArrayIsPinnedOp
  - | ByteArrayContents_Char
  - | SameMutableByteArrayOp
  - | ShrinkMutableByteArrayOp_Char
  - | ResizeMutableByteArrayOp_Char
  - | UnsafeFreezeByteArrayOp
  - | SizeofByteArrayOp
  - | SizeofMutableByteArrayOp
  - | GetSizeofMutableByteArrayOp
  - | IndexByteArrayOp_Char
  - | IndexByteArrayOp_WideChar
  - | IndexByteArrayOp_Int
  - | IndexByteArrayOp_Word
  - | IndexByteArrayOp_Addr
  - | IndexByteArrayOp_Float
  - | IndexByteArrayOp_Double
  - | IndexByteArrayOp_StablePtr
  - | IndexByteArrayOp_Int8
  - | IndexByteArrayOp_Int16
  - | IndexByteArrayOp_Int32
  - | IndexByteArrayOp_Int64
  - | IndexByteArrayOp_Word8
  - | IndexByteArrayOp_Word16
  - | IndexByteArrayOp_Word32
  - | IndexByteArrayOp_Word64
  - | IndexByteArrayOp_Word8AsChar
  - | IndexByteArrayOp_Word8AsWideChar
  - | IndexByteArrayOp_Word8AsAddr
  - | IndexByteArrayOp_Word8AsFloat
  - | IndexByteArrayOp_Word8AsDouble
  - | IndexByteArrayOp_Word8AsStablePtr
  - | IndexByteArrayOp_Word8AsInt16
  - | IndexByteArrayOp_Word8AsInt32
  - | IndexByteArrayOp_Word8AsInt64
  - | IndexByteArrayOp_Word8AsInt
  - | IndexByteArrayOp_Word8AsWord16
  - | IndexByteArrayOp_Word8AsWord32
  - | IndexByteArrayOp_Word8AsWord64
  - | IndexByteArrayOp_Word8AsWord
  - | ReadByteArrayOp_Char
  - | ReadByteArrayOp_WideChar
  - | ReadByteArrayOp_Int
  - | ReadByteArrayOp_Word
  - | ReadByteArrayOp_Addr
  - | ReadByteArrayOp_Float
  - | ReadByteArrayOp_Double
  - | ReadByteArrayOp_StablePtr
  - | ReadByteArrayOp_Int8
  - | ReadByteArrayOp_Int16
  - | ReadByteArrayOp_Int32
  - | ReadByteArrayOp_Int64
  - | ReadByteArrayOp_Word8
  - | ReadByteArrayOp_Word16
  - | ReadByteArrayOp_Word32
  - | ReadByteArrayOp_Word64
  - | ReadByteArrayOp_Word8AsChar
  - | ReadByteArrayOp_Word8AsWideChar
  - | ReadByteArrayOp_Word8AsAddr
  - | ReadByteArrayOp_Word8AsFloat
  - | ReadByteArrayOp_Word8AsDouble
  - | ReadByteArrayOp_Word8AsStablePtr
  - | ReadByteArrayOp_Word8AsInt16
  - | ReadByteArrayOp_Word8AsInt32
  - | ReadByteArrayOp_Word8AsInt64
  - | ReadByteArrayOp_Word8AsInt
  - | ReadByteArrayOp_Word8AsWord16
  - | ReadByteArrayOp_Word8AsWord32
  - | ReadByteArrayOp_Word8AsWord64
  - | ReadByteArrayOp_Word8AsWord
  - | WriteByteArrayOp_Char
  - | WriteByteArrayOp_WideChar
  - | WriteByteArrayOp_Int
  - | WriteByteArrayOp_Word
  - | WriteByteArrayOp_Addr
  - | WriteByteArrayOp_Float
  - | WriteByteArrayOp_Double
  - | WriteByteArrayOp_StablePtr
  - | WriteByteArrayOp_Int8
  - | WriteByteArrayOp_Int16
  - | WriteByteArrayOp_Int32
  - | WriteByteArrayOp_Int64
  - | WriteByteArrayOp_Word8
  - | WriteByteArrayOp_Word16
  - | WriteByteArrayOp_Word32
  - | WriteByteArrayOp_Word64
  - | WriteByteArrayOp_Word8AsChar
  - | WriteByteArrayOp_Word8AsWideChar
  - | WriteByteArrayOp_Word8AsAddr
  - | WriteByteArrayOp_Word8AsFloat
  - | WriteByteArrayOp_Word8AsDouble
  - | WriteByteArrayOp_Word8AsStablePtr
  - | WriteByteArrayOp_Word8AsInt16
  - | WriteByteArrayOp_Word8AsInt32
  - | WriteByteArrayOp_Word8AsInt64
  - | WriteByteArrayOp_Word8AsInt
  - | WriteByteArrayOp_Word8AsWord16
  - | WriteByteArrayOp_Word8AsWord32
  - | WriteByteArrayOp_Word8AsWord64
  - | WriteByteArrayOp_Word8AsWord
  - | CompareByteArraysOp
  - | CopyByteArrayOp
  - | CopyMutableByteArrayOp
  - | CopyByteArrayToAddrOp
  - | CopyMutableByteArrayToAddrOp
  - | CopyAddrToByteArrayOp
  - | SetByteArrayOp
  - | AtomicReadByteArrayOp_Int
  - | AtomicWriteByteArrayOp_Int
  - | CasByteArrayOp_Int
  - | FetchAddByteArrayOp_Int
  - | FetchSubByteArrayOp_Int
  - | FetchAndByteArrayOp_Int
  - | FetchNandByteArrayOp_Int
  - | FetchOrByteArrayOp_Int
  - | FetchXorByteArrayOp_Int
  - | NewArrayArrayOp
  - | SameMutableArrayArrayOp
  - | UnsafeFreezeArrayArrayOp
  - | SizeofArrayArrayOp
  - | SizeofMutableArrayArrayOp
  - | IndexArrayArrayOp_ByteArray
  - | IndexArrayArrayOp_ArrayArray
  - | ReadArrayArrayOp_ByteArray
  - | ReadArrayArrayOp_MutableByteArray
  - | ReadArrayArrayOp_ArrayArray
  - | ReadArrayArrayOp_MutableArrayArray
  - | WriteArrayArrayOp_ByteArray
  - | WriteArrayArrayOp_MutableByteArray
  - | WriteArrayArrayOp_ArrayArray
  - | WriteArrayArrayOp_MutableArrayArray
  - | CopyArrayArrayOp
  - | CopyMutableArrayArrayOp
  - | AddrAddOp
  - | AddrSubOp
  - | AddrRemOp
  - | Addr2IntOp
  - | Int2AddrOp
  - | AddrGtOp
  - | AddrGeOp
  - | AddrEqOp
  - | AddrNeOp
  - | AddrLtOp
  - | AddrLeOp
  - | IndexOffAddrOp_Char
  - | IndexOffAddrOp_WideChar
  - | IndexOffAddrOp_Int
  - | IndexOffAddrOp_Word
  - | IndexOffAddrOp_Addr
  - | IndexOffAddrOp_Float
  - | IndexOffAddrOp_Double
  - | IndexOffAddrOp_StablePtr
  - | IndexOffAddrOp_Int8
  - | IndexOffAddrOp_Int16
  - | IndexOffAddrOp_Int32
  - | IndexOffAddrOp_Int64
  - | IndexOffAddrOp_Word8
  - | IndexOffAddrOp_Word16
  - | IndexOffAddrOp_Word32
  - | IndexOffAddrOp_Word64
  - | ReadOffAddrOp_Char
  - | ReadOffAddrOp_WideChar
  - | ReadOffAddrOp_Int
  - | ReadOffAddrOp_Word
  - | ReadOffAddrOp_Addr
  - | ReadOffAddrOp_Float
  - | ReadOffAddrOp_Double
  - | ReadOffAddrOp_StablePtr
  - | ReadOffAddrOp_Int8
  - | ReadOffAddrOp_Int16
  - | ReadOffAddrOp_Int32
  - | ReadOffAddrOp_Int64
  - | ReadOffAddrOp_Word8
  - | ReadOffAddrOp_Word16
  - | ReadOffAddrOp_Word32
  - | ReadOffAddrOp_Word64
  - | WriteOffAddrOp_Char
  - | WriteOffAddrOp_WideChar
  - | WriteOffAddrOp_Int
  - | WriteOffAddrOp_Word
  - | WriteOffAddrOp_Addr
  - | WriteOffAddrOp_Float
  - | WriteOffAddrOp_Double
  - | WriteOffAddrOp_StablePtr
  - | WriteOffAddrOp_Int8
  - | WriteOffAddrOp_Int16
  - | WriteOffAddrOp_Int32
  - | WriteOffAddrOp_Int64
  - | WriteOffAddrOp_Word8
  - | WriteOffAddrOp_Word16
  - | WriteOffAddrOp_Word32
  - | WriteOffAddrOp_Word64
  - | NewMutVarOp
  - | ReadMutVarOp
  - | WriteMutVarOp
  - | SameMutVarOp
  - | AtomicModifyMutVar2Op
  - | AtomicModifyMutVar_Op
  - | CasMutVarOp
  - | CatchOp
  - | RaiseOp
  - | RaiseIOOp
  - | MaskAsyncExceptionsOp
  - | MaskUninterruptibleOp
  - | UnmaskAsyncExceptionsOp
  - | MaskStatus
  - | AtomicallyOp
  - | RetryOp
  - | CatchRetryOp
  - | CatchSTMOp
  - | NewTVarOp
  - | ReadTVarOp
  - | ReadTVarIOOp
  - | WriteTVarOp
  - | SameTVarOp
  - | NewMVarOp
  - | TakeMVarOp
  - | TryTakeMVarOp
  - | PutMVarOp
  - | TryPutMVarOp
  - | ReadMVarOp
  - | TryReadMVarOp
  - | SameMVarOp
  - | IsEmptyMVarOp
  - | DelayOp
  - | WaitReadOp
  - | WaitWriteOp
  - | ForkOp
  - | ForkOnOp
  - | KillThreadOp
  - | YieldOp
  - | MyThreadIdOp
  - | LabelThreadOp
  - | IsCurrentThreadBoundOp
  - | NoDuplicateOp
  - | ThreadStatusOp
  - | MkWeakOp
  - | MkWeakNoFinalizerOp
  - | AddCFinalizerToWeakOp
  - | DeRefWeakOp
  - | FinalizeWeakOp
  - | TouchOp
  - | MakeStablePtrOp
  - | DeRefStablePtrOp
  - | EqStablePtrOp
  - | MakeStableNameOp
  - | EqStableNameOp
  - | StableNameToIntOp
  - | CompactNewOp
  - | CompactResizeOp
  - | CompactContainsOp
  - | CompactContainsAnyOp
  - | CompactGetFirstBlockOp
  - | CompactGetNextBlockOp
  - | CompactAllocateBlockOp
  - | CompactFixupPointersOp
  - | CompactAdd
  - | CompactAddWithSharing
  - | CompactSize
  - | ReallyUnsafePtrEqualityOp
  - | ParOp
  - | SparkOp
  - | SeqOp
  - | GetSparkOp
  - | NumSparks
  - | DataToTagOp
  - | TagToEnumOp
  - | AddrToAnyOp
  - | AnyToAddrOp
  - | MkApUpd0_Op
  - | NewBCOOp
  - | UnpackClosureOp
  - | GetApStackValOp
  - | GetCCSOfOp
  - | GetCurrentCCSOp
  - | ClearCCSOp
  - | TraceEventOp
  - | TraceEventBinaryOp
  - | TraceMarkerOp
  - | GetThreadAllocationCounter
  - | SetThreadAllocationCounter
  - | VecBroadcastOp PrimOpVecCat Length Width
  - | VecPackOp PrimOpVecCat Length Width
  - | VecUnpackOp PrimOpVecCat Length Width
  - | VecInsertOp PrimOpVecCat Length Width
  - | VecAddOp PrimOpVecCat Length Width
  - | VecSubOp PrimOpVecCat Length Width
  - | VecMulOp PrimOpVecCat Length Width
  - | VecDivOp PrimOpVecCat Length Width
  - | VecQuotOp PrimOpVecCat Length Width
  - | VecRemOp PrimOpVecCat Length Width
  - | VecNegOp PrimOpVecCat Length Width
  - | VecIndexByteArrayOp PrimOpVecCat Length Width
  - | VecReadByteArrayOp PrimOpVecCat Length Width
  - | VecWriteByteArrayOp PrimOpVecCat Length Width
  - | VecIndexOffAddrOp PrimOpVecCat Length Width
  - | VecReadOffAddrOp PrimOpVecCat Length Width
  - | VecWriteOffAddrOp PrimOpVecCat Length Width
  - | VecIndexScalarByteArrayOp PrimOpVecCat Length Width
  - | VecReadScalarByteArrayOp PrimOpVecCat Length Width
  - | VecWriteScalarByteArrayOp PrimOpVecCat Length Width
  - | VecIndexScalarOffAddrOp PrimOpVecCat Length Width
  - | VecReadScalarOffAddrOp PrimOpVecCat Length Width
  - | VecWriteScalarOffAddrOp PrimOpVecCat Length Width
  - | PrefetchByteArrayOp3
  - | PrefetchMutableByteArrayOp3
  - | PrefetchAddrOp3
  - | PrefetchValueOp3
  - | PrefetchByteArrayOp2
  - | PrefetchMutableByteArrayOp2
  - | PrefetchAddrOp2
  - | PrefetchValueOp2
  - | PrefetchByteArrayOp1
  - | PrefetchMutableByteArrayOp1
  - | PrefetchAddrOp1
  - | PrefetchValueOp1
  - | PrefetchByteArrayOp0
  - | PrefetchMutableByteArrayOp0
  - | PrefetchAddrOp0
  - | PrefetchValueOp0
- data PrimOpVecCat
  - = IntVec
  - | WordVec
  - | FloatVec
- allThePrimOps :: [PrimOp]
- primOpType :: PrimOp -> Type
- primOpSig :: PrimOp -> ([TyVar], [Type], Type, Arity, StrictSig)
- primOpTag :: PrimOp -> Int
- maxPrimOpTag :: Int
- primOpOcc :: PrimOp -> OccName
- primOpWrapperId :: PrimOp -> Id
- tagToEnumKey :: Unique
- primOpOutOfLine :: PrimOp -> Bool
- primOpCodeSize :: PrimOp -> Int
- primOpOkForSpeculation :: PrimOp -> Bool
- primOpOkForSideEffects :: PrimOp -> Bool
- primOpIsCheap :: PrimOp -> Bool
- primOpFixity :: PrimOp -> Maybe Fixity
- getPrimOpResultInfo :: PrimOp -> PrimOpResultInfo
- isComparisonPrimOp :: PrimOp -> Bool
- data PrimOpResultInfo
  - = ReturnsPrim PrimRep
  - | ReturnsAlg TyCon
- data PrimCall = PrimCall CLabelString UnitId

# Documentation

data PrimOp Source #

Constructors

CharGtOp |
CharGeOp |
CharEqOp |
CharNeOp |
CharLtOp |
CharLeOp |
OrdOp |
IntAddOp |
IntSubOp |
IntMulOp |
IntMulMayOfloOp |
IntQuotOp |
IntRemOp |
IntQuotRemOp |
AndIOp |
OrIOp |
XorIOp |
NotIOp |
IntNegOp |
IntAddCOp |
IntSubCOp |
IntGtOp |
IntGeOp |
IntEqOp |
IntNeOp |
IntLtOp |
IntLeOp |
ChrOp |
Int2WordOp |
Int2FloatOp |
Int2DoubleOp |
Word2FloatOp |
Word2DoubleOp |
ISllOp |
ISraOp |
ISrlOp |
Int8Extend |
Int8Narrow |
Int8NegOp |
Int8AddOp |
Int8SubOp |
Int8MulOp |
Int8QuotOp |
Int8RemOp |
Int8QuotRemOp |
Int8EqOp |
Int8GeOp |
Int8GtOp |
Int8LeOp |
Int8LtOp |
Int8NeOp |
Word8Extend |
Word8Narrow |
Word8NotOp |
Word8AddOp |
Word8SubOp |
Word8MulOp |
Word8QuotOp |
Word8RemOp |
Word8QuotRemOp |
Word8EqOp |
Word8GeOp |
Word8GtOp |
Word8LeOp |
Word8LtOp |
Word8NeOp |
Int16Extend |
Int16Narrow |
Int16NegOp |
Int16AddOp |
Int16SubOp |
Int16MulOp |
Int16QuotOp |
Int16RemOp |
Int16QuotRemOp |
Int16EqOp |
Int16GeOp |
Int16GtOp |
Int16LeOp |
Int16LtOp |
Int16NeOp |
Word16Extend |
Word16Narrow |
Word16NotOp |
Word16AddOp |
Word16SubOp |
Word16MulOp |
Word16QuotOp |
Word16RemOp |
Word16QuotRemOp |
Word16EqOp |
Word16GeOp |
Word16GtOp |
Word16LeOp |
Word16LtOp |
Word16NeOp |
WordAddOp |
WordAddCOp |
WordSubCOp |
WordAdd2Op |
WordSubOp |
WordMulOp |
WordMul2Op |
WordQuotOp |
WordRemOp |
WordQuotRemOp |
WordQuotRem2Op |
AndOp |
OrOp |
XorOp |
NotOp |
SllOp |
SrlOp |
Word2IntOp |
WordGtOp |
WordGeOp |
WordEqOp |
WordNeOp |
WordLtOp |
WordLeOp |
PopCnt8Op |
PopCnt16Op |
PopCnt32Op |
PopCnt64Op |
PopCntOp |
Pdep8Op |
Pdep16Op |
Pdep32Op |
Pdep64Op |
PdepOp |
Pext8Op |
Pext16Op |
Pext32Op |
Pext64Op |
PextOp |
Clz8Op |
Clz16Op |
Clz32Op |
Clz64Op |
ClzOp |
Ctz8Op |
Ctz16Op |
Ctz32Op |
Ctz64Op |
CtzOp |
BSwap16Op |
BSwap32Op |
BSwap64Op |
BSwapOp |
Narrow8IntOp |
Narrow16IntOp |
Narrow32IntOp |
Narrow8WordOp |
Narrow16WordOp |
Narrow32WordOp |
DoubleGtOp |
DoubleGeOp |
DoubleEqOp |
DoubleNeOp |
DoubleLtOp |
DoubleLeOp |
DoubleAddOp |
DoubleSubOp |
DoubleMulOp |
DoubleDivOp |
DoubleNegOp |
DoubleFabsOp |
Double2IntOp |
Double2FloatOp |
DoubleExpOp |
DoubleLogOp |
DoubleSqrtOp |
DoubleSinOp |
DoubleCosOp |
DoubleTanOp |
DoubleAsinOp |
DoubleAcosOp |
DoubleAtanOp |
DoubleSinhOp |
DoubleCoshOp |
DoubleTanhOp |
DoubleAsinhOp |
DoubleAcoshOp |
DoubleAtanhOp |
DoublePowerOp |
DoubleDecode_2IntOp |
DoubleDecode_Int64Op |
FloatGtOp |
FloatGeOp |
FloatEqOp |
FloatNeOp |
FloatLtOp |
FloatLeOp |
FloatAddOp |
FloatSubOp |
FloatMulOp |
FloatDivOp |
FloatNegOp |
FloatFabsOp |
Float2IntOp |
FloatExpOp |
FloatLogOp |
FloatSqrtOp |
FloatSinOp |
FloatCosOp |
FloatTanOp |
FloatAsinOp |
FloatAcosOp |
FloatAtanOp |
FloatSinhOp |
FloatCoshOp |
FloatTanhOp |
FloatAsinhOp |
FloatAcoshOp |
FloatAtanhOp |
FloatPowerOp |
Float2DoubleOp |
FloatDecode_IntOp |
NewArrayOp |
SameMutableArrayOp |
ReadArrayOp |
WriteArrayOp |
SizeofArrayOp |
SizeofMutableArrayOp |
IndexArrayOp |
UnsafeFreezeArrayOp |
UnsafeThawArrayOp |
CopyArrayOp |
CopyMutableArrayOp |
CloneArrayOp |
CloneMutableArrayOp |
FreezeArrayOp |
ThawArrayOp |
CasArrayOp |
NewSmallArrayOp |
SameSmallMutableArrayOp |
ReadSmallArrayOp |
WriteSmallArrayOp |
SizeofSmallArrayOp |
SizeofSmallMutableArrayOp |
IndexSmallArrayOp |
UnsafeFreezeSmallArrayOp |
UnsafeThawSmallArrayOp |
CopySmallArrayOp |
CopySmallMutableArrayOp |
CloneSmallArrayOp |
CloneSmallMutableArrayOp |
FreezeSmallArrayOp |
ThawSmallArrayOp |
CasSmallArrayOp |
NewByteArrayOp_Char |
NewPinnedByteArrayOp_Char |
NewAlignedPinnedByteArrayOp_Char |
MutableByteArrayIsPinnedOp |
ByteArrayIsPinnedOp |
ByteArrayContents_Char |
SameMutableByteArrayOp |
ShrinkMutableByteArrayOp_Char |
ResizeMutableByteArrayOp_Char |
UnsafeFreezeByteArrayOp |
SizeofByteArrayOp |
SizeofMutableByteArrayOp |
GetSizeofMutableByteArrayOp |
IndexByteArrayOp_Char |
IndexByteArrayOp_WideChar |
IndexByteArrayOp_Int |
IndexByteArrayOp_Word |
IndexByteArrayOp_Addr |
IndexByteArrayOp_Float |
IndexByteArrayOp_Double |
IndexByteArrayOp_StablePtr |
IndexByteArrayOp_Int8 |
IndexByteArrayOp_Int16 |
IndexByteArrayOp_Int32 |
IndexByteArrayOp_Int64 |
IndexByteArrayOp_Word8 |
IndexByteArrayOp_Word16 |
IndexByteArrayOp_Word32 |
IndexByteArrayOp_Word64 |
IndexByteArrayOp_Word8AsChar |
IndexByteArrayOp_Word8AsWideChar |
IndexByteArrayOp_Word8AsAddr |
IndexByteArrayOp_Word8AsFloat |
IndexByteArrayOp_Word8AsDouble |
IndexByteArrayOp_Word8AsStablePtr |
IndexByteArrayOp_Word8AsInt16 |
IndexByteArrayOp_Word8AsInt32 |
IndexByteArrayOp_Word8AsInt64 |
IndexByteArrayOp_Word8AsInt |
IndexByteArrayOp_Word8AsWord16 |
IndexByteArrayOp_Word8AsWord32 |
IndexByteArrayOp_Word8AsWord64 |
IndexByteArrayOp_Word8AsWord |
ReadByteArrayOp_Char |
ReadByteArrayOp_WideChar |
ReadByteArrayOp_Int |
ReadByteArrayOp_Word |
ReadByteArrayOp_Addr |
ReadByteArrayOp_Float |
ReadByteArrayOp_Double |
ReadByteArrayOp_StablePtr |
ReadByteArrayOp_Int8 |
ReadByteArrayOp_Int16 |
ReadByteArrayOp_Int32 |
ReadByteArrayOp_Int64 |
ReadByteArrayOp_Word8 |
ReadByteArrayOp_Word16 |
ReadByteArrayOp_Word32 |
ReadByteArrayOp_Word64 |
ReadByteArrayOp_Word8AsChar |
ReadByteArrayOp_Word8AsWideChar |
ReadByteArrayOp_Word8AsAddr |
ReadByteArrayOp_Word8AsFloat |
ReadByteArrayOp_Word8AsDouble |
ReadByteArrayOp_Word8AsStablePtr |
ReadByteArrayOp_Word8AsInt16 |
ReadByteArrayOp_Word8AsInt32 |
ReadByteArrayOp_Word8AsInt64 |
ReadByteArrayOp_Word8AsInt |
ReadByteArrayOp_Word8AsWord16 |
ReadByteArrayOp_Word8AsWord32 |
ReadByteArrayOp_Word8AsWord64 |
ReadByteArrayOp_Word8AsWord |
WriteByteArrayOp_Char |
WriteByteArrayOp_WideChar |
WriteByteArrayOp_Int |
WriteByteArrayOp_Word |
WriteByteArrayOp_Addr |
WriteByteArrayOp_Float |
WriteByteArrayOp_Double |
WriteByteArrayOp_StablePtr |
WriteByteArrayOp_Int8 |
WriteByteArrayOp_Int16 |
WriteByteArrayOp_Int32 |
WriteByteArrayOp_Int64 |
WriteByteArrayOp_Word8 |
WriteByteArrayOp_Word16 |
WriteByteArrayOp_Word32 |
WriteByteArrayOp_Word64 |
WriteByteArrayOp_Word8AsChar |
WriteByteArrayOp_Word8AsWideChar |
WriteByteArrayOp_Word8AsAddr |
WriteByteArrayOp_Word8AsFloat |
WriteByteArrayOp_Word8AsDouble |
WriteByteArrayOp_Word8AsStablePtr |
WriteByteArrayOp_Word8AsInt16 |
WriteByteArrayOp_Word8AsInt32 |
WriteByteArrayOp_Word8AsInt64 |
WriteByteArrayOp_Word8AsInt |
WriteByteArrayOp_Word8AsWord16 |
WriteByteArrayOp_Word8AsWord32 |
WriteByteArrayOp_Word8AsWord64 |
WriteByteArrayOp_Word8AsWord |
CompareByteArraysOp |
CopyByteArrayOp |
CopyMutableByteArrayOp |
CopyByteArrayToAddrOp |
CopyMutableByteArrayToAddrOp |
CopyAddrToByteArrayOp |
SetByteArrayOp |
AtomicReadByteArrayOp_Int |
AtomicWriteByteArrayOp_Int |
CasByteArrayOp_Int |
FetchAddByteArrayOp_Int |
FetchSubByteArrayOp_Int |
FetchAndByteArrayOp_Int |
FetchNandByteArrayOp_Int |
FetchOrByteArrayOp_Int |
FetchXorByteArrayOp_Int |
NewArrayArrayOp |
SameMutableArrayArrayOp |
UnsafeFreezeArrayArrayOp |
SizeofArrayArrayOp |
SizeofMutableArrayArrayOp |
IndexArrayArrayOp_ByteArray |
IndexArrayArrayOp_ArrayArray |
ReadArrayArrayOp_ByteArray |
ReadArrayArrayOp_MutableByteArray |
ReadArrayArrayOp_ArrayArray |
ReadArrayArrayOp_MutableArrayArray |
WriteArrayArrayOp_ByteArray |
WriteArrayArrayOp_MutableByteArray |
WriteArrayArrayOp_ArrayArray |
WriteArrayArrayOp_MutableArrayArray |
CopyArrayArrayOp |
CopyMutableArrayArrayOp |
AddrAddOp |
AddrSubOp |
AddrRemOp |
Addr2IntOp |
Int2AddrOp |
AddrGtOp |
AddrGeOp |
AddrEqOp |
AddrNeOp |
AddrLtOp |
AddrLeOp |
IndexOffAddrOp_Char |
IndexOffAddrOp_WideChar |
IndexOffAddrOp_Int |
IndexOffAddrOp_Word |
IndexOffAddrOp_Addr |
IndexOffAddrOp_Float |
IndexOffAddrOp_Double |
IndexOffAddrOp_StablePtr |
IndexOffAddrOp_Int8 |
IndexOffAddrOp_Int16 |
IndexOffAddrOp_Int32 |
IndexOffAddrOp_Int64 |
IndexOffAddrOp_Word8 |
IndexOffAddrOp_Word16 |
IndexOffAddrOp_Word32 |
IndexOffAddrOp_Word64 |
ReadOffAddrOp_Char |
ReadOffAddrOp_WideChar |
ReadOffAddrOp_Int |
ReadOffAddrOp_Word |
ReadOffAddrOp_Addr |
ReadOffAddrOp_Float |
ReadOffAddrOp_Double |
ReadOffAddrOp_StablePtr |
ReadOffAddrOp_Int8 |
ReadOffAddrOp_Int16 |
ReadOffAddrOp_Int32 |
ReadOffAddrOp_Int64 |
ReadOffAddrOp_Word8 |
ReadOffAddrOp_Word16 |
ReadOffAddrOp_Word32 |
ReadOffAddrOp_Word64 |
WriteOffAddrOp_Char |
WriteOffAddrOp_WideChar |
WriteOffAddrOp_Int |
WriteOffAddrOp_Word |
WriteOffAddrOp_Addr |
WriteOffAddrOp_Float |
WriteOffAddrOp_Double |
WriteOffAddrOp_StablePtr |
WriteOffAddrOp_Int8 |
WriteOffAddrOp_Int16 |
WriteOffAddrOp_Int32 |
WriteOffAddrOp_Int64 |
WriteOffAddrOp_Word8 |
WriteOffAddrOp_Word16 |
WriteOffAddrOp_Word32 |
WriteOffAddrOp_Word64 |
NewMutVarOp |
ReadMutVarOp |
WriteMutVarOp |
SameMutVarOp |
AtomicModifyMutVar2Op |
AtomicModifyMutVar_Op |
CasMutVarOp |
CatchOp |
RaiseOp |
RaiseIOOp |
MaskAsyncExceptionsOp |
MaskUninterruptibleOp |
UnmaskAsyncExceptionsOp |
MaskStatus |
AtomicallyOp |
RetryOp |
CatchRetryOp |
CatchSTMOp |
NewTVarOp |
ReadTVarOp |
ReadTVarIOOp |
WriteTVarOp |
SameTVarOp |
NewMVarOp |
TakeMVarOp |
TryTakeMVarOp |
PutMVarOp |
TryPutMVarOp |
ReadMVarOp |
TryReadMVarOp |
SameMVarOp |
IsEmptyMVarOp |
DelayOp |
WaitReadOp |
WaitWriteOp |
ForkOp |
ForkOnOp |
KillThreadOp |
YieldOp |
MyThreadIdOp |
LabelThreadOp |
IsCurrentThreadBoundOp |
NoDuplicateOp |
ThreadStatusOp |
MkWeakOp |
MkWeakNoFinalizerOp |
AddCFinalizerToWeakOp |
DeRefWeakOp |
FinalizeWeakOp |
TouchOp |
MakeStablePtrOp |
DeRefStablePtrOp |
EqStablePtrOp |
MakeStableNameOp |
EqStableNameOp |
StableNameToIntOp |
CompactNewOp |
CompactResizeOp |
CompactContainsOp |
CompactContainsAnyOp |
CompactGetFirstBlockOp |
CompactGetNextBlockOp |
CompactAllocateBlockOp |
CompactFixupPointersOp |
CompactAdd |
CompactAddWithSharing |
CompactSize |
ReallyUnsafePtrEqualityOp |
ParOp |
SparkOp |
SeqOp |
GetSparkOp |
NumSparks |
DataToTagOp |
TagToEnumOp |
AddrToAnyOp |
AnyToAddrOp |
MkApUpd0_Op |
NewBCOOp |
UnpackClosureOp |
GetApStackValOp |
GetCCSOfOp |
GetCurrentCCSOp |
ClearCCSOp |
TraceEventOp |
TraceEventBinaryOp |
TraceMarkerOp |
GetThreadAllocationCounter |
SetThreadAllocationCounter |
VecBroadcastOp PrimOpVecCat Length Width |
VecPackOp PrimOpVecCat Length Width |
VecUnpackOp PrimOpVecCat Length Width |
VecInsertOp PrimOpVecCat Length Width |
VecAddOp PrimOpVecCat Length Width |
VecSubOp PrimOpVecCat Length Width |
VecMulOp PrimOpVecCat Length Width |
VecDivOp PrimOpVecCat Length Width |
VecQuotOp PrimOpVecCat Length Width |
VecRemOp PrimOpVecCat Length Width |
VecNegOp PrimOpVecCat Length Width |
VecIndexByteArrayOp PrimOpVecCat Length Width |
VecReadByteArrayOp PrimOpVecCat Length Width |
VecWriteByteArrayOp PrimOpVecCat Length Width |
VecIndexOffAddrOp PrimOpVecCat Length Width |
VecReadOffAddrOp PrimOpVecCat Length Width |
VecWriteOffAddrOp PrimOpVecCat Length Width |
VecIndexScalarByteArrayOp PrimOpVecCat Length Width |
VecReadScalarByteArrayOp PrimOpVecCat Length Width |
VecWriteScalarByteArrayOp PrimOpVecCat Length Width |
VecIndexScalarOffAddrOp PrimOpVecCat Length Width |
VecReadScalarOffAddrOp PrimOpVecCat Length Width |
VecWriteScalarOffAddrOp PrimOpVecCat Length Width |
PrefetchByteArrayOp3 |
PrefetchMutableByteArrayOp3 |
PrefetchAddrOp3 |
PrefetchValueOp3 |
PrefetchByteArrayOp2 |
PrefetchMutableByteArrayOp2 |
PrefetchAddrOp2 |
PrefetchValueOp2 |
PrefetchByteArrayOp1 |
PrefetchMutableByteArrayOp1 |
PrefetchAddrOp1 |
PrefetchValueOp1 |
PrefetchByteArrayOp0 |
PrefetchMutableByteArrayOp0 |
PrefetchAddrOp0 |
PrefetchValueOp0 |

#### Instances

Instances details

Eq PrimOp # |
Instance details Defined in PrimOp Methods (==) :: PrimOp -> PrimOp -> Bool # (/=) :: PrimOp -> PrimOp -> Bool #
Ord PrimOp # |
Instance details Defined in PrimOp Methods compare :: PrimOp -> PrimOp -> Ordering # (<) :: PrimOp -> PrimOp -> Bool # (<=) :: PrimOp -> PrimOp -> Bool # (>) :: PrimOp -> PrimOp -> Bool # (>=) :: PrimOp -> PrimOp -> Bool # max :: PrimOp -> PrimOp -> PrimOp # min :: PrimOp -> PrimOp -> PrimOp #
Outputable PrimOp # |
Instance details Defined in PrimOp Methods ppr :: PrimOp -> SDoc Source # pprPrec :: Rational -> PrimOp -> SDoc Source #

data PrimOpVecCat Source #

Constructors

IntVec |
WordVec |
FloatVec |

allThePrimOps :: [PrimOp] Source #

primOpType :: PrimOp -> Type Source #

primOpSig :: PrimOp -> ([TyVar], [Type], Type, Arity, StrictSig) Source #

primOpTag :: PrimOp -> Int Source #

maxPrimOpTag :: Int Source #

primOpOcc :: PrimOp -> OccName Source #

primOpWrapperId :: PrimOp -> Id Source #

Returns the `Id` of the wrapper associated with the given `PrimOp`. See Note [Primop wrappers].

tagToEnumKey :: Unique Source #

primOpOutOfLine :: PrimOp -> Bool Source #

primOpCodeSize :: PrimOp -> Int Source #

primOpOkForSpeculation :: PrimOp -> Bool Source #

primOpOkForSideEffects :: PrimOp -> Bool Source #

primOpIsCheap :: PrimOp -> Bool Source #

primOpFixity :: PrimOp -> Maybe Fixity Source #

getPrimOpResultInfo :: PrimOp -> PrimOpResultInfo Source #

isComparisonPrimOp :: PrimOp -> Bool Source #

data PrimOpResultInfo Source #

Constructors

ReturnsPrim PrimRep |
ReturnsAlg TyCon |

data PrimCall Source #

Constructors

PrimCall CLabelString UnitId |

#### Instances

Instances details

Outputable PrimCall # |
Instance details Defined in PrimOp Methods ppr :: PrimCall -> SDoc Source # pprPrec :: Rational -> PrimCall -> SDoc Source #