You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
21 lines
862 B
21 lines
862 B
2 days ago
|
import unittest, io
|
||
|
from tinygrad import Tensor, dtypes
|
||
|
from contextlib import redirect_stdout
|
||
|
from tinygrad.device import Device
|
||
|
from tinygrad.helpers import OSX
|
||
|
from tinygrad.engine.realize import get_program
|
||
|
|
||
|
class TestDisassembly(unittest.TestCase):
|
||
|
# TODO: fails on llvm. llvm.LLVMGetHostCPUName() returns "generic"
|
||
|
@unittest.skipUnless(Device.DEFAULT in ("CPU",) and OSX, "m series cpus support fp16 arithmetic")
|
||
|
def test_float16_alu(self):
|
||
|
c = Tensor([1], dtype=dtypes.float16) + Tensor([1], dtype=dtypes.float16)
|
||
|
s = c.schedule()[-1]
|
||
|
p = get_program(s.ast, Device[Device.DEFAULT].renderer)
|
||
|
lib = Device[Device.DEFAULT].compiler.compile(p.src)
|
||
|
out = io.StringIO()
|
||
|
with redirect_stdout(out): Device[Device.DEFAULT].compiler.disassemble(lib)
|
||
|
assert "fcvt" not in out.getvalue()
|
||
|
|
||
|
if __name__ == "__main__":
|
||
|
unittest.main()
|