X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=tests%2Fcompiler.pure.lisp;h=9a08b7ebbf1fd506e465d9b51808ed8cf3df3bfb;hb=8b0f847a56feacdfcbc8dae20cdc84bb91bf4c98;hp=0b07cfc7a30312e11c4c74a63a5af81c246e69a1;hpb=d18903c82a4856d5a65549b2913c0ee098c34f7e;p=sbcl.git diff --git a/tests/compiler.pure.lisp b/tests/compiler.pure.lisp index 0b07cfc..9a08b7e 100644 --- a/tests/compiler.pure.lisp +++ b/tests/compiler.pure.lisp @@ -940,3 +940,96 @@ -32326608)))) 1 2 3) -32326608)) + +;;; MISC.177, 182: IR2 copy propagation missed a hidden write to a +;;; local lambda argument +(assert + (equal + (funcall + (compile nil + '(lambda (a b c) + (declare (type (integer 804561 7640697) a)) + (declare (type (integer -1 10441401) b)) + (declare (type (integer -864634669 55189745) c)) + (declare (ignorable a b c)) + (declare (optimize (speed 3))) + (declare (optimize (safety 1))) + (declare (optimize (debug 1))) + (flet ((%f11 + (f11-1 f11-2) + (labels ((%f4 () (round 200048 (max 99 c)))) + (logand + f11-1 + (labels ((%f3 (f3-1) -162967612)) + (%f3 (let* ((v8 (%f4))) + (setq f11-1 (%f4))))))))) + (%f11 -120429363 (%f11 62362 b))))) + 6714367 9645616 -637681868) + -264223548)) + +;;; Bug reported by Paul F. Dietz caused by derive type loss in VALUE +;;; transform +(assert (equal (multiple-value-list + (funcall + (compile nil '(lambda () + (declare (optimize (speed 1) (space 0) (safety 3) (debug 3) (compilation-speed 1))) + (ceiling + (ceiling + (flet ((%f16 () 0)) (%f16)))))))) + '(0 0))) + +;;; MISC.184 +(assert (zerop + (funcall + (compile + nil + '(lambda (a b c) + (declare (type (integer 867934833 3293695878) a)) + (declare (type (integer -82111 1776797) b)) + (declare (type (integer -1432413516 54121964) c)) + (declare (optimize (speed 3))) + (declare (optimize (safety 1))) + (declare (optimize (debug 1))) + (if nil + (flet ((%f15 (f15-1 &optional (f15-2 c)) + (labels ((%f1 (f1-1 f1-2) 0)) + (%f1 a 0)))) + (flet ((%f4 () + (multiple-value-call #'%f15 + (values (%f15 c 0) (%f15 0))))) + (if nil (%f4) + (flet ((%f8 (f8-1 &optional (f8-2 (%f4)) (f8-3 0)) + f8-3)) + 0)))) + 0))) + 3040851270 1664281 -1340106197))) + +;;; MISC.249 +(assert (zerop + (funcall + (compile + nil + '(lambda (a b) + (declare (notinline <=)) + (declare (optimize (speed 2) (space 3) (safety 0) + (debug 1) (compilation-speed 3))) + (if (if (<= 0) nil nil) + (labels ((%f9 (f9-1 f9-2 f9-3) + (ignore-errors 0))) + (dotimes (iv4 5 a) (%f9 0 0 b))) + 0))) + 1 2))) + +;;; MISC.259-264 (aka "CSR screwed up implementing *-MOD32") +(assert + (= (funcall + (compile + nil + '(lambda (a) + (declare (type (integer 177547470 226026978) a)) + (declare (optimize (speed 3) (space 0) (safety 0) (debug 0) + (compilation-speed 1))) + (logand a (* a 438810)))) + 215067723) + 13739018)) +