Skip to content

Commit 113e321

Browse files
Fix ASAN issue in extractorf when using AVX2
1 parent b15e95a commit 113e321

File tree

1 file changed

+8
-5
lines changed

1 file changed

+8
-5
lines changed

src/commons/Orf.cpp

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -246,12 +246,15 @@ void Orf::findForward(const char *sequence, const size_t sequenceLength, std::ve
246246

247247
// Offset the start position by reading frame
248248
size_t from[FRAMES] = {frameOffset[0], frameOffset[1], frameOffset[2]};
249-
250249
simd_int startCodonsHi = simdi_load((simd_int*)startCodons);
251-
simd_int startCodonsLo = simdi_loadu((simd_int*)(startCodons + 16));
252-
253-
simd_int stopCodonsHi = simdi_load((simd_int*)stopCodons);
254-
simd_int stopCodonsLo = simdi_loadu((simd_int*)(stopCodons + 16));
250+
simd_int stopCodonsHi = simdi_load((simd_int*)stopCodons);
251+
#ifdef AVX2
252+
simd_int startCodonsLo = simdi_setzero();
253+
simd_int stopCodonsLo = simdi_setzero();
254+
#else
255+
simd_int startCodonsLo = simdi_load((simd_int*)startCodons + 16);
256+
simd_int stopCodonsLo = simdi_load((simd_int*)stopCodons + 16);
257+
#endif
255258
for (size_t i = 0; i < sequenceLength - (FRAMES - 1); i += FRAMES) {
256259
for(size_t position = i; position < i + FRAMES; position++) {
257260
// make everything that is not CHAR_MAX upper case

0 commit comments

Comments
 (0)