IntrinArm64_128

Usage

use IntrinArm64_128;

or

import IntrinArm64_128;
type vec32x4r
type vec64x2r
type vec8x16i
type vec16x8i
type vec32x4i
type vec64x2i
type vec8x16u
type vec16x8u
type vec32x4u
type vec64x2u
type vec32x2r
type vec64x1r
type vec8x8i
type vec16x4i
type vec32x2i
type vec64x1i
type vec8x8u
type vec16x4u
type vec32x2u
type vec64x1u
proc numBits(type t) param : int  where t == vec32x4r || t == vec64x2r || t == vec8x16i || t == vec16x8i || t == vec32x4i || t == vec64x2i || t == vec8x16u || t == vec16x8u || t == vec32x4u || t == vec64x2u
proc getHalfType(type t) type
proc getBitMaskType(type t) type
proc typeToSuffix(type t) param : string
proc vecTypeStr(type t) param : string
proc doSimpleOp(param op: string, x: ?t) : t

Call a simple op on a vector type x must be a vector type and also specifies the return type

proc doSimpleOp(param op: string, x: ?t, y: ?) : t
proc doSimpleOp(param op: string, x: ?t, y: ?, z: ?) : t
proc doSimpleOp(param op: string, type returnType, x: ?t) : returnType

Call a simple op on a vector type returnType specifies the return type

proc doSimpleOp(param op: string, type returnType, x: ?t1, y: ?t2) : returnType
proc doSimpleOp(param op: string, type returnType, x: ?t1, y: ?t2, z: ?t3) : returnType
proc reinterpret(vec: ?, type t) : t
record arm64_NxM
type extensionType
proc type vecType type
proc type laneType type
proc type numLanes param : int
proc type extract(x: vecType, param idx: int) : laneType
proc type insert(x: vecType, y: laneType, param idx: int) : vecType
proc type splat(x: laneType) : vecType
proc type set(xs ...) : vecType
proc type loada(x: c_ptrConst(laneType)) : vecType
proc type loadu(x: c_ptrConst(laneType)) : vecType
proc type storea(x: c_ptr(laneType), y: vecType) : void
proc type storeu(x: c_ptr(laneType), y: vecType) : void
proc type loadMasked(x: c_ptrConst(laneType), mask: ?) : vecType
proc type gather(x: c_ptrConst(laneType), type indexType, indices: ?, param scale: int) : vecType
proc type gatherMasked(x: c_ptrConst(laneType), type indexType, indices: ?, param scale: int, mask: ?, src: vecType) : vecType
proc type swapPairs(x: vecType) : vecType
proc type swapLowHigh(x: vecType) : vecType
proc type reverse(x: vecType) : vecType
proc type rotateLeft(x: vecType) : vecType
proc type rotateRight(x: vecType) : vecType
proc type interleaveLower(x: vecType, y: vecType) : vecType
proc type interleaveUpper(x: vecType, y: vecType) : vecType
proc type deinterleaveLower(x: vecType, y: vecType) : vecType
proc type deinterleaveUpper(x: vecType, y: vecType) : vecType
proc type blendLowHigh(x: vecType, y: vecType) : vecType
proc type add(x: vecType, y: vecType) : vecType
proc type sub(x: vecType, y: vecType) : vecType
proc type mul(x: vecType, y: vecType) : vecType
proc type div(x: vecType, y: vecType) : vecType
proc type neg(x: vecType) : vecType
proc type and(x: vecType, y: vecType) : vecType
proc type or(x: vecType, y: vecType) : vecType
proc type xor(x: vecType, y: vecType) : vecType
proc type not(x: vecType) : vecType
proc type andNot(x: vecType, y: vecType) : vecType
proc type cmpEq(x: vecType, y: vecType) : vecType
proc type cmpNe(x: vecType, y: vecType) : vecType
proc type cmpLt(x: vecType, y: vecType) : vecType
proc type cmpLe(x: vecType, y: vecType) : vecType
proc type cmpGt(x: vecType, y: vecType) : vecType
proc type cmpGe(x: vecType, y: vecType) : vecType
proc type bitSelect(mask: ?, x: vecType, y: vecType) : vecType  where numBits(mask.type) == numBits(vecType)
proc type isAllZeros(x: vecType) : bool
proc type allOnes() : vecType
proc type allZeros() : vecType
proc type moveMask(x: vecType) : c_int
proc type min(x: vecType, y: vecType) : vecType
proc type max(x: vecType, y: vecType) : vecType
proc type abs(x: vecType) : vecType
proc type hadd(x: vecType, y: vecType) : vecType
proc type sqrt(x: vecType) : vecType
proc type rsqrt(x: vecType) : vecType
proc type fmadd(x: vecType, y: vecType, z: vecType) : vecType
proc type fmsub(x: vecType, y: vecType, z: vecType) : vecType
proc type reinterpretCast(type toVecType, x: vecType) : toVecType
proc arm64_32x4r type
proc arm64_64x2r type
proc arm64_8x16i type
proc arm64_16x8i type
proc arm64_32x4i type
proc arm64_64x2i type
record arm64_32x4r_extension
type base
proc type vecType type
proc type laneType type
proc type set(x: laneType, y: laneType, z: laneType, w: laneType) : vecType
proc type swapPairs(x: vecType) : vecType
proc type swapLowHigh(x: vecType) : vecType
proc type reverse(x: vecType) : vecType
proc type rotateLeft(x: vecType) : vecType
proc type rotateRight(x: vecType) : vecType
proc type and(x: vecType, y: vecType) : vecType
proc type or(x: vecType, y: vecType) : vecType
proc type xor(x: vecType, y: vecType) : vecType
proc type not(x: vecType) : vecType
proc type andNot(x: vecType, y: vecType) : vecType
record arm64_64x2r_extension
type base
proc type vecType type
proc type laneType type
proc type set(x: laneType, y: laneType) : vecType
proc type swapPairs(x: vecType) : vecType
proc type swapLowHigh(x: vecType) : vecType
proc type reverse(x: vecType) : vecType
proc type rotateLeft(x: vecType) : vecType
proc type rotateRight(x: vecType) : vecType
proc type and(x: vecType, y: vecType) : vecType
proc type or(x: vecType, y: vecType) : vecType
proc type xor(x: vecType, y: vecType) : vecType
proc type not(x: vecType) : vecType
proc type andNot(x: vecType, y: vecType) : vecType
record arm64_8x16i_extension
type base
proc type vecType type
proc type laneType type
proc type set(x: laneType, y: laneType, z: laneType, w: laneType, a: laneType, b: laneType, c: laneType, d: laneType, e: laneType, f: laneType, g: laneType, h: laneType, i: laneType, j: laneType, k: laneType, l: laneType) : vecType
proc type swapPairs(x: vecType) : vecType
proc type swapLowHigh(x: vecType) : vecType
proc type reverse(x: vecType) : vecType
proc type rotateLeft(x: vecType) : vecType
proc type rotateRight(x: vecType) : vecType
proc type div(x: vecType, y: vecType) : vecType
proc type fmadd(x: vecType, y: vecType, z: vecType) : vecType
proc type fmsub(x: vecType, y: vecType, z: vecType) : vecType
record arm64_16x8i_extension
type base
proc type vecType type
proc type laneType type
proc type set(x: laneType, y: laneType, z: laneType, w: laneType, a: laneType, b: laneType, c: laneType, d: laneType) : vecType
proc type swapPairs(x: vecType) : vecType
proc type swapLowHigh(x: vecType) : vecType
proc type reverse(x: vecType) : vecType
proc type rotateLeft(x: vecType) : vecType
proc type rotateRight(x: vecType) : vecType
proc type div(x: vecType, y: vecType) : vecType
proc type fmadd(x: vecType, y: vecType, z: vecType) : vecType
proc type fmsub(x: vecType, y: vecType, z: vecType) : vecType
record arm64_32x4i_extension
type base
proc type vecType type
proc type laneType type
proc type set(x: laneType, y: laneType, z: laneType, w: laneType) : vecType
proc type swapPairs(x: vecType) : vecType
proc type swapLowHigh(x: vecType) : vecType
proc type reverse(x: vecType) : vecType
proc type rotateLeft(x: vecType) : vecType
proc type rotateRight(x: vecType) : vecType
proc type div(x: vecType, y: vecType) : vecType
proc type fmadd(x: vecType, y: vecType, z: vecType) : vecType
proc type fmsub(x: vecType, y: vecType, z: vecType) : vecType
record arm64_64x2i_extension
type base
proc type vecType type
proc type laneType type
proc type set(x: laneType, y: laneType) : vecType
proc type swapPairs(x: vecType) : vecType
proc type swapLowHigh(x: vecType) : vecType
proc type reverse(x: vecType) : vecType
proc type rotateLeft(x: vecType) : vecType
proc type rotateRight(x: vecType) : vecType
proc type div(x: vecType, y: vecType) : vecType
proc type min(x: vecType, y: vecType) : vecType
proc type max(x: vecType, y: vecType) : vecType