mirror of
https://github.com/golang/go.git
synced 2025-12-08 06:10:04 +00:00
[dev.simd] cmd/compile, simd: (Set|Get)(Lo|Hi)
This CL is generated by CL 693335. Change-Id: Ie9adda526573f979ec7e4f535033ba29236cc5cb Reviewed-on: https://go-review.googlesource.com/c/go/+/693355 LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com> Reviewed-by: David Chase <drchase@google.com>
This commit is contained in:
parent
7ca34599ec
commit
d3cf582f8a
10 changed files with 2474 additions and 567 deletions
|
|
@ -685,7 +685,9 @@ func ssaGenSIMDValue(s *ssagen.State, v *ssa.Value) bool {
|
||||||
ssa.OpAMD64VREDUCEPD256,
|
ssa.OpAMD64VREDUCEPD256,
|
||||||
ssa.OpAMD64VREDUCEPD512,
|
ssa.OpAMD64VREDUCEPD512,
|
||||||
ssa.OpAMD64VEXTRACTF128128,
|
ssa.OpAMD64VEXTRACTF128128,
|
||||||
|
ssa.OpAMD64VEXTRACTF64X4256,
|
||||||
ssa.OpAMD64VEXTRACTI128128,
|
ssa.OpAMD64VEXTRACTI128128,
|
||||||
|
ssa.OpAMD64VEXTRACTI64X4256,
|
||||||
ssa.OpAMD64VPROLD128,
|
ssa.OpAMD64VPROLD128,
|
||||||
ssa.OpAMD64VPROLD256,
|
ssa.OpAMD64VPROLD256,
|
||||||
ssa.OpAMD64VPROLD512,
|
ssa.OpAMD64VPROLD512,
|
||||||
|
|
@ -794,7 +796,9 @@ func ssaGenSIMDValue(s *ssagen.State, v *ssa.Value) bool {
|
||||||
ssa.OpAMD64VGF2P8AFFINEINVQB256,
|
ssa.OpAMD64VGF2P8AFFINEINVQB256,
|
||||||
ssa.OpAMD64VGF2P8AFFINEINVQB512,
|
ssa.OpAMD64VGF2P8AFFINEINVQB512,
|
||||||
ssa.OpAMD64VINSERTF128256,
|
ssa.OpAMD64VINSERTF128256,
|
||||||
|
ssa.OpAMD64VINSERTF64X4512,
|
||||||
ssa.OpAMD64VINSERTI128256,
|
ssa.OpAMD64VINSERTI128256,
|
||||||
|
ssa.OpAMD64VINSERTI64X4512,
|
||||||
ssa.OpAMD64VPSHLDW128,
|
ssa.OpAMD64VPSHLDW128,
|
||||||
ssa.OpAMD64VPSHLDW256,
|
ssa.OpAMD64VPSHLDW256,
|
||||||
ssa.OpAMD64VPSHLDW512,
|
ssa.OpAMD64VPSHLDW512,
|
||||||
|
|
|
||||||
|
|
@ -467,16 +467,6 @@
|
||||||
(GaloisFieldMulMaskedUint8x16 x y mask) => (VGF2P8MULBMasked128 x y (VPMOVVec8x16ToM <types.TypeMask> mask))
|
(GaloisFieldMulMaskedUint8x16 x y mask) => (VGF2P8MULBMasked128 x y (VPMOVVec8x16ToM <types.TypeMask> mask))
|
||||||
(GaloisFieldMulMaskedUint8x32 x y mask) => (VGF2P8MULBMasked256 x y (VPMOVVec8x32ToM <types.TypeMask> mask))
|
(GaloisFieldMulMaskedUint8x32 x y mask) => (VGF2P8MULBMasked256 x y (VPMOVVec8x32ToM <types.TypeMask> mask))
|
||||||
(GaloisFieldMulMaskedUint8x64 x y mask) => (VGF2P8MULBMasked512 x y (VPMOVVec8x64ToM <types.TypeMask> mask))
|
(GaloisFieldMulMaskedUint8x64 x y mask) => (VGF2P8MULBMasked512 x y (VPMOVVec8x64ToM <types.TypeMask> mask))
|
||||||
(Get128Float32x8 ...) => (VEXTRACTF128128 ...)
|
|
||||||
(Get128Float64x4 ...) => (VEXTRACTF128128 ...)
|
|
||||||
(Get128Int8x32 ...) => (VEXTRACTI128128 ...)
|
|
||||||
(Get128Int16x16 ...) => (VEXTRACTI128128 ...)
|
|
||||||
(Get128Int32x8 ...) => (VEXTRACTI128128 ...)
|
|
||||||
(Get128Int64x4 ...) => (VEXTRACTI128128 ...)
|
|
||||||
(Get128Uint8x32 ...) => (VEXTRACTI128128 ...)
|
|
||||||
(Get128Uint16x16 ...) => (VEXTRACTI128128 ...)
|
|
||||||
(Get128Uint32x8 ...) => (VEXTRACTI128128 ...)
|
|
||||||
(Get128Uint64x4 ...) => (VEXTRACTI128128 ...)
|
|
||||||
(GetElemInt8x16 ...) => (VPEXTRB128 ...)
|
(GetElemInt8x16 ...) => (VPEXTRB128 ...)
|
||||||
(GetElemInt16x8 ...) => (VPEXTRW128 ...)
|
(GetElemInt16x8 ...) => (VPEXTRW128 ...)
|
||||||
(GetElemInt32x4 ...) => (VPEXTRD128 ...)
|
(GetElemInt32x4 ...) => (VPEXTRD128 ...)
|
||||||
|
|
@ -485,6 +475,46 @@
|
||||||
(GetElemUint16x8 ...) => (VPEXTRW128 ...)
|
(GetElemUint16x8 ...) => (VPEXTRW128 ...)
|
||||||
(GetElemUint32x4 ...) => (VPEXTRD128 ...)
|
(GetElemUint32x4 ...) => (VPEXTRD128 ...)
|
||||||
(GetElemUint64x2 ...) => (VPEXTRQ128 ...)
|
(GetElemUint64x2 ...) => (VPEXTRQ128 ...)
|
||||||
|
(GetHiFloat32x8 x) => (VEXTRACTF128128 [1] x)
|
||||||
|
(GetHiFloat32x16 x) => (VEXTRACTF64X4256 [1] x)
|
||||||
|
(GetHiFloat64x4 x) => (VEXTRACTF128128 [1] x)
|
||||||
|
(GetHiFloat64x8 x) => (VEXTRACTF64X4256 [1] x)
|
||||||
|
(GetHiInt8x32 x) => (VEXTRACTI128128 [1] x)
|
||||||
|
(GetHiInt8x64 x) => (VEXTRACTI64X4256 [1] x)
|
||||||
|
(GetHiInt16x16 x) => (VEXTRACTI128128 [1] x)
|
||||||
|
(GetHiInt16x32 x) => (VEXTRACTI64X4256 [1] x)
|
||||||
|
(GetHiInt32x8 x) => (VEXTRACTI128128 [1] x)
|
||||||
|
(GetHiInt32x16 x) => (VEXTRACTI64X4256 [1] x)
|
||||||
|
(GetHiInt64x4 x) => (VEXTRACTI128128 [1] x)
|
||||||
|
(GetHiInt64x8 x) => (VEXTRACTI64X4256 [1] x)
|
||||||
|
(GetHiUint8x32 x) => (VEXTRACTI128128 [1] x)
|
||||||
|
(GetHiUint8x64 x) => (VEXTRACTI64X4256 [1] x)
|
||||||
|
(GetHiUint16x16 x) => (VEXTRACTI128128 [1] x)
|
||||||
|
(GetHiUint16x32 x) => (VEXTRACTI64X4256 [1] x)
|
||||||
|
(GetHiUint32x8 x) => (VEXTRACTI128128 [1] x)
|
||||||
|
(GetHiUint32x16 x) => (VEXTRACTI64X4256 [1] x)
|
||||||
|
(GetHiUint64x4 x) => (VEXTRACTI128128 [1] x)
|
||||||
|
(GetHiUint64x8 x) => (VEXTRACTI64X4256 [1] x)
|
||||||
|
(GetLoFloat32x8 x) => (VEXTRACTF128128 [0] x)
|
||||||
|
(GetLoFloat32x16 x) => (VEXTRACTF64X4256 [0] x)
|
||||||
|
(GetLoFloat64x4 x) => (VEXTRACTF128128 [0] x)
|
||||||
|
(GetLoFloat64x8 x) => (VEXTRACTF64X4256 [0] x)
|
||||||
|
(GetLoInt8x32 x) => (VEXTRACTI128128 [0] x)
|
||||||
|
(GetLoInt8x64 x) => (VEXTRACTI64X4256 [0] x)
|
||||||
|
(GetLoInt16x16 x) => (VEXTRACTI128128 [0] x)
|
||||||
|
(GetLoInt16x32 x) => (VEXTRACTI64X4256 [0] x)
|
||||||
|
(GetLoInt32x8 x) => (VEXTRACTI128128 [0] x)
|
||||||
|
(GetLoInt32x16 x) => (VEXTRACTI64X4256 [0] x)
|
||||||
|
(GetLoInt64x4 x) => (VEXTRACTI128128 [0] x)
|
||||||
|
(GetLoInt64x8 x) => (VEXTRACTI64X4256 [0] x)
|
||||||
|
(GetLoUint8x32 x) => (VEXTRACTI128128 [0] x)
|
||||||
|
(GetLoUint8x64 x) => (VEXTRACTI64X4256 [0] x)
|
||||||
|
(GetLoUint16x16 x) => (VEXTRACTI128128 [0] x)
|
||||||
|
(GetLoUint16x32 x) => (VEXTRACTI64X4256 [0] x)
|
||||||
|
(GetLoUint32x8 x) => (VEXTRACTI128128 [0] x)
|
||||||
|
(GetLoUint32x16 x) => (VEXTRACTI64X4256 [0] x)
|
||||||
|
(GetLoUint64x4 x) => (VEXTRACTI128128 [0] x)
|
||||||
|
(GetLoUint64x8 x) => (VEXTRACTI64X4256 [0] x)
|
||||||
(GreaterFloat32x4 x y) => (VCMPPS128 [14] x y)
|
(GreaterFloat32x4 x y) => (VCMPPS128 [14] x y)
|
||||||
(GreaterFloat32x8 x y) => (VCMPPS256 [14] x y)
|
(GreaterFloat32x8 x y) => (VCMPPS256 [14] x y)
|
||||||
(GreaterFloat32x16 x y) => (VPMOVMToVec32x16 (VCMPPS512 [14] x y))
|
(GreaterFloat32x16 x y) => (VPMOVMToVec32x16 (VCMPPS512 [14] x y))
|
||||||
|
|
@ -1327,16 +1357,6 @@
|
||||||
(ScaleMaskedFloat64x2 x y mask) => (VSCALEFPDMasked128 x y (VPMOVVec64x2ToM <types.TypeMask> mask))
|
(ScaleMaskedFloat64x2 x y mask) => (VSCALEFPDMasked128 x y (VPMOVVec64x2ToM <types.TypeMask> mask))
|
||||||
(ScaleMaskedFloat64x4 x y mask) => (VSCALEFPDMasked256 x y (VPMOVVec64x4ToM <types.TypeMask> mask))
|
(ScaleMaskedFloat64x4 x y mask) => (VSCALEFPDMasked256 x y (VPMOVVec64x4ToM <types.TypeMask> mask))
|
||||||
(ScaleMaskedFloat64x8 x y mask) => (VSCALEFPDMasked512 x y (VPMOVVec64x8ToM <types.TypeMask> mask))
|
(ScaleMaskedFloat64x8 x y mask) => (VSCALEFPDMasked512 x y (VPMOVVec64x8ToM <types.TypeMask> mask))
|
||||||
(Set128Float32x8 ...) => (VINSERTF128256 ...)
|
|
||||||
(Set128Float64x4 ...) => (VINSERTF128256 ...)
|
|
||||||
(Set128Int8x32 ...) => (VINSERTI128256 ...)
|
|
||||||
(Set128Int16x16 ...) => (VINSERTI128256 ...)
|
|
||||||
(Set128Int32x8 ...) => (VINSERTI128256 ...)
|
|
||||||
(Set128Int64x4 ...) => (VINSERTI128256 ...)
|
|
||||||
(Set128Uint8x32 ...) => (VINSERTI128256 ...)
|
|
||||||
(Set128Uint16x16 ...) => (VINSERTI128256 ...)
|
|
||||||
(Set128Uint32x8 ...) => (VINSERTI128256 ...)
|
|
||||||
(Set128Uint64x4 ...) => (VINSERTI128256 ...)
|
|
||||||
(SetElemInt8x16 ...) => (VPINSRB128 ...)
|
(SetElemInt8x16 ...) => (VPINSRB128 ...)
|
||||||
(SetElemInt16x8 ...) => (VPINSRW128 ...)
|
(SetElemInt16x8 ...) => (VPINSRW128 ...)
|
||||||
(SetElemInt32x4 ...) => (VPINSRD128 ...)
|
(SetElemInt32x4 ...) => (VPINSRD128 ...)
|
||||||
|
|
@ -1345,6 +1365,46 @@
|
||||||
(SetElemUint16x8 ...) => (VPINSRW128 ...)
|
(SetElemUint16x8 ...) => (VPINSRW128 ...)
|
||||||
(SetElemUint32x4 ...) => (VPINSRD128 ...)
|
(SetElemUint32x4 ...) => (VPINSRD128 ...)
|
||||||
(SetElemUint64x2 ...) => (VPINSRQ128 ...)
|
(SetElemUint64x2 ...) => (VPINSRQ128 ...)
|
||||||
|
(SetHiFloat32x8 x y) => (VINSERTF128256 [1] x y)
|
||||||
|
(SetHiFloat32x16 x y) => (VINSERTF64X4512 [1] x y)
|
||||||
|
(SetHiFloat64x4 x y) => (VINSERTF128256 [1] x y)
|
||||||
|
(SetHiFloat64x8 x y) => (VINSERTF64X4512 [1] x y)
|
||||||
|
(SetHiInt8x32 x y) => (VINSERTI128256 [1] x y)
|
||||||
|
(SetHiInt8x64 x y) => (VINSERTI64X4512 [1] x y)
|
||||||
|
(SetHiInt16x16 x y) => (VINSERTI128256 [1] x y)
|
||||||
|
(SetHiInt16x32 x y) => (VINSERTI64X4512 [1] x y)
|
||||||
|
(SetHiInt32x8 x y) => (VINSERTI128256 [1] x y)
|
||||||
|
(SetHiInt32x16 x y) => (VINSERTI64X4512 [1] x y)
|
||||||
|
(SetHiInt64x4 x y) => (VINSERTI128256 [1] x y)
|
||||||
|
(SetHiInt64x8 x y) => (VINSERTI64X4512 [1] x y)
|
||||||
|
(SetHiUint8x32 x y) => (VINSERTI128256 [1] x y)
|
||||||
|
(SetHiUint8x64 x y) => (VINSERTI64X4512 [1] x y)
|
||||||
|
(SetHiUint16x16 x y) => (VINSERTI128256 [1] x y)
|
||||||
|
(SetHiUint16x32 x y) => (VINSERTI64X4512 [1] x y)
|
||||||
|
(SetHiUint32x8 x y) => (VINSERTI128256 [1] x y)
|
||||||
|
(SetHiUint32x16 x y) => (VINSERTI64X4512 [1] x y)
|
||||||
|
(SetHiUint64x4 x y) => (VINSERTI128256 [1] x y)
|
||||||
|
(SetHiUint64x8 x y) => (VINSERTI64X4512 [1] x y)
|
||||||
|
(SetLoFloat32x8 x y) => (VINSERTF128256 [0] x y)
|
||||||
|
(SetLoFloat32x16 x y) => (VINSERTF64X4512 [0] x y)
|
||||||
|
(SetLoFloat64x4 x y) => (VINSERTF128256 [0] x y)
|
||||||
|
(SetLoFloat64x8 x y) => (VINSERTF64X4512 [0] x y)
|
||||||
|
(SetLoInt8x32 x y) => (VINSERTI128256 [0] x y)
|
||||||
|
(SetLoInt8x64 x y) => (VINSERTI64X4512 [0] x y)
|
||||||
|
(SetLoInt16x16 x y) => (VINSERTI128256 [0] x y)
|
||||||
|
(SetLoInt16x32 x y) => (VINSERTI64X4512 [0] x y)
|
||||||
|
(SetLoInt32x8 x y) => (VINSERTI128256 [0] x y)
|
||||||
|
(SetLoInt32x16 x y) => (VINSERTI64X4512 [0] x y)
|
||||||
|
(SetLoInt64x4 x y) => (VINSERTI128256 [0] x y)
|
||||||
|
(SetLoInt64x8 x y) => (VINSERTI64X4512 [0] x y)
|
||||||
|
(SetLoUint8x32 x y) => (VINSERTI128256 [0] x y)
|
||||||
|
(SetLoUint8x64 x y) => (VINSERTI64X4512 [0] x y)
|
||||||
|
(SetLoUint16x16 x y) => (VINSERTI128256 [0] x y)
|
||||||
|
(SetLoUint16x32 x y) => (VINSERTI64X4512 [0] x y)
|
||||||
|
(SetLoUint32x8 x y) => (VINSERTI128256 [0] x y)
|
||||||
|
(SetLoUint32x16 x y) => (VINSERTI64X4512 [0] x y)
|
||||||
|
(SetLoUint64x4 x y) => (VINSERTI128256 [0] x y)
|
||||||
|
(SetLoUint64x8 x y) => (VINSERTI64X4512 [0] x y)
|
||||||
(ShiftAllLeftInt16x8 x (MOVQconst [c])) => (VPSLLW128const [int8(c)] x)
|
(ShiftAllLeftInt16x8 x (MOVQconst [c])) => (VPSLLW128const [int8(c)] x)
|
||||||
(ShiftAllLeftInt16x8 x y) => (VPSLLW128 x y)
|
(ShiftAllLeftInt16x8 x y) => (VPSLLW128 x y)
|
||||||
(ShiftAllLeftInt16x16 x (MOVQconst [c])) => (VPSLLW256const [int8(c)] x)
|
(ShiftAllLeftInt16x16 x (MOVQconst [c])) => (VPSLLW256const [int8(c)] x)
|
||||||
|
|
|
||||||
|
|
@ -912,12 +912,14 @@ func simdAMD64Ops(v11, v21, v2k, vkv, v2kv, v2kk, v31, v3kv, vgpv, vgp, vfpv, vf
|
||||||
{name: "VGF2P8AFFINEQBMasked128", argLength: 3, reg: w2kw, asm: "VGF2P8AFFINEQB", aux: "Int8", commutative: false, typ: "Vec128", resultInArg0: false},
|
{name: "VGF2P8AFFINEQBMasked128", argLength: 3, reg: w2kw, asm: "VGF2P8AFFINEQB", aux: "Int8", commutative: false, typ: "Vec128", resultInArg0: false},
|
||||||
{name: "VGF2P8AFFINEQBMasked256", argLength: 3, reg: w2kw, asm: "VGF2P8AFFINEQB", aux: "Int8", commutative: false, typ: "Vec256", resultInArg0: false},
|
{name: "VGF2P8AFFINEQBMasked256", argLength: 3, reg: w2kw, asm: "VGF2P8AFFINEQB", aux: "Int8", commutative: false, typ: "Vec256", resultInArg0: false},
|
||||||
{name: "VGF2P8AFFINEQBMasked512", argLength: 3, reg: w2kw, asm: "VGF2P8AFFINEQB", aux: "Int8", commutative: false, typ: "Vec512", resultInArg0: false},
|
{name: "VGF2P8AFFINEQBMasked512", argLength: 3, reg: w2kw, asm: "VGF2P8AFFINEQB", aux: "Int8", commutative: false, typ: "Vec512", resultInArg0: false},
|
||||||
{name: "VEXTRACTF128128", argLength: 1, reg: v11, asm: "VEXTRACTF128", aux: "Int8", commutative: false, typ: "Vec128", resultInArg0: false},
|
|
||||||
{name: "VEXTRACTI128128", argLength: 1, reg: v11, asm: "VEXTRACTI128", aux: "Int8", commutative: false, typ: "Vec128", resultInArg0: false},
|
|
||||||
{name: "VPEXTRB128", argLength: 1, reg: wgp, asm: "VPEXTRB", aux: "Int8", commutative: false, typ: "int8", resultInArg0: false},
|
{name: "VPEXTRB128", argLength: 1, reg: wgp, asm: "VPEXTRB", aux: "Int8", commutative: false, typ: "int8", resultInArg0: false},
|
||||||
{name: "VPEXTRW128", argLength: 1, reg: wgp, asm: "VPEXTRW", aux: "Int8", commutative: false, typ: "int16", resultInArg0: false},
|
{name: "VPEXTRW128", argLength: 1, reg: wgp, asm: "VPEXTRW", aux: "Int8", commutative: false, typ: "int16", resultInArg0: false},
|
||||||
{name: "VPEXTRD128", argLength: 1, reg: vgp, asm: "VPEXTRD", aux: "Int8", commutative: false, typ: "int32", resultInArg0: false},
|
{name: "VPEXTRD128", argLength: 1, reg: vgp, asm: "VPEXTRD", aux: "Int8", commutative: false, typ: "int32", resultInArg0: false},
|
||||||
{name: "VPEXTRQ128", argLength: 1, reg: vgp, asm: "VPEXTRQ", aux: "Int8", commutative: false, typ: "int64", resultInArg0: false},
|
{name: "VPEXTRQ128", argLength: 1, reg: vgp, asm: "VPEXTRQ", aux: "Int8", commutative: false, typ: "int64", resultInArg0: false},
|
||||||
|
{name: "VEXTRACTF128128", argLength: 1, reg: v11, asm: "VEXTRACTF128", aux: "Int8", commutative: false, typ: "Vec128", resultInArg0: false},
|
||||||
|
{name: "VEXTRACTF64X4256", argLength: 1, reg: w11, asm: "VEXTRACTF64X4", aux: "Int8", commutative: false, typ: "Vec256", resultInArg0: false},
|
||||||
|
{name: "VEXTRACTI128128", argLength: 1, reg: v11, asm: "VEXTRACTI128", aux: "Int8", commutative: false, typ: "Vec128", resultInArg0: false},
|
||||||
|
{name: "VEXTRACTI64X4256", argLength: 1, reg: w11, asm: "VEXTRACTI64X4", aux: "Int8", commutative: false, typ: "Vec256", resultInArg0: false},
|
||||||
{name: "VPCMPUB128", argLength: 2, reg: w2k, asm: "VPCMPUB", aux: "Int8", commutative: false, typ: "Mask", resultInArg0: false},
|
{name: "VPCMPUB128", argLength: 2, reg: w2k, asm: "VPCMPUB", aux: "Int8", commutative: false, typ: "Mask", resultInArg0: false},
|
||||||
{name: "VPCMPUB256", argLength: 2, reg: w2k, asm: "VPCMPUB", aux: "Int8", commutative: false, typ: "Mask", resultInArg0: false},
|
{name: "VPCMPUB256", argLength: 2, reg: w2k, asm: "VPCMPUB", aux: "Int8", commutative: false, typ: "Mask", resultInArg0: false},
|
||||||
{name: "VPCMPUB512", argLength: 2, reg: w2k, asm: "VPCMPUB", aux: "Int8", commutative: false, typ: "Mask", resultInArg0: false},
|
{name: "VPCMPUB512", argLength: 2, reg: w2k, asm: "VPCMPUB", aux: "Int8", commutative: false, typ: "Mask", resultInArg0: false},
|
||||||
|
|
@ -966,12 +968,14 @@ func simdAMD64Ops(v11, v21, v2k, vkv, v2kv, v2kk, v31, v3kv, vgpv, vgp, vfpv, vf
|
||||||
{name: "VPRORQMasked128", argLength: 2, reg: wkw, asm: "VPRORQ", aux: "Int8", commutative: false, typ: "Vec128", resultInArg0: false},
|
{name: "VPRORQMasked128", argLength: 2, reg: wkw, asm: "VPRORQ", aux: "Int8", commutative: false, typ: "Vec128", resultInArg0: false},
|
||||||
{name: "VPRORQMasked256", argLength: 2, reg: wkw, asm: "VPRORQ", aux: "Int8", commutative: false, typ: "Vec256", resultInArg0: false},
|
{name: "VPRORQMasked256", argLength: 2, reg: wkw, asm: "VPRORQ", aux: "Int8", commutative: false, typ: "Vec256", resultInArg0: false},
|
||||||
{name: "VPRORQMasked512", argLength: 2, reg: wkw, asm: "VPRORQ", aux: "Int8", commutative: false, typ: "Vec512", resultInArg0: false},
|
{name: "VPRORQMasked512", argLength: 2, reg: wkw, asm: "VPRORQ", aux: "Int8", commutative: false, typ: "Vec512", resultInArg0: false},
|
||||||
{name: "VINSERTF128256", argLength: 2, reg: v21, asm: "VINSERTF128", aux: "Int8", commutative: false, typ: "Vec256", resultInArg0: false},
|
|
||||||
{name: "VINSERTI128256", argLength: 2, reg: v21, asm: "VINSERTI128", aux: "Int8", commutative: false, typ: "Vec256", resultInArg0: false},
|
|
||||||
{name: "VPINSRB128", argLength: 2, reg: vgpv, asm: "VPINSRB", aux: "Int8", commutative: false, typ: "Vec128", resultInArg0: false},
|
{name: "VPINSRB128", argLength: 2, reg: vgpv, asm: "VPINSRB", aux: "Int8", commutative: false, typ: "Vec128", resultInArg0: false},
|
||||||
{name: "VPINSRW128", argLength: 2, reg: vgpv, asm: "VPINSRW", aux: "Int8", commutative: false, typ: "Vec128", resultInArg0: false},
|
{name: "VPINSRW128", argLength: 2, reg: vgpv, asm: "VPINSRW", aux: "Int8", commutative: false, typ: "Vec128", resultInArg0: false},
|
||||||
{name: "VPINSRD128", argLength: 2, reg: vgpv, asm: "VPINSRD", aux: "Int8", commutative: false, typ: "Vec128", resultInArg0: false},
|
{name: "VPINSRD128", argLength: 2, reg: vgpv, asm: "VPINSRD", aux: "Int8", commutative: false, typ: "Vec128", resultInArg0: false},
|
||||||
{name: "VPINSRQ128", argLength: 2, reg: vgpv, asm: "VPINSRQ", aux: "Int8", commutative: false, typ: "Vec128", resultInArg0: false},
|
{name: "VPINSRQ128", argLength: 2, reg: vgpv, asm: "VPINSRQ", aux: "Int8", commutative: false, typ: "Vec128", resultInArg0: false},
|
||||||
|
{name: "VINSERTF128256", argLength: 2, reg: v21, asm: "VINSERTF128", aux: "Int8", commutative: false, typ: "Vec256", resultInArg0: false},
|
||||||
|
{name: "VINSERTF64X4512", argLength: 2, reg: w21, asm: "VINSERTF64X4", aux: "Int8", commutative: false, typ: "Vec512", resultInArg0: false},
|
||||||
|
{name: "VINSERTI128256", argLength: 2, reg: v21, asm: "VINSERTI128", aux: "Int8", commutative: false, typ: "Vec256", resultInArg0: false},
|
||||||
|
{name: "VINSERTI64X4512", argLength: 2, reg: w21, asm: "VINSERTI64X4", aux: "Int8", commutative: false, typ: "Vec512", resultInArg0: false},
|
||||||
{name: "VPSHLDW128", argLength: 2, reg: w21, asm: "VPSHLDW", aux: "Int8", commutative: false, typ: "Vec128", resultInArg0: false},
|
{name: "VPSHLDW128", argLength: 2, reg: w21, asm: "VPSHLDW", aux: "Int8", commutative: false, typ: "Vec128", resultInArg0: false},
|
||||||
{name: "VPSHLDW256", argLength: 2, reg: w21, asm: "VPSHLDW", aux: "Int8", commutative: false, typ: "Vec256", resultInArg0: false},
|
{name: "VPSHLDW256", argLength: 2, reg: w21, asm: "VPSHLDW", aux: "Int8", commutative: false, typ: "Vec256", resultInArg0: false},
|
||||||
{name: "VPSHLDW512", argLength: 2, reg: w21, asm: "VPSHLDW", aux: "Int8", commutative: false, typ: "Vec512", resultInArg0: false},
|
{name: "VPSHLDW512", argLength: 2, reg: w21, asm: "VPSHLDW", aux: "Int8", commutative: false, typ: "Vec512", resultInArg0: false},
|
||||||
|
|
|
||||||
|
|
@ -410,6 +410,46 @@ func simdGenericOps() []opData {
|
||||||
{name: "GaloisFieldMulUint8x16", argLength: 2, commutative: false},
|
{name: "GaloisFieldMulUint8x16", argLength: 2, commutative: false},
|
||||||
{name: "GaloisFieldMulUint8x32", argLength: 2, commutative: false},
|
{name: "GaloisFieldMulUint8x32", argLength: 2, commutative: false},
|
||||||
{name: "GaloisFieldMulUint8x64", argLength: 2, commutative: false},
|
{name: "GaloisFieldMulUint8x64", argLength: 2, commutative: false},
|
||||||
|
{name: "GetHiFloat32x8", argLength: 1, commutative: false},
|
||||||
|
{name: "GetHiFloat32x16", argLength: 1, commutative: false},
|
||||||
|
{name: "GetHiFloat64x4", argLength: 1, commutative: false},
|
||||||
|
{name: "GetHiFloat64x8", argLength: 1, commutative: false},
|
||||||
|
{name: "GetHiInt8x32", argLength: 1, commutative: false},
|
||||||
|
{name: "GetHiInt8x64", argLength: 1, commutative: false},
|
||||||
|
{name: "GetHiInt16x16", argLength: 1, commutative: false},
|
||||||
|
{name: "GetHiInt16x32", argLength: 1, commutative: false},
|
||||||
|
{name: "GetHiInt32x8", argLength: 1, commutative: false},
|
||||||
|
{name: "GetHiInt32x16", argLength: 1, commutative: false},
|
||||||
|
{name: "GetHiInt64x4", argLength: 1, commutative: false},
|
||||||
|
{name: "GetHiInt64x8", argLength: 1, commutative: false},
|
||||||
|
{name: "GetHiUint8x32", argLength: 1, commutative: false},
|
||||||
|
{name: "GetHiUint8x64", argLength: 1, commutative: false},
|
||||||
|
{name: "GetHiUint16x16", argLength: 1, commutative: false},
|
||||||
|
{name: "GetHiUint16x32", argLength: 1, commutative: false},
|
||||||
|
{name: "GetHiUint32x8", argLength: 1, commutative: false},
|
||||||
|
{name: "GetHiUint32x16", argLength: 1, commutative: false},
|
||||||
|
{name: "GetHiUint64x4", argLength: 1, commutative: false},
|
||||||
|
{name: "GetHiUint64x8", argLength: 1, commutative: false},
|
||||||
|
{name: "GetLoFloat32x8", argLength: 1, commutative: false},
|
||||||
|
{name: "GetLoFloat32x16", argLength: 1, commutative: false},
|
||||||
|
{name: "GetLoFloat64x4", argLength: 1, commutative: false},
|
||||||
|
{name: "GetLoFloat64x8", argLength: 1, commutative: false},
|
||||||
|
{name: "GetLoInt8x32", argLength: 1, commutative: false},
|
||||||
|
{name: "GetLoInt8x64", argLength: 1, commutative: false},
|
||||||
|
{name: "GetLoInt16x16", argLength: 1, commutative: false},
|
||||||
|
{name: "GetLoInt16x32", argLength: 1, commutative: false},
|
||||||
|
{name: "GetLoInt32x8", argLength: 1, commutative: false},
|
||||||
|
{name: "GetLoInt32x16", argLength: 1, commutative: false},
|
||||||
|
{name: "GetLoInt64x4", argLength: 1, commutative: false},
|
||||||
|
{name: "GetLoInt64x8", argLength: 1, commutative: false},
|
||||||
|
{name: "GetLoUint8x32", argLength: 1, commutative: false},
|
||||||
|
{name: "GetLoUint8x64", argLength: 1, commutative: false},
|
||||||
|
{name: "GetLoUint16x16", argLength: 1, commutative: false},
|
||||||
|
{name: "GetLoUint16x32", argLength: 1, commutative: false},
|
||||||
|
{name: "GetLoUint32x8", argLength: 1, commutative: false},
|
||||||
|
{name: "GetLoUint32x16", argLength: 1, commutative: false},
|
||||||
|
{name: "GetLoUint64x4", argLength: 1, commutative: false},
|
||||||
|
{name: "GetLoUint64x8", argLength: 1, commutative: false},
|
||||||
{name: "GreaterEqualFloat32x4", argLength: 2, commutative: false},
|
{name: "GreaterEqualFloat32x4", argLength: 2, commutative: false},
|
||||||
{name: "GreaterEqualFloat32x8", argLength: 2, commutative: false},
|
{name: "GreaterEqualFloat32x8", argLength: 2, commutative: false},
|
||||||
{name: "GreaterEqualFloat32x16", argLength: 2, commutative: false},
|
{name: "GreaterEqualFloat32x16", argLength: 2, commutative: false},
|
||||||
|
|
@ -1180,6 +1220,46 @@ func simdGenericOps() []opData {
|
||||||
{name: "ScaleMaskedFloat64x2", argLength: 3, commutative: false},
|
{name: "ScaleMaskedFloat64x2", argLength: 3, commutative: false},
|
||||||
{name: "ScaleMaskedFloat64x4", argLength: 3, commutative: false},
|
{name: "ScaleMaskedFloat64x4", argLength: 3, commutative: false},
|
||||||
{name: "ScaleMaskedFloat64x8", argLength: 3, commutative: false},
|
{name: "ScaleMaskedFloat64x8", argLength: 3, commutative: false},
|
||||||
|
{name: "SetHiFloat32x8", argLength: 2, commutative: false},
|
||||||
|
{name: "SetHiFloat32x16", argLength: 2, commutative: false},
|
||||||
|
{name: "SetHiFloat64x4", argLength: 2, commutative: false},
|
||||||
|
{name: "SetHiFloat64x8", argLength: 2, commutative: false},
|
||||||
|
{name: "SetHiInt8x32", argLength: 2, commutative: false},
|
||||||
|
{name: "SetHiInt8x64", argLength: 2, commutative: false},
|
||||||
|
{name: "SetHiInt16x16", argLength: 2, commutative: false},
|
||||||
|
{name: "SetHiInt16x32", argLength: 2, commutative: false},
|
||||||
|
{name: "SetHiInt32x8", argLength: 2, commutative: false},
|
||||||
|
{name: "SetHiInt32x16", argLength: 2, commutative: false},
|
||||||
|
{name: "SetHiInt64x4", argLength: 2, commutative: false},
|
||||||
|
{name: "SetHiInt64x8", argLength: 2, commutative: false},
|
||||||
|
{name: "SetHiUint8x32", argLength: 2, commutative: false},
|
||||||
|
{name: "SetHiUint8x64", argLength: 2, commutative: false},
|
||||||
|
{name: "SetHiUint16x16", argLength: 2, commutative: false},
|
||||||
|
{name: "SetHiUint16x32", argLength: 2, commutative: false},
|
||||||
|
{name: "SetHiUint32x8", argLength: 2, commutative: false},
|
||||||
|
{name: "SetHiUint32x16", argLength: 2, commutative: false},
|
||||||
|
{name: "SetHiUint64x4", argLength: 2, commutative: false},
|
||||||
|
{name: "SetHiUint64x8", argLength: 2, commutative: false},
|
||||||
|
{name: "SetLoFloat32x8", argLength: 2, commutative: false},
|
||||||
|
{name: "SetLoFloat32x16", argLength: 2, commutative: false},
|
||||||
|
{name: "SetLoFloat64x4", argLength: 2, commutative: false},
|
||||||
|
{name: "SetLoFloat64x8", argLength: 2, commutative: false},
|
||||||
|
{name: "SetLoInt8x32", argLength: 2, commutative: false},
|
||||||
|
{name: "SetLoInt8x64", argLength: 2, commutative: false},
|
||||||
|
{name: "SetLoInt16x16", argLength: 2, commutative: false},
|
||||||
|
{name: "SetLoInt16x32", argLength: 2, commutative: false},
|
||||||
|
{name: "SetLoInt32x8", argLength: 2, commutative: false},
|
||||||
|
{name: "SetLoInt32x16", argLength: 2, commutative: false},
|
||||||
|
{name: "SetLoInt64x4", argLength: 2, commutative: false},
|
||||||
|
{name: "SetLoInt64x8", argLength: 2, commutative: false},
|
||||||
|
{name: "SetLoUint8x32", argLength: 2, commutative: false},
|
||||||
|
{name: "SetLoUint8x64", argLength: 2, commutative: false},
|
||||||
|
{name: "SetLoUint16x16", argLength: 2, commutative: false},
|
||||||
|
{name: "SetLoUint16x32", argLength: 2, commutative: false},
|
||||||
|
{name: "SetLoUint32x8", argLength: 2, commutative: false},
|
||||||
|
{name: "SetLoUint32x16", argLength: 2, commutative: false},
|
||||||
|
{name: "SetLoUint64x4", argLength: 2, commutative: false},
|
||||||
|
{name: "SetLoUint64x8", argLength: 2, commutative: false},
|
||||||
{name: "ShiftAllLeftInt16x8", argLength: 2, commutative: false},
|
{name: "ShiftAllLeftInt16x8", argLength: 2, commutative: false},
|
||||||
{name: "ShiftAllLeftInt16x16", argLength: 2, commutative: false},
|
{name: "ShiftAllLeftInt16x16", argLength: 2, commutative: false},
|
||||||
{name: "ShiftAllLeftInt16x32", argLength: 2, commutative: false},
|
{name: "ShiftAllLeftInt16x32", argLength: 2, commutative: false},
|
||||||
|
|
@ -1624,16 +1704,6 @@ func simdGenericOps() []opData {
|
||||||
{name: "GaloisFieldAffineTransformUint8x16", argLength: 2, commutative: false, aux: "Int8"},
|
{name: "GaloisFieldAffineTransformUint8x16", argLength: 2, commutative: false, aux: "Int8"},
|
||||||
{name: "GaloisFieldAffineTransformUint8x32", argLength: 2, commutative: false, aux: "Int8"},
|
{name: "GaloisFieldAffineTransformUint8x32", argLength: 2, commutative: false, aux: "Int8"},
|
||||||
{name: "GaloisFieldAffineTransformUint8x64", argLength: 2, commutative: false, aux: "Int8"},
|
{name: "GaloisFieldAffineTransformUint8x64", argLength: 2, commutative: false, aux: "Int8"},
|
||||||
{name: "Get128Float32x8", argLength: 1, commutative: false, aux: "Int8"},
|
|
||||||
{name: "Get128Float64x4", argLength: 1, commutative: false, aux: "Int8"},
|
|
||||||
{name: "Get128Int8x32", argLength: 1, commutative: false, aux: "Int8"},
|
|
||||||
{name: "Get128Int16x16", argLength: 1, commutative: false, aux: "Int8"},
|
|
||||||
{name: "Get128Int32x8", argLength: 1, commutative: false, aux: "Int8"},
|
|
||||||
{name: "Get128Int64x4", argLength: 1, commutative: false, aux: "Int8"},
|
|
||||||
{name: "Get128Uint8x32", argLength: 1, commutative: false, aux: "Int8"},
|
|
||||||
{name: "Get128Uint16x16", argLength: 1, commutative: false, aux: "Int8"},
|
|
||||||
{name: "Get128Uint32x8", argLength: 1, commutative: false, aux: "Int8"},
|
|
||||||
{name: "Get128Uint64x4", argLength: 1, commutative: false, aux: "Int8"},
|
|
||||||
{name: "GetElemInt8x16", argLength: 1, commutative: false, aux: "Int8"},
|
{name: "GetElemInt8x16", argLength: 1, commutative: false, aux: "Int8"},
|
||||||
{name: "GetElemInt16x8", argLength: 1, commutative: false, aux: "Int8"},
|
{name: "GetElemInt16x8", argLength: 1, commutative: false, aux: "Int8"},
|
||||||
{name: "GetElemInt32x4", argLength: 1, commutative: false, aux: "Int8"},
|
{name: "GetElemInt32x4", argLength: 1, commutative: false, aux: "Int8"},
|
||||||
|
|
@ -1714,16 +1784,6 @@ func simdGenericOps() []opData {
|
||||||
{name: "RoundScaledResidueMaskedFloat64x2", argLength: 2, commutative: false, aux: "Int8"},
|
{name: "RoundScaledResidueMaskedFloat64x2", argLength: 2, commutative: false, aux: "Int8"},
|
||||||
{name: "RoundScaledResidueMaskedFloat64x4", argLength: 2, commutative: false, aux: "Int8"},
|
{name: "RoundScaledResidueMaskedFloat64x4", argLength: 2, commutative: false, aux: "Int8"},
|
||||||
{name: "RoundScaledResidueMaskedFloat64x8", argLength: 2, commutative: false, aux: "Int8"},
|
{name: "RoundScaledResidueMaskedFloat64x8", argLength: 2, commutative: false, aux: "Int8"},
|
||||||
{name: "Set128Float32x8", argLength: 2, commutative: false, aux: "Int8"},
|
|
||||||
{name: "Set128Float64x4", argLength: 2, commutative: false, aux: "Int8"},
|
|
||||||
{name: "Set128Int8x32", argLength: 2, commutative: false, aux: "Int8"},
|
|
||||||
{name: "Set128Int16x16", argLength: 2, commutative: false, aux: "Int8"},
|
|
||||||
{name: "Set128Int32x8", argLength: 2, commutative: false, aux: "Int8"},
|
|
||||||
{name: "Set128Int64x4", argLength: 2, commutative: false, aux: "Int8"},
|
|
||||||
{name: "Set128Uint8x32", argLength: 2, commutative: false, aux: "Int8"},
|
|
||||||
{name: "Set128Uint16x16", argLength: 2, commutative: false, aux: "Int8"},
|
|
||||||
{name: "Set128Uint32x8", argLength: 2, commutative: false, aux: "Int8"},
|
|
||||||
{name: "Set128Uint64x4", argLength: 2, commutative: false, aux: "Int8"},
|
|
||||||
{name: "SetElemInt8x16", argLength: 2, commutative: false, aux: "Int8"},
|
{name: "SetElemInt8x16", argLength: 2, commutative: false, aux: "Int8"},
|
||||||
{name: "SetElemInt16x8", argLength: 2, commutative: false, aux: "Int8"},
|
{name: "SetElemInt16x8", argLength: 2, commutative: false, aux: "Int8"},
|
||||||
{name: "SetElemInt32x4", argLength: 2, commutative: false, aux: "Int8"},
|
{name: "SetElemInt32x4", argLength: 2, commutative: false, aux: "Int8"},
|
||||||
|
|
|
||||||
|
|
@ -2131,12 +2131,14 @@ const (
|
||||||
OpAMD64VGF2P8AFFINEQBMasked128
|
OpAMD64VGF2P8AFFINEQBMasked128
|
||||||
OpAMD64VGF2P8AFFINEQBMasked256
|
OpAMD64VGF2P8AFFINEQBMasked256
|
||||||
OpAMD64VGF2P8AFFINEQBMasked512
|
OpAMD64VGF2P8AFFINEQBMasked512
|
||||||
OpAMD64VEXTRACTF128128
|
|
||||||
OpAMD64VEXTRACTI128128
|
|
||||||
OpAMD64VPEXTRB128
|
OpAMD64VPEXTRB128
|
||||||
OpAMD64VPEXTRW128
|
OpAMD64VPEXTRW128
|
||||||
OpAMD64VPEXTRD128
|
OpAMD64VPEXTRD128
|
||||||
OpAMD64VPEXTRQ128
|
OpAMD64VPEXTRQ128
|
||||||
|
OpAMD64VEXTRACTF128128
|
||||||
|
OpAMD64VEXTRACTF64X4256
|
||||||
|
OpAMD64VEXTRACTI128128
|
||||||
|
OpAMD64VEXTRACTI64X4256
|
||||||
OpAMD64VPCMPUB128
|
OpAMD64VPCMPUB128
|
||||||
OpAMD64VPCMPUB256
|
OpAMD64VPCMPUB256
|
||||||
OpAMD64VPCMPUB512
|
OpAMD64VPCMPUB512
|
||||||
|
|
@ -2185,12 +2187,14 @@ const (
|
||||||
OpAMD64VPRORQMasked128
|
OpAMD64VPRORQMasked128
|
||||||
OpAMD64VPRORQMasked256
|
OpAMD64VPRORQMasked256
|
||||||
OpAMD64VPRORQMasked512
|
OpAMD64VPRORQMasked512
|
||||||
OpAMD64VINSERTF128256
|
|
||||||
OpAMD64VINSERTI128256
|
|
||||||
OpAMD64VPINSRB128
|
OpAMD64VPINSRB128
|
||||||
OpAMD64VPINSRW128
|
OpAMD64VPINSRW128
|
||||||
OpAMD64VPINSRD128
|
OpAMD64VPINSRD128
|
||||||
OpAMD64VPINSRQ128
|
OpAMD64VPINSRQ128
|
||||||
|
OpAMD64VINSERTF128256
|
||||||
|
OpAMD64VINSERTF64X4512
|
||||||
|
OpAMD64VINSERTI128256
|
||||||
|
OpAMD64VINSERTI64X4512
|
||||||
OpAMD64VPSHLDW128
|
OpAMD64VPSHLDW128
|
||||||
OpAMD64VPSHLDW256
|
OpAMD64VPSHLDW256
|
||||||
OpAMD64VPSHLDW512
|
OpAMD64VPSHLDW512
|
||||||
|
|
@ -4967,6 +4971,46 @@ const (
|
||||||
OpGaloisFieldMulUint8x16
|
OpGaloisFieldMulUint8x16
|
||||||
OpGaloisFieldMulUint8x32
|
OpGaloisFieldMulUint8x32
|
||||||
OpGaloisFieldMulUint8x64
|
OpGaloisFieldMulUint8x64
|
||||||
|
OpGetHiFloat32x8
|
||||||
|
OpGetHiFloat32x16
|
||||||
|
OpGetHiFloat64x4
|
||||||
|
OpGetHiFloat64x8
|
||||||
|
OpGetHiInt8x32
|
||||||
|
OpGetHiInt8x64
|
||||||
|
OpGetHiInt16x16
|
||||||
|
OpGetHiInt16x32
|
||||||
|
OpGetHiInt32x8
|
||||||
|
OpGetHiInt32x16
|
||||||
|
OpGetHiInt64x4
|
||||||
|
OpGetHiInt64x8
|
||||||
|
OpGetHiUint8x32
|
||||||
|
OpGetHiUint8x64
|
||||||
|
OpGetHiUint16x16
|
||||||
|
OpGetHiUint16x32
|
||||||
|
OpGetHiUint32x8
|
||||||
|
OpGetHiUint32x16
|
||||||
|
OpGetHiUint64x4
|
||||||
|
OpGetHiUint64x8
|
||||||
|
OpGetLoFloat32x8
|
||||||
|
OpGetLoFloat32x16
|
||||||
|
OpGetLoFloat64x4
|
||||||
|
OpGetLoFloat64x8
|
||||||
|
OpGetLoInt8x32
|
||||||
|
OpGetLoInt8x64
|
||||||
|
OpGetLoInt16x16
|
||||||
|
OpGetLoInt16x32
|
||||||
|
OpGetLoInt32x8
|
||||||
|
OpGetLoInt32x16
|
||||||
|
OpGetLoInt64x4
|
||||||
|
OpGetLoInt64x8
|
||||||
|
OpGetLoUint8x32
|
||||||
|
OpGetLoUint8x64
|
||||||
|
OpGetLoUint16x16
|
||||||
|
OpGetLoUint16x32
|
||||||
|
OpGetLoUint32x8
|
||||||
|
OpGetLoUint32x16
|
||||||
|
OpGetLoUint64x4
|
||||||
|
OpGetLoUint64x8
|
||||||
OpGreaterEqualFloat32x4
|
OpGreaterEqualFloat32x4
|
||||||
OpGreaterEqualFloat32x8
|
OpGreaterEqualFloat32x8
|
||||||
OpGreaterEqualFloat32x16
|
OpGreaterEqualFloat32x16
|
||||||
|
|
@ -5737,6 +5781,46 @@ const (
|
||||||
OpScaleMaskedFloat64x2
|
OpScaleMaskedFloat64x2
|
||||||
OpScaleMaskedFloat64x4
|
OpScaleMaskedFloat64x4
|
||||||
OpScaleMaskedFloat64x8
|
OpScaleMaskedFloat64x8
|
||||||
|
OpSetHiFloat32x8
|
||||||
|
OpSetHiFloat32x16
|
||||||
|
OpSetHiFloat64x4
|
||||||
|
OpSetHiFloat64x8
|
||||||
|
OpSetHiInt8x32
|
||||||
|
OpSetHiInt8x64
|
||||||
|
OpSetHiInt16x16
|
||||||
|
OpSetHiInt16x32
|
||||||
|
OpSetHiInt32x8
|
||||||
|
OpSetHiInt32x16
|
||||||
|
OpSetHiInt64x4
|
||||||
|
OpSetHiInt64x8
|
||||||
|
OpSetHiUint8x32
|
||||||
|
OpSetHiUint8x64
|
||||||
|
OpSetHiUint16x16
|
||||||
|
OpSetHiUint16x32
|
||||||
|
OpSetHiUint32x8
|
||||||
|
OpSetHiUint32x16
|
||||||
|
OpSetHiUint64x4
|
||||||
|
OpSetHiUint64x8
|
||||||
|
OpSetLoFloat32x8
|
||||||
|
OpSetLoFloat32x16
|
||||||
|
OpSetLoFloat64x4
|
||||||
|
OpSetLoFloat64x8
|
||||||
|
OpSetLoInt8x32
|
||||||
|
OpSetLoInt8x64
|
||||||
|
OpSetLoInt16x16
|
||||||
|
OpSetLoInt16x32
|
||||||
|
OpSetLoInt32x8
|
||||||
|
OpSetLoInt32x16
|
||||||
|
OpSetLoInt64x4
|
||||||
|
OpSetLoInt64x8
|
||||||
|
OpSetLoUint8x32
|
||||||
|
OpSetLoUint8x64
|
||||||
|
OpSetLoUint16x16
|
||||||
|
OpSetLoUint16x32
|
||||||
|
OpSetLoUint32x8
|
||||||
|
OpSetLoUint32x16
|
||||||
|
OpSetLoUint64x4
|
||||||
|
OpSetLoUint64x8
|
||||||
OpShiftAllLeftInt16x8
|
OpShiftAllLeftInt16x8
|
||||||
OpShiftAllLeftInt16x16
|
OpShiftAllLeftInt16x16
|
||||||
OpShiftAllLeftInt16x32
|
OpShiftAllLeftInt16x32
|
||||||
|
|
@ -6181,16 +6265,6 @@ const (
|
||||||
OpGaloisFieldAffineTransformUint8x16
|
OpGaloisFieldAffineTransformUint8x16
|
||||||
OpGaloisFieldAffineTransformUint8x32
|
OpGaloisFieldAffineTransformUint8x32
|
||||||
OpGaloisFieldAffineTransformUint8x64
|
OpGaloisFieldAffineTransformUint8x64
|
||||||
OpGet128Float32x8
|
|
||||||
OpGet128Float64x4
|
|
||||||
OpGet128Int8x32
|
|
||||||
OpGet128Int16x16
|
|
||||||
OpGet128Int32x8
|
|
||||||
OpGet128Int64x4
|
|
||||||
OpGet128Uint8x32
|
|
||||||
OpGet128Uint16x16
|
|
||||||
OpGet128Uint32x8
|
|
||||||
OpGet128Uint64x4
|
|
||||||
OpGetElemInt8x16
|
OpGetElemInt8x16
|
||||||
OpGetElemInt16x8
|
OpGetElemInt16x8
|
||||||
OpGetElemInt32x4
|
OpGetElemInt32x4
|
||||||
|
|
@ -6271,16 +6345,6 @@ const (
|
||||||
OpRoundScaledResidueMaskedFloat64x2
|
OpRoundScaledResidueMaskedFloat64x2
|
||||||
OpRoundScaledResidueMaskedFloat64x4
|
OpRoundScaledResidueMaskedFloat64x4
|
||||||
OpRoundScaledResidueMaskedFloat64x8
|
OpRoundScaledResidueMaskedFloat64x8
|
||||||
OpSet128Float32x8
|
|
||||||
OpSet128Float64x4
|
|
||||||
OpSet128Int8x32
|
|
||||||
OpSet128Int16x16
|
|
||||||
OpSet128Int32x8
|
|
||||||
OpSet128Int64x4
|
|
||||||
OpSet128Uint8x32
|
|
||||||
OpSet128Uint16x16
|
|
||||||
OpSet128Uint32x8
|
|
||||||
OpSet128Uint64x4
|
|
||||||
OpSetElemInt8x16
|
OpSetElemInt8x16
|
||||||
OpSetElemInt16x8
|
OpSetElemInt16x8
|
||||||
OpSetElemInt32x4
|
OpSetElemInt32x4
|
||||||
|
|
@ -33033,34 +33097,6 @@ var opcodeTable = [...]opInfo{
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
{
|
|
||||||
name: "VEXTRACTF128128",
|
|
||||||
auxType: auxInt8,
|
|
||||||
argLen: 1,
|
|
||||||
asm: x86.AVEXTRACTF128,
|
|
||||||
reg: regInfo{
|
|
||||||
inputs: []inputInfo{
|
|
||||||
{0, 2147418112}, // X0 X1 X2 X3 X4 X5 X6 X7 X8 X9 X10 X11 X12 X13 X14
|
|
||||||
},
|
|
||||||
outputs: []outputInfo{
|
|
||||||
{0, 2147418112}, // X0 X1 X2 X3 X4 X5 X6 X7 X8 X9 X10 X11 X12 X13 X14
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: "VEXTRACTI128128",
|
|
||||||
auxType: auxInt8,
|
|
||||||
argLen: 1,
|
|
||||||
asm: x86.AVEXTRACTI128,
|
|
||||||
reg: regInfo{
|
|
||||||
inputs: []inputInfo{
|
|
||||||
{0, 2147418112}, // X0 X1 X2 X3 X4 X5 X6 X7 X8 X9 X10 X11 X12 X13 X14
|
|
||||||
},
|
|
||||||
outputs: []outputInfo{
|
|
||||||
{0, 2147418112}, // X0 X1 X2 X3 X4 X5 X6 X7 X8 X9 X10 X11 X12 X13 X14
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
name: "VPEXTRB128",
|
name: "VPEXTRB128",
|
||||||
auxType: auxInt8,
|
auxType: auxInt8,
|
||||||
|
|
@ -33117,6 +33153,62 @@ var opcodeTable = [...]opInfo{
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
name: "VEXTRACTF128128",
|
||||||
|
auxType: auxInt8,
|
||||||
|
argLen: 1,
|
||||||
|
asm: x86.AVEXTRACTF128,
|
||||||
|
reg: regInfo{
|
||||||
|
inputs: []inputInfo{
|
||||||
|
{0, 2147418112}, // X0 X1 X2 X3 X4 X5 X6 X7 X8 X9 X10 X11 X12 X13 X14
|
||||||
|
},
|
||||||
|
outputs: []outputInfo{
|
||||||
|
{0, 2147418112}, // X0 X1 X2 X3 X4 X5 X6 X7 X8 X9 X10 X11 X12 X13 X14
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "VEXTRACTF64X4256",
|
||||||
|
auxType: auxInt8,
|
||||||
|
argLen: 1,
|
||||||
|
asm: x86.AVEXTRACTF64X4,
|
||||||
|
reg: regInfo{
|
||||||
|
inputs: []inputInfo{
|
||||||
|
{0, 281472829161472}, // X0 X1 X2 X3 X4 X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X16 X17 X18 X19 X20 X21 X22 X23 X24 X25 X26 X27 X28 X29 X30 X31
|
||||||
|
},
|
||||||
|
outputs: []outputInfo{
|
||||||
|
{0, 281472829161472}, // X0 X1 X2 X3 X4 X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X16 X17 X18 X19 X20 X21 X22 X23 X24 X25 X26 X27 X28 X29 X30 X31
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "VEXTRACTI128128",
|
||||||
|
auxType: auxInt8,
|
||||||
|
argLen: 1,
|
||||||
|
asm: x86.AVEXTRACTI128,
|
||||||
|
reg: regInfo{
|
||||||
|
inputs: []inputInfo{
|
||||||
|
{0, 2147418112}, // X0 X1 X2 X3 X4 X5 X6 X7 X8 X9 X10 X11 X12 X13 X14
|
||||||
|
},
|
||||||
|
outputs: []outputInfo{
|
||||||
|
{0, 2147418112}, // X0 X1 X2 X3 X4 X5 X6 X7 X8 X9 X10 X11 X12 X13 X14
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "VEXTRACTI64X4256",
|
||||||
|
auxType: auxInt8,
|
||||||
|
argLen: 1,
|
||||||
|
asm: x86.AVEXTRACTI64X4,
|
||||||
|
reg: regInfo{
|
||||||
|
inputs: []inputInfo{
|
||||||
|
{0, 281472829161472}, // X0 X1 X2 X3 X4 X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X16 X17 X18 X19 X20 X21 X22 X23 X24 X25 X26 X27 X28 X29 X30 X31
|
||||||
|
},
|
||||||
|
outputs: []outputInfo{
|
||||||
|
{0, 281472829161472}, // X0 X1 X2 X3 X4 X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X16 X17 X18 X19 X20 X21 X22 X23 X24 X25 X26 X27 X28 X29 X30 X31
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
{
|
{
|
||||||
name: "VPCMPUB128",
|
name: "VPCMPUB128",
|
||||||
auxType: auxInt8,
|
auxType: auxInt8,
|
||||||
|
|
@ -33825,36 +33917,6 @@ var opcodeTable = [...]opInfo{
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
{
|
|
||||||
name: "VINSERTF128256",
|
|
||||||
auxType: auxInt8,
|
|
||||||
argLen: 2,
|
|
||||||
asm: x86.AVINSERTF128,
|
|
||||||
reg: regInfo{
|
|
||||||
inputs: []inputInfo{
|
|
||||||
{0, 2147418112}, // X0 X1 X2 X3 X4 X5 X6 X7 X8 X9 X10 X11 X12 X13 X14
|
|
||||||
{1, 2147418112}, // X0 X1 X2 X3 X4 X5 X6 X7 X8 X9 X10 X11 X12 X13 X14
|
|
||||||
},
|
|
||||||
outputs: []outputInfo{
|
|
||||||
{0, 2147418112}, // X0 X1 X2 X3 X4 X5 X6 X7 X8 X9 X10 X11 X12 X13 X14
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: "VINSERTI128256",
|
|
||||||
auxType: auxInt8,
|
|
||||||
argLen: 2,
|
|
||||||
asm: x86.AVINSERTI128,
|
|
||||||
reg: regInfo{
|
|
||||||
inputs: []inputInfo{
|
|
||||||
{0, 2147418112}, // X0 X1 X2 X3 X4 X5 X6 X7 X8 X9 X10 X11 X12 X13 X14
|
|
||||||
{1, 2147418112}, // X0 X1 X2 X3 X4 X5 X6 X7 X8 X9 X10 X11 X12 X13 X14
|
|
||||||
},
|
|
||||||
outputs: []outputInfo{
|
|
||||||
{0, 2147418112}, // X0 X1 X2 X3 X4 X5 X6 X7 X8 X9 X10 X11 X12 X13 X14
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
name: "VPINSRB128",
|
name: "VPINSRB128",
|
||||||
auxType: auxInt8,
|
auxType: auxInt8,
|
||||||
|
|
@ -33915,6 +33977,66 @@ var opcodeTable = [...]opInfo{
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
name: "VINSERTF128256",
|
||||||
|
auxType: auxInt8,
|
||||||
|
argLen: 2,
|
||||||
|
asm: x86.AVINSERTF128,
|
||||||
|
reg: regInfo{
|
||||||
|
inputs: []inputInfo{
|
||||||
|
{0, 2147418112}, // X0 X1 X2 X3 X4 X5 X6 X7 X8 X9 X10 X11 X12 X13 X14
|
||||||
|
{1, 2147418112}, // X0 X1 X2 X3 X4 X5 X6 X7 X8 X9 X10 X11 X12 X13 X14
|
||||||
|
},
|
||||||
|
outputs: []outputInfo{
|
||||||
|
{0, 2147418112}, // X0 X1 X2 X3 X4 X5 X6 X7 X8 X9 X10 X11 X12 X13 X14
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "VINSERTF64X4512",
|
||||||
|
auxType: auxInt8,
|
||||||
|
argLen: 2,
|
||||||
|
asm: x86.AVINSERTF64X4,
|
||||||
|
reg: regInfo{
|
||||||
|
inputs: []inputInfo{
|
||||||
|
{0, 281472829161472}, // X0 X1 X2 X3 X4 X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X16 X17 X18 X19 X20 X21 X22 X23 X24 X25 X26 X27 X28 X29 X30 X31
|
||||||
|
{1, 281472829161472}, // X0 X1 X2 X3 X4 X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X16 X17 X18 X19 X20 X21 X22 X23 X24 X25 X26 X27 X28 X29 X30 X31
|
||||||
|
},
|
||||||
|
outputs: []outputInfo{
|
||||||
|
{0, 281472829161472}, // X0 X1 X2 X3 X4 X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X16 X17 X18 X19 X20 X21 X22 X23 X24 X25 X26 X27 X28 X29 X30 X31
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "VINSERTI128256",
|
||||||
|
auxType: auxInt8,
|
||||||
|
argLen: 2,
|
||||||
|
asm: x86.AVINSERTI128,
|
||||||
|
reg: regInfo{
|
||||||
|
inputs: []inputInfo{
|
||||||
|
{0, 2147418112}, // X0 X1 X2 X3 X4 X5 X6 X7 X8 X9 X10 X11 X12 X13 X14
|
||||||
|
{1, 2147418112}, // X0 X1 X2 X3 X4 X5 X6 X7 X8 X9 X10 X11 X12 X13 X14
|
||||||
|
},
|
||||||
|
outputs: []outputInfo{
|
||||||
|
{0, 2147418112}, // X0 X1 X2 X3 X4 X5 X6 X7 X8 X9 X10 X11 X12 X13 X14
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "VINSERTI64X4512",
|
||||||
|
auxType: auxInt8,
|
||||||
|
argLen: 2,
|
||||||
|
asm: x86.AVINSERTI64X4,
|
||||||
|
reg: regInfo{
|
||||||
|
inputs: []inputInfo{
|
||||||
|
{0, 281472829161472}, // X0 X1 X2 X3 X4 X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X16 X17 X18 X19 X20 X21 X22 X23 X24 X25 X26 X27 X28 X29 X30 X31
|
||||||
|
{1, 281472829161472}, // X0 X1 X2 X3 X4 X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X16 X17 X18 X19 X20 X21 X22 X23 X24 X25 X26 X27 X28 X29 X30 X31
|
||||||
|
},
|
||||||
|
outputs: []outputInfo{
|
||||||
|
{0, 281472829161472}, // X0 X1 X2 X3 X4 X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X16 X17 X18 X19 X20 X21 X22 X23 X24 X25 X26 X27 X28 X29 X30 X31
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
{
|
{
|
||||||
name: "VPSHLDW128",
|
name: "VPSHLDW128",
|
||||||
auxType: auxInt8,
|
auxType: auxInt8,
|
||||||
|
|
@ -64937,6 +65059,206 @@ var opcodeTable = [...]opInfo{
|
||||||
argLen: 2,
|
argLen: 2,
|
||||||
generic: true,
|
generic: true,
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
name: "GetHiFloat32x8",
|
||||||
|
argLen: 1,
|
||||||
|
generic: true,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "GetHiFloat32x16",
|
||||||
|
argLen: 1,
|
||||||
|
generic: true,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "GetHiFloat64x4",
|
||||||
|
argLen: 1,
|
||||||
|
generic: true,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "GetHiFloat64x8",
|
||||||
|
argLen: 1,
|
||||||
|
generic: true,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "GetHiInt8x32",
|
||||||
|
argLen: 1,
|
||||||
|
generic: true,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "GetHiInt8x64",
|
||||||
|
argLen: 1,
|
||||||
|
generic: true,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "GetHiInt16x16",
|
||||||
|
argLen: 1,
|
||||||
|
generic: true,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "GetHiInt16x32",
|
||||||
|
argLen: 1,
|
||||||
|
generic: true,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "GetHiInt32x8",
|
||||||
|
argLen: 1,
|
||||||
|
generic: true,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "GetHiInt32x16",
|
||||||
|
argLen: 1,
|
||||||
|
generic: true,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "GetHiInt64x4",
|
||||||
|
argLen: 1,
|
||||||
|
generic: true,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "GetHiInt64x8",
|
||||||
|
argLen: 1,
|
||||||
|
generic: true,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "GetHiUint8x32",
|
||||||
|
argLen: 1,
|
||||||
|
generic: true,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "GetHiUint8x64",
|
||||||
|
argLen: 1,
|
||||||
|
generic: true,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "GetHiUint16x16",
|
||||||
|
argLen: 1,
|
||||||
|
generic: true,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "GetHiUint16x32",
|
||||||
|
argLen: 1,
|
||||||
|
generic: true,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "GetHiUint32x8",
|
||||||
|
argLen: 1,
|
||||||
|
generic: true,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "GetHiUint32x16",
|
||||||
|
argLen: 1,
|
||||||
|
generic: true,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "GetHiUint64x4",
|
||||||
|
argLen: 1,
|
||||||
|
generic: true,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "GetHiUint64x8",
|
||||||
|
argLen: 1,
|
||||||
|
generic: true,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "GetLoFloat32x8",
|
||||||
|
argLen: 1,
|
||||||
|
generic: true,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "GetLoFloat32x16",
|
||||||
|
argLen: 1,
|
||||||
|
generic: true,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "GetLoFloat64x4",
|
||||||
|
argLen: 1,
|
||||||
|
generic: true,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "GetLoFloat64x8",
|
||||||
|
argLen: 1,
|
||||||
|
generic: true,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "GetLoInt8x32",
|
||||||
|
argLen: 1,
|
||||||
|
generic: true,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "GetLoInt8x64",
|
||||||
|
argLen: 1,
|
||||||
|
generic: true,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "GetLoInt16x16",
|
||||||
|
argLen: 1,
|
||||||
|
generic: true,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "GetLoInt16x32",
|
||||||
|
argLen: 1,
|
||||||
|
generic: true,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "GetLoInt32x8",
|
||||||
|
argLen: 1,
|
||||||
|
generic: true,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "GetLoInt32x16",
|
||||||
|
argLen: 1,
|
||||||
|
generic: true,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "GetLoInt64x4",
|
||||||
|
argLen: 1,
|
||||||
|
generic: true,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "GetLoInt64x8",
|
||||||
|
argLen: 1,
|
||||||
|
generic: true,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "GetLoUint8x32",
|
||||||
|
argLen: 1,
|
||||||
|
generic: true,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "GetLoUint8x64",
|
||||||
|
argLen: 1,
|
||||||
|
generic: true,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "GetLoUint16x16",
|
||||||
|
argLen: 1,
|
||||||
|
generic: true,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "GetLoUint16x32",
|
||||||
|
argLen: 1,
|
||||||
|
generic: true,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "GetLoUint32x8",
|
||||||
|
argLen: 1,
|
||||||
|
generic: true,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "GetLoUint32x16",
|
||||||
|
argLen: 1,
|
||||||
|
generic: true,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "GetLoUint64x4",
|
||||||
|
argLen: 1,
|
||||||
|
generic: true,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "GetLoUint64x8",
|
||||||
|
argLen: 1,
|
||||||
|
generic: true,
|
||||||
|
},
|
||||||
{
|
{
|
||||||
name: "GreaterEqualFloat32x4",
|
name: "GreaterEqualFloat32x4",
|
||||||
argLen: 2,
|
argLen: 2,
|
||||||
|
|
@ -69073,6 +69395,206 @@ var opcodeTable = [...]opInfo{
|
||||||
argLen: 3,
|
argLen: 3,
|
||||||
generic: true,
|
generic: true,
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
name: "SetHiFloat32x8",
|
||||||
|
argLen: 2,
|
||||||
|
generic: true,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "SetHiFloat32x16",
|
||||||
|
argLen: 2,
|
||||||
|
generic: true,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "SetHiFloat64x4",
|
||||||
|
argLen: 2,
|
||||||
|
generic: true,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "SetHiFloat64x8",
|
||||||
|
argLen: 2,
|
||||||
|
generic: true,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "SetHiInt8x32",
|
||||||
|
argLen: 2,
|
||||||
|
generic: true,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "SetHiInt8x64",
|
||||||
|
argLen: 2,
|
||||||
|
generic: true,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "SetHiInt16x16",
|
||||||
|
argLen: 2,
|
||||||
|
generic: true,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "SetHiInt16x32",
|
||||||
|
argLen: 2,
|
||||||
|
generic: true,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "SetHiInt32x8",
|
||||||
|
argLen: 2,
|
||||||
|
generic: true,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "SetHiInt32x16",
|
||||||
|
argLen: 2,
|
||||||
|
generic: true,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "SetHiInt64x4",
|
||||||
|
argLen: 2,
|
||||||
|
generic: true,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "SetHiInt64x8",
|
||||||
|
argLen: 2,
|
||||||
|
generic: true,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "SetHiUint8x32",
|
||||||
|
argLen: 2,
|
||||||
|
generic: true,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "SetHiUint8x64",
|
||||||
|
argLen: 2,
|
||||||
|
generic: true,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "SetHiUint16x16",
|
||||||
|
argLen: 2,
|
||||||
|
generic: true,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "SetHiUint16x32",
|
||||||
|
argLen: 2,
|
||||||
|
generic: true,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "SetHiUint32x8",
|
||||||
|
argLen: 2,
|
||||||
|
generic: true,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "SetHiUint32x16",
|
||||||
|
argLen: 2,
|
||||||
|
generic: true,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "SetHiUint64x4",
|
||||||
|
argLen: 2,
|
||||||
|
generic: true,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "SetHiUint64x8",
|
||||||
|
argLen: 2,
|
||||||
|
generic: true,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "SetLoFloat32x8",
|
||||||
|
argLen: 2,
|
||||||
|
generic: true,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "SetLoFloat32x16",
|
||||||
|
argLen: 2,
|
||||||
|
generic: true,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "SetLoFloat64x4",
|
||||||
|
argLen: 2,
|
||||||
|
generic: true,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "SetLoFloat64x8",
|
||||||
|
argLen: 2,
|
||||||
|
generic: true,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "SetLoInt8x32",
|
||||||
|
argLen: 2,
|
||||||
|
generic: true,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "SetLoInt8x64",
|
||||||
|
argLen: 2,
|
||||||
|
generic: true,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "SetLoInt16x16",
|
||||||
|
argLen: 2,
|
||||||
|
generic: true,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "SetLoInt16x32",
|
||||||
|
argLen: 2,
|
||||||
|
generic: true,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "SetLoInt32x8",
|
||||||
|
argLen: 2,
|
||||||
|
generic: true,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "SetLoInt32x16",
|
||||||
|
argLen: 2,
|
||||||
|
generic: true,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "SetLoInt64x4",
|
||||||
|
argLen: 2,
|
||||||
|
generic: true,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "SetLoInt64x8",
|
||||||
|
argLen: 2,
|
||||||
|
generic: true,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "SetLoUint8x32",
|
||||||
|
argLen: 2,
|
||||||
|
generic: true,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "SetLoUint8x64",
|
||||||
|
argLen: 2,
|
||||||
|
generic: true,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "SetLoUint16x16",
|
||||||
|
argLen: 2,
|
||||||
|
generic: true,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "SetLoUint16x32",
|
||||||
|
argLen: 2,
|
||||||
|
generic: true,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "SetLoUint32x8",
|
||||||
|
argLen: 2,
|
||||||
|
generic: true,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "SetLoUint32x16",
|
||||||
|
argLen: 2,
|
||||||
|
generic: true,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "SetLoUint64x4",
|
||||||
|
argLen: 2,
|
||||||
|
generic: true,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "SetLoUint64x8",
|
||||||
|
argLen: 2,
|
||||||
|
generic: true,
|
||||||
|
},
|
||||||
{
|
{
|
||||||
name: "ShiftAllLeftInt16x8",
|
name: "ShiftAllLeftInt16x8",
|
||||||
argLen: 2,
|
argLen: 2,
|
||||||
|
|
@ -71389,66 +71911,6 @@ var opcodeTable = [...]opInfo{
|
||||||
argLen: 2,
|
argLen: 2,
|
||||||
generic: true,
|
generic: true,
|
||||||
},
|
},
|
||||||
{
|
|
||||||
name: "Get128Float32x8",
|
|
||||||
auxType: auxInt8,
|
|
||||||
argLen: 1,
|
|
||||||
generic: true,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: "Get128Float64x4",
|
|
||||||
auxType: auxInt8,
|
|
||||||
argLen: 1,
|
|
||||||
generic: true,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: "Get128Int8x32",
|
|
||||||
auxType: auxInt8,
|
|
||||||
argLen: 1,
|
|
||||||
generic: true,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: "Get128Int16x16",
|
|
||||||
auxType: auxInt8,
|
|
||||||
argLen: 1,
|
|
||||||
generic: true,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: "Get128Int32x8",
|
|
||||||
auxType: auxInt8,
|
|
||||||
argLen: 1,
|
|
||||||
generic: true,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: "Get128Int64x4",
|
|
||||||
auxType: auxInt8,
|
|
||||||
argLen: 1,
|
|
||||||
generic: true,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: "Get128Uint8x32",
|
|
||||||
auxType: auxInt8,
|
|
||||||
argLen: 1,
|
|
||||||
generic: true,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: "Get128Uint16x16",
|
|
||||||
auxType: auxInt8,
|
|
||||||
argLen: 1,
|
|
||||||
generic: true,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: "Get128Uint32x8",
|
|
||||||
auxType: auxInt8,
|
|
||||||
argLen: 1,
|
|
||||||
generic: true,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: "Get128Uint64x4",
|
|
||||||
auxType: auxInt8,
|
|
||||||
argLen: 1,
|
|
||||||
generic: true,
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
name: "GetElemInt8x16",
|
name: "GetElemInt8x16",
|
||||||
auxType: auxInt8,
|
auxType: auxInt8,
|
||||||
|
|
@ -71929,66 +72391,6 @@ var opcodeTable = [...]opInfo{
|
||||||
argLen: 2,
|
argLen: 2,
|
||||||
generic: true,
|
generic: true,
|
||||||
},
|
},
|
||||||
{
|
|
||||||
name: "Set128Float32x8",
|
|
||||||
auxType: auxInt8,
|
|
||||||
argLen: 2,
|
|
||||||
generic: true,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: "Set128Float64x4",
|
|
||||||
auxType: auxInt8,
|
|
||||||
argLen: 2,
|
|
||||||
generic: true,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: "Set128Int8x32",
|
|
||||||
auxType: auxInt8,
|
|
||||||
argLen: 2,
|
|
||||||
generic: true,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: "Set128Int16x16",
|
|
||||||
auxType: auxInt8,
|
|
||||||
argLen: 2,
|
|
||||||
generic: true,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: "Set128Int32x8",
|
|
||||||
auxType: auxInt8,
|
|
||||||
argLen: 2,
|
|
||||||
generic: true,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: "Set128Int64x4",
|
|
||||||
auxType: auxInt8,
|
|
||||||
argLen: 2,
|
|
||||||
generic: true,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: "Set128Uint8x32",
|
|
||||||
auxType: auxInt8,
|
|
||||||
argLen: 2,
|
|
||||||
generic: true,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: "Set128Uint16x16",
|
|
||||||
auxType: auxInt8,
|
|
||||||
argLen: 2,
|
|
||||||
generic: true,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: "Set128Uint32x8",
|
|
||||||
auxType: auxInt8,
|
|
||||||
argLen: 2,
|
|
||||||
generic: true,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: "Set128Uint64x4",
|
|
||||||
auxType: auxInt8,
|
|
||||||
argLen: 2,
|
|
||||||
generic: true,
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
name: "SetElemInt8x16",
|
name: "SetElemInt8x16",
|
||||||
auxType: auxInt8,
|
auxType: auxInt8,
|
||||||
|
|
|
||||||
File diff suppressed because it is too large
Load diff
|
|
@ -478,16 +478,6 @@ func simdIntrinsics(addF func(pkg, fn string, b intrinsicBuilder, archFamilies .
|
||||||
addF(simdPackage, "Uint8x16.GaloisFieldMulMasked", opLen3(ssa.OpGaloisFieldMulMaskedUint8x16, types.TypeVec128), sys.AMD64)
|
addF(simdPackage, "Uint8x16.GaloisFieldMulMasked", opLen3(ssa.OpGaloisFieldMulMaskedUint8x16, types.TypeVec128), sys.AMD64)
|
||||||
addF(simdPackage, "Uint8x32.GaloisFieldMulMasked", opLen3(ssa.OpGaloisFieldMulMaskedUint8x32, types.TypeVec256), sys.AMD64)
|
addF(simdPackage, "Uint8x32.GaloisFieldMulMasked", opLen3(ssa.OpGaloisFieldMulMaskedUint8x32, types.TypeVec256), sys.AMD64)
|
||||||
addF(simdPackage, "Uint8x64.GaloisFieldMulMasked", opLen3(ssa.OpGaloisFieldMulMaskedUint8x64, types.TypeVec512), sys.AMD64)
|
addF(simdPackage, "Uint8x64.GaloisFieldMulMasked", opLen3(ssa.OpGaloisFieldMulMaskedUint8x64, types.TypeVec512), sys.AMD64)
|
||||||
addF(simdPackage, "Float32x8.Get128", opLen1Imm8(ssa.OpGet128Float32x8, types.TypeVec128, 0), sys.AMD64)
|
|
||||||
addF(simdPackage, "Float64x4.Get128", opLen1Imm8(ssa.OpGet128Float64x4, types.TypeVec128, 0), sys.AMD64)
|
|
||||||
addF(simdPackage, "Int8x32.Get128", opLen1Imm8(ssa.OpGet128Int8x32, types.TypeVec128, 0), sys.AMD64)
|
|
||||||
addF(simdPackage, "Int16x16.Get128", opLen1Imm8(ssa.OpGet128Int16x16, types.TypeVec128, 0), sys.AMD64)
|
|
||||||
addF(simdPackage, "Int32x8.Get128", opLen1Imm8(ssa.OpGet128Int32x8, types.TypeVec128, 0), sys.AMD64)
|
|
||||||
addF(simdPackage, "Int64x4.Get128", opLen1Imm8(ssa.OpGet128Int64x4, types.TypeVec128, 0), sys.AMD64)
|
|
||||||
addF(simdPackage, "Uint8x32.Get128", opLen1Imm8(ssa.OpGet128Uint8x32, types.TypeVec128, 0), sys.AMD64)
|
|
||||||
addF(simdPackage, "Uint16x16.Get128", opLen1Imm8(ssa.OpGet128Uint16x16, types.TypeVec128, 0), sys.AMD64)
|
|
||||||
addF(simdPackage, "Uint32x8.Get128", opLen1Imm8(ssa.OpGet128Uint32x8, types.TypeVec128, 0), sys.AMD64)
|
|
||||||
addF(simdPackage, "Uint64x4.Get128", opLen1Imm8(ssa.OpGet128Uint64x4, types.TypeVec128, 0), sys.AMD64)
|
|
||||||
addF(simdPackage, "Int8x16.GetElem", opLen1Imm8(ssa.OpGetElemInt8x16, types.Types[types.TINT8], 0), sys.AMD64)
|
addF(simdPackage, "Int8x16.GetElem", opLen1Imm8(ssa.OpGetElemInt8x16, types.Types[types.TINT8], 0), sys.AMD64)
|
||||||
addF(simdPackage, "Int16x8.GetElem", opLen1Imm8(ssa.OpGetElemInt16x8, types.Types[types.TINT16], 0), sys.AMD64)
|
addF(simdPackage, "Int16x8.GetElem", opLen1Imm8(ssa.OpGetElemInt16x8, types.Types[types.TINT16], 0), sys.AMD64)
|
||||||
addF(simdPackage, "Int32x4.GetElem", opLen1Imm8(ssa.OpGetElemInt32x4, types.Types[types.TINT32], 0), sys.AMD64)
|
addF(simdPackage, "Int32x4.GetElem", opLen1Imm8(ssa.OpGetElemInt32x4, types.Types[types.TINT32], 0), sys.AMD64)
|
||||||
|
|
@ -496,6 +486,46 @@ func simdIntrinsics(addF func(pkg, fn string, b intrinsicBuilder, archFamilies .
|
||||||
addF(simdPackage, "Uint16x8.GetElem", opLen1Imm8(ssa.OpGetElemUint16x8, types.Types[types.TUINT16], 0), sys.AMD64)
|
addF(simdPackage, "Uint16x8.GetElem", opLen1Imm8(ssa.OpGetElemUint16x8, types.Types[types.TUINT16], 0), sys.AMD64)
|
||||||
addF(simdPackage, "Uint32x4.GetElem", opLen1Imm8(ssa.OpGetElemUint32x4, types.Types[types.TUINT32], 0), sys.AMD64)
|
addF(simdPackage, "Uint32x4.GetElem", opLen1Imm8(ssa.OpGetElemUint32x4, types.Types[types.TUINT32], 0), sys.AMD64)
|
||||||
addF(simdPackage, "Uint64x2.GetElem", opLen1Imm8(ssa.OpGetElemUint64x2, types.Types[types.TUINT64], 0), sys.AMD64)
|
addF(simdPackage, "Uint64x2.GetElem", opLen1Imm8(ssa.OpGetElemUint64x2, types.Types[types.TUINT64], 0), sys.AMD64)
|
||||||
|
addF(simdPackage, "Float32x8.GetHi", opLen1(ssa.OpGetHiFloat32x8, types.TypeVec128), sys.AMD64)
|
||||||
|
addF(simdPackage, "Float32x16.GetHi", opLen1(ssa.OpGetHiFloat32x16, types.TypeVec256), sys.AMD64)
|
||||||
|
addF(simdPackage, "Float64x4.GetHi", opLen1(ssa.OpGetHiFloat64x4, types.TypeVec128), sys.AMD64)
|
||||||
|
addF(simdPackage, "Float64x8.GetHi", opLen1(ssa.OpGetHiFloat64x8, types.TypeVec256), sys.AMD64)
|
||||||
|
addF(simdPackage, "Int8x32.GetHi", opLen1(ssa.OpGetHiInt8x32, types.TypeVec128), sys.AMD64)
|
||||||
|
addF(simdPackage, "Int8x64.GetHi", opLen1(ssa.OpGetHiInt8x64, types.TypeVec256), sys.AMD64)
|
||||||
|
addF(simdPackage, "Int16x16.GetHi", opLen1(ssa.OpGetHiInt16x16, types.TypeVec128), sys.AMD64)
|
||||||
|
addF(simdPackage, "Int16x32.GetHi", opLen1(ssa.OpGetHiInt16x32, types.TypeVec256), sys.AMD64)
|
||||||
|
addF(simdPackage, "Int32x8.GetHi", opLen1(ssa.OpGetHiInt32x8, types.TypeVec128), sys.AMD64)
|
||||||
|
addF(simdPackage, "Int32x16.GetHi", opLen1(ssa.OpGetHiInt32x16, types.TypeVec256), sys.AMD64)
|
||||||
|
addF(simdPackage, "Int64x4.GetHi", opLen1(ssa.OpGetHiInt64x4, types.TypeVec128), sys.AMD64)
|
||||||
|
addF(simdPackage, "Int64x8.GetHi", opLen1(ssa.OpGetHiInt64x8, types.TypeVec256), sys.AMD64)
|
||||||
|
addF(simdPackage, "Uint8x32.GetHi", opLen1(ssa.OpGetHiUint8x32, types.TypeVec128), sys.AMD64)
|
||||||
|
addF(simdPackage, "Uint8x64.GetHi", opLen1(ssa.OpGetHiUint8x64, types.TypeVec256), sys.AMD64)
|
||||||
|
addF(simdPackage, "Uint16x16.GetHi", opLen1(ssa.OpGetHiUint16x16, types.TypeVec128), sys.AMD64)
|
||||||
|
addF(simdPackage, "Uint16x32.GetHi", opLen1(ssa.OpGetHiUint16x32, types.TypeVec256), sys.AMD64)
|
||||||
|
addF(simdPackage, "Uint32x8.GetHi", opLen1(ssa.OpGetHiUint32x8, types.TypeVec128), sys.AMD64)
|
||||||
|
addF(simdPackage, "Uint32x16.GetHi", opLen1(ssa.OpGetHiUint32x16, types.TypeVec256), sys.AMD64)
|
||||||
|
addF(simdPackage, "Uint64x4.GetHi", opLen1(ssa.OpGetHiUint64x4, types.TypeVec128), sys.AMD64)
|
||||||
|
addF(simdPackage, "Uint64x8.GetHi", opLen1(ssa.OpGetHiUint64x8, types.TypeVec256), sys.AMD64)
|
||||||
|
addF(simdPackage, "Float32x8.GetLo", opLen1(ssa.OpGetLoFloat32x8, types.TypeVec128), sys.AMD64)
|
||||||
|
addF(simdPackage, "Float32x16.GetLo", opLen1(ssa.OpGetLoFloat32x16, types.TypeVec256), sys.AMD64)
|
||||||
|
addF(simdPackage, "Float64x4.GetLo", opLen1(ssa.OpGetLoFloat64x4, types.TypeVec128), sys.AMD64)
|
||||||
|
addF(simdPackage, "Float64x8.GetLo", opLen1(ssa.OpGetLoFloat64x8, types.TypeVec256), sys.AMD64)
|
||||||
|
addF(simdPackage, "Int8x32.GetLo", opLen1(ssa.OpGetLoInt8x32, types.TypeVec128), sys.AMD64)
|
||||||
|
addF(simdPackage, "Int8x64.GetLo", opLen1(ssa.OpGetLoInt8x64, types.TypeVec256), sys.AMD64)
|
||||||
|
addF(simdPackage, "Int16x16.GetLo", opLen1(ssa.OpGetLoInt16x16, types.TypeVec128), sys.AMD64)
|
||||||
|
addF(simdPackage, "Int16x32.GetLo", opLen1(ssa.OpGetLoInt16x32, types.TypeVec256), sys.AMD64)
|
||||||
|
addF(simdPackage, "Int32x8.GetLo", opLen1(ssa.OpGetLoInt32x8, types.TypeVec128), sys.AMD64)
|
||||||
|
addF(simdPackage, "Int32x16.GetLo", opLen1(ssa.OpGetLoInt32x16, types.TypeVec256), sys.AMD64)
|
||||||
|
addF(simdPackage, "Int64x4.GetLo", opLen1(ssa.OpGetLoInt64x4, types.TypeVec128), sys.AMD64)
|
||||||
|
addF(simdPackage, "Int64x8.GetLo", opLen1(ssa.OpGetLoInt64x8, types.TypeVec256), sys.AMD64)
|
||||||
|
addF(simdPackage, "Uint8x32.GetLo", opLen1(ssa.OpGetLoUint8x32, types.TypeVec128), sys.AMD64)
|
||||||
|
addF(simdPackage, "Uint8x64.GetLo", opLen1(ssa.OpGetLoUint8x64, types.TypeVec256), sys.AMD64)
|
||||||
|
addF(simdPackage, "Uint16x16.GetLo", opLen1(ssa.OpGetLoUint16x16, types.TypeVec128), sys.AMD64)
|
||||||
|
addF(simdPackage, "Uint16x32.GetLo", opLen1(ssa.OpGetLoUint16x32, types.TypeVec256), sys.AMD64)
|
||||||
|
addF(simdPackage, "Uint32x8.GetLo", opLen1(ssa.OpGetLoUint32x8, types.TypeVec128), sys.AMD64)
|
||||||
|
addF(simdPackage, "Uint32x16.GetLo", opLen1(ssa.OpGetLoUint32x16, types.TypeVec256), sys.AMD64)
|
||||||
|
addF(simdPackage, "Uint64x4.GetLo", opLen1(ssa.OpGetLoUint64x4, types.TypeVec128), sys.AMD64)
|
||||||
|
addF(simdPackage, "Uint64x8.GetLo", opLen1(ssa.OpGetLoUint64x8, types.TypeVec256), sys.AMD64)
|
||||||
addF(simdPackage, "Int8x16.Greater", opLen2(ssa.OpGreaterInt8x16, types.TypeVec128), sys.AMD64)
|
addF(simdPackage, "Int8x16.Greater", opLen2(ssa.OpGreaterInt8x16, types.TypeVec128), sys.AMD64)
|
||||||
addF(simdPackage, "Int8x32.Greater", opLen2(ssa.OpGreaterInt8x32, types.TypeVec256), sys.AMD64)
|
addF(simdPackage, "Int8x32.Greater", opLen2(ssa.OpGreaterInt8x32, types.TypeVec256), sys.AMD64)
|
||||||
addF(simdPackage, "Int8x64.Greater", opLen2(ssa.OpGreaterInt8x64, types.TypeVec512), sys.AMD64)
|
addF(simdPackage, "Int8x64.Greater", opLen2(ssa.OpGreaterInt8x64, types.TypeVec512), sys.AMD64)
|
||||||
|
|
@ -1338,16 +1368,6 @@ func simdIntrinsics(addF func(pkg, fn string, b intrinsicBuilder, archFamilies .
|
||||||
addF(simdPackage, "Float64x2.ScaleMasked", opLen3(ssa.OpScaleMaskedFloat64x2, types.TypeVec128), sys.AMD64)
|
addF(simdPackage, "Float64x2.ScaleMasked", opLen3(ssa.OpScaleMaskedFloat64x2, types.TypeVec128), sys.AMD64)
|
||||||
addF(simdPackage, "Float64x4.ScaleMasked", opLen3(ssa.OpScaleMaskedFloat64x4, types.TypeVec256), sys.AMD64)
|
addF(simdPackage, "Float64x4.ScaleMasked", opLen3(ssa.OpScaleMaskedFloat64x4, types.TypeVec256), sys.AMD64)
|
||||||
addF(simdPackage, "Float64x8.ScaleMasked", opLen3(ssa.OpScaleMaskedFloat64x8, types.TypeVec512), sys.AMD64)
|
addF(simdPackage, "Float64x8.ScaleMasked", opLen3(ssa.OpScaleMaskedFloat64x8, types.TypeVec512), sys.AMD64)
|
||||||
addF(simdPackage, "Float32x8.Set128", opLen2Imm8(ssa.OpSet128Float32x8, types.TypeVec256, 0), sys.AMD64)
|
|
||||||
addF(simdPackage, "Float64x4.Set128", opLen2Imm8(ssa.OpSet128Float64x4, types.TypeVec256, 0), sys.AMD64)
|
|
||||||
addF(simdPackage, "Int8x32.Set128", opLen2Imm8(ssa.OpSet128Int8x32, types.TypeVec256, 0), sys.AMD64)
|
|
||||||
addF(simdPackage, "Int16x16.Set128", opLen2Imm8(ssa.OpSet128Int16x16, types.TypeVec256, 0), sys.AMD64)
|
|
||||||
addF(simdPackage, "Int32x8.Set128", opLen2Imm8(ssa.OpSet128Int32x8, types.TypeVec256, 0), sys.AMD64)
|
|
||||||
addF(simdPackage, "Int64x4.Set128", opLen2Imm8(ssa.OpSet128Int64x4, types.TypeVec256, 0), sys.AMD64)
|
|
||||||
addF(simdPackage, "Uint8x32.Set128", opLen2Imm8(ssa.OpSet128Uint8x32, types.TypeVec256, 0), sys.AMD64)
|
|
||||||
addF(simdPackage, "Uint16x16.Set128", opLen2Imm8(ssa.OpSet128Uint16x16, types.TypeVec256, 0), sys.AMD64)
|
|
||||||
addF(simdPackage, "Uint32x8.Set128", opLen2Imm8(ssa.OpSet128Uint32x8, types.TypeVec256, 0), sys.AMD64)
|
|
||||||
addF(simdPackage, "Uint64x4.Set128", opLen2Imm8(ssa.OpSet128Uint64x4, types.TypeVec256, 0), sys.AMD64)
|
|
||||||
addF(simdPackage, "Int8x16.SetElem", opLen2Imm8(ssa.OpSetElemInt8x16, types.TypeVec128, 0), sys.AMD64)
|
addF(simdPackage, "Int8x16.SetElem", opLen2Imm8(ssa.OpSetElemInt8x16, types.TypeVec128, 0), sys.AMD64)
|
||||||
addF(simdPackage, "Int16x8.SetElem", opLen2Imm8(ssa.OpSetElemInt16x8, types.TypeVec128, 0), sys.AMD64)
|
addF(simdPackage, "Int16x8.SetElem", opLen2Imm8(ssa.OpSetElemInt16x8, types.TypeVec128, 0), sys.AMD64)
|
||||||
addF(simdPackage, "Int32x4.SetElem", opLen2Imm8(ssa.OpSetElemInt32x4, types.TypeVec128, 0), sys.AMD64)
|
addF(simdPackage, "Int32x4.SetElem", opLen2Imm8(ssa.OpSetElemInt32x4, types.TypeVec128, 0), sys.AMD64)
|
||||||
|
|
@ -1356,6 +1376,46 @@ func simdIntrinsics(addF func(pkg, fn string, b intrinsicBuilder, archFamilies .
|
||||||
addF(simdPackage, "Uint16x8.SetElem", opLen2Imm8(ssa.OpSetElemUint16x8, types.TypeVec128, 0), sys.AMD64)
|
addF(simdPackage, "Uint16x8.SetElem", opLen2Imm8(ssa.OpSetElemUint16x8, types.TypeVec128, 0), sys.AMD64)
|
||||||
addF(simdPackage, "Uint32x4.SetElem", opLen2Imm8(ssa.OpSetElemUint32x4, types.TypeVec128, 0), sys.AMD64)
|
addF(simdPackage, "Uint32x4.SetElem", opLen2Imm8(ssa.OpSetElemUint32x4, types.TypeVec128, 0), sys.AMD64)
|
||||||
addF(simdPackage, "Uint64x2.SetElem", opLen2Imm8(ssa.OpSetElemUint64x2, types.TypeVec128, 0), sys.AMD64)
|
addF(simdPackage, "Uint64x2.SetElem", opLen2Imm8(ssa.OpSetElemUint64x2, types.TypeVec128, 0), sys.AMD64)
|
||||||
|
addF(simdPackage, "Float32x8.SetHi", opLen2(ssa.OpSetHiFloat32x8, types.TypeVec256), sys.AMD64)
|
||||||
|
addF(simdPackage, "Float32x16.SetHi", opLen2(ssa.OpSetHiFloat32x16, types.TypeVec512), sys.AMD64)
|
||||||
|
addF(simdPackage, "Float64x4.SetHi", opLen2(ssa.OpSetHiFloat64x4, types.TypeVec256), sys.AMD64)
|
||||||
|
addF(simdPackage, "Float64x8.SetHi", opLen2(ssa.OpSetHiFloat64x8, types.TypeVec512), sys.AMD64)
|
||||||
|
addF(simdPackage, "Int8x32.SetHi", opLen2(ssa.OpSetHiInt8x32, types.TypeVec256), sys.AMD64)
|
||||||
|
addF(simdPackage, "Int8x64.SetHi", opLen2(ssa.OpSetHiInt8x64, types.TypeVec512), sys.AMD64)
|
||||||
|
addF(simdPackage, "Int16x16.SetHi", opLen2(ssa.OpSetHiInt16x16, types.TypeVec256), sys.AMD64)
|
||||||
|
addF(simdPackage, "Int16x32.SetHi", opLen2(ssa.OpSetHiInt16x32, types.TypeVec512), sys.AMD64)
|
||||||
|
addF(simdPackage, "Int32x8.SetHi", opLen2(ssa.OpSetHiInt32x8, types.TypeVec256), sys.AMD64)
|
||||||
|
addF(simdPackage, "Int32x16.SetHi", opLen2(ssa.OpSetHiInt32x16, types.TypeVec512), sys.AMD64)
|
||||||
|
addF(simdPackage, "Int64x4.SetHi", opLen2(ssa.OpSetHiInt64x4, types.TypeVec256), sys.AMD64)
|
||||||
|
addF(simdPackage, "Int64x8.SetHi", opLen2(ssa.OpSetHiInt64x8, types.TypeVec512), sys.AMD64)
|
||||||
|
addF(simdPackage, "Uint8x32.SetHi", opLen2(ssa.OpSetHiUint8x32, types.TypeVec256), sys.AMD64)
|
||||||
|
addF(simdPackage, "Uint8x64.SetHi", opLen2(ssa.OpSetHiUint8x64, types.TypeVec512), sys.AMD64)
|
||||||
|
addF(simdPackage, "Uint16x16.SetHi", opLen2(ssa.OpSetHiUint16x16, types.TypeVec256), sys.AMD64)
|
||||||
|
addF(simdPackage, "Uint16x32.SetHi", opLen2(ssa.OpSetHiUint16x32, types.TypeVec512), sys.AMD64)
|
||||||
|
addF(simdPackage, "Uint32x8.SetHi", opLen2(ssa.OpSetHiUint32x8, types.TypeVec256), sys.AMD64)
|
||||||
|
addF(simdPackage, "Uint32x16.SetHi", opLen2(ssa.OpSetHiUint32x16, types.TypeVec512), sys.AMD64)
|
||||||
|
addF(simdPackage, "Uint64x4.SetHi", opLen2(ssa.OpSetHiUint64x4, types.TypeVec256), sys.AMD64)
|
||||||
|
addF(simdPackage, "Uint64x8.SetHi", opLen2(ssa.OpSetHiUint64x8, types.TypeVec512), sys.AMD64)
|
||||||
|
addF(simdPackage, "Float32x8.SetLo", opLen2(ssa.OpSetLoFloat32x8, types.TypeVec256), sys.AMD64)
|
||||||
|
addF(simdPackage, "Float32x16.SetLo", opLen2(ssa.OpSetLoFloat32x16, types.TypeVec512), sys.AMD64)
|
||||||
|
addF(simdPackage, "Float64x4.SetLo", opLen2(ssa.OpSetLoFloat64x4, types.TypeVec256), sys.AMD64)
|
||||||
|
addF(simdPackage, "Float64x8.SetLo", opLen2(ssa.OpSetLoFloat64x8, types.TypeVec512), sys.AMD64)
|
||||||
|
addF(simdPackage, "Int8x32.SetLo", opLen2(ssa.OpSetLoInt8x32, types.TypeVec256), sys.AMD64)
|
||||||
|
addF(simdPackage, "Int8x64.SetLo", opLen2(ssa.OpSetLoInt8x64, types.TypeVec512), sys.AMD64)
|
||||||
|
addF(simdPackage, "Int16x16.SetLo", opLen2(ssa.OpSetLoInt16x16, types.TypeVec256), sys.AMD64)
|
||||||
|
addF(simdPackage, "Int16x32.SetLo", opLen2(ssa.OpSetLoInt16x32, types.TypeVec512), sys.AMD64)
|
||||||
|
addF(simdPackage, "Int32x8.SetLo", opLen2(ssa.OpSetLoInt32x8, types.TypeVec256), sys.AMD64)
|
||||||
|
addF(simdPackage, "Int32x16.SetLo", opLen2(ssa.OpSetLoInt32x16, types.TypeVec512), sys.AMD64)
|
||||||
|
addF(simdPackage, "Int64x4.SetLo", opLen2(ssa.OpSetLoInt64x4, types.TypeVec256), sys.AMD64)
|
||||||
|
addF(simdPackage, "Int64x8.SetLo", opLen2(ssa.OpSetLoInt64x8, types.TypeVec512), sys.AMD64)
|
||||||
|
addF(simdPackage, "Uint8x32.SetLo", opLen2(ssa.OpSetLoUint8x32, types.TypeVec256), sys.AMD64)
|
||||||
|
addF(simdPackage, "Uint8x64.SetLo", opLen2(ssa.OpSetLoUint8x64, types.TypeVec512), sys.AMD64)
|
||||||
|
addF(simdPackage, "Uint16x16.SetLo", opLen2(ssa.OpSetLoUint16x16, types.TypeVec256), sys.AMD64)
|
||||||
|
addF(simdPackage, "Uint16x32.SetLo", opLen2(ssa.OpSetLoUint16x32, types.TypeVec512), sys.AMD64)
|
||||||
|
addF(simdPackage, "Uint32x8.SetLo", opLen2(ssa.OpSetLoUint32x8, types.TypeVec256), sys.AMD64)
|
||||||
|
addF(simdPackage, "Uint32x16.SetLo", opLen2(ssa.OpSetLoUint32x16, types.TypeVec512), sys.AMD64)
|
||||||
|
addF(simdPackage, "Uint64x4.SetLo", opLen2(ssa.OpSetLoUint64x4, types.TypeVec256), sys.AMD64)
|
||||||
|
addF(simdPackage, "Uint64x8.SetLo", opLen2(ssa.OpSetLoUint64x8, types.TypeVec512), sys.AMD64)
|
||||||
addF(simdPackage, "Int16x8.ShiftAllLeft", opLen2(ssa.OpShiftAllLeftInt16x8, types.TypeVec128), sys.AMD64)
|
addF(simdPackage, "Int16x8.ShiftAllLeft", opLen2(ssa.OpShiftAllLeftInt16x8, types.TypeVec128), sys.AMD64)
|
||||||
addF(simdPackage, "Int16x16.ShiftAllLeft", opLen2(ssa.OpShiftAllLeftInt16x16, types.TypeVec256), sys.AMD64)
|
addF(simdPackage, "Int16x16.ShiftAllLeft", opLen2(ssa.OpShiftAllLeftInt16x16, types.TypeVec256), sys.AMD64)
|
||||||
addF(simdPackage, "Int16x32.ShiftAllLeft", opLen2(ssa.OpShiftAllLeftInt16x32, types.TypeVec512), sys.AMD64)
|
addF(simdPackage, "Int16x32.ShiftAllLeft", opLen2(ssa.OpShiftAllLeftInt16x32, types.TypeVec512), sys.AMD64)
|
||||||
|
|
|
||||||
|
|
@ -3041,78 +3041,6 @@ func (x Uint8x32) GaloisFieldMulMasked(y Uint8x32, mask Mask8x32) Uint8x32
|
||||||
// Asm: VGF2P8MULB, CPU Feature: AVX512GFNI
|
// Asm: VGF2P8MULB, CPU Feature: AVX512GFNI
|
||||||
func (x Uint8x64) GaloisFieldMulMasked(y Uint8x64, mask Mask8x64) Uint8x64
|
func (x Uint8x64) GaloisFieldMulMasked(y Uint8x64, mask Mask8x64) Uint8x64
|
||||||
|
|
||||||
/* Get128 */
|
|
||||||
|
|
||||||
// Get128 retrieves the upper (1) or lower (0) half of a 256-bit vector, depending on the constant operand.
|
|
||||||
//
|
|
||||||
// index is expected to be a constant, non-constant value will trigger a runtime panic.
|
|
||||||
//
|
|
||||||
// Asm: VEXTRACTF128, CPU Feature: AVX
|
|
||||||
func (x Float32x8) Get128(index uint8) Float32x4
|
|
||||||
|
|
||||||
// Get128 retrieves the upper (1) or lower (0) half of a 256-bit vector, depending on the constant operand.
|
|
||||||
//
|
|
||||||
// index is expected to be a constant, non-constant value will trigger a runtime panic.
|
|
||||||
//
|
|
||||||
// Asm: VEXTRACTF128, CPU Feature: AVX
|
|
||||||
func (x Float64x4) Get128(index uint8) Float64x2
|
|
||||||
|
|
||||||
// Get128 retrieves the upper (1) or lower (0) half of a 256-bit vector, depending on the constant operand.
|
|
||||||
//
|
|
||||||
// index is expected to be a constant, non-constant value will trigger a runtime panic.
|
|
||||||
//
|
|
||||||
// Asm: VEXTRACTI128, CPU Feature: AVX2
|
|
||||||
func (x Int8x32) Get128(index uint8) Int8x16
|
|
||||||
|
|
||||||
// Get128 retrieves the upper (1) or lower (0) half of a 256-bit vector, depending on the constant operand.
|
|
||||||
//
|
|
||||||
// index is expected to be a constant, non-constant value will trigger a runtime panic.
|
|
||||||
//
|
|
||||||
// Asm: VEXTRACTI128, CPU Feature: AVX2
|
|
||||||
func (x Int16x16) Get128(index uint8) Int16x8
|
|
||||||
|
|
||||||
// Get128 retrieves the upper (1) or lower (0) half of a 256-bit vector, depending on the constant operand.
|
|
||||||
//
|
|
||||||
// index is expected to be a constant, non-constant value will trigger a runtime panic.
|
|
||||||
//
|
|
||||||
// Asm: VEXTRACTI128, CPU Feature: AVX2
|
|
||||||
func (x Int32x8) Get128(index uint8) Int32x4
|
|
||||||
|
|
||||||
// Get128 retrieves the upper (1) or lower (0) half of a 256-bit vector, depending on the constant operand.
|
|
||||||
//
|
|
||||||
// index is expected to be a constant, non-constant value will trigger a runtime panic.
|
|
||||||
//
|
|
||||||
// Asm: VEXTRACTI128, CPU Feature: AVX2
|
|
||||||
func (x Int64x4) Get128(index uint8) Int64x2
|
|
||||||
|
|
||||||
// Get128 retrieves the upper (1) or lower (0) half of a 256-bit vector, depending on the constant operand.
|
|
||||||
//
|
|
||||||
// index is expected to be a constant, non-constant value will trigger a runtime panic.
|
|
||||||
//
|
|
||||||
// Asm: VEXTRACTI128, CPU Feature: AVX2
|
|
||||||
func (x Uint8x32) Get128(index uint8) Uint8x16
|
|
||||||
|
|
||||||
// Get128 retrieves the upper (1) or lower (0) half of a 256-bit vector, depending on the constant operand.
|
|
||||||
//
|
|
||||||
// index is expected to be a constant, non-constant value will trigger a runtime panic.
|
|
||||||
//
|
|
||||||
// Asm: VEXTRACTI128, CPU Feature: AVX2
|
|
||||||
func (x Uint16x16) Get128(index uint8) Uint16x8
|
|
||||||
|
|
||||||
// Get128 retrieves the upper (1) or lower (0) half of a 256-bit vector, depending on the constant operand.
|
|
||||||
//
|
|
||||||
// index is expected to be a constant, non-constant value will trigger a runtime panic.
|
|
||||||
//
|
|
||||||
// Asm: VEXTRACTI128, CPU Feature: AVX2
|
|
||||||
func (x Uint32x8) Get128(index uint8) Uint32x4
|
|
||||||
|
|
||||||
// Get128 retrieves the upper (1) or lower (0) half of a 256-bit vector, depending on the constant operand.
|
|
||||||
//
|
|
||||||
// index is expected to be a constant, non-constant value will trigger a runtime panic.
|
|
||||||
//
|
|
||||||
// Asm: VEXTRACTI128, CPU Feature: AVX2
|
|
||||||
func (x Uint64x4) Get128(index uint8) Uint64x2
|
|
||||||
|
|
||||||
/* GetElem */
|
/* GetElem */
|
||||||
|
|
||||||
// GetElem retrieves a single constant-indexed element's value.
|
// GetElem retrieves a single constant-indexed element's value.
|
||||||
|
|
@ -3171,6 +3099,210 @@ func (x Uint32x4) GetElem(index uint8) uint32
|
||||||
// Asm: VPEXTRQ, CPU Feature: AVX
|
// Asm: VPEXTRQ, CPU Feature: AVX
|
||||||
func (x Uint64x2) GetElem(index uint8) uint64
|
func (x Uint64x2) GetElem(index uint8) uint64
|
||||||
|
|
||||||
|
/* GetHi */
|
||||||
|
|
||||||
|
// GetHi returns the upper half of x.
|
||||||
|
//
|
||||||
|
// Asm: VEXTRACTF128, CPU Feature: AVX
|
||||||
|
func (x Float32x8) GetHi() Float32x4
|
||||||
|
|
||||||
|
// GetHi returns the upper half of x.
|
||||||
|
//
|
||||||
|
// Asm: VEXTRACTF64X4, CPU Feature: AVX512F
|
||||||
|
func (x Float32x16) GetHi() Float32x8
|
||||||
|
|
||||||
|
// GetHi returns the upper half of x.
|
||||||
|
//
|
||||||
|
// Asm: VEXTRACTF128, CPU Feature: AVX
|
||||||
|
func (x Float64x4) GetHi() Float64x2
|
||||||
|
|
||||||
|
// GetHi returns the upper half of x.
|
||||||
|
//
|
||||||
|
// Asm: VEXTRACTF64X4, CPU Feature: AVX512F
|
||||||
|
func (x Float64x8) GetHi() Float64x4
|
||||||
|
|
||||||
|
// GetHi returns the upper half of x.
|
||||||
|
//
|
||||||
|
// Asm: VEXTRACTI128, CPU Feature: AVX2
|
||||||
|
func (x Int8x32) GetHi() Int8x16
|
||||||
|
|
||||||
|
// GetHi returns the upper half of x.
|
||||||
|
//
|
||||||
|
// Asm: VEXTRACTI64X4, CPU Feature: AVX512F
|
||||||
|
func (x Int8x64) GetHi() Int8x32
|
||||||
|
|
||||||
|
// GetHi returns the upper half of x.
|
||||||
|
//
|
||||||
|
// Asm: VEXTRACTI128, CPU Feature: AVX2
|
||||||
|
func (x Int16x16) GetHi() Int16x8
|
||||||
|
|
||||||
|
// GetHi returns the upper half of x.
|
||||||
|
//
|
||||||
|
// Asm: VEXTRACTI64X4, CPU Feature: AVX512F
|
||||||
|
func (x Int16x32) GetHi() Int16x16
|
||||||
|
|
||||||
|
// GetHi returns the upper half of x.
|
||||||
|
//
|
||||||
|
// Asm: VEXTRACTI128, CPU Feature: AVX2
|
||||||
|
func (x Int32x8) GetHi() Int32x4
|
||||||
|
|
||||||
|
// GetHi returns the upper half of x.
|
||||||
|
//
|
||||||
|
// Asm: VEXTRACTI64X4, CPU Feature: AVX512F
|
||||||
|
func (x Int32x16) GetHi() Int32x8
|
||||||
|
|
||||||
|
// GetHi returns the upper half of x.
|
||||||
|
//
|
||||||
|
// Asm: VEXTRACTI128, CPU Feature: AVX2
|
||||||
|
func (x Int64x4) GetHi() Int64x2
|
||||||
|
|
||||||
|
// GetHi returns the upper half of x.
|
||||||
|
//
|
||||||
|
// Asm: VEXTRACTI64X4, CPU Feature: AVX512F
|
||||||
|
func (x Int64x8) GetHi() Int64x4
|
||||||
|
|
||||||
|
// GetHi returns the upper half of x.
|
||||||
|
//
|
||||||
|
// Asm: VEXTRACTI128, CPU Feature: AVX2
|
||||||
|
func (x Uint8x32) GetHi() Uint8x16
|
||||||
|
|
||||||
|
// GetHi returns the upper half of x.
|
||||||
|
//
|
||||||
|
// Asm: VEXTRACTI64X4, CPU Feature: AVX512F
|
||||||
|
func (x Uint8x64) GetHi() Uint8x32
|
||||||
|
|
||||||
|
// GetHi returns the upper half of x.
|
||||||
|
//
|
||||||
|
// Asm: VEXTRACTI128, CPU Feature: AVX2
|
||||||
|
func (x Uint16x16) GetHi() Uint16x8
|
||||||
|
|
||||||
|
// GetHi returns the upper half of x.
|
||||||
|
//
|
||||||
|
// Asm: VEXTRACTI64X4, CPU Feature: AVX512F
|
||||||
|
func (x Uint16x32) GetHi() Uint16x16
|
||||||
|
|
||||||
|
// GetHi returns the upper half of x.
|
||||||
|
//
|
||||||
|
// Asm: VEXTRACTI128, CPU Feature: AVX2
|
||||||
|
func (x Uint32x8) GetHi() Uint32x4
|
||||||
|
|
||||||
|
// GetHi returns the upper half of x.
|
||||||
|
//
|
||||||
|
// Asm: VEXTRACTI64X4, CPU Feature: AVX512F
|
||||||
|
func (x Uint32x16) GetHi() Uint32x8
|
||||||
|
|
||||||
|
// GetHi returns the upper half of x.
|
||||||
|
//
|
||||||
|
// Asm: VEXTRACTI128, CPU Feature: AVX2
|
||||||
|
func (x Uint64x4) GetHi() Uint64x2
|
||||||
|
|
||||||
|
// GetHi returns the upper half of x.
|
||||||
|
//
|
||||||
|
// Asm: VEXTRACTI64X4, CPU Feature: AVX512F
|
||||||
|
func (x Uint64x8) GetHi() Uint64x4
|
||||||
|
|
||||||
|
/* GetLo */
|
||||||
|
|
||||||
|
// GetLo returns the lower half of x.
|
||||||
|
//
|
||||||
|
// Asm: VEXTRACTF128, CPU Feature: AVX
|
||||||
|
func (x Float32x8) GetLo() Float32x4
|
||||||
|
|
||||||
|
// GetLo returns the lower half of x.
|
||||||
|
//
|
||||||
|
// Asm: VEXTRACTF64X4, CPU Feature: AVX512F
|
||||||
|
func (x Float32x16) GetLo() Float32x8
|
||||||
|
|
||||||
|
// GetLo returns the lower half of x.
|
||||||
|
//
|
||||||
|
// Asm: VEXTRACTF128, CPU Feature: AVX
|
||||||
|
func (x Float64x4) GetLo() Float64x2
|
||||||
|
|
||||||
|
// GetLo returns the lower half of x.
|
||||||
|
//
|
||||||
|
// Asm: VEXTRACTF64X4, CPU Feature: AVX512F
|
||||||
|
func (x Float64x8) GetLo() Float64x4
|
||||||
|
|
||||||
|
// GetLo returns the lower half of x.
|
||||||
|
//
|
||||||
|
// Asm: VEXTRACTI128, CPU Feature: AVX2
|
||||||
|
func (x Int8x32) GetLo() Int8x16
|
||||||
|
|
||||||
|
// GetLo returns the lower half of x.
|
||||||
|
//
|
||||||
|
// Asm: VEXTRACTI64X4, CPU Feature: AVX512F
|
||||||
|
func (x Int8x64) GetLo() Int8x32
|
||||||
|
|
||||||
|
// GetLo returns the lower half of x.
|
||||||
|
//
|
||||||
|
// Asm: VEXTRACTI128, CPU Feature: AVX2
|
||||||
|
func (x Int16x16) GetLo() Int16x8
|
||||||
|
|
||||||
|
// GetLo returns the lower half of x.
|
||||||
|
//
|
||||||
|
// Asm: VEXTRACTI64X4, CPU Feature: AVX512F
|
||||||
|
func (x Int16x32) GetLo() Int16x16
|
||||||
|
|
||||||
|
// GetLo returns the lower half of x.
|
||||||
|
//
|
||||||
|
// Asm: VEXTRACTI128, CPU Feature: AVX2
|
||||||
|
func (x Int32x8) GetLo() Int32x4
|
||||||
|
|
||||||
|
// GetLo returns the lower half of x.
|
||||||
|
//
|
||||||
|
// Asm: VEXTRACTI64X4, CPU Feature: AVX512F
|
||||||
|
func (x Int32x16) GetLo() Int32x8
|
||||||
|
|
||||||
|
// GetLo returns the lower half of x.
|
||||||
|
//
|
||||||
|
// Asm: VEXTRACTI128, CPU Feature: AVX2
|
||||||
|
func (x Int64x4) GetLo() Int64x2
|
||||||
|
|
||||||
|
// GetLo returns the lower half of x.
|
||||||
|
//
|
||||||
|
// Asm: VEXTRACTI64X4, CPU Feature: AVX512F
|
||||||
|
func (x Int64x8) GetLo() Int64x4
|
||||||
|
|
||||||
|
// GetLo returns the lower half of x.
|
||||||
|
//
|
||||||
|
// Asm: VEXTRACTI128, CPU Feature: AVX2
|
||||||
|
func (x Uint8x32) GetLo() Uint8x16
|
||||||
|
|
||||||
|
// GetLo returns the lower half of x.
|
||||||
|
//
|
||||||
|
// Asm: VEXTRACTI64X4, CPU Feature: AVX512F
|
||||||
|
func (x Uint8x64) GetLo() Uint8x32
|
||||||
|
|
||||||
|
// GetLo returns the lower half of x.
|
||||||
|
//
|
||||||
|
// Asm: VEXTRACTI128, CPU Feature: AVX2
|
||||||
|
func (x Uint16x16) GetLo() Uint16x8
|
||||||
|
|
||||||
|
// GetLo returns the lower half of x.
|
||||||
|
//
|
||||||
|
// Asm: VEXTRACTI64X4, CPU Feature: AVX512F
|
||||||
|
func (x Uint16x32) GetLo() Uint16x16
|
||||||
|
|
||||||
|
// GetLo returns the lower half of x.
|
||||||
|
//
|
||||||
|
// Asm: VEXTRACTI128, CPU Feature: AVX2
|
||||||
|
func (x Uint32x8) GetLo() Uint32x4
|
||||||
|
|
||||||
|
// GetLo returns the lower half of x.
|
||||||
|
//
|
||||||
|
// Asm: VEXTRACTI64X4, CPU Feature: AVX512F
|
||||||
|
func (x Uint32x16) GetLo() Uint32x8
|
||||||
|
|
||||||
|
// GetLo returns the lower half of x.
|
||||||
|
//
|
||||||
|
// Asm: VEXTRACTI128, CPU Feature: AVX2
|
||||||
|
func (x Uint64x4) GetLo() Uint64x2
|
||||||
|
|
||||||
|
// GetLo returns the lower half of x.
|
||||||
|
//
|
||||||
|
// Asm: VEXTRACTI64X4, CPU Feature: AVX512F
|
||||||
|
func (x Uint64x8) GetLo() Uint64x4
|
||||||
|
|
||||||
/* Greater */
|
/* Greater */
|
||||||
|
|
||||||
// Greater compares for greater than.
|
// Greater compares for greater than.
|
||||||
|
|
@ -8757,78 +8889,6 @@ func (x Float64x4) ScaleMasked(y Float64x4, mask Mask64x4) Float64x4
|
||||||
// Asm: VSCALEFPD, CPU Feature: AVX512F
|
// Asm: VSCALEFPD, CPU Feature: AVX512F
|
||||||
func (x Float64x8) ScaleMasked(y Float64x8, mask Mask64x8) Float64x8
|
func (x Float64x8) ScaleMasked(y Float64x8, mask Mask64x8) Float64x8
|
||||||
|
|
||||||
/* Set128 */
|
|
||||||
|
|
||||||
// Set128 combines a 128-bit vector with a 256-bit vector, where the constant operand specifies whether the low (0) or high (1) half is receives the smaller vector.
|
|
||||||
//
|
|
||||||
// index is expected to be a constant, non-constant value will trigger a runtime panic.
|
|
||||||
//
|
|
||||||
// Asm: VINSERTF128, CPU Feature: AVX
|
|
||||||
func (x Float32x8) Set128(index uint8, y Float32x4) Float32x8
|
|
||||||
|
|
||||||
// Set128 combines a 128-bit vector with a 256-bit vector, where the constant operand specifies whether the low (0) or high (1) half is receives the smaller vector.
|
|
||||||
//
|
|
||||||
// index is expected to be a constant, non-constant value will trigger a runtime panic.
|
|
||||||
//
|
|
||||||
// Asm: VINSERTF128, CPU Feature: AVX
|
|
||||||
func (x Float64x4) Set128(index uint8, y Float64x2) Float64x4
|
|
||||||
|
|
||||||
// Set128 combines a 128-bit vector with a 256-bit vector, where the constant operand specifies whether the low (0) or high (1) half is receives the smaller vector.
|
|
||||||
//
|
|
||||||
// index is expected to be a constant, non-constant value will trigger a runtime panic.
|
|
||||||
//
|
|
||||||
// Asm: VINSERTI128, CPU Feature: AVX2
|
|
||||||
func (x Int8x32) Set128(index uint8, y Int8x16) Int8x32
|
|
||||||
|
|
||||||
// Set128 combines a 128-bit vector with a 256-bit vector, where the constant operand specifies whether the low (0) or high (1) half is receives the smaller vector.
|
|
||||||
//
|
|
||||||
// index is expected to be a constant, non-constant value will trigger a runtime panic.
|
|
||||||
//
|
|
||||||
// Asm: VINSERTI128, CPU Feature: AVX2
|
|
||||||
func (x Int16x16) Set128(index uint8, y Int16x8) Int16x16
|
|
||||||
|
|
||||||
// Set128 combines a 128-bit vector with a 256-bit vector, where the constant operand specifies whether the low (0) or high (1) half is receives the smaller vector.
|
|
||||||
//
|
|
||||||
// index is expected to be a constant, non-constant value will trigger a runtime panic.
|
|
||||||
//
|
|
||||||
// Asm: VINSERTI128, CPU Feature: AVX2
|
|
||||||
func (x Int32x8) Set128(index uint8, y Int32x4) Int32x8
|
|
||||||
|
|
||||||
// Set128 combines a 128-bit vector with a 256-bit vector, where the constant operand specifies whether the low (0) or high (1) half is receives the smaller vector.
|
|
||||||
//
|
|
||||||
// index is expected to be a constant, non-constant value will trigger a runtime panic.
|
|
||||||
//
|
|
||||||
// Asm: VINSERTI128, CPU Feature: AVX2
|
|
||||||
func (x Int64x4) Set128(index uint8, y Int64x2) Int64x4
|
|
||||||
|
|
||||||
// Set128 combines a 128-bit vector with a 256-bit vector, where the constant operand specifies whether the low (0) or high (1) half is receives the smaller vector.
|
|
||||||
//
|
|
||||||
// index is expected to be a constant, non-constant value will trigger a runtime panic.
|
|
||||||
//
|
|
||||||
// Asm: VINSERTI128, CPU Feature: AVX2
|
|
||||||
func (x Uint8x32) Set128(index uint8, y Uint8x16) Uint8x32
|
|
||||||
|
|
||||||
// Set128 combines a 128-bit vector with a 256-bit vector, where the constant operand specifies whether the low (0) or high (1) half is receives the smaller vector.
|
|
||||||
//
|
|
||||||
// index is expected to be a constant, non-constant value will trigger a runtime panic.
|
|
||||||
//
|
|
||||||
// Asm: VINSERTI128, CPU Feature: AVX2
|
|
||||||
func (x Uint16x16) Set128(index uint8, y Uint16x8) Uint16x16
|
|
||||||
|
|
||||||
// Set128 combines a 128-bit vector with a 256-bit vector, where the constant operand specifies whether the low (0) or high (1) half is receives the smaller vector.
|
|
||||||
//
|
|
||||||
// index is expected to be a constant, non-constant value will trigger a runtime panic.
|
|
||||||
//
|
|
||||||
// Asm: VINSERTI128, CPU Feature: AVX2
|
|
||||||
func (x Uint32x8) Set128(index uint8, y Uint32x4) Uint32x8
|
|
||||||
|
|
||||||
// Set128 combines a 128-bit vector with a 256-bit vector, where the constant operand specifies whether the low (0) or high (1) half is receives the smaller vector.
|
|
||||||
//
|
|
||||||
// index is expected to be a constant, non-constant value will trigger a runtime panic.
|
|
||||||
//
|
|
||||||
// Asm: VINSERTI128, CPU Feature: AVX2
|
|
||||||
func (x Uint64x4) Set128(index uint8, y Uint64x2) Uint64x4
|
|
||||||
|
|
||||||
/* SetElem */
|
/* SetElem */
|
||||||
|
|
||||||
// SetElem sets a single constant-indexed element's value.
|
// SetElem sets a single constant-indexed element's value.
|
||||||
|
|
@ -8887,6 +8947,210 @@ func (x Uint32x4) SetElem(index uint8, y uint32) Uint32x4
|
||||||
// Asm: VPINSRQ, CPU Feature: AVX
|
// Asm: VPINSRQ, CPU Feature: AVX
|
||||||
func (x Uint64x2) SetElem(index uint8, y uint64) Uint64x2
|
func (x Uint64x2) SetElem(index uint8, y uint64) Uint64x2
|
||||||
|
|
||||||
|
/* SetHi */
|
||||||
|
|
||||||
|
// SetHi returns x with its upper half set to y.
|
||||||
|
//
|
||||||
|
// Asm: VINSERTF128, CPU Feature: AVX
|
||||||
|
func (x Float32x8) SetHi(y Float32x4) Float32x8
|
||||||
|
|
||||||
|
// SetHi returns x with its upper half set to y.
|
||||||
|
//
|
||||||
|
// Asm: VINSERTF64X4, CPU Feature: AVX512F
|
||||||
|
func (x Float32x16) SetHi(y Float32x8) Float32x16
|
||||||
|
|
||||||
|
// SetHi returns x with its upper half set to y.
|
||||||
|
//
|
||||||
|
// Asm: VINSERTF128, CPU Feature: AVX
|
||||||
|
func (x Float64x4) SetHi(y Float64x2) Float64x4
|
||||||
|
|
||||||
|
// SetHi returns x with its upper half set to y.
|
||||||
|
//
|
||||||
|
// Asm: VINSERTF64X4, CPU Feature: AVX512F
|
||||||
|
func (x Float64x8) SetHi(y Float64x4) Float64x8
|
||||||
|
|
||||||
|
// SetHi returns x with its upper half set to y.
|
||||||
|
//
|
||||||
|
// Asm: VINSERTI128, CPU Feature: AVX2
|
||||||
|
func (x Int8x32) SetHi(y Int8x16) Int8x32
|
||||||
|
|
||||||
|
// SetHi returns x with its upper half set to y.
|
||||||
|
//
|
||||||
|
// Asm: VINSERTI64X4, CPU Feature: AVX512F
|
||||||
|
func (x Int8x64) SetHi(y Int8x32) Int8x64
|
||||||
|
|
||||||
|
// SetHi returns x with its upper half set to y.
|
||||||
|
//
|
||||||
|
// Asm: VINSERTI128, CPU Feature: AVX2
|
||||||
|
func (x Int16x16) SetHi(y Int16x8) Int16x16
|
||||||
|
|
||||||
|
// SetHi returns x with its upper half set to y.
|
||||||
|
//
|
||||||
|
// Asm: VINSERTI64X4, CPU Feature: AVX512F
|
||||||
|
func (x Int16x32) SetHi(y Int16x16) Int16x32
|
||||||
|
|
||||||
|
// SetHi returns x with its upper half set to y.
|
||||||
|
//
|
||||||
|
// Asm: VINSERTI128, CPU Feature: AVX2
|
||||||
|
func (x Int32x8) SetHi(y Int32x4) Int32x8
|
||||||
|
|
||||||
|
// SetHi returns x with its upper half set to y.
|
||||||
|
//
|
||||||
|
// Asm: VINSERTI64X4, CPU Feature: AVX512F
|
||||||
|
func (x Int32x16) SetHi(y Int32x8) Int32x16
|
||||||
|
|
||||||
|
// SetHi returns x with its upper half set to y.
|
||||||
|
//
|
||||||
|
// Asm: VINSERTI128, CPU Feature: AVX2
|
||||||
|
func (x Int64x4) SetHi(y Int64x2) Int64x4
|
||||||
|
|
||||||
|
// SetHi returns x with its upper half set to y.
|
||||||
|
//
|
||||||
|
// Asm: VINSERTI64X4, CPU Feature: AVX512F
|
||||||
|
func (x Int64x8) SetHi(y Int64x4) Int64x8
|
||||||
|
|
||||||
|
// SetHi returns x with its upper half set to y.
|
||||||
|
//
|
||||||
|
// Asm: VINSERTI128, CPU Feature: AVX2
|
||||||
|
func (x Uint8x32) SetHi(y Uint8x16) Uint8x32
|
||||||
|
|
||||||
|
// SetHi returns x with its upper half set to y.
|
||||||
|
//
|
||||||
|
// Asm: VINSERTI64X4, CPU Feature: AVX512F
|
||||||
|
func (x Uint8x64) SetHi(y Uint8x32) Uint8x64
|
||||||
|
|
||||||
|
// SetHi returns x with its upper half set to y.
|
||||||
|
//
|
||||||
|
// Asm: VINSERTI128, CPU Feature: AVX2
|
||||||
|
func (x Uint16x16) SetHi(y Uint16x8) Uint16x16
|
||||||
|
|
||||||
|
// SetHi returns x with its upper half set to y.
|
||||||
|
//
|
||||||
|
// Asm: VINSERTI64X4, CPU Feature: AVX512F
|
||||||
|
func (x Uint16x32) SetHi(y Uint16x16) Uint16x32
|
||||||
|
|
||||||
|
// SetHi returns x with its upper half set to y.
|
||||||
|
//
|
||||||
|
// Asm: VINSERTI128, CPU Feature: AVX2
|
||||||
|
func (x Uint32x8) SetHi(y Uint32x4) Uint32x8
|
||||||
|
|
||||||
|
// SetHi returns x with its upper half set to y.
|
||||||
|
//
|
||||||
|
// Asm: VINSERTI64X4, CPU Feature: AVX512F
|
||||||
|
func (x Uint32x16) SetHi(y Uint32x8) Uint32x16
|
||||||
|
|
||||||
|
// SetHi returns x with its upper half set to y.
|
||||||
|
//
|
||||||
|
// Asm: VINSERTI128, CPU Feature: AVX2
|
||||||
|
func (x Uint64x4) SetHi(y Uint64x2) Uint64x4
|
||||||
|
|
||||||
|
// SetHi returns x with its upper half set to y.
|
||||||
|
//
|
||||||
|
// Asm: VINSERTI64X4, CPU Feature: AVX512F
|
||||||
|
func (x Uint64x8) SetHi(y Uint64x4) Uint64x8
|
||||||
|
|
||||||
|
/* SetLo */
|
||||||
|
|
||||||
|
// SetLo returns x with its lower half set to y.
|
||||||
|
//
|
||||||
|
// Asm: VINSERTF128, CPU Feature: AVX
|
||||||
|
func (x Float32x8) SetLo(y Float32x4) Float32x8
|
||||||
|
|
||||||
|
// SetLo returns x with its lower half set to y.
|
||||||
|
//
|
||||||
|
// Asm: VINSERTF64X4, CPU Feature: AVX512F
|
||||||
|
func (x Float32x16) SetLo(y Float32x8) Float32x16
|
||||||
|
|
||||||
|
// SetLo returns x with its lower half set to y.
|
||||||
|
//
|
||||||
|
// Asm: VINSERTF128, CPU Feature: AVX
|
||||||
|
func (x Float64x4) SetLo(y Float64x2) Float64x4
|
||||||
|
|
||||||
|
// SetLo returns x with its lower half set to y.
|
||||||
|
//
|
||||||
|
// Asm: VINSERTF64X4, CPU Feature: AVX512F
|
||||||
|
func (x Float64x8) SetLo(y Float64x4) Float64x8
|
||||||
|
|
||||||
|
// SetLo returns x with its lower half set to y.
|
||||||
|
//
|
||||||
|
// Asm: VINSERTI128, CPU Feature: AVX2
|
||||||
|
func (x Int8x32) SetLo(y Int8x16) Int8x32
|
||||||
|
|
||||||
|
// SetLo returns x with its lower half set to y.
|
||||||
|
//
|
||||||
|
// Asm: VINSERTI64X4, CPU Feature: AVX512F
|
||||||
|
func (x Int8x64) SetLo(y Int8x32) Int8x64
|
||||||
|
|
||||||
|
// SetLo returns x with its lower half set to y.
|
||||||
|
//
|
||||||
|
// Asm: VINSERTI128, CPU Feature: AVX2
|
||||||
|
func (x Int16x16) SetLo(y Int16x8) Int16x16
|
||||||
|
|
||||||
|
// SetLo returns x with its lower half set to y.
|
||||||
|
//
|
||||||
|
// Asm: VINSERTI64X4, CPU Feature: AVX512F
|
||||||
|
func (x Int16x32) SetLo(y Int16x16) Int16x32
|
||||||
|
|
||||||
|
// SetLo returns x with its lower half set to y.
|
||||||
|
//
|
||||||
|
// Asm: VINSERTI128, CPU Feature: AVX2
|
||||||
|
func (x Int32x8) SetLo(y Int32x4) Int32x8
|
||||||
|
|
||||||
|
// SetLo returns x with its lower half set to y.
|
||||||
|
//
|
||||||
|
// Asm: VINSERTI64X4, CPU Feature: AVX512F
|
||||||
|
func (x Int32x16) SetLo(y Int32x8) Int32x16
|
||||||
|
|
||||||
|
// SetLo returns x with its lower half set to y.
|
||||||
|
//
|
||||||
|
// Asm: VINSERTI128, CPU Feature: AVX2
|
||||||
|
func (x Int64x4) SetLo(y Int64x2) Int64x4
|
||||||
|
|
||||||
|
// SetLo returns x with its lower half set to y.
|
||||||
|
//
|
||||||
|
// Asm: VINSERTI64X4, CPU Feature: AVX512F
|
||||||
|
func (x Int64x8) SetLo(y Int64x4) Int64x8
|
||||||
|
|
||||||
|
// SetLo returns x with its lower half set to y.
|
||||||
|
//
|
||||||
|
// Asm: VINSERTI128, CPU Feature: AVX2
|
||||||
|
func (x Uint8x32) SetLo(y Uint8x16) Uint8x32
|
||||||
|
|
||||||
|
// SetLo returns x with its lower half set to y.
|
||||||
|
//
|
||||||
|
// Asm: VINSERTI64X4, CPU Feature: AVX512F
|
||||||
|
func (x Uint8x64) SetLo(y Uint8x32) Uint8x64
|
||||||
|
|
||||||
|
// SetLo returns x with its lower half set to y.
|
||||||
|
//
|
||||||
|
// Asm: VINSERTI128, CPU Feature: AVX2
|
||||||
|
func (x Uint16x16) SetLo(y Uint16x8) Uint16x16
|
||||||
|
|
||||||
|
// SetLo returns x with its lower half set to y.
|
||||||
|
//
|
||||||
|
// Asm: VINSERTI64X4, CPU Feature: AVX512F
|
||||||
|
func (x Uint16x32) SetLo(y Uint16x16) Uint16x32
|
||||||
|
|
||||||
|
// SetLo returns x with its lower half set to y.
|
||||||
|
//
|
||||||
|
// Asm: VINSERTI128, CPU Feature: AVX2
|
||||||
|
func (x Uint32x8) SetLo(y Uint32x4) Uint32x8
|
||||||
|
|
||||||
|
// SetLo returns x with its lower half set to y.
|
||||||
|
//
|
||||||
|
// Asm: VINSERTI64X4, CPU Feature: AVX512F
|
||||||
|
func (x Uint32x16) SetLo(y Uint32x8) Uint32x16
|
||||||
|
|
||||||
|
// SetLo returns x with its lower half set to y.
|
||||||
|
//
|
||||||
|
// Asm: VINSERTI128, CPU Feature: AVX2
|
||||||
|
func (x Uint64x4) SetLo(y Uint64x2) Uint64x4
|
||||||
|
|
||||||
|
// SetLo returns x with its lower half set to y.
|
||||||
|
//
|
||||||
|
// Asm: VINSERTI64X4, CPU Feature: AVX512F
|
||||||
|
func (x Uint64x8) SetLo(y Uint64x4) Uint64x8
|
||||||
|
|
||||||
/* ShiftAllLeft */
|
/* ShiftAllLeft */
|
||||||
|
|
||||||
// ShiftAllLeft shifts each element to the left by the specified number of bits. Emptied lower bits are zeroed.
|
// ShiftAllLeft shifts each element to the left by the specified number of bits. Emptied lower bits are zeroed.
|
||||||
|
|
|
||||||
|
|
@ -257,93 +257,6 @@ func TestSlicesInt8GetElem(t *testing.T) {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestSlicesInt8Set128(t *testing.T) {
|
|
||||||
a := []int8{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
|
|
||||||
17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32}
|
|
||||||
v := simd.LoadInt8x16Slice(a) // 1-16
|
|
||||||
u := simd.LoadInt8x32Slice(a) // 1-32
|
|
||||||
|
|
||||||
w := u.Set128(1, v) // 1-16:1-16
|
|
||||||
|
|
||||||
b := make([]int8, 32, 32)
|
|
||||||
w.StoreSlice(b)
|
|
||||||
|
|
||||||
checkSlices(t, a, b[:16])
|
|
||||||
checkSlices(t, a, b[16:])
|
|
||||||
}
|
|
||||||
|
|
||||||
func TestSlicesInt8Get128(t *testing.T) {
|
|
||||||
a := []int8{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
|
|
||||||
17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32}
|
|
||||||
u := simd.LoadInt8x32Slice(a) // 1-32
|
|
||||||
v := u.Get128(0) // 1-16
|
|
||||||
w := u.Get128(1) // 17-32
|
|
||||||
|
|
||||||
b := make([]int8, 32, 32)
|
|
||||||
v.StoreSlice(b[:16])
|
|
||||||
w.StoreSlice(b[16:])
|
|
||||||
|
|
||||||
checkSlices(t, a, b)
|
|
||||||
}
|
|
||||||
|
|
||||||
func TestSlicesFloat32Set128(t *testing.T) {
|
|
||||||
a := []float32{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
|
|
||||||
17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32}
|
|
||||||
v := simd.LoadFloat32x4Slice(a) // 1-4
|
|
||||||
u := simd.LoadFloat32x8Slice(a) // 1-4
|
|
||||||
|
|
||||||
w := u.Set128(1, v) // 1-4:1-4
|
|
||||||
|
|
||||||
b := make([]float32, 8, 8)
|
|
||||||
w.StoreSlice(b)
|
|
||||||
|
|
||||||
checkSlices(t, a, b[:4])
|
|
||||||
checkSlices(t, a, b[4:])
|
|
||||||
}
|
|
||||||
|
|
||||||
func TestSlicesFloat32Get128(t *testing.T) {
|
|
||||||
a := []float32{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
|
|
||||||
17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32}
|
|
||||||
u := simd.LoadFloat32x8Slice(a) // 1-8
|
|
||||||
v := u.Get128(0) // 1-4
|
|
||||||
w := u.Get128(1) // 5-8
|
|
||||||
|
|
||||||
b := make([]float32, 8, 8)
|
|
||||||
v.StoreSlice(b[:4])
|
|
||||||
w.StoreSlice(b[4:])
|
|
||||||
|
|
||||||
checkSlices(t, a, b)
|
|
||||||
}
|
|
||||||
|
|
||||||
func TestSlicesFloat64Set128(t *testing.T) {
|
|
||||||
a := []float64{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
|
|
||||||
17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32}
|
|
||||||
v := simd.LoadFloat64x2Slice(a) // 1-2
|
|
||||||
u := simd.LoadFloat64x4Slice(a) // 1-2
|
|
||||||
|
|
||||||
w := u.Set128(1, v) // 1-2:1-2
|
|
||||||
|
|
||||||
b := make([]float64, 4, 4)
|
|
||||||
w.StoreSlice(b)
|
|
||||||
|
|
||||||
checkSlices(t, a, b[:2])
|
|
||||||
checkSlices(t, a, b[2:])
|
|
||||||
}
|
|
||||||
|
|
||||||
func TestSlicesFloat64Get128(t *testing.T) {
|
|
||||||
a := []float64{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
|
|
||||||
17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32}
|
|
||||||
u := simd.LoadFloat64x4Slice(a) // 1-4
|
|
||||||
v := u.Get128(0) // 1-2
|
|
||||||
w := u.Get128(1) // 3-4
|
|
||||||
|
|
||||||
b := make([]float64, 4, 4)
|
|
||||||
v.StoreSlice(b[:2])
|
|
||||||
w.StoreSlice(b[2:])
|
|
||||||
|
|
||||||
checkSlices(t, a, b)
|
|
||||||
}
|
|
||||||
|
|
||||||
func TestSlicesInt8TooShortLoad(t *testing.T) {
|
func TestSlicesInt8TooShortLoad(t *testing.T) {
|
||||||
defer func() {
|
defer func() {
|
||||||
if r := recover(); r != nil {
|
if r := recover(); r != nil {
|
||||||
|
|
|
||||||
|
|
@ -76,9 +76,9 @@ func LoadInt8x32SlicePart(s []int8) Int8x32 {
|
||||||
return x
|
return x
|
||||||
}
|
}
|
||||||
if l > 16 {
|
if l > 16 {
|
||||||
return x.Set128(0, LoadInt8x16Slice(s)).Set128(1, LoadInt8x16SlicePart(s[16:]))
|
return x.SetLo(LoadInt8x16Slice(s)).SetHi(LoadInt8x16SlicePart(s[16:]))
|
||||||
} else {
|
} else {
|
||||||
return x.Set128(0, LoadInt8x16SlicePart(s))
|
return x.SetLo(LoadInt8x16SlicePart(s))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -95,9 +95,9 @@ func LoadInt16x16SlicePart(s []int16) Int16x16 {
|
||||||
return x
|
return x
|
||||||
}
|
}
|
||||||
if l > 8 {
|
if l > 8 {
|
||||||
return x.Set128(0, LoadInt16x8Slice(s)).Set128(1, LoadInt16x8SlicePart(s[8:]))
|
return x.SetLo(LoadInt16x8Slice(s)).SetHi(LoadInt16x8SlicePart(s[8:]))
|
||||||
} else {
|
} else {
|
||||||
return x.Set128(0, LoadInt16x8SlicePart(s))
|
return x.SetLo(LoadInt16x8SlicePart(s))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -114,10 +114,10 @@ func (x Int8x32) StoreSlicePart(s []int8) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
if l > 16 {
|
if l > 16 {
|
||||||
x.Get128(0).StoreSlice(s)
|
x.GetLo().StoreSlice(s)
|
||||||
x.Get128(1).StoreSlicePart(s[16:])
|
x.GetHi().StoreSlicePart(s[16:])
|
||||||
} else { // fits in one
|
} else { // fits in one
|
||||||
x.Get128(0).StoreSlicePart(s)
|
x.GetLo().StoreSlicePart(s)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -134,10 +134,10 @@ func (x Int16x16) StoreSlicePart(s []int16) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
if l > 8 {
|
if l > 8 {
|
||||||
x.Get128(0).StoreSlice(s)
|
x.GetLo().StoreSlice(s)
|
||||||
x.Get128(1).StoreSlicePart(s[8:])
|
x.GetHi().StoreSlicePart(s[8:])
|
||||||
} else { // fits in one
|
} else { // fits in one
|
||||||
x.Get128(0).StoreSlicePart(s)
|
x.GetLo().StoreSlicePart(s)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue