diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index f1005225c..71613ada3 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -389,42 +389,37 @@ jobs: clang-qemu: strategy: + fail-fast: false matrix: include: - - version: 15 + - version: 16 cross: armv7 arch_deb: armhf arch_gnu_abi: eabihf arch_gnu: arm distro: ubuntu-22.04 - - version: 15 + - version: 16 cross: aarch64 arch_gnu: aarch64 arch_deb: arm64 distro: ubuntu-22.04 - - version: 15 + - version: 16 cross: armel arch_gnu_abi: eabi arch_deb: armel arch_gnu: arm distro: ubuntu-22.04 - - version: 15 + - version: 16 cross: riscv64 arch_gnu: riscv64 arch_deb: riscv64 distro: ubuntu-22.04 - # - version: 15 - # cross: armel - # arch_gnu_abi: eabi - # arch_deb: armel - # arch_gnu: arm - # distro: ubuntu-22.04 - # - version: 15 + # - version: 16 # cross: s390x # arch_gnu: s390x # arch_deb: s390x # distro: ubuntu-22.04 - - version: 15 + - version: 16 cross: ppc64el arch_deb: ppc64el arch_gnu: powerpc64le @@ -440,6 +435,7 @@ jobs: - name: Install APT Dependencies run: | sudo add-apt-repository ppa:savoury1/virtualisation + sudo add-apt-repository ppa:savoury1/display sudo apt-get update -y sudo apt-get -yq install ninja-build parallel \ binfmt-support clang-${{ matrix.version }} clang++-${{ matrix.version }} \ @@ -454,7 +450,9 @@ jobs: run: | export PATH="/usr/lib/ccache:/usr/local/opt/ccache/libexec:$PATH" - name: Configure - run: meson setup --cross-file=docker/cross-files/${{ matrix.cross }}-clang-${{ matrix.version }}-ccache.cross build + run: | + meson setup --cross-file=docker/cross-files/${{ matrix.cross }}-clang-${{ matrix.version }}-ccache.cross build \ + || (cat build/meson-logs/meson-log.txt ; false) - name: Build run: ninja -C build -v - name: Test @@ -504,6 +502,13 @@ jobs: distro: ubuntu-22.04 arch_flags: -ffast-math ccache: 'true' + - version: "16" + distro: ubuntu-22.04 + arch_flags: -march=native -Wno-unsafe-buffer-usage + - version: "16" + distro: ubuntu-22.04 + arch_flags: -ffast-math -Wno-unsafe-buffer-usage + ccache: 'true' runs-on: ${{ matrix.distro }} env: CFLAGS: ${{ matrix.arch_flags }} -Wall -Weverything -Werror -fno-lax-vector-conversions @@ -517,6 +522,7 @@ jobs: - name: Install APT Dependencies run: | sudo add-apt-repository ppa:ubuntu-toolchain-r/test + sudo add-apt-repository ppa:savoury1/display sudo apt-get update sudo apt-get -yq install gcovr ninja-build python3-pip clang-${{ matrix.version }} sudo python3 -m pip install meson==0.55.0 diff --git a/docker/cross-files/aarch64-clang-16-ccache.cross b/docker/cross-files/aarch64-clang-16-ccache.cross new file mode 100644 index 000000000..4e730e728 --- /dev/null +++ b/docker/cross-files/aarch64-clang-16-ccache.cross @@ -0,0 +1,20 @@ +[binaries] +c = ['ccache', 'clang-16'] +cpp = ['ccache', 'clang++-16'] +ar = 'llvm-ar-16' +strip = 'llvm-strip-16' +objcopy = 'llvm-objcopy-16' +ld = 'llvm-ld-16' +exe_wrapper = ['qemu-aarch64-static', '-L', '/usr/aarch64-linux-gnu'] + +[properties] +c_args = ['--target=aarch64-linux-gnu', '-march=armv8-a+simd+crypto+crc', '-isystem=/usr/aarch64-linux-gnu/include', '-Weverything', '-fno-lax-vector-conversions', '-Werror', '-Wno-unsafe-buffer-usage'] +cpp_args = ['--target=aarch64-linux-gnu', '-march=armv8-a+simd+crypto+crc', '-isystem=/usr/aarch64-linux-gnu/include', '-Weverything', '-fno-lax-vector-conversions', '-Werror', '-Wno-unsafe-buffer-usage'] +c_link_args = ['--target=aarch64-linux-gnu'] +cpp_link_args = ['--target=aarch64-linux-gnu'] + +[host_machine] +system = 'linux' +cpu_family = 'aarch64' +cpu = 'arm64' +endian = 'little' diff --git a/docker/cross-files/armv7-clang-16-ccache.cross b/docker/cross-files/armv7-clang-16-ccache.cross new file mode 100644 index 000000000..d97584125 --- /dev/null +++ b/docker/cross-files/armv7-clang-16-ccache.cross @@ -0,0 +1,20 @@ +[binaries] +c = ['ccache', 'clang-16'] +cpp = ['ccache', 'clang++-16'] +ar = 'llvm-ar-16' +strip = 'llvm-strip-16' +objcopy = 'llvm-objcopy-16' +ld = 'llvm-ld-16' +exe_wrapper = ['qemu-arm-static', '-L', '/usr/arm-linux-gnueabihf'] + +[properties] +c_args = ['--target=arm-linux-gnueabihf', '-march=armv7-a', '-mfpu=neon', '-isystem=/usr/arm-linux-gnueabihf/include', '-Weverything', '-fno-lax-vector-conversions', '-Werror', '-Wno-unsafe-buffer-usage'] +cpp_args = ['--target=arm-linux-gnueabihf', '-march=armv7-a', '-mfpu=neon', '-isystem=/usr/arm-linux-gnueabihf/include', '-Weverything', '-fno-lax-vector-conversions', '-Werror', '-Wno-unsafe-buffer-usage'] +c_link_args = ['--target=arm-linux-gnueabihf'] +cpp_link_args = ['--target=arm-linux-gnueabihf'] + +[host_machine] +system = 'linux' +cpu_family = 'arm' +cpu = 'armv8-a' +endian = 'little' diff --git a/docker/cross-files/ppc64el-clang-16-ccache.cross b/docker/cross-files/ppc64el-clang-16-ccache.cross new file mode 100644 index 000000000..5b3bf84b6 --- /dev/null +++ b/docker/cross-files/ppc64el-clang-16-ccache.cross @@ -0,0 +1,20 @@ +[binaries] +c = ['ccache', 'clang-16'] +cpp = ['ccache', 'clang++-16'] +ar = 'llvm-ar-16' +strip = 'llvm-strip-16' +objcopy = 'llvm-objcopy-16' +ld = 'llvm-ld-16' +exe_wrapper = ['qemu-ppc64le-static', '-L', '/usr/powerpc64le-linux-gnu/'] + +[properties] +c_args = ['--target=powerpc64le-linux-gnu', '-isystem=/usr/powerpc64le-linux-gnu/include', '-Weverything', '-fno-lax-vector-conversions', '-Werror', '-Wno-deprecated-altivec-src-compat', '-Wno-unsafe-buffer-usage'] +cpp_args = ['--target=powerpc64le-linux-gnu', '-isystem=/usr/powerpc64le-linux-gnu/include', '-Weverything', '-fno-lax-vector-conversions', '-Werror', '-Wno-deprecated-altivec-src-compat', '-Wno-unsafe-buffer-usage'] +c_link_args = ['--target=powerpc64le-linux-gnu'] +cpp_link_args = ['--target=powerpc64le-linux-gnu'] + +[host_machine] +system = 'linux' +cpu_family = 'ppc64' +cpu = 'ppc64el' +endian = 'little' diff --git a/docker/cross-files/riscv64-clang-16-ccache.cross b/docker/cross-files/riscv64-clang-16-ccache.cross new file mode 100644 index 000000000..0d8889cd1 --- /dev/null +++ b/docker/cross-files/riscv64-clang-16-ccache.cross @@ -0,0 +1,20 @@ +[binaries] +c = ['ccache', 'clang-16'] +cpp = ['ccache', 'clang++-16'] +ar = 'llvm-ar-16' +strip = 'llvm-strip-16' +objcopy = 'llvm-objcopy-16' +ld = 'llvm-ld-16' +exe_wrapper = ['qemu-riscv64-static', '-L', '/usr/riscv64-linux-gnu/'] + +[properties] +c_args = ['--target=riscv64-linux-gnu', '-isystem=/usr/riscv64-linux-gnu/include', '-Wextra', '-Werror', '-Wno-unsafe-buffer-usage'] +cpp_args = ['--target=riscv64-linux-gnu', '-isystem=/usr/riscv64-linux-gnu/include', '-Wextra', '-Werror', '-Wno-unsafe-buffer-usage'] +c_link_args = ['--target=riscv64-linux-gnu'] +cpp_link_args = ['--target=riscv64-linux-gnu'] + +[host_machine] +system = 'linux' +cpu_family = 'riscv64' +cpu = 'riscv64' +endian = 'little' diff --git a/docker/cross-files/s390x-clang-16-ccache.cross b/docker/cross-files/s390x-clang-16-ccache.cross new file mode 100644 index 000000000..b701d049e --- /dev/null +++ b/docker/cross-files/s390x-clang-16-ccache.cross @@ -0,0 +1,20 @@ +[binaries] +c = ['ccache', 'clang-16'] +cpp = ['ccache', 'clang++-16'] +ar = 'llvm-ar-16' +strip = 'llvm-strip-16' +objcopy = 'llvm-objcopy-16' +ld = 'llvm-ld-16' +exe_wrapper = ['qemu-s390x-static', '-L', '/usr/s390x-linux-gnu/'] + +[properties] +c_args = ['--target=s390x-ibm-linux', '-mpcu=z196', '-isystem=/usr/s390x-linux-gnu/include', '-Weverything', '-fno-lax-vector-conversions', '-Werror', '-Wno-unsafe-buffer-usage'] +cpp_args = ['--target=s390x-ibm-linux', '-mpcu=z196', '-isystem=/usr/s390x-linux-gnu/include', '-Weverything', '-fno-lax-vector-conversions', '-Werror', '-Wno-unsafe-buffer-usage'] +c_link_args = ['--target=s390x-ibm-linux'] +cpp_link_args = ['--target=s390x-ibm-linux'] + +[host_machine] +system = 'linux' +cpu_family = 's390x' +cpu = 's390x' +endian = 'big' diff --git a/simde/simde-math.h b/simde/simde-math.h index ab05efd13..02de568dc 100644 --- a/simde/simde-math.h +++ b/simde/simde-math.h @@ -1514,7 +1514,7 @@ simde_math_fpclass(double v, const int imm8) { static HEDLEY_INLINE double simde_math_cdfnorminv(double p) { - static const double a[] = { + static const double a[6] = { -3.969683028665376e+01, 2.209460984245205e+02, -2.759285104469687e+02, @@ -1523,7 +1523,7 @@ simde_math_fpclass(double v, const int imm8) { 2.506628277459239e+00 }; - static const double b[] = { + static const double b[5] = { -5.447609879822406e+01, 1.615858368580409e+02, -1.556989798598866e+02, @@ -1531,7 +1531,7 @@ simde_math_fpclass(double v, const int imm8) { -1.328068155288572e+01 }; - static const double c[] = { + static const double c[6] = { -7.784894002430293e-03, -3.223964580411365e-01, -2.400758277161838e+00, @@ -1540,7 +1540,7 @@ simde_math_fpclass(double v, const int imm8) { 2.938163982698783e+00 }; - static const double d[] = { + static const double d[4] = { 7.784695709041462e-03, 3.224671290700398e-01, 2.445134137142996e+00, @@ -1581,7 +1581,7 @@ simde_math_fpclass(double v, const int imm8) { static HEDLEY_INLINE float simde_math_cdfnorminvf(float p) { - static const float a[] = { + static const float a[6] = { -3.969683028665376e+01f, 2.209460984245205e+02f, -2.759285104469687e+02f, @@ -1589,14 +1589,14 @@ simde_math_fpclass(double v, const int imm8) { -3.066479806614716e+01f, 2.506628277459239e+00f }; - static const float b[] = { + static const float b[5] = { -5.447609879822406e+01f, 1.615858368580409e+02f, -1.556989798598866e+02f, 6.680131188771972e+01f, -1.328068155288572e+01f }; - static const float c[] = { + static const float c[6] = { -7.784894002430293e-03f, -3.223964580411365e-01f, -2.400758277161838e+00f, @@ -1604,7 +1604,7 @@ simde_math_fpclass(double v, const int imm8) { 4.374664141464968e+00f, 2.938163982698783e+00f }; - static const float d[] = { + static const float d[4] = { 7.784695709041462e-03f, 3.224671290700398e-01f, 2.445134137142996e+00f,