From 562ee66b79906a9efec5c17a61a7d52f67ba698a Mon Sep 17 00:00:00 2001
From: pfdietz <pfdietz@localhost>
Date: Mon, 22 Sep 2003 16:28:24 +0000
Subject: [PATCH] Initial checkin.  This file contains miscellaneous tests that
 exercise bugs that have come up in various implementations of CL.  Many of
 the tests were generated by the random tester (random-int-form.lsp), so they
 look rather odd.  I'm entering the tests here so they don't get lost.

---
 ansi-tests/misc.lsp | 672 ++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 672 insertions(+)
 create mode 100644 ansi-tests/misc.lsp

diff --git a/ansi-tests/misc.lsp b/ansi-tests/misc.lsp
new file mode 100644
index 00000000..dff3660c
--- /dev/null
+++ b/ansi-tests/misc.lsp
@@ -0,0 +1,672 @@
+;-*- Mode:     Lisp -*-
+;;;; Author:   Paul Dietz
+;;;; Created:  Sat Sep 20 09:45:15 2003
+;;;; Contains: Miscellaneous tests
+
+;;;
+;;; This file contains odds-and-ends, mostly tests that came up as
+;;; bug-stimulators in various implementations.
+;;;
+
+(in-package :cl-test)
+
+(deftest misc.1
+  (funcall
+   (COMPILE NIL '(LAMBDA (B)
+			 (DECLARE (TYPE (INTEGER 8 22337) B))
+			 (+ B 2607688420)))
+   100)
+  2607688520)
+
+(deftest misc.2
+  (funcall (compile nil
+		    '(lambda (b) (integer-length (dpb b (byte 4 28) -1005))))
+	   12800263)
+  32)
+
+(deftest misc.3
+  (funcall
+   (compile
+    nil
+    '(lambda (a b)
+       (declare (optimize (speed 3) (debug 1)))
+       (let ((v7
+	      (let ((v2 (block b5 (return-from b5 (if t b -4)))))
+		a)))
+	 -65667836)))
+   1 2)
+  -65667836)
+
+(deftest misc.4
+  (funcall
+   (compile
+    nil
+    '(lambda (a b c)
+	   (declare (type (integer -629491 -333) a)
+		    (type (integer -142 1) b)
+		    (type (integer 0 12604) c)
+		    (optimize (speed 3) (safety 1) (debug 1)))
+	   (let ((v6 (block b7 (return-from b7 (if (eql b 0) 1358159 a)))))
+		b)))
+   -1000 -17 6143)
+  -17)
+
+(deftest misc.5
+  (funcall
+   (compile nil
+	    '(lambda () (* 390 (- (signum (logeqv -8005440 -2310))
+				  -10604863)))))
+  4135896180)
+
+(deftest misc.6
+  (funcall
+   (compile nil
+	    '(lambda (a c)
+		     (declare (optimize (speed 3) (debug 1)))
+		     (flet ((%f14 () (if c a -486826646)))
+			   (let ((v7 (flet ((%f18 () (%f14))) a)))
+				(let ((v5 (%f14)))
+				     0)))))
+   10 20)
+  0)
+
+(deftest misc.7
+  (funcall (compile nil
+		    '(lambda (c) (declare (optimize (speed 3) (debug 1)))
+		       (flet ((%f18 () -36))
+			 (flet ((%f13 ()
+				      (let () (block b8 (return-from b8 c)))))
+			   (%f18)))))
+	   10)
+  -36)
+
+(deftest misc.8
+  (funcall
+   (compile
+    nil
+    '(lambda (a b)
+       (declare (optimize (speed 3) (debug 1)))
+       (let ((v3 (flet ((%f12 () (min b (block b2 (return-from b2 a)))))
+		       a)))
+	    (block b7
+		   (flet ((%f5 () (return-from b7 b)))
+			 (%f5))))))
+   10 20)
+  20)
+
+(deftest misc.9
+  (funcall
+   (compile
+    nil
+    '(lambda ()
+	     (declare (optimize (speed 3) (debug 1)))
+	     (block b6
+		    (flet ((%f3 ()
+				(ldb (byte 19 23)
+				     (block b1
+					    (let ()
+						 (- (if nil (return-from b6 89627)
+							1160)
+						    (return-from b1 22923)))))))
+			  1)))))
+  1)
+
+(deftest misc.10
+  (funcall
+   (compile
+    nil
+    '(lambda (c)
+	     (declare (optimize (speed 3) (debug 1))
+		      (type (integer -15417757 5816) c))
+	     (flet ((%f3 () (if nil -3143 c)))
+		   (block b5
+			  (let ((v7 (if (< 23613642 (%f3)) c -23097977)))
+			       (let ((v5
+				      (return-from b5
+						   (if (eql c v7)
+						       (let ((v6 (%f3))) 4650813)
+						       782))))
+				    -4362540))))))
+   -10000)
+  782)
+
+(deftest misc.11
+  (funcall
+   (compile
+    nil
+    '(lambda (a b c)
+	     (declare (optimize (speed 3) (debug 1)))
+	     (block b8
+		    (logxor
+		     (let ((v3 (return-from b8 120789657))) 3690)
+		     (block b2
+			    (flet ((%f9 ()
+					(flet ((%f10 () -1))
+					      c)))
+				  (flet ((%f3 () (let () (return-from b2 b))))
+					a)))))))
+   1 2 3)
+  120789657)
+
+(deftest misc.12
+  (funcall
+   (compile
+    nil
+    '(lambda (c)
+	     (declare (optimize (speed 3) (safety 1) (debug 1))
+		      (type (integer -171067 -5) c))
+	     (flet ((%f16 ()
+			  (flet ((%f12 () 439))
+				3358)))
+		   (flet ((%f14 () c))
+			 (if (%f14) -1 (%f14))))))
+   -100)
+  -1)
+
+(deftest misc.13
+  (funcall
+   (compile
+    nil
+    '(lambda (b c)
+	     (declare (optimize (speed 3) (safety 1) (debug 1))
+		      (type  (integer -1554410 36086789) b)
+		      (type (integer -15033876209 126774299) c)
+		      )
+	     (block b3
+		    (flet ((%f9 ()
+				(abs
+				 (flet ((%f5 ()
+					     (return-from b3 -2)))
+				       (if (if (<= 1 c) b (%f5)) -65 -47895812)))))
+			  (min
+			   (let ((v3 (let ((v8 (%f9))) b))) b)
+			   (if (= 1364001 (%f9))
+			       (logeqv (block b5 -2713) -247)
+			       -19))))))
+   0 0)
+  -2)
+
+(deftest misc.14
+  (funcall
+   (compile
+    nil
+    '(lambda (c)
+	     (declare (notinline logandc1))
+	     (block b6
+		    (flet ((%f17 () (return-from b6 c)))
+			  (logandc1 (%f17)
+				    (if 1
+					450967818
+					(let ((v1 (%f17))) -17)))))))
+   10)
+  10)
+
+(deftest misc.15
+  (funcall
+   (compile
+    nil
+    '(lambda (a b)
+	     (declare (optimize (speed 3) (safety 1) (debug 1)))
+	     (flet ((%f6 () a))
+		   (block b5
+			  (flet ((%f14 ()
+				       (min 17593 (block b1 (return-from b1 b)))))
+				(block b7 (if (%f6) (return-from b7 28182012)
+					      (return-from b5 0))))))))
+   3 5)
+  28182012)
+
+(deftest misc.16
+  (funcall
+   (compile
+    nil
+    '(lambda (a c)
+	     (flet ((%f14 ()
+			  (block b6
+				 (flet ((%f7 () (return-from b6 4)))
+				       (if 587793 (if (%f7) c -23086423) (%f7))))))
+		   (block b1
+			  (flet ((%f18 () a))
+				(logandc1 (return-from b1 -2781)
+					  (if (%f14) 58647578 -396746)))))))
+   1 2)
+  -2781)
+
+(deftest misc.17
+  (funcall
+   (compile
+    nil
+    '(lambda (a b c)
+	     (declare (optimize (speed 3) (safety 1) (debug 1))
+		      (type (integer 4 23363) b)
+		      (type (integer -32681 41648) c)
+		      )
+	     (flet ((%f18 ()
+			  (if nil c b)))
+		   (if (if (> -71810514 a) 102077 465393)
+		       (block b3 (if (%f18) (return-from b3 c) c))
+		       (%f18)))))
+   0 10 1000)
+  1000)
+
+(deftest misc.18
+  (funcall
+   (compile
+    nil
+    '(lambda (a b c)
+	     (declare (optimize (speed 3) (safety 1) (debug 1))
+		      (type (integer 7 58010860) a)
+		      (type (integer -3573280 -1) b)
+		      (type (integer -920848 -819) c)
+		      )
+	     (flet ((%f15 () (if (logbitp 5 a) a c)))
+		   (min (if (%f15) b -39) (if (> 0 -14756) b (%f15))))))
+   8 -1000 -10000)
+  -1000)
+
+(deftest misc.19
+  (funcall
+   (compile
+    nil
+    '(lambda (a b c)
+	     (declare (type (integer 54 3862515) a) (type (integer -961325 1539) b)
+		      (type (integer 6 31455) c) (ignorable a b c)
+		      (optimize (speed 3) (safety 1) (debug 1)))
+	     (lognor
+	      (flet ((%f13 () b)) (%f13))
+	      (flet ((%f1 () (return-from %f1 a)))
+		    (labels ((%f3 () (%f1)))
+			    -428)))))
+   100 0 200)
+  427)
+
+(deftest misc.20
+  (funcall
+   (compile
+    nil
+    '(lambda (a b c)
+	     (declare (type (integer -1 31880308) a)
+		      (type (integer -11374222037 5331202966) b)
+		      (type (integer -483 -1) c)
+		      (ignorable a b c)
+		      (optimize (speed 3) (safety 1) (debug 1)))
+	     (labels ((%f6 () a))
+		     (if (eql (let ((v9 (%f6))) -50072824) c)
+		      28146341
+		      (if (< 119937 21304962) 21304962 (%f6))))))
+   0 0 -1)
+  21304962)
+
+(deftest misc.21
+  (funcall
+   (compile
+    nil
+    '(lambda (a b c)
+	     (declare (type (integer 398 3955) a) (type (integer 233 464963) b)
+		      (type (integer -124477 16) c) (ignorable a b c)
+		      (optimize (speed 3) (safety 1) (debug 1)))
+	     (logior
+	      (flet ((%f18 ()
+			   -3584768))
+		    (%f18))
+	      (flet ((%f1 ()
+			  (return-from %f1 c)))
+		    (flet ((%f9 ()
+				(if (%f1) 24181 7)))
+			  56048)))))
+   400 300 0)
+  -3547152)
+
+(deftest misc.22
+  (funcall
+   (compile
+    nil
+    '(lambda (a b c)
+	     (declare (type (integer -126378 -103) a)
+		      (type (integer -1158604975 1) b)
+		      (type (integer 502 28036) c)
+		      (ignorable a b c)
+		      (optimize (speed 3) (safety 1) (debug 1)))
+	     (labels ((%f13 () c))
+		     (labels ((%f3 ()
+				   (logandc1
+				    c
+				    (block b6
+					   (max -73100
+						(if b (return-from b6 4935) (%f13)))))))
+			     (%f13)))))
+   -200 0 1000)
+  1000)
+
+(deftest misc.23
+  (funcall
+   (compile
+    nil
+    '(lambda (a b c)
+	     (declare (type (integer 1 18911480) a)
+		      (type (integer -1 48333) b)
+		      (type (integer -3881001767 -1937357) c)
+		      (ignorable a b c)
+		      (optimize (speed 3) (safety 1) (debug 1)))
+	     (labels ((%f10 () c))
+		     (block b7
+			    (logorc2
+			     (* (%f10)
+				(if (ldb-test (byte 27 1) -11337)
+				    (return-from b7 -2)
+				    246137101))
+			     (min (%f10) (return-from b7 -76114)))))))
+   1 0 -2000000)
+  -2)
+
+(deftest misc.24
+  (funcall
+   (compile
+    nil
+    '(lambda (a b c)
+	     (declare (type (integer -1477249397 -10697252) a)
+		      (type (integer -7 54591) b)
+		      (type (integer -102559556 15) c)
+		      (ignorable a b c)
+		      (optimize (speed 3) (safety 1) (debug 1)))
+	     (block b8
+		    (let ((v1 (return-from b8 a)))
+			 (1+
+			  (block b3
+				 (flet ((%f10 ()
+					      (min a (return-from b3 -1))))
+				       16776220)))))))
+   -11000000 0 0)
+  -11000000)
+
+(deftest misc.25
+  (funcall
+   (compile
+    nil
+    '(lambda (a b c)
+	     (declare (type (integer -944 111244) a)
+		      (type (integer 100512 3286178) b)
+		      (type (integer -2170236 -107) c)
+		      (ignorable a b c)
+		      (optimize (speed 3) (safety 1) (debug 1)))
+	     (labels ((%f17 () c))
+		     (labels ((%f16 () a))
+			     (if (if (logbitp 10 1029643) t 355)
+				 (if (equal (%f17) b) c a)
+				 (if (= 1325844 (%f16)) -50285 (1- (%f17))))))))
+   0 200000 -200)
+  0)
+
+(deftest misc.26
+  (funcall
+   (compile
+    nil
+    '(lambda (c)
+	     (declare (optimize speed))
+	     (block b5
+		    (if (logbitp 6 -97)
+			(let ((v2 (block b8 -42484))) c)
+			(flet ((%f10 () (return-from b5 -785143)))
+			      (let ((v3 (%f10)))
+				   (%f10)))))))
+   0)
+  -785143)
+
+(deftest misc.27
+  (funcall
+   (compile
+    nil
+    '(lambda (a b c)
+	     (declare (optimize (speed 3) (debug 1)))
+	     (labels ((%f14 () c))
+		     (logand (%f14)
+			     (labels ((%f15 () (logeqv (let ((v1 b)) c)
+						       (return-from %f15 -1740))))
+				     (labels ((%f8 () (%f15)))
+					     a))))))
+   5 2 3)
+  1)
+
+(deftest misc.28
+  (funcall
+   (compile
+    nil
+    '(lambda (a b c)
+	  (declare
+	   (type (integer 1948 12024) b)
+	   (type (integer -104357939 -252) c)
+	   (optimize (speed 3) (debug 1)))
+    (flet ((%f18 () c))
+      (logandc1 (if (eql b (%f18)) 0 a)
+                (if (ldb-test (byte 30 30) 1) (%f18) 1)
+		))))
+   0 2000 -300)
+  1)
+
+(deftest misc.29
+  (funcall
+   (compile
+    nil
+    '(lambda (a b c)
+	     (declare (type (integer 661607 10451683348) a)
+		      (type (integer -2 -2) b)
+		      (type (integer 5996117 18803237) c)
+		      (optimize (speed 3) (safety 1) (debug 1)))
+	     (labels ((%f16 () -29))
+	       (flet ((%f7 ()
+			   (labels ((%f1 () a))
+			     (let ()
+			       (block b3
+				 (if 37101207
+				     (return-from b3 -5322045)
+				   (let ((v5 b))
+				     146099574)))))))
+		 (if (%f16) c c)))))
+   1000000 -2 6000000)
+  6000000)
+
+(deftest misc.30
+  (funcall
+   (compile
+    nil
+    '(lambda (c)
+	     (declare (type (integer -253 -1) c)
+		      (optimize (speed 3) (safety 1) (debug 1)))
+	     (flet ((%f8 () c))
+		   (if (= (%f8) 481) (%f8) 1779465))))
+   -100)
+  1779465)
+
+(deftest misc.31
+  (funcall
+   (compile nil
+	    '(lambda () (let ((v9 (labels ((%f13 () nil)) nil)))
+			     (let ((v3 (logandc2 97 3)))
+				  (* v3 (- 37391897 (logand v3 -66))))))))
+  3589619040)
+
+(deftest misc.32
+  (funcall
+   (compile
+    nil
+    '(lambda (a d)
+	     (declare (type (integer -8507 26755) a)
+		      (type (integer -393314538 2084485) d)
+		      (optimize (speed 3) (safety 1) (debug 1)))
+	     (gcd
+	      (if (= 0 a) 10 (abs -1))
+	      (logxor -1
+		      (min -7580
+			   (max (logand a 31365125) d))))))
+   1 1)
+  1)
+
+(deftest misc.33
+  (funcall
+   (compile
+    nil
+    '(lambda (a b c d)
+	     (declare (type (integer 240 100434465) a)
+		      (optimize (speed 3) (safety 1) (debug 1)))
+	     (logxor
+	      (if (ldb-test (byte 27 4) d)
+		  -1
+		  (max 55546856 -431))
+	      (logorc2
+	       (if (>= 0 b)
+		   (if (> b c) (logandc2 c d) (if (> d 224002) 0 d))
+		   (signum (logior c b)))
+	       (logior a -1)))))
+   256 0 0 0)
+  55546856)
+
+(deftest misc.34
+  (funcall
+   (compile nil
+	    `(lambda (b c)
+		     (declare (type (integer -23228343 2) b)
+			      (type (integer -115581022 512244512) c)
+			      (optimize (speed 3) (safety 1) (debug 1)))
+		     (* (* (logorc2 3 (deposit-field 4667947 (byte 14 26) b))
+			   (deposit-field b (byte 25 27) -30424886))
+			(dpb b (byte 23 29) c)
+			)))
+   0 0)
+  0)
+
+(deftest misc.35
+  (funcall
+   (compile
+    nil
+    '(lambda (c)
+	     (declare (type (integer -5945502333 12668542) c)
+		      (optimize (speed 3)))
+	     (let ((v2 (* c 12)))
+		  (- (max (if (/= 109335113 v2) -26479 v2)
+			  (deposit-field 311
+					 (byte 14 28)
+					 (min (max 521326 c) -51)))))))
+   12668542)
+  26479)
+
+(deftest misc.36
+  (funcall
+   (compile nil
+	    '(lambda ()
+	       (declare (notinline + logand)
+			(optimize (speed 0)))
+	       (logand
+		(block b5
+		       (flet ((%f1 ()
+				   (return-from b5 -220)))
+			     (let ((v7 (%f1)))
+				  (+ 359749 35728422))))
+		-24076))))
+  -24284)
+
+(deftest misc.37
+  (funcall
+   (compile
+    nil
+    '(lambda (b)
+       (declare (notinline -) (optimize (speed 0)))
+       (- (block b4
+		 (flet ((%f4 ()
+			     (return-from b4 b)))
+		       (%f4))))))
+   10)
+  -10)
+
+(deftest misc.38
+  (funcall
+   (compile
+    nil
+    '(lambda (x) (declare (type (integer 0 100) x)
+			  (optimize (speed 3) (safety 1)))
+       (logandc1 x x)))
+   79)
+  0)
+
+(deftest misc.39
+  (funcall
+   (compile
+    nil
+    '(lambda (x) (declare (type (integer 0 100) x)
+			  (optimize (speed 3) (safety 1)))
+       (logandc2 x x)))
+   79)
+  0)
+
+(deftest misc.40
+  (funcall
+   (compile
+    nil
+    '(lambda (x) (declare (type (integer 0 100) x)
+			  (optimize (speed 3) (safety 1)))
+       (logorc1 x x)))
+   79)
+  -1)
+
+(deftest misc.41
+  (funcall
+   (compile
+    nil
+    '(lambda (x) (declare (type (integer 0 100) x)
+			  (optimize (speed 3) (safety 1)))
+       (logorc2 x x)))
+   79)
+  -1)
+
+(deftest misc.42
+  (funcall
+   (compile
+    nil
+    '(lambda (x)
+       (declare (type -100 100) x)
+       (ldb (byte 1 32) x)))
+   -1)
+  1)
+
+(deftest misc.43
+  (funcall (compile nil
+	'(lambda () (flet ((%f2 () 288213285))
+		      (+ (%f2) (* 13 (%f2)))))))
+  4034985990)
+  
+
+(deftest misc.44
+  (funcall
+   (compile
+    nil
+    '(lambda (a)
+	     (declare (type (integer -917858 964754309) a)
+		      (optimize (speed 3)))
+	     (* 25 (min (max a 171625820) 171626138))))
+   861929141)
+  4290653450)
+
+(deftest misc.45
+  (funcall
+   (compile
+    nil
+    '(lambda (b)
+	     (declare (type (integer 21 9673) b)
+		      (optimize (speed 3)))
+	     (* (integer-length -198435631) (+ b 137206182))))
+   6027)
+  3841941852)
+
+(deftest misc.46
+  (funcall
+   (compile
+    nil
+    '(LAMBDA (B C)
+	     (DECLARE (TYPE (INTEGER 0 1) B) (OPTIMIZE (SPEED 3)))
+	     (FLET ((%F2 () (LOGNOR (BLOCK B5 138) C)))
+		   (IF (NOT (OR (= -67399 B) B))
+		       (DEPOSIT-FIELD (%F2) (BYTE 11 8) -3)
+		       C))))
+   0 0)
+  0)
+
+    
\ No newline at end of file
-- 
GitLab