diff --git a/.github/workflows/cmake-wasm.yml b/.github/workflows/cmake-wasm.yml index 63567ac..66039b2 100644 --- a/.github/workflows/cmake-wasm.yml +++ b/.github/workflows/cmake-wasm.yml @@ -23,7 +23,7 @@ jobs: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: Downloading wasi-sdk run: | @@ -64,7 +64,7 @@ jobs: C_FLAGS: ['', '-msimd128', '-msse -msse2 -msimd128', '-msse -msse2 -msse3 -msse4 -msimd128'] runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: Setup emsdk uses: mymindstorm/setup-emsdk@v12 diff --git a/.github/workflows/meson-wasm.yml b/.github/workflows/meson-wasm.yml index dac2c67..bd913a2 100644 --- a/.github/workflows/meson-wasm.yml +++ b/.github/workflows/meson-wasm.yml @@ -18,7 +18,7 @@ jobs: C_FLAGS: ['', '-msimd128', '-msse -msse2 -msimd128', '-msse -msse2 -msse3 -msse4 -msimd128'] runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: Setup emsdk uses: mymindstorm/setup-emsdk@v13 diff --git a/.readthedocs.yaml b/.readthedocs.yaml new file mode 100644 index 0000000..cf6b4b3 --- /dev/null +++ b/.readthedocs.yaml @@ -0,0 +1,39 @@ +# Read the Docs configuration file for Sphinx projects +# See https://docs.readthedocs.io/en/stable/config-file/v2.html for details + +# Required +version: 2 + +# Set the OS, Python version and other tools you might need +build: + os: ubuntu-22.04 + tools: + python: "3.12" + # You can also specify other tool versions: + # nodejs: "20" + # rust: "1.70" + # golang: "1.20" + +# Build documentation in the "docs/" directory with Sphinx +sphinx: + configuration: docs/source/conf.py + # You can configure Sphinx to use a different builder, for instance use the dirhtml builder for simpler URLs + # builder: "dirhtml" + # Fail on all warnings to avoid broken references + # fail_on_warning: true + +# Optionally build your docs in additional formats such as PDF and ePub +# formats: +# - pdf +# - epub + +# Optional but recommended, declare the Python requirements required +# to build your documentation +# See https://docs.readthedocs.io/en/stable/guides/reproducible-builds.html +# python: +# install: +# - requirements: docs/requirements.txt + +python: + install: + - requirements: docs/requirements.txt \ No newline at end of file diff --git a/docs/requirements.txt b/docs/requirements.txt new file mode 100644 index 0000000..1ee13a2 --- /dev/null +++ b/docs/requirements.txt @@ -0,0 +1,4 @@ +# Defining the exact version will make sure things don't break +sphinx==5.3.0 +sphinx_rtd_theme==1.1.1 +readthedocs-sphinx-search==0.1.1 \ No newline at end of file diff --git a/include/cglm/simd/arm.h b/include/cglm/simd/arm.h index 1adc735..e8507d7 100644 --- a/include/cglm/simd/arm.h +++ b/include/cglm/simd/arm.h @@ -174,7 +174,7 @@ glmm_fnmadd(float32x4_t a, float32x4_t b, float32x4_t c) { static inline float32x4_t glmm_fmsub(float32x4_t a, float32x4_t b, float32x4_t c) { - return glmm_fmadd(vnegq_f32(c), a, b); + return glmm_fmadd(a, b, vnegq_f32(c)); } static inline diff --git a/test/tests.h b/test/tests.h index 48d135e..37f8abb 100644 --- a/test/tests.h +++ b/test/tests.h @@ -532,6 +532,12 @@ TEST_DECLARE(glmc_vec2_muladd) TEST_DECLARE(glmc_vec2_muladds) TEST_DECLARE(glmc_vec2_maxadd) TEST_DECLARE(glmc_vec2_minadd) +TEST_DECLARE(glmc_vec2_subsub) +TEST_DECLARE(glmc_vec2_addsub) +TEST_DECLARE(glmc_vec2_mulsub) +TEST_DECLARE(glmc_vec2_mulsubs) +TEST_DECLARE(glmc_vec2_maxsub) +TEST_DECLARE(glmc_vec2_minsub) TEST_DECLARE(glmc_vec2_negate_to) TEST_DECLARE(glmc_vec2_negate) TEST_DECLARE(glmc_vec2_normalize) @@ -675,6 +681,12 @@ TEST_DECLARE(glmc_vec3_muladd) TEST_DECLARE(glmc_vec3_muladds) TEST_DECLARE(glmc_vec3_maxadd) TEST_DECLARE(glmc_vec3_minadd) +TEST_DECLARE(glmc_vec3_subsub) +TEST_DECLARE(glmc_vec3_addsub) +TEST_DECLARE(glmc_vec3_mulsub) +TEST_DECLARE(glmc_vec3_mulsubs) +TEST_DECLARE(glmc_vec3_maxsub) +TEST_DECLARE(glmc_vec3_minsub) TEST_DECLARE(glmc_vec3_negate_to) TEST_DECLARE(glmc_vec3_negate) TEST_DECLARE(glmc_vec3_normalize) @@ -835,6 +847,12 @@ TEST_DECLARE(glmc_vec4_muladd) TEST_DECLARE(glmc_vec4_muladds) TEST_DECLARE(glmc_vec4_maxadd) TEST_DECLARE(glmc_vec4_minadd) +TEST_DECLARE(glmc_vec4_subsub) +TEST_DECLARE(glmc_vec4_addsub) +TEST_DECLARE(glmc_vec4_mulsub) +TEST_DECLARE(glmc_vec4_mulsubs) +TEST_DECLARE(glmc_vec4_maxsub) +TEST_DECLARE(glmc_vec4_minsub) TEST_DECLARE(glmc_vec4_negate_to) TEST_DECLARE(glmc_vec4_negate) TEST_DECLARE(glmc_vec4_normalize) @@ -1532,6 +1550,12 @@ TEST_LIST { TEST_ENTRY(glmc_vec2_muladds) TEST_ENTRY(glmc_vec2_maxadd) TEST_ENTRY(glmc_vec2_minadd) + TEST_ENTRY(glmc_vec2_subsub) + TEST_ENTRY(glmc_vec2_addsub) + TEST_ENTRY(glmc_vec2_mulsub) + TEST_ENTRY(glmc_vec2_mulsubs) + TEST_ENTRY(glmc_vec2_maxsub) + TEST_ENTRY(glmc_vec2_minsub) TEST_ENTRY(glmc_vec2_negate_to) TEST_ENTRY(glmc_vec2_negate) TEST_ENTRY(glmc_vec2_normalize) @@ -1674,6 +1698,12 @@ TEST_LIST { TEST_ENTRY(glmc_vec3_muladds) TEST_ENTRY(glmc_vec3_maxadd) TEST_ENTRY(glmc_vec3_minadd) + TEST_ENTRY(glmc_vec3_subsub) + TEST_ENTRY(glmc_vec3_addsub) + TEST_ENTRY(glmc_vec3_mulsub) + TEST_ENTRY(glmc_vec3_mulsubs) + TEST_ENTRY(glmc_vec3_maxsub) + TEST_ENTRY(glmc_vec3_minsub) TEST_ENTRY(glmc_vec3_negate_to) TEST_ENTRY(glmc_vec3_negate) TEST_ENTRY(glmc_vec3_normalize) @@ -1834,6 +1864,12 @@ TEST_LIST { TEST_ENTRY(glmc_vec4_muladds) TEST_ENTRY(glmc_vec4_maxadd) TEST_ENTRY(glmc_vec4_minadd) + TEST_ENTRY(glmc_vec4_subsub) + TEST_ENTRY(glmc_vec4_addsub) + TEST_ENTRY(glmc_vec4_mulsub) + TEST_ENTRY(glmc_vec4_mulsubs) + TEST_ENTRY(glmc_vec4_maxsub) + TEST_ENTRY(glmc_vec4_minsub) TEST_ENTRY(glmc_vec4_negate_to) TEST_ENTRY(glmc_vec4_negate) TEST_ENTRY(glmc_vec4_normalize)