ghc-9.6.0.20230302: The GHC API
Safe HaskellSafe-Inferred
LanguageHaskell2010

GHC.Builtin.PrimOps

Synopsis

Documentation

data PrimOp Source #

Constructors

CharGtOp 
CharGeOp 
CharEqOp 
CharNeOp 
CharLtOp 
CharLeOp 
OrdOp 
Int8ToIntOp 
IntToInt8Op 
Int8NegOp 
Int8AddOp 
Int8SubOp 
Int8MulOp 
Int8QuotOp 
Int8RemOp 
Int8QuotRemOp 
Int8SllOp 
Int8SraOp 
Int8SrlOp 
Int8ToWord8Op 
Int8EqOp 
Int8GeOp 
Int8GtOp 
Int8LeOp 
Int8LtOp 
Int8NeOp 
Word8ToWordOp 
WordToWord8Op 
Word8AddOp 
Word8SubOp 
Word8MulOp 
Word8QuotOp 
Word8RemOp 
Word8QuotRemOp 
Word8AndOp 
Word8OrOp 
Word8XorOp 
Word8NotOp 
Word8SllOp 
Word8SrlOp 
Word8ToInt8Op 
Word8EqOp 
Word8GeOp 
Word8GtOp 
Word8LeOp 
Word8LtOp 
Word8NeOp 
Int16ToIntOp 
IntToInt16Op 
Int16NegOp 
Int16AddOp 
Int16SubOp 
Int16MulOp 
Int16QuotOp 
Int16RemOp 
Int16QuotRemOp 
Int16SllOp 
Int16SraOp 
Int16SrlOp 
Int16ToWord16Op 
Int16EqOp 
Int16GeOp 
Int16GtOp 
Int16LeOp 
Int16LtOp 
Int16NeOp 
Word16ToWordOp 
WordToWord16Op 
Word16AddOp 
Word16SubOp 
Word16MulOp 
Word16QuotOp 
Word16RemOp 
Word16QuotRemOp 
Word16AndOp 
Word16OrOp 
Word16XorOp 
Word16NotOp 
Word16SllOp 
Word16SrlOp 
Word16ToInt16Op 
Word16EqOp 
Word16GeOp 
Word16GtOp 
Word16LeOp 
Word16LtOp 
Word16NeOp 
Int32ToIntOp 
IntToInt32Op 
Int32NegOp 
Int32AddOp 
Int32SubOp 
Int32MulOp 
Int32QuotOp 
Int32RemOp 
Int32QuotRemOp 
Int32SllOp 
Int32SraOp 
Int32SrlOp 
Int32ToWord32Op 
Int32EqOp 
Int32GeOp 
Int32GtOp 
Int32LeOp 
Int32LtOp 
Int32NeOp 
Word32ToWordOp 
WordToWord32Op 
Word32AddOp 
Word32SubOp 
Word32MulOp 
Word32QuotOp 
Word32RemOp 
Word32QuotRemOp 
Word32AndOp 
Word32OrOp 
Word32XorOp 
Word32NotOp 
Word32SllOp 
Word32SrlOp 
Word32ToInt32Op 
Word32EqOp 
Word32GeOp 
Word32GtOp 
Word32LeOp 
Word32LtOp 
Word32NeOp 
Int64ToIntOp 
IntToInt64Op 
Int64NegOp 
Int64AddOp 
Int64SubOp 
Int64MulOp 
Int64QuotOp 
Int64RemOp 
Int64SllOp 
Int64SraOp 
Int64SrlOp 
Int64ToWord64Op 
Int64EqOp 
Int64GeOp 
Int64GtOp 
Int64LeOp 
Int64LtOp 
Int64NeOp 
Word64ToWordOp 
WordToWord64Op 
Word64AddOp 
Word64SubOp 
Word64MulOp 
Word64QuotOp 
Word64RemOp 
Word64AndOp 
Word64OrOp 
Word64XorOp 
Word64NotOp 
Word64SllOp 
Word64SrlOp 
Word64ToInt64Op 
Word64EqOp 
Word64GeOp 
Word64GtOp 
Word64LeOp 
Word64LtOp 
Word64NeOp 
IntAddOp 
IntSubOp 
IntMulOp 
IntMul2Op 
IntMulMayOfloOp 
IntQuotOp 
IntRemOp 
IntQuotRemOp 
IntAndOp 
IntOrOp 
IntXorOp 
IntNotOp 
IntNegOp 
IntAddCOp 
IntSubCOp 
IntGtOp 
IntGeOp 
IntEqOp 
IntNeOp 
IntLtOp 
IntLeOp 
ChrOp 
IntToWordOp 
IntToFloatOp 
IntToDoubleOp 
WordToFloatOp 
WordToDoubleOp 
IntSllOp 
IntSraOp 
IntSrlOp 
WordAddOp 
WordAddCOp 
WordSubCOp 
WordAdd2Op 
WordSubOp 
WordMulOp 
WordMul2Op 
WordQuotOp 
WordRemOp 
WordQuotRemOp 
WordQuotRem2Op 
WordAndOp 
WordOrOp 
WordXorOp 
WordNotOp 
WordSllOp 
WordSrlOp 
WordToIntOp 
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 
BRev8Op 
BRev16Op 
BRev32Op 
BRev64Op 
BRevOp 
Narrow8IntOp 
Narrow16IntOp 
Narrow32IntOp 
Narrow8WordOp 
Narrow16WordOp 
Narrow32WordOp 
DoubleGtOp 
DoubleGeOp 
DoubleEqOp 
DoubleNeOp 
DoubleLtOp 
DoubleLeOp 
DoubleAddOp 
DoubleSubOp 
DoubleMulOp 
DoubleDivOp 
DoubleNegOp 
DoubleFabsOp 
DoubleToIntOp 
DoubleToFloatOp 
DoubleExpOp 
DoubleExpM1Op 
DoubleLogOp 
DoubleLog1POp 
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 
FloatToIntOp 
FloatExpOp 
FloatExpM1Op 
FloatLogOp 
FloatLog1POp 
FloatSqrtOp 
FloatSinOp 
FloatCosOp 
FloatTanOp 
FloatAsinOp 
FloatAcosOp 
FloatAtanOp 
FloatSinhOp 
FloatCoshOp 
FloatTanhOp 
FloatAsinhOp 
FloatAcoshOp 
FloatAtanhOp 
FloatPowerOp 
FloatToDoubleOp 
FloatDecode_IntOp 
NewArrayOp 
ReadArrayOp 
WriteArrayOp 
SizeofArrayOp 
SizeofMutableArrayOp 
IndexArrayOp 
UnsafeFreezeArrayOp 
UnsafeThawArrayOp 
CopyArrayOp 
CopyMutableArrayOp 
CloneArrayOp 
CloneMutableArrayOp 
FreezeArrayOp 
ThawArrayOp 
CasArrayOp 
NewSmallArrayOp 
ShrinkSmallMutableArrayOp_Char 
ReadSmallArrayOp 
WriteSmallArrayOp 
SizeofSmallArrayOp 
SizeofSmallMutableArrayOp 
GetSizeofSmallMutableArrayOp 
IndexSmallArrayOp 
UnsafeFreezeSmallArrayOp 
UnsafeThawSmallArrayOp 
CopySmallArrayOp 
CopySmallMutableArrayOp 
CloneSmallArrayOp 
CloneSmallMutableArrayOp 
FreezeSmallArrayOp 
ThawSmallArrayOp 
CasSmallArrayOp 
NewByteArrayOp_Char 
NewPinnedByteArrayOp_Char 
NewAlignedPinnedByteArrayOp_Char 
MutableByteArrayIsPinnedOp 
ByteArrayIsPinnedOp 
ByteArrayContents_Char 
MutableByteArrayContents_Char 
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_Word8AsInt 
IndexByteArrayOp_Word8AsWord 
IndexByteArrayOp_Word8AsAddr 
IndexByteArrayOp_Word8AsFloat 
IndexByteArrayOp_Word8AsDouble 
IndexByteArrayOp_Word8AsStablePtr 
IndexByteArrayOp_Word8AsInt16 
IndexByteArrayOp_Word8AsInt32 
IndexByteArrayOp_Word8AsInt64 
IndexByteArrayOp_Word8AsWord16 
IndexByteArrayOp_Word8AsWord32 
IndexByteArrayOp_Word8AsWord64 
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_Word8AsInt 
ReadByteArrayOp_Word8AsWord 
ReadByteArrayOp_Word8AsAddr 
ReadByteArrayOp_Word8AsFloat 
ReadByteArrayOp_Word8AsDouble 
ReadByteArrayOp_Word8AsStablePtr 
ReadByteArrayOp_Word8AsInt16 
ReadByteArrayOp_Word8AsInt32 
ReadByteArrayOp_Word8AsInt64 
ReadByteArrayOp_Word8AsWord16 
ReadByteArrayOp_Word8AsWord32 
ReadByteArrayOp_Word8AsWord64 
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_Word8AsInt 
WriteByteArrayOp_Word8AsWord 
WriteByteArrayOp_Word8AsAddr 
WriteByteArrayOp_Word8AsFloat 
WriteByteArrayOp_Word8AsDouble 
WriteByteArrayOp_Word8AsStablePtr 
WriteByteArrayOp_Word8AsInt16 
WriteByteArrayOp_Word8AsInt32 
WriteByteArrayOp_Word8AsInt64 
WriteByteArrayOp_Word8AsWord16 
WriteByteArrayOp_Word8AsWord32 
WriteByteArrayOp_Word8AsWord64 
CompareByteArraysOp 
CopyByteArrayOp 
CopyMutableByteArrayOp 
CopyByteArrayToAddrOp 
CopyMutableByteArrayToAddrOp 
CopyAddrToByteArrayOp 
SetByteArrayOp 
AtomicReadByteArrayOp_Int 
AtomicWriteByteArrayOp_Int 
CasByteArrayOp_Int 
CasByteArrayOp_Int8 
CasByteArrayOp_Int16 
CasByteArrayOp_Int32 
CasByteArrayOp_Int64 
FetchAddByteArrayOp_Int 
FetchSubByteArrayOp_Int 
FetchAndByteArrayOp_Int 
FetchNandByteArrayOp_Int 
FetchOrByteArrayOp_Int 
FetchXorByteArrayOp_Int 
AddrAddOp 
AddrSubOp 
AddrRemOp 
AddrToIntOp 
IntToAddrOp 
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 
InterlockedExchange_Addr 
InterlockedExchange_Word 
CasAddrOp_Addr 
CasAddrOp_Word 
CasAddrOp_Word8 
CasAddrOp_Word16 
CasAddrOp_Word32 
CasAddrOp_Word64 
FetchAddAddrOp_Word 
FetchSubAddrOp_Word 
FetchAndAddrOp_Word 
FetchNandAddrOp_Word 
FetchOrAddrOp_Word 
FetchXorAddrOp_Word 
AtomicReadAddrOp_Word 
AtomicWriteAddrOp_Word 
NewMutVarOp 
ReadMutVarOp 
WriteMutVarOp 
AtomicModifyMutVar2Op 
AtomicModifyMutVar_Op 
CasMutVarOp 
CatchOp 
RaiseOp 
RaiseUnderflowOp 
RaiseOverflowOp 
RaiseDivZeroOp 
RaiseIOOp 
MaskAsyncExceptionsOp 
MaskUninterruptibleOp 
UnmaskAsyncExceptionsOp 
MaskStatus 
NewPromptTagOp 
PromptOp 
Control0Op 
AtomicallyOp 
RetryOp 
CatchRetryOp 
CatchSTMOp 
NewTVarOp 
ReadTVarOp 
ReadTVarIOOp 
WriteTVarOp 
NewMVarOp 
TakeMVarOp 
TryTakeMVarOp 
PutMVarOp 
TryPutMVarOp 
ReadMVarOp 
TryReadMVarOp 
IsEmptyMVarOp 
NewIOPortOp 
ReadIOPortOp 
WriteIOPortOp 
DelayOp 
WaitReadOp 
WaitWriteOp 
ForkOp 
ForkOnOp 
KillThreadOp 
YieldOp 
MyThreadIdOp 
LabelThreadOp 
IsCurrentThreadBoundOp 
NoDuplicateOp 
GetThreadLabelOp 
ThreadStatusOp 
ListThreadsOp 
MkWeakOp 
MkWeakNoFinalizerOp 
AddCFinalizerToWeakOp 
DeRefWeakOp 
FinalizeWeakOp 
TouchOp 
MakeStablePtrOp 
DeRefStablePtrOp 
EqStablePtrOp 
MakeStableNameOp 
StableNameToIntOp 
CompactNewOp 
CompactResizeOp 
CompactContainsOp 
CompactContainsAnyOp 
CompactGetFirstBlockOp 
CompactGetNextBlockOp 
CompactAllocateBlockOp 
CompactFixupPointersOp 
CompactAdd 
CompactAddWithSharing 
CompactSize 
ReallyUnsafePtrEqualityOp 
ParOp 
SparkOp 
SeqOp 
GetSparkOp 
NumSparks 
KeepAliveOp 
DataToTagOp 
TagToEnumOp 
AddrToAnyOp 
AnyToAddrOp 
MkApUpd0_Op 
NewBCOOp 
UnpackClosureOp 
ClosureSizeOp 
GetApStackValOp 
GetCCSOfOp 
GetCurrentCCSOp 
ClearCCSOp 
WhereFromOp 
TraceEventOp 
TraceEventBinaryOp 
TraceMarkerOp 
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
Outputable PrimOp Source # 
Instance details

Defined in GHC.Builtin.PrimOps

Methods

ppr :: PrimOp -> SDoc Source #

Eq PrimOp Source # 
Instance details

Defined in GHC.Builtin.PrimOps

Methods

(==) :: PrimOp -> PrimOp -> Bool #

(/=) :: PrimOp -> PrimOp -> Bool #

Ord PrimOp Source # 
Instance details

Defined in GHC.Builtin.PrimOps

primOpWrapperId :: PrimOp -> Id Source #

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

pprPrimOp :: IsLine doc => PrimOp -> doc Source #

primOpIsDiv :: PrimOp -> Bool Source #

True of dyadic operators that can fail only if the second arg is zero!

This function probably belongs in an automagically generated file.. but it's such a special case I thought I'd leave it here for now.

primOpIsReallyInline :: PrimOp -> Bool Source #

Indicate if a primop is really inline: that is, it isn't out-of-line and it isn't SeqOp/DataToTagOp which are two primops that evaluate their argument hence induce threadstackheap changes.

data PrimCall Source #

Constructors

PrimCall CLabelString Unit 

Instances

Instances details
Outputable PrimCall Source # 
Instance details

Defined in GHC.Builtin.PrimOps

Methods

ppr :: PrimCall -> SDoc Source #