解决了avx2_u8,剪枝find_max的bug
This commit is contained in:
parent
775297a813
commit
3f06d433e7
|
|
@ -158,7 +158,7 @@ static const uint8_t reverse_mask[SIMD_WIDTH] = {7, 6, 5, 4, 3, 2, 1, 0, 15, 14,
|
|||
cmp_max = _mm256_xor_si256(cmp_max, last_max_vec); \
|
||||
cmp_max = _mm256_cmpeq_epi8(cmp_max, zero_vec); \
|
||||
uint32_t cmp_result = _mm256_movemask_epi8(cmp_max); \
|
||||
if (cmp_result != 4294967296) \
|
||||
if (cmp_result != 4294967295) \
|
||||
{ \
|
||||
uint8_t *maxVal = (uint8_t *)&max_vec; \
|
||||
max_vec = _mm256_max_epu8(max_vec, _mm256_alignr_epi8(max_vec, max_vec, 1)); \
|
||||
|
|
@ -236,7 +236,7 @@ int ksw_avx2_u8(int qlen, // query length 待匹配段碱基的que
|
|||
int *_gscore, // query的端到端匹配得分
|
||||
int *_max_off) // 取得最大得分时在query和reference上位置差的 最大值
|
||||
{
|
||||
return h0;
|
||||
// return h0;
|
||||
#ifdef SHOW_PERF
|
||||
// extern int64_t time_bsw_init;
|
||||
// extern int64_t time_bsw_main_loop;
|
||||
|
|
|
|||
|
|
@ -18,7 +18,7 @@ typedef struct
|
|||
|
||||
int ksw_normal(int qlen, const uint8_t *query, int tlen, const uint8_t *target, int m, const int8_t *mat, int o_del, int e_del, int o_ins, int e_ins, int w, int end_bonus, int zdrop, int h0, int *_qle, int *_tle, int *_gtle, int *_gscore, int *_max_off)
|
||||
{
|
||||
// return h0;
|
||||
return h0;
|
||||
eh_t *eh; // score array
|
||||
int8_t *qp; // query profile
|
||||
int i, j, k, oe_del = o_del + e_del, oe_ins = o_ins + e_ins, beg, end, max, max_i, max_j, max_ins, max_del, max_ie, gscore, max_off;
|
||||
|
|
|
|||
Loading…
Reference in New Issue