1(declaim (special *s1* *s2* *s3* *s4* *s5* *s6* *s7* *s8* *s9*))
2
3(let ((vars '(a b c d e f g h))
4      (var-types
5       '((integer -10156883949 -308945276) (integer -10238129190247 4942)
6         (integer -13 430071204) (integer 636299151392 1316378644139)
7         (integer -4178997 150763) (integer -106672607540 118536683934)
8         (integer 2 1648136180958) (integer -234451072 182015592)) )
9      (vals-list
10       '((-6471154533 -252139422192 298074672 864413032888 -3027364
11          -35189361672 1119416506309 69109593)))
12      (form
13       '(+
14         (+
15          (+
16           (if
17            (if (and (= 103360 3005)
18                     (eql g e))
19                (or (and (/= h 16959)
20                         (<= a 364235))
21                    (ldb-test (byte 22 17) -6421))
22		(or
23		 (logbitp 22 h)
24		 (<= -39441685)))
25	      (* (let* ((*s2*
26                         (ash
27                          (let ((*s8* (if (<= f d) (coerce b 'integer) h)))
28                            -30686)
29                          79)))
30                   c))
31              (lognor
32               (labels ((%f2 (f2-1)
33                          (labels ((%f2 (f2-1 f2-2)
34                                     (declare (ignore f2-1 f2-2))
35                                     (- -280859370 440819981)))
36                            (%f2 g f2-1))))
37                 (lognor
38                  (labels ((%f16 (f16-1 f16-2) (declare (ignore f16-1 f16-2))
39                                 (%f2 1504872262)))
40                    (- (if (equal (%f16 371066235 -188) f)
41                           (- f)
42                           g)))
43                  (let* ((*s1* 66)) e)))
44               (lcm (dotimes (iv3 2 -2876)) 3072)))
45           (+
46            (+
47             (case d
48               ((1882) (dpb e (byte 16 24) a))
49               ((1721) c)
50               ((173) d)
51               ((1944)
52                (logior
53                 0
54                 (let ((v8
55                        (flet ((%f5 ()
56                                 (logorc1 f (mask-field (byte 3 16) e))))
57                          (min
58                           (%f5)
59                           (gcd
60                            (dotimes
61                                (iv1 1
62                                 (if (ldb-test (byte 33 17) a)
63                                     (lcm (logxor -22 d) f a)
64                                     -1))))))))
65                   (declare (ignore v8))
66                   -1746)))
67               (t g))
68             (block b3
69               (logior
70                -1154444
71                (if (eql e d)
72                    g
73                    (flet ((%f17 (f17-1 f17-2) (declare (ignore f17-1 f17-2))
74                                 -309530764))
75                      (if
76		       (and (> -574942  -63058285)
77			    (typep
78			     (multiple-value-prog1
79                                 (logand
80                                  (logcount -92)
81                                  (truncate 16256 (max 77 a))
82                                  (case e
83                                    ((3) 16)
84                                    ((-15) 0)
85                                    ((-6) e)
86                                    ((-16) 1)
87                                    ((-14) (return-from b3 -180))
88                                    ((-1) 12)
89                                    ((-7) 100)
90                                    (t b))))
91			     '(integer 62572038))
92			    (< (+ (ldb (byte 32 24) d) c) a))
93		       (return-from b3 -2858)
94                       (%f17 30967 -403468604)))))))
95            (if (not
96                 (if (logbitp 10 478)
97                     (= -36 c)
98                     (typep
99                      (prog1 11452525 (unwind-protect d))
100                      '(integer -1815287 1107737))))
101                (if (> (logxor c (mask-field (byte 29 1) (floor b)))
102                       2)
103                    (logeqv 1062524 b)
104                    0)
105                (logorc1 h (if (> 1737453 f) d f)))
106            (truncate
107             -50347453
108             (min -24 (- (+ e -293586) 1187228)))
109            (dpb
110             (if (> 62325 5162518) c 5758514)
111             (byte 9 3)
112             (ldb (byte 2 5) 311)))
113           (ldb (byte 7 15)
114                (deposit-field e (byte 7 19)
115                               (dotimes (iv3 1 1024366)))))
116          (block b6
117            (if
118             (if
119              (logbitp 3
120                       (lognor
121                        (logand -39609 99668265
122                                (dpb -3121 (byte 24 13) 6))
123                        (logandc1
124                         (- -43 (+ -437))
125                         47)))
126              (not
127               (and
128                (if
129                 (logbitp 5 (gcd
130                             (let ((*s8* 267159)) b)
131                             1 (catch 'ct6 h) c))
132                 (logbitp 26 (max (lognor f (catch 'ct5
133                                              (logxor e 1552895971 -31267
134                                                      41816870)))))
135                 (ldb-test (byte 5 12)
136                           (dotimes (iv3 2 g)
137                             (let* ((v9 (gcd 37467
138                                             (ignore-errors b)
139                                             (ignore-errors e)
140                                             -382551)))
141                               (declare (ignore v9))))))
142                (< -2399
143                   (let ((*s3* (if (= a d) h  14)))
144                     (ash g 81)))))
145              (not
146               (ldb-test (byte 27 16)
147                         (flet ((%f18 ()
148                                  (deposit-field a (byte 29 2)
149                                                 (progv '(*s6* *s5* *s1*)
150                                                     (list 0 1131 -685394175)
151                                                   217))))
152                           (deposit-field (%f18) (byte 12 13) e)))))
153             (gcd
154              (case f
155                ((91) (if (equal -83 a) (return-from b6 g) 0))
156                (t
157                 (catch 'ct1
158                   (labels ((%f10 ()
159                              (return-from b6
160                                (if (not t) h (catch 'ct1 (- b c))))))
161                     (catch 'ct2
162			 (flet ((%f18 (f18-1)
163                                  (ignore-errors c)
164                                  (tagbody (go tag3) (%f10) tag3)
165                                  f18-1))
166			   (mask-field (byte 1 7) (%f18 -293))))))))
167              (if (and (or (eql g f)
168                           (return-from b6 (dotimes (iv4 3 -1491648))))
169                       (if (= a -36) t))
170                  (return-from b6 0)
171		  (if (> e 13)
172		      (return-from b6 0)
173                      0)))
174	     (block b4
175	       (labels ((%f17 (f17-1 f17-2 f17-3 &optional f17-4 f17-5)
176                          (declare (ignore f17-1 f17-2 f17-3 f17-4 f17-5))
177                          0))
178		 (%f17
179		  (if (= (%f17 8313 h b) -27267375)
180		      (max h
181			   (progn
182			     (%f17 244 45 b)
183			     (ldb (byte 28 18) d)))
184                      (logorc2
185                       (if (> b -32743995)
186                           b
187                           (if (<= h (%f17 h -223 -2849  468003267))
188                               (%f17 g a (%f17 f -21460141 e) 25)
189                               (truncate 119531 (min -32 1003261))))
190                       e))
191		  (dotimes
192		      (iv4 3
193                       (%f17 (labels ((%f11 ()
194                                        (if (= 0 1) (return-from b4 0) d))) 0)
195                             0 0))
196		    (catch 'ct6
197                      (restart-case
198                          (dotimes
199                              (iv2 3
200                               (%f17
201                                (dotimes (iv1 0 iv4)
202                                  (apply #'%f17 174 iv1 -62 -23980698 nil))
203                                1
204                                (%f17
205                                 (catch 'ct7 1783873)
206                                 (mask-field (byte 28 3)
207                                             (throw 'ct6
208                                               (%f17 -16 e 0
209                                                     (%f17 -377458758
210                                                           2273 g))))
211                                 g)))
212                            (case (dotimes (iv3 0 f) (%f17 h b iv2 0))
213			   ((-126253 -99432 -123213) 0)
214			   (t 1))))))
215		  0)))))))))
216  (let* ((fn (coerce `(lambda ,vars ,form) 'function)) e c
217         (cfn (compile nil fn)))
218    (fresh-line)
219    (finish-output)
220    ;; (disassemble cfn)
221    (dolist (vals vals-list)
222      (format t "~& ---- ~S ----~%EVAL: ~S~%COMPILE: ~S~%" vals
223              (setq e (apply fn vals))
224              (setq c (apply cfn vals)))
225      (assert (equal e c))
226      (finish-output))))
227