added a CI test for x86 32-bit + avx2 combination

which is expected to be quite rare, but nonetheless possible.

This test is initially expected to fail, before integration of #4248 fix
This commit is contained in:
Yann Collet 2025-01-18 20:19:55 -08:00
parent a469e7c083
commit 9efb09749b
3 changed files with 14 additions and 3 deletions

View File

@ -164,7 +164,7 @@ jobs:
make clean make clean
bash tests/libzstd_builds.sh bash tests/libzstd_builds.sh
gcc-make-tests-32bit: gcc-make-all-32bit:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # tag=v4.1.1 - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # tag=v4.1.1
@ -174,6 +174,17 @@ jobs:
make libc6install make libc6install
CFLAGS="-Werror -m32" make -j all32 CFLAGS="-Werror -m32" make -j all32
gcc-make-all-32bit-avx2:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # tag=v4.1.1
- name: Make all, 32bit mode
run: |
sudo apt-get -qqq update
make libc6install
CFLAGS="-Werror -m32 -mavx2" make -j all32
gcc-8-make: gcc-8-make:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:

View File

@ -238,7 +238,7 @@ MEM_STATIC size_t BIT_closeCStream(BIT_CStream_t* bitC)
BIT_addBitsFast(bitC, 1, 1); /* endMark */ BIT_addBitsFast(bitC, 1, 1); /* endMark */
BIT_flushBits(bitC); BIT_flushBits(bitC);
if (bitC->ptr >= bitC->endPtr) return 0; /* overflow detected */ if (bitC->ptr >= bitC->endPtr) return 0; /* overflow detected */
return (bitC->ptr - bitC->startPtr) + (bitC->bitPos > 0); return (size_t)(bitC->ptr - bitC->startPtr) + (bitC->bitPos > 0);
} }

View File

@ -210,7 +210,7 @@
/*Like DYNAMIC_BMI2 but for compile time determination of BMI2 support*/ /*Like DYNAMIC_BMI2 but for compile time determination of BMI2 support*/
#ifndef STATIC_BMI2 #ifndef STATIC_BMI2
# if defined(_MSC_VER) && (defined(_M_X64) || defined(_M_I86)) # if defined(_MSC_VER) && (defined(_M_X64) || defined(_M_I86))
# ifdef __AVX2__ //MSVC does not have a BMI2 specific flag, but every CPU that supports AVX2 also supports BMI2 # ifdef __AVX2__ /* MSVC does not have a BMI2 specific flag, but every CPU that supports AVX2 also supports BMI2 */
# define STATIC_BMI2 1 # define STATIC_BMI2 1
# endif # endif
# elif defined(__BMI2__) && defined(__x86_64__) && defined(__GNUC__) # elif defined(__BMI2__) && defined(__x86_64__) && defined(__GNUC__)