! SIMD primitive operations
-M: A v+ \ A [ (simd-v+) ] [ call-next-method ] vv->v-op ; inline
-M: A v- \ A [ (simd-v-) ] [ call-next-method ] vv->v-op ; inline
-M: A vneg \ A [ (simd-vneg) ] [ call-next-method ] v->v-op ; inline
-M: A v+- \ A [ (simd-v+-) ] [ call-next-method ] vv->v-op ; inline
-M: A vs+ \ A [ (simd-vs+) ] [ call-next-method ] vv->v-op ; inline
-M: A vs- \ A [ (simd-vs-) ] [ call-next-method ] vv->v-op ; inline
-M: A vs* \ A [ (simd-vs*) ] [ call-next-method ] vv->v-op ; inline
-M: A v* \ A [ (simd-v*) ] [ call-next-method ] vv->v-op ; inline
-M: A v/ \ A [ (simd-v/) ] [ call-next-method ] vv->v-op ; inline
-M: A vmin \ A [ (simd-vmin) ] [ call-next-method ] vv->v-op ; inline
-M: A vmax \ A [ (simd-vmax) ] [ call-next-method ] vv->v-op ; inline
-M: A v. \ A [ (simd-v.) ] [ call-next-method ] vv->n-op ; inline
-M: A vsqrt \ A [ (simd-vsqrt) ] [ call-next-method ] v->v-op ; inline
-M: A sum \ A [ (simd-sum) ] [ call-next-method ] v->n-op ; inline
-M: A vabs \ A [ (simd-vabs) ] [ call-next-method ] v->v-op ; inline
-M: A vbitand \ A [ (simd-vbitand) ] [ call-next-method ] vv->v-op ; inline
-M: A vbitandn \ A [ (simd-vbitandn) ] [ call-next-method ] vv->v-op ; inline
-M: A vbitor \ A [ (simd-vbitor) ] [ call-next-method ] vv->v-op ; inline
-M: A vbitxor \ A [ (simd-vbitxor) ] [ call-next-method ] vv->v-op ; inline
-M: A vbitnot \ A [ (simd-vbitnot) ] [ call-next-method ] v->v-op ; inline
-M: A vand \ A [ (simd-vand) ] [ call-next-method ] vv->v-op ; inline
-M: A vandn \ A [ (simd-vandn) ] [ call-next-method ] vv->v-op ; inline
-M: A vor \ A [ (simd-vor) ] [ call-next-method ] vv->v-op ; inline
-M: A vxor \ A [ (simd-vxor) ] [ call-next-method ] vv->v-op ; inline
-M: A vnot \ A [ (simd-vnot) ] [ call-next-method ] v->v-op ; inline
-M: A vlshift \ A [ (simd-vlshift) ] [ call-next-method ] vn->v-op ; inline
-M: A vrshift \ A [ (simd-vrshift) ] [ call-next-method ] vn->v-op ; inline
-M: A hlshift \ A [ (simd-hlshift) ] [ call-next-method ] vn->v-op ; inline
-M: A hrshift \ A [ (simd-hrshift) ] [ call-next-method ] vn->v-op ; inline
-M: A vshuffle-elements \ A [ (simd-vshuffle-elements) ] [ call-next-method ] vn->v-op ; inline
-M: A vshuffle-bytes \ A [ (simd-vshuffle-bytes) ] [ call-next-method ] vv->v-op ; inline
-M: A (vmerge-head) \ A [ (simd-vmerge-head) ] [ call-next-method ] vv->v-op ; inline
-M: A (vmerge-tail) \ A [ (simd-vmerge-tail) ] [ call-next-method ] vv->v-op ; inline
-M: A v<= \ A [ (simd-v<=) ] [ call-next-method ] vv->v-op ; inline
-M: A v< \ A [ (simd-v<) ] [ call-next-method ] vv->v-op ; inline
-M: A v= \ A [ (simd-v=) ] [ call-next-method ] vv->v-op ; inline
-M: A v> \ A [ (simd-v>) ] [ call-next-method ] vv->v-op ; inline
-M: A v>= \ A [ (simd-v>=) ] [ call-next-method ] vv->v-op ; inline
-M: A vunordered? \ A [ (simd-vunordered?) ] [ call-next-method ] vv->v-op ; inline
-M: A vany? \ A [ (simd-vany?) ] [ call-next-method ] v->n-op ; inline
-M: A vall? \ A [ (simd-vall?) ] [ call-next-method ] v->n-op ; inline
-M: A vnone? \ A [ (simd-vnone?) ] [ call-next-method ] v->n-op ; inline
+M: A v+ \ A-rep [ (simd-v+) ] [ call-next-method ] vv->v-op ; inline
+M: A v- \ A-rep [ (simd-v-) ] [ call-next-method ] vv->v-op ; inline
+M: A vneg \ A-rep [ (simd-vneg) ] [ call-next-method ] v->v-op ; inline
+M: A v+- \ A-rep [ (simd-v+-) ] [ call-next-method ] vv->v-op ; inline
+M: A vs+ \ A-rep [ (simd-vs+) ] [ call-next-method ] vv->v-op ; inline
+M: A vs- \ A-rep [ (simd-vs-) ] [ call-next-method ] vv->v-op ; inline
+M: A vs* \ A-rep [ (simd-vs*) ] [ call-next-method ] vv->v-op ; inline
+M: A v* \ A-rep [ (simd-v*) ] [ call-next-method ] vv->v-op ; inline
+M: A v/ \ A-rep [ (simd-v/) ] [ call-next-method ] vv->v-op ; inline
+M: A vmin \ A-rep [ (simd-vmin) ] [ call-next-method ] vv->v-op ; inline
+M: A vmax \ A-rep [ (simd-vmax) ] [ call-next-method ] vv->v-op ; inline
+M: A v. \ A-rep [ (simd-v.) ] [ call-next-method ] vv->n-op ; inline
+M: A vsqrt \ A-rep [ (simd-vsqrt) ] [ call-next-method ] v->v-op ; inline
+M: A sum \ A-rep [ (simd-sum) ] [ call-next-method ] v->n-op ; inline
+M: A vabs \ A-rep [ (simd-vabs) ] [ call-next-method ] v->v-op ; inline
+M: A vbitand \ A-rep [ (simd-vbitand) ] [ call-next-method ] vv->v-op ; inline
+M: A vbitandn \ A-rep [ (simd-vbitandn) ] [ call-next-method ] vv->v-op ; inline
+M: A vbitor \ A-rep [ (simd-vbitor) ] [ call-next-method ] vv->v-op ; inline
+M: A vbitxor \ A-rep [ (simd-vbitxor) ] [ call-next-method ] vv->v-op ; inline
+M: A vbitnot \ A-rep [ (simd-vbitnot) ] [ call-next-method ] v->v-op ; inline
+M: A vand \ A-rep [ (simd-vand) ] [ call-next-method ] vv->v-op ; inline
+M: A vandn \ A-rep [ (simd-vandn) ] [ call-next-method ] vv->v-op ; inline
+M: A vor \ A-rep [ (simd-vor) ] [ call-next-method ] vv->v-op ; inline
+M: A vxor \ A-rep [ (simd-vxor) ] [ call-next-method ] vv->v-op ; inline
+M: A vnot \ A-rep [ (simd-vnot) ] [ call-next-method ] v->v-op ; inline
+M: A vlshift \ A-rep [ (simd-vlshift) ] [ call-next-method ] vn->v-op ; inline
+M: A vrshift \ A-rep [ (simd-vrshift) ] [ call-next-method ] vn->v-op ; inline
+M: A hlshift \ A-rep [ (simd-hlshift) ] [ call-next-method ] vn->v-op ; inline
+M: A hrshift \ A-rep [ (simd-hrshift) ] [ call-next-method ] vn->v-op ; inline
+M: A vshuffle-elements \ A-rep [ (simd-vshuffle-elements) ] [ call-next-method ] vn->v-op ; inline
+M: A vshuffle-bytes \ A-rep [ (simd-vshuffle-bytes) ] [ call-next-method ] vv->v-op ; inline
+M: A (vmerge-head) \ A-rep [ (simd-vmerge-head) ] [ call-next-method ] vv->v-op ; inline
+M: A (vmerge-tail) \ A-rep [ (simd-vmerge-tail) ] [ call-next-method ] vv->v-op ; inline
+M: A v<= \ A-rep [ (simd-v<=) ] [ call-next-method ] vv->v-op ; inline
+M: A v< \ A-rep [ (simd-v<) ] [ call-next-method ] vv->v-op ; inline
+M: A v= \ A-rep [ (simd-v=) ] [ call-next-method ] vv->v-op ; inline
+M: A v> \ A-rep [ (simd-v>) ] [ call-next-method ] vv->v-op ; inline
+M: A v>= \ A-rep [ (simd-v>=) ] [ call-next-method ] vv->v-op ; inline
+M: A vunordered? \ A-rep [ (simd-vunordered?) ] [ call-next-method ] vv->v-op ; inline
+M: A vany? \ A-rep [ (simd-vany?) ] [ call-next-method ] v->n-op ; inline
+M: A vall? \ A-rep [ (simd-vall?) ] [ call-next-method ] v->n-op ; inline
+M: A vnone? \ A-rep [ (simd-vnone?) ] [ call-next-method ] v->n-op ; inline
! SIMD high-level specializations