+ (defknown simd-pack-p (t) boolean (foldable movable flushable))
+ (defknown %simd-pack-tag (simd-pack) fixnum (movable flushable))
+ (defknown %make-simd-pack (fixnum (unsigned-byte 64) (unsigned-byte 64))
+ simd-pack
+ (flushable movable foldable))
+ (defknown %make-simd-pack-double (double-float double-float)
+ (simd-pack double-float)
+ (flushable movable foldable))
+ (defknown %make-simd-pack-single (single-float single-float
+ single-float single-float)
+ (simd-pack single-float)
+ (flushable movable foldable))
+ (defknown %make-simd-pack-ub32 ((unsigned-byte 32) (unsigned-byte 32)
+ (unsigned-byte 32) (unsigned-byte 32))
+ (simd-pack integer)
+ (flushable movable foldable))
+ (defknown %make-simd-pack-ub64 ((unsigned-byte 64) (unsigned-byte 64))
+ (simd-pack integer)
+ (flushable movable foldable))
+ (defknown (%simd-pack-low %simd-pack-high) (simd-pack)
+ (unsigned-byte 64)
+ (flushable movable foldable))
+ (defknown %simd-pack-ub32s (simd-pack)
+ (values (unsigned-byte 32) (unsigned-byte 32)
+ (unsigned-byte 32) (unsigned-byte 32))
+ (flushable movable foldable))
+ (defknown %simd-pack-ub64s (simd-pack)
+ (values (unsigned-byte 64) (unsigned-byte 64))
+ (flushable movable foldable))
+ (defknown %simd-pack-singles (simd-pack)
+ (values single-float single-float single-float single-float)
+ (flushable movable foldable))
+ (defknown %simd-pack-doubles (simd-pack)
+ (values double-float double-float)
+ (flushable movable foldable)))
+
+;;;; threading