diff options
| author | Junyang Shao <shaojunyang@google.com> | 2025-11-05 19:25:00 +0000 |
|---|---|---|
| committer | Junyang Shao <shaojunyang@google.com> | 2025-11-11 13:34:39 -0800 |
| commit | 86b4fe31d9b7fe4b249a3a8007290305eaa4f16a (patch) | |
| tree | 23f7b2fed426e41c055c39d864835012e602119c /test/codegen | |
| parent | 771a1dc216ff02dd23c78ada35a207a363690d11 (diff) | |
| download | go-86b4fe31d9b7fe4b249a3a8007290305eaa4f16a.tar.xz | |
[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 <drchase@google.com>
TryBot-Bypass: Junyang Shao <shaojunyang@google.com>
Diffstat (limited to 'test/codegen')
| -rw-r--r-- | test/codegen/simd.go | 10 |
1 files changed, 10 insertions, 0 deletions
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.*$` +} |
