From 20fb1868751cce0de1b7665133cb28a13ffc0d70 Mon Sep 17 00:00:00 2001 From: Shiyou Yin Date: Fri, 6 Sep 2024 16:19:04 +0800 Subject: [PATCH 1/4] x86/sse: Fix type convert error for LSX. --- simde/x86/sse.h | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/simde/x86/sse.h b/simde/x86/sse.h index a2de5d140..e5b694369 100644 --- a/simde/x86/sse.h +++ b/simde/x86/sse.h @@ -674,7 +674,7 @@ simde_x_mm_round_ps (simde__m128 a, int rounding, int lax_rounding) #elif defined(SIMDE_ARM_NEON_A32V8_NATIVE) r_.neon_f32 = vrndnq_f32(a_.neon_f32); #elif defined(SIMDE_LOONGARCH_LSX_NATIVE) - r_.lsx_i64 = __lsx_vfrintrne_s(a_.lsx_f32); + r_.lsx_f32 = __lsx_vfrintrne_s(a_.lsx_f32); #elif defined(SIMDE_WASM_SIMD128_NATIVE) r_.wasm_v128 = wasm_f32x4_nearest(a_.wasm_v128); #elif defined(simde_math_roundevenf) @@ -693,7 +693,7 @@ simde_x_mm_round_ps (simde__m128 a, int rounding, int lax_rounding) #elif defined(SIMDE_ARM_NEON_A32V8_NATIVE) r_.neon_f32 = vrndmq_f32(a_.neon_f32); #elif defined(SIMDE_LOONGARCH_LSX_NATIVE) - r_.lsx_i64 = __lsx_vfrintrm_s(a_.lsx_f32); + r_.lsx_f32 = __lsx_vfrintrm_s(a_.lsx_f32); #elif defined(SIMDE_WASM_SIMD128_NATIVE) r_.wasm_v128 = wasm_f32x4_floor(a_.wasm_v128); #elif defined(simde_math_floorf) @@ -712,7 +712,7 @@ simde_x_mm_round_ps (simde__m128 a, int rounding, int lax_rounding) #elif defined(SIMDE_ARM_NEON_A32V8_NATIVE) r_.neon_f32 = vrndpq_f32(a_.neon_f32); #elif defined(SIMDE_LOONGARCH_LSX_NATIVE) - r_.lsx_i64 = __lsx_vfrintrp_s(a_.lsx_f32); + r_.lsx_f32 = __lsx_vfrintrp_s(a_.lsx_f32); #elif defined(SIMDE_WASM_SIMD128_NATIVE) r_.wasm_v128 = wasm_f32x4_ceil(a_.wasm_v128); #elif defined(simde_math_ceilf) @@ -731,7 +731,7 @@ simde_x_mm_round_ps (simde__m128 a, int rounding, int lax_rounding) #elif defined(SIMDE_ARM_NEON_A32V8_NATIVE) r_.neon_f32 = vrndq_f32(a_.neon_f32); #elif defined(SIMDE_LOONGARCH_LSX_NATIVE) - r_.lsx_i64 = __lsx_vfrintrz_s(a_.lsx_f32); + r_.lsx_f32 = __lsx_vfrintrz_s(a_.lsx_f32); #elif defined(SIMDE_WASM_SIMD128_NATIVE) r_.wasm_v128 = wasm_f32x4_trunc(a_.wasm_v128); #elif defined(simde_math_truncf) From 8d840a6905010f58c9c9a61a8a6c14e06c3ee8a1 Mon Sep 17 00:00:00 2001 From: "Michael R. Crusoe" Date: Wed, 11 Sep 2024 10:41:41 +0200 Subject: [PATCH 2/4] DO NOT MERGE; test newer loongson with gcc14 --- .github/workflows/ci.yml | 888 +----------------- .../loongarch64-gcc-14-ccache.cross | 20 + 2 files changed, 40 insertions(+), 868 deletions(-) create mode 100644 docker/cross-files/loongarch64-gcc-14-ccache.cross diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 67b5e07f1..e9483bf5e 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -15,891 +15,43 @@ concurrency: cancel-in-progress: true jobs: - checkinstall: - runs-on: ubuntu-22.04 - steps: - - uses: actions/checkout@v4 - with: - fetch-depth: 2 - - name: Install APT Dependencies - run: | - sudo apt-get install -y ninja-build ninja-build pipx - pipx install meson==0.55.1 - - run: | - meson setup build --prefix $PWD/install -Dtests=false - meson install -C build --quiet - diff <(find simde/ -type f -name "*.h") <(cd install/include/; find simde -type f -name "*.h" ) - - formatting: - runs-on: ubuntu-22.04 - steps: - - uses: actions/checkout@v4 - with: - fetch-depth: 2 - - name: Install pcre2grep - run: sudo apt-get update && sudo apt-get install -y pcre2-utils - # Check for trailing whitespace - - name: Trailing whitespace - run: find simde/ \( -name '*.c' -o -name '*.h' \) -exec grep -nP '\s+$' {} + && exit 1 || exit 0 - # We use spaces, not tabs. I don't want to start a holy war here; - # I don't actually have a strong preference between the two, but I - # do have a strong preference for consistency, so don't @ me. - - name: Tabs - run: find simde/ \( -name '*.c' -o -name '*.h' \) -exec grep -nP '\t' {} + && exit 1 || exit 0 - # s/8/16/ will result in this if the input is x86. - - name: Bad substitutions - run: git grep -i 'x''1''6''6' && exit 1 || exit 0 - - name: Incorrect assertions in test/ - run: grep -PR '(?<=[^a-zA-Z0-9_])simde_assert_u?int(8|16|32|64)(?>[^a-zA-Z0-9_])' test/ && exit 1 || exit 0 - # Check to make sure no source files have the executable bit set - - name: Executable sources - run: find \( -name '*.c' -o -name '*.h' \) -executable | grep -q '.' && exit 1 || exit 0 - # Make sure neon.h includes all the NEON headers. - - name: Missing NEON includes - run: for f in simde/arm/neon/*.h; do grep -q "include \"neon/$(basename "$f")\"" simde/arm/neon.h || (echo "Missing $f" && exit 1); done - # Make sure sve.h includes all the SVE headers. - - name: Missing SVE includes - run: for f in simde/arm/sve/*.h; do grep -q "include \"sve/$(basename "$f")\"" simde/arm/sve.h || (echo "Missing $f" && exit 1); done - # Make sure msa.h includes all the MSA headers. - - name: Missing MSA includes - run: for f in simde/mips/msa/*.h; do grep -q "include \"msa/$(basename "$f")\"" simde/mips/msa.h || (echo "Missing $f" && exit 1); done - # Make sure we can find the expected header guards. It's easy to miss this when doing C&P - - name: Header guards - run: for file in $(find simde/*/ -name '*.h'); do grep -q "$(echo "$file" | tr '[:lower:]' '[:upper:]' | tr '[:punct:]' '_')" "$file" || (echo "Missing or incorrect header guard in $file" && exit 1); done - # There should be an empty line at the end of every file - - name: Newline at EOF - run: for file in $(find simde -name '*.h'); do if [ -n "$(tail -c 1 "$file")" ]; then echo "No newline at end of $file" && exit 1; fi; done - # Don't #ifndef ; use !defined(...) instead. ifndef leads to annoying inconsistencies - - name: ifndef - run: for file in $(find simde -name '*.h'); do grep -qP '^ *# *ifndef ' "${file}" && exit 1 || exit 0; done - # List of headers we want Meson to install - - name: Meson install headers - run: for file in $(find simde -name '*.h'); do grep -qF "$(basename "${file}" .h)" meson.build || (echo "${file} missing from top-level meson.build" && exit 1); done - # Make sure we don't accidentally use `vector ...` instead of SIMDE_POWER_ALTIVEC_VECTOR(...) - - name: AltiVec raw vector keyword - run: find simde/ \( -name '*.c' -o -name '*.h' \) -exec grep -nP 'vector( +)((bool|signed|unsigned) +)?(double|float|long long|long|int|short|char)' {} + && exit 1 || exit 0 - # Check indentation of preprocessor directives. - - name: Preprocessor directive indentation - run: find simde/*/ -name 'avx*.h' -exec pcre2grep -M '{\n#' {} + && exit 1 || exit 0 - - name: Stray `&& 0` - run: git grep ' && 0' simde/ test/ && exit 1 || exit 0 - - x86: - runs-on: ubuntu-22.04 - strategy: - fail-fast: false - matrix: - isax: - - -DSIMDE_NATURAL_VECTOR_SIZE=256 -march=x86-64-v3 -mavx512bw -mavx512vl - # https://en.wikipedia.org/wiki/X86-64#Microarchitecture_levels - - -march=x86-64 -maes -mpclmul # the x86-64 baseline is CMOV, CX8, FPU, FXSR, MMX, OSFXSR, SCE, SSE, SSE2 - - -march=x86-64-v2 # CMPXCHG16B, LAHF-SAHF, POPCNT, SSE3, SSE4_1, SSE4_2, SSSE3 - - -march=x86-64-v3 # AVX, AVX2, BMI1, BMI2, F16C, FMA, LZCNT, MOVBE, OSXSAVE - - -march=x86-64-v4 # AVX512F, AVX512BW, AVX512CD, AVX512DQ, AVX512VL a.k.a. skylake+ (including zen4) - include: - - target: tgl - - isax: -march=x86-64-v4 -mcx16 -mxsave -mpclmul -mfsgsbase -mrdrnd -mhle -mrdseed -maes -mclflushopt -mxsavec -mxsaves -msgx -mpku -msha -mrdpid -mavx512vpopcntdq -mavx512ifma -mavx512vbmi -mavx512vnni -mavx512vbmi2 -mavx512bitalg -mvpclmulqdq -mgfni -mvaes # icelake - target: icl - - isax: -march=x86-64-v4 -mcx16 -mxsave -mpclmul -mfsgsbase -mrdrnd -mhle -mrdseed -maes -mclflushopt -mxsavec -mxsaves -msgx -mpku -msha -mrdpid -mavx512vpopcntdq -mavx512ifma -mavx512vbmi -mavx512vnni -mavx512vbmi2 -mavx512bitalg -mvpclmulqdq -mgfni -mvaes -mpconfig -mwbnoinvd -mclwb -mmovdiri -mmovdir64b -menqcmd -mcldemote -mptwrite -mwaitpkg -mserialize -mtsxldtrk -muintr -mavxvnni -mavx512fp16 # sapphire rapids without bf16 - # See https://github.com/simd-everywhere/simde/issues/1095 - target: spr - env: - CFLAGS: -Wall -Wextra -Werror ${{ matrix.isax }} - CXXFLAGS: -Wall -Wextra -Werror ${{ matrix.isax }} - INTEL_TARGET: ${{ matrix.target }} - steps: - - uses: actions/checkout@v4 - with: - submodules: recursive - - name: CPU Information - run: cat /proc/cpuinfo - - run: sudo apt-get update - - name: ccache - uses: hendrikmuhs/ccache-action@v1.2 - with: - key: ${{ github.job }}-${{ matrix.isax }} - - name: Install APT Dependencies - run: | - sudo apt-get install -y ninja-build ninja-build python3-pip parallel gcovr g++-12 gcc-12 - sudo apt-get purge -y gcc g++ - sudo ln -s /usr/bin/gcc-12 /usr/bin/gcc - sudo ln -s /usr/bin/g++-12 /usr/bin/g++ - sudo ln -s /usr/bin/gcov-12 /usr/bin/gcov - sudo python3 -m pip install meson==0.55.1 - - name: add ccache to the build path - run: | - export PATH="/usr/lib/ccache:/usr/local/opt/ccache/libexec:$PATH" - - name: Configure - run: meson setup build -Db_coverage=true || (cat build/meson-logs/meson-log.txt ; false) - - name: Test run native? - run: | - test/check-flags.sh query && echo Tests with $CFLAGS will be run natively - test/check-flags.sh query || echo Tests with $CFLAGS will be run using SDE - - name: Build - run: ninja -C build -v - - name: Test - run: meson test -C build --print-errorlogs --wrapper "${GITHUB_WORKSPACE}/test/check-flags.sh sde" $(meson test -C build --list | grep -v emul) - - name: Coverage Report - run: ninja -C build -v coverage-xml - - name: CodeCov.io - uses: codecov/codecov-action@v4 - with: - file: ./build/meson-logs/coverage.xml - env: - CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} - - x86-xop: - runs-on: ubuntu-22.04 - strategy: - fail-fast: false - env: - CFLAGS: -Wall -Wextra -Werror -march=bdver2 - CXXFLAGS: -Wall -Wextra -Werror -march=bdver2 - steps: - - uses: actions/checkout@v4 - with: - submodules: recursive - - name: CPU Information - run: cat /proc/cpuinfo - - name: ccache - uses: hendrikmuhs/ccache-action@v1.2 - with: - key: ${{ github.job }}- - - name: Install APT Dependencies - run: | - #sudo add-apt-repository ppa:aschultz/backports - sudo apt-get update - sudo apt-get install -y ninja-build ninja-build python3-pip parallel gcovr g++-12 gcc-12 qemu-user-static - sudo apt-get purge -y gcc g++ - sudo ln -s /usr/bin/gcc-12 /usr/bin/gcc - sudo ln -s /usr/bin/g++-12 /usr/bin/g++ - sudo ln -s /usr/bin/gcov-12 /usr/bin/gcov - sudo python3 -m pip install meson==0.55.1 - - name: add ccache to the build path - run: | - export PATH="/usr/lib/ccache:/usr/local/opt/ccache/libexec:$PATH" - - name: Configure - run: meson setup build -Db_coverage=true || (cat build/meson-logs/meson-log.txt ; false) - - name: Build - run: ninja -C build -v - # can't test until we find a combination of `gcc -march=` and `qemu -cpu` that both enable XOP and allows qemu to test it - # - name: Test - # run: meson test -C build --print-errorlogs --wrapper "qemu-amd64-static -cpu Opteron_G5-v1" - # - name: Coverage Report - # run: ninja -C build -v coverage-xml - # - name: CodeCov.io - # uses: codecov/codecov-action@v4 - # with: - # file: ./build/meson-logs/coverage.xml - # env: - # CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} - - emscripten: - runs-on: ubuntu-22.04 - strategy: - matrix: - variant: - - "32" - - "64" - - "32-relaxed" - - "64-relaxed" - steps: - - uses: actions/checkout@v4 - with: - submodules: recursive - - name: CPU Information - run: cat /proc/cpuinfo - - name: Install APT Dependencies - run: | - sudo apt-get update && \ - sudo apt-get install -y ninja-build ninja-build python3-pip parallel gcovr &&\ - sudo python3 -m pip install meson==0.55.1 - - name: Install emscripten - run: | - git clone https://github.com/emscripten-core/emsdk.git /opt/emsdk - cd /opt/emsdk - ./emsdk install tot - ./emsdk activate tot - source emsdk_env.sh - - name: Install v8 - run: | - sudo npm install jsvu -g - jsvu --os=linux64 --engines=v8 - sudo ln -s "$HOME/.jsvu/bin/v8" /usr/bin/v8 - ls -l /usr/bin/v8 - ls -l ~/.jsvu || true - /usr/bin/v8 --help - - name: Configure - run: meson setup build --optimization 2 --cross-file docker/cross-files/emscripten${{ matrix.variant }}.cross - - name: Build - run: meson compile -C build --verbose - - name: Test - run: meson test -C build --print-errorlogs - - native-aliases: - runs-on: ubuntu-22.04 - env: - CFLAGS: -DSIMDE_ENABLE_NATIVE_ALIASES -DSIMDE_NATIVE_ALIASES_TESTING -Wall -Wextra -Werror - CXXFLAGS: -DSIMDE_ENABLE_NATIVE_ALIASES -DSIMDE_NATIVE_ALIASES_TESTING -Wall -Wextra -Werror - steps: - - uses: actions/checkout@v4 - with: - submodules: recursive - - name: CPU Information - run: cat /proc/cpuinfo - - name: Install APT Dependencies - run: | - sudo apt-get update && \ - sudo apt-get -yq install libxml2-utils ninja-build parallel gcovr && \ - sudo python3 -m pip install meson==0.55.1 - - name: Convert - run: ./test/native-aliases.sh - - name: Configure - run: meson setup build -Db_coverage=true - - name: Build - run: ninja -C build -v - - name: Test - run: ninja -C build -v test - - name: Coverage Report - run: ninja -C build -v coverage-xml - - name: CodeCov.io - uses: codecov/codecov-action@v4 - with: - file: ./build/meson-logs/coverage.xml - env: - CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} - - sleef: - runs-on: ubuntu-22.04 - env: - CFLAGS: -march=native -Wall -Wextra -Werror - CXXFLAGS: -march=native -Wall -Wextra -Werror - steps: - - uses: actions/checkout@v4 - with: - submodules: recursive - - run: sudo apt-get update - - name: CPU Information - run: cat /proc/cpuinfo - - name: Install APT Dependencies - run: | - sudo apt-get install -y ninja-build ninja-build parallel gcovr libsleef-dev - sudo python3 -m pip install meson==0.55.1 - - name: Configure - run: meson setup build -Dsleef=enabled -Db_coverage=true - - name: Build - run: ninja -C build -v - - name: Test - run: meson test -C build --print-errorlogs $(meson test -C build --list | grep -v emul) - - name: Coverage Report - run: ninja -C build -v coverage-xml - - name: CodeCov.io - uses: codecov/codecov-action@v4 - with: - file: ./build/meson-logs/coverage.xml - env: - CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} - - gcc: - strategy: - fail-fast: false - matrix: - include: - - version: 9 - distro: ubuntu-20.04 - arch_flags: -march=native - - version: 10 - distro: ubuntu-20.04 - arch_flags: -march=native - - version: 10 - distro: ubuntu-20.04 - arch_flags: -ffast-math - ccache: 'true' - - version: 11 - distro: ubuntu-22.04 - arch_flags: -march=native - - version: 11 - distro: ubuntu-22.04 - arch_flags: -ffast-math - ccache: 'true' - - version: 12 - distro: ubuntu-22.04 - arch_flags: -march=native - - version: 12 - distro: ubuntu-22.04 - arch_flags: -ffast-math - ccache: 'true' - - version: 13 - distro: ubuntu-22.04 - arch_flags: -march=native - - version: 13 - distro: ubuntu-22.04 - arch_flags: -ffast-math - ccache: 'true' - runs-on: ${{ matrix.distro }} - env: - CFLAGS: ${{ matrix.arch_flags }} -Wall -Wextra -Werror - CXXFLAGS: ${{ matrix.arch_flags }} -Wall -Wextra -Werror - steps: - - uses: actions/checkout@v4 - with: - submodules: recursive - - name: CPU Information - run: cat /proc/cpuinfo - - name: Install APT Dependencies - run: | - sudo add-apt-repository ppa:ubuntu-toolchain-r/test - sudo apt-get update - sudo apt-get -yq install gcovr python3-pip ninja-build parallel gcc-${{ matrix.version }} g++-${{ matrix.version }} - sudo apt-get -y purge g++ gcc - sudo python3 -m pip install meson==0.55.1 - - name: ccache - uses: hendrikmuhs/ccache-action@v1.2 - if: ${{ matrix.ccache == 'true' }} - with: - key: ${{ github.job }}-${{ matrix.version }}-${{ matrix.distro }}-${{ matrix.arch_flags }} - - name: add ccache to the build path - run: | - export PATH="/usr/lib/ccache:/usr/local/opt/ccache/libexec:$PATH" - sudo ln -s /usr/bin/gcc-${{ matrix.version }} /usr/bin/gcc - sudo ln -s /usr/bin/g++-${{ matrix.version }} /usr/bin/g++ - sudo ln -s /usr/bin/gcov-${{ matrix.version }} /usr/bin/gcov - - name: Configure - run: meson setup build - - name: Build - run: meson compile -C build --verbose - - name: Test - run: meson test -C build --print-errorlogs $(meson test -C build --list | grep -v emul) - - gcc-qemu: - strategy: - fail-fast: false - matrix: - include: - - version: 12 - cross: armel - arch_gnu_abi: eabi - arch_deb: armel - arch_gnu: arm - distro: ubuntu-22.04 - - version: 12 - cross: armv7 - arch_gnu: arm - arch_gnu_abi: eabihf - arch_deb: armhf - distro: ubuntu-22.04 - - version: 12 - cross: aarch64 - arch_gnu: aarch64 - arch_deb: arm64 - distro: ubuntu-22.04 - - extra: -32bit - version: 12 - cross: armv8 - arch_gnu: arm - arch_gnu_abi: eabihf - arch_deb: armhf - distro: ubuntu-22.04 - - version: 12 - cross: riscv64 - arch_gnu: riscv64 - arch_deb: riscv64 - distro: ubuntu-22.04 - - extra: -O3 - version: 12 - cross: riscv64 - arch_gnu: riscv64 - arch_deb: riscv64 - distro: ubuntu-22.04 - - version: 12 - cross: s390x - arch_gnu: s390x - arch_deb: s390x - distro: ubuntu-22.04 - - version: 12 - cross: power9 - arch_gnu: powerpc64le - arch_deb: ppc64el - distro: ubuntu-22.04 - # - version: 12 # needs newer Ubuntu version (23.04+) - # cross: mips64el - # arch_gnu: mips64el - # arch_gnu_abi: abi64 - # arch_deb: mips64el - # distro: ubuntu-22.04 - runs-on: ${{ matrix.distro }} - steps: - - uses: actions/checkout@v4 - with: - submodules: recursive - - run: sudo apt-get update - - name: CPU Information - run: cat /proc/cpuinfo - - name: Install APT Dependencies - run: | - sudo add-apt-repository ppa:savoury1/virtualisation - sudo apt-get update -y - sudo apt-get -yq install ninja-build parallel \ - gcc-${{ matrix.version }}-${{ matrix.arch_gnu }}-linux-gnu${{ matrix.arch_gnu_abi }} \ - g++-${{ matrix.version }}-${{ matrix.arch_gnu }}-linux-gnu${{ matrix.arch_gnu_abi }} binfmt-support \ - qemu-user-static python3-pip libc6-${{ matrix.arch_deb }}-cross libstdc++-${{ matrix.version }}-dev-${{ matrix.arch_deb }}-cross - sudo python3 -m pip install meson==0.55.1 - - name: ccache - uses: hendrikmuhs/ccache-action@v1.2 - with: - key: ${{ github.job }}-${{ matrix.distro }}-${{ matrix.cross }} - - name: add ccache to the build path - run: | - export PATH="/usr/lib/ccache:/usr/local/opt/ccache/libexec:$PATH" - - name: Configure - run: meson setup --cross-file=docker/cross-files/${{ matrix.cross }}-gcc-${{ matrix.version }}${{ matrix.extra}}-ccache.cross build - - name: Build - run: ninja -C build -v - - name: Test - run: meson test -C build --print-errorlogs --print-errorlogs $(meson test -C build --list | grep -v emul) - - clang-qemu-rvv: - strategy: - fail-fast: false - matrix: - include: - - version: 17 - cross: riscv64+rvv_vlen128_elen64 - arch_gnu: riscv64 - arch_deb: riscv64 - distro: ubuntu-22.04 - - version: 17 - cross: riscv64+rvv_vlen256_elen64 - arch_gnu: riscv64 - arch_deb: riscv64 - distro: ubuntu-22.04 - - version: 17 - cross: riscv64+rvv_vlen512_elen64 - arch_gnu: riscv64 - arch_deb: riscv64 - distro: ubuntu-22.04 - - version: 17 - cross: riscv64+rvv_vlen128_elen64_zvfh - arch_gnu: riscv64 - arch_deb: riscv64 - distro: ubuntu-22.04 - - version: 17 - cross: riscv64+rvv_vlen256_elen64_zvfh - arch_gnu: riscv64 - arch_deb: riscv64 - distro: ubuntu-22.04 - - version: 17 - cross: riscv64+rvv_vlen512_elen64_zvfh - arch_gnu: riscv64 - arch_deb: riscv64 - distro: ubuntu-22.04 - runs-on: ${{ matrix.distro }} - container: - image: amd64/ubuntu:23.10 - steps: - - run: apt-get update - - name: Install git - run: | - apt-get install -y git - - uses: actions/checkout@v4 - with: - submodules: recursive - - name: CPU Information - run: cat /proc/cpuinfo - - name: Install APT Dependencies - run: | - apt-get install -y python3 python3-pip git ninja-build pkg-config libglib2.0-dev \ - lsb-release wget software-properties-common gnupg qemu-user pipx - apt-get install -y clang-${{ matrix.version }} lldb-${{ matrix.version }} lld-${{ matrix.version }} - #add-apt-repository ppa:savoury1/virtualisation - #add-apt-repository ppa:savoury1/display - apt-get update -y - apt-get -yq install ninja-build parallel \ - binfmt-support libc6-${{ matrix.arch_deb }}-cross \ - libstdc++-12-dev-${{ matrix.arch_deb }}-cross binutils-${{ matrix.arch_gnu }}-linux-gnu - apt install meson - - name: ccache - uses: hendrikmuhs/ccache-action@v1.2 - with: - key: ${{ github.job }}-${{ matrix.distro }}-${{ matrix.cross }} - - name: add ccache to the build path - 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 \ - || (cat build/meson-logs/meson-log.txt ; false) - - name: Build - run: ninja -C build -v - - name: Test - run: meson test -C build --print-errorlogs --print-errorlogs $(meson test -C build --list | grep -v emul) - - clang-qemu: - strategy: - fail-fast: false - matrix: - include: - - version: 17 - cross: armv7 - arch_deb: armhf - arch_gnu_abi: eabihf - arch_gnu: arm - distro: ubuntu-22.04 - - version: 17 - cross: aarch64 - arch_gnu: aarch64 - arch_deb: arm64 - distro: ubuntu-22.04 - - version: 17 - cross: armel - arch_gnu_abi: eabi - arch_deb: armel - arch_gnu: arm - distro: ubuntu-22.04 - - version: 17 - cross: riscv64 - arch_gnu: riscv64 - arch_deb: riscv64 - distro: ubuntu-22.04 - # - version: 17 - # cross: s390x - # arch_gnu: s390x - # arch_deb: s390x - # distro: ubuntu-22.04 - - version: 17 - cross: ppc64el - arch_deb: ppc64el - arch_gnu: powerpc64le - distro: ubuntu-22.04 - # - version: 17 - # cross: mips64el # needs newer Ubuntu (23.04+) - # arch_deb: mips64el - # arch_gnu: mips64el - # arch_gnu_abi: abi64 - # distro: ubuntu-22.04 - runs-on: ${{ matrix.distro }} - steps: - - uses: actions/checkout@v4 - with: - submodules: recursive - - run: sudo apt-get update - - name: CPU Information - run: cat /proc/cpuinfo - - name: Install APT Dependencies - run: | - sudo add-apt-repository ppa:savoury1/virtualisation - sudo add-apt-repository ppa:savoury1/build-tools - 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 }} \ - qemu-user-static python3-pip libc6-${{ matrix.arch_deb }}-cross libstdc++-12-dev-${{ matrix.arch_deb }}-cross \ - binutils-${{ matrix.arch_gnu }}-linux-gnu${{ matrix.arch_gnu_abi }} - sudo python3 -m pip install meson==0.55.1 - - name: ccache - uses: hendrikmuhs/ccache-action@v1.2 - with: - key: ${{ github.job }}-${{ matrix.distro }}-${{ matrix.cross }} - - name: add ccache to the build path - 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 \ - || (cat build/meson-logs/meson-log.txt ; false) - - name: Build - run: ninja -C build -v - - name: Test - run: meson test -C build --print-errorlogs --print-errorlogs $(meson test -C build --list | grep -v emul) - - clang: - strategy: - fail-fast: false - matrix: - include: - - version: "7" - distro: ubuntu-20.04 - arch_flags: -march=native - # clang-8 is tested on Semaphore-CI https://nemequ.semaphoreci.com/projects/simde - - version: "9" - distro: ubuntu-20.04 - arch_flags: -march=native - # clang-10 is tested on Semaphore-CI https://nemequ.semaphoreci.com/projects/simde - - version: "11" - distro: ubuntu-22.04 - arch_flags: -march=native - - version: "12" - distro: ubuntu-20.04 - arch_flags: -march=native - - version: "12" - distro: ubuntu-20.04 - arch_flags: -ffast-math - ccache: 'true' - - version: "13" - distro: ubuntu-22.04 - arch_flags: -march=native - - version: "13" - distro: ubuntu-22.04 - arch_flags: -ffast-math - ccache: 'true' - - version: "14" - distro: ubuntu-22.04 - arch_flags: -march=native - - version: "14" - distro: ubuntu-22.04 - arch_flags: -ffast-math - ccache: 'true' - - version: "15" - distro: ubuntu-22.04 - arch_flags: -march=native - - version: "15" - 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' - - version: "17" - distro: ubuntu-22.04 - arch_flags: -march=native -Wno-unsafe-buffer-usage - - version: "17" - distro: ubuntu-22.04 - arch_flags: -ffast-math -Wno-unsafe-buffer-usage - ccache: 'true' - - version: "17" - distro: ubuntu-22.04 - arch_flags: -march=native -Wno-unsafe-buffer-usage -O2 - runs-on: ${{ matrix.distro }} - env: - CFLAGS: ${{ matrix.arch_flags }} -Wall -Weverything -Werror -fno-lax-vector-conversions - CXXFLAGS: ${{ matrix.arch_flags }} -Wall -Weverything -Werror -fno-lax-vector-conversions - steps: - - uses: actions/checkout@v4 - with: - submodules: recursive - - name: CPU Information - run: cat /proc/cpuinfo - - name: Install APT Dependencies - run: | - sudo add-apt-repository ppa:ubuntu-toolchain-r/test - sudo add-apt-repository ppa:savoury1/build-tools - sudo add-apt-repository ppa:savoury1/display - sudo add-apt-repository ppa:savoury1/llvm-defaults-16 - 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.1 - sudo rm /usr/bin/gcc /usr/bin/g++ /usr/bin/cc /usr/bin/c++ - sudo ln -s $(command -v clang-${{ matrix.version }}) /usr/bin/cc - sudo ln -s $(command -v clang-${{ matrix.version }}) /usr/bin/c++ - - name: ccache - uses: hendrikmuhs/ccache-action@v1.2 - if: ${{ matrix.ccache == 'true' }} - with: - key: ${{ github.job }}-${{ matrix.version }}-${{ matrix.distro }}-${{ matrix.arch_flags }} - - name: add ccache to the build path - if: ${{ matrix.ccache == 'true' }} - run: | - export PATH="/usr/lib/ccache:/usr/local/opt/ccache/libexec:$PATH" - - name: Configure - run: meson setup build - - name: Build - run: meson compile -C build --verbose - - name: Test - run: meson test -C build --print-errorlogs $(meson test -C build --list | grep -v emul) - - macos: - strategy: - fail-fast: false - matrix: - # https://www.jessesquires.com/blog/2020/01/06/selecting-an-xcode-version-on-github-ci/ - # https://github.com/actions/runner-images/blob/main/images/macos/macos-12-Readme.md#xcode - # https://github.com/actions/runner-images/blob/main/images/macos/macos-13-Readme.md#xcode - # https://github.com/actions/runner-images/blob/main/images/macos/macos-14-arm64-Readme.md#xcode - # https://trac.macports.org/wiki/XcodeVersionInfo - include: - - xcode: "13.1" - os: macos-12 - arch_flags: -Wno-poison-system-directories # due to meson test - - xcode: "13.3.1" - os: macos-12 - arch_flags: -Wno-poison-system-directories # due to meson test - - xcode: "14.2" - os: macos-13 - arch_flags: -Wno-poison-system-directories # due to meson test - - xcode: "14.3.1" - os: macos-13 - arch_flags: -Wno-poison-system-directories # due to meson test - - xcode: "15.0.1" - os: macos-13 - arch_flags: -Wno-poison-system-directories # due to meson test - - xcode: "15.1" - os: macos-13 - arch_flags: -Wno-poison-system-directories # due to meson test - - xcode: "15.2" - os: macos-13 - arch_flags: -Wno-poison-system-directories # due to meson test - - xcode: "14.3.1" - os: macos-14 # arm64 - arch_flags: -march=native -Wno-poison-system-directories - # "-Wno-poison-system-directories": due to meson test - # "-march=native": without, or with -mcpu=apple-m1 then unavailable __ARM_FEATURE_s get enabled - - xcode: "15.2" - os: macos-14 # arm64 - arch_flags: -march=native -Wno-poison-system-directories - # "-Wno-poison-system-directories": due to meson test - # "-march=native": without, or with -mcpu=apple-m1 then unavailable __ARM_FEATURE_s get enabled - - xcode: "15.3" - os: macos-14 # arm64 - arch_flags: -march=native -Wno-poison-system-directories - # "-Wno-poison-system-directories": due to meson test - # "-march=native": without, or with -mcpu=apple-m1 then unavailable __ARM_FEATURE_s get enabled - - xcode: "15.4" - os: macos-14 # arm64 - arch_flags: -march=native -Wno-poison-system-directories - # "-Wno-poison-system-directories": due to meson test - # "-march=native": without, or with -mcpu=apple-m1 then unavailable __ARM_FEATURE_s get enabled - - xcode: "16.0" - os: macos-14 # arm64 - arch_flags: -march=native -Wno-poison-system-directories - # "-Wno-poison-system-directories": due to meson test - # "-march=native": without, or with -mcpu=apple-m1 then unavailable __ARM_FEATURE_s get enabled - runs-on: ${{ matrix.os }} - env: - DEVELOPER_DIR: /Applications/Xcode_${{ matrix.xcode }}.app - CFLAGS: ${{ matrix.arch_flags }} -Wall -Weverything -Werror -Wno-complex-component-init - CXXFLAGS: ${{ matrix.arch_flags }} -Wall -Weverything -Werror -Wno-complex-component-init - steps: - - uses: actions/checkout@v4 - with: - submodules: recursive - # - name: System Information - # run: system_profiler - - name: Compiler version - run: cc --version - - name: ccache - uses: hendrikmuhs/ccache-action@v1.2 - with: - key: ${{ github.job }}-${{ matrix.xcode }} - - name: Python install bug workaround # https://github.com/actions/setup-python/issues/577 - run: | - find /usr/local/bin -type l -exec sh -c 'readlink -f "$1" \ - | grep -q ^/Library/Frameworks/Python.framework/Versions/' _ {} \; -exec rm -v {} \; - - name: Install Homebrew Dependencies - run: brew install meson ninja # gcovr - - name: Configure - run: meson setup build || (cat build/meson-logs/meson-log.txt ; false) # -Db_coverage=true - - name: Build - run: ninja -C build -v - - name: Test - run: meson test -C build --print-errorlogs $(meson test -C build --list | grep -v emul) - # - name: Coverage Report - # run: ninja -C build -v coverage-xml - # - name: CodeCov.io - # uses: codecov/codecov-action@v4 - # with: - # file: ./build/meson-logs/coverage.xml - # env: - # CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} - - icc: - runs-on: ubuntu-22.04 - env: - CC: /home/runner/.local/bin/icx - CXX: /home/runner/.local/bin/icpx - CFLAGS: -Wall -Werror -march=native -fp-model precise - CXXFLAGS: -Wall -Werror -march=native -fp-model precise - steps: - - uses: actions/checkout@v4 - - name: CPU Information - run: cat /proc/cpuinfo - - name: Install APT Dependencies - run: sudo apt-get install -y ninja-build python3-pip && sudo pip install meson==0.64 - - name: Install ICC - run: | - # download the key to system keyring - wget -O- https://apt.repos.intel.com/intel-gpg-keys/GPG-PUB-KEY-INTEL-SW-PRODUCTS.PUB \ - | gpg --dearmor | sudo tee /usr/share/keyrings/oneapi-archive-keyring.gpg > /dev/null - # add signed entry to apt sources and configure the APT client to use Intel repository: - echo "deb [signed-by=/usr/share/keyrings/oneapi-archive-keyring.gpg] https://apt.repos.intel.com/oneapi all main" | sudo tee /etc/apt/sources.list.d/oneAPI.list - sudo apt-get update - sudo apt-get install -y intel-oneapi-compiler-dpcpp-cpp - mkdir -p ~/.local/bin/ || true - for exe in icx icpx; do - printf '#!/bin/bash\nARGS="$@"\nsource /opt/intel/oneapi/compiler/latest/env/vars.sh >/dev/null\n%s ${ARGS}\n' "${exe}" > ~/.local/bin/"${exe}" - chmod 0755 ~/.local/bin/"${exe}"; - done - - name: Configure - run: meson setup build - - name: Build - run: ninja -C build -v - - name: Test - run: meson test -C build --print-errorlogs $(meson test -C build --list | grep -v emul) - - msvc-arm64: - name: Windows MSVC-AArch64 - runs-on: [windows-latest] - env: - CFLAGS: /WX /Z7 - CXXFLAGS: /WX /Z7 - steps: - - name: Checkout - uses: actions/checkout@v4 - with: - submodules: recursive - - name: Install Meson, Ninja and coverage - run: | - python3 -m pip install --upgrade ninja meson - choco install opencppcoverage codecov - - name: Use ARM64 Developer Command Prompt - uses: ilammy/msvc-dev-cmd@v1 - with: - arch: amd64_arm64 - - name: Configure and Build - run: | - meson --backend=ninja build --cross-file test/arm64cl.txt - ninja -C build test linux-gcc-loongarch64: - runs-on: ubuntu-22.04 + runs-on: ubuntu-24.04 steps: - uses: actions/checkout@v4 - name: CPU Information run: cat /proc/cpuinfo - name: Install APT Dependencies run: | - sudo add-apt-repository ppa:savoury1/virtualisation sudo apt-get install -y ninja-build ninja-build meson qemu-user-static - name: Download and install loongarch64-toolchain run: | - wget https://github.com/loongson/build-tools/releases/download/2022.09.06/loongarch64-clfs-7.3-cross-tools-gcc-glibc.tar.xz - tar -xf loongarch64-clfs-7.3-cross-tools-gcc-glibc.tar.xz -C /opt + wget https://github.com/loongson/build-tools/releases/download/2024.08.08/x86_64-cross-tools-loongarch64-binutils_2.43-gcc_14.2.0-glibc_2.40.tar.xz + tar -xf x86_64-cross-tools-loongarch64-binutils_2.43-gcc_14.2.0-glibc_2.40.tar.xz -C /opt - name: ccache uses: hendrikmuhs/ccache-action@v1.2 with: - key: ${{ github.job }}-loongarch64-gcc-13 + key: ${{ github.job }}-binutils_2.43-gcc_14.2.0-glibc_2.40 - name: set env run: | - echo "LD_LIBRARY_PATH=/opt/cross-tools/target/usr/lib64:/opt/cross-tools/loongarch64-unknown-linux-gnu/lib64:$LD_LIBRARY_PATH" >> $GITHUB_ENV + echo "LD_LIBRARY_PATH=/opt/cross-tools/target/usr/lib64:/opt/cross-tools/loongarch64-unknown-linux-gnu/lib:$LD_LIBRARY_PATH" >> $GITHUB_ENV echo "PATH=$GITHUB_WORKSPACE:/opt/cross-tools/bin:$PATH" >> $GITHUB_ENV - - name: Disable SVML tests - run: | - sed -i "/svml/d" test/x86/meson.build - rm test/x86/svml.c - echo "Due to the qemu versions 7.2 through 8.0 causing timeouts in four sets of test cases," - echo "the SVML tests have been temporarily disabled." - - name: Disable RND*X tests - run: | - sed -i "/rndx/d" meson.build - sed -i "/rnd..x/d" meson.build - rm test/arm/neon/rndx.c test/arm/neon/rnd32x.c test/arm/neon/rnd64x.c - echo "Due to the qemu versions 7.2 through 8.0 causing timeouts in four sets of test cases," - echo "the RNDX, RND32X, and RND64X tests have been temporarily disabled." - - name: Configure - run: meson setup build --cross-file=docker/cross-files/loongarch64-gcc-13-ccache.cross + # - name: Disable SVML tests + # run: | + # sed -i "/svml/d" test/x86/meson.build + # rm test/x86/svml.c + # echo "Due to the qemu versions 7.2 through 8.0 causing timeouts in four sets of test cases," + # echo "the SVML tests have been temporarily disabled." + # - name: Disable RND*X tests + # run: | + # sed -i "/rndx/d" meson.build + # sed -i "/rnd..x/d" meson.build + # rm test/arm/neon/rndx.c test/arm/neon/rnd32x.c test/arm/neon/rnd64x.c + # echo "Due to the qemu versions 7.2 through 8.0 causing timeouts in four sets of test cases," + # echo "the RNDX, RND32X, and RND64X tests have been temporarily disabled." + - name: Configure + run: meson setup build --cross-file=docker/cross-files/loongarch64-gcc-14-ccache.cross || (cat build/meson-logs/meson-log.txt ; false) - name: Build run: meson compile -C build -v - name: Test diff --git a/docker/cross-files/loongarch64-gcc-14-ccache.cross b/docker/cross-files/loongarch64-gcc-14-ccache.cross new file mode 100644 index 000000000..9abfb11ee --- /dev/null +++ b/docker/cross-files/loongarch64-gcc-14-ccache.cross @@ -0,0 +1,20 @@ +[binaries] +c = ['ccache', 'loongarch64-unknown-linux-gnu-gcc'] +cpp = ['ccache', 'loongarch64-unknown-linux-gnu-g++'] +ar = 'loongarch64-unknown-linux-gnu-ar' +strip = 'loongarch64-unknown-linux-gnu-strip' +objcopy = 'loongarch64-unknown-linux-gnu-objcopy' +ld = 'loongarch64-unknown-linux-gnu-ld' +exe_wrapper = ['qemu-loongarch64-static', '-L', '/opt/cross-tools/target/usr', '-cpu', 'la464'] + +[properties] +c_args = ['-march=loongarch64', '-Wextra', '-Werror', '-mlsx'] +cpp_args = ['-march=loongarch64', '-Wextra', '-Werror', '-mlsx'] +#c_args = ['-march=la464', '-Wextra', '-Werror'] +#cpp_args = ['-march=la464', '-Wextra', '-Werror'] + +[host_machine] +system = 'linux' +cpu_family = 'loongarch64' +cpu = 'loongarch64' +endian = 'little' From d3a2b81fa80d030b5b9e2abd50a034bc11c757e7 Mon Sep 17 00:00:00 2001 From: "Michael R. Crusoe" Date: Wed, 11 Sep 2024 12:10:05 +0200 Subject: [PATCH 3/4] try with gcc-14 from Ubuntu Oracular (24.10 devel) --- .github/workflows/ci.yml | 16 ++++++---------- .../cross-files/loongarch64-gcc-14-ccache.cross | 14 +++++++------- 2 files changed, 13 insertions(+), 17 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index e9483bf5e..e49626c8b 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -18,25 +18,21 @@ jobs: linux-gcc-loongarch64: runs-on: ubuntu-24.04 + container: amd64/ubuntu:24.10 steps: - uses: actions/checkout@v4 - name: CPU Information run: cat /proc/cpuinfo - name: Install APT Dependencies run: | - sudo apt-get install -y ninja-build ninja-build meson qemu-user-static - - name: Download and install loongarch64-toolchain - run: | - wget https://github.com/loongson/build-tools/releases/download/2024.08.08/x86_64-cross-tools-loongarch64-binutils_2.43-gcc_14.2.0-glibc_2.40.tar.xz - tar -xf x86_64-cross-tools-loongarch64-binutils_2.43-gcc_14.2.0-glibc_2.40.tar.xz -C /opt + apt-get update && apt-get install -y --no-install-recommends \ + ninja-build ninja-build meson qemu-user-static binfmt-support \ + libc6-loong64-cross libstdc++-14-dev-loong64-cross \ + gcc-14-loongarch64-linux-gnu g++-14-loongarch64-linux-gnu - name: ccache uses: hendrikmuhs/ccache-action@v1.2 with: - key: ${{ github.job }}-binutils_2.43-gcc_14.2.0-glibc_2.40 - - name: set env - run: | - echo "LD_LIBRARY_PATH=/opt/cross-tools/target/usr/lib64:/opt/cross-tools/loongarch64-unknown-linux-gnu/lib:$LD_LIBRARY_PATH" >> $GITHUB_ENV - echo "PATH=$GITHUB_WORKSPACE:/opt/cross-tools/bin:$PATH" >> $GITHUB_ENV + key: ${{ github.job }} # - name: Disable SVML tests # run: | # sed -i "/svml/d" test/x86/meson.build diff --git a/docker/cross-files/loongarch64-gcc-14-ccache.cross b/docker/cross-files/loongarch64-gcc-14-ccache.cross index 9abfb11ee..b01f9544b 100644 --- a/docker/cross-files/loongarch64-gcc-14-ccache.cross +++ b/docker/cross-files/loongarch64-gcc-14-ccache.cross @@ -1,11 +1,11 @@ [binaries] -c = ['ccache', 'loongarch64-unknown-linux-gnu-gcc'] -cpp = ['ccache', 'loongarch64-unknown-linux-gnu-g++'] -ar = 'loongarch64-unknown-linux-gnu-ar' -strip = 'loongarch64-unknown-linux-gnu-strip' -objcopy = 'loongarch64-unknown-linux-gnu-objcopy' -ld = 'loongarch64-unknown-linux-gnu-ld' -exe_wrapper = ['qemu-loongarch64-static', '-L', '/opt/cross-tools/target/usr', '-cpu', 'la464'] +c = ['ccache', 'loongarch64-linux-gnu-gcc-14'] +cpp = ['ccache', 'loongarch64-linux-gnu-g++-14'] +ar = 'loongarch64-linux-gnu-gcc-ar-14' +strip = 'loongarch64-linux-gnu-strip' +objcopy = 'loongarch64-linux-gnu-objcopy' +ld = 'loongarch64-linux-gnu-ld' +exe_wrapper = ['qemu-loongarch64-static', '-L', '/usr/loongarch64-linux-gnu/', '-cpu', 'la464'] [properties] c_args = ['-march=loongarch64', '-Wextra', '-Werror', '-mlsx'] From 2b72d26748f0c551c92bfb8b90e7d4f1b632169b Mon Sep 17 00:00:00 2001 From: "Michael R. Crusoe" Date: Wed, 11 Sep 2024 13:46:19 +0200 Subject: [PATCH 4/4] Revert "x86/sse: Fix type convert error for LSX." This reverts commit 20fb1868751cce0de1b7665133cb28a13ffc0d70. --- simde/x86/sse.h | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/simde/x86/sse.h b/simde/x86/sse.h index e5b694369..a2de5d140 100644 --- a/simde/x86/sse.h +++ b/simde/x86/sse.h @@ -674,7 +674,7 @@ simde_x_mm_round_ps (simde__m128 a, int rounding, int lax_rounding) #elif defined(SIMDE_ARM_NEON_A32V8_NATIVE) r_.neon_f32 = vrndnq_f32(a_.neon_f32); #elif defined(SIMDE_LOONGARCH_LSX_NATIVE) - r_.lsx_f32 = __lsx_vfrintrne_s(a_.lsx_f32); + r_.lsx_i64 = __lsx_vfrintrne_s(a_.lsx_f32); #elif defined(SIMDE_WASM_SIMD128_NATIVE) r_.wasm_v128 = wasm_f32x4_nearest(a_.wasm_v128); #elif defined(simde_math_roundevenf) @@ -693,7 +693,7 @@ simde_x_mm_round_ps (simde__m128 a, int rounding, int lax_rounding) #elif defined(SIMDE_ARM_NEON_A32V8_NATIVE) r_.neon_f32 = vrndmq_f32(a_.neon_f32); #elif defined(SIMDE_LOONGARCH_LSX_NATIVE) - r_.lsx_f32 = __lsx_vfrintrm_s(a_.lsx_f32); + r_.lsx_i64 = __lsx_vfrintrm_s(a_.lsx_f32); #elif defined(SIMDE_WASM_SIMD128_NATIVE) r_.wasm_v128 = wasm_f32x4_floor(a_.wasm_v128); #elif defined(simde_math_floorf) @@ -712,7 +712,7 @@ simde_x_mm_round_ps (simde__m128 a, int rounding, int lax_rounding) #elif defined(SIMDE_ARM_NEON_A32V8_NATIVE) r_.neon_f32 = vrndpq_f32(a_.neon_f32); #elif defined(SIMDE_LOONGARCH_LSX_NATIVE) - r_.lsx_f32 = __lsx_vfrintrp_s(a_.lsx_f32); + r_.lsx_i64 = __lsx_vfrintrp_s(a_.lsx_f32); #elif defined(SIMDE_WASM_SIMD128_NATIVE) r_.wasm_v128 = wasm_f32x4_ceil(a_.wasm_v128); #elif defined(simde_math_ceilf) @@ -731,7 +731,7 @@ simde_x_mm_round_ps (simde__m128 a, int rounding, int lax_rounding) #elif defined(SIMDE_ARM_NEON_A32V8_NATIVE) r_.neon_f32 = vrndq_f32(a_.neon_f32); #elif defined(SIMDE_LOONGARCH_LSX_NATIVE) - r_.lsx_f32 = __lsx_vfrintrz_s(a_.lsx_f32); + r_.lsx_i64 = __lsx_vfrintrz_s(a_.lsx_f32); #elif defined(SIMDE_WASM_SIMD128_NATIVE) r_.wasm_v128 = wasm_f32x4_trunc(a_.wasm_v128); #elif defined(simde_math_truncf)