diff --git a/src/simd/archsimd/_gen/midway/intersect_simd_ops.go b/src/simd/archsimd/_gen/midway/intersect_simd_ops.go
index e91c527..141ccc2 100644
--- a/src/simd/archsimd/_gen/midway/intersect_simd_ops.go
+++ b/src/simd/archsimd/_gen/midway/intersect_simd_ops.go
@@ -669,7 +669,12 @@
if fd == nil {
continue
}
- pf("func (x %s) %s(", t, fd.Name.Name)
+ bridgeName := fd.Name.Name
+ if strings.HasPrefix(t, "Mask") && strings.HasPrefix(bridgeName, "ToInt") {
+ x := strings.Index(bridgeName, "x")
+ bridgeName = bridgeName[:x] + "s"
+ }
+ pf("func (x %s) %s(", t, bridgeName)
var args []string
if fd.Type.Params != nil {
paramCount := 0
diff --git a/src/simd/internal/bridge/decls_amd64.go b/src/simd/internal/bridge/decls_amd64.go
index 5e15dca..57083c8 100644
--- a/src/simd/internal/bridge/decls_amd64.go
+++ b/src/simd/internal/bridge/decls_amd64.go
@@ -3928,15 +3928,15 @@
return (archsimd.Mask8x64(x)).String()
}
-func (x Mask8x16) ToInt8x16() Int8x16 {
+func (x Mask8x16) ToInt8s() Int8x16 {
return Int8x16((archsimd.Mask8x16(x)).ToInt8x16())
}
-func (x Mask8x32) ToInt8x32() Int8x32 {
+func (x Mask8x32) ToInt8s() Int8x32 {
return Int8x32((archsimd.Mask8x32(x)).ToInt8x32())
}
-func (x Mask8x64) ToInt8x64() Int8x64 {
+func (x Mask8x64) ToInt8s() Int8x64 {
return Int8x64((archsimd.Mask8x64(x)).ToInt8x64())
}
@@ -3976,15 +3976,15 @@
return (archsimd.Mask16x8(x)).String()
}
-func (x Mask16x16) ToInt16x16() Int16x16 {
+func (x Mask16x16) ToInt16s() Int16x16 {
return Int16x16((archsimd.Mask16x16(x)).ToInt16x16())
}
-func (x Mask16x32) ToInt16x32() Int16x32 {
+func (x Mask16x32) ToInt16s() Int16x32 {
return Int16x32((archsimd.Mask16x32(x)).ToInt16x32())
}
-func (x Mask16x8) ToInt16x8() Int16x8 {
+func (x Mask16x8) ToInt16s() Int16x8 {
return Int16x8((archsimd.Mask16x8(x)).ToInt16x8())
}
@@ -4024,15 +4024,15 @@
return (archsimd.Mask32x8(x)).String()
}
-func (x Mask32x16) ToInt32x16() Int32x16 {
+func (x Mask32x16) ToInt32s() Int32x16 {
return Int32x16((archsimd.Mask32x16(x)).ToInt32x16())
}
-func (x Mask32x4) ToInt32x4() Int32x4 {
+func (x Mask32x4) ToInt32s() Int32x4 {
return Int32x4((archsimd.Mask32x4(x)).ToInt32x4())
}
-func (x Mask32x8) ToInt32x8() Int32x8 {
+func (x Mask32x8) ToInt32s() Int32x8 {
return Int32x8((archsimd.Mask32x8(x)).ToInt32x8())
}
@@ -4072,14 +4072,14 @@
return (archsimd.Mask64x8(x)).String()
}
-func (x Mask64x2) ToInt64x2() Int64x2 {
+func (x Mask64x2) ToInt64s() Int64x2 {
return Int64x2((archsimd.Mask64x2(x)).ToInt64x2())
}
-func (x Mask64x4) ToInt64x4() Int64x4 {
+func (x Mask64x4) ToInt64s() Int64x4 {
return Int64x4((archsimd.Mask64x4(x)).ToInt64x4())
}
-func (x Mask64x8) ToInt64x8() Int64x8 {
+func (x Mask64x8) ToInt64s() Int64x8 {
return Int64x8((archsimd.Mask64x8(x)).ToInt64x8())
}
diff --git a/src/simd/internal/bridge/decls_arm64.go b/src/simd/internal/bridge/decls_arm64.go
index 335e7af..a0f971e 100644
--- a/src/simd/internal/bridge/decls_arm64.go
+++ b/src/simd/internal/bridge/decls_arm64.go
@@ -1316,7 +1316,7 @@
return (archsimd.Mask8x16(x)).String()
}
-func (x Mask8x16) ToInt8x16() Int8x16 {
+func (x Mask8x16) ToInt8s() Int8x16 {
return Int8x16((archsimd.Mask8x16(x)).ToInt8x16())
}
@@ -1332,7 +1332,7 @@
return (archsimd.Mask16x8(x)).String()
}
-func (x Mask16x8) ToInt16x8() Int16x8 {
+func (x Mask16x8) ToInt16s() Int16x8 {
return Int16x8((archsimd.Mask16x8(x)).ToInt16x8())
}
@@ -1348,7 +1348,7 @@
return (archsimd.Mask32x4(x)).String()
}
-func (x Mask32x4) ToInt32x4() Int32x4 {
+func (x Mask32x4) ToInt32s() Int32x4 {
return Int32x4((archsimd.Mask32x4(x)).ToInt32x4())
}
@@ -1364,6 +1364,6 @@
return (archsimd.Mask64x2(x)).String()
}
-func (x Mask64x2) ToInt64x2() Int64x2 {
+func (x Mask64x2) ToInt64s() Int64x2 {
return Int64x2((archsimd.Mask64x2(x)).ToInt64x2())
}
diff --git a/src/simd/internal/bridge/decls_wasm.go b/src/simd/internal/bridge/decls_wasm.go
index 013482e..72064dc 100644
--- a/src/simd/internal/bridge/decls_wasm.go
+++ b/src/simd/internal/bridge/decls_wasm.go
@@ -1316,7 +1316,7 @@
return (archsimd.Mask8x16(x)).String()
}
-func (x Mask8x16) ToInt8x16() Int8x16 {
+func (x Mask8x16) ToInt8s() Int8x16 {
return Int8x16((archsimd.Mask8x16(x)).ToInt8x16())
}
@@ -1332,7 +1332,7 @@
return (archsimd.Mask16x8(x)).String()
}
-func (x Mask16x8) ToInt16x8() Int16x8 {
+func (x Mask16x8) ToInt16s() Int16x8 {
return Int16x8((archsimd.Mask16x8(x)).ToInt16x8())
}
@@ -1348,7 +1348,7 @@
return (archsimd.Mask32x4(x)).String()
}
-func (x Mask32x4) ToInt32x4() Int32x4 {
+func (x Mask32x4) ToInt32s() Int32x4 {
return Int32x4((archsimd.Mask32x4(x)).ToInt32x4())
}
@@ -1364,6 +1364,6 @@
return (archsimd.Mask64x2(x)).String()
}
-func (x Mask64x2) ToInt64x2() Int64x2 {
+func (x Mask64x2) ToInt64s() Int64x2 {
return Int64x2((archsimd.Mask64x2(x)).ToInt64x2())
}
diff --git a/src/simd/simd_test.go b/src/simd/simd_test.go
index 099c52e..5bcca61 100644
--- a/src/simd/simd_test.go
+++ b/src/simd/simd_test.go
@@ -8,6 +8,7 @@
import (
"simd"
+ "slices"
"testing"
)
@@ -446,3 +447,13 @@
testBroadcast(t, float32(99991111), simd.BroadcastFloat32s)
testBroadcast(t, float64(112233445599887766), simd.BroadcastFloat64s)
}
+
+func TestMaskToInt(t *testing.T) {
+ topBits := simd.BroadcastUint8s(0x80)
+ got := make([]int8, 16)
+ topBits.Equal(topBits).ToInt8s().Store(got)
+ want := []int8{-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}
+ if !slices.Equal(want, got) {
+ t.Errorf("Wanted %v, got %v", want, got)
+ }
+}