compiler.cfg.intrinsics.simd: use ^^select-vector for simd constant nth when available
parent
645164188d
commit
67ea40ade3
|
@ -21,6 +21,7 @@ M: ##gather-vector-2 insn-available? rep>> %gather-vector-2-reps member? ;
|
|||
M: ##gather-vector-4 insn-available? rep>> %gather-vector-4-reps member? ;
|
||||
M: ##gather-int-vector-2 insn-available? rep>> %gather-int-vector-2-reps member? ;
|
||||
M: ##gather-int-vector-4 insn-available? rep>> %gather-int-vector-4-reps member? ;
|
||||
M: ##select-vector insn-available? rep>> %select-vector-reps member? ;
|
||||
M: ##store-memory-imm insn-available? rep>> %alien-vector-reps member? ;
|
||||
M: ##shuffle-vector insn-available? rep>> %shuffle-vector-reps member? ;
|
||||
M: ##shuffle-vector-imm insn-available? rep>> %shuffle-vector-imm-reps member? ;
|
||||
|
|
|
@ -303,7 +303,10 @@ PREDICATE: fixnum-vector-rep < int-vector-rep
|
|||
[ ^^scalar>vector ] keep [ 0 ] dip ^broadcast-vector ;
|
||||
|
||||
: ^select-vector ( src n rep -- dst )
|
||||
[ ^broadcast-vector ] keep ^^vector>scalar ;
|
||||
{
|
||||
[ ^^select-vector ]
|
||||
[ [ ^broadcast-vector ] keep ^^vector>scalar ]
|
||||
} vl-vector-op ;
|
||||
|
||||
! intrinsic emitters
|
||||
|
||||
|
|
Loading…
Reference in New Issue