aboutsummaryrefslogtreecommitdiff
path: root/src/simd
diff options
context:
space:
mode:
authorDavid Chase <drchase@google.com>2025-12-03 12:49:30 -0500
committerDavid Chase <drchase@google.com>2025-12-03 11:12:10 -0800
commit608dba4308c75f2fcb4858c0c99275fb5ccb79b5 (patch)
tree23a1bdebf210502de47e058983202cb771a0e616 /src/simd
parentf3a306527c1ad06965b65f6d6b39b17d2bbcb8ef (diff)
downloadgo-608dba4308c75f2fcb4858c0c99275fb5ccb79b5.tar.xz
[dev.simd] simd: make "best" instruction choice also depend on commutativity
the compare-based-on-immediate instructions are sometimes commutative, sometimes not. In this case, that means the instruction cannot be commutative. also improve the comments for comparisons. Change-Id: I83a55fa5ffbd6cbbaf5cb23b3e8a68a5da8aae2f Reviewed-on: https://go-review.googlesource.com/c/go/+/726440 LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com> Reviewed-by: Junyang Shao <shaojunyang@google.com> Reviewed-by: Austin Clements <austin@google.com>
Diffstat (limited to 'src/simd')
-rw-r--r--src/simd/_gen/simdgen/gen_simdMachineOps.go4
-rw-r--r--src/simd/_gen/simdgen/gen_utility.go6
-rw-r--r--src/simd/_gen/simdgen/ops/Compares/categories.yaml12
-rw-r--r--src/simd/ops_amd64.go216
4 files changed, 124 insertions, 114 deletions
diff --git a/src/simd/_gen/simdgen/gen_simdMachineOps.go b/src/simd/_gen/simdgen/gen_simdMachineOps.go
index e8cf792d42..3d99dd2a81 100644
--- a/src/simd/_gen/simdgen/gen_simdMachineOps.go
+++ b/src/simd/_gen/simdgen/gen_simdMachineOps.go
@@ -98,6 +98,10 @@ func writeSIMDMachineOps(ops []Operation) *bytes.Buffer {
mOpOrder = append(mOpOrder, asm)
continue
}
+ if !op.Commutative && other.Commutative { // if there's a non-commutative version of the op, it wins.
+ best[asm] = op
+ continue
+ }
// see if "op" is better than "other"
if countOverrides(op.In)+countOverrides(op.Out) < countOverrides(other.In)+countOverrides(other.Out) {
best[asm] = op
diff --git a/src/simd/_gen/simdgen/gen_utility.go b/src/simd/_gen/simdgen/gen_utility.go
index 424ba41466..50dcdd2618 100644
--- a/src/simd/_gen/simdgen/gen_utility.go
+++ b/src/simd/_gen/simdgen/gen_utility.go
@@ -666,6 +666,12 @@ func dedupGodef(ops []Operation) ([]Operation, error) {
if i.MemFeatures == nil && j.MemFeatures != nil {
return 1
}
+ if i.Commutative != j.Commutative {
+ if j.Commutative {
+ return -1
+ }
+ return 1
+ }
// Their order does not matter anymore, at least for now.
return 0
})
diff --git a/src/simd/_gen/simdgen/ops/Compares/categories.yaml b/src/simd/_gen/simdgen/ops/Compares/categories.yaml
index aa07ade27e..4b639d7a34 100644
--- a/src/simd/_gen/simdgen/ops/Compares/categories.yaml
+++ b/src/simd/_gen/simdgen/ops/Compares/categories.yaml
@@ -10,17 +10,17 @@
constImm: 0
commutative: true
documentation: !string |-
- // NAME compares for equality.
+ // NAME returns x equals y, elementwise.
- go: Less
constImm: 1
commutative: false
documentation: !string |-
- // NAME compares for less than.
+ // NAME returns x less-than y, elementwise.
- go: LessEqual
constImm: 2
commutative: false
documentation: !string |-
- // NAME compares for less than or equal.
+ // NAME returns x less-than-or-equals y, elementwise.
- go: IsNan # For float only.
constImm: 3
commutative: true
@@ -30,14 +30,14 @@
constImm: 4
commutative: true
documentation: !string |-
- // NAME compares for inequality.
+ // NAME returns x not-equals y, elementwise.
- go: GreaterEqual
constImm: 13
commutative: false
documentation: !string |-
- // NAME compares for greater than or equal.
+ // NAME returns x greater-than-or-equals y, elementwise.
- go: Greater
constImm: 14
commutative: false
documentation: !string |-
- // NAME compares for greater than.
+ // NAME returns x greater-than y, elementwise.
diff --git a/src/simd/ops_amd64.go b/src/simd/ops_amd64.go
index 7280e873a0..82774e05ad 100644
--- a/src/simd/ops_amd64.go
+++ b/src/simd/ops_amd64.go
@@ -2022,152 +2022,152 @@ func (x Int8x64) DotProductQuadrupleSaturated(y Uint8x64) Int32x16
/* Equal */
-// Equal compares for equality.
+// Equal returns x equals y, elementwise.
//
// Asm: VPCMPEQB, CPU Feature: AVX
func (x Int8x16) Equal(y Int8x16) Mask8x16
-// Equal compares for equality.
+// Equal returns x equals y, elementwise.
//
// Asm: VPCMPEQB, CPU Feature: AVX2
func (x Int8x32) Equal(y Int8x32) Mask8x32
-// Equal compares for equality.
+// Equal returns x equals y, elementwise.
//
// Asm: VPCMPEQB, CPU Feature: AVX512
func (x Int8x64) Equal(y Int8x64) Mask8x64
-// Equal compares for equality.
+// Equal returns x equals y, elementwise.
//
// Asm: VPCMPEQW, CPU Feature: AVX
func (x Int16x8) Equal(y Int16x8) Mask16x8
-// Equal compares for equality.
+// Equal returns x equals y, elementwise.
//
// Asm: VPCMPEQW, CPU Feature: AVX2
func (x Int16x16) Equal(y Int16x16) Mask16x16
-// Equal compares for equality.
+// Equal returns x equals y, elementwise.
//
// Asm: VPCMPEQW, CPU Feature: AVX512
func (x Int16x32) Equal(y Int16x32) Mask16x32
-// Equal compares for equality.
+// Equal returns x equals y, elementwise.
//
// Asm: VPCMPEQD, CPU Feature: AVX
func (x Int32x4) Equal(y Int32x4) Mask32x4
-// Equal compares for equality.
+// Equal returns x equals y, elementwise.
//
// Asm: VPCMPEQD, CPU Feature: AVX2
func (x Int32x8) Equal(y Int32x8) Mask32x8
-// Equal compares for equality.
+// Equal returns x equals y, elementwise.
//
// Asm: VPCMPEQD, CPU Feature: AVX512
func (x Int32x16) Equal(y Int32x16) Mask32x16
-// Equal compares for equality.
+// Equal returns x equals y, elementwise.
//
// Asm: VPCMPEQQ, CPU Feature: AVX
func (x Int64x2) Equal(y Int64x2) Mask64x2
-// Equal compares for equality.
+// Equal returns x equals y, elementwise.
//
// Asm: VPCMPEQQ, CPU Feature: AVX2
func (x Int64x4) Equal(y Int64x4) Mask64x4
-// Equal compares for equality.
+// Equal returns x equals y, elementwise.
//
// Asm: VPCMPEQQ, CPU Feature: AVX512
func (x Int64x8) Equal(y Int64x8) Mask64x8
-// Equal compares for equality.
+// Equal returns x equals y, elementwise.
//
// Asm: VPCMPEQB, CPU Feature: AVX
func (x Uint8x16) Equal(y Uint8x16) Mask8x16
-// Equal compares for equality.
+// Equal returns x equals y, elementwise.
//
// Asm: VPCMPEQB, CPU Feature: AVX2
func (x Uint8x32) Equal(y Uint8x32) Mask8x32
-// Equal compares for equality.
+// Equal returns x equals y, elementwise.
//
// Asm: VPCMPEQB, CPU Feature: AVX512
func (x Uint8x64) Equal(y Uint8x64) Mask8x64
-// Equal compares for equality.
+// Equal returns x equals y, elementwise.
//
// Asm: VPCMPEQW, CPU Feature: AVX
func (x Uint16x8) Equal(y Uint16x8) Mask16x8
-// Equal compares for equality.
+// Equal returns x equals y, elementwise.
//
// Asm: VPCMPEQW, CPU Feature: AVX2
func (x Uint16x16) Equal(y Uint16x16) Mask16x16
-// Equal compares for equality.
+// Equal returns x equals y, elementwise.
//
// Asm: VPCMPEQW, CPU Feature: AVX512
func (x Uint16x32) Equal(y Uint16x32) Mask16x32
-// Equal compares for equality.
+// Equal returns x equals y, elementwise.
//
// Asm: VPCMPEQD, CPU Feature: AVX
func (x Uint32x4) Equal(y Uint32x4) Mask32x4
-// Equal compares for equality.
+// Equal returns x equals y, elementwise.
//
// Asm: VPCMPEQD, CPU Feature: AVX2
func (x Uint32x8) Equal(y Uint32x8) Mask32x8
-// Equal compares for equality.
+// Equal returns x equals y, elementwise.
//
// Asm: VPCMPEQD, CPU Feature: AVX512
func (x Uint32x16) Equal(y Uint32x16) Mask32x16
-// Equal compares for equality.
+// Equal returns x equals y, elementwise.
//
// Asm: VPCMPEQQ, CPU Feature: AVX
func (x Uint64x2) Equal(y Uint64x2) Mask64x2
-// Equal compares for equality.
+// Equal returns x equals y, elementwise.
//
// Asm: VPCMPEQQ, CPU Feature: AVX2
func (x Uint64x4) Equal(y Uint64x4) Mask64x4
-// Equal compares for equality.
+// Equal returns x equals y, elementwise.
//
// Asm: VPCMPEQQ, CPU Feature: AVX512
func (x Uint64x8) Equal(y Uint64x8) Mask64x8
-// Equal compares for equality.
+// Equal returns x equals y, elementwise.
//
// Asm: VCMPPS, CPU Feature: AVX
func (x Float32x4) Equal(y Float32x4) Mask32x4
-// Equal compares for equality.
+// Equal returns x equals y, elementwise.
//
// Asm: VCMPPS, CPU Feature: AVX
func (x Float32x8) Equal(y Float32x8) Mask32x8
-// Equal compares for equality.
+// Equal returns x equals y, elementwise.
//
// Asm: VCMPPS, CPU Feature: AVX512
func (x Float32x16) Equal(y Float32x16) Mask32x16
-// Equal compares for equality.
+// Equal returns x equals y, elementwise.
//
// Asm: VCMPPD, CPU Feature: AVX
func (x Float64x2) Equal(y Float64x2) Mask64x2
-// Equal compares for equality.
+// Equal returns x equals y, elementwise.
//
// Asm: VCMPPD, CPU Feature: AVX
func (x Float64x4) Equal(y Float64x4) Mask64x4
-// Equal compares for equality.
+// Equal returns x equals y, elementwise.
//
// Asm: VCMPPD, CPU Feature: AVX512
func (x Float64x8) Equal(y Float64x8) Mask64x8
@@ -3081,184 +3081,184 @@ func (x Uint64x8) GetLo() Uint64x4
/* Greater */
-// Greater compares for greater than.
+// Greater returns x greater-than y, elementwise.
//
// Asm: VPCMPGTB, CPU Feature: AVX
func (x Int8x16) Greater(y Int8x16) Mask8x16
-// Greater compares for greater than.
+// Greater returns x greater-than y, elementwise.
//
// Asm: VPCMPGTB, CPU Feature: AVX2
func (x Int8x32) Greater(y Int8x32) Mask8x32
-// Greater compares for greater than.
+// Greater returns x greater-than y, elementwise.
//
// Asm: VPCMPGTB, CPU Feature: AVX512
func (x Int8x64) Greater(y Int8x64) Mask8x64
-// Greater compares for greater than.
+// Greater returns x greater-than y, elementwise.
//
// Asm: VPCMPGTW, CPU Feature: AVX
func (x Int16x8) Greater(y Int16x8) Mask16x8
-// Greater compares for greater than.
+// Greater returns x greater-than y, elementwise.
//
// Asm: VPCMPGTW, CPU Feature: AVX2
func (x Int16x16) Greater(y Int16x16) Mask16x16
-// Greater compares for greater than.
+// Greater returns x greater-than y, elementwise.
//
// Asm: VPCMPGTW, CPU Feature: AVX512
func (x Int16x32) Greater(y Int16x32) Mask16x32
-// Greater compares for greater than.
+// Greater returns x greater-than y, elementwise.
//
// Asm: VPCMPGTD, CPU Feature: AVX
func (x Int32x4) Greater(y Int32x4) Mask32x4
-// Greater compares for greater than.
+// Greater returns x greater-than y, elementwise.
//
// Asm: VPCMPGTD, CPU Feature: AVX2
func (x Int32x8) Greater(y Int32x8) Mask32x8
-// Greater compares for greater than.
+// Greater returns x greater-than y, elementwise.
//
// Asm: VPCMPGTD, CPU Feature: AVX512
func (x Int32x16) Greater(y Int32x16) Mask32x16
-// Greater compares for greater than.
+// Greater returns x greater-than y, elementwise.
//
// Asm: VPCMPGTQ, CPU Feature: AVX
func (x Int64x2) Greater(y Int64x2) Mask64x2
-// Greater compares for greater than.
+// Greater returns x greater-than y, elementwise.
//
// Asm: VPCMPGTQ, CPU Feature: AVX2
func (x Int64x4) Greater(y Int64x4) Mask64x4
-// Greater compares for greater than.
+// Greater returns x greater-than y, elementwise.
//
// Asm: VPCMPGTQ, CPU Feature: AVX512
func (x Int64x8) Greater(y Int64x8) Mask64x8
-// Greater compares for greater than.
+// Greater returns x greater-than y, elementwise.
//
// Asm: VCMPPS, CPU Feature: AVX
func (x Float32x4) Greater(y Float32x4) Mask32x4
-// Greater compares for greater than.
+// Greater returns x greater-than y, elementwise.
//
// Asm: VCMPPS, CPU Feature: AVX
func (x Float32x8) Greater(y Float32x8) Mask32x8
-// Greater compares for greater than.
+// Greater returns x greater-than y, elementwise.
//
// Asm: VCMPPS, CPU Feature: AVX512
func (x Float32x16) Greater(y Float32x16) Mask32x16
-// Greater compares for greater than.
+// Greater returns x greater-than y, elementwise.
//
// Asm: VCMPPD, CPU Feature: AVX
func (x Float64x2) Greater(y Float64x2) Mask64x2
-// Greater compares for greater than.
+// Greater returns x greater-than y, elementwise.
//
// Asm: VCMPPD, CPU Feature: AVX
func (x Float64x4) Greater(y Float64x4) Mask64x4
-// Greater compares for greater than.
+// Greater returns x greater-than y, elementwise.
//
// Asm: VCMPPD, CPU Feature: AVX512
func (x Float64x8) Greater(y Float64x8) Mask64x8
-// Greater compares for greater than.
+// Greater returns x greater-than y, elementwise.
//
// Asm: VPCMPUB, CPU Feature: AVX512
func (x Uint8x64) Greater(y Uint8x64) Mask8x64
-// Greater compares for greater than.
+// Greater returns x greater-than y, elementwise.
//
// Asm: VPCMPUW, CPU Feature: AVX512
func (x Uint16x32) Greater(y Uint16x32) Mask16x32
-// Greater compares for greater than.
+// Greater returns x greater-than y, elementwise.
//
// Asm: VPCMPUD, CPU Feature: AVX512
func (x Uint32x16) Greater(y Uint32x16) Mask32x16
-// Greater compares for greater than.
+// Greater returns x greater-than y, elementwise.
//
// Asm: VPCMPUQ, CPU Feature: AVX512
func (x Uint64x8) Greater(y Uint64x8) Mask64x8
/* GreaterEqual */
-// GreaterEqual compares for greater than or equal.
+// GreaterEqual returns x greater-than-or-equals y, elementwise.
//
// Asm: VCMPPS, CPU Feature: AVX
func (x Float32x4) GreaterEqual(y Float32x4) Mask32x4
-// GreaterEqual compares for greater than or equal.
+// GreaterEqual returns x greater-than-or-equals y, elementwise.
//
// Asm: VCMPPS, CPU Feature: AVX
func (x Float32x8) GreaterEqual(y Float32x8) Mask32x8
-// GreaterEqual compares for greater than or equal.
+// GreaterEqual returns x greater-than-or-equals y, elementwise.
//
// Asm: VCMPPS, CPU Feature: AVX512
func (x Float32x16) GreaterEqual(y Float32x16) Mask32x16
-// GreaterEqual compares for greater than or equal.
+// GreaterEqual returns x greater-than-or-equals y, elementwise.
//
// Asm: VCMPPD, CPU Feature: AVX
func (x Float64x2) GreaterEqual(y Float64x2) Mask64x2
-// GreaterEqual compares for greater than or equal.
+// GreaterEqual returns x greater-than-or-equals y, elementwise.
//
// Asm: VCMPPD, CPU Feature: AVX
func (x Float64x4) GreaterEqual(y Float64x4) Mask64x4
-// GreaterEqual compares for greater than or equal.
+// GreaterEqual returns x greater-than-or-equals y, elementwise.
//
// Asm: VCMPPD, CPU Feature: AVX512
func (x Float64x8) GreaterEqual(y Float64x8) Mask64x8
-// GreaterEqual compares for greater than or equal.
+// GreaterEqual returns x greater-than-or-equals y, elementwise.
//
// Asm: VPCMPB, CPU Feature: AVX512
func (x Int8x64) GreaterEqual(y Int8x64) Mask8x64
-// GreaterEqual compares for greater than or equal.
+// GreaterEqual returns x greater-than-or-equals y, elementwise.
//
// Asm: VPCMPW, CPU Feature: AVX512
func (x Int16x32) GreaterEqual(y Int16x32) Mask16x32
-// GreaterEqual compares for greater than or equal.
+// GreaterEqual returns x greater-than-or-equals y, elementwise.
//
// Asm: VPCMPD, CPU Feature: AVX512
func (x Int32x16) GreaterEqual(y Int32x16) Mask32x16
-// GreaterEqual compares for greater than or equal.
+// GreaterEqual returns x greater-than-or-equals y, elementwise.
//
// Asm: VPCMPQ, CPU Feature: AVX512
func (x Int64x8) GreaterEqual(y Int64x8) Mask64x8
-// GreaterEqual compares for greater than or equal.
+// GreaterEqual returns x greater-than-or-equals y, elementwise.
//
// Asm: VPCMPUB, CPU Feature: AVX512
func (x Uint8x64) GreaterEqual(y Uint8x64) Mask8x64
-// GreaterEqual compares for greater than or equal.
+// GreaterEqual returns x greater-than-or-equals y, elementwise.
//
// Asm: VPCMPUW, CPU Feature: AVX512
func (x Uint16x32) GreaterEqual(y Uint16x32) Mask16x32
-// GreaterEqual compares for greater than or equal.
+// GreaterEqual returns x greater-than-or-equals y, elementwise.
//
// Asm: VPCMPUD, CPU Feature: AVX512
func (x Uint32x16) GreaterEqual(y Uint32x16) Mask32x16
-// GreaterEqual compares for greater than or equal.
+// GreaterEqual returns x greater-than-or-equals y, elementwise.
//
// Asm: VPCMPUQ, CPU Feature: AVX512
func (x Uint64x8) GreaterEqual(y Uint64x8) Mask64x8
@@ -3547,144 +3547,144 @@ func (x Uint64x8) LeadingZeros() Uint64x8
/* Less */
-// Less compares for less than.
+// Less returns x less-than y, elementwise.
//
// Asm: VCMPPS, CPU Feature: AVX
func (x Float32x4) Less(y Float32x4) Mask32x4
-// Less compares for less than.
+// Less returns x less-than y, elementwise.
//
// Asm: VCMPPS, CPU Feature: AVX
func (x Float32x8) Less(y Float32x8) Mask32x8
-// Less compares for less than.
+// Less returns x less-than y, elementwise.
//
// Asm: VCMPPS, CPU Feature: AVX512
func (x Float32x16) Less(y Float32x16) Mask32x16
-// Less compares for less than.
+// Less returns x less-than y, elementwise.
//
// Asm: VCMPPD, CPU Feature: AVX
func (x Float64x2) Less(y Float64x2) Mask64x2
-// Less compares for less than.
+// Less returns x less-than y, elementwise.
//
// Asm: VCMPPD, CPU Feature: AVX
func (x Float64x4) Less(y Float64x4) Mask64x4
-// Less compares for less than.
+// Less returns x less-than y, elementwise.
//
// Asm: VCMPPD, CPU Feature: AVX512
func (x Float64x8) Less(y Float64x8) Mask64x8
-// Less compares for less than.
+// Less returns x less-than y, elementwise.
//
// Asm: VPCMPB, CPU Feature: AVX512
func (x Int8x64) Less(y Int8x64) Mask8x64
-// Less compares for less than.
+// Less returns x less-than y, elementwise.
//
// Asm: VPCMPW, CPU Feature: AVX512
func (x Int16x32) Less(y Int16x32) Mask16x32
-// Less compares for less than.
+// Less returns x less-than y, elementwise.
//
// Asm: VPCMPD, CPU Feature: AVX512
func (x Int32x16) Less(y Int32x16) Mask32x16
-// Less compares for less than.
+// Less returns x less-than y, elementwise.
//
// Asm: VPCMPQ, CPU Feature: AVX512
func (x Int64x8) Less(y Int64x8) Mask64x8
-// Less compares for less than.
+// Less returns x less-than y, elementwise.
//
// Asm: VPCMPUB, CPU Feature: AVX512
func (x Uint8x64) Less(y Uint8x64) Mask8x64
-// Less compares for less than.
+// Less returns x less-than y, elementwise.
//
// Asm: VPCMPUW, CPU Feature: AVX512
func (x Uint16x32) Less(y Uint16x32) Mask16x32
-// Less compares for less than.
+// Less returns x less-than y, elementwise.
//
// Asm: VPCMPUD, CPU Feature: AVX512
func (x Uint32x16) Less(y Uint32x16) Mask32x16
-// Less compares for less than.
+// Less returns x less-than y, elementwise.
//
// Asm: VPCMPUQ, CPU Feature: AVX512
func (x Uint64x8) Less(y Uint64x8) Mask64x8
/* LessEqual */
-// LessEqual compares for less than or equal.
+// LessEqual returns x less-than-or-equals y, elementwise.
//
// Asm: VCMPPS, CPU Feature: AVX
func (x Float32x4) LessEqual(y Float32x4) Mask32x4
-// LessEqual compares for less than or equal.
+// LessEqual returns x less-than-or-equals y, elementwise.
//
// Asm: VCMPPS, CPU Feature: AVX
func (x Float32x8) LessEqual(y Float32x8) Mask32x8
-// LessEqual compares for less than or equal.
+// LessEqual returns x less-than-or-equals y, elementwise.
//
// Asm: VCMPPS, CPU Feature: AVX512
func (x Float32x16) LessEqual(y Float32x16) Mask32x16
-// LessEqual compares for less than or equal.
+// LessEqual returns x less-than-or-equals y, elementwise.
//
// Asm: VCMPPD, CPU Feature: AVX
func (x Float64x2) LessEqual(y Float64x2) Mask64x2
-// LessEqual compares for less than or equal.
+// LessEqual returns x less-than-or-equals y, elementwise.
//
// Asm: VCMPPD, CPU Feature: AVX
func (x Float64x4) LessEqual(y Float64x4) Mask64x4
-// LessEqual compares for less than or equal.
+// LessEqual returns x less-than-or-equals y, elementwise.
//
// Asm: VCMPPD, CPU Feature: AVX512
func (x Float64x8) LessEqual(y Float64x8) Mask64x8
-// LessEqual compares for less than or equal.
+// LessEqual returns x less-than-or-equals y, elementwise.
//
// Asm: VPCMPB, CPU Feature: AVX512
func (x Int8x64) LessEqual(y Int8x64) Mask8x64
-// LessEqual compares for less than or equal.
+// LessEqual returns x less-than-or-equals y, elementwise.
//
// Asm: VPCMPW, CPU Feature: AVX512
func (x Int16x32) LessEqual(y Int16x32) Mask16x32
-// LessEqual compares for less than or equal.
+// LessEqual returns x less-than-or-equals y, elementwise.
//
// Asm: VPCMPD, CPU Feature: AVX512
func (x Int32x16) LessEqual(y Int32x16) Mask32x16
-// LessEqual compares for less than or equal.
+// LessEqual returns x less-than-or-equals y, elementwise.
//
// Asm: VPCMPQ, CPU Feature: AVX512
func (x Int64x8) LessEqual(y Int64x8) Mask64x8
-// LessEqual compares for less than or equal.
+// LessEqual returns x less-than-or-equals y, elementwise.
//
// Asm: VPCMPUB, CPU Feature: AVX512
func (x Uint8x64) LessEqual(y Uint8x64) Mask8x64
-// LessEqual compares for less than or equal.
+// LessEqual returns x less-than-or-equals y, elementwise.
//
// Asm: VPCMPUW, CPU Feature: AVX512
func (x Uint16x32) LessEqual(y Uint16x32) Mask16x32
-// LessEqual compares for less than or equal.
+// LessEqual returns x less-than-or-equals y, elementwise.
//
// Asm: VPCMPUD, CPU Feature: AVX512
func (x Uint32x16) LessEqual(y Uint32x16) Mask32x16
-// LessEqual compares for less than or equal.
+// LessEqual returns x less-than-or-equals y, elementwise.
//
// Asm: VPCMPUQ, CPU Feature: AVX512
func (x Uint64x8) LessEqual(y Uint64x8) Mask64x8
@@ -4271,72 +4271,72 @@ func (x Float64x8) MulSubAdd(y Float64x8, z Float64x8) Float64x8
/* NotEqual */
-// NotEqual compares for inequality.
+// NotEqual returns x not-equals y, elementwise.
//
// Asm: VCMPPS, CPU Feature: AVX
func (x Float32x4) NotEqual(y Float32x4) Mask32x4
-// NotEqual compares for inequality.
+// NotEqual returns x not-equals y, elementwise.
//
// Asm: VCMPPS, CPU Feature: AVX
func (x Float32x8) NotEqual(y Float32x8) Mask32x8
-// NotEqual compares for inequality.
+// NotEqual returns x not-equals y, elementwise.
//
// Asm: VCMPPS, CPU Feature: AVX512
func (x Float32x16) NotEqual(y Float32x16) Mask32x16
-// NotEqual compares for inequality.
+// NotEqual returns x not-equals y, elementwise.
//
// Asm: VCMPPD, CPU Feature: AVX
func (x Float64x2) NotEqual(y Float64x2) Mask64x2
-// NotEqual compares for inequality.
+// NotEqual returns x not-equals y, elementwise.
//
// Asm: VCMPPD, CPU Feature: AVX
func (x Float64x4) NotEqual(y Float64x4) Mask64x4
-// NotEqual compares for inequality.
+// NotEqual returns x not-equals y, elementwise.
//
// Asm: VCMPPD, CPU Feature: AVX512
func (x Float64x8) NotEqual(y Float64x8) Mask64x8
-// NotEqual compares for inequality.
+// NotEqual returns x not-equals y, elementwise.
//
// Asm: VPCMPB, CPU Feature: AVX512
func (x Int8x64) NotEqual(y Int8x64) Mask8x64
-// NotEqual compares for inequality.
+// NotEqual returns x not-equals y, elementwise.
//
// Asm: VPCMPW, CPU Feature: AVX512
func (x Int16x32) NotEqual(y Int16x32) Mask16x32
-// NotEqual compares for inequality.
+// NotEqual returns x not-equals y, elementwise.
//
// Asm: VPCMPD, CPU Feature: AVX512
func (x Int32x16) NotEqual(y Int32x16) Mask32x16
-// NotEqual compares for inequality.
+// NotEqual returns x not-equals y, elementwise.
//
// Asm: VPCMPQ, CPU Feature: AVX512
func (x Int64x8) NotEqual(y Int64x8) Mask64x8
-// NotEqual compares for inequality.
+// NotEqual returns x not-equals y, elementwise.
//
// Asm: VPCMPUB, CPU Feature: AVX512
func (x Uint8x64) NotEqual(y Uint8x64) Mask8x64
-// NotEqual compares for inequality.
+// NotEqual returns x not-equals y, elementwise.
//
// Asm: VPCMPUW, CPU Feature: AVX512
func (x Uint16x32) NotEqual(y Uint16x32) Mask16x32
-// NotEqual compares for inequality.
+// NotEqual returns x not-equals y, elementwise.
//
// Asm: VPCMPUD, CPU Feature: AVX512
func (x Uint32x16) NotEqual(y Uint32x16) Mask32x16
-// NotEqual compares for inequality.
+// NotEqual returns x not-equals y, elementwise.
//
// Asm: VPCMPUQ, CPU Feature: AVX512
func (x Uint64x8) NotEqual(y Uint64x8) Mask64x8