- - name: Test x86-32-sse41-popcnt build
- if: ${{ matrix.config.run_32bit_tests }}
- run: |
- make clean
- make -j2 ARCH=x86-32-sse41-popcnt build
- ../tests/signature.sh $benchref
-
- - name: Test x86-32-sse2 build
- if: ${{ matrix.config.run_32bit_tests }}
- run: |
- make clean
- make -j2 ARCH=x86-32-sse2 build
- ../tests/signature.sh $benchref
-
- - name: Test general-32 build
- if: ${{ matrix.config.run_32bit_tests }}
- run: |
- make clean
- make -j2 ARCH=general-32 build
- ../tests/signature.sh $benchref
-
- # x86-64 tests
-
- - name: Test debug x86-64-modern build
- if: ${{ matrix.config.run_64bit_tests }}
- run: |
- export CXXFLAGS="-Werror -D_GLIBCXX_DEBUG"
- make clean
- make -j2 ARCH=x86-64-modern optimize=no debug=yes build
- ../tests/signature.sh $benchref
-
- - name: Test x86-64-modern build
- if: ${{ matrix.config.run_64bit_tests }}
- run: |
- make clean
- make -j2 ARCH=x86-64-modern build
- ../tests/signature.sh $benchref
-
- - name: Test x86-64-ssse3 build
- if: ${{ matrix.config.run_64bit_tests }}
- run: |
- make clean
- make -j2 ARCH=x86-64-ssse3 build
- ../tests/signature.sh $benchref
-
- - name: Test x86-64-sse3-popcnt build
- if: ${{ matrix.config.run_64bit_tests }}
- run: |
- make clean
- make -j2 ARCH=x86-64-sse3-popcnt build
- ../tests/signature.sh $benchref
-
- - name: Test x86-64 build
- if: ${{ matrix.config.run_64bit_tests }}
- run: |
- make clean
- make -j2 ARCH=x86-64 build
- ../tests/signature.sh $benchref
-
- - name: Test general-64 build
- if: matrix.config.run_64bit_tests
- run: |
- make clean
- make -j2 ARCH=general-64 build
- ../tests/signature.sh $benchref
-
- # x86-64 with newer extensions tests
-
- - name: Compile x86-64-avx2 build
- if: ${{ matrix.config.run_64bit_tests }}
- run: |
- make clean
- make -j2 ARCH=x86-64-avx2 build
-
- - name: Compile x86-64-bmi2 build
- if: ${{ matrix.config.run_64bit_tests }}
- run: |
- make clean
- make -j2 ARCH=x86-64-bmi2 build
-
- - name: Compile x86-64-avx512 build
- if: ${{ matrix.config.run_64bit_tests }}
- run: |
- make clean
- make -j2 ARCH=x86-64-avx512 build
-
- - name: Compile x86-64-vnni512 build
- if: ${{ matrix.config.run_64bit_tests }}
- run: |
- make clean
- make -j2 ARCH=x86-64-vnni512 build
-
- - name: Compile x86-64-vnni256 build
- if: ${{ matrix.config.run_64bit_tests }}
- run: |
- make clean
- make -j2 ARCH=x86-64-vnni256 build
-
- # armv8 tests
-
- - name: Test armv8 build
- if: ${{ matrix.config.run_armv8_tests }}
- run: |
- export PATH=$ANDROID_NDK_HOME/toolchains/llvm/prebuilt/linux-x86_64/bin:$PATH
- export LDFLAGS="-static -Wno-unused-command-line-argument"
- make clean
- make -j2 ARCH=armv8 build
- ../tests/signature.sh $benchref
-
- # armv7 tests
-
- - name: Test armv7 build
- if: ${{ matrix.config.run_armv7_tests }}
- run: |
- export PATH=$ANDROID_NDK_HOME/toolchains/llvm/prebuilt/linux-x86_64/bin:$PATH
- export LDFLAGS="-static -Wno-unused-command-line-argument"
- make clean
- make -j2 ARCH=armv7 build
- ../tests/signature.sh $benchref
-
- - name: Test armv7-neon build
- if: ${{ matrix.config.run_armv7_tests }}
- run: |
- export PATH=$ANDROID_NDK_HOME/toolchains/llvm/prebuilt/linux-x86_64/bin:$PATH
- export LDFLAGS="-static -Wno-unused-command-line-argument"
- make clean
- make -j2 ARCH=armv7-neon build
- ../tests/signature.sh $benchref
-
- # Other tests
-
- - name: Check perft and search reproducibility
- if: ${{ matrix.config.run_64bit_tests }}
- run: |
- make clean
- make -j2 ARCH=x86-64-modern build
- ../tests/perft.sh
- ../tests/reprosearch.sh
-
- # Sanitizers
-
- - name: Run under valgrind
- if: ${{ matrix.config.run_expensive_tests }}
- run: |
- export CXXFLAGS="-O1 -fno-inline"
- make clean
- make -j2 ARCH=x86-64-modern debug=yes optimize=no build > /dev/null
- ../tests/instrumented.sh --valgrind
- ../tests/instrumented.sh --valgrind-thread
-
- - name: Run with UB sanitizer
- if: ${{ matrix.config.run_expensive_tests }}
- run: |
- export CXXFLAGS="-O1 -fno-inline"
- make clean
- make -j2 ARCH=x86-64-modern sanitize=undefined optimize=no debug=yes build > /dev/null
- ../tests/instrumented.sh --sanitizer-undefined
-
- - name: Run with thread sanitizer
- if: ${{ matrix.config.run_expensive_tests }}
- run: |
- export CXXFLAGS="-O1 -fno-inline"
- make clean
- make -j2 ARCH=x86-64-modern sanitize=thread optimize=no debug=yes build > /dev/null
- ../tests/instrumented.sh --sanitizer-thread