]> gitweb.factorcode.org Git - factor.git/commitdiff
compiler: tighten (simd-select) output class
authorJoe Groff <arcata@gmail.com>
Sun, 13 Nov 2011 01:00:39 +0000 (17:00 -0800)
committerJoe Groff <arcata@gmail.com>
Mon, 14 Nov 2011 00:10:23 +0000 (16:10 -0800)
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

index 4f1c1d3bb3c89e25269fee5ad93285a0713110c7..9300ec046d02cd901b8a67aff4357d6a2bc10c45 100644 (file)
@@ -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
     <class-info> ;