aboutsummaryrefslogtreecommitdiff
path: root/test/codegen
diff options
context:
space:
mode:
authorJunyang Shao <shaojunyang@google.com>2025-11-05 19:25:00 +0000
committerJunyang Shao <shaojunyang@google.com>2025-11-11 13:34:39 -0800
commit86b4fe31d9b7fe4b249a3a8007290305eaa4f16a (patch)
tree23f7b2fed426e41c055c39d864835012e602119c /test/codegen
parent771a1dc216ff02dd23c78ada35a207a363690d11 (diff)
downloadgo-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.go10
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.*$`
+}