diff --git a/basis/compiler/cfg/intrinsics/simd/backend/backend.factor b/basis/compiler/cfg/intrinsics/simd/backend/backend.factor index 34e238bc81..cb4ff536dc 100644 --- a/basis/compiler/cfg/intrinsics/simd/backend/backend.factor +++ b/basis/compiler/cfg/intrinsics/simd/backend/backend.factor @@ -19,6 +19,8 @@ M: ##zero-vector insn-available? rep>> %zero-vector-reps member? ; M: ##fill-vector insn-available? rep>> %fill-vector-reps member? ; 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: ##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? ; diff --git a/basis/compiler/cfg/intrinsics/simd/simd.factor b/basis/compiler/cfg/intrinsics/simd/simd.factor index b18eb9ded4..0cb7a21940 100644 --- a/basis/compiler/cfg/intrinsics/simd/simd.factor +++ b/basis/compiler/cfg/intrinsics/simd/simd.factor @@ -593,12 +593,14 @@ PREDICATE: fixnum-vector-rep < int-vector-rep : emit-simd-gather-2 ( node -- ) { + { fixnum-vector-rep [ ^^gather-int-vector-2 ] } { fixnum-vector-rep [ ^^gather-vector-2 ] } { float-vector-rep [ ^^gather-vector-2 ] } } emit-vv-vector-op ; : emit-simd-gather-4 ( node -- ) { + { fixnum-vector-rep [ ^^gather-int-vector-4 ] } { fixnum-vector-rep [ ^^gather-vector-4 ] } { float-vector-rep [ ^^gather-vector-4 ] } } emit-vvvv-vector-op ;