Handbook
Glossary
(vmatmul2x8+) ( a b accumulator -- result )
Vocabulary
math
.
vectors
.
simd
.
extensions
Inputs
a
an
object
b
an
object
accumulator
an
object
Outputs
result
an
object
Definition
USING:
system
;
IN:
math.vectors.simd.extensions
HOOK:
(vmatmul2x8+)
cpu
( a b accumulator -- result )
Methods
USING:
cpu.arm.64.features
generic
kernel
math.vectors.simd
math.vectors.simd.extensions
math.vectors.simd.extensions.arm.64.private
system
;
M::
arm.64
(vmatmul2x8+)
( a b c -- result )
"i8mm"
arm64-feature?
[
a
uchar-16?
b
uchar-16?
and
[
a b c
umatmul
]
[
a
char-16?
b
char-16?
and
[
a b c
smatmul
]
[
a
uchar-16?
[
a b c
usmatmul
]
[
a b c
M\
arm.64
(vmatmul2x8+)
(call-next-method)
]
if
]
if
]
if
]
[
a b c
M\
arm.64
(vmatmul2x8+)
(call-next-method)
]
if
;
USING:
kernel
math
math.vectors.simd.extensions
sequences
;
M::
object
(vmatmul2x8+)
( a b accumulator -- result )
4
<iota>
[|
lane |
lane accumulator
nth
8
<iota>
swap
[|
value j |
lane 2
/i
8
*
j
+
a
nth
lane 2
mod
8
*
j
+
b
nth
*
value
+
]
reduce
]
accumulator
map-as
;