Source file src/simd/archsimd/types_arm64.go
1 // Code generated by 'simdgen -o godefs -goroot $GOROOT -arch arm64 -arm64Path $ARM64_ISA_PATH go_arm64.yaml types.yaml categories.yaml'; DO NOT EDIT. 2 3 //go:build goexperiment.simd 4 5 package archsimd 6 7 // v128 is a tag type that tells the compiler that this is really 128-bit SIMD 8 type v128 struct { 9 _128 [0]func() // uncomparable 10 } 11 12 // Float32x4 is a 128-bit SIMD vector of 4 float32s. 13 type Float32x4 struct { 14 float32x4 v128 15 vals [4]float32 16 } 17 18 // Len returns the number of elements in a Float32x4. 19 func (x Float32x4) Len() int { return 4 } 20 21 // LoadFloat32x4Array loads a Float32x4 from an array. 22 // 23 //go:noescape 24 func LoadFloat32x4Array(y *[4]float32) Float32x4 25 26 // StoreArray stores a Float32x4 to an array. 27 // 28 //go:noescape 29 func (x Float32x4) StoreArray(y *[4]float32) 30 31 // Float64x2 is a 128-bit SIMD vector of 2 float64s. 32 type Float64x2 struct { 33 float64x2 v128 34 vals [2]float64 35 } 36 37 // Len returns the number of elements in a Float64x2. 38 func (x Float64x2) Len() int { return 2 } 39 40 // LoadFloat64x2Array loads a Float64x2 from an array. 41 // 42 //go:noescape 43 func LoadFloat64x2Array(y *[2]float64) Float64x2 44 45 // StoreArray stores a Float64x2 to an array. 46 // 47 //go:noescape 48 func (x Float64x2) StoreArray(y *[2]float64) 49 50 // Int8x16 is a 128-bit SIMD vector of 16 int8s. 51 type Int8x16 struct { 52 int8x16 v128 53 vals [16]int8 54 } 55 56 // Len returns the number of elements in an Int8x16. 57 func (x Int8x16) Len() int { return 16 } 58 59 // LoadInt8x16Array loads an Int8x16 from an array. 60 // 61 //go:noescape 62 func LoadInt8x16Array(y *[16]int8) Int8x16 63 64 // StoreArray stores an Int8x16 to an array. 65 // 66 //go:noescape 67 func (x Int8x16) StoreArray(y *[16]int8) 68 69 // Int16x8 is a 128-bit SIMD vector of 8 int16s. 70 type Int16x8 struct { 71 int16x8 v128 72 vals [8]int16 73 } 74 75 // Len returns the number of elements in an Int16x8. 76 func (x Int16x8) Len() int { return 8 } 77 78 // LoadInt16x8Array loads an Int16x8 from an array. 79 // 80 //go:noescape 81 func LoadInt16x8Array(y *[8]int16) Int16x8 82 83 // StoreArray stores an Int16x8 to an array. 84 // 85 //go:noescape 86 func (x Int16x8) StoreArray(y *[8]int16) 87 88 // Int32x4 is a 128-bit SIMD vector of 4 int32s. 89 type Int32x4 struct { 90 int32x4 v128 91 vals [4]int32 92 } 93 94 // Len returns the number of elements in an Int32x4. 95 func (x Int32x4) Len() int { return 4 } 96 97 // LoadInt32x4Array loads an Int32x4 from an array. 98 // 99 //go:noescape 100 func LoadInt32x4Array(y *[4]int32) Int32x4 101 102 // StoreArray stores an Int32x4 to an array. 103 // 104 //go:noescape 105 func (x Int32x4) StoreArray(y *[4]int32) 106 107 // Int64x2 is a 128-bit SIMD vector of 2 int64s. 108 type Int64x2 struct { 109 int64x2 v128 110 vals [2]int64 111 } 112 113 // Len returns the number of elements in an Int64x2. 114 func (x Int64x2) Len() int { return 2 } 115 116 // LoadInt64x2Array loads an Int64x2 from an array. 117 // 118 //go:noescape 119 func LoadInt64x2Array(y *[2]int64) Int64x2 120 121 // StoreArray stores an Int64x2 to an array. 122 // 123 //go:noescape 124 func (x Int64x2) StoreArray(y *[2]int64) 125 126 // Uint8x16 is a 128-bit SIMD vector of 16 uint8s. 127 type Uint8x16 struct { 128 uint8x16 v128 129 vals [16]uint8 130 } 131 132 // Len returns the number of elements in a Uint8x16. 133 func (x Uint8x16) Len() int { return 16 } 134 135 // LoadUint8x16Array loads a Uint8x16 from an array. 136 // 137 //go:noescape 138 func LoadUint8x16Array(y *[16]uint8) Uint8x16 139 140 // StoreArray stores a Uint8x16 to an array. 141 // 142 //go:noescape 143 func (x Uint8x16) StoreArray(y *[16]uint8) 144 145 // Uint16x8 is a 128-bit SIMD vector of 8 uint16s. 146 type Uint16x8 struct { 147 uint16x8 v128 148 vals [8]uint16 149 } 150 151 // Len returns the number of elements in a Uint16x8. 152 func (x Uint16x8) Len() int { return 8 } 153 154 // LoadUint16x8Array loads a Uint16x8 from an array. 155 // 156 //go:noescape 157 func LoadUint16x8Array(y *[8]uint16) Uint16x8 158 159 // StoreArray stores a Uint16x8 to an array. 160 // 161 //go:noescape 162 func (x Uint16x8) StoreArray(y *[8]uint16) 163 164 // Uint32x4 is a 128-bit SIMD vector of 4 uint32s. 165 type Uint32x4 struct { 166 uint32x4 v128 167 vals [4]uint32 168 } 169 170 // Len returns the number of elements in a Uint32x4. 171 func (x Uint32x4) Len() int { return 4 } 172 173 // LoadUint32x4Array loads a Uint32x4 from an array. 174 // 175 //go:noescape 176 func LoadUint32x4Array(y *[4]uint32) Uint32x4 177 178 // StoreArray stores a Uint32x4 to an array. 179 // 180 //go:noescape 181 func (x Uint32x4) StoreArray(y *[4]uint32) 182 183 // Uint64x2 is a 128-bit SIMD vector of 2 uint64s. 184 type Uint64x2 struct { 185 uint64x2 v128 186 vals [2]uint64 187 } 188 189 // Len returns the number of elements in a Uint64x2. 190 func (x Uint64x2) Len() int { return 2 } 191 192 // LoadUint64x2Array loads a Uint64x2 from an array. 193 // 194 //go:noescape 195 func LoadUint64x2Array(y *[2]uint64) Uint64x2 196 197 // StoreArray stores a Uint64x2 to an array. 198 // 199 //go:noescape 200 func (x Uint64x2) StoreArray(y *[2]uint64) 201 202 // Mask8x16 is a mask for a SIMD vector of 16 8-bit elements. 203 type Mask8x16 struct { 204 int8x16 v128 205 vals [16]int8 206 } 207 208 // Mask16x8 is a mask for a SIMD vector of 8 16-bit elements. 209 type Mask16x8 struct { 210 int16x8 v128 211 vals [8]int16 212 } 213 214 // Mask32x4 is a mask for a SIMD vector of 4 32-bit elements. 215 type Mask32x4 struct { 216 int32x4 v128 217 vals [4]int32 218 } 219 220 // Mask64x2 is a mask for a SIMD vector of 2 64-bit elements. 221 type Mask64x2 struct { 222 int64x2 v128 223 vals [2]int64 224 } 225