go-compute/types/vecmem.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
}