Handbook
Glossary
^shuffle-2-vectors-imm ( src1 src2 shuffle rep -- dst )
Vocabulary
compiler
.
cfg
.
intrinsics
.
simd
Inputs
src1
an
object
src2
an
object
shuffle
an
object
rep
an
object
Outputs
dst
an
object
Definition
USING:
compiler.cfg.intrinsics.simd.backend
cpu.architecture
kernel
locals.backend
math
sequences
;
IN:
compiler.cfg.intrinsics.simd
:
^shuffle-2-vectors-imm
( src1 src2 shuffle rep -- dst )
[
rep-length
0
pad-tail
]
keep
{
{
double-2-rep
[
4
load-locals
-1
get-local
first2
[
4
mod
]
bi@
2
load-locals
-1
get-local
0
get-local
[
2
<
]
both?
-5
get-local
-3
get-local
-2
get-local
[
3
load-locals
-2
get-local
-1
get-local
0
get-local
^shuffle-vector-imm
3
drop-locals
]
curry
curry
curry
-1
get-local
0
get-local
-4
get-local
-3
get-local
-2
get-local
-5
get-local
[
6
load-locals
-5
get-local
-4
get-local
[
2
>=
]
both?
-3
get-local
-2
get-local
-1
get-local
[
3
load-locals
-2
get-local
-1
get-local
~quotation~
map
0
get-local
^shuffle-vector-imm
3
drop-locals
]
curry
curry
curry
-5
get-local
0
get-local
-3
get-local
-4
get-local
-1
get-local
[
5
load-locals
-4
get-local
2
<
-3
get-local
-2
get-local
-4
get-local
-1
get-local
0
get-local
~quotation~
curry
curry
curry
curry
curry
-2
get-local
-3
get-local
-4
get-local
-1
get-local
0
get-local
~quotation~
curry
curry
curry
curry
curry
if
5
drop-locals
]
curry
curry
curry
curry
curry
if
6
drop-locals
]
curry
curry
curry
curry
curry
curry
if
6
drop-locals
]
}
}
vvl-vector-op
;