72 lines
1.2 KiB
Go
72 lines
1.2 KiB
Go
package types
|
|
|
|
import "git.gammaspectra.live/WeebDataHoarder/compute-go/assembler/obj"
|
|
|
|
func VecMem128[To Vec128Any](mem Addressable) To {
|
|
if mem.Addr().Type == obj.TYPE_REG {
|
|
panic("not supported")
|
|
}
|
|
return VecCast128[To](vecMem{mem})
|
|
}
|
|
|
|
func VecMem256[To Vec256Any](mem Addressable) To {
|
|
if mem.Addr().Type == obj.TYPE_REG {
|
|
panic("not supported")
|
|
}
|
|
return VecCast256[To](vecMem{mem})
|
|
}
|
|
|
|
func VecMem512[To Vec512Any](mem Addressable) To {
|
|
if mem.Addr().Type == obj.TYPE_REG {
|
|
panic("not supported")
|
|
}
|
|
return VecCast512[To](vecMem{mem})
|
|
}
|
|
|
|
type vecMem struct {
|
|
Addressable
|
|
}
|
|
|
|
func (v vecMem) Width() int {
|
|
//TODO implement me
|
|
panic("implement me")
|
|
}
|
|
|
|
func (v vecMem) Lanes() int {
|
|
//TODO implement me
|
|
panic("implement me")
|
|
}
|
|
|
|
func (v vecMem) LaneWidth() int {
|
|
//TODO implement me
|
|
panic("implement me")
|
|
}
|
|
|
|
func (v vecMem) Vec128() Vec128 {
|
|
//TODO implement me
|
|
panic("implement me")
|
|
}
|
|
|
|
func (v vecMem) As128() MustAddressable128 {
|
|
return v
|
|
}
|
|
|
|
func (v vecMem) As256() MustAddressable256 {
|
|
return v
|
|
}
|
|
|
|
func (v vecMem) As512() MustAddressable512 {
|
|
return v
|
|
}
|
|
|
|
func (v vecMem) Must128() MustAddressable128 {
|
|
return v
|
|
}
|
|
|
|
func (v vecMem) Must256() MustAddressable256 {
|
|
return v
|
|
}
|
|
|
|
func (v vecMem) Must512() MustAddressable512 {
|
|
return v
|
|
}
|