Skip to content

smithWatermanBackTrack is being shared between AVX2 and AVX-512 #169

@philipc

Description

@philipc

When compiling with gcc 11.2.0, smithWatermanBackTrack isn't actually inlined, and this results in both the AVX2 and AVX-512 implementations calling the same copy of it. This is bad because each copy needs to be specialized to use either AVX2 instructions or AVX-512 instructions. Here's the relevant bits from objdump -d build/native/libgkl_smithwaterman.so:

0000000000001610 <_Z19runSWOnePairBT_avx2iiiiPhS_ssaPciPjPi>:
    193c:       e8 8f f7 ff ff          call   10d0 <_Z22smithWatermanBackTrackP10dnaSeqPairiiiiPii@plt>

0000000000002a80 <_Z21runSWOnePairBT_avx512iiiiPhS_ssaPciPjPi>:
    2dec:       e8 df e2 ff ff          call   10d0 <_Z22smithWatermanBackTrackP10dnaSeqPairiiiiPii@plt>

I think it should at least be changed to static inline, and possibly renamed to CONCAT(smithWatermanBackTrack_,SIMD_ENGINE).

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions