; 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
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