Index: /trunk/ccl/compiler/optimizers.lisp
===================================================================
--- /trunk/ccl/compiler/optimizers.lisp	(revision 5216)
+++ /trunk/ccl/compiler/optimizers.lisp	(revision 5217)
@@ -816,4 +816,28 @@
                ((eq type 'symbol)
                 `(the symbol (require-symbol ,arg)))
+               ((type= (specifier-type type)
+                       (specifier-type '(signed-byte 8)))
+                `(the (signed-byte 8) (require-s8 ,arg)))               
+               ((type= (specifier-type type)
+                       (specifier-type '(unsigned-byte 8)))
+                `(the (unsigned-byte 8) (require-u8 ,arg)))
+               ((type= (specifier-type type)
+                       (specifier-type '(signed-byte 16)))
+                `(the (signed-byte 16) (require-s16 ,arg)))
+               ((type= (specifier-type type)
+                       (specifier-type '(unsigned-byte 16)))
+                `(the (unsigned-byte 16) (require-u16 ,arg)))               
+               ((type= (specifier-type type)
+                       (specifier-type '(signed-byte 32)))
+                `(the (signed-byte 32) (require-s32 ,arg)))
+               ((type= (specifier-type type)
+                       (specifier-type '(unsigned-byte 32)))
+                `(the (unsigned-byte 32) (require-u32 ,arg)))
+               ((type= (specifier-type type)
+                       (specifier-type '(signed-byte 64)))
+                `(the (signed-byte 64) (require-s64 ,arg)))
+               ((type= (specifier-type type)
+                       (specifier-type '(unsigned-byte 64)))
+                `(the (unsigned-byte 64) (require-u64 ,arg)))               
                ((and (consp type)(memq (car type) '(signed-byte unsigned-byte integer)))
                 `(the ,type (%require-type-builtin ,arg 
