From 4261d8bb8d87ad93df8370b7107e2b084d55029c Mon Sep 17 00:00:00 2001 From: Joe Groff Date: Sat, 12 Nov 2011 17:00:39 -0800 Subject: [PATCH] compiler: tighten (simd-select) output class Ints and smaller (or shorts and smaller on 32-bit) can be assumed to be fixnums. Fixes #393 --- basis/compiler/tree/propagation/simd/simd.factor | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/basis/compiler/tree/propagation/simd/simd.factor b/basis/compiler/tree/propagation/simd/simd.factor index 4f1c1d3bb3..9300ec046d 100644 --- a/basis/compiler/tree/propagation/simd/simd.factor +++ b/basis/compiler/tree/propagation/simd/simd.factor @@ -84,7 +84,11 @@ vector>vector-intrinsics [ { byte-array } "default-output-classes" set-word-prop literal>> scalar-rep-of { { float-rep [ float ] } { double-rep [ float ] } - [ drop integer ] + { longlong-scalar-rep [ integer ] } + { ulonglong-scalar-rep [ integer ] } + { int-scalar-rep [ cell 8 = [ fixnum ] [ integer ] if ] } + { uint-scalar-rep [ cell 8 = [ fixnum ] [ integer ] if ] } + [ drop fixnum ] } case ] [ drop real ] if ;