| 74 | def vcount(self): return self.count |
| 75 | @functools.cache # pylint: disable=method-cache-max-size-none |
| 76 | def vec(self, sz:int) -> DType: |
| 77 | assert self.count == 1, f"can't vectorize {self} with size {sz}" |
| 78 | if sz == 1 or self == dtypes.void: return self # void doesn't vectorize, and sz=1 is scalar |
| 79 | return DType(self.priority, self.bitsize*sz, f"{INVERSE_DTYPES_DICT[self.name]}{sz}", None, sz, self) |
| 80 | def ptr(self, size=-1, addrspace=AddrSpace.GLOBAL) -> PtrDType: |
| 81 | return PtrDType(self.priority, self.bitsize, self.name, self.fmt, self.count, None, self, addrspace, 1, size) |
| 82 | def scalar(self) -> DType: return self._scalar if self._scalar is not None else self |