diff --git a/basis/math/vectors/simd/functor/functor.factor b/basis/math/vectors/simd/functor/functor.factor index 514c2f62aa..fdb742a721 100644 --- a/basis/math/vectors/simd/functor/functor.factor +++ b/basis/math/vectors/simd/functor/functor.factor @@ -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) diff --git a/basis/math/vectors/specialization/specialization.factor b/basis/math/vectors/specialization/specialization.factor index e51d8c4553..62ebecff36 100644 --- a/basis/math/vectors/specialization/specialization.factor +++ b/basis/math/vectors/specialization/specialization.factor @@ -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 ] } { +scalar+ [ nip ] } + { +boolean+ [ 2drop boolean ] } { +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? ;