(self, dt:DType, mutable=True)
| 146 | |
| 147 | def render_cast(self, dt:DType, val: str) -> str: return f"({self.render_dtype(dt)})({val})" |
| 148 | def render_dtype(self, dt:DType, mutable=True) -> str: |
| 149 | if isinstance(dt, ImageDType): return f"{'write_only' if mutable else 'read_only'} image2d_t" |
| 150 | if isinstance(dt, PtrDType): |
| 151 | prefix = "" |
| 152 | if dt.addrspace == AddrSpace.LOCAL and self.smem_prefix_for_cast: prefix = self.smem_prefix |
| 153 | if dt.addrspace == AddrSpace.GLOBAL: prefix = self.buffer_prefix |
| 154 | return prefix + self.render_dtype(dt.base) + "*" |
| 155 | if dt.count > 1: return self.type_map.get(scalar:=dt.scalar(), scalar.name).replace(" ", "_") + str(dt.count) |
| 156 | return self.type_map.get(scalar:=dt.scalar(), scalar.name) |
| 157 | |
| 158 | def __getitem__(self, key): return self.r[key] # hacky helper |
| 159 | def _render(self, uops:list[UOp]) -> tuple[str, list[str], list[tuple[str,tuple[DType,bool]]]]: |
no test coverage detected