Comment 4 for bug 495467

Revision history for this message
3b (00003b) wrote :

simpler test case of what seems to be the same problem, on "1.3.11.17-0c8ef9f" x8664

(defun foo (x)
  (declare (optimize speed))
  (check-type x single-float)
  (progn ;locally (declare (single-float x))
   (flet ((y () (+ 1.0 x)))
     (list (y) (y)))))

; in: DEFUN FOO
; (+ 1.0 X)
;
; note: forced to do GENERIC-+ (cost 10)
; unable to do inline float arithmetic (cost 2) because:
; The first argument is a T, not a SINGLE-FLOAT.
; The result is a (VALUES NUMBER &OPTIONAL), not a (VALUES SINGLE-FLOAT
; &REST T).
; unable to do inline float arithmetic (cost 3) because:
; The first argument is a T, not a (COMPLEX SINGLE-FLOAT).
; The result is a (VALUES NUMBER &OPTIONAL), not a (VALUES
; (COMPLEX SINGLE-FLOAT)
; &REST T).

with the LOCALLY instead of PROGN, there are no notes