diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index c8b899c61..a5b7cf8d7 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -2,6 +2,9 @@ name: ci run-name: ${{ github.actor }} is testing out GitHub Actions 🚀 on: + pull_request: + branches: + - main push: workflow_dispatch: @@ -68,7 +71,7 @@ jobs: - name: Run with GLM_ENABLE_SIMD_SSE2 run: | - cmake -S. -B ./build_sse2_std -T ${{matrix.toolkit}} -DGLM_BUILD_TESTS=ON -DGLM_FORCE_PURE=ON -DGLM_ENABLE_CXX_${{matrix.std}}=ON + cmake -S. -B ./build_sse2_std -T ${{matrix.toolkit}} -DGLM_BUILD_TESTS=ON -DGLM_ENABLE_SIMD_SSE2=ON -DGLM_ENABLE_CXX_${{matrix.std}}=ON cmake --build ./build_sse2_std --config ${{matrix.config}} ctest --verbose -C ${{matrix.config}} --test-dir ./build_sse2_std @@ -149,7 +152,7 @@ jobs: - name: Run with GLM_ENABLE_SIMD_SSE2 run: | - cmake -S. -B ./build_sse2_std -DGLM_BUILD_TESTS=ON -DGLM_FORCE_PURE=ON -DGLM_ENABLE_CXX_${{matrix.std}}=ON + cmake -S. -B ./build_sse2_std -DGLM_BUILD_TESTS=ON -DGLM_ENABLE_SIMD_SSE2=ON -DGLM_ENABLE_CXX_${{matrix.std}}=ON cmake --build ./build_sse2_std --config ${{matrix.config}} ctest --verbose -C ${{matrix.config}} --test-dir ./build_sse2_std - name: Run with GLM_ENABLE_SIMD_SSE2 and language extensions @@ -180,17 +183,14 @@ jobs: cmake --build ./build_avx2_ext --config ${{matrix.config}} ctest --verbose -C ${{matrix.config}} --test-dir ./build_avx2_ext - macos: + macos-13: runs-on: ${{ matrix.os }} strategy: fail-fast: false matrix: - os: [macos-latest, macos-13] + os: [macos-13] std: [98, 11, 14, 17, 20] config: [Debug, Release] - exclude: - - os: macos-13 - std: 20 steps: - run: echo "🎉 The job was automatically triggered by a ${{ github.event_name }} event." @@ -225,7 +225,7 @@ jobs: - name: Run with GLM_ENABLE_SIMD_SSE2 run: | - cmake -S. -B ./build_sse2_std -DGLM_BUILD_TESTS=ON -DGLM_FORCE_PURE=ON -DGLM_ENABLE_CXX_${{matrix.std}}=ON + cmake -S. -B ./build_sse2_std -DGLM_BUILD_TESTS=ON -DGLM_ENABLE_SIMD_SSE2=ON -DGLM_ENABLE_CXX_${{matrix.std}}=ON cmake --build ./build_sse2_std --config ${{matrix.config}} ctest --verbose -C ${{matrix.config}} --test-dir ./build_sse2_std - name: Run with GLM_ENABLE_SIMD_SSE2 and language extensions @@ -244,4 +244,56 @@ jobs: cmake -S. -B ./build_avx1_ext -DGLM_BUILD_TESTS=ON -DGLM_ENABLE_SIMD_AVX=ON -DGLM_ENABLE_CXX_${{matrix.std}}=ON -DGLM_ENABLE_LANG_EXTENSIONS=ON cmake --build ./build_avx1_ext --config ${{matrix.config}} ctest --verbose -C ${{matrix.config}} --test-dir ./build_avx1_ext - \ No newline at end of file + + macos-latest: + runs-on: ${{ matrix.os }} + strategy: + fail-fast: false + matrix: + os: [macos-latest] + std: [98, 11, 14, 17, 20] + config: [Debug, Release] + + steps: + - run: echo "🎉 The job was automatically triggered by a ${{ github.event_name }} event." + - run: echo "🐧 This job is now running on a ${{ runner.os }} server hosted by GitHub!" + - run: echo "🔎 The name of your branch is ${{ github.ref }} and your repository is ${{ github.repository }}." + - name: Check out repository code + uses: actions/checkout@v4 + - run: echo "💡 The ${{ github.repository }} repository has been cloned to the runner." + - run: echo "🖥️ The workflow is now ready to test your code on the runner." + - name: List files in the repository + run: | + ls ${{ github.workspace }} + - run: echo "🍏 This job's status is ${{ job.status }}." + - name: CMake Version + run: cmake --version + - name: Run with automagic detection + run: | + cmake -S. -B ./build_auto -DGLM_BUILD_TESTS=ON + cmake --build ./build_auto --config ${{matrix.config}} + ctest --verbose -C ${{matrix.config}} --test-dir ./build_auto + + - name: Run with GLM_FORCE_PURE + run: | + cmake -S. -B ./build_pure_std -DGLM_BUILD_TESTS=ON -DGLM_FORCE_PURE=ON -DGLM_ENABLE_CXX_${{matrix.std}}=ON + cmake --build ./build_pure_std --config ${{matrix.config}} + ctest --verbose -C ${{matrix.config}} --test-dir ./build_pure_std + - name: Run with GLM_FORCE_PURE and language extensions + run: | + cmake -S. -B ./build_pure_ext -DGLM_BUILD_TESTS=ON -DGLM_FORCE_PURE=ON -DGLM_ENABLE_CXX_${{matrix.std}}=ON -DGLM_ENABLE_LANG_EXTENSIONS=ON + cmake --build ./build_pure_ext --config ${{matrix.config}} + ctest --verbose -C ${{matrix.config}} --test-dir ./build_pure_ext + + - name: Run with GLM_ENABLE_SIMD_NEON + run: | + cmake -S. -B ./build_neon_std -DGLM_BUILD_TESTS=ON -DGLM_ENABLE_SIMD_NEON=ON -DGLM_ENABLE_CXX_${{matrix.std}}=ON + cmake --build ./build_neon_std --config ${{matrix.config}} + ctest --verbose -C ${{matrix.config}} --test-dir ./build_neon_std + - name: Run with GLM_ENABLE_SIMD_NEON and language extensions + run: | + cmake -S. -B ./build_neon_ext -DGLM_BUILD_TESTS=ON -DGLM_ENABLE_SIMD_NEON=ON -DGLM_ENABLE_CXX_${{matrix.std}}=ON -DGLM_ENABLE_LANG_EXTENSIONS=ON + cmake --build ./build_neon_ext --config ${{matrix.config}} + ctest --verbose -C ${{matrix.config}} --test-dir ./build_neon_ext + + diff --git a/CMakeLists.txt b/CMakeLists.txt index dd567278c..be52abace 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -149,7 +149,7 @@ option(GLM_ENABLE_SIMD_SSE4_1 "Enable SSE 4.1 optimizations" OFF) option(GLM_ENABLE_SIMD_SSE4_2 "Enable SSE 4.2 optimizations" OFF) option(GLM_ENABLE_SIMD_AVX "Enable AVX optimizations" OFF) option(GLM_ENABLE_SIMD_AVX2 "Enable AVX2 optimizations" OFF) -option(GLM_TEST_ENABLE_SIMD_NEON "Enable ARM NEON optimizations" OFF) +option(GLM_ENABLE_SIMD_NEON "Enable ARM NEON optimizations" OFF) option(GLM_FORCE_PURE "Force 'pure' instructions" OFF) if(GLM_FORCE_PURE) @@ -243,7 +243,7 @@ elseif(GLM_ENABLE_SIMD_SSE2) add_compile_options(/arch:SSE2) endif() message(STATUS "GLM: SSE2 instruction set") -elseif(GLM_TEST_ENABLE_SIMD_NEON) +elseif(GLM_ENABLE_SIMD_NEON) add_definitions(-DGLM_FORCE_NEON) message(STATUS "GLM: ARM NEON instruction set") endif() diff --git a/glm/detail/func_common_simd.inl b/glm/detail/func_common_simd.inl index 55c72286e..818bb1f56 100644 --- a/glm/detail/func_common_simd.inl +++ b/glm/detail/func_common_simd.inl @@ -573,7 +573,9 @@ namespace glm { struct compute_splat { template GLM_FUNC_QUALIFIER GLM_CONSTEXPR static vec call(vec const& a) - {} + { + (void)a; + } template<> GLM_FUNC_QUALIFIER GLM_CONSTEXPR static vec call<0>(vec const& a)