GHC.Prim

The word size story.

Char#

data Char#

gtCharI#

geCharI#

eqCharI#

neCharI#

ltCharI#

leCharI#

ord#

Int#

data Int#

(+#)

(-#)

(*#)

mulIntMayOflo#

quotInt#

remInt#

quotRemInt#

andI#

orI#

xorI#

notI#

negateInt#

addIntC#

subIntC#

(>$#)

(>=$#)

(==$#)

(/=$#)

(<$#)

(<=$#)

chr#

int2Word#

int2Float#

int2Double#

word2Float#

word2Double#

uncheckedIShiftL#

uncheckedIShiftRA#

uncheckedIShiftRL#

Word#

data Word#

plusWord#

plusWord2#

minusWord#

timesWord#

timesWord2#

quotWord#

remWord#

quotRemWord#

quotRemWord2#

and#

or#

xor#

not#

uncheckedShiftL#

uncheckedShiftRL#

word2Int#

gtWordI#

geWordI#

eqWordI#

neWordI#

ltWordI#

leWordI#

popCnt8#

popCnt16#

popCnt32#

popCnt64#

popCnt#

byteSwap16#

byteSwap32#

byteSwap64#

byteSwap#

Narrowings

narrow8Int#

narrow16Int#

narrow32Int#

narrow8Word#

narrow16Word#

narrow32Word#

Int64#

data Int64#

Word64#

data Word64#

Double#

data Double#

(>$##)

(>=$##)

(==$##)

(/=$##)

(<$##)

(<=$##)

(+##)

(-##)

(*##)

(/##)

negateDouble#

double2Int#

double2Float#

expDouble#

logDouble#

sqrtDouble#

sinDouble#

cosDouble#

tanDouble#

asinDouble#

acosDouble#

atanDouble#

sinhDouble#

coshDouble#

tanhDouble#

(**##)

decodeDouble_2Int#

Float#

data Float#

gtFloatI#

geFloatI#

eqFloatI#

neFloatI#

ltFloatI#

leFloatI#

plusFloat#

minusFloat#

timesFloat#

divideFloat#

negateFloat#

float2Int#

expFloat#

logFloat#

sqrtFloat#

sinFloat#

cosFloat#

tanFloat#

asinFloat#

acosFloat#

atanFloat#

sinhFloat#

coshFloat#

tanhFloat#

powerFloat#

float2Double#

decodeFloat_Int#

Arrays

data Array# a

data MutableArray# s a

newArray#

sameMutableArray#

readArray#

writeArray#

sizeofArray#

sizeofMutableArray#

indexArray#

unsafeFreezeArray#

unsafeThawArray#

copyArray#

copyMutableArray#

cloneArray#

cloneMutableArray#

freezeArray#

thawArray#

Byte Arrays

data ByteArray#

data MutableByteArray# s

newByteArray#

newPinnedByteArray#

newAlignedPinnedByteArray#

byteArrayContents#

sameMutableByteArray#

unsafeFreezeByteArray#

sizeofByteArray#

sizeofMutableByteArray#

indexCharArray#

indexWideCharArray#

indexIntArray#

indexWordArray#

indexAddrArray#

indexFloatArray#

indexDoubleArray#

indexStablePtrArray#

indexInt8Array#

indexInt16Array#

indexInt32Array#

indexInt64Array#

indexWord8Array#

indexWord16Array#

indexWord32Array#

indexWord64Array#

readCharArray#

readWideCharArray#

readIntArray#

readWordArray#

readAddrArray#

readFloatArray#

readDoubleArray#

readStablePtrArray#

readInt8Array#

readInt16Array#

readInt32Array#

readInt64Array#

readWord8Array#

readWord16Array#

readWord32Array#

readWord64Array#

writeCharArray#

writeWideCharArray#

writeIntArray#

writeWordArray#

writeAddrArray#

writeFloatArray#

writeDoubleArray#

writeStablePtrArray#

writeInt8Array#

writeInt16Array#

writeInt32Array#

writeInt64Array#

writeWord8Array#

writeWord16Array#

writeWord32Array#

writeWord64Array#

copyByteArray#

copyMutableByteArray#

setByteArray#

Arrays of arrays

data ArrayArray#

data MutableArrayArray# s

newArrayArray#

sameMutableArrayArray#

unsafeFreezeArrayArray#

sizeofArrayArray#

sizeofMutableArrayArray#

indexByteArrayArray#

indexArrayArrayArray#

readByteArrayArray#

readMutableByteArrayArray#

readArrayArrayArray#

readMutableArrayArrayArray#

writeByteArrayArray#

writeMutableByteArrayArray#

writeArrayArrayArray#

writeMutableArrayArrayArray#

copyArrayArray#

copyMutableArrayArray#

Addr#

data Addr#

nullAddr#

plusAddr#

minusAddr#

remAddr#

addr2Int#

int2Addr#

gtAddrI#

geAddrI#

eqAddrI#

neAddrI#

ltAddrI#

leAddrI#

indexCharOffAddr#

indexWideCharOffAddr#

indexIntOffAddr#

indexWordOffAddr#

indexAddrOffAddr#

indexFloatOffAddr#

indexDoubleOffAddr#

indexStablePtrOffAddr#

indexInt8OffAddr#

indexInt16OffAddr#

indexInt32OffAddr#

indexInt64OffAddr#

indexWord8OffAddr#

indexWord16OffAddr#

indexWord32OffAddr#

indexWord64OffAddr#

readCharOffAddr#

readWideCharOffAddr#

readIntOffAddr#

readWordOffAddr#

readAddrOffAddr#

readFloatOffAddr#

readDoubleOffAddr#

readStablePtrOffAddr#

readInt8OffAddr#

readInt16OffAddr#

readInt32OffAddr#

readInt64OffAddr#

readWord8OffAddr#

readWord16OffAddr#

readWord32OffAddr#

readWord64OffAddr#

writeCharOffAddr#

writeWideCharOffAddr#

writeIntOffAddr#

writeWordOffAddr#

writeAddrOffAddr#

writeFloatOffAddr#

writeDoubleOffAddr#

writeStablePtrOffAddr#

writeInt8OffAddr#

writeInt16OffAddr#

writeInt32OffAddr#

writeInt64OffAddr#

writeWord8OffAddr#

writeWord16OffAddr#

writeWord32OffAddr#

writeWord64OffAddr#

Mutable variables

data MutVar# s a

newMutVar#

readMutVar#

writeMutVar#

sameMutVar#

atomicModifyMutVar#

casMutVar#

Exceptions

catch#

raise#

raiseIO#

maskAsyncExceptions#

maskUninterruptible#

unmaskAsyncExceptions#

getMaskingState#

STM-accessible Mutable Variables

data TVar# s a

atomically#

retry#

catchRetry#

catchSTM#

check#

newTVar#

readTVar#

readTVarIO#

writeTVar#

sameTVar#

Synchronized Mutable Variables

data MVar# s a

newMVar#

takeMVar#

tryTakeMVar#

putMVar#

tryPutMVar#

readMVar#

tryReadMVar#

sameMVar#

isEmptyMVar#

Delay/wait operations

delay#

waitRead#

waitWrite#

Concurrency primitives

data State# s

data RealWorld

data ThreadId#

fork#

forkOn#

killThread#

yield#

myThreadId#

labelThread#

isCurrentThreadBound#

noDuplicate#

threadStatus#

Weak pointers

data Weak# b

mkWeak#

mkWeakNoFinalizer#

addCFinalizerToWeak#

deRefWeak#

finalizeWeak#

touch#

Stable pointers and names

data StablePtr# a

data StableName# a

makeStablePtr#

deRefStablePtr#

eqStablePtr#

makeStableName#

eqStableName#

stableNameToInt#

Unsafe pointer equality

reallyUnsafePtrEquality#

Parallelism

par#

spark#

seq#

getSpark#

numSparks#

parGlobal#

parLocal#

parAt#

parAtAbs#

parAtRel#

parAtForNow#

Tag to enum stuff

dataToTag#

tagToEnum#

Bytecode operations

data BCO#

addrToAny#

mkApUpd0#

newBCO#

unpackClosure#

getApStackVal#

Misc

getCCSOf#

getCurrentCCS#

Etc

seq

data Any k

data AnyK

unsafeCoerce#

traceEvent#

traceMarker#

Float SIMD Vectors

data FloatX4#

floatToFloatX4#

packFloatX4#

unpackFloatX4#

insertFloatX4#

plusFloatX4#

minusFloatX4#

timesFloatX4#

divideFloatX4#

negateFloatX4#

indexFloatX4Array#

readFloatX4Array#

writeFloatX4Array#

indexFloatX4OffAddr#

readFloatX4OffAddr#

writeFloatX4OffAddr#

indexFloatArrayAsFloatX4#

readFloatArrayAsFloatX4#

writeFloatArrayAsFloatX4#

indexFloatOffAddrAsFloatX4#

readFloatOffAddrAsFloatX4#

writeFloatOffAddrAsFloatX4#

Double SIMD Vectors

data DoubleX2#

doubleToDoubleX2#

insertDoubleX2#

packDoubleX2#

unpackDoubleX2#

plusDoubleX2#

minusDoubleX2#

timesDoubleX2#

divideDoubleX2#

negateDoubleX2#

indexDoubleX2Array#

readDoubleX2Array#

writeDoubleX2Array#

indexDoubleX2OffAddr#

readDoubleX2OffAddr#

writeDoubleX2OffAddr#

indexDoubleArrayAsDoubleX2#

readDoubleArrayAsDoubleX2#

writeDoubleArrayAsDoubleX2#

indexDoubleOffAddrAsDoubleX2#

readDoubleOffAddrAsDoubleX2#

writeDoubleOffAddrAsDoubleX2#

Int32 SIMD Vectors

data Int32X4#

int32ToInt32X4#

insertInt32X4#

packInt32X4#

unpackInt32X4#

plusInt32X4#

minusInt32X4#

timesInt32X4#

quotInt32X4#

remInt32X4#

negateInt32X4#

indexInt32X4Array#

readInt32X4Array#

writeInt32X4Array#

indexInt32X4OffAddr#

readInt32X4OffAddr#

writeInt32X4OffAddr#

indexInt32ArrayAsInt32X4#

readInt32ArrayAsInt32X4#

writeInt32ArrayAsInt32X4#

indexInt32OffAddrAsInt32X4#

readInt32OffAddrAsInt32X4#

writeInt32OffAddrAsInt32X4#

Int64 SIMD Vectors

data Int64X2#

int64ToInt64X2#

insertInt64X2#

packInt64X2#

unpackInt64X2#

plusInt64X2#

minusInt64X2#

timesInt64X2#

quotInt64X2#

remInt64X2#

negateInt64X2#

indexInt64X2Array#

readInt64X2Array#

writeInt64X2Array#

indexInt64X2OffAddr#

readInt64X2OffAddr#

writeInt64X2OffAddr#

indexInt64ArrayAsInt64X2#

readInt64ArrayAsInt64X2#

writeInt64ArrayAsInt64X2#

indexInt64OffAddrAsInt64X2#

readInt64OffAddrAsInt64X2#

writeInt64OffAddrAsInt64X2#

Prefetch

prefetchByteArray#

prefetchMutableByteArray#

prefetchAddr#