From 86b4fe31d9b7fe4b249a3a8007290305eaa4f16a Mon Sep 17 00:00:00 2001 From: Junyang Shao Date: Wed, 5 Nov 2025 19:25:00 +0000 Subject: [dev.simd] cmd/compile: add masked merging ops and optimizations This CL generates optimizations for masked variant of AVX512 instructions for patterns: x.Op(y).Merge(z, mask) => OpMasked(z, x, y mask), where OpMasked is resultInArg0. Change-Id: Ife7ccc9ddbf76ae921a085bd6a42b965da9bc179 Reviewed-on: https://go-review.googlesource.com/c/go/+/718160 Reviewed-by: David Chase TryBot-Bypass: Junyang Shao --- test/codegen/simd.go | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 'test/codegen') diff --git a/test/codegen/simd.go b/test/codegen/simd.go index 55dcabd5dc..53f93c5af6 100644 --- a/test/codegen/simd.go +++ b/test/codegen/simd.go @@ -67,3 +67,13 @@ func simdFeatureGuardedMaskOpt() simd.Int16x16 { mask := simd.Mask16x16FromBits(5) return x.Add(y).Masked(mask) // amd64:`VPAND\s.*$` } + +func simdMaskedMerge() simd.Int16x16 { + var x, y simd.Int16x16 + if simd.HasAVX512() { + mask := simd.Mask16x16FromBits(5) + return x.Add(y).Merge(x, mask) // amd64:-`VPBLENDVB\s.*$` + } + mask := simd.Mask16x16FromBits(5) + return x.Add(y).Merge(x, mask) // amd64:`VPBLENDVB\s.*$` +} -- cgit v1.3-5-g9baa