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
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions