IntrinX86_128
Usage
use IntrinX86_128;
or
import IntrinX86_128;
- type vec32x4r
- type vec64x2r
“__m128d”
- type vec8x16i
- type vec16x8i
“__m128i”
- type vec32x4i
- type vec64x2i
“__m128i”
- type vec8x16u
- type vec16x8u
“__m128i”
- type vec32x4u
- type vec64x2u
“__m128i”
- 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 type vec32x4r.numBits param : int
- proc type vec64x2r.numBits param : int
- proc type vec8x16i.numBits param : int
- proc type vec16x8i.numBits param : int
- proc type vec32x4i.numBits param : int
- proc type vec64x2i.numBits param : int
- proc type vec8x16u.numBits param : int
- proc type vec16x8u.numBits param : int
- proc type vec32x4u.numBits param : int
- proc type vec64x2u.numBits param : int
- proc typeToSuffix(type t) param : string
- proc type vec32x4r.typeSuffix param : string
- proc type vec64x2r.typeSuffix param : string
- proc type vec8x16i.typeSuffix param : string
- proc type vec16x8i.typeSuffix param : string
- proc type vec32x4i.typeSuffix param : string
- proc type vec64x2i.typeSuffix param : string
- proc type vec8x16u.typeSuffix param : string
- proc type vec16x8u.typeSuffix param : string
- proc type vec32x4u.typeSuffix param : string
- proc type vec64x2u.typeSuffix param : string
- proc vecTypeStr(type t) param : string
- proc type vec32x4r.typeStr param : string
- proc type vec64x2r.typeStr param : string
- proc type vec8x16i.typeStr param : string
- proc type vec16x8i.typeStr param : string
- proc type vec32x4i.typeStr param : string
- proc type vec64x2i.typeStr param : string
- proc type vec8x16u.typeStr param : string
- proc type vec16x8u.typeStr param : string
- proc type vec32x4u.typeStr param : string
- proc type vec64x2u.typeStr param : string
- proc type vec32x4r.isIntegralVector param : bool
- proc type vec64x2r.isIntegralVector param : bool
- proc type vec8x16i.isIntegralVector param : bool
- proc type vec16x8i.isIntegralVector param : bool
- proc type vec32x4i.isIntegralVector param : bool
- proc type vec64x2i.isIntegralVector param : bool
- proc type vec8x16u.isIntegralVector param : bool
- proc type vec16x8u.isIntegralVector param : bool
- proc type vec32x4u.isIntegralVector param : bool
- proc type vec64x2u.isIntegralVector param : bool
- proc type vec32x4r.bitMaskType type
- proc type vec64x2r.bitMaskType type
- proc type vec8x16i.bitMaskType type
- proc type vec16x8i.bitMaskType type
- proc type vec32x4i.bitMaskType type
- proc type vec64x2i.bitMaskType type
- proc type vec32x4r.implType type
- proc type vec64x2r.implType type
- proc type vec8x16i.implType type
- proc type vec16x8i.implType type
- proc type vec32x4i.implType type
- proc type vec64x2i.implType type
- 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, x: ?t, y: ?, z: ?, w: ?) : t
- proc doSimpleOp(param op: string, xs) : xs(0).type where isTuple(xs)
- 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 doSimpleOp(param op: string, type returnType, x: ?t1, y: ?t2, z: ?t3, w: ?t4) : returnType
- proc doSimpleOp(param op: string, type returnType, xs) : returnType where isTuple(xs)
- proc reinterpret(param mmPrefix: string, x: ?fromType, type toType) : toType
- record x8664_NxM
- type extensionType
- proc type vecType type
- proc type laneType type
- proc type numLanes param : int
- proc type mmPrefix param : string
- 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 shiftLeftImm(x: vecType, param offset: int) : vecType
- proc type shiftLeftVec(x: vecType, y: vecType) : vecType
- proc type shiftRightImm(x: vecType, param offset: int) : vecType
- proc type shiftRightVec(x: vecType, y: vecType) : vecType
- proc type shiftRightArithImm(x: vecType, param offset: int) : vecType
- proc type shiftRightArithVec(x: vecType, y: 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
For floating point types, the comparison is ordered and non-signaling.
- 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 mask.type.numBits == vecType.numBits
- 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 type typeCast(type toVecType, x: vecType) : toVecType
- proc x8664_32x4r type
- proc x8664_64x2r type
- proc x8664_8x16i type
- proc x8664_16x8i type
- proc x8664_32x4i type
- proc x8664_64x2i type
- record x8664_32x4r_extension
- type base
- proc type vecType type
- proc type laneType type
- proc type hadd(x: vecType, y: vecType) : vecType
- proc type abs(x: vecType) : vecType
- record x8664_64x2r_extension
- type base
- proc type vecType type
- proc type laneType type
- 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 deinterleaveLower(x: vecType, y: vecType) : vecType
- proc type deinterleaveUpper(x: vecType, y: vecType) : vecType
- proc type typeCast()
- proc type typeCast(type toVecType, x: vecType) : toVecType
- proc type rsqrt(x: vecType) : vecType
- proc type abs(x: vecType) : vecType
- record x8664_8x16i_extension
- type base
- proc type vecType type
- proc type laneType type
- proc type mul(x: vecType, y: vecType) : vecType
- proc type div(x: vecType, y: vecType) : vecType
- proc type hadd(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
- proc type shiftLeftImm()
- proc type shiftLeftImm(x: vecType, param offset: int) : vecType
- proc type shiftLeftVec()
- proc type shiftLeftVec(x: vecType, y: vecType) : vecType
- proc type shiftRightImm()
- proc type shiftRightImm(x: vecType, param offset: int) : vecType
- proc type shiftRightVec()
- proc type shiftRightVec(x: vecType, y: vecType) : vecType
- proc type shiftRightArithImm()
- proc type shiftRightArithImm(x: vecType, param offset: int) : vecType
- proc type shiftRightArithVec()
- proc type shiftRightArithVec(x: vecType, y: vecType) : vecType
- proc type deinterleaveLower(x: vecType, y: vecType) : vecType
- proc type deinterleaveUpper(x: vecType, y: vecType) : vecType
- record x8664_16x8i_extension
- type base
- proc type vecType type
- proc type laneType type
- proc type mul(x: vecType, y: vecType) : vecType
- proc type div(x: vecType, y: vecType) : vecType
- proc type hadd(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
- proc type deinterleaveLower(x: vecType, y: vecType) : vecType
- proc type deinterleaveUpper(x: vecType, y: vecType) : vecType
- record x8664_32x4i_extension
- type base
- proc type vecType type
- proc type laneType type
- proc type div(x: vecType, y: vecType) : vecType
- proc type mul(x: vecType, y: vecType) : vecType
- proc type hadd(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 x8664_64x2i_extension
- type base
- proc type vecType type
- proc type laneType type
- proc type set(xs ...) : vecType
- proc type splat(x: laneType) : vecType
- proc type shiftRightArithImm()
- proc type shiftRightArithImm(x: vecType, param offset: int) : vecType
- proc type shiftRightArithVec()
- proc type shiftRightArithVec(x: vecType, y: 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 deinterleaveLower(x: vecType, y: vecType) : vecType
- proc type deinterleaveUpper(x: vecType, y: vecType) : vecType
- proc type typeCast()
- proc type typeCast(type toVecType, x: vecType) : toVecType
- proc type div(x: vecType, y: vecType) : vecType
- proc type hadd(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
- proc type max(x: vecType, y: vecType) : vecType
- proc type min(x: vecType, y: vecType) : vecType
- proc type abs(x: vecType) : vecType