]> gitweb.factorcode.org Git - factor.git/blobdiff - basis/compiler/cfg/value-numbering/simd/simd.factor
factor: trim using lists
[factor.git] / basis / compiler / cfg / value-numbering / simd / simd.factor
index 4c8df86998870bc5cec782e11cc240c8f6e4f068..2502e03cfab4a408a650634b150887c05bffaace 100644 (file)
@@ -5,15 +5,14 @@ combinators.short-circuit compiler.cfg.instructions
 compiler.cfg.utilities compiler.cfg.value-numbering.graph
 compiler.cfg.value-numbering.math
 compiler.cfg.value-numbering.rewrite cpu.architecture
-generalizations grouping io.binary kernel locals make math
-sequences ;
+endian generalizations grouping kernel make math sequences ;
 IN: compiler.cfg.value-numbering.simd
 
 ! Some lame constant folding for SIMD intrinsics. Eventually this
 ! should be redone completely.
 
 : useless-shuffle-vector-imm? ( insn -- ? )
-    [ shuffle>> ] [ rep>> rep-length iota ] bi sequence= ;
+    [ shuffle>> ] [ rep>> rep-length <iota> ] bi sequence= ;
 
 : compose-shuffle-vector-imm ( outer inner -- insn' )
     2dup [ rep>> ] bi@ eq? [
@@ -85,8 +84,8 @@ M: ##gather-int-vector-2 rewrite rewrite-gather-vector-2 ;
 : rewrite-gather-vector-4 ( insn -- insn/f )
     dup { [ src1>> ] [ src2>> ] [ src3>> ] [ src4>> ] } cleave [ vreg>insn ] 4 napply
     {
-        { [ 4 ndup [ literal-insn? ] 4 napply and and and ] [ fold-gather-vector-4 ] }
-        [ 5 ndrop f ]
+        { [ 4dup [ literal-insn? ] 4 napply and and and ] [ fold-gather-vector-4 ] }
+        [ 5drop f ]
     } cond ;
 
 M: ##gather-vector-4 rewrite rewrite-gather-vector-4 ;
@@ -125,7 +124,7 @@ M: ##not-vector vector-not-src
 M: ##xor-vector vector-not-src
     dup src1>> vreg>insn ##fill-vector? [ src2>> ] [ src1>> ] if ;
 
-M: ##and-vector rewrite 
+M: ##and-vector rewrite
     {
         { [ dup src1>> vreg>insn vector-not? ] [
             {