| 460 | def vectorize(self, *srcs): |
| 461 | return UOp(Ops.STACK, self.dtype.vec(len(srcs)+1), (self,)+srcs) |
| 462 | def index(self, *srcs:UOp|None, ptr=False, **kwargs): |
| 463 | return UOp(Ops.INDEX, kwargs.pop("dtype", self.dtype if ptr else self.dtype.base), (self,)+tuple([x for x in srcs if x is not None]), **kwargs) |
| 464 | def __getitem__(self, idx): |
| 465 | # pointers index into INDEX UOps (scalar lookup); everything else uses the shared mixin view path |
| 466 | if not isinstance(self.dtype, PtrDType): return super(UOp, self).__getitem__(idx) |