[dev.simd] simd, cmd/compile: add Interleave{Hi,Lo} (VPUNPCK*)

these are building blocks for transpose, not sure of their
best names yet.

Change-Id: I3800a55de9fa7fde2590ca822894c8a75387dec3
Reviewed-on: https://go-review.googlesource.com/c/go/+/698576
Reviewed-by: Junyang Shao <shaojunyang@google.com>
LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
This commit is contained in:
David Chase 2025-08-20 16:58:55 -04:00
parent 6890aa2e20
commit b509516b2e
12 changed files with 1021 additions and 2 deletions

View file

@ -243,6 +243,24 @@ func ssaGenSIMDValue(s *ssagen.State, v *ssa.Value) bool {
ssa.OpAMD64VPCMPGTD256,
ssa.OpAMD64VPCMPGTQ128,
ssa.OpAMD64VPCMPGTQ256,
ssa.OpAMD64VPUNPCKHWD128,
ssa.OpAMD64VPUNPCKHDQ128,
ssa.OpAMD64VPUNPCKHQDQ128,
ssa.OpAMD64VPUNPCKHWD256,
ssa.OpAMD64VPUNPCKHWD512,
ssa.OpAMD64VPUNPCKHDQ256,
ssa.OpAMD64VPUNPCKHDQ512,
ssa.OpAMD64VPUNPCKHQDQ256,
ssa.OpAMD64VPUNPCKHQDQ512,
ssa.OpAMD64VPUNPCKLWD128,
ssa.OpAMD64VPUNPCKLDQ128,
ssa.OpAMD64VPUNPCKLQDQ128,
ssa.OpAMD64VPUNPCKLWD256,
ssa.OpAMD64VPUNPCKLWD512,
ssa.OpAMD64VPUNPCKLDQ256,
ssa.OpAMD64VPUNPCKLDQ512,
ssa.OpAMD64VPUNPCKLQDQ256,
ssa.OpAMD64VPUNPCKLQDQ512,
ssa.OpAMD64VMAXPS128,
ssa.OpAMD64VMAXPS256,
ssa.OpAMD64VMAXPS512,