Plaster
New
List
Login
common-lisp
default
phoe
2020.05.25 09:56:14
(defun foo (x) (declare (optimize speed) (single-float x)) (ldb (byte 8 0) (floor x))) ; compiling (DEFUN FOO ...) ; file: /tmp/slimeVBW2CC ; in: DEFUN FOO ; (FLOOR X) ; --> FLOOR MULTIPLE-VALUE-BIND MULTIPLE-VALUE-CALL TRUNCATE LET ; ==> ; (SB-KERNEL:%UNARY-TRUNCATE/SINGLE-FLOAT SB-C::X) ; ; note: forced to do full call ; unable to do inline float truncate (cost 5) because: ; The result is a (VALUES INTEGER &OPTIONAL), not a (VALUES ; (SIGNED-BYTE 64) &REST ; T). ; --> FLOOR MULTIPLE-VALUE-BIND MULTIPLE-VALUE-CALL TRUNCATE LET VALUES ; --> - LOCALLY ; ==> ; (SB-KERNEL:%SINGLE-FLOAT SB-C::RES) ; ; note: forced to do full call ; unable to do inline float coercion (cost 5) because: ; The first argument is a INTEGER, not a (SIGNED-BYTE 64). ; --> FLOOR MULTIPLE-VALUE-BIND MULTIPLE-VALUE-CALL FUNCTION IF VALUES ; --> 1- ; ==> ; (- SB-C::TRU 1) ; ; note: forced to do GENERIC-- (cost 10) ; unable to do inline fixnum arithmetic (cost 1) because: ; The first argument is a INTEGER, not a FIXNUM. ; The result is a (VALUES INTEGER &OPTIONAL), not a (VALUES FIXNUM &REST T). ; unable to do inline fixnum arithmetic (cost 2) because: ; The first argument is a INTEGER, not a FIXNUM. ; The result is a (VALUES INTEGER &OPTIONAL), not a (VALUES FIXNUM &REST T). ; etc. ; ; compilation unit finished ; printed 3 notes WARNING: redefining COMMON-LISP-USER::FOO in DEFUN CL-USER>
Raw
Annotate
Repaste