diff --git a/.github/workflows/macos-builds.yml b/.github/workflows/macos-builds.yml index f45e6f3..eaac3e6 100644 --- a/.github/workflows/macos-builds.yml +++ b/.github/workflows/macos-builds.yml @@ -9,20 +9,20 @@ on: jobs: build: - runs-on: macos-12 + runs-on: macos-14 steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 with: submodules: recursive - name: Update Homebrew run: brew update - - name: Install autotools - run: brew install autoconf automake libtool + - name: Install automake + run: brew install automake - name: Install dependencies - run: brew install htslib gsl + run: brew install htslib - name: Generate configure script run: ./autogen.sh - name: configure with g++-13 run: ./configure CXX="g++-13" CPPFLAGS="-I$(brew --prefix)/include" LDFLAGS="-L$(brew --prefix)/lib" - - name: make - run: make + - name: Build with g++ + run: make CXXFLAGS="-O3 -DNDEBUG -Wl,-ld_classic" diff --git a/src/abismal.cpp b/src/abismal.cpp index 59e1479..5c9fef1 100644 --- a/src/abismal.cpp +++ b/src/abismal.cpp @@ -1002,8 +1002,10 @@ check_hits(const uint32_t offset, const PackedRead::const_iterator read_st, vector::const_iterator start_idx, result_type &res) { for (; start_idx != end_idx && !res.sure_ambig; ++start_idx) { // GS: adds the next candidate to L1d cache while current is compared +#ifdef __SSE__ _mm_prefetch(&(*(genome_st + ((*(start_idx + 10) - offset) >> 4))), _MM_HINT_T0); +#endif const uint32_t the_pos = *start_idx - offset; /* GS: the_pos & 15u tells if the position is a multiple of 16, in * which case it is aligned with the genome. Otherwise we need to