cannot load kernel: symbol lookup error: rint #61

Closed
opened 2021-10-10 17:45:52 +08:00 by sb10q · 4 comments

Current demo does not start (tested on RISC-V KC705):

artiq.coredevice.comm_kernel.LoadError: cannot load kernel: symbol lookup error: rint
Current demo does not start (tested on RISC-V KC705): ``` artiq.coredevice.comm_kernel.LoadError: cannot load kernel: symbol lookup error: rint ```

It requires some libm symbols.

It requires some libm symbols.
Poster
Owner

OK, but why is it using rint()? We are only implementing round() into an integer, whereas rint() is double -> double. Isn't that inefficient? What is the legacy compiler doing?

OK, but why is it using ``rint()``? We are only implementing ``round()`` into an integer, whereas ``rint()`` is ``double -> double``. Isn't that inefficient? What is the legacy compiler doing?
Poster
Owner

Legacy compiler uses llvm.round.f64 (also double->double), NAC3 is using llvm.rint.f64.

Legacy compiler uses ``llvm.round.f64`` (also ``double->double``), NAC3 is using ``llvm.rint.f64``.
sb10q closed this issue 2021-10-11 08:19:05 +08:00
Poster
Owner

rint is not available in the rust libm crate used on Zynq.

rint is not available in the rust libm crate used on Zynq.
Sign in to join this conversation.
No Milestone
No Assignees
2 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: M-Labs/nac3#61
There is no content yet.