1
2
3
4
5
6
7 package simd_test
8
9 import (
10 "simd/archsimd"
11 "testing"
12 )
13
14 func TestAnd(t *testing.T) {
15 testInt8x16Binary(t, archsimd.Int8x16.And, andSlice[int8])
16 testInt16x8Binary(t, archsimd.Int16x8.And, andSlice[int16])
17 testInt32x4Binary(t, archsimd.Int32x4.And, andSlice[int32])
18 testInt64x2Binary(t, archsimd.Int64x2.And, andSlice[int64])
19
20 testUint8x16Binary(t, archsimd.Uint8x16.And, andSlice[uint8])
21 testUint16x8Binary(t, archsimd.Uint16x8.And, andSlice[uint16])
22 testUint32x4Binary(t, archsimd.Uint32x4.And, andSlice[uint32])
23 testUint64x2Binary(t, archsimd.Uint64x2.And, andSlice[uint64])
24 }
25
26 func TestOr(t *testing.T) {
27 testInt8x16Binary(t, archsimd.Int8x16.Or, orSlice[int8])
28 testInt16x8Binary(t, archsimd.Int16x8.Or, orSlice[int16])
29 testInt32x4Binary(t, archsimd.Int32x4.Or, orSlice[int32])
30 testInt64x2Binary(t, archsimd.Int64x2.Or, orSlice[int64])
31
32 testUint8x16Binary(t, archsimd.Uint8x16.Or, orSlice[uint8])
33 testUint16x8Binary(t, archsimd.Uint16x8.Or, orSlice[uint16])
34 testUint32x4Binary(t, archsimd.Uint32x4.Or, orSlice[uint32])
35 testUint64x2Binary(t, archsimd.Uint64x2.Or, orSlice[uint64])
36 }
37
38 func TestXor(t *testing.T) {
39 testInt8x16Binary(t, archsimd.Int8x16.Xor, xorSlice[int8])
40 testInt16x8Binary(t, archsimd.Int16x8.Xor, xorSlice[int16])
41 testInt32x4Binary(t, archsimd.Int32x4.Xor, xorSlice[int32])
42 testInt64x2Binary(t, archsimd.Int64x2.Xor, xorSlice[int64])
43
44 testUint8x16Binary(t, archsimd.Uint8x16.Xor, xorSlice[uint8])
45 testUint16x8Binary(t, archsimd.Uint16x8.Xor, xorSlice[uint16])
46 testUint32x4Binary(t, archsimd.Uint32x4.Xor, xorSlice[uint32])
47 testUint64x2Binary(t, archsimd.Uint64x2.Xor, xorSlice[uint64])
48 }
49
50 func TestAndNot(t *testing.T) {
51 testInt8x16Binary(t, archsimd.Int8x16.AndNot, andNotSlice[int8])
52 testInt16x8Binary(t, archsimd.Int16x8.AndNot, andNotSlice[int16])
53 testInt32x4Binary(t, archsimd.Int32x4.AndNot, andNotSlice[int32])
54 testInt64x2Binary(t, archsimd.Int64x2.AndNot, andNotSlice[int64])
55
56 testUint8x16Binary(t, archsimd.Uint8x16.AndNot, andNotSlice[uint8])
57 testUint16x8Binary(t, archsimd.Uint16x8.AndNot, andNotSlice[uint16])
58 testUint32x4Binary(t, archsimd.Uint32x4.AndNot, andNotSlice[uint32])
59 testUint64x2Binary(t, archsimd.Uint64x2.AndNot, andNotSlice[uint64])
60 }
61
62 func TestOrNot(t *testing.T) {
63 testInt8x16Binary(t, archsimd.Int8x16.OrNot, orNotSlice[int8])
64 testInt16x8Binary(t, archsimd.Int16x8.OrNot, orNotSlice[int16])
65 testInt32x4Binary(t, archsimd.Int32x4.OrNot, orNotSlice[int32])
66 testInt64x2Binary(t, archsimd.Int64x2.OrNot, orNotSlice[int64])
67
68 testUint8x16Binary(t, archsimd.Uint8x16.OrNot, orNotSlice[uint8])
69 testUint16x8Binary(t, archsimd.Uint16x8.OrNot, orNotSlice[uint16])
70 testUint32x4Binary(t, archsimd.Uint32x4.OrNot, orNotSlice[uint32])
71 testUint64x2Binary(t, archsimd.Uint64x2.OrNot, orNotSlice[uint64])
72 }
73
74 func TestNot(t *testing.T) {
75 testInt8x16Unary(t, archsimd.Int8x16.Not, notSlice[int8])
76 testInt16x8Unary(t, archsimd.Int16x8.Not, notSlice[int16])
77 testInt32x4Unary(t, archsimd.Int32x4.Not, notSlice[int32])
78 testInt64x2Unary(t, archsimd.Int64x2.Not, notSlice[int64])
79
80 testUint8x16Unary(t, archsimd.Uint8x16.Not, notSlice[uint8])
81 testUint16x8Unary(t, archsimd.Uint16x8.Not, notSlice[uint16])
82 testUint32x4Unary(t, archsimd.Uint32x4.Not, notSlice[uint32])
83 testUint64x2Unary(t, archsimd.Uint64x2.Not, notSlice[uint64])
84 }
85
View as plain text