From f57b3cdbe110b0178689b73f000ffe68df27a69c Mon Sep 17 00:00:00 2001
From: Martin Larralde <martin.larralde@embl.de>
Date: Sat, 15 Jun 2024 09:27:46 +0200
Subject: [PATCH] Make AVX2 implementation of `score_into` with `gather` more
 generic

---
 lightmotif/src/pli/platform/avx2.rs | 9 +++++----
 1 file changed, 5 insertions(+), 4 deletions(-)

diff --git a/lightmotif/src/pli/platform/avx2.rs b/lightmotif/src/pli/platform/avx2.rs
index a856458..4baa3d8 100644
--- a/lightmotif/src/pli/platform/avx2.rs
+++ b/lightmotif/src/pli/platform/avx2.rs
@@ -8,6 +8,7 @@ use std::ops::Range;
 
 use typenum::consts::U32;
 use typenum::consts::U5;
+use typenum::consts::U8;
 use typenum::IsLessOrEqual;
 use typenum::NonZero;
 use typenum::Unsigned;
@@ -101,8 +102,8 @@ unsafe fn score_avx2_permute<A>(
     scores: &mut StripedScores<<Avx2 as Backend>::LANES>,
 ) where
     A: Alphabet,
-    <A as Alphabet>::K: IsLessOrEqual<U5>,
-    <<A as Alphabet>::K as IsLessOrEqual<U5>>::Output: NonZero,
+    <A as Alphabet>::K: IsLessOrEqual<U8>,
+    <<A as Alphabet>::K as IsLessOrEqual<U8>>::Output: NonZero,
 {
     let data = scores.matrix_mut();
     debug_assert!(data.rows() > 0);
@@ -613,8 +614,8 @@ impl Avx2 {
         scores: &mut StripedScores<<Avx2 as Backend>::LANES>,
     ) where
         A: Alphabet,
-        <A as Alphabet>::K: IsLessOrEqual<U5>,
-        <<A as Alphabet>::K as IsLessOrEqual<U5>>::Output: NonZero,
+        <A as Alphabet>::K: IsLessOrEqual<U8>,
+        <<A as Alphabet>::K as IsLessOrEqual<U8>>::Output: NonZero,
         S: AsRef<StripedSequence<A, <Avx2 as Backend>::LANES>>,
         M: AsRef<ScoringMatrix<A>>,
     {
-- 
GitLab