88 lines
1.2 KiB
Go
88 lines
1.2 KiB
Go
package types
|
|
|
|
type Vec16x8[T ~uint16 | ~int16] struct {
|
|
MustAddressable128
|
|
}
|
|
|
|
func (v Vec16x8[T]) Type() T {
|
|
var t T
|
|
return t
|
|
}
|
|
|
|
func (v Vec16x8[T]) Width() int {
|
|
return 128
|
|
}
|
|
|
|
func (v Vec16x8[T]) Lanes() int {
|
|
return 8
|
|
}
|
|
|
|
func (v Vec16x8[T]) LaneWidth() int {
|
|
return 16
|
|
}
|
|
|
|
func (v Vec16x8[T]) Vec128() Vec128 {
|
|
return v
|
|
}
|
|
|
|
type Vec16x16[T ~uint16 | ~int16] struct {
|
|
MustAddressable256
|
|
}
|
|
|
|
func (v Vec16x16[T]) Type() T {
|
|
var t T
|
|
return t
|
|
}
|
|
|
|
func (v Vec16x16[T]) Width() int {
|
|
return 256
|
|
}
|
|
|
|
func (v Vec16x16[T]) Lanes() int {
|
|
return 16
|
|
}
|
|
|
|
func (v Vec16x16[T]) LaneWidth() int {
|
|
return 16
|
|
}
|
|
|
|
func (v Vec16x16[T]) Vec128() Vec128 {
|
|
return Vec16x8[T]{v.As128()}
|
|
}
|
|
|
|
func (v Vec16x16[T]) Vec256() Vec256 {
|
|
return v
|
|
}
|
|
|
|
type Vec16x32[T ~uint16 | ~int16] struct {
|
|
MustAddressable512
|
|
}
|
|
|
|
func (v Vec16x32[T]) Type() T {
|
|
var t T
|
|
return t
|
|
}
|
|
|
|
func (v Vec16x32[T]) Width() int {
|
|
return 512
|
|
}
|
|
|
|
func (v Vec16x32[T]) Lanes() int {
|
|
return 32
|
|
}
|
|
|
|
func (v Vec16x32[T]) LaneWidth() int {
|
|
return 16
|
|
}
|
|
|
|
func (v Vec16x32[T]) Vec128() Vec128 {
|
|
return Vec16x8[T]{v.As128()}
|
|
}
|
|
|
|
func (v Vec16x32[T]) Vec256() Vec256 {
|
|
return Vec16x16[T]{v.As256()}
|
|
}
|
|
|
|
func (v Vec16x32[T]) Vec512() Vec512 {
|
|
return v
|
|
}
|