compiler.cfg.intrinsics.simd.backend: eliminate duplicated work done on successful insn sequence
parent
ee4913702f
commit
f82a368602
|
@ -66,24 +66,27 @@ M: ##horizontal-shr-vector-imm insn-available? rep>> %horizontal-shr-vector-imm-
|
||||||
|
|
||||||
GENERIC# >vector-op-cond 2 ( quot #pick #dup -- quotpair )
|
GENERIC# >vector-op-cond 2 ( quot #pick #dup -- quotpair )
|
||||||
M:: callable >vector-op-cond ( quot #pick #dup -- quotpair )
|
M:: callable >vector-op-cond ( quot #pick #dup -- quotpair )
|
||||||
#dup quot '[ _ ndup [ @ drop ] { } make [ insn-available? ] all? ] quot 2array ;
|
#dup quot '[ 2drop _ ndup [ @ ] { } make dup [ insn-available? ] all? ]
|
||||||
|
#dup '[ % _ nnip ]
|
||||||
|
2array ;
|
||||||
|
|
||||||
M:: pair >vector-op-cond ( pair #pick #dup -- quotpair )
|
M:: pair >vector-op-cond ( pair #pick #dup -- quotpair )
|
||||||
pair first2 :> ( class quot )
|
pair first2 :> ( class quot )
|
||||||
#pick class #dup quot
|
#pick class #dup quot
|
||||||
'[ _ npick _ instance? [ _ ndup [ @ drop ] { } make [ insn-available? ] all? ] [ f ] if ]
|
'[ 2drop _ npick _ instance? [ _ ndup [ @ ] { } make dup [ insn-available? ] all? ] [ f f f ] if ]
|
||||||
quot 2array ;
|
#dup '[ % _ nnip ]
|
||||||
|
2array ;
|
||||||
|
|
||||||
MACRO: v-vector-op ( trials -- )
|
MACRO: v-vector-op ( trials -- )
|
||||||
[ 1 2 >vector-op-cond ] map '[ _ cond ] ;
|
[ 1 2 >vector-op-cond ] map '[ f f _ cond ] ;
|
||||||
MACRO: vl-vector-op ( trials -- )
|
MACRO: vl-vector-op ( trials -- )
|
||||||
[ 1 3 >vector-op-cond ] map '[ _ cond ] ;
|
[ 1 3 >vector-op-cond ] map '[ f f _ cond ] ;
|
||||||
MACRO: vv-vector-op ( trials -- )
|
MACRO: vv-vector-op ( trials -- )
|
||||||
[ 1 3 >vector-op-cond ] map '[ _ cond ] ;
|
[ 1 3 >vector-op-cond ] map '[ f f _ cond ] ;
|
||||||
MACRO: vv-cc-vector-op ( trials -- )
|
MACRO: vv-cc-vector-op ( trials -- )
|
||||||
[ 2 4 >vector-op-cond ] map '[ _ cond ] ;
|
[ 2 4 >vector-op-cond ] map '[ f f _ cond ] ;
|
||||||
MACRO: vvvv-vector-op ( trials -- )
|
MACRO: vvvv-vector-op ( trials -- )
|
||||||
[ 1 5 >vector-op-cond ] map '[ _ cond ] ;
|
[ 1 5 >vector-op-cond ] map '[ f f _ cond ] ;
|
||||||
|
|
||||||
! Intrinsic code emission
|
! Intrinsic code emission
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue