x86, x87 and precision

Bug #1926878 reported by Stas Boukarev on 2021-05-02
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
SBCL
Low
Unassigned

Bug Description

Due to x87's 80-bit precision = doesn't produce the same result after
getting its arguments directly after performing an x87 operation
compared to if it were first stored on the stack/consed and converted
to a reduced precision float.
E.g.
(funcall (compile nil `(lambda (a d)
                         (declare (double-float a d))
                         (let ((m (* a (- d 1d0))))
                           (values (= m a)
                                   (eval 10)
                                   (= m a)))))
         least-positive-double-float 1.7680075614497424d0)
=> NIL, 10, T

To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers