>>20
(declare (type (array float (*)) array)) および (the (aref array x))
を入れてやってみましたが変わらずでした。

まさか、fixnum を越えるような値の場合は必ず一旦変換するのかなあ…