88 lines
1.2 KiB
Go
88 lines
1.2 KiB
Go
package types
|
|
|
|
type Vec64x2[T ~float64 | ~uint64 | ~int64] struct {
|
|
MustAddressable128
|
|
}
|
|
|
|
func (v Vec64x2[T]) Type() T {
|
|
var t T
|
|
return t
|
|
}
|
|
|
|
func (v Vec64x2[T]) Width() int {
|
|
return 128
|
|
}
|
|
|
|
func (v Vec64x2[T]) Lanes() int {
|
|
return 2
|
|
}
|
|
|
|
func (v Vec64x2[T]) LaneWidth() int {
|
|
return 64
|
|
}
|
|
|
|
func (v Vec64x2[T]) Vec128() Vec128 {
|
|
return v
|
|
}
|
|
|
|
type Vec64x4[T ~float64 | ~uint64 | ~int64] struct {
|
|
MustAddressable256
|
|
}
|
|
|
|
func (v Vec64x4[T]) Type() T {
|
|
var t T
|
|
return t
|
|
}
|
|
|
|
func (v Vec64x4[T]) Width() int {
|
|
return 256
|
|
}
|
|
|
|
func (v Vec64x4[T]) Lanes() int {
|
|
return 4
|
|
}
|
|
|
|
func (v Vec64x4[T]) LaneWidth() int {
|
|
return 64
|
|
}
|
|
|
|
func (v Vec64x4[T]) Vec128() Vec128 {
|
|
return Vec64x2[T]{v.As128()}
|
|
}
|
|
|
|
func (v Vec64x4[T]) Vec256() Vec256 {
|
|
return v
|
|
}
|
|
|
|
type Vec64x8[T ~float64 | ~uint64 | ~int64] struct {
|
|
MustAddressable512
|
|
}
|
|
|
|
func (v Vec64x8[T]) Type() T {
|
|
var t T
|
|
return t
|
|
}
|
|
|
|
func (v Vec64x8[T]) Width() int {
|
|
return 512
|
|
}
|
|
|
|
func (v Vec64x8[T]) Lanes() int {
|
|
return 8
|
|
}
|
|
|
|
func (v Vec64x8[T]) LaneWidth() int {
|
|
return 64
|
|
}
|
|
|
|
func (v Vec64x8[T]) Vec128() Vec128 {
|
|
return Vec64x2[T]{v.As128()}
|
|
}
|
|
|
|
func (v Vec64x8[T]) Vec256() Vec256 {
|
|
return Vec64x4[T]{v.As256()}
|
|
}
|
|
|
|
func (v Vec64x8[T]) Vec512() Vec512 {
|
|
return v
|
|
}
|