From 9ea33ed5388a42aed30af526af3fcc5b185fb62d Mon Sep 17 00:00:00 2001 From: David Chase Date: Tue, 8 Jul 2025 12:52:30 -0400 Subject: [PATCH] [dev.simd] cmd/compile: output of simd generator, more ... rewrite rules Generated by simdgen CL 686378 Change-Id: I876ab91085c266ced59fc82ea12be709dc7eb721 Reviewed-on: https://go-review.googlesource.com/c/go/+/686495 Reviewed-by: Junyang Shao LUCI-TryBot-Result: Go LUCI --- .../compile/internal/ssa/_gen/simdAMD64.rules | 204 +- src/cmd/compile/internal/ssa/rewriteAMD64.go | 1752 ++--------------- 2 files changed, 306 insertions(+), 1650 deletions(-) diff --git a/src/cmd/compile/internal/ssa/_gen/simdAMD64.rules b/src/cmd/compile/internal/ssa/_gen/simdAMD64.rules index 09ab9b840a..c55a1f3f63 100644 --- a/src/cmd/compile/internal/ssa/_gen/simdAMD64.rules +++ b/src/cmd/compile/internal/ssa/_gen/simdAMD64.rules @@ -377,12 +377,12 @@ (FusedMultiplySubAddMaskedFloat64x2 x y z mask) => (VFMSUBADD213PDMasked128 x y z (VPMOVVec64x2ToM mask)) (FusedMultiplySubAddMaskedFloat64x4 x y z mask) => (VFMSUBADD213PDMasked256 x y z (VPMOVVec64x4ToM mask)) (FusedMultiplySubAddMaskedFloat64x8 x y z mask) => (VFMSUBADD213PDMasked512 x y z (VPMOVVec64x8ToM mask)) -(GaloisFieldAffineTransformUint8x16 [a] x y) => (VGF2P8AFFINEQB128 [a] x y) -(GaloisFieldAffineTransformUint8x32 [a] x y) => (VGF2P8AFFINEQB256 [a] x y) -(GaloisFieldAffineTransformUint8x64 [a] x y) => (VGF2P8AFFINEQB512 [a] x y) -(GaloisFieldAffineTransformInversedUint8x16 [a] x y) => (VGF2P8AFFINEINVQB128 [a] x y) -(GaloisFieldAffineTransformInversedUint8x32 [a] x y) => (VGF2P8AFFINEINVQB256 [a] x y) -(GaloisFieldAffineTransformInversedUint8x64 [a] x y) => (VGF2P8AFFINEINVQB512 [a] x y) +(GaloisFieldAffineTransformUint8x16 ...) => (VGF2P8AFFINEQB128 ...) +(GaloisFieldAffineTransformUint8x32 ...) => (VGF2P8AFFINEQB256 ...) +(GaloisFieldAffineTransformUint8x64 ...) => (VGF2P8AFFINEQB512 ...) +(GaloisFieldAffineTransformInversedUint8x16 ...) => (VGF2P8AFFINEINVQB128 ...) +(GaloisFieldAffineTransformInversedUint8x32 ...) => (VGF2P8AFFINEINVQB256 ...) +(GaloisFieldAffineTransformInversedUint8x64 ...) => (VGF2P8AFFINEINVQB512 ...) (GaloisFieldAffineTransformInversedMaskedUint8x16 [a] x y mask) => (VGF2P8AFFINEINVQBMasked128 [a] x y (VPMOVVec8x16ToM mask)) (GaloisFieldAffineTransformInversedMaskedUint8x32 [a] x y mask) => (VGF2P8AFFINEINVQBMasked256 [a] x y (VPMOVVec8x32ToM mask)) (GaloisFieldAffineTransformInversedMaskedUint8x64 [a] x y mask) => (VGF2P8AFFINEINVQBMasked512 [a] x y (VPMOVVec8x64ToM mask)) @@ -395,24 +395,24 @@ (GaloisFieldMulMaskedUint8x16 x y mask) => (VGF2P8MULBMasked128 x y (VPMOVVec8x16ToM mask)) (GaloisFieldMulMaskedUint8x32 x y mask) => (VGF2P8MULBMasked256 x y (VPMOVVec8x32ToM mask)) (GaloisFieldMulMaskedUint8x64 x y mask) => (VGF2P8MULBMasked512 x y (VPMOVVec8x64ToM mask)) -(Get128Float32x8 [a] x) => (VEXTRACTF128128 [a] x) -(Get128Float64x4 [a] x) => (VEXTRACTF128128 [a] x) -(Get128Int8x32 [a] x) => (VEXTRACTI128128 [a] x) -(Get128Int16x16 [a] x) => (VEXTRACTI128128 [a] x) -(Get128Int32x8 [a] x) => (VEXTRACTI128128 [a] x) -(Get128Int64x4 [a] x) => (VEXTRACTI128128 [a] x) -(Get128Uint8x32 [a] x) => (VEXTRACTI128128 [a] x) -(Get128Uint16x16 [a] x) => (VEXTRACTI128128 [a] x) -(Get128Uint32x8 [a] x) => (VEXTRACTI128128 [a] x) -(Get128Uint64x4 [a] x) => (VEXTRACTI128128 [a] x) -(GetElemInt8x16 [a] x) => (VPEXTRB128 [a] x) -(GetElemInt16x8 [a] x) => (VPEXTRW128 [a] x) -(GetElemInt32x4 [a] x) => (VPEXTRD128 [a] x) -(GetElemInt64x2 [a] x) => (VPEXTRQ128 [a] x) -(GetElemUint8x16 [a] x) => (VPEXTRB128 [a] x) -(GetElemUint16x8 [a] x) => (VPEXTRW128 [a] x) -(GetElemUint32x4 [a] x) => (VPEXTRD128 [a] x) -(GetElemUint64x2 [a] x) => (VPEXTRQ128 [a] x) +(Get128Float32x8 ...) => (VEXTRACTF128128 ...) +(Get128Float64x4 ...) => (VEXTRACTF128128 ...) +(Get128Int8x32 ...) => (VEXTRACTI128128 ...) +(Get128Int16x16 ...) => (VEXTRACTI128128 ...) +(Get128Int32x8 ...) => (VEXTRACTI128128 ...) +(Get128Int64x4 ...) => (VEXTRACTI128128 ...) +(Get128Uint8x32 ...) => (VEXTRACTI128128 ...) +(Get128Uint16x16 ...) => (VEXTRACTI128128 ...) +(Get128Uint32x8 ...) => (VEXTRACTI128128 ...) +(Get128Uint64x4 ...) => (VEXTRACTI128128 ...) +(GetElemInt8x16 ...) => (VPEXTRB128 ...) +(GetElemInt16x8 ...) => (VPEXTRW128 ...) +(GetElemInt32x4 ...) => (VPEXTRD128 ...) +(GetElemInt64x2 ...) => (VPEXTRQ128 ...) +(GetElemUint8x16 ...) => (VPEXTRB128 ...) +(GetElemUint16x8 ...) => (VPEXTRW128 ...) +(GetElemUint32x4 ...) => (VPEXTRD128 ...) +(GetElemUint64x2 ...) => (VPEXTRQ128 ...) (GreaterFloat32x4 x y) => (VCMPPS128 [14] x y) (GreaterFloat32x8 x y) => (VCMPPS256 [14] x y) (GreaterFloat32x16 x y) => (VPMOVMToVec32x16 (VCMPPS512 [14] x y)) @@ -1031,18 +1031,18 @@ (PopCountMaskedUint64x2 x mask) => (VPOPCNTQMasked128 x (VPMOVVec64x2ToM mask)) (PopCountMaskedUint64x4 x mask) => (VPOPCNTQMasked256 x (VPMOVVec64x4ToM mask)) (PopCountMaskedUint64x8 x mask) => (VPOPCNTQMasked512 x (VPMOVVec64x8ToM mask)) -(RotateAllLeftInt32x4 [a] x) => (VPROLD128 [a] x) -(RotateAllLeftInt32x8 [a] x) => (VPROLD256 [a] x) -(RotateAllLeftInt32x16 [a] x) => (VPROLD512 [a] x) -(RotateAllLeftInt64x2 [a] x) => (VPROLQ128 [a] x) -(RotateAllLeftInt64x4 [a] x) => (VPROLQ256 [a] x) -(RotateAllLeftInt64x8 [a] x) => (VPROLQ512 [a] x) -(RotateAllLeftUint32x4 [a] x) => (VPROLD128 [a] x) -(RotateAllLeftUint32x8 [a] x) => (VPROLD256 [a] x) -(RotateAllLeftUint32x16 [a] x) => (VPROLD512 [a] x) -(RotateAllLeftUint64x2 [a] x) => (VPROLQ128 [a] x) -(RotateAllLeftUint64x4 [a] x) => (VPROLQ256 [a] x) -(RotateAllLeftUint64x8 [a] x) => (VPROLQ512 [a] x) +(RotateAllLeftInt32x4 ...) => (VPROLD128 ...) +(RotateAllLeftInt32x8 ...) => (VPROLD256 ...) +(RotateAllLeftInt32x16 ...) => (VPROLD512 ...) +(RotateAllLeftInt64x2 ...) => (VPROLQ128 ...) +(RotateAllLeftInt64x4 ...) => (VPROLQ256 ...) +(RotateAllLeftInt64x8 ...) => (VPROLQ512 ...) +(RotateAllLeftUint32x4 ...) => (VPROLD128 ...) +(RotateAllLeftUint32x8 ...) => (VPROLD256 ...) +(RotateAllLeftUint32x16 ...) => (VPROLD512 ...) +(RotateAllLeftUint64x2 ...) => (VPROLQ128 ...) +(RotateAllLeftUint64x4 ...) => (VPROLQ256 ...) +(RotateAllLeftUint64x8 ...) => (VPROLQ512 ...) (RotateAllLeftMaskedInt32x4 [a] x mask) => (VPROLDMasked128 [a] x (VPMOVVec32x4ToM mask)) (RotateAllLeftMaskedInt32x8 [a] x mask) => (VPROLDMasked256 [a] x (VPMOVVec32x8ToM mask)) (RotateAllLeftMaskedInt32x16 [a] x mask) => (VPROLDMasked512 [a] x (VPMOVVec32x16ToM mask)) @@ -1055,18 +1055,18 @@ (RotateAllLeftMaskedUint64x2 [a] x mask) => (VPROLQMasked128 [a] x (VPMOVVec64x2ToM mask)) (RotateAllLeftMaskedUint64x4 [a] x mask) => (VPROLQMasked256 [a] x (VPMOVVec64x4ToM mask)) (RotateAllLeftMaskedUint64x8 [a] x mask) => (VPROLQMasked512 [a] x (VPMOVVec64x8ToM mask)) -(RotateAllRightInt32x4 [a] x) => (VPRORD128 [a] x) -(RotateAllRightInt32x8 [a] x) => (VPRORD256 [a] x) -(RotateAllRightInt32x16 [a] x) => (VPRORD512 [a] x) -(RotateAllRightInt64x2 [a] x) => (VPRORQ128 [a] x) -(RotateAllRightInt64x4 [a] x) => (VPRORQ256 [a] x) -(RotateAllRightInt64x8 [a] x) => (VPRORQ512 [a] x) -(RotateAllRightUint32x4 [a] x) => (VPRORD128 [a] x) -(RotateAllRightUint32x8 [a] x) => (VPRORD256 [a] x) -(RotateAllRightUint32x16 [a] x) => (VPRORD512 [a] x) -(RotateAllRightUint64x2 [a] x) => (VPRORQ128 [a] x) -(RotateAllRightUint64x4 [a] x) => (VPRORQ256 [a] x) -(RotateAllRightUint64x8 [a] x) => (VPRORQ512 [a] x) +(RotateAllRightInt32x4 ...) => (VPRORD128 ...) +(RotateAllRightInt32x8 ...) => (VPRORD256 ...) +(RotateAllRightInt32x16 ...) => (VPRORD512 ...) +(RotateAllRightInt64x2 ...) => (VPRORQ128 ...) +(RotateAllRightInt64x4 ...) => (VPRORQ256 ...) +(RotateAllRightInt64x8 ...) => (VPRORQ512 ...) +(RotateAllRightUint32x4 ...) => (VPRORD128 ...) +(RotateAllRightUint32x8 ...) => (VPRORD256 ...) +(RotateAllRightUint32x16 ...) => (VPRORD512 ...) +(RotateAllRightUint64x2 ...) => (VPRORQ128 ...) +(RotateAllRightUint64x4 ...) => (VPRORQ256 ...) +(RotateAllRightUint64x8 ...) => (VPRORQ512 ...) (RotateAllRightMaskedInt32x4 [a] x mask) => (VPRORDMasked128 [a] x (VPMOVVec32x4ToM mask)) (RotateAllRightMaskedInt32x8 [a] x mask) => (VPRORDMasked256 [a] x (VPMOVVec32x8ToM mask)) (RotateAllRightMaskedInt32x16 [a] x mask) => (VPRORDMasked512 [a] x (VPMOVVec32x16ToM mask)) @@ -1219,24 +1219,24 @@ (SaturatedUnsignedSignedQuadDotProdAccumulateMaskedUint32x4 x y z mask) => (VPDPBUSDSMasked128 x y z (VPMOVVec32x4ToM mask)) (SaturatedUnsignedSignedQuadDotProdAccumulateMaskedUint32x8 x y z mask) => (VPDPBUSDSMasked256 x y z (VPMOVVec32x8ToM mask)) (SaturatedUnsignedSignedQuadDotProdAccumulateMaskedUint32x16 x y z mask) => (VPDPBUSDSMasked512 x y z (VPMOVVec32x16ToM mask)) -(Set128Float32x8 [a] x y) => (VINSERTF128256 [a] x y) -(Set128Float64x4 [a] x y) => (VINSERTF128256 [a] x y) -(Set128Int8x32 [a] x y) => (VINSERTI128256 [a] x y) -(Set128Int16x16 [a] x y) => (VINSERTI128256 [a] x y) -(Set128Int32x8 [a] x y) => (VINSERTI128256 [a] x y) -(Set128Int64x4 [a] x y) => (VINSERTI128256 [a] x y) -(Set128Uint8x32 [a] x y) => (VINSERTI128256 [a] x y) -(Set128Uint16x16 [a] x y) => (VINSERTI128256 [a] x y) -(Set128Uint32x8 [a] x y) => (VINSERTI128256 [a] x y) -(Set128Uint64x4 [a] x y) => (VINSERTI128256 [a] x y) -(SetElemInt8x16 [a] x y) => (VPINSRB128 [a] x y) -(SetElemInt16x8 [a] x y) => (VPINSRW128 [a] x y) -(SetElemInt32x4 [a] x y) => (VPINSRD128 [a] x y) -(SetElemInt64x2 [a] x y) => (VPINSRQ128 [a] x y) -(SetElemUint8x16 [a] x y) => (VPINSRB128 [a] x y) -(SetElemUint16x8 [a] x y) => (VPINSRW128 [a] x y) -(SetElemUint32x4 [a] x y) => (VPINSRD128 [a] x y) -(SetElemUint64x2 [a] x y) => (VPINSRQ128 [a] x y) +(Set128Float32x8 ...) => (VINSERTF128256 ...) +(Set128Float64x4 ...) => (VINSERTF128256 ...) +(Set128Int8x32 ...) => (VINSERTI128256 ...) +(Set128Int16x16 ...) => (VINSERTI128256 ...) +(Set128Int32x8 ...) => (VINSERTI128256 ...) +(Set128Int64x4 ...) => (VINSERTI128256 ...) +(Set128Uint8x32 ...) => (VINSERTI128256 ...) +(Set128Uint16x16 ...) => (VINSERTI128256 ...) +(Set128Uint32x8 ...) => (VINSERTI128256 ...) +(Set128Uint64x4 ...) => (VINSERTI128256 ...) +(SetElemInt8x16 ...) => (VPINSRB128 ...) +(SetElemInt16x8 ...) => (VPINSRW128 ...) +(SetElemInt32x4 ...) => (VPINSRD128 ...) +(SetElemInt64x2 ...) => (VPINSRQ128 ...) +(SetElemUint8x16 ...) => (VPINSRB128 ...) +(SetElemUint16x8 ...) => (VPINSRW128 ...) +(SetElemUint32x4 ...) => (VPINSRD128 ...) +(SetElemUint64x2 ...) => (VPINSRQ128 ...) (ShiftAllLeftInt16x8 ...) => (VPSLLW128 ...) (ShiftAllLeftInt16x16 ...) => (VPSLLW256 ...) (ShiftAllLeftInt32x4 ...) => (VPSLLD128 ...) @@ -1251,24 +1251,24 @@ (ShiftAllLeftUint64x2 ...) => (VPSLLQ128 ...) (ShiftAllLeftUint64x4 ...) => (VPSLLQ256 ...) (ShiftAllLeftUint64x8 ...) => (VPSLLQ512 ...) -(ShiftAllLeftAndFillUpperFromInt16x8 [a] x y) => (VPSHLDW128 [a] x y) -(ShiftAllLeftAndFillUpperFromInt16x16 [a] x y) => (VPSHLDW256 [a] x y) -(ShiftAllLeftAndFillUpperFromInt16x32 [a] x y) => (VPSHLDW512 [a] x y) -(ShiftAllLeftAndFillUpperFromInt32x4 [a] x y) => (VPSHLDD128 [a] x y) -(ShiftAllLeftAndFillUpperFromInt32x8 [a] x y) => (VPSHLDD256 [a] x y) -(ShiftAllLeftAndFillUpperFromInt32x16 [a] x y) => (VPSHLDD512 [a] x y) -(ShiftAllLeftAndFillUpperFromInt64x2 [a] x y) => (VPSHLDQ128 [a] x y) -(ShiftAllLeftAndFillUpperFromInt64x4 [a] x y) => (VPSHLDQ256 [a] x y) -(ShiftAllLeftAndFillUpperFromInt64x8 [a] x y) => (VPSHLDQ512 [a] x y) -(ShiftAllLeftAndFillUpperFromUint16x8 [a] x y) => (VPSHLDW128 [a] x y) -(ShiftAllLeftAndFillUpperFromUint16x16 [a] x y) => (VPSHLDW256 [a] x y) -(ShiftAllLeftAndFillUpperFromUint16x32 [a] x y) => (VPSHLDW512 [a] x y) -(ShiftAllLeftAndFillUpperFromUint32x4 [a] x y) => (VPSHLDD128 [a] x y) -(ShiftAllLeftAndFillUpperFromUint32x8 [a] x y) => (VPSHLDD256 [a] x y) -(ShiftAllLeftAndFillUpperFromUint32x16 [a] x y) => (VPSHLDD512 [a] x y) -(ShiftAllLeftAndFillUpperFromUint64x2 [a] x y) => (VPSHLDQ128 [a] x y) -(ShiftAllLeftAndFillUpperFromUint64x4 [a] x y) => (VPSHLDQ256 [a] x y) -(ShiftAllLeftAndFillUpperFromUint64x8 [a] x y) => (VPSHLDQ512 [a] x y) +(ShiftAllLeftAndFillUpperFromInt16x8 ...) => (VPSHLDW128 ...) +(ShiftAllLeftAndFillUpperFromInt16x16 ...) => (VPSHLDW256 ...) +(ShiftAllLeftAndFillUpperFromInt16x32 ...) => (VPSHLDW512 ...) +(ShiftAllLeftAndFillUpperFromInt32x4 ...) => (VPSHLDD128 ...) +(ShiftAllLeftAndFillUpperFromInt32x8 ...) => (VPSHLDD256 ...) +(ShiftAllLeftAndFillUpperFromInt32x16 ...) => (VPSHLDD512 ...) +(ShiftAllLeftAndFillUpperFromInt64x2 ...) => (VPSHLDQ128 ...) +(ShiftAllLeftAndFillUpperFromInt64x4 ...) => (VPSHLDQ256 ...) +(ShiftAllLeftAndFillUpperFromInt64x8 ...) => (VPSHLDQ512 ...) +(ShiftAllLeftAndFillUpperFromUint16x8 ...) => (VPSHLDW128 ...) +(ShiftAllLeftAndFillUpperFromUint16x16 ...) => (VPSHLDW256 ...) +(ShiftAllLeftAndFillUpperFromUint16x32 ...) => (VPSHLDW512 ...) +(ShiftAllLeftAndFillUpperFromUint32x4 ...) => (VPSHLDD128 ...) +(ShiftAllLeftAndFillUpperFromUint32x8 ...) => (VPSHLDD256 ...) +(ShiftAllLeftAndFillUpperFromUint32x16 ...) => (VPSHLDD512 ...) +(ShiftAllLeftAndFillUpperFromUint64x2 ...) => (VPSHLDQ128 ...) +(ShiftAllLeftAndFillUpperFromUint64x4 ...) => (VPSHLDQ256 ...) +(ShiftAllLeftAndFillUpperFromUint64x8 ...) => (VPSHLDQ512 ...) (ShiftAllLeftAndFillUpperFromMaskedInt16x8 [a] x y mask) => (VPSHLDWMasked128 [a] x y (VPMOVVec16x8ToM mask)) (ShiftAllLeftAndFillUpperFromMaskedInt16x16 [a] x y mask) => (VPSHLDWMasked256 [a] x y (VPMOVVec16x16ToM mask)) (ShiftAllLeftAndFillUpperFromMaskedInt16x32 [a] x y mask) => (VPSHLDWMasked512 [a] x y (VPMOVVec16x32ToM mask)) @@ -1307,24 +1307,24 @@ (ShiftAllRightUint64x2 ...) => (VPSRLQ128 ...) (ShiftAllRightUint64x4 ...) => (VPSRLQ256 ...) (ShiftAllRightUint64x8 ...) => (VPSRLQ512 ...) -(ShiftAllRightAndFillUpperFromInt16x8 [a] x y) => (VPSHRDW128 [a] x y) -(ShiftAllRightAndFillUpperFromInt16x16 [a] x y) => (VPSHRDW256 [a] x y) -(ShiftAllRightAndFillUpperFromInt16x32 [a] x y) => (VPSHRDW512 [a] x y) -(ShiftAllRightAndFillUpperFromInt32x4 [a] x y) => (VPSHRDD128 [a] x y) -(ShiftAllRightAndFillUpperFromInt32x8 [a] x y) => (VPSHRDD256 [a] x y) -(ShiftAllRightAndFillUpperFromInt32x16 [a] x y) => (VPSHRDD512 [a] x y) -(ShiftAllRightAndFillUpperFromInt64x2 [a] x y) => (VPSHRDQ128 [a] x y) -(ShiftAllRightAndFillUpperFromInt64x4 [a] x y) => (VPSHRDQ256 [a] x y) -(ShiftAllRightAndFillUpperFromInt64x8 [a] x y) => (VPSHRDQ512 [a] x y) -(ShiftAllRightAndFillUpperFromUint16x8 [a] x y) => (VPSHRDW128 [a] x y) -(ShiftAllRightAndFillUpperFromUint16x16 [a] x y) => (VPSHRDW256 [a] x y) -(ShiftAllRightAndFillUpperFromUint16x32 [a] x y) => (VPSHRDW512 [a] x y) -(ShiftAllRightAndFillUpperFromUint32x4 [a] x y) => (VPSHRDD128 [a] x y) -(ShiftAllRightAndFillUpperFromUint32x8 [a] x y) => (VPSHRDD256 [a] x y) -(ShiftAllRightAndFillUpperFromUint32x16 [a] x y) => (VPSHRDD512 [a] x y) -(ShiftAllRightAndFillUpperFromUint64x2 [a] x y) => (VPSHRDQ128 [a] x y) -(ShiftAllRightAndFillUpperFromUint64x4 [a] x y) => (VPSHRDQ256 [a] x y) -(ShiftAllRightAndFillUpperFromUint64x8 [a] x y) => (VPSHRDQ512 [a] x y) +(ShiftAllRightAndFillUpperFromInt16x8 ...) => (VPSHRDW128 ...) +(ShiftAllRightAndFillUpperFromInt16x16 ...) => (VPSHRDW256 ...) +(ShiftAllRightAndFillUpperFromInt16x32 ...) => (VPSHRDW512 ...) +(ShiftAllRightAndFillUpperFromInt32x4 ...) => (VPSHRDD128 ...) +(ShiftAllRightAndFillUpperFromInt32x8 ...) => (VPSHRDD256 ...) +(ShiftAllRightAndFillUpperFromInt32x16 ...) => (VPSHRDD512 ...) +(ShiftAllRightAndFillUpperFromInt64x2 ...) => (VPSHRDQ128 ...) +(ShiftAllRightAndFillUpperFromInt64x4 ...) => (VPSHRDQ256 ...) +(ShiftAllRightAndFillUpperFromInt64x8 ...) => (VPSHRDQ512 ...) +(ShiftAllRightAndFillUpperFromUint16x8 ...) => (VPSHRDW128 ...) +(ShiftAllRightAndFillUpperFromUint16x16 ...) => (VPSHRDW256 ...) +(ShiftAllRightAndFillUpperFromUint16x32 ...) => (VPSHRDW512 ...) +(ShiftAllRightAndFillUpperFromUint32x4 ...) => (VPSHRDD128 ...) +(ShiftAllRightAndFillUpperFromUint32x8 ...) => (VPSHRDD256 ...) +(ShiftAllRightAndFillUpperFromUint32x16 ...) => (VPSHRDD512 ...) +(ShiftAllRightAndFillUpperFromUint64x2 ...) => (VPSHRDQ128 ...) +(ShiftAllRightAndFillUpperFromUint64x4 ...) => (VPSHRDQ256 ...) +(ShiftAllRightAndFillUpperFromUint64x8 ...) => (VPSHRDQ512 ...) (ShiftAllRightAndFillUpperFromMaskedInt16x8 [a] x y mask) => (VPSHRDWMasked128 [a] x y (VPMOVVec16x8ToM mask)) (ShiftAllRightAndFillUpperFromMaskedInt16x16 [a] x y mask) => (VPSHRDWMasked256 [a] x y (VPMOVVec16x16ToM mask)) (ShiftAllRightAndFillUpperFromMaskedInt16x32 [a] x y mask) => (VPSHRDWMasked512 [a] x y (VPMOVVec16x32ToM mask)) diff --git a/src/cmd/compile/internal/ssa/rewriteAMD64.go b/src/cmd/compile/internal/ssa/rewriteAMD64.go index 4dd1fcbcb7..98bc0779f6 100644 --- a/src/cmd/compile/internal/ssa/rewriteAMD64.go +++ b/src/cmd/compile/internal/ssa/rewriteAMD64.go @@ -1694,11 +1694,14 @@ func rewriteValueAMD64(v *Value) bool { case OpGaloisFieldAffineTransformInversedMaskedUint8x64: return rewriteValueAMD64_OpGaloisFieldAffineTransformInversedMaskedUint8x64(v) case OpGaloisFieldAffineTransformInversedUint8x16: - return rewriteValueAMD64_OpGaloisFieldAffineTransformInversedUint8x16(v) + v.Op = OpAMD64VGF2P8AFFINEINVQB128 + return true case OpGaloisFieldAffineTransformInversedUint8x32: - return rewriteValueAMD64_OpGaloisFieldAffineTransformInversedUint8x32(v) + v.Op = OpAMD64VGF2P8AFFINEINVQB256 + return true case OpGaloisFieldAffineTransformInversedUint8x64: - return rewriteValueAMD64_OpGaloisFieldAffineTransformInversedUint8x64(v) + v.Op = OpAMD64VGF2P8AFFINEINVQB512 + return true case OpGaloisFieldAffineTransformMaskedUint8x16: return rewriteValueAMD64_OpGaloisFieldAffineTransformMaskedUint8x16(v) case OpGaloisFieldAffineTransformMaskedUint8x32: @@ -1706,11 +1709,14 @@ func rewriteValueAMD64(v *Value) bool { case OpGaloisFieldAffineTransformMaskedUint8x64: return rewriteValueAMD64_OpGaloisFieldAffineTransformMaskedUint8x64(v) case OpGaloisFieldAffineTransformUint8x16: - return rewriteValueAMD64_OpGaloisFieldAffineTransformUint8x16(v) + v.Op = OpAMD64VGF2P8AFFINEQB128 + return true case OpGaloisFieldAffineTransformUint8x32: - return rewriteValueAMD64_OpGaloisFieldAffineTransformUint8x32(v) + v.Op = OpAMD64VGF2P8AFFINEQB256 + return true case OpGaloisFieldAffineTransformUint8x64: - return rewriteValueAMD64_OpGaloisFieldAffineTransformUint8x64(v) + v.Op = OpAMD64VGF2P8AFFINEQB512 + return true case OpGaloisFieldMulMaskedUint8x16: return rewriteValueAMD64_OpGaloisFieldMulMaskedUint8x16(v) case OpGaloisFieldMulMaskedUint8x32: @@ -1727,25 +1733,35 @@ func rewriteValueAMD64(v *Value) bool { v.Op = OpAMD64VGF2P8MULB512 return true case OpGet128Float32x8: - return rewriteValueAMD64_OpGet128Float32x8(v) + v.Op = OpAMD64VEXTRACTF128128 + return true case OpGet128Float64x4: - return rewriteValueAMD64_OpGet128Float64x4(v) + v.Op = OpAMD64VEXTRACTF128128 + return true case OpGet128Int16x16: - return rewriteValueAMD64_OpGet128Int16x16(v) + v.Op = OpAMD64VEXTRACTI128128 + return true case OpGet128Int32x8: - return rewriteValueAMD64_OpGet128Int32x8(v) + v.Op = OpAMD64VEXTRACTI128128 + return true case OpGet128Int64x4: - return rewriteValueAMD64_OpGet128Int64x4(v) + v.Op = OpAMD64VEXTRACTI128128 + return true case OpGet128Int8x32: - return rewriteValueAMD64_OpGet128Int8x32(v) + v.Op = OpAMD64VEXTRACTI128128 + return true case OpGet128Uint16x16: - return rewriteValueAMD64_OpGet128Uint16x16(v) + v.Op = OpAMD64VEXTRACTI128128 + return true case OpGet128Uint32x8: - return rewriteValueAMD64_OpGet128Uint32x8(v) + v.Op = OpAMD64VEXTRACTI128128 + return true case OpGet128Uint64x4: - return rewriteValueAMD64_OpGet128Uint64x4(v) + v.Op = OpAMD64VEXTRACTI128128 + return true case OpGet128Uint8x32: - return rewriteValueAMD64_OpGet128Uint8x32(v) + v.Op = OpAMD64VEXTRACTI128128 + return true case OpGetCallerPC: v.Op = OpAMD64LoweredGetCallerPC return true @@ -1756,21 +1772,29 @@ func rewriteValueAMD64(v *Value) bool { v.Op = OpAMD64LoweredGetClosurePtr return true case OpGetElemInt16x8: - return rewriteValueAMD64_OpGetElemInt16x8(v) + v.Op = OpAMD64VPEXTRW128 + return true case OpGetElemInt32x4: - return rewriteValueAMD64_OpGetElemInt32x4(v) + v.Op = OpAMD64VPEXTRD128 + return true case OpGetElemInt64x2: - return rewriteValueAMD64_OpGetElemInt64x2(v) + v.Op = OpAMD64VPEXTRQ128 + return true case OpGetElemInt8x16: - return rewriteValueAMD64_OpGetElemInt8x16(v) + v.Op = OpAMD64VPEXTRB128 + return true case OpGetElemUint16x8: - return rewriteValueAMD64_OpGetElemUint16x8(v) + v.Op = OpAMD64VPEXTRW128 + return true case OpGetElemUint32x4: - return rewriteValueAMD64_OpGetElemUint32x4(v) + v.Op = OpAMD64VPEXTRD128 + return true case OpGetElemUint64x2: - return rewriteValueAMD64_OpGetElemUint64x2(v) + v.Op = OpAMD64VPEXTRQ128 + return true case OpGetElemUint8x16: - return rewriteValueAMD64_OpGetElemUint8x16(v) + v.Op = OpAMD64VPEXTRB128 + return true case OpGetG: return rewriteValueAMD64_OpGetG(v) case OpGreaterEqualFloat32x16: @@ -3407,17 +3431,23 @@ func rewriteValueAMD64(v *Value) bool { v.Op = OpAMD64PrefetchNTA return true case OpRotateAllLeftInt32x16: - return rewriteValueAMD64_OpRotateAllLeftInt32x16(v) + v.Op = OpAMD64VPROLD512 + return true case OpRotateAllLeftInt32x4: - return rewriteValueAMD64_OpRotateAllLeftInt32x4(v) + v.Op = OpAMD64VPROLD128 + return true case OpRotateAllLeftInt32x8: - return rewriteValueAMD64_OpRotateAllLeftInt32x8(v) + v.Op = OpAMD64VPROLD256 + return true case OpRotateAllLeftInt64x2: - return rewriteValueAMD64_OpRotateAllLeftInt64x2(v) + v.Op = OpAMD64VPROLQ128 + return true case OpRotateAllLeftInt64x4: - return rewriteValueAMD64_OpRotateAllLeftInt64x4(v) + v.Op = OpAMD64VPROLQ256 + return true case OpRotateAllLeftInt64x8: - return rewriteValueAMD64_OpRotateAllLeftInt64x8(v) + v.Op = OpAMD64VPROLQ512 + return true case OpRotateAllLeftMaskedInt32x16: return rewriteValueAMD64_OpRotateAllLeftMaskedInt32x16(v) case OpRotateAllLeftMaskedInt32x4: @@ -3443,29 +3473,41 @@ func rewriteValueAMD64(v *Value) bool { case OpRotateAllLeftMaskedUint64x8: return rewriteValueAMD64_OpRotateAllLeftMaskedUint64x8(v) case OpRotateAllLeftUint32x16: - return rewriteValueAMD64_OpRotateAllLeftUint32x16(v) + v.Op = OpAMD64VPROLD512 + return true case OpRotateAllLeftUint32x4: - return rewriteValueAMD64_OpRotateAllLeftUint32x4(v) + v.Op = OpAMD64VPROLD128 + return true case OpRotateAllLeftUint32x8: - return rewriteValueAMD64_OpRotateAllLeftUint32x8(v) + v.Op = OpAMD64VPROLD256 + return true case OpRotateAllLeftUint64x2: - return rewriteValueAMD64_OpRotateAllLeftUint64x2(v) + v.Op = OpAMD64VPROLQ128 + return true case OpRotateAllLeftUint64x4: - return rewriteValueAMD64_OpRotateAllLeftUint64x4(v) + v.Op = OpAMD64VPROLQ256 + return true case OpRotateAllLeftUint64x8: - return rewriteValueAMD64_OpRotateAllLeftUint64x8(v) + v.Op = OpAMD64VPROLQ512 + return true case OpRotateAllRightInt32x16: - return rewriteValueAMD64_OpRotateAllRightInt32x16(v) + v.Op = OpAMD64VPRORD512 + return true case OpRotateAllRightInt32x4: - return rewriteValueAMD64_OpRotateAllRightInt32x4(v) + v.Op = OpAMD64VPRORD128 + return true case OpRotateAllRightInt32x8: - return rewriteValueAMD64_OpRotateAllRightInt32x8(v) + v.Op = OpAMD64VPRORD256 + return true case OpRotateAllRightInt64x2: - return rewriteValueAMD64_OpRotateAllRightInt64x2(v) + v.Op = OpAMD64VPRORQ128 + return true case OpRotateAllRightInt64x4: - return rewriteValueAMD64_OpRotateAllRightInt64x4(v) + v.Op = OpAMD64VPRORQ256 + return true case OpRotateAllRightInt64x8: - return rewriteValueAMD64_OpRotateAllRightInt64x8(v) + v.Op = OpAMD64VPRORQ512 + return true case OpRotateAllRightMaskedInt32x16: return rewriteValueAMD64_OpRotateAllRightMaskedInt32x16(v) case OpRotateAllRightMaskedInt32x4: @@ -3491,17 +3533,23 @@ func rewriteValueAMD64(v *Value) bool { case OpRotateAllRightMaskedUint64x8: return rewriteValueAMD64_OpRotateAllRightMaskedUint64x8(v) case OpRotateAllRightUint32x16: - return rewriteValueAMD64_OpRotateAllRightUint32x16(v) + v.Op = OpAMD64VPRORD512 + return true case OpRotateAllRightUint32x4: - return rewriteValueAMD64_OpRotateAllRightUint32x4(v) + v.Op = OpAMD64VPRORD128 + return true case OpRotateAllRightUint32x8: - return rewriteValueAMD64_OpRotateAllRightUint32x8(v) + v.Op = OpAMD64VPRORD256 + return true case OpRotateAllRightUint64x2: - return rewriteValueAMD64_OpRotateAllRightUint64x2(v) + v.Op = OpAMD64VPRORQ128 + return true case OpRotateAllRightUint64x4: - return rewriteValueAMD64_OpRotateAllRightUint64x4(v) + v.Op = OpAMD64VPRORQ256 + return true case OpRotateAllRightUint64x8: - return rewriteValueAMD64_OpRotateAllRightUint64x8(v) + v.Op = OpAMD64VPRORQ512 + return true case OpRotateLeft16: v.Op = OpAMD64ROLW return true @@ -3937,59 +3985,86 @@ func rewriteValueAMD64(v *Value) bool { case OpSelectN: return rewriteValueAMD64_OpSelectN(v) case OpSet128Float32x8: - return rewriteValueAMD64_OpSet128Float32x8(v) + v.Op = OpAMD64VINSERTF128256 + return true case OpSet128Float64x4: - return rewriteValueAMD64_OpSet128Float64x4(v) + v.Op = OpAMD64VINSERTF128256 + return true case OpSet128Int16x16: - return rewriteValueAMD64_OpSet128Int16x16(v) + v.Op = OpAMD64VINSERTI128256 + return true case OpSet128Int32x8: - return rewriteValueAMD64_OpSet128Int32x8(v) + v.Op = OpAMD64VINSERTI128256 + return true case OpSet128Int64x4: - return rewriteValueAMD64_OpSet128Int64x4(v) + v.Op = OpAMD64VINSERTI128256 + return true case OpSet128Int8x32: - return rewriteValueAMD64_OpSet128Int8x32(v) + v.Op = OpAMD64VINSERTI128256 + return true case OpSet128Uint16x16: - return rewriteValueAMD64_OpSet128Uint16x16(v) + v.Op = OpAMD64VINSERTI128256 + return true case OpSet128Uint32x8: - return rewriteValueAMD64_OpSet128Uint32x8(v) + v.Op = OpAMD64VINSERTI128256 + return true case OpSet128Uint64x4: - return rewriteValueAMD64_OpSet128Uint64x4(v) + v.Op = OpAMD64VINSERTI128256 + return true case OpSet128Uint8x32: - return rewriteValueAMD64_OpSet128Uint8x32(v) + v.Op = OpAMD64VINSERTI128256 + return true case OpSetElemInt16x8: - return rewriteValueAMD64_OpSetElemInt16x8(v) + v.Op = OpAMD64VPINSRW128 + return true case OpSetElemInt32x4: - return rewriteValueAMD64_OpSetElemInt32x4(v) + v.Op = OpAMD64VPINSRD128 + return true case OpSetElemInt64x2: - return rewriteValueAMD64_OpSetElemInt64x2(v) + v.Op = OpAMD64VPINSRQ128 + return true case OpSetElemInt8x16: - return rewriteValueAMD64_OpSetElemInt8x16(v) + v.Op = OpAMD64VPINSRB128 + return true case OpSetElemUint16x8: - return rewriteValueAMD64_OpSetElemUint16x8(v) + v.Op = OpAMD64VPINSRW128 + return true case OpSetElemUint32x4: - return rewriteValueAMD64_OpSetElemUint32x4(v) + v.Op = OpAMD64VPINSRD128 + return true case OpSetElemUint64x2: - return rewriteValueAMD64_OpSetElemUint64x2(v) + v.Op = OpAMD64VPINSRQ128 + return true case OpSetElemUint8x16: - return rewriteValueAMD64_OpSetElemUint8x16(v) + v.Op = OpAMD64VPINSRB128 + return true case OpShiftAllLeftAndFillUpperFromInt16x16: - return rewriteValueAMD64_OpShiftAllLeftAndFillUpperFromInt16x16(v) + v.Op = OpAMD64VPSHLDW256 + return true case OpShiftAllLeftAndFillUpperFromInt16x32: - return rewriteValueAMD64_OpShiftAllLeftAndFillUpperFromInt16x32(v) + v.Op = OpAMD64VPSHLDW512 + return true case OpShiftAllLeftAndFillUpperFromInt16x8: - return rewriteValueAMD64_OpShiftAllLeftAndFillUpperFromInt16x8(v) + v.Op = OpAMD64VPSHLDW128 + return true case OpShiftAllLeftAndFillUpperFromInt32x16: - return rewriteValueAMD64_OpShiftAllLeftAndFillUpperFromInt32x16(v) + v.Op = OpAMD64VPSHLDD512 + return true case OpShiftAllLeftAndFillUpperFromInt32x4: - return rewriteValueAMD64_OpShiftAllLeftAndFillUpperFromInt32x4(v) + v.Op = OpAMD64VPSHLDD128 + return true case OpShiftAllLeftAndFillUpperFromInt32x8: - return rewriteValueAMD64_OpShiftAllLeftAndFillUpperFromInt32x8(v) + v.Op = OpAMD64VPSHLDD256 + return true case OpShiftAllLeftAndFillUpperFromInt64x2: - return rewriteValueAMD64_OpShiftAllLeftAndFillUpperFromInt64x2(v) + v.Op = OpAMD64VPSHLDQ128 + return true case OpShiftAllLeftAndFillUpperFromInt64x4: - return rewriteValueAMD64_OpShiftAllLeftAndFillUpperFromInt64x4(v) + v.Op = OpAMD64VPSHLDQ256 + return true case OpShiftAllLeftAndFillUpperFromInt64x8: - return rewriteValueAMD64_OpShiftAllLeftAndFillUpperFromInt64x8(v) + v.Op = OpAMD64VPSHLDQ512 + return true case OpShiftAllLeftAndFillUpperFromMaskedInt16x16: return rewriteValueAMD64_OpShiftAllLeftAndFillUpperFromMaskedInt16x16(v) case OpShiftAllLeftAndFillUpperFromMaskedInt16x32: @@ -4027,23 +4102,32 @@ func rewriteValueAMD64(v *Value) bool { case OpShiftAllLeftAndFillUpperFromMaskedUint64x8: return rewriteValueAMD64_OpShiftAllLeftAndFillUpperFromMaskedUint64x8(v) case OpShiftAllLeftAndFillUpperFromUint16x16: - return rewriteValueAMD64_OpShiftAllLeftAndFillUpperFromUint16x16(v) + v.Op = OpAMD64VPSHLDW256 + return true case OpShiftAllLeftAndFillUpperFromUint16x32: - return rewriteValueAMD64_OpShiftAllLeftAndFillUpperFromUint16x32(v) + v.Op = OpAMD64VPSHLDW512 + return true case OpShiftAllLeftAndFillUpperFromUint16x8: - return rewriteValueAMD64_OpShiftAllLeftAndFillUpperFromUint16x8(v) + v.Op = OpAMD64VPSHLDW128 + return true case OpShiftAllLeftAndFillUpperFromUint32x16: - return rewriteValueAMD64_OpShiftAllLeftAndFillUpperFromUint32x16(v) + v.Op = OpAMD64VPSHLDD512 + return true case OpShiftAllLeftAndFillUpperFromUint32x4: - return rewriteValueAMD64_OpShiftAllLeftAndFillUpperFromUint32x4(v) + v.Op = OpAMD64VPSHLDD128 + return true case OpShiftAllLeftAndFillUpperFromUint32x8: - return rewriteValueAMD64_OpShiftAllLeftAndFillUpperFromUint32x8(v) + v.Op = OpAMD64VPSHLDD256 + return true case OpShiftAllLeftAndFillUpperFromUint64x2: - return rewriteValueAMD64_OpShiftAllLeftAndFillUpperFromUint64x2(v) + v.Op = OpAMD64VPSHLDQ128 + return true case OpShiftAllLeftAndFillUpperFromUint64x4: - return rewriteValueAMD64_OpShiftAllLeftAndFillUpperFromUint64x4(v) + v.Op = OpAMD64VPSHLDQ256 + return true case OpShiftAllLeftAndFillUpperFromUint64x8: - return rewriteValueAMD64_OpShiftAllLeftAndFillUpperFromUint64x8(v) + v.Op = OpAMD64VPSHLDQ512 + return true case OpShiftAllLeftInt16x16: v.Op = OpAMD64VPSLLW256 return true @@ -4099,23 +4183,32 @@ func rewriteValueAMD64(v *Value) bool { v.Op = OpAMD64VPSLLQ512 return true case OpShiftAllRightAndFillUpperFromInt16x16: - return rewriteValueAMD64_OpShiftAllRightAndFillUpperFromInt16x16(v) + v.Op = OpAMD64VPSHRDW256 + return true case OpShiftAllRightAndFillUpperFromInt16x32: - return rewriteValueAMD64_OpShiftAllRightAndFillUpperFromInt16x32(v) + v.Op = OpAMD64VPSHRDW512 + return true case OpShiftAllRightAndFillUpperFromInt16x8: - return rewriteValueAMD64_OpShiftAllRightAndFillUpperFromInt16x8(v) + v.Op = OpAMD64VPSHRDW128 + return true case OpShiftAllRightAndFillUpperFromInt32x16: - return rewriteValueAMD64_OpShiftAllRightAndFillUpperFromInt32x16(v) + v.Op = OpAMD64VPSHRDD512 + return true case OpShiftAllRightAndFillUpperFromInt32x4: - return rewriteValueAMD64_OpShiftAllRightAndFillUpperFromInt32x4(v) + v.Op = OpAMD64VPSHRDD128 + return true case OpShiftAllRightAndFillUpperFromInt32x8: - return rewriteValueAMD64_OpShiftAllRightAndFillUpperFromInt32x8(v) + v.Op = OpAMD64VPSHRDD256 + return true case OpShiftAllRightAndFillUpperFromInt64x2: - return rewriteValueAMD64_OpShiftAllRightAndFillUpperFromInt64x2(v) + v.Op = OpAMD64VPSHRDQ128 + return true case OpShiftAllRightAndFillUpperFromInt64x4: - return rewriteValueAMD64_OpShiftAllRightAndFillUpperFromInt64x4(v) + v.Op = OpAMD64VPSHRDQ256 + return true case OpShiftAllRightAndFillUpperFromInt64x8: - return rewriteValueAMD64_OpShiftAllRightAndFillUpperFromInt64x8(v) + v.Op = OpAMD64VPSHRDQ512 + return true case OpShiftAllRightAndFillUpperFromMaskedInt16x16: return rewriteValueAMD64_OpShiftAllRightAndFillUpperFromMaskedInt16x16(v) case OpShiftAllRightAndFillUpperFromMaskedInt16x32: @@ -4153,23 +4246,32 @@ func rewriteValueAMD64(v *Value) bool { case OpShiftAllRightAndFillUpperFromMaskedUint64x8: return rewriteValueAMD64_OpShiftAllRightAndFillUpperFromMaskedUint64x8(v) case OpShiftAllRightAndFillUpperFromUint16x16: - return rewriteValueAMD64_OpShiftAllRightAndFillUpperFromUint16x16(v) + v.Op = OpAMD64VPSHRDW256 + return true case OpShiftAllRightAndFillUpperFromUint16x32: - return rewriteValueAMD64_OpShiftAllRightAndFillUpperFromUint16x32(v) + v.Op = OpAMD64VPSHRDW512 + return true case OpShiftAllRightAndFillUpperFromUint16x8: - return rewriteValueAMD64_OpShiftAllRightAndFillUpperFromUint16x8(v) + v.Op = OpAMD64VPSHRDW128 + return true case OpShiftAllRightAndFillUpperFromUint32x16: - return rewriteValueAMD64_OpShiftAllRightAndFillUpperFromUint32x16(v) + v.Op = OpAMD64VPSHRDD512 + return true case OpShiftAllRightAndFillUpperFromUint32x4: - return rewriteValueAMD64_OpShiftAllRightAndFillUpperFromUint32x4(v) + v.Op = OpAMD64VPSHRDD128 + return true case OpShiftAllRightAndFillUpperFromUint32x8: - return rewriteValueAMD64_OpShiftAllRightAndFillUpperFromUint32x8(v) + v.Op = OpAMD64VPSHRDD256 + return true case OpShiftAllRightAndFillUpperFromUint64x2: - return rewriteValueAMD64_OpShiftAllRightAndFillUpperFromUint64x2(v) + v.Op = OpAMD64VPSHRDQ128 + return true case OpShiftAllRightAndFillUpperFromUint64x4: - return rewriteValueAMD64_OpShiftAllRightAndFillUpperFromUint64x4(v) + v.Op = OpAMD64VPSHRDQ256 + return true case OpShiftAllRightAndFillUpperFromUint64x8: - return rewriteValueAMD64_OpShiftAllRightAndFillUpperFromUint64x8(v) + v.Op = OpAMD64VPSHRDQ512 + return true case OpShiftAllRightInt16x16: v.Op = OpAMD64VPSRLW256 return true @@ -33974,51 +34076,6 @@ func rewriteValueAMD64_OpGaloisFieldAffineTransformInversedMaskedUint8x64(v *Val return true } } -func rewriteValueAMD64_OpGaloisFieldAffineTransformInversedUint8x16(v *Value) bool { - v_1 := v.Args[1] - v_0 := v.Args[0] - // match: (GaloisFieldAffineTransformInversedUint8x16 [a] x y) - // result: (VGF2P8AFFINEINVQB128 [a] x y) - for { - a := auxIntToInt8(v.AuxInt) - x := v_0 - y := v_1 - v.reset(OpAMD64VGF2P8AFFINEINVQB128) - v.AuxInt = int8ToAuxInt(a) - v.AddArg2(x, y) - return true - } -} -func rewriteValueAMD64_OpGaloisFieldAffineTransformInversedUint8x32(v *Value) bool { - v_1 := v.Args[1] - v_0 := v.Args[0] - // match: (GaloisFieldAffineTransformInversedUint8x32 [a] x y) - // result: (VGF2P8AFFINEINVQB256 [a] x y) - for { - a := auxIntToInt8(v.AuxInt) - x := v_0 - y := v_1 - v.reset(OpAMD64VGF2P8AFFINEINVQB256) - v.AuxInt = int8ToAuxInt(a) - v.AddArg2(x, y) - return true - } -} -func rewriteValueAMD64_OpGaloisFieldAffineTransformInversedUint8x64(v *Value) bool { - v_1 := v.Args[1] - v_0 := v.Args[0] - // match: (GaloisFieldAffineTransformInversedUint8x64 [a] x y) - // result: (VGF2P8AFFINEINVQB512 [a] x y) - for { - a := auxIntToInt8(v.AuxInt) - x := v_0 - y := v_1 - v.reset(OpAMD64VGF2P8AFFINEINVQB512) - v.AuxInt = int8ToAuxInt(a) - v.AddArg2(x, y) - return true - } -} func rewriteValueAMD64_OpGaloisFieldAffineTransformMaskedUint8x16(v *Value) bool { v_2 := v.Args[2] v_1 := v.Args[1] @@ -34079,51 +34136,6 @@ func rewriteValueAMD64_OpGaloisFieldAffineTransformMaskedUint8x64(v *Value) bool return true } } -func rewriteValueAMD64_OpGaloisFieldAffineTransformUint8x16(v *Value) bool { - v_1 := v.Args[1] - v_0 := v.Args[0] - // match: (GaloisFieldAffineTransformUint8x16 [a] x y) - // result: (VGF2P8AFFINEQB128 [a] x y) - for { - a := auxIntToInt8(v.AuxInt) - x := v_0 - y := v_1 - v.reset(OpAMD64VGF2P8AFFINEQB128) - v.AuxInt = int8ToAuxInt(a) - v.AddArg2(x, y) - return true - } -} -func rewriteValueAMD64_OpGaloisFieldAffineTransformUint8x32(v *Value) bool { - v_1 := v.Args[1] - v_0 := v.Args[0] - // match: (GaloisFieldAffineTransformUint8x32 [a] x y) - // result: (VGF2P8AFFINEQB256 [a] x y) - for { - a := auxIntToInt8(v.AuxInt) - x := v_0 - y := v_1 - v.reset(OpAMD64VGF2P8AFFINEQB256) - v.AuxInt = int8ToAuxInt(a) - v.AddArg2(x, y) - return true - } -} -func rewriteValueAMD64_OpGaloisFieldAffineTransformUint8x64(v *Value) bool { - v_1 := v.Args[1] - v_0 := v.Args[0] - // match: (GaloisFieldAffineTransformUint8x64 [a] x y) - // result: (VGF2P8AFFINEQB512 [a] x y) - for { - a := auxIntToInt8(v.AuxInt) - x := v_0 - y := v_1 - v.reset(OpAMD64VGF2P8AFFINEQB512) - v.AuxInt = int8ToAuxInt(a) - v.AddArg2(x, y) - return true - } -} func rewriteValueAMD64_OpGaloisFieldMulMaskedUint8x16(v *Value) bool { v_2 := v.Args[2] v_1 := v.Args[1] @@ -34178,240 +34190,6 @@ func rewriteValueAMD64_OpGaloisFieldMulMaskedUint8x64(v *Value) bool { return true } } -func rewriteValueAMD64_OpGet128Float32x8(v *Value) bool { - v_0 := v.Args[0] - // match: (Get128Float32x8 [a] x) - // result: (VEXTRACTF128128 [a] x) - for { - a := auxIntToInt8(v.AuxInt) - x := v_0 - v.reset(OpAMD64VEXTRACTF128128) - v.AuxInt = int8ToAuxInt(a) - v.AddArg(x) - return true - } -} -func rewriteValueAMD64_OpGet128Float64x4(v *Value) bool { - v_0 := v.Args[0] - // match: (Get128Float64x4 [a] x) - // result: (VEXTRACTF128128 [a] x) - for { - a := auxIntToInt8(v.AuxInt) - x := v_0 - v.reset(OpAMD64VEXTRACTF128128) - v.AuxInt = int8ToAuxInt(a) - v.AddArg(x) - return true - } -} -func rewriteValueAMD64_OpGet128Int16x16(v *Value) bool { - v_0 := v.Args[0] - // match: (Get128Int16x16 [a] x) - // result: (VEXTRACTI128128 [a] x) - for { - a := auxIntToInt8(v.AuxInt) - x := v_0 - v.reset(OpAMD64VEXTRACTI128128) - v.AuxInt = int8ToAuxInt(a) - v.AddArg(x) - return true - } -} -func rewriteValueAMD64_OpGet128Int32x8(v *Value) bool { - v_0 := v.Args[0] - // match: (Get128Int32x8 [a] x) - // result: (VEXTRACTI128128 [a] x) - for { - a := auxIntToInt8(v.AuxInt) - x := v_0 - v.reset(OpAMD64VEXTRACTI128128) - v.AuxInt = int8ToAuxInt(a) - v.AddArg(x) - return true - } -} -func rewriteValueAMD64_OpGet128Int64x4(v *Value) bool { - v_0 := v.Args[0] - // match: (Get128Int64x4 [a] x) - // result: (VEXTRACTI128128 [a] x) - for { - a := auxIntToInt8(v.AuxInt) - x := v_0 - v.reset(OpAMD64VEXTRACTI128128) - v.AuxInt = int8ToAuxInt(a) - v.AddArg(x) - return true - } -} -func rewriteValueAMD64_OpGet128Int8x32(v *Value) bool { - v_0 := v.Args[0] - // match: (Get128Int8x32 [a] x) - // result: (VEXTRACTI128128 [a] x) - for { - a := auxIntToInt8(v.AuxInt) - x := v_0 - v.reset(OpAMD64VEXTRACTI128128) - v.AuxInt = int8ToAuxInt(a) - v.AddArg(x) - return true - } -} -func rewriteValueAMD64_OpGet128Uint16x16(v *Value) bool { - v_0 := v.Args[0] - // match: (Get128Uint16x16 [a] x) - // result: (VEXTRACTI128128 [a] x) - for { - a := auxIntToInt8(v.AuxInt) - x := v_0 - v.reset(OpAMD64VEXTRACTI128128) - v.AuxInt = int8ToAuxInt(a) - v.AddArg(x) - return true - } -} -func rewriteValueAMD64_OpGet128Uint32x8(v *Value) bool { - v_0 := v.Args[0] - // match: (Get128Uint32x8 [a] x) - // result: (VEXTRACTI128128 [a] x) - for { - a := auxIntToInt8(v.AuxInt) - x := v_0 - v.reset(OpAMD64VEXTRACTI128128) - v.AuxInt = int8ToAuxInt(a) - v.AddArg(x) - return true - } -} -func rewriteValueAMD64_OpGet128Uint64x4(v *Value) bool { - v_0 := v.Args[0] - // match: (Get128Uint64x4 [a] x) - // result: (VEXTRACTI128128 [a] x) - for { - a := auxIntToInt8(v.AuxInt) - x := v_0 - v.reset(OpAMD64VEXTRACTI128128) - v.AuxInt = int8ToAuxInt(a) - v.AddArg(x) - return true - } -} -func rewriteValueAMD64_OpGet128Uint8x32(v *Value) bool { - v_0 := v.Args[0] - // match: (Get128Uint8x32 [a] x) - // result: (VEXTRACTI128128 [a] x) - for { - a := auxIntToInt8(v.AuxInt) - x := v_0 - v.reset(OpAMD64VEXTRACTI128128) - v.AuxInt = int8ToAuxInt(a) - v.AddArg(x) - return true - } -} -func rewriteValueAMD64_OpGetElemInt16x8(v *Value) bool { - v_0 := v.Args[0] - // match: (GetElemInt16x8 [a] x) - // result: (VPEXTRW128 [a] x) - for { - a := auxIntToInt8(v.AuxInt) - x := v_0 - v.reset(OpAMD64VPEXTRW128) - v.AuxInt = int8ToAuxInt(a) - v.AddArg(x) - return true - } -} -func rewriteValueAMD64_OpGetElemInt32x4(v *Value) bool { - v_0 := v.Args[0] - // match: (GetElemInt32x4 [a] x) - // result: (VPEXTRD128 [a] x) - for { - a := auxIntToInt8(v.AuxInt) - x := v_0 - v.reset(OpAMD64VPEXTRD128) - v.AuxInt = int8ToAuxInt(a) - v.AddArg(x) - return true - } -} -func rewriteValueAMD64_OpGetElemInt64x2(v *Value) bool { - v_0 := v.Args[0] - // match: (GetElemInt64x2 [a] x) - // result: (VPEXTRQ128 [a] x) - for { - a := auxIntToInt8(v.AuxInt) - x := v_0 - v.reset(OpAMD64VPEXTRQ128) - v.AuxInt = int8ToAuxInt(a) - v.AddArg(x) - return true - } -} -func rewriteValueAMD64_OpGetElemInt8x16(v *Value) bool { - v_0 := v.Args[0] - // match: (GetElemInt8x16 [a] x) - // result: (VPEXTRB128 [a] x) - for { - a := auxIntToInt8(v.AuxInt) - x := v_0 - v.reset(OpAMD64VPEXTRB128) - v.AuxInt = int8ToAuxInt(a) - v.AddArg(x) - return true - } -} -func rewriteValueAMD64_OpGetElemUint16x8(v *Value) bool { - v_0 := v.Args[0] - // match: (GetElemUint16x8 [a] x) - // result: (VPEXTRW128 [a] x) - for { - a := auxIntToInt8(v.AuxInt) - x := v_0 - v.reset(OpAMD64VPEXTRW128) - v.AuxInt = int8ToAuxInt(a) - v.AddArg(x) - return true - } -} -func rewriteValueAMD64_OpGetElemUint32x4(v *Value) bool { - v_0 := v.Args[0] - // match: (GetElemUint32x4 [a] x) - // result: (VPEXTRD128 [a] x) - for { - a := auxIntToInt8(v.AuxInt) - x := v_0 - v.reset(OpAMD64VPEXTRD128) - v.AuxInt = int8ToAuxInt(a) - v.AddArg(x) - return true - } -} -func rewriteValueAMD64_OpGetElemUint64x2(v *Value) bool { - v_0 := v.Args[0] - // match: (GetElemUint64x2 [a] x) - // result: (VPEXTRQ128 [a] x) - for { - a := auxIntToInt8(v.AuxInt) - x := v_0 - v.reset(OpAMD64VPEXTRQ128) - v.AuxInt = int8ToAuxInt(a) - v.AddArg(x) - return true - } -} -func rewriteValueAMD64_OpGetElemUint8x16(v *Value) bool { - v_0 := v.Args[0] - // match: (GetElemUint8x16 [a] x) - // result: (VPEXTRB128 [a] x) - for { - a := auxIntToInt8(v.AuxInt) - x := v_0 - v.reset(OpAMD64VPEXTRB128) - v.AuxInt = int8ToAuxInt(a) - v.AddArg(x) - return true - } -} func rewriteValueAMD64_OpGetG(v *Value) bool { v_0 := v.Args[0] // match: (GetG mem) @@ -44964,84 +44742,6 @@ func rewriteValueAMD64_OpPopCountMaskedUint8x64(v *Value) bool { return true } } -func rewriteValueAMD64_OpRotateAllLeftInt32x16(v *Value) bool { - v_0 := v.Args[0] - // match: (RotateAllLeftInt32x16 [a] x) - // result: (VPROLD512 [a] x) - for { - a := auxIntToInt8(v.AuxInt) - x := v_0 - v.reset(OpAMD64VPROLD512) - v.AuxInt = int8ToAuxInt(a) - v.AddArg(x) - return true - } -} -func rewriteValueAMD64_OpRotateAllLeftInt32x4(v *Value) bool { - v_0 := v.Args[0] - // match: (RotateAllLeftInt32x4 [a] x) - // result: (VPROLD128 [a] x) - for { - a := auxIntToInt8(v.AuxInt) - x := v_0 - v.reset(OpAMD64VPROLD128) - v.AuxInt = int8ToAuxInt(a) - v.AddArg(x) - return true - } -} -func rewriteValueAMD64_OpRotateAllLeftInt32x8(v *Value) bool { - v_0 := v.Args[0] - // match: (RotateAllLeftInt32x8 [a] x) - // result: (VPROLD256 [a] x) - for { - a := auxIntToInt8(v.AuxInt) - x := v_0 - v.reset(OpAMD64VPROLD256) - v.AuxInt = int8ToAuxInt(a) - v.AddArg(x) - return true - } -} -func rewriteValueAMD64_OpRotateAllLeftInt64x2(v *Value) bool { - v_0 := v.Args[0] - // match: (RotateAllLeftInt64x2 [a] x) - // result: (VPROLQ128 [a] x) - for { - a := auxIntToInt8(v.AuxInt) - x := v_0 - v.reset(OpAMD64VPROLQ128) - v.AuxInt = int8ToAuxInt(a) - v.AddArg(x) - return true - } -} -func rewriteValueAMD64_OpRotateAllLeftInt64x4(v *Value) bool { - v_0 := v.Args[0] - // match: (RotateAllLeftInt64x4 [a] x) - // result: (VPROLQ256 [a] x) - for { - a := auxIntToInt8(v.AuxInt) - x := v_0 - v.reset(OpAMD64VPROLQ256) - v.AuxInt = int8ToAuxInt(a) - v.AddArg(x) - return true - } -} -func rewriteValueAMD64_OpRotateAllLeftInt64x8(v *Value) bool { - v_0 := v.Args[0] - // match: (RotateAllLeftInt64x8 [a] x) - // result: (VPROLQ512 [a] x) - for { - a := auxIntToInt8(v.AuxInt) - x := v_0 - v.reset(OpAMD64VPROLQ512) - v.AuxInt = int8ToAuxInt(a) - v.AddArg(x) - return true - } -} func rewriteValueAMD64_OpRotateAllLeftMaskedInt32x16(v *Value) bool { v_1 := v.Args[1] v_0 := v.Args[0] @@ -45258,162 +44958,6 @@ func rewriteValueAMD64_OpRotateAllLeftMaskedUint64x8(v *Value) bool { return true } } -func rewriteValueAMD64_OpRotateAllLeftUint32x16(v *Value) bool { - v_0 := v.Args[0] - // match: (RotateAllLeftUint32x16 [a] x) - // result: (VPROLD512 [a] x) - for { - a := auxIntToInt8(v.AuxInt) - x := v_0 - v.reset(OpAMD64VPROLD512) - v.AuxInt = int8ToAuxInt(a) - v.AddArg(x) - return true - } -} -func rewriteValueAMD64_OpRotateAllLeftUint32x4(v *Value) bool { - v_0 := v.Args[0] - // match: (RotateAllLeftUint32x4 [a] x) - // result: (VPROLD128 [a] x) - for { - a := auxIntToInt8(v.AuxInt) - x := v_0 - v.reset(OpAMD64VPROLD128) - v.AuxInt = int8ToAuxInt(a) - v.AddArg(x) - return true - } -} -func rewriteValueAMD64_OpRotateAllLeftUint32x8(v *Value) bool { - v_0 := v.Args[0] - // match: (RotateAllLeftUint32x8 [a] x) - // result: (VPROLD256 [a] x) - for { - a := auxIntToInt8(v.AuxInt) - x := v_0 - v.reset(OpAMD64VPROLD256) - v.AuxInt = int8ToAuxInt(a) - v.AddArg(x) - return true - } -} -func rewriteValueAMD64_OpRotateAllLeftUint64x2(v *Value) bool { - v_0 := v.Args[0] - // match: (RotateAllLeftUint64x2 [a] x) - // result: (VPROLQ128 [a] x) - for { - a := auxIntToInt8(v.AuxInt) - x := v_0 - v.reset(OpAMD64VPROLQ128) - v.AuxInt = int8ToAuxInt(a) - v.AddArg(x) - return true - } -} -func rewriteValueAMD64_OpRotateAllLeftUint64x4(v *Value) bool { - v_0 := v.Args[0] - // match: (RotateAllLeftUint64x4 [a] x) - // result: (VPROLQ256 [a] x) - for { - a := auxIntToInt8(v.AuxInt) - x := v_0 - v.reset(OpAMD64VPROLQ256) - v.AuxInt = int8ToAuxInt(a) - v.AddArg(x) - return true - } -} -func rewriteValueAMD64_OpRotateAllLeftUint64x8(v *Value) bool { - v_0 := v.Args[0] - // match: (RotateAllLeftUint64x8 [a] x) - // result: (VPROLQ512 [a] x) - for { - a := auxIntToInt8(v.AuxInt) - x := v_0 - v.reset(OpAMD64VPROLQ512) - v.AuxInt = int8ToAuxInt(a) - v.AddArg(x) - return true - } -} -func rewriteValueAMD64_OpRotateAllRightInt32x16(v *Value) bool { - v_0 := v.Args[0] - // match: (RotateAllRightInt32x16 [a] x) - // result: (VPRORD512 [a] x) - for { - a := auxIntToInt8(v.AuxInt) - x := v_0 - v.reset(OpAMD64VPRORD512) - v.AuxInt = int8ToAuxInt(a) - v.AddArg(x) - return true - } -} -func rewriteValueAMD64_OpRotateAllRightInt32x4(v *Value) bool { - v_0 := v.Args[0] - // match: (RotateAllRightInt32x4 [a] x) - // result: (VPRORD128 [a] x) - for { - a := auxIntToInt8(v.AuxInt) - x := v_0 - v.reset(OpAMD64VPRORD128) - v.AuxInt = int8ToAuxInt(a) - v.AddArg(x) - return true - } -} -func rewriteValueAMD64_OpRotateAllRightInt32x8(v *Value) bool { - v_0 := v.Args[0] - // match: (RotateAllRightInt32x8 [a] x) - // result: (VPRORD256 [a] x) - for { - a := auxIntToInt8(v.AuxInt) - x := v_0 - v.reset(OpAMD64VPRORD256) - v.AuxInt = int8ToAuxInt(a) - v.AddArg(x) - return true - } -} -func rewriteValueAMD64_OpRotateAllRightInt64x2(v *Value) bool { - v_0 := v.Args[0] - // match: (RotateAllRightInt64x2 [a] x) - // result: (VPRORQ128 [a] x) - for { - a := auxIntToInt8(v.AuxInt) - x := v_0 - v.reset(OpAMD64VPRORQ128) - v.AuxInt = int8ToAuxInt(a) - v.AddArg(x) - return true - } -} -func rewriteValueAMD64_OpRotateAllRightInt64x4(v *Value) bool { - v_0 := v.Args[0] - // match: (RotateAllRightInt64x4 [a] x) - // result: (VPRORQ256 [a] x) - for { - a := auxIntToInt8(v.AuxInt) - x := v_0 - v.reset(OpAMD64VPRORQ256) - v.AuxInt = int8ToAuxInt(a) - v.AddArg(x) - return true - } -} -func rewriteValueAMD64_OpRotateAllRightInt64x8(v *Value) bool { - v_0 := v.Args[0] - // match: (RotateAllRightInt64x8 [a] x) - // result: (VPRORQ512 [a] x) - for { - a := auxIntToInt8(v.AuxInt) - x := v_0 - v.reset(OpAMD64VPRORQ512) - v.AuxInt = int8ToAuxInt(a) - v.AddArg(x) - return true - } -} func rewriteValueAMD64_OpRotateAllRightMaskedInt32x16(v *Value) bool { v_1 := v.Args[1] v_0 := v.Args[0] @@ -45630,84 +45174,6 @@ func rewriteValueAMD64_OpRotateAllRightMaskedUint64x8(v *Value) bool { return true } } -func rewriteValueAMD64_OpRotateAllRightUint32x16(v *Value) bool { - v_0 := v.Args[0] - // match: (RotateAllRightUint32x16 [a] x) - // result: (VPRORD512 [a] x) - for { - a := auxIntToInt8(v.AuxInt) - x := v_0 - v.reset(OpAMD64VPRORD512) - v.AuxInt = int8ToAuxInt(a) - v.AddArg(x) - return true - } -} -func rewriteValueAMD64_OpRotateAllRightUint32x4(v *Value) bool { - v_0 := v.Args[0] - // match: (RotateAllRightUint32x4 [a] x) - // result: (VPRORD128 [a] x) - for { - a := auxIntToInt8(v.AuxInt) - x := v_0 - v.reset(OpAMD64VPRORD128) - v.AuxInt = int8ToAuxInt(a) - v.AddArg(x) - return true - } -} -func rewriteValueAMD64_OpRotateAllRightUint32x8(v *Value) bool { - v_0 := v.Args[0] - // match: (RotateAllRightUint32x8 [a] x) - // result: (VPRORD256 [a] x) - for { - a := auxIntToInt8(v.AuxInt) - x := v_0 - v.reset(OpAMD64VPRORD256) - v.AuxInt = int8ToAuxInt(a) - v.AddArg(x) - return true - } -} -func rewriteValueAMD64_OpRotateAllRightUint64x2(v *Value) bool { - v_0 := v.Args[0] - // match: (RotateAllRightUint64x2 [a] x) - // result: (VPRORQ128 [a] x) - for { - a := auxIntToInt8(v.AuxInt) - x := v_0 - v.reset(OpAMD64VPRORQ128) - v.AuxInt = int8ToAuxInt(a) - v.AddArg(x) - return true - } -} -func rewriteValueAMD64_OpRotateAllRightUint64x4(v *Value) bool { - v_0 := v.Args[0] - // match: (RotateAllRightUint64x4 [a] x) - // result: (VPRORQ256 [a] x) - for { - a := auxIntToInt8(v.AuxInt) - x := v_0 - v.reset(OpAMD64VPRORQ256) - v.AuxInt = int8ToAuxInt(a) - v.AddArg(x) - return true - } -} -func rewriteValueAMD64_OpRotateAllRightUint64x8(v *Value) bool { - v_0 := v.Args[0] - // match: (RotateAllRightUint64x8 [a] x) - // result: (VPRORQ512 [a] x) - for { - a := auxIntToInt8(v.AuxInt) - x := v_0 - v.reset(OpAMD64VPRORQ512) - v.AuxInt = int8ToAuxInt(a) - v.AddArg(x) - return true - } -} func rewriteValueAMD64_OpRotateLeftMaskedInt32x16(v *Value) bool { v_2 := v.Args[2] v_1 := v.Args[1] @@ -48805,411 +48271,6 @@ func rewriteValueAMD64_OpSelectN(v *Value) bool { } return false } -func rewriteValueAMD64_OpSet128Float32x8(v *Value) bool { - v_1 := v.Args[1] - v_0 := v.Args[0] - // match: (Set128Float32x8 [a] x y) - // result: (VINSERTF128256 [a] x y) - for { - a := auxIntToInt8(v.AuxInt) - x := v_0 - y := v_1 - v.reset(OpAMD64VINSERTF128256) - v.AuxInt = int8ToAuxInt(a) - v.AddArg2(x, y) - return true - } -} -func rewriteValueAMD64_OpSet128Float64x4(v *Value) bool { - v_1 := v.Args[1] - v_0 := v.Args[0] - // match: (Set128Float64x4 [a] x y) - // result: (VINSERTF128256 [a] x y) - for { - a := auxIntToInt8(v.AuxInt) - x := v_0 - y := v_1 - v.reset(OpAMD64VINSERTF128256) - v.AuxInt = int8ToAuxInt(a) - v.AddArg2(x, y) - return true - } -} -func rewriteValueAMD64_OpSet128Int16x16(v *Value) bool { - v_1 := v.Args[1] - v_0 := v.Args[0] - // match: (Set128Int16x16 [a] x y) - // result: (VINSERTI128256 [a] x y) - for { - a := auxIntToInt8(v.AuxInt) - x := v_0 - y := v_1 - v.reset(OpAMD64VINSERTI128256) - v.AuxInt = int8ToAuxInt(a) - v.AddArg2(x, y) - return true - } -} -func rewriteValueAMD64_OpSet128Int32x8(v *Value) bool { - v_1 := v.Args[1] - v_0 := v.Args[0] - // match: (Set128Int32x8 [a] x y) - // result: (VINSERTI128256 [a] x y) - for { - a := auxIntToInt8(v.AuxInt) - x := v_0 - y := v_1 - v.reset(OpAMD64VINSERTI128256) - v.AuxInt = int8ToAuxInt(a) - v.AddArg2(x, y) - return true - } -} -func rewriteValueAMD64_OpSet128Int64x4(v *Value) bool { - v_1 := v.Args[1] - v_0 := v.Args[0] - // match: (Set128Int64x4 [a] x y) - // result: (VINSERTI128256 [a] x y) - for { - a := auxIntToInt8(v.AuxInt) - x := v_0 - y := v_1 - v.reset(OpAMD64VINSERTI128256) - v.AuxInt = int8ToAuxInt(a) - v.AddArg2(x, y) - return true - } -} -func rewriteValueAMD64_OpSet128Int8x32(v *Value) bool { - v_1 := v.Args[1] - v_0 := v.Args[0] - // match: (Set128Int8x32 [a] x y) - // result: (VINSERTI128256 [a] x y) - for { - a := auxIntToInt8(v.AuxInt) - x := v_0 - y := v_1 - v.reset(OpAMD64VINSERTI128256) - v.AuxInt = int8ToAuxInt(a) - v.AddArg2(x, y) - return true - } -} -func rewriteValueAMD64_OpSet128Uint16x16(v *Value) bool { - v_1 := v.Args[1] - v_0 := v.Args[0] - // match: (Set128Uint16x16 [a] x y) - // result: (VINSERTI128256 [a] x y) - for { - a := auxIntToInt8(v.AuxInt) - x := v_0 - y := v_1 - v.reset(OpAMD64VINSERTI128256) - v.AuxInt = int8ToAuxInt(a) - v.AddArg2(x, y) - return true - } -} -func rewriteValueAMD64_OpSet128Uint32x8(v *Value) bool { - v_1 := v.Args[1] - v_0 := v.Args[0] - // match: (Set128Uint32x8 [a] x y) - // result: (VINSERTI128256 [a] x y) - for { - a := auxIntToInt8(v.AuxInt) - x := v_0 - y := v_1 - v.reset(OpAMD64VINSERTI128256) - v.AuxInt = int8ToAuxInt(a) - v.AddArg2(x, y) - return true - } -} -func rewriteValueAMD64_OpSet128Uint64x4(v *Value) bool { - v_1 := v.Args[1] - v_0 := v.Args[0] - // match: (Set128Uint64x4 [a] x y) - // result: (VINSERTI128256 [a] x y) - for { - a := auxIntToInt8(v.AuxInt) - x := v_0 - y := v_1 - v.reset(OpAMD64VINSERTI128256) - v.AuxInt = int8ToAuxInt(a) - v.AddArg2(x, y) - return true - } -} -func rewriteValueAMD64_OpSet128Uint8x32(v *Value) bool { - v_1 := v.Args[1] - v_0 := v.Args[0] - // match: (Set128Uint8x32 [a] x y) - // result: (VINSERTI128256 [a] x y) - for { - a := auxIntToInt8(v.AuxInt) - x := v_0 - y := v_1 - v.reset(OpAMD64VINSERTI128256) - v.AuxInt = int8ToAuxInt(a) - v.AddArg2(x, y) - return true - } -} -func rewriteValueAMD64_OpSetElemInt16x8(v *Value) bool { - v_1 := v.Args[1] - v_0 := v.Args[0] - // match: (SetElemInt16x8 [a] x y) - // result: (VPINSRW128 [a] x y) - for { - a := auxIntToInt8(v.AuxInt) - x := v_0 - y := v_1 - v.reset(OpAMD64VPINSRW128) - v.AuxInt = int8ToAuxInt(a) - v.AddArg2(x, y) - return true - } -} -func rewriteValueAMD64_OpSetElemInt32x4(v *Value) bool { - v_1 := v.Args[1] - v_0 := v.Args[0] - // match: (SetElemInt32x4 [a] x y) - // result: (VPINSRD128 [a] x y) - for { - a := auxIntToInt8(v.AuxInt) - x := v_0 - y := v_1 - v.reset(OpAMD64VPINSRD128) - v.AuxInt = int8ToAuxInt(a) - v.AddArg2(x, y) - return true - } -} -func rewriteValueAMD64_OpSetElemInt64x2(v *Value) bool { - v_1 := v.Args[1] - v_0 := v.Args[0] - // match: (SetElemInt64x2 [a] x y) - // result: (VPINSRQ128 [a] x y) - for { - a := auxIntToInt8(v.AuxInt) - x := v_0 - y := v_1 - v.reset(OpAMD64VPINSRQ128) - v.AuxInt = int8ToAuxInt(a) - v.AddArg2(x, y) - return true - } -} -func rewriteValueAMD64_OpSetElemInt8x16(v *Value) bool { - v_1 := v.Args[1] - v_0 := v.Args[0] - // match: (SetElemInt8x16 [a] x y) - // result: (VPINSRB128 [a] x y) - for { - a := auxIntToInt8(v.AuxInt) - x := v_0 - y := v_1 - v.reset(OpAMD64VPINSRB128) - v.AuxInt = int8ToAuxInt(a) - v.AddArg2(x, y) - return true - } -} -func rewriteValueAMD64_OpSetElemUint16x8(v *Value) bool { - v_1 := v.Args[1] - v_0 := v.Args[0] - // match: (SetElemUint16x8 [a] x y) - // result: (VPINSRW128 [a] x y) - for { - a := auxIntToInt8(v.AuxInt) - x := v_0 - y := v_1 - v.reset(OpAMD64VPINSRW128) - v.AuxInt = int8ToAuxInt(a) - v.AddArg2(x, y) - return true - } -} -func rewriteValueAMD64_OpSetElemUint32x4(v *Value) bool { - v_1 := v.Args[1] - v_0 := v.Args[0] - // match: (SetElemUint32x4 [a] x y) - // result: (VPINSRD128 [a] x y) - for { - a := auxIntToInt8(v.AuxInt) - x := v_0 - y := v_1 - v.reset(OpAMD64VPINSRD128) - v.AuxInt = int8ToAuxInt(a) - v.AddArg2(x, y) - return true - } -} -func rewriteValueAMD64_OpSetElemUint64x2(v *Value) bool { - v_1 := v.Args[1] - v_0 := v.Args[0] - // match: (SetElemUint64x2 [a] x y) - // result: (VPINSRQ128 [a] x y) - for { - a := auxIntToInt8(v.AuxInt) - x := v_0 - y := v_1 - v.reset(OpAMD64VPINSRQ128) - v.AuxInt = int8ToAuxInt(a) - v.AddArg2(x, y) - return true - } -} -func rewriteValueAMD64_OpSetElemUint8x16(v *Value) bool { - v_1 := v.Args[1] - v_0 := v.Args[0] - // match: (SetElemUint8x16 [a] x y) - // result: (VPINSRB128 [a] x y) - for { - a := auxIntToInt8(v.AuxInt) - x := v_0 - y := v_1 - v.reset(OpAMD64VPINSRB128) - v.AuxInt = int8ToAuxInt(a) - v.AddArg2(x, y) - return true - } -} -func rewriteValueAMD64_OpShiftAllLeftAndFillUpperFromInt16x16(v *Value) bool { - v_1 := v.Args[1] - v_0 := v.Args[0] - // match: (ShiftAllLeftAndFillUpperFromInt16x16 [a] x y) - // result: (VPSHLDW256 [a] x y) - for { - a := auxIntToInt8(v.AuxInt) - x := v_0 - y := v_1 - v.reset(OpAMD64VPSHLDW256) - v.AuxInt = int8ToAuxInt(a) - v.AddArg2(x, y) - return true - } -} -func rewriteValueAMD64_OpShiftAllLeftAndFillUpperFromInt16x32(v *Value) bool { - v_1 := v.Args[1] - v_0 := v.Args[0] - // match: (ShiftAllLeftAndFillUpperFromInt16x32 [a] x y) - // result: (VPSHLDW512 [a] x y) - for { - a := auxIntToInt8(v.AuxInt) - x := v_0 - y := v_1 - v.reset(OpAMD64VPSHLDW512) - v.AuxInt = int8ToAuxInt(a) - v.AddArg2(x, y) - return true - } -} -func rewriteValueAMD64_OpShiftAllLeftAndFillUpperFromInt16x8(v *Value) bool { - v_1 := v.Args[1] - v_0 := v.Args[0] - // match: (ShiftAllLeftAndFillUpperFromInt16x8 [a] x y) - // result: (VPSHLDW128 [a] x y) - for { - a := auxIntToInt8(v.AuxInt) - x := v_0 - y := v_1 - v.reset(OpAMD64VPSHLDW128) - v.AuxInt = int8ToAuxInt(a) - v.AddArg2(x, y) - return true - } -} -func rewriteValueAMD64_OpShiftAllLeftAndFillUpperFromInt32x16(v *Value) bool { - v_1 := v.Args[1] - v_0 := v.Args[0] - // match: (ShiftAllLeftAndFillUpperFromInt32x16 [a] x y) - // result: (VPSHLDD512 [a] x y) - for { - a := auxIntToInt8(v.AuxInt) - x := v_0 - y := v_1 - v.reset(OpAMD64VPSHLDD512) - v.AuxInt = int8ToAuxInt(a) - v.AddArg2(x, y) - return true - } -} -func rewriteValueAMD64_OpShiftAllLeftAndFillUpperFromInt32x4(v *Value) bool { - v_1 := v.Args[1] - v_0 := v.Args[0] - // match: (ShiftAllLeftAndFillUpperFromInt32x4 [a] x y) - // result: (VPSHLDD128 [a] x y) - for { - a := auxIntToInt8(v.AuxInt) - x := v_0 - y := v_1 - v.reset(OpAMD64VPSHLDD128) - v.AuxInt = int8ToAuxInt(a) - v.AddArg2(x, y) - return true - } -} -func rewriteValueAMD64_OpShiftAllLeftAndFillUpperFromInt32x8(v *Value) bool { - v_1 := v.Args[1] - v_0 := v.Args[0] - // match: (ShiftAllLeftAndFillUpperFromInt32x8 [a] x y) - // result: (VPSHLDD256 [a] x y) - for { - a := auxIntToInt8(v.AuxInt) - x := v_0 - y := v_1 - v.reset(OpAMD64VPSHLDD256) - v.AuxInt = int8ToAuxInt(a) - v.AddArg2(x, y) - return true - } -} -func rewriteValueAMD64_OpShiftAllLeftAndFillUpperFromInt64x2(v *Value) bool { - v_1 := v.Args[1] - v_0 := v.Args[0] - // match: (ShiftAllLeftAndFillUpperFromInt64x2 [a] x y) - // result: (VPSHLDQ128 [a] x y) - for { - a := auxIntToInt8(v.AuxInt) - x := v_0 - y := v_1 - v.reset(OpAMD64VPSHLDQ128) - v.AuxInt = int8ToAuxInt(a) - v.AddArg2(x, y) - return true - } -} -func rewriteValueAMD64_OpShiftAllLeftAndFillUpperFromInt64x4(v *Value) bool { - v_1 := v.Args[1] - v_0 := v.Args[0] - // match: (ShiftAllLeftAndFillUpperFromInt64x4 [a] x y) - // result: (VPSHLDQ256 [a] x y) - for { - a := auxIntToInt8(v.AuxInt) - x := v_0 - y := v_1 - v.reset(OpAMD64VPSHLDQ256) - v.AuxInt = int8ToAuxInt(a) - v.AddArg2(x, y) - return true - } -} -func rewriteValueAMD64_OpShiftAllLeftAndFillUpperFromInt64x8(v *Value) bool { - v_1 := v.Args[1] - v_0 := v.Args[0] - // match: (ShiftAllLeftAndFillUpperFromInt64x8 [a] x y) - // result: (VPSHLDQ512 [a] x y) - for { - a := auxIntToInt8(v.AuxInt) - x := v_0 - y := v_1 - v.reset(OpAMD64VPSHLDQ512) - v.AuxInt = int8ToAuxInt(a) - v.AddArg2(x, y) - return true - } -} func rewriteValueAMD64_OpShiftAllLeftAndFillUpperFromMaskedInt16x16(v *Value) bool { v_2 := v.Args[2] v_1 := v.Args[1] @@ -49570,141 +48631,6 @@ func rewriteValueAMD64_OpShiftAllLeftAndFillUpperFromMaskedUint64x8(v *Value) bo return true } } -func rewriteValueAMD64_OpShiftAllLeftAndFillUpperFromUint16x16(v *Value) bool { - v_1 := v.Args[1] - v_0 := v.Args[0] - // match: (ShiftAllLeftAndFillUpperFromUint16x16 [a] x y) - // result: (VPSHLDW256 [a] x y) - for { - a := auxIntToInt8(v.AuxInt) - x := v_0 - y := v_1 - v.reset(OpAMD64VPSHLDW256) - v.AuxInt = int8ToAuxInt(a) - v.AddArg2(x, y) - return true - } -} -func rewriteValueAMD64_OpShiftAllLeftAndFillUpperFromUint16x32(v *Value) bool { - v_1 := v.Args[1] - v_0 := v.Args[0] - // match: (ShiftAllLeftAndFillUpperFromUint16x32 [a] x y) - // result: (VPSHLDW512 [a] x y) - for { - a := auxIntToInt8(v.AuxInt) - x := v_0 - y := v_1 - v.reset(OpAMD64VPSHLDW512) - v.AuxInt = int8ToAuxInt(a) - v.AddArg2(x, y) - return true - } -} -func rewriteValueAMD64_OpShiftAllLeftAndFillUpperFromUint16x8(v *Value) bool { - v_1 := v.Args[1] - v_0 := v.Args[0] - // match: (ShiftAllLeftAndFillUpperFromUint16x8 [a] x y) - // result: (VPSHLDW128 [a] x y) - for { - a := auxIntToInt8(v.AuxInt) - x := v_0 - y := v_1 - v.reset(OpAMD64VPSHLDW128) - v.AuxInt = int8ToAuxInt(a) - v.AddArg2(x, y) - return true - } -} -func rewriteValueAMD64_OpShiftAllLeftAndFillUpperFromUint32x16(v *Value) bool { - v_1 := v.Args[1] - v_0 := v.Args[0] - // match: (ShiftAllLeftAndFillUpperFromUint32x16 [a] x y) - // result: (VPSHLDD512 [a] x y) - for { - a := auxIntToInt8(v.AuxInt) - x := v_0 - y := v_1 - v.reset(OpAMD64VPSHLDD512) - v.AuxInt = int8ToAuxInt(a) - v.AddArg2(x, y) - return true - } -} -func rewriteValueAMD64_OpShiftAllLeftAndFillUpperFromUint32x4(v *Value) bool { - v_1 := v.Args[1] - v_0 := v.Args[0] - // match: (ShiftAllLeftAndFillUpperFromUint32x4 [a] x y) - // result: (VPSHLDD128 [a] x y) - for { - a := auxIntToInt8(v.AuxInt) - x := v_0 - y := v_1 - v.reset(OpAMD64VPSHLDD128) - v.AuxInt = int8ToAuxInt(a) - v.AddArg2(x, y) - return true - } -} -func rewriteValueAMD64_OpShiftAllLeftAndFillUpperFromUint32x8(v *Value) bool { - v_1 := v.Args[1] - v_0 := v.Args[0] - // match: (ShiftAllLeftAndFillUpperFromUint32x8 [a] x y) - // result: (VPSHLDD256 [a] x y) - for { - a := auxIntToInt8(v.AuxInt) - x := v_0 - y := v_1 - v.reset(OpAMD64VPSHLDD256) - v.AuxInt = int8ToAuxInt(a) - v.AddArg2(x, y) - return true - } -} -func rewriteValueAMD64_OpShiftAllLeftAndFillUpperFromUint64x2(v *Value) bool { - v_1 := v.Args[1] - v_0 := v.Args[0] - // match: (ShiftAllLeftAndFillUpperFromUint64x2 [a] x y) - // result: (VPSHLDQ128 [a] x y) - for { - a := auxIntToInt8(v.AuxInt) - x := v_0 - y := v_1 - v.reset(OpAMD64VPSHLDQ128) - v.AuxInt = int8ToAuxInt(a) - v.AddArg2(x, y) - return true - } -} -func rewriteValueAMD64_OpShiftAllLeftAndFillUpperFromUint64x4(v *Value) bool { - v_1 := v.Args[1] - v_0 := v.Args[0] - // match: (ShiftAllLeftAndFillUpperFromUint64x4 [a] x y) - // result: (VPSHLDQ256 [a] x y) - for { - a := auxIntToInt8(v.AuxInt) - x := v_0 - y := v_1 - v.reset(OpAMD64VPSHLDQ256) - v.AuxInt = int8ToAuxInt(a) - v.AddArg2(x, y) - return true - } -} -func rewriteValueAMD64_OpShiftAllLeftAndFillUpperFromUint64x8(v *Value) bool { - v_1 := v.Args[1] - v_0 := v.Args[0] - // match: (ShiftAllLeftAndFillUpperFromUint64x8 [a] x y) - // result: (VPSHLDQ512 [a] x y) - for { - a := auxIntToInt8(v.AuxInt) - x := v_0 - y := v_1 - v.reset(OpAMD64VPSHLDQ512) - v.AuxInt = int8ToAuxInt(a) - v.AddArg2(x, y) - return true - } -} func rewriteValueAMD64_OpShiftAllLeftMaskedInt64x2(v *Value) bool { v_2 := v.Args[2] v_1 := v.Args[1] @@ -49813,141 +48739,6 @@ func rewriteValueAMD64_OpShiftAllLeftMaskedUint64x8(v *Value) bool { return true } } -func rewriteValueAMD64_OpShiftAllRightAndFillUpperFromInt16x16(v *Value) bool { - v_1 := v.Args[1] - v_0 := v.Args[0] - // match: (ShiftAllRightAndFillUpperFromInt16x16 [a] x y) - // result: (VPSHRDW256 [a] x y) - for { - a := auxIntToInt8(v.AuxInt) - x := v_0 - y := v_1 - v.reset(OpAMD64VPSHRDW256) - v.AuxInt = int8ToAuxInt(a) - v.AddArg2(x, y) - return true - } -} -func rewriteValueAMD64_OpShiftAllRightAndFillUpperFromInt16x32(v *Value) bool { - v_1 := v.Args[1] - v_0 := v.Args[0] - // match: (ShiftAllRightAndFillUpperFromInt16x32 [a] x y) - // result: (VPSHRDW512 [a] x y) - for { - a := auxIntToInt8(v.AuxInt) - x := v_0 - y := v_1 - v.reset(OpAMD64VPSHRDW512) - v.AuxInt = int8ToAuxInt(a) - v.AddArg2(x, y) - return true - } -} -func rewriteValueAMD64_OpShiftAllRightAndFillUpperFromInt16x8(v *Value) bool { - v_1 := v.Args[1] - v_0 := v.Args[0] - // match: (ShiftAllRightAndFillUpperFromInt16x8 [a] x y) - // result: (VPSHRDW128 [a] x y) - for { - a := auxIntToInt8(v.AuxInt) - x := v_0 - y := v_1 - v.reset(OpAMD64VPSHRDW128) - v.AuxInt = int8ToAuxInt(a) - v.AddArg2(x, y) - return true - } -} -func rewriteValueAMD64_OpShiftAllRightAndFillUpperFromInt32x16(v *Value) bool { - v_1 := v.Args[1] - v_0 := v.Args[0] - // match: (ShiftAllRightAndFillUpperFromInt32x16 [a] x y) - // result: (VPSHRDD512 [a] x y) - for { - a := auxIntToInt8(v.AuxInt) - x := v_0 - y := v_1 - v.reset(OpAMD64VPSHRDD512) - v.AuxInt = int8ToAuxInt(a) - v.AddArg2(x, y) - return true - } -} -func rewriteValueAMD64_OpShiftAllRightAndFillUpperFromInt32x4(v *Value) bool { - v_1 := v.Args[1] - v_0 := v.Args[0] - // match: (ShiftAllRightAndFillUpperFromInt32x4 [a] x y) - // result: (VPSHRDD128 [a] x y) - for { - a := auxIntToInt8(v.AuxInt) - x := v_0 - y := v_1 - v.reset(OpAMD64VPSHRDD128) - v.AuxInt = int8ToAuxInt(a) - v.AddArg2(x, y) - return true - } -} -func rewriteValueAMD64_OpShiftAllRightAndFillUpperFromInt32x8(v *Value) bool { - v_1 := v.Args[1] - v_0 := v.Args[0] - // match: (ShiftAllRightAndFillUpperFromInt32x8 [a] x y) - // result: (VPSHRDD256 [a] x y) - for { - a := auxIntToInt8(v.AuxInt) - x := v_0 - y := v_1 - v.reset(OpAMD64VPSHRDD256) - v.AuxInt = int8ToAuxInt(a) - v.AddArg2(x, y) - return true - } -} -func rewriteValueAMD64_OpShiftAllRightAndFillUpperFromInt64x2(v *Value) bool { - v_1 := v.Args[1] - v_0 := v.Args[0] - // match: (ShiftAllRightAndFillUpperFromInt64x2 [a] x y) - // result: (VPSHRDQ128 [a] x y) - for { - a := auxIntToInt8(v.AuxInt) - x := v_0 - y := v_1 - v.reset(OpAMD64VPSHRDQ128) - v.AuxInt = int8ToAuxInt(a) - v.AddArg2(x, y) - return true - } -} -func rewriteValueAMD64_OpShiftAllRightAndFillUpperFromInt64x4(v *Value) bool { - v_1 := v.Args[1] - v_0 := v.Args[0] - // match: (ShiftAllRightAndFillUpperFromInt64x4 [a] x y) - // result: (VPSHRDQ256 [a] x y) - for { - a := auxIntToInt8(v.AuxInt) - x := v_0 - y := v_1 - v.reset(OpAMD64VPSHRDQ256) - v.AuxInt = int8ToAuxInt(a) - v.AddArg2(x, y) - return true - } -} -func rewriteValueAMD64_OpShiftAllRightAndFillUpperFromInt64x8(v *Value) bool { - v_1 := v.Args[1] - v_0 := v.Args[0] - // match: (ShiftAllRightAndFillUpperFromInt64x8 [a] x y) - // result: (VPSHRDQ512 [a] x y) - for { - a := auxIntToInt8(v.AuxInt) - x := v_0 - y := v_1 - v.reset(OpAMD64VPSHRDQ512) - v.AuxInt = int8ToAuxInt(a) - v.AddArg2(x, y) - return true - } -} func rewriteValueAMD64_OpShiftAllRightAndFillUpperFromMaskedInt16x16(v *Value) bool { v_2 := v.Args[2] v_1 := v.Args[1] @@ -50308,141 +49099,6 @@ func rewriteValueAMD64_OpShiftAllRightAndFillUpperFromMaskedUint64x8(v *Value) b return true } } -func rewriteValueAMD64_OpShiftAllRightAndFillUpperFromUint16x16(v *Value) bool { - v_1 := v.Args[1] - v_0 := v.Args[0] - // match: (ShiftAllRightAndFillUpperFromUint16x16 [a] x y) - // result: (VPSHRDW256 [a] x y) - for { - a := auxIntToInt8(v.AuxInt) - x := v_0 - y := v_1 - v.reset(OpAMD64VPSHRDW256) - v.AuxInt = int8ToAuxInt(a) - v.AddArg2(x, y) - return true - } -} -func rewriteValueAMD64_OpShiftAllRightAndFillUpperFromUint16x32(v *Value) bool { - v_1 := v.Args[1] - v_0 := v.Args[0] - // match: (ShiftAllRightAndFillUpperFromUint16x32 [a] x y) - // result: (VPSHRDW512 [a] x y) - for { - a := auxIntToInt8(v.AuxInt) - x := v_0 - y := v_1 - v.reset(OpAMD64VPSHRDW512) - v.AuxInt = int8ToAuxInt(a) - v.AddArg2(x, y) - return true - } -} -func rewriteValueAMD64_OpShiftAllRightAndFillUpperFromUint16x8(v *Value) bool { - v_1 := v.Args[1] - v_0 := v.Args[0] - // match: (ShiftAllRightAndFillUpperFromUint16x8 [a] x y) - // result: (VPSHRDW128 [a] x y) - for { - a := auxIntToInt8(v.AuxInt) - x := v_0 - y := v_1 - v.reset(OpAMD64VPSHRDW128) - v.AuxInt = int8ToAuxInt(a) - v.AddArg2(x, y) - return true - } -} -func rewriteValueAMD64_OpShiftAllRightAndFillUpperFromUint32x16(v *Value) bool { - v_1 := v.Args[1] - v_0 := v.Args[0] - // match: (ShiftAllRightAndFillUpperFromUint32x16 [a] x y) - // result: (VPSHRDD512 [a] x y) - for { - a := auxIntToInt8(v.AuxInt) - x := v_0 - y := v_1 - v.reset(OpAMD64VPSHRDD512) - v.AuxInt = int8ToAuxInt(a) - v.AddArg2(x, y) - return true - } -} -func rewriteValueAMD64_OpShiftAllRightAndFillUpperFromUint32x4(v *Value) bool { - v_1 := v.Args[1] - v_0 := v.Args[0] - // match: (ShiftAllRightAndFillUpperFromUint32x4 [a] x y) - // result: (VPSHRDD128 [a] x y) - for { - a := auxIntToInt8(v.AuxInt) - x := v_0 - y := v_1 - v.reset(OpAMD64VPSHRDD128) - v.AuxInt = int8ToAuxInt(a) - v.AddArg2(x, y) - return true - } -} -func rewriteValueAMD64_OpShiftAllRightAndFillUpperFromUint32x8(v *Value) bool { - v_1 := v.Args[1] - v_0 := v.Args[0] - // match: (ShiftAllRightAndFillUpperFromUint32x8 [a] x y) - // result: (VPSHRDD256 [a] x y) - for { - a := auxIntToInt8(v.AuxInt) - x := v_0 - y := v_1 - v.reset(OpAMD64VPSHRDD256) - v.AuxInt = int8ToAuxInt(a) - v.AddArg2(x, y) - return true - } -} -func rewriteValueAMD64_OpShiftAllRightAndFillUpperFromUint64x2(v *Value) bool { - v_1 := v.Args[1] - v_0 := v.Args[0] - // match: (ShiftAllRightAndFillUpperFromUint64x2 [a] x y) - // result: (VPSHRDQ128 [a] x y) - for { - a := auxIntToInt8(v.AuxInt) - x := v_0 - y := v_1 - v.reset(OpAMD64VPSHRDQ128) - v.AuxInt = int8ToAuxInt(a) - v.AddArg2(x, y) - return true - } -} -func rewriteValueAMD64_OpShiftAllRightAndFillUpperFromUint64x4(v *Value) bool { - v_1 := v.Args[1] - v_0 := v.Args[0] - // match: (ShiftAllRightAndFillUpperFromUint64x4 [a] x y) - // result: (VPSHRDQ256 [a] x y) - for { - a := auxIntToInt8(v.AuxInt) - x := v_0 - y := v_1 - v.reset(OpAMD64VPSHRDQ256) - v.AuxInt = int8ToAuxInt(a) - v.AddArg2(x, y) - return true - } -} -func rewriteValueAMD64_OpShiftAllRightAndFillUpperFromUint64x8(v *Value) bool { - v_1 := v.Args[1] - v_0 := v.Args[0] - // match: (ShiftAllRightAndFillUpperFromUint64x8 [a] x y) - // result: (VPSHRDQ512 [a] x y) - for { - a := auxIntToInt8(v.AuxInt) - x := v_0 - y := v_1 - v.reset(OpAMD64VPSHRDQ512) - v.AuxInt = int8ToAuxInt(a) - v.AddArg2(x, y) - return true - } -} func rewriteValueAMD64_OpShiftAllRightMaskedInt64x2(v *Value) bool { v_2 := v.Args[2] v_1 := v.Args[1] -- 2.52.0