]> gitweb.factorcode.org Git - factor.git/commitdiff
fix type propagation information put on non-SIMD specializations of vany?, vall?...
authorJoe Groff <arcata@gmail.com>
Sat, 17 Oct 2009 16:21:08 +0000 (11:21 -0500)
committerJoe Groff <arcata@gmail.com>
Sat, 17 Oct 2009 16:21:08 +0000 (11:21 -0500)
basis/math/vectors/simd/functor/functor.factor
basis/math/vectors/specialization/specialization.factor

index 514c2f62aa2b94f0c5523f1d0bee5229a3fbd55e..fdb742a7217130544df55d0b7b5528fe2156520f 100644 (file)
@@ -283,8 +283,10 @@ simd new
         { { +vector+ +scalar+ -> +vector+ } A-vn->v-op }
         { { +vector+ +literal+ -> +vector+ } A-vn->v-op }
         { { +vector+ +vector+ -> +scalar+ } A-vv->n-op }
+        { { +vector+ +vector+ -> +boolean+ } A-vv->n-op }
         { { +vector+ -> +vector+ } A-v->v-op }
         { { +vector+ -> +scalar+ } A-v->n-op }
+        { { +vector+ -> +boolean+ } A-v->n-op }
         { { +vector+ -> +nonnegative+ } A-v->n-op }
     } >>schema-wrappers
 (define-simd-128)
index e51d8c4553e88c2ff0dc0be1d6589e9fde33a10b..62ebecff368e6c70b9abbae2c038386030cef11f 100644 (file)
@@ -7,13 +7,14 @@ namespaces assocs fry splitting classes.algebra generalizations
 locals compiler.tree.propagation.info ;
 IN: math.vectors.specialization
 
-SYMBOLS: -> +vector+ +scalar+ +nonnegative+ +literal+ ;
+SYMBOLS: -> +vector+ +scalar+ +boolean+ +nonnegative+ +literal+ ;
 
 : signature-for-schema ( array-type elt-type schema -- signature )
     [
         {
             { +vector+ [ drop ] }
             { +scalar+ [ nip ] }
+            { +boolean+ [ 2drop boolean ] }
             { +nonnegative+ [ nip ] }
             { +literal+ [ 2drop f ] }
         } case
@@ -32,6 +33,7 @@ SYMBOLS: -> +vector+ +scalar+ +nonnegative+ +literal+ ;
         {
             { +vector+ [ drop <class-info> ] }
             { +scalar+ [ nip <class-info> ] }
+            { +boolean+ [ 2drop boolean <class-info> ] }
             {
                 +nonnegative+
                 [
@@ -115,9 +117,9 @@ H{
     { v> { +vector+ +vector+ -> +vector+ } }
     { v>= { +vector+ +vector+ -> +vector+ } }
     { vunordered? { +vector+ +vector+ -> +vector+ } }
-    { vany? { +vector+ -> +scalar+ } }
-    { vall? { +vector+ -> +scalar+ } }
-    { vnone? { +vector+ -> +scalar+ } }
+    { vany?  { +vector+ -> +boolean+ } }
+    { vall?  { +vector+ -> +boolean+ } }
+    { vnone? { +vector+ -> +boolean+ } }
 }
 
 PREDICATE: vector-word < word vector-words key? ;