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 }