[med-svn] [Git][med-team/simde][upstream] New upstream version 0.7.4

Michael R. Crusoe (@crusoe) gitlab at salsa.debian.org
Fri May 5 08:03:00 BST 2023



Michael R. Crusoe pushed to branch upstream at Debian Med / simde


Commits:
79abcb1d by Michael R. Crusoe at 2023-05-05T07:56:12+02:00
New upstream version 0.7.4
- - - - -


19 changed files:

- .all-contributorsrc
- .appveyor.yml
- README.md
- simde/simde-arch.h
- simde/simde-common.h
- simde/simde-features.h
- simde/x86/avx.h
- simde/x86/avx2.h
- simde/x86/avx512/cmp.h
- simde/x86/avx512/range.h
- simde/x86/avx512/round.h
- simde/x86/avx512/roundscale.h
- simde/x86/avx512/types.h
- simde/x86/sse.h
- simde/x86/sse2.h
- test/x86/avx.c
- test/x86/avx512/test-avx512.h
- test/x86/sse4.1.c
- test/x86/test-avx.h


Changes:

=====================================
.all-contributorsrc
=====================================
@@ -77,7 +77,8 @@
         "code",
         "test",
         "bug",
-        "ideas"
+        "ideas",
+        "doc"
       ]
     },
     {
@@ -204,6 +205,393 @@
       "contributions": [
         "code"
       ]
+    },
+    {
+      "login": "Artoria2e5",
+      "name": "Mingye Wang",
+      "avatar_url": "https://avatars.githubusercontent.com/u/6459309?v=4",
+      "profile": "https://zh.wikipedia.org/wiki/User:Artoria2e5",
+      "contributions": [
+        "doc"
+      ]
+    },
+    {
+      "login": "ngzhian",
+      "name": "Ng Zhi An",
+      "avatar_url": "https://avatars.githubusercontent.com/u/1749303?v=4",
+      "profile": "http://www.ngzhian.com",
+      "contributions": [
+        "code",
+        "doc"
+      ]
+    },
+    {
+      "login": "Glitch18",
+      "name": "Atharva Nimbalkar",
+      "avatar_url": "https://avatars.githubusercontent.com/u/30515829?v=4",
+      "profile": "https://github.com/Glitch18",
+      "contributions": [
+        "code",
+        "test"
+      ]
+    },
+    {
+      "login": "simba611",
+      "name": "simba611",
+      "avatar_url": "https://avatars.githubusercontent.com/u/59763921?v=4",
+      "profile": "https://github.com/simba611",
+      "contributions": [
+        "code",
+        "test"
+      ]
+    },
+    {
+      "login": "ashnewmanjones",
+      "name": "Ashleigh Newman-Jones",
+      "avatar_url": "https://avatars.githubusercontent.com/u/29983014?v=4",
+      "profile": "https://ashnewmanjones.com",
+      "contributions": [
+        "code",
+        "test"
+      ]
+    },
+    {
+      "login": "wrv",
+      "name": "Willy R. Vasquez",
+      "avatar_url": "https://avatars.githubusercontent.com/u/5039686?v=4",
+      "profile": "https://alum.mit.edu/www/wrv/",
+      "contributions": [
+        "code",
+        "maintenance",
+        "test"
+      ]
+    },
+    {
+      "login": "keithw",
+      "name": "Keith Winstein",
+      "avatar_url": "https://avatars.githubusercontent.com/u/208955?v=4",
+      "profile": "https://cs.stanford.edu/~keithw",
+      "contributions": [
+        "code",
+        "maintenance",
+        "test"
+      ]
+    },
+    {
+      "login": "SoapGentoo",
+      "name": "David Seifert",
+      "avatar_url": "https://avatars.githubusercontent.com/u/16636962?v=4",
+      "profile": "https://github.com/SoapGentoo",
+      "contributions": [
+        "maintenance"
+      ]
+    },
+    {
+      "login": "milot-mirdita",
+      "name": "Milot Mirdita",
+      "avatar_url": "https://avatars.githubusercontent.com/u/63657?v=4",
+      "profile": "https://mirdita.de",
+      "contributions": [
+        "code",
+        "maintenance",
+        "test"
+      ]
+    },
+    {
+      "login": "aqrit",
+      "name": "aqrit",
+      "avatar_url": "https://avatars.githubusercontent.com/u/4021602?v=4",
+      "profile": "http://bitpatch.com",
+      "contributions": [
+        "code",
+        "maintenance"
+      ]
+    },
+    {
+      "login": "dgazzoni",
+      "name": "Décio Luiz Gazzoni Filho",
+      "avatar_url": "https://avatars.githubusercontent.com/u/17934171?v=4",
+      "profile": "https://github.com/dgazzoni",
+      "contributions": [
+        "code",
+        "maintenance",
+        "test"
+      ]
+    },
+    {
+      "login": "makise-homura",
+      "name": "Igor Molchanov",
+      "avatar_url": "https://avatars.githubusercontent.com/u/16463967?v=4",
+      "profile": "http://vk.com/muzzdiez",
+      "contributions": [
+        "code",
+        "maintenance",
+        "platform"
+      ]
+    },
+    {
+      "login": "anrodrig",
+      "name": "Andrew Rodriguez",
+      "avatar_url": "https://avatars.githubusercontent.com/u/35815808?v=4",
+      "profile": "https://github.com/anrodrig",
+      "contributions": [
+        "code",
+        "maintenance",
+        "test"
+      ]
+    },
+    {
+      "login": "Changqing-JING",
+      "name": "Changqing  Jing",
+      "avatar_url": "https://avatars.githubusercontent.com/u/59640930?v=4",
+      "profile": "https://github.com/Changqing-JING",
+      "contributions": [
+        "maintenance"
+      ]
+    },
+    {
+      "login": "jpcima",
+      "name": "JP Cimalando",
+      "avatar_url": "https://avatars.githubusercontent.com/u/17614485?v=4",
+      "profile": "http://jpcima.sdf1.org/",
+      "contributions": [
+        "code",
+        "infra"
+      ]
+    },
+    {
+      "login": "FlyGoat",
+      "name": "Jiaxun Yang",
+      "avatar_url": "https://avatars.githubusercontent.com/u/5955297?v=4",
+      "profile": "https://flygoat.com/",
+      "contributions": [
+        "code",
+        "platform"
+      ]
+    },
+    {
+      "login": "ktgw0316",
+      "name": "Masahiro Kitagawa",
+      "avatar_url": "https://avatars.githubusercontent.com/u/3116763?v=4",
+      "profile": "https://github.com/ktgw0316",
+      "contributions": [
+        "code",
+        "test"
+      ]
+    },
+    {
+      "login": "operasfantom",
+      "name": "Pavel Iatchenii",
+      "avatar_url": "https://avatars.githubusercontent.com/u/31903947?v=4",
+      "profile": "https://github.com/operasfantom",
+      "contributions": [
+        "code",
+        "test"
+      ]
+    },
+    {
+      "login": "tommyvct",
+      "name": "Tommy Vercetti",
+      "avatar_url": "https://avatars.githubusercontent.com/u/7903172?v=4",
+      "profile": "https://tommyvct.tk",
+      "contributions": [
+        "maintenance"
+      ]
+    },
+    {
+      "login": "rscohn2",
+      "name": "Robert Cohn",
+      "avatar_url": "https://avatars.githubusercontent.com/u/1936730?v=4",
+      "profile": "https://github.com/rscohn2",
+      "contributions": [
+        "maintenance"
+      ]
+    },
+    {
+      "login": "adamnovak",
+      "name": "Adam Novak",
+      "avatar_url": "https://avatars.githubusercontent.com/u/5062495?v=4",
+      "profile": "https://github.com/adamnovak",
+      "contributions": [
+        "doc"
+      ]
+    },
+    {
+      "login": "boris-kuz",
+      "name": "boris-kuz",
+      "avatar_url": "https://avatars.githubusercontent.com/u/18011434?v=4",
+      "profile": "https://github.com/boris-kuz",
+      "contributions": [
+        "maintenance"
+      ]
+    },
+    {
+      "login": "Epixu",
+      "name": "Dimo Markov",
+      "avatar_url": "https://avatars.githubusercontent.com/u/1529601?v=4",
+      "profile": "https://github.com/Epixu",
+      "contributions": [
+        "maintenance"
+      ]
+    },
+    {
+      "login": "dhbloo",
+      "name": "dblue",
+      "avatar_url": "https://avatars.githubusercontent.com/u/32353216?v=4",
+      "profile": "https://dhbloo.github.io/",
+      "contributions": [
+        "maintenance"
+      ]
+    },
+    {
+      "login": "zekehul",
+      "name": "zekehul",
+      "avatar_url": "https://avatars.githubusercontent.com/u/8780526?v=4",
+      "profile": "https://github.com/zekehul",
+      "contributions": [
+        "code",
+        "maintenance"
+      ]
+    },
+    {
+      "login": "LaurentThomas",
+      "name": "Laurent Thomas",
+      "avatar_url": "https://avatars.githubusercontent.com/u/40661368?v=4",
+      "profile": "https://open-cells.com",
+      "contributions": [
+        "code"
+      ]
+    },
+    {
+      "login": "maxbachmann",
+      "name": "Max Bachmann",
+      "avatar_url": "https://avatars.githubusercontent.com/u/44199644?v=4",
+      "profile": "https://github.com/maxbachmann",
+      "contributions": [
+        "doc"
+      ]
+    },
+    {
+      "login": "psaab",
+      "name": "psaab",
+      "avatar_url": "https://avatars.githubusercontent.com/u/196946?v=4",
+      "profile": "https://github.com/psaab",
+      "contributions": [
+        "maintenance"
+      ]
+    },
+    {
+      "login": "sbc100",
+      "name": "Sam Clegg",
+      "avatar_url": "https://avatars.githubusercontent.com/u/515813?v=4",
+      "profile": "http://superduper.net/",
+      "contributions": [
+        "maintenance"
+      ]
+    },
+    {
+      "login": "tlively",
+      "name": "Thomas Lively",
+      "avatar_url": "https://avatars.githubusercontent.com/u/7121787?v=4",
+      "profile": "https://twitter.com/tlively52",
+      "contributions": [
+        "bug",
+        "ideas",
+        "maintenance"
+      ]
+    },
+    {
+      "login": "coderzh",
+      "name": "coderzh",
+      "avatar_url": "https://avatars.githubusercontent.com/u/329164?v=4",
+      "profile": "http://blog.coderzh.com/",
+      "contributions": [
+        "code",
+        "test"
+      ]
+    },
+    {
+      "login": "k-dominik",
+      "name": "Dominik Kutra",
+      "avatar_url": "https://avatars.githubusercontent.com/u/24434157?v=4",
+      "profile": "https://github.com/k-dominik",
+      "contributions": [
+        "code",
+        "test"
+      ]
+    },
+    {
+      "login": "Lithrein",
+      "name": "Lithrein",
+      "avatar_url": "https://avatars.githubusercontent.com/u/207981?v=4",
+      "profile": "https://github.com/Lithrein",
+      "contributions": [
+        "maintenance"
+      ]
+    },
+    {
+      "login": "quyykk",
+      "name": "Nick",
+      "avatar_url": "https://avatars.githubusercontent.com/u/85879619?v=4",
+      "profile": "https://github.com/quyykk",
+      "contributions": [
+        "maintenance"
+      ]
+    },
+    {
+      "login": "thomasdwu",
+      "name": "thomasdwu",
+      "avatar_url": "https://avatars.githubusercontent.com/u/6819659?v=4",
+      "profile": "https://github.com/thomasdwu",
+      "contributions": [
+        "maintenance"
+      ]
+    },
+    {
+      "login": "Remnant44",
+      "name": "Stephen",
+      "avatar_url": "https://avatars.githubusercontent.com/u/54461740?v=4",
+      "profile": "https://github.com/Remnant44",
+      "contributions": [
+        "bug"
+      ]
+    },
+    {
+      "login": "Pabs",
+      "name": "pabs",
+      "avatar_url": "https://avatars.githubusercontent.com/u/238903?v=4",
+      "profile": "https://github.com/Pabs",
+      "contributions": [
+        "bug",
+        "code"
+      ]
+    },
+    {
+      "login": "johnplatts",
+      "name": "John Platts",
+      "avatar_url": "https://avatars.githubusercontent.com/u/28941113?v=4",
+      "profile": "https://github.com/johnplatts",
+      "contributions": [
+        "bug"
+      ]
+    },
+    {
+      "login": "tycho",
+      "name": "Steven Noonan",
+      "avatar_url": "https://avatars.githubusercontent.com/u/29616?v=4",
+      "profile": "https://github.com/tycho",
+      "contributions": [
+        "bug"
+      ]
+    },
+    {
+      "login": "p0nce",
+      "name": "p0nce ",
+      "avatar_url": "https://avatars.githubusercontent.com/u/1067485?v=4",
+      "profile": "https://github.com/p0nce",
+      "contributions": [
+        "bug"
+      ]
     }
   ],
   "contributorsPerLine": 7


=====================================
.appveyor.yml
=====================================
@@ -1,7 +1,6 @@
 environment:
   MESON_EXE_WRAPPER: "['C:\\Program Files\\OpenCppCoverage\\OpenCppCoverage.exe', '--export_type=cobertura', '--']"
   CCACHE_MAXSIZE: '500Mi'
-  APPVEYOR_CACHE_ENTRY_ZIP_ARGS: '-t7z -m0=lzma -mx=9'
   matrix:
     - APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2022
       VCVARSALL: C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Auxiliary\Build\vcvarsall.bat


=====================================
README.md
=====================================
@@ -1,6 +1,6 @@
 # SIMD Everywhere
 <!-- ALL-CONTRIBUTORS-BADGE:START - Do not remove or modify this section -->
-[![All Contributors](https://img.shields.io/badge/all_contributors-18-orange.svg?style=flat-square)](#contributors-)
+[![All Contributors](https://img.shields.io/badge/all_contributors-58-orange.svg?style=flat-square)](#contributors-)
 <!-- ALL-CONTRIBUTORS-BADGE:END -->
 [![Chat](https://badges.gitter.im/gitterHQ/gitter.png)](https://matrix.to/#/#simd-everywhere_community:gitter.im)
 [![codecov](https://codecov.io/gh/simd-everywhere/simde/branch/master/graph/badge.svg?token=jcMBoRk0ui)](https://codecov.io/gh/simd-everywhere/simde)
@@ -391,28 +391,80 @@ Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/d
 <!-- markdownlint-disable -->
 <table>
   <tr>
-    <td align="center"><a href="https://nemequ.github.io/"><img src="https://avatars0.githubusercontent.com/u/1151?v=4" width="100px;" alt=""/><br /><sub><b>Evan Nemerson</b></sub></a><br /><a href="https://github.com/simd-everywhere/simde/commits?author=nemequ" title="Code">💻</a> <a href="#content-nemequ" title="Content">🖋</a> <a href="https://github.com/simd-everywhere/simde/commits?author=nemequ" title="Documentation">📖</a> <a href="#example-nemequ" title="Examples">💡</a> <a href="#ideas-nemequ" title="Ideas, Planning, & Feedback">🤔</a> <a href="#question-nemequ" title="Answering Questions">💬</a> <a href="https://github.com/simd-everywhere/simde/pulls?q=is%3Apr+reviewed-by%3Anemequ" title="Reviewed Pull Requests">👀</a> <a href="https://github.com/simd-everywhere/simde/commits?author=nemequ" title="Tests">⚠️</a> <a href="#tutorial-nemequ" title="Tutorials">✅</a> <a href="#talk-nemequ" title="Talks">📢</a> <a href="https://github.com/simd-everywhere/simde/issues?q=author%3Anemequ" title="Bug reports">🐛</a> <a href="#infra-nemequ" title="Infrastructure (Hosting, Build-Tools, etc)">🚇</a> <a href="#maintenance-nemequ" title="Maintenance">🚧</a> <a href="#projectManagement-nemequ" title="Project Management">📆</a></td>
-    <td align="center"><a href="https://orcid.org/0000-0002-2961-9670"><img src="https://avatars3.githubusercontent.com/u/1330696?v=4" width="100px;" alt=""/><br /><sub><b>Michael R. Crusoe</b></sub></a><br /><a href="https://github.com/simd-everywhere/simde/issues?q=author%3Amr-c" title="Bug reports">🐛</a> <a href="https://github.com/simd-everywhere/simde/commits?author=mr-c" title="Code">💻</a> <a href="#eventOrganizing-mr-c" title="Event Organizing">📋</a> <a href="#fundingFinding-mr-c" title="Funding Finding">🔍</a> <a href="#ideas-mr-c" title="Ideas, Planning, & Feedback">🤔</a> <a href="#infra-mr-c" title="Infrastructure (Hosting, Build-Tools, etc)">🚇</a> <a href="#platform-mr-c" title="Packaging/porting to new platform">📦</a> <a href="https://github.com/simd-everywhere/simde/commits?author=mr-c" title="Tests">⚠️</a></td>
-    <td align="center"><a href="https://github.com/himanshi18037"><img src="https://avatars1.githubusercontent.com/u/43923076?v=4" width="100px;" alt=""/><br /><sub><b>HIMANSHI MATHUR</b></sub></a><br /><a href="https://github.com/simd-everywhere/simde/commits?author=himanshi18037" title="Code">💻</a> <a href="https://github.com/simd-everywhere/simde/commits?author=himanshi18037" title="Tests">⚠️</a></td>
-    <td align="center"><a href="https://github.com/masterchef2209"><img src="https://avatars0.githubusercontent.com/u/27916352?v=4" width="100px;" alt=""/><br /><sub><b>Hidayat Khan</b></sub></a><br /><a href="https://github.com/simd-everywhere/simde/commits?author=masterchef2209" title="Code">💻</a> <a href="https://github.com/simd-everywhere/simde/commits?author=masterchef2209" title="Tests">⚠️</a></td>
-    <td align="center"><a href="https://github.com/rosbif"><img src="https://avatars1.githubusercontent.com/u/553899?v=4" width="100px;" alt=""/><br /><sub><b>rosbif</b></sub></a><br /><a href="https://github.com/simd-everywhere/simde/commits?author=rosbif" title="Code">💻</a> <a href="https://github.com/simd-everywhere/simde/commits?author=rosbif" title="Tests">⚠️</a> <a href="https://github.com/simd-everywhere/simde/issues?q=author%3Arosbif" title="Bug reports">🐛</a> <a href="#ideas-rosbif" title="Ideas, Planning, & Feedback">🤔</a></td>
-    <td align="center"><a href="http://junaruga.hatenablog.com/"><img src="https://avatars2.githubusercontent.com/u/121989?v=4" width="100px;" alt=""/><br /><sub><b>Jun Aruga</b></sub></a><br /><a href="https://github.com/simd-everywhere/simde/commits?author=junaruga" title="Code">💻</a> <a href="#ideas-junaruga" title="Ideas, Planning, & Feedback">🤔</a> <a href="#platform-junaruga" title="Packaging/porting to new platform">📦</a> <a href="#infra-junaruga" title="Infrastructure (Hosting, Build-Tools, etc)">🚇</a> <a href="#maintenance-junaruga" title="Maintenance">🚧</a> <a href="https://github.com/simd-everywhere/simde/commits?author=junaruga" title="Tests">⚠️</a> <a href="https://github.com/simd-everywhere/simde/issues?q=author%3Ajunaruga" title="Bug reports">🐛</a></td>
-    <td align="center"><a href="https://github.com/marmeladema"><img src="https://avatars2.githubusercontent.com/u/1629419?v=4" width="100px;" alt=""/><br /><sub><b>Élie ROUDNINSKI</b></sub></a><br /><a href="https://github.com/simd-everywhere/simde/commits?author=marmeladema" title="Code">💻</a> <a href="https://github.com/simd-everywhere/simde/commits?author=marmeladema" title="Tests">⚠️</a></td>
+    <td align="center"><a href="https://nemequ.github.io/"><img src="https://avatars0.githubusercontent.com/u/1151?v=4" width="100px;" alt=""/><br /><sub><b>Evan Nemerson</b></sub></a><br /><a href="https://github.com/nemequ/simde/commits?author=nemequ" title="Code">💻</a> <a href="#content-nemequ" title="Content">🖋</a> <a href="https://github.com/nemequ/simde/commits?author=nemequ" title="Documentation">📖</a> <a href="#example-nemequ" title="Examples">💡</a> <a href="#ideas-nemequ" title="Ideas, Planning, & Feedback">🤔</a> <a href="#question-nemequ" title="Answering Questions">💬</a> <a href="https://github.com/nemequ/simde/pulls?q=is%3Apr+reviewed-by%3Anemequ" title="Reviewed Pull Requests">👀</a> <a href="https://github.com/nemequ/simde/commits?author=nemequ" title="Tests">⚠️</a> <a href="#tutorial-nemequ" title="Tutorials">✅</a> <a href="#talk-nemequ" title="Talks">📢</a> <a href="https://github.com/nemequ/simde/issues?q=author%3Anemequ" title="Bug reports">🐛</a> <a href="#infra-nemequ" title="Infrastructure (Hosting, Build-Tools, etc)">🚇</a> <a href="#maintenance-nemequ" title="Maintenance">🚧</a> <a href="#projectManagement-nemequ" title="Project Management">📆</a></td>
+    <td align="center"><a href="https://orcid.org/0000-0002-2961-9670"><img src="https://avatars3.githubusercontent.com/u/1330696?v=4" width="100px;" alt=""/><br /><sub><b>Michael R. Crusoe</b></sub></a><br /><a href="https://github.com/nemequ/simde/issues?q=author%3Amr-c" title="Bug reports">🐛</a> <a href="https://github.com/nemequ/simde/commits?author=mr-c" title="Code">💻</a> <a href="#eventOrganizing-mr-c" title="Event Organizing">📋</a> <a href="#fundingFinding-mr-c" title="Funding Finding">🔍</a> <a href="#ideas-mr-c" title="Ideas, Planning, & Feedback">🤔</a> <a href="#infra-mr-c" title="Infrastructure (Hosting, Build-Tools, etc)">🚇</a> <a href="#platform-mr-c" title="Packaging/porting to new platform">📦</a> <a href="https://github.com/nemequ/simde/commits?author=mr-c" title="Tests">⚠️</a></td>
+    <td align="center"><a href="https://github.com/himanshi18037"><img src="https://avatars1.githubusercontent.com/u/43923076?v=4" width="100px;" alt=""/><br /><sub><b>HIMANSHI MATHUR</b></sub></a><br /><a href="https://github.com/nemequ/simde/commits?author=himanshi18037" title="Code">💻</a> <a href="https://github.com/nemequ/simde/commits?author=himanshi18037" title="Tests">⚠️</a></td>
+    <td align="center"><a href="https://github.com/masterchef2209"><img src="https://avatars0.githubusercontent.com/u/27916352?v=4" width="100px;" alt=""/><br /><sub><b>Hidayat Khan</b></sub></a><br /><a href="https://github.com/nemequ/simde/commits?author=masterchef2209" title="Code">💻</a> <a href="https://github.com/nemequ/simde/commits?author=masterchef2209" title="Tests">⚠️</a></td>
+    <td align="center"><a href="https://github.com/rosbif"><img src="https://avatars1.githubusercontent.com/u/553899?v=4" width="100px;" alt=""/><br /><sub><b>rosbif</b></sub></a><br /><a href="https://github.com/nemequ/simde/commits?author=rosbif" title="Code">💻</a> <a href="https://github.com/nemequ/simde/commits?author=rosbif" title="Tests">⚠️</a> <a href="https://github.com/nemequ/simde/issues?q=author%3Arosbif" title="Bug reports">🐛</a> <a href="#ideas-rosbif" title="Ideas, Planning, & Feedback">🤔</a> <a href="https://github.com/nemequ/simde/commits?author=rosbif" title="Documentation">📖</a></td>
+    <td align="center"><a href="http://junaruga.hatenablog.com/"><img src="https://avatars2.githubusercontent.com/u/121989?v=4" width="100px;" alt=""/><br /><sub><b>Jun Aruga</b></sub></a><br /><a href="https://github.com/nemequ/simde/commits?author=junaruga" title="Code">💻</a> <a href="#ideas-junaruga" title="Ideas, Planning, & Feedback">🤔</a> <a href="#platform-junaruga" title="Packaging/porting to new platform">📦</a> <a href="#infra-junaruga" title="Infrastructure (Hosting, Build-Tools, etc)">🚇</a> <a href="#maintenance-junaruga" title="Maintenance">🚧</a> <a href="https://github.com/nemequ/simde/commits?author=junaruga" title="Tests">⚠️</a> <a href="https://github.com/nemequ/simde/issues?q=author%3Ajunaruga" title="Bug reports">🐛</a></td>
+    <td align="center"><a href="https://github.com/marmeladema"><img src="https://avatars2.githubusercontent.com/u/1629419?v=4" width="100px;" alt=""/><br /><sub><b>Élie ROUDNINSKI</b></sub></a><br /><a href="https://github.com/nemequ/simde/commits?author=marmeladema" title="Code">💻</a> <a href="https://github.com/nemequ/simde/commits?author=marmeladema" title="Tests">⚠️</a></td>
   </tr>
   <tr>
-    <td align="center"><a href="http://www.bache.name"><img src="https://avatars3.githubusercontent.com/u/7937081?v=4" width="100px;" alt=""/><br /><sub><b>Jesper Storm Bache</b></sub></a><br /><a href="https://github.com/simd-everywhere/simde/commits?author=jsbache" title="Code">💻</a></td>
-    <td align="center"><a href="https://github.com/jeffdaily"><img src="https://avatars1.githubusercontent.com/u/904248?v=4" width="100px;" alt=""/><br /><sub><b>Jeff Daily</b></sub></a><br /><a href="https://github.com/simd-everywhere/simde/commits?author=jeffdaily" title="Code">💻</a> <a href="#infra-jeffdaily" title="Infrastructure (Hosting, Build-Tools, etc)">🚇</a></td>
-    <td align="center"><a href="https://github.com/yekm"><img src="https://avatars2.githubusercontent.com/u/205196?v=4" width="100px;" alt=""/><br /><sub><b>Pavel</b></sub></a><br /><a href="https://github.com/simd-everywhere/simde/commits?author=yekm" title="Code">💻</a></td>
-    <td align="center"><a href="https://github.com/sabarishbollapragada"><img src="https://avatars3.githubusercontent.com/u/36379720?v=4" width="100px;" alt=""/><br /><sub><b>Sabarish Bollapragada</b></sub></a><br /><a href="https://github.com/simd-everywhere/simde/commits?author=sabarishbollapragada" title="Code">💻</a></td>
-    <td align="center"><a href="http://www.thegavinli.com/"><img src="https://avatars2.githubusercontent.com/u/371529?v=4" width="100px;" alt=""/><br /><sub><b>Gavin Li</b></sub></a><br /><a href="https://github.com/simd-everywhere/simde/commits?author=gh2o" title="Code">💻</a></td>
-    <td align="center"><a href="http://www.yiningkarlli.com"><img src="https://avatars0.githubusercontent.com/u/1057198?v=4" width="100px;" alt=""/><br /><sub><b>Yining Karl Li</b></sub></a><br /><a href="https://github.com/simd-everywhere/simde/commits?author=betajippity" title="Code">💻</a></td>
-    <td align="center"><a href="https://www.facebook.com/anirbandey303"><img src="https://avatars1.githubusercontent.com/u/29774651?v=4" width="100px;" alt=""/><br /><sub><b>Anirban Dey</b></sub></a><br /><a href="https://github.com/simd-everywhere/simde/commits?author=anirbandey303" title="Documentation">📖</a></td>
+    <td align="center"><a href="http://www.bache.name"><img src="https://avatars3.githubusercontent.com/u/7937081?v=4" width="100px;" alt=""/><br /><sub><b>Jesper Storm Bache</b></sub></a><br /><a href="https://github.com/nemequ/simde/commits?author=jsbache" title="Code">💻</a></td>
+    <td align="center"><a href="https://github.com/jeffdaily"><img src="https://avatars1.githubusercontent.com/u/904248?v=4" width="100px;" alt=""/><br /><sub><b>Jeff Daily</b></sub></a><br /><a href="https://github.com/nemequ/simde/commits?author=jeffdaily" title="Code">💻</a> <a href="#infra-jeffdaily" title="Infrastructure (Hosting, Build-Tools, etc)">🚇</a></td>
+    <td align="center"><a href="https://github.com/yekm"><img src="https://avatars2.githubusercontent.com/u/205196?v=4" width="100px;" alt=""/><br /><sub><b>Pavel</b></sub></a><br /><a href="https://github.com/nemequ/simde/commits?author=yekm" title="Code">💻</a></td>
+    <td align="center"><a href="https://github.com/sabarishbollapragada"><img src="https://avatars3.githubusercontent.com/u/36379720?v=4" width="100px;" alt=""/><br /><sub><b>Sabarish Bollapragada</b></sub></a><br /><a href="https://github.com/nemequ/simde/commits?author=sabarishbollapragada" title="Code">💻</a></td>
+    <td align="center"><a href="http://www.thegavinli.com/"><img src="https://avatars2.githubusercontent.com/u/371529?v=4" width="100px;" alt=""/><br /><sub><b>Gavin Li</b></sub></a><br /><a href="https://github.com/nemequ/simde/commits?author=gh2o" title="Code">💻</a></td>
+    <td align="center"><a href="http://www.yiningkarlli.com"><img src="https://avatars0.githubusercontent.com/u/1057198?v=4" width="100px;" alt=""/><br /><sub><b>Yining Karl Li</b></sub></a><br /><a href="https://github.com/nemequ/simde/commits?author=betajippity" title="Code">💻</a></td>
+    <td align="center"><a href="https://www.facebook.com/anirbandey303"><img src="https://avatars1.githubusercontent.com/u/29774651?v=4" width="100px;" alt=""/><br /><sub><b>Anirban Dey</b></sub></a><br /><a href="https://github.com/nemequ/simde/commits?author=anirbandey303" title="Documentation">📖</a></td>
   </tr>
   <tr>
-    <td align="center"><a href="https://github.com/Un1Gfn"><img src="https://avatars3.githubusercontent.com/u/28521292?v=4" width="100px;" alt=""/><br /><sub><b>Darren Ng</b></sub></a><br /><a href="https://github.com/simd-everywhere/simde/commits?author=Un1Gfn" title="Documentation">📖</a></td>
-    <td align="center"><a href="https://github.com/FaresSalem"><img src="https://avatars0.githubusercontent.com/u/7736245?v=4" width="100px;" alt=""/><br /><sub><b>FaresSalem</b></sub></a><br /><a href="https://github.com/simd-everywhere/simde/commits?author=FaresSalem" title="Documentation">📖</a></td>
-    <td align="center"><a href="https://github.com/GorePradnyesh"><img src="https://avatars0.githubusercontent.com/u/843197?v=4" width="100px;" alt=""/><br /><sub><b>Pradnyesh Gore</b></sub></a><br /><a href="https://github.com/simd-everywhere/simde/commits?author=GorePradnyesh" title="Code">💻</a></td>
-    <td align="center"><a href="https://github.com/seanptmaher"><img src="https://avatars0.githubusercontent.com/u/39571964?v=4" width="100px;" alt=""/><br /><sub><b>Sean Maher</b></sub></a><br /><a href="https://github.com/simd-everywhere/simde/commits?author=seanptmaher" title="Code">💻</a></td>
+    <td align="center"><a href="https://github.com/Un1Gfn"><img src="https://avatars3.githubusercontent.com/u/28521292?v=4" width="100px;" alt=""/><br /><sub><b>Darren Ng</b></sub></a><br /><a href="https://github.com/nemequ/simde/commits?author=Un1Gfn" title="Documentation">📖</a></td>
+    <td align="center"><a href="https://github.com/FaresSalem"><img src="https://avatars0.githubusercontent.com/u/7736245?v=4" width="100px;" alt=""/><br /><sub><b>FaresSalem</b></sub></a><br /><a href="https://github.com/nemequ/simde/commits?author=FaresSalem" title="Documentation">📖</a></td>
+    <td align="center"><a href="https://github.com/GorePradnyesh"><img src="https://avatars0.githubusercontent.com/u/843197?v=4" width="100px;" alt=""/><br /><sub><b>Pradnyesh Gore</b></sub></a><br /><a href="https://github.com/nemequ/simde/commits?author=GorePradnyesh" title="Code">💻</a></td>
+    <td align="center"><a href="https://github.com/seanptmaher"><img src="https://avatars0.githubusercontent.com/u/39571964?v=4" width="100px;" alt=""/><br /><sub><b>Sean Maher</b></sub></a><br /><a href="https://github.com/nemequ/simde/commits?author=seanptmaher" title="Code">💻</a></td>
+    <td align="center"><a href="https://zh.wikipedia.org/wiki/User:Artoria2e5"><img src="https://avatars.githubusercontent.com/u/6459309?v=4" width="100px;" alt=""/><br /><sub><b>Mingye Wang</b></sub></a><br /><a href="https://github.com/nemequ/simde/commits?author=Artoria2e5" title="Documentation">📖</a></td>
+    <td align="center"><a href="http://www.ngzhian.com"><img src="https://avatars.githubusercontent.com/u/1749303?v=4" width="100px;" alt=""/><br /><sub><b>Ng Zhi An</b></sub></a><br /><a href="https://github.com/nemequ/simde/commits?author=ngzhian" title="Code">💻</a> <a href="https://github.com/nemequ/simde/commits?author=ngzhian" title="Documentation">📖</a></td>
+    <td align="center"><a href="https://github.com/Glitch18"><img src="https://avatars.githubusercontent.com/u/30515829?v=4" width="100px;" alt=""/><br /><sub><b>Atharva Nimbalkar</b></sub></a><br /><a href="https://github.com/nemequ/simde/commits?author=Glitch18" title="Code">💻</a> <a href="https://github.com/nemequ/simde/commits?author=Glitch18" title="Tests">⚠️</a></td>
+  </tr>
+  <tr>
+    <td align="center"><a href="https://github.com/simba611"><img src="https://avatars.githubusercontent.com/u/59763921?v=4" width="100px;" alt=""/><br /><sub><b>simba611</b></sub></a><br /><a href="https://github.com/nemequ/simde/commits?author=simba611" title="Code">💻</a> <a href="https://github.com/nemequ/simde/commits?author=simba611" title="Tests">⚠️</a></td>
+    <td align="center"><a href="https://ashnewmanjones.com"><img src="https://avatars.githubusercontent.com/u/29983014?v=4" width="100px;" alt=""/><br /><sub><b>Ashleigh Newman-Jones</b></sub></a><br /><a href="https://github.com/nemequ/simde/commits?author=ashnewmanjones" title="Code">💻</a> <a href="https://github.com/nemequ/simde/commits?author=ashnewmanjones" title="Tests">⚠️</a></td>
+    <td align="center"><a href="https://alum.mit.edu/www/wrv/"><img src="https://avatars.githubusercontent.com/u/5039686?v=4" width="100px;" alt=""/><br /><sub><b>Willy R. Vasquez</b></sub></a><br /><a href="https://github.com/nemequ/simde/commits?author=wrv" title="Code">💻</a> <a href="#maintenance-wrv" title="Maintenance">🚧</a> <a href="https://github.com/nemequ/simde/commits?author=wrv" title="Tests">⚠️</a></td>
+    <td align="center"><a href="https://cs.stanford.edu/~keithw"><img src="https://avatars.githubusercontent.com/u/208955?v=4" width="100px;" alt=""/><br /><sub><b>Keith Winstein</b></sub></a><br /><a href="https://github.com/nemequ/simde/commits?author=keithw" title="Code">💻</a> <a href="#maintenance-keithw" title="Maintenance">🚧</a> <a href="https://github.com/nemequ/simde/commits?author=keithw" title="Tests">⚠️</a></td>
+    <td align="center"><a href="https://github.com/SoapGentoo"><img src="https://avatars.githubusercontent.com/u/16636962?v=4" width="100px;" alt=""/><br /><sub><b>David Seifert</b></sub></a><br /><a href="#maintenance-SoapGentoo" title="Maintenance">🚧</a></td>
+    <td align="center"><a href="https://mirdita.de"><img src="https://avatars.githubusercontent.com/u/63657?v=4" width="100px;" alt=""/><br /><sub><b>Milot Mirdita</b></sub></a><br /><a href="https://github.com/nemequ/simde/commits?author=milot-mirdita" title="Code">💻</a> <a href="#maintenance-milot-mirdita" title="Maintenance">🚧</a> <a href="https://github.com/nemequ/simde/commits?author=milot-mirdita" title="Tests">⚠️</a></td>
+    <td align="center"><a href="http://bitpatch.com"><img src="https://avatars.githubusercontent.com/u/4021602?v=4" width="100px;" alt=""/><br /><sub><b>aqrit</b></sub></a><br /><a href="https://github.com/nemequ/simde/commits?author=aqrit" title="Code">💻</a> <a href="#maintenance-aqrit" title="Maintenance">🚧</a></td>
+  </tr>
+  <tr>
+    <td align="center"><a href="https://github.com/dgazzoni"><img src="https://avatars.githubusercontent.com/u/17934171?v=4" width="100px;" alt=""/><br /><sub><b>Décio Luiz Gazzoni Filho</b></sub></a><br /><a href="https://github.com/nemequ/simde/commits?author=dgazzoni" title="Code">💻</a> <a href="#maintenance-dgazzoni" title="Maintenance">🚧</a> <a href="https://github.com/nemequ/simde/commits?author=dgazzoni" title="Tests">⚠️</a></td>
+    <td align="center"><a href="http://vk.com/muzzdiez"><img src="https://avatars.githubusercontent.com/u/16463967?v=4" width="100px;" alt=""/><br /><sub><b>Igor Molchanov</b></sub></a><br /><a href="https://github.com/nemequ/simde/commits?author=makise-homura" title="Code">💻</a> <a href="#maintenance-makise-homura" title="Maintenance">🚧</a> <a href="#platform-makise-homura" title="Packaging/porting to new platform">📦</a></td>
+    <td align="center"><a href="https://github.com/anrodrig"><img src="https://avatars.githubusercontent.com/u/35815808?v=4" width="100px;" alt=""/><br /><sub><b>Andrew Rodriguez</b></sub></a><br /><a href="https://github.com/nemequ/simde/commits?author=anrodrig" title="Code">💻</a> <a href="#maintenance-anrodrig" title="Maintenance">🚧</a> <a href="https://github.com/nemequ/simde/commits?author=anrodrig" title="Tests">⚠️</a></td>
+    <td align="center"><a href="https://github.com/Changqing-JING"><img src="https://avatars.githubusercontent.com/u/59640930?v=4" width="100px;" alt=""/><br /><sub><b>Changqing  Jing</b></sub></a><br /><a href="#maintenance-Changqing-JING" title="Maintenance">🚧</a></td>
+    <td align="center"><a href="http://jpcima.sdf1.org/"><img src="https://avatars.githubusercontent.com/u/17614485?v=4" width="100px;" alt=""/><br /><sub><b>JP Cimalando</b></sub></a><br /><a href="https://github.com/nemequ/simde/commits?author=jpcima" title="Code">💻</a> <a href="#infra-jpcima" title="Infrastructure (Hosting, Build-Tools, etc)">🚇</a></td>
+    <td align="center"><a href="https://flygoat.com/"><img src="https://avatars.githubusercontent.com/u/5955297?v=4" width="100px;" alt=""/><br /><sub><b>Jiaxun Yang</b></sub></a><br /><a href="https://github.com/nemequ/simde/commits?author=FlyGoat" title="Code">💻</a> <a href="#platform-FlyGoat" title="Packaging/porting to new platform">📦</a></td>
+    <td align="center"><a href="https://github.com/ktgw0316"><img src="https://avatars.githubusercontent.com/u/3116763?v=4" width="100px;" alt=""/><br /><sub><b>Masahiro Kitagawa</b></sub></a><br /><a href="https://github.com/nemequ/simde/commits?author=ktgw0316" title="Code">💻</a> <a href="https://github.com/nemequ/simde/commits?author=ktgw0316" title="Tests">⚠️</a></td>
+  </tr>
+  <tr>
+    <td align="center"><a href="https://github.com/operasfantom"><img src="https://avatars.githubusercontent.com/u/31903947?v=4" width="100px;" alt=""/><br /><sub><b>Pavel Iatchenii</b></sub></a><br /><a href="https://github.com/nemequ/simde/commits?author=operasfantom" title="Code">💻</a> <a href="https://github.com/nemequ/simde/commits?author=operasfantom" title="Tests">⚠️</a></td>
+    <td align="center"><a href="https://tommyvct.tk"><img src="https://avatars.githubusercontent.com/u/7903172?v=4" width="100px;" alt=""/><br /><sub><b>Tommy Vercetti</b></sub></a><br /><a href="#maintenance-tommyvct" title="Maintenance">🚧</a></td>
+    <td align="center"><a href="https://github.com/rscohn2"><img src="https://avatars.githubusercontent.com/u/1936730?v=4" width="100px;" alt=""/><br /><sub><b>Robert Cohn</b></sub></a><br /><a href="#maintenance-rscohn2" title="Maintenance">🚧</a></td>
+    <td align="center"><a href="https://github.com/adamnovak"><img src="https://avatars.githubusercontent.com/u/5062495?v=4" width="100px;" alt=""/><br /><sub><b>Adam Novak</b></sub></a><br /><a href="https://github.com/nemequ/simde/commits?author=adamnovak" title="Documentation">📖</a></td>
+    <td align="center"><a href="https://github.com/boris-kuz"><img src="https://avatars.githubusercontent.com/u/18011434?v=4" width="100px;" alt=""/><br /><sub><b>boris-kuz</b></sub></a><br /><a href="#maintenance-boris-kuz" title="Maintenance">🚧</a></td>
+    <td align="center"><a href="https://github.com/Epixu"><img src="https://avatars.githubusercontent.com/u/1529601?v=4" width="100px;" alt=""/><br /><sub><b>Dimo Markov</b></sub></a><br /><a href="#maintenance-Epixu" title="Maintenance">🚧</a></td>
+    <td align="center"><a href="https://dhbloo.github.io/"><img src="https://avatars.githubusercontent.com/u/32353216?v=4" width="100px;" alt=""/><br /><sub><b>dblue</b></sub></a><br /><a href="#maintenance-dhbloo" title="Maintenance">🚧</a></td>
+  </tr>
+  <tr>
+    <td align="center"><a href="https://github.com/zekehul"><img src="https://avatars.githubusercontent.com/u/8780526?v=4" width="100px;" alt=""/><br /><sub><b>zekehul</b></sub></a><br /><a href="https://github.com/nemequ/simde/commits?author=zekehul" title="Code">💻</a> <a href="#maintenance-zekehul" title="Maintenance">🚧</a></td>
+    <td align="center"><a href="https://open-cells.com"><img src="https://avatars.githubusercontent.com/u/40661368?v=4" width="100px;" alt=""/><br /><sub><b>Laurent Thomas</b></sub></a><br /><a href="https://github.com/nemequ/simde/commits?author=LaurentThomas" title="Code">💻</a></td>
+    <td align="center"><a href="https://github.com/maxbachmann"><img src="https://avatars.githubusercontent.com/u/44199644?v=4" width="100px;" alt=""/><br /><sub><b>Max Bachmann</b></sub></a><br /><a href="https://github.com/nemequ/simde/commits?author=maxbachmann" title="Documentation">📖</a></td>
+    <td align="center"><a href="https://github.com/psaab"><img src="https://avatars.githubusercontent.com/u/196946?v=4" width="100px;" alt=""/><br /><sub><b>psaab</b></sub></a><br /><a href="#maintenance-psaab" title="Maintenance">🚧</a></td>
+    <td align="center"><a href="http://superduper.net/"><img src="https://avatars.githubusercontent.com/u/515813?v=4" width="100px;" alt=""/><br /><sub><b>Sam Clegg</b></sub></a><br /><a href="#maintenance-sbc100" title="Maintenance">🚧</a></td>
+    <td align="center"><a href="https://twitter.com/tlively52"><img src="https://avatars.githubusercontent.com/u/7121787?v=4" width="100px;" alt=""/><br /><sub><b>Thomas Lively</b></sub></a><br /><a href="https://github.com/nemequ/simde/issues?q=author%3Atlively" title="Bug reports">🐛</a> <a href="#ideas-tlively" title="Ideas, Planning, & Feedback">🤔</a> <a href="#maintenance-tlively" title="Maintenance">🚧</a></td>
+    <td align="center"><a href="http://blog.coderzh.com/"><img src="https://avatars.githubusercontent.com/u/329164?v=4" width="100px;" alt=""/><br /><sub><b>coderzh</b></sub></a><br /><a href="https://github.com/nemequ/simde/commits?author=coderzh" title="Code">💻</a> <a href="https://github.com/nemequ/simde/commits?author=coderzh" title="Tests">⚠️</a></td>
+  </tr>
+  <tr>
+    <td align="center"><a href="https://github.com/k-dominik"><img src="https://avatars.githubusercontent.com/u/24434157?v=4" width="100px;" alt=""/><br /><sub><b>Dominik Kutra</b></sub></a><br /><a href="https://github.com/nemequ/simde/commits?author=k-dominik" title="Code">💻</a> <a href="https://github.com/nemequ/simde/commits?author=k-dominik" title="Tests">⚠️</a></td>
+    <td align="center"><a href="https://github.com/Lithrein"><img src="https://avatars.githubusercontent.com/u/207981?v=4" width="100px;" alt=""/><br /><sub><b>Lithrein</b></sub></a><br /><a href="#maintenance-Lithrein" title="Maintenance">🚧</a></td>
+    <td align="center"><a href="https://github.com/quyykk"><img src="https://avatars.githubusercontent.com/u/85879619?v=4" width="100px;" alt=""/><br /><sub><b>Nick</b></sub></a><br /><a href="#maintenance-quyykk" title="Maintenance">🚧</a></td>
+    <td align="center"><a href="https://github.com/thomasdwu"><img src="https://avatars.githubusercontent.com/u/6819659?v=4" width="100px;" alt=""/><br /><sub><b>thomasdwu</b></sub></a><br /><a href="#maintenance-thomasdwu" title="Maintenance">🚧</a></td>
+    <td align="center"><a href="https://github.com/Remnant44"><img src="https://avatars.githubusercontent.com/u/54461740?v=4" width="100px;" alt=""/><br /><sub><b>Stephen</b></sub></a><br /><a href="https://github.com/nemequ/simde/issues?q=author%3ARemnant44" title="Bug reports">🐛</a></td>
+    <td align="center"><a href="https://github.com/Pabs"><img src="https://avatars.githubusercontent.com/u/238903?v=4" width="100px;" alt=""/><br /><sub><b>pabs</b></sub></a><br /><a href="https://github.com/nemequ/simde/issues?q=author%3APabs" title="Bug reports">🐛</a> <a href="https://github.com/nemequ/simde/commits?author=Pabs" title="Code">💻</a></td>
+    <td align="center"><a href="https://github.com/johnplatts"><img src="https://avatars.githubusercontent.com/u/28941113?v=4" width="100px;" alt=""/><br /><sub><b>John Platts</b></sub></a><br /><a href="https://github.com/nemequ/simde/issues?q=author%3Ajohnplatts" title="Bug reports">🐛</a></td>
+  </tr>
+  <tr>
+    <td align="center"><a href="https://github.com/tycho"><img src="https://avatars.githubusercontent.com/u/29616?v=4" width="100px;" alt=""/><br /><sub><b>Steven Noonan</b></sub></a><br /><a href="https://github.com/nemequ/simde/issues?q=author%3Atycho" title="Bug reports">🐛</a></td>
+    <td align="center"><a href="https://github.com/p0nce"><img src="https://avatars.githubusercontent.com/u/1067485?v=4" width="100px;" alt=""/><br /><sub><b>p0nce </b></sub></a><br /><a href="https://github.com/nemequ/simde/issues?q=author%3Ap0nce" title="Bug reports">🐛</a></td>
   </tr>
 </table>
 


=====================================
simde/simde-arch.h
=====================================
@@ -571,4 +571,22 @@
 #  define SIMDE_ARCH_ARM_NEON_FP16
 #endif
 
+/* LoongArch
+   <https://en.wikipedia.org/wiki/Loongson#LoongArch> */
+#if defined(__loongarch32)
+#  define SIMDE_ARCH_LOONGARCH 1
+#elif defined(__loongarch64)
+#  define SIMDE_ARCH_LOONGARCH 2
+#endif
+
+/* LSX: LoongArch 128-bits SIMD extension */
+#if defined(__loongarch_sx)
+#  define SIMDE_ARCH_LOONGARCH_LSX 1
+#endif
+
+/* LASX: LoongArch 256-bits SIMD extension */
+#if defined(__loongarch_asx)
+#  define SIMDE_ARCH_LOONGARCH_LASX 2
+#endif
+
 #endif /* !defined(SIMDE_ARCH_H) */


=====================================
simde/simde-common.h
=====================================
@@ -1092,10 +1092,9 @@ SIMDE_DIAGNOSTIC_DISABLE_CPP98_COMPAT_PEDANTIC_
     HEDLEY_GCC_VERSION_CHECK(4,3,0)
 #  define SIMDE_BUG_IGNORE_SIGN_CONVERSION(expr) (__extension__ ({ \
        HEDLEY_DIAGNOSTIC_PUSH  \
-       HEDLEY_DIAGNOSTIC_POP  \
        _Pragma("GCC diagnostic ignored \"-Wsign-conversion\"") \
        __typeof__(expr) simde_bug_ignore_sign_conversion_v_= (expr); \
-       HEDLEY_DIAGNOSTIC_PUSH  \
+       HEDLEY_DIAGNOSTIC_POP  \
        simde_bug_ignore_sign_conversion_v_; \
      }))
 #else


=====================================
simde/simde-features.h
=====================================
@@ -682,4 +682,23 @@
   #define SIMDE_ARM_NEON_FP16
 #endif
 
+#if !defined(SIMDE_LOONGARCH_LASX_NATIVE) && !defined(SIMDE_LOONGARCH_LASX_NO_NATIVE) && !defined(SIMDE_NO_NATIVE)
+  #if defined(SIMDE_ARCH_LOONGARCH_LASX)
+    #define SIMDE_LOONGARCH_LASX_NATIVE
+  #endif
+#endif
+
+#if !defined(SIMDE_LOONGARCH_LSX_NATIVE) && !defined(SIMDE_LOONGARCH_LSX_NO_NATIVE) && !defined(SIMDE_NO_NATIVE)
+  #if defined(SIMDE_ARCH_LOONGARCH_LSX)
+    #define SIMDE_LOONGARCH_LSX_NATIVE
+  #endif
+#endif
+
+#if defined(SIMDE_LOONGARCH_LASX_NATIVE)
+  #include <lasxintrin.h>
+#endif
+#if defined(SIMDE_LOONGARCH_LSX_NATIVE)
+  #include <lsxintrin.h>
+#endif
+
 #endif /* !defined(SIMDE_FEATURES_H) */


=====================================
simde/x86/avx.h
=====================================
@@ -2127,7 +2127,7 @@ simde_mm256_round_ps (simde__m256 a, const int rounding) {
 #elif SIMDE_NATURAL_VECTOR_SIZE_LE(128) && defined(SIMDE_STATEMENT_EXPR_)
   #define simde_mm256_round_ps(a, rounding) SIMDE_STATEMENT_EXPR_(({ \
     simde__m256_private \
-      simde_mm256_round_ps_r_, \
+      simde_mm256_round_ps_r_ = simde__m256_to_private(simde_mm256_setzero_ps()), \
       simde_mm256_round_ps_a_ = simde__m256_to_private(a); \
     \
     for (size_t simde_mm256_round_ps_i = 0 ; simde_mm256_round_ps_i < (sizeof(simde_mm256_round_ps_r_.m128) / sizeof(simde_mm256_round_ps_r_.m128[0])) ; simde_mm256_round_ps_i++) { \
@@ -2201,7 +2201,7 @@ simde_mm256_round_pd (simde__m256d a, const int rounding) {
 #elif SIMDE_NATURAL_VECTOR_SIZE_LE(128) && defined(SIMDE_STATEMENT_EXPR_)
   #define simde_mm256_round_pd(a, rounding) SIMDE_STATEMENT_EXPR_(({ \
     simde__m256d_private \
-      simde_mm256_round_pd_r_, \
+      simde_mm256_round_pd_r_ = simde__m256d_to_private(simde_mm256_setzero_pd()), \
       simde_mm256_round_pd_a_ = simde__m256d_to_private(a); \
     \
     for (size_t simde_mm256_round_pd_i = 0 ; simde_mm256_round_pd_i < (sizeof(simde_mm256_round_pd_r_.m128d) / sizeof(simde_mm256_round_pd_r_.m128d[0])) ; simde_mm256_round_pd_i++) { \
@@ -3093,7 +3093,7 @@ simde_mm256_cmp_ps
 #elif defined(SIMDE_STATEMENT_EXPR_) && SIMDE_NATURAL_VECTOR_SIZE_LE(128)
   #define simde_mm256_cmp_ps(a, b, imm8) SIMDE_STATEMENT_EXPR_(({ \
     simde__m256_private \
-      simde_mm256_cmp_ps_r_, \
+      simde_mm256_cmp_ps_r_ = simde__m256_to_private(simde_mm256_setzero_ps()), \
       simde_mm256_cmp_ps_a_ = simde__m256_to_private((a)), \
       simde_mm256_cmp_ps_b_ = simde__m256_to_private((b)); \
     \


=====================================
simde/x86/avx2.h
=====================================
@@ -3989,11 +3989,11 @@ simde_mm256_shuffle_epi32 (simde__m256i a, const int imm8)
        simde_mm_shuffle_epi32(simde_mm256_extracti128_si256(a, 0), (imm8)))
 #elif defined(SIMDE_SHUFFLE_VECTOR_)
 #  define simde_mm256_shuffle_epi32(a, imm8) (__extension__ ({ \
-      const simde__m256i_private simde__tmp_a_ = simde__m256i_to_private(a); \
+      const simde__m256i_private simde_tmp_a_ = simde__m256i_to_private(a); \
       simde__m256i_from_private((simde__m256i_private) { .i32 = \
           SIMDE_SHUFFLE_VECTOR_(32, 32, \
-                                (simde__tmp_a_).i32, \
-                                (simde__tmp_a_).i32, \
+                                (simde_tmp_a_).i32, \
+                                (simde_tmp_a_).i32, \
                                 ((imm8)     ) & 3, \
                                 ((imm8) >> 2) & 3, \
                                 ((imm8) >> 4) & 3, \
@@ -4017,11 +4017,11 @@ simde_mm256_shuffle_epi32 (simde__m256i a, const int imm8)
        simde_mm_shufflehi_epi16(simde_mm256_extracti128_si256(a, 0), (imm8)))
 #elif defined(SIMDE_SHUFFLE_VECTOR_)
 #  define simde_mm256_shufflehi_epi16(a, imm8) (__extension__ ({ \
-      const simde__m256i_private simde__tmp_a_ = simde__m256i_to_private(a); \
+      const simde__m256i_private simde_tmp_a_ = simde__m256i_to_private(a); \
       simde__m256i_from_private((simde__m256i_private) { .i16 = \
         SIMDE_SHUFFLE_VECTOR_(16, 32, \
-          (simde__tmp_a_).i16, \
-          (simde__tmp_a_).i16, \
+          (simde_tmp_a_).i16, \
+          (simde_tmp_a_).i16, \
           0, 1, 2, 3, \
           (((imm8)     ) & 3) + 4, \
           (((imm8) >> 2) & 3) + 4, \
@@ -4053,11 +4053,11 @@ simde_mm256_shuffle_epi32 (simde__m256i a, const int imm8)
        simde_mm_shufflelo_epi16(simde_mm256_extracti128_si256(a, 0), (imm8)))
 #elif defined(SIMDE_SHUFFLE_VECTOR_)
 #  define simde_mm256_shufflelo_epi16(a, imm8) (__extension__ ({ \
-      const simde__m256i_private simde__tmp_a_ = simde__m256i_to_private(a); \
+      const simde__m256i_private simde_tmp_a_ = simde__m256i_to_private(a); \
       simde__m256i_from_private((simde__m256i_private) { .i16 = \
         SIMDE_SHUFFLE_VECTOR_(16, 32, \
-          (simde__tmp_a_).i16, \
-          (simde__tmp_a_).i16, \
+          (simde_tmp_a_).i16, \
+          (simde_tmp_a_).i16, \
           (((imm8)     ) & 3), \
           (((imm8) >> 2) & 3), \
           (((imm8) >> 4) & 3), \


=====================================
simde/x86/avx512/cmp.h
=====================================
@@ -237,7 +237,7 @@ simde_mm512_cmp_ps_mask (simde__m512 a, simde__m512 b, const int imm8)
 #elif defined(SIMDE_STATEMENT_EXPR_) && SIMDE_NATURAL_VECTOR_SIZE_LE(128)
   #define simde_mm512_cmp_ps_mask(a, b, imm8) SIMDE_STATEMENT_EXPR_(({ \
     simde__m512_private \
-      simde_mm512_cmp_ps_mask_r_, \
+      simde_mm512_cmp_ps_mask_r_ = simde__m512_to_private(simde_mm512_setzero_ps()), \
       simde_mm512_cmp_ps_mask_a_ = simde__m512_to_private((a)), \
       simde_mm512_cmp_ps_mask_b_ = simde__m512_to_private((b)); \
     \
@@ -250,7 +250,7 @@ simde_mm512_cmp_ps_mask (simde__m512 a, simde__m512 b, const int imm8)
 #elif defined(SIMDE_STATEMENT_EXPR_) && SIMDE_NATURAL_VECTOR_SIZE_LE(256)
   #define simde_mm512_cmp_ps_mask(a, b, imm8) SIMDE_STATEMENT_EXPR_(({ \
     simde__m512_private \
-      simde_mm512_cmp_ps_mask_r_, \
+      simde_mm512_cmp_ps_mask_r_ = simde__m512_to_private(simde_mm512_setzero_ps()), \
       simde_mm512_cmp_ps_mask_a_ = simde__m512_to_private((a)), \
       simde_mm512_cmp_ps_mask_b_ = simde__m512_to_private((b)); \
     \
@@ -485,7 +485,7 @@ simde_mm512_cmp_pd_mask (simde__m512d a, simde__m512d b, const int imm8)
 #elif defined(SIMDE_STATEMENT_EXPR_) && SIMDE_NATURAL_VECTOR_SIZE_LE(128)
   #define simde_mm512_cmp_pd_mask(a, b, imm8) SIMDE_STATEMENT_EXPR_(({ \
     simde__m512d_private \
-      simde_mm512_cmp_pd_mask_r_, \
+      simde_mm512_cmp_pd_mask_r_ = simde__m512d_to_private(simde_mm512_setzero_pd()), \
       simde_mm512_cmp_pd_mask_a_ = simde__m512d_to_private((a)), \
       simde_mm512_cmp_pd_mask_b_ = simde__m512d_to_private((b)); \
     \
@@ -498,7 +498,7 @@ simde_mm512_cmp_pd_mask (simde__m512d a, simde__m512d b, const int imm8)
 #elif defined(SIMDE_STATEMENT_EXPR_) && SIMDE_NATURAL_VECTOR_SIZE_LE(256)
   #define simde_mm512_cmp_pd_mask(a, b, imm8) SIMDE_STATEMENT_EXPR_(({ \
     simde__m512d_private \
-      simde_mm512_cmp_pd_mask_r_, \
+      simde_mm512_cmp_pd_mask_r_ = simde__m512d_to_private(simde_mm512_setzero_pd()), \
       simde_mm512_cmp_pd_mask_a_ = simde__m512d_to_private((a)), \
       simde_mm512_cmp_pd_mask_b_ = simde__m512d_to_private((b)); \
     \


=====================================
simde/x86/avx512/range.h
=====================================
@@ -128,7 +128,7 @@ simde_mm256_range_ps (simde__m256 a, simde__m256 b, int imm8)
 #elif SIMDE_NATURAL_VECTOR_SIZE_LE(128) && defined(SIMDE_STATEMENT_EXPR_)
   #define simde_mm256_range_ps(a, b, imm8) SIMDE_STATEMENT_EXPR_(({ \
       simde__m256_private \
-        simde_mm256_range_ps_r_, \
+        simde_mm256_range_ps_r_ = simde__m256_to_private(simde_mm256_setzero_ps()), \
         simde_mm256_range_ps_a_ = simde__m256_to_private(a), \
         simde_mm256_range_ps_b_ = simde__m256_to_private(b); \
       \
@@ -208,7 +208,7 @@ simde_mm512_range_ps (simde__m512 a, simde__m512 b, int imm8)
 #elif SIMDE_NATURAL_VECTOR_SIZE_LE(128) && defined(SIMDE_STATEMENT_EXPR_)
   #define simde_mm512_range_ps(a, b, imm8) SIMDE_STATEMENT_EXPR_(({ \
       simde__m512_private \
-        simde_mm512_range_ps_r_, \
+        simde_mm512_range_ps_r_ = simde__m512_to_private(simde_mm512_setzero_ps()), \
         simde_mm512_range_ps_a_ = simde__m512_to_private(a), \
         simde_mm512_range_ps_b_ = simde__m512_to_private(b); \
       \
@@ -221,7 +221,7 @@ simde_mm512_range_ps (simde__m512 a, simde__m512 b, int imm8)
 #elif SIMDE_NATURAL_VECTOR_SIZE_LE(256) && defined(SIMDE_STATEMENT_EXPR_)
   #define simde_mm512_range_ps(a, b, imm8) SIMDE_STATEMENT_EXPR_(({ \
       simde__m512_private \
-        simde_mm512_range_ps_r_, \
+        simde_mm512_range_ps_r_ = simde__m512_to_private(simde_mm512_setzero_ps()), \
         simde_mm512_range_ps_a_ = simde__m512_to_private(a), \
         simde_mm512_range_ps_b_ = simde__m512_to_private(b); \
       \
@@ -368,7 +368,7 @@ simde_mm256_range_pd (simde__m256d a, simde__m256d b, int imm8)
 #elif SIMDE_NATURAL_VECTOR_SIZE_LE(128) && defined(SIMDE_STATEMENT_EXPR_)
   #define simde_mm256_range_pd(a, b, imm8) SIMDE_STATEMENT_EXPR_(({ \
       simde__m256d_private \
-        simde_mm256_range_pd_r_, \
+        simde_mm256_range_pd_r_ = simde__m256d_to_private(simde_mm256_setzero_pd()), \
         simde_mm256_range_pd_a_ = simde__m256d_to_private(a), \
         simde_mm256_range_pd_b_ = simde__m256d_to_private(b); \
       \
@@ -448,7 +448,7 @@ simde_mm512_range_pd (simde__m512d a, simde__m512d b, int imm8)
 #elif SIMDE_NATURAL_VECTOR_SIZE_LE(128) && defined(SIMDE_STATEMENT_EXPR_)
   #define simde_mm512_range_pd(a, b, imm8) SIMDE_STATEMENT_EXPR_(({ \
       simde__m512d_private \
-        simde_mm512_range_pd_r_, \
+        simde_mm512_range_pd_r_ = simde__m512d_to_private(simde_mm512_setzero_pd()), \
         simde_mm512_range_pd_a_ = simde__m512d_to_private(a), \
         simde_mm512_range_pd_b_ = simde__m512d_to_private(b); \
       \
@@ -461,7 +461,7 @@ simde_mm512_range_pd (simde__m512d a, simde__m512d b, int imm8)
 #elif SIMDE_NATURAL_VECTOR_SIZE_LE(256) && defined(SIMDE_STATEMENT_EXPR_)
   #define simde_mm512_range_pd(a, b, imm8) SIMDE_STATEMENT_EXPR_(({ \
       simde__m512d_private \
-        simde_mm512_range_pd_r_, \
+        simde_mm512_range_pd_r_ = simde__m512d_to_private(simde_mm512_setzero_pd()), \
         simde_mm512_range_pd_a_ = simde__m512d_to_private(a), \
         simde_mm512_range_pd_b_ = simde__m512d_to_private(b); \
       \


=====================================
simde/x86/avx512/round.h
=====================================
@@ -10,7 +10,7 @@ SIMDE_BEGIN_DECLS_
 #if SIMDE_NATURAL_VECTOR_SIZE_LE(256) && defined(SIMDE_STATEMENT_EXPR_)
   #define simde_x_mm512_round_ps(a, rounding) SIMDE_STATEMENT_EXPR_(({ \
     simde__m512_private \
-      simde_x_mm512_round_ps_r_, \
+      simde_x_mm512_round_ps_r_ = simde__m512_to_private(simde_mm512_setzero_ps()), \
       simde_x_mm512_round_ps_a_ = simde__m512_to_private(a); \
     \
     for (size_t simde_x_mm512_round_ps_i = 0 ; simde_x_mm512_round_ps_i < (sizeof(simde_x_mm512_round_ps_r_.m256) / sizeof(simde_x_mm512_round_ps_r_.m256[0])) ; simde_x_mm512_round_ps_i++) { \
@@ -148,7 +148,7 @@ SIMDE_BEGIN_DECLS_
 #if SIMDE_NATURAL_VECTOR_SIZE_LE(256) && defined(SIMDE_STATEMENT_EXPR_)
   #define simde_x_mm512_round_pd(a, rounding) SIMDE_STATEMENT_EXPR_(({ \
     simde__m512d_private \
-      simde_x_mm512_round_pd_r_, \
+      simde_x_mm512_round_pd_r_ = simde__m512d_to_private(simde_mm512_setzero_pd()), \
       simde_x_mm512_round_pd_a_ = simde__m512d_to_private(a); \
     \
     for (size_t simde_x_mm512_round_pd_i = 0 ; simde_x_mm512_round_pd_i < (sizeof(simde_x_mm512_round_pd_r_.m256d) / sizeof(simde_x_mm512_round_pd_r_.m256d[0])) ; simde_x_mm512_round_pd_i++) { \


=====================================
simde/x86/avx512/roundscale.h
=====================================
@@ -73,7 +73,7 @@ SIMDE_BEGIN_DECLS_
 #elif SIMDE_NATURAL_VECTOR_SIZE_LE(128) && defined(SIMDE_STATEMENT_EXPR_)
   #define simde_mm256_roundscale_ps(a, imm8) SIMDE_STATEMENT_EXPR_(({ \
     simde__m256_private \
-      simde_mm256_roundscale_ps_r_, \
+      simde_mm256_roundscale_ps_r_ = simde__m256_to_private(simde_mm256_setzero_ps()), \
       simde_mm256_roundscale_ps_a_ = simde__m256_to_private(a); \
     \
     for (size_t simde_mm256_roundscale_ps_i = 0 ; simde_mm256_roundscale_ps_i < (sizeof(simde_mm256_roundscale_ps_r_.m128) / sizeof(simde_mm256_roundscale_ps_r_.m128[0])) ; simde_mm256_roundscale_ps_i++) { \
@@ -141,7 +141,7 @@ SIMDE_BEGIN_DECLS_
 #elif SIMDE_NATURAL_VECTOR_SIZE_LE(256) && defined(SIMDE_STATEMENT_EXPR_)
   #define simde_mm512_roundscale_ps(a, imm8) SIMDE_STATEMENT_EXPR_(({ \
     simde__m512_private \
-      simde_mm512_roundscale_ps_r_, \
+      simde_mm512_roundscale_ps_r_ = simde__m512_to_private(simde_mm512_setzero_ps()), \
       simde_mm512_roundscale_ps_a_ = simde__m512_to_private(a); \
     \
     for (size_t simde_mm512_roundscale_ps_i = 0 ; simde_mm512_roundscale_ps_i < (sizeof(simde_mm512_roundscale_ps_r_.m256) / sizeof(simde_mm512_roundscale_ps_r_.m256[0])) ; simde_mm512_roundscale_ps_i++) { \
@@ -265,7 +265,7 @@ SIMDE_BEGIN_DECLS_
 #elif SIMDE_NATURAL_VECTOR_SIZE_LE(128) && defined(SIMDE_STATEMENT_EXPR_)
   #define simde_mm256_roundscale_pd(a, imm8) SIMDE_STATEMENT_EXPR_(({ \
     simde__m256d_private \
-      simde_mm256_roundscale_pd_r_, \
+      simde_mm256_roundscale_pd_r_ = simde__m256d_to_private(simde_mm256_setzero_pd()), \
       simde_mm256_roundscale_pd_a_ = simde__m256d_to_private(a); \
     \
     for (size_t simde_mm256_roundscale_pd_i = 0 ; simde_mm256_roundscale_pd_i < (sizeof(simde_mm256_roundscale_pd_r_.m128d) / sizeof(simde_mm256_roundscale_pd_r_.m128d[0])) ; simde_mm256_roundscale_pd_i++) { \
@@ -333,7 +333,7 @@ SIMDE_BEGIN_DECLS_
 #elif SIMDE_NATURAL_VECTOR_SIZE_LE(256) && defined(SIMDE_STATEMENT_EXPR_)
   #define simde_mm512_roundscale_pd(a, imm8) SIMDE_STATEMENT_EXPR_(({ \
     simde__m512d_private \
-      simde_mm512_roundscale_pd_r_, \
+      simde_mm512_roundscale_pd_r_ = simde__m512d_to_private(simde_mm512_setzero_pd()), \
       simde_mm512_roundscale_pd_a_ = simde__m512d_to_private(a); \
     \
     for (size_t simde_mm512_roundscale_pd_i = 0 ; simde_mm512_roundscale_pd_i < (sizeof(simde_mm512_roundscale_pd_r_.m256d) / sizeof(simde_mm512_roundscale_pd_r_.m256d[0])) ; simde_mm512_roundscale_pd_i++) { \


=====================================
simde/x86/avx512/types.h
=====================================
@@ -512,6 +512,20 @@ typedef union {
  * issue and we'll try to figure out a work-around. */
 typedef uint32_t simde__mmask32;
 typedef uint64_t simde__mmask64;
+#if !defined(__mmask32) && defined(SIMDE_ENABLE_NATIVE_ALIASES)
+  #if !defined(HEDLEY_INTEL_VERSION)
+    typedef uint32_t __mmask32;
+  #else
+    #define __mmask32 uint32_t;
+  #endif
+#endif
+#if !defined(__mmask64) && defined(SIMDE_ENABLE_NATIVE_ALIASES)
+  #if !defined(HEDLEY_INTEL_VERSION)
+    typedef uint64_t __mask64;
+  #else
+    #define __mmask64 uint64_t;
+  #endif
+#endif
 
 #if !defined(SIMDE_X86_AVX512F_NATIVE) && defined(SIMDE_ENABLE_NATIVE_ALIASES)
   #if !defined(HEDLEY_INTEL_VERSION)


=====================================
simde/x86/sse.h
=====================================
@@ -122,6 +122,17 @@ typedef union {
       SIMDE_ALIGN_TO_16 SIMDE_POWER_ALTIVEC_VECTOR(signed long long)   altivec_i64;
       SIMDE_ALIGN_TO_16 SIMDE_POWER_ALTIVEC_VECTOR(double)             altivec_f64;
     #endif
+  #elif defined(SIMDE_LOONGARCH_LSX_NATIVE)
+    v16i8 lsx_i8;
+    v8i16 lsx_i16;
+    v4i32 lsx_i32;
+    v2i64 lsx_i64;
+    v16u8 lsx_u8;
+    v8u16 lsx_u16;
+    v4u32 lsx_u32;
+    v2u64 lsx_u64;
+    v4f32 lsx_f32;
+    v2f64 lsx_f64;
   #endif
 } simde__m128_private;
 
@@ -133,6 +144,8 @@ typedef union {
    typedef v128_t simde__m128;
 #elif defined(SIMDE_POWER_ALTIVEC_P6_NATIVE) || defined(SIMDE_ZARCH_ZVECTOR_13_NATIVE)
    typedef SIMDE_POWER_ALTIVEC_VECTOR(float) simde__m128;
+#elif defined(SIMDE_LOONGARCH_LSX_NATIVE)
+  typedef v4f32 simde__m128;
 #elif defined(SIMDE_VECTOR_SUBSCRIPT)
   typedef simde_float32 simde__m128 SIMDE_ALIGN_TO_16 SIMDE_VECTOR(16) SIMDE_MAY_ALIAS;
 #else
@@ -216,6 +229,19 @@ simde__m128_to_private(simde__m128 v) {
   SIMDE_X86_GENERATE_CONVERSION_FUNCTION(m128, v128_t, wasm, v128);
 #endif /* defined(SIMDE_POWER_ALTIVEC_P6_NATIVE) */
 
+#if defined(SIMDE_LOONGARCH_LSX_NATIVE)
+  SIMDE_X86_GENERATE_CONVERSION_FUNCTION(m128, v16i8, lsx, i8)
+  SIMDE_X86_GENERATE_CONVERSION_FUNCTION(m128, v8i16, lsx, i16)
+  SIMDE_X86_GENERATE_CONVERSION_FUNCTION(m128, v4i32, lsx, i32)
+  SIMDE_X86_GENERATE_CONVERSION_FUNCTION(m128, v2i64, lsx, i64)
+  SIMDE_X86_GENERATE_CONVERSION_FUNCTION(m128, v16u8, lsx, u8)
+  SIMDE_X86_GENERATE_CONVERSION_FUNCTION(m128, v8u16, lsx, u16)
+  SIMDE_X86_GENERATE_CONVERSION_FUNCTION(m128, v4u32, lsx, u32)
+  SIMDE_X86_GENERATE_CONVERSION_FUNCTION(m128, v2u64, lsx, u64)
+  SIMDE_X86_GENERATE_CONVERSION_FUNCTION(m128, v4f32, lsx, f32)
+  SIMDE_X86_GENERATE_CONVERSION_FUNCTION(m128, v2f64, lsx, f64)
+#endif /* defined(SIMDE_LOONGARCH_LSX_NATIVE) */
+
 enum {
   #if defined(SIMDE_X86_SSE_NATIVE)
     SIMDE_MM_ROUND_NEAREST     = _MM_ROUND_NEAREST,
@@ -585,6 +611,8 @@ simde_x_mm_round_ps (simde__m128 a, int rounding, int lax_rounding)
         r_.altivec_f32 = HEDLEY_REINTERPRET_CAST(SIMDE_POWER_ALTIVEC_VECTOR(float), vec_rint(a_.altivec_f32));
       #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);
       #elif defined(simde_math_roundevenf)
         SIMDE_VECTORIZE
         for (size_t i = 0 ; i < (sizeof(r_.f32) / sizeof(r_.f32[0])) ; i++) {
@@ -600,6 +628,8 @@ simde_x_mm_round_ps (simde__m128 a, int rounding, int lax_rounding)
         r_.altivec_f32 = HEDLEY_REINTERPRET_CAST(SIMDE_POWER_ALTIVEC_VECTOR(float), vec_floor(a_.altivec_f32));
       #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);
       #elif defined(simde_math_floorf)
         SIMDE_VECTORIZE
         for (size_t i = 0 ; i < (sizeof(r_.f32) / sizeof(r_.f32[0])) ; i++) {
@@ -615,6 +645,8 @@ simde_x_mm_round_ps (simde__m128 a, int rounding, int lax_rounding)
         r_.altivec_f32 = HEDLEY_REINTERPRET_CAST(SIMDE_POWER_ALTIVEC_VECTOR(float), vec_ceil(a_.altivec_f32));
       #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);
       #elif defined(simde_math_ceilf)
         SIMDE_VECTORIZE
         for (size_t i = 0 ; i < (sizeof(r_.f32) / sizeof(r_.f32[0])) ; i++) {
@@ -630,6 +662,8 @@ simde_x_mm_round_ps (simde__m128 a, int rounding, int lax_rounding)
         r_.altivec_f32 = HEDLEY_REINTERPRET_CAST(SIMDE_POWER_ALTIVEC_VECTOR(float), vec_trunc(a_.altivec_f32));
       #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);
       #elif defined(simde_math_truncf)
         SIMDE_VECTORIZE
         for (size_t i = 0 ; i < (sizeof(r_.f32) / sizeof(r_.f32[0])) ; i++) {
@@ -692,6 +726,8 @@ simde_mm_set_ps1 (simde_float32 a) {
   #elif defined(SIMDE_POWER_ALTIVEC_P6_NATIVE) || defined(SIMDE_ZARCH_ZVECTOR_14_NATIVE)
     (void) a;
     return vec_splats(a);
+  #elif defined(SIMDE_LOONGARCH_LSX_NATIVE)
+    return (simde__m128)__lsx_vldrepl_w(&a, 0);
   #else
     return simde_mm_set_ps(a, a, a, a);
   #endif
@@ -722,6 +758,8 @@ simde_mm_move_ss (simde__m128 a, simde__m128 b) {
       r_.altivec_f32 = vec_sel(a_.altivec_f32, b_.altivec_f32, m);
     #elif defined(SIMDE_WASM_SIMD128_NATIVE)
       r_.wasm_v128 = wasm_i8x16_shuffle(b_.wasm_v128, a_.wasm_v128, 0, 1, 2, 3, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31);
+    #elif defined(SIMDE_LOONGARCH_LSX_NATIVE)
+      r_.lsx_i64 = __lsx_vextrins_w(a_.lsx_i64, b_.lsx_i64, 0);
     #else
       r_.f32[0] = b_.f32[0];
       r_.f32[1] = a_.f32[1];
@@ -754,6 +792,8 @@ simde_x_mm_broadcastlow_ps(simde__m128 a) {
       r_.neon_f32 = vdupq_laneq_f32(a_.neon_f32, 0);
     #elif defined(SIMDE_POWER_ALTIVEC_P6_NATIVE)
       r_.altivec_f32 = vec_splat(a_.altivec_f32, 0);
+    #elif defined(SIMDE_LOONGARCH_LSX_NATIVE)
+      r_.lsx_i64 = __lsx_vreplvei_w(a_.lsx_i64, 0);
     #elif defined(SIMDE_SHUFFLE_VECTOR_)
       r_.f32 = SIMDE_SHUFFLE_VECTOR_(32, 16, a_.f32, a_.f32, 0, 0, 0, 0);
     #else
@@ -784,6 +824,8 @@ simde_mm_add_ps (simde__m128 a, simde__m128 b) {
       r_.wasm_v128 = wasm_f32x4_add(a_.wasm_v128, b_.wasm_v128);
     #elif defined(SIMDE_POWER_ALTIVEC_P6_NATIVE)
       r_.altivec_f32 = vec_add(a_.altivec_f32, b_.altivec_f32);
+    #elif defined(SIMDE_LOONGARCH_LSX_NATIVE)
+      r_.lsx_f32 = __lsx_vfadd_s(a_.lsx_f32, b_.lsx_f32);
     #elif defined(SIMDE_VECTOR_SUBSCRIPT_OPS)
       r_.f32 = a_.f32 + b_.f32;
     #else
@@ -849,6 +891,8 @@ simde_mm_and_ps (simde__m128 a, simde__m128 b) {
       r_.neon_i32 = vandq_s32(a_.neon_i32, b_.neon_i32);
     #elif defined(SIMDE_WASM_SIMD128_NATIVE)
       r_.wasm_v128 = wasm_v128_and(a_.wasm_v128, b_.wasm_v128);
+    #elif defined(SIMDE_LOONGARCH_LSX_NATIVE)
+      r_.lsx_i64 = __lsx_vand_v(a_.lsx_i64, b_.lsx_i64);
     #elif defined(SIMDE_VECTOR_SUBSCRIPT_OPS)
       r_.i32 = a_.i32 & b_.i32;
     #elif defined(SIMDE_POWER_ALTIVEC_P6_NATIVE)
@@ -884,6 +928,8 @@ simde_mm_andnot_ps (simde__m128 a, simde__m128 b) {
       r_.wasm_v128 = wasm_v128_andnot(b_.wasm_v128, a_.wasm_v128);
     #elif defined(SIMDE_POWER_ALTIVEC_P6_NATIVE) || defined(SIMDE_ZARCH_ZVECTOR_14_NATIVE)
       r_.altivec_f32 = vec_andc(b_.altivec_f32, a_.altivec_f32);
+    #elif defined(SIMDE_LOONGARCH_LSX_NATIVE)
+      r_.lsx_i64 = __lsx_vandn_v(a_.lsx_i64, b_.lsx_i64);
     #elif defined(SIMDE_VECTOR_SUBSCRIPT_OPS)
       r_.i32 = ~a_.i32 & b_.i32;
     #else
@@ -917,6 +963,8 @@ simde_mm_xor_ps (simde__m128 a, simde__m128 b) {
       r_.wasm_v128 = wasm_v128_xor(a_.wasm_v128, b_.wasm_v128);
     #elif defined(SIMDE_POWER_ALTIVEC_P6_NATIVE)
       r_.altivec_i32 = vec_xor(a_.altivec_i32, b_.altivec_i32);
+    #elif defined(SIMDE_LOONGARCH_LSX_NATIVE)
+      r_.lsx_i64 = __lsx_vxor_v(a_.lsx_i64, b_.lsx_i64);
     #elif defined(SIMDE_VECTOR_SUBSCRIPT_OPS)
       r_.i32f = a_.i32f ^ b_.i32f;
     #else
@@ -950,6 +998,8 @@ simde_mm_or_ps (simde__m128 a, simde__m128 b) {
       r_.wasm_v128 = wasm_v128_or(a_.wasm_v128, b_.wasm_v128);
     #elif defined(SIMDE_POWER_ALTIVEC_P6_NATIVE)
       r_.altivec_i32 = vec_or(a_.altivec_i32, b_.altivec_i32);
+    #elif defined(SIMDE_LOONGARCH_LSX_NATIVE)
+      r_.lsx_i64 = __lsx_vor_v(a_.lsx_i64, b_.lsx_i64);
     #elif defined(SIMDE_VECTOR_SUBSCRIPT_OPS)
       r_.i32f = a_.i32f | b_.i32f;
     #else
@@ -988,6 +1038,8 @@ simde_x_mm_not_ps(simde__m128 a) {
       r_.altivec_i32 = vec_nor(a_.altivec_i32, a_.altivec_i32);
     #elif defined(SIMDE_WASM_SIMD128_NATIVE)
       r_.wasm_v128 = wasm_v128_not(a_.wasm_v128);
+    #elif defined(SIMDE_LOONGARCH_LSX_NATIVE)
+      r_.lsx_i64 = __lsx_vnor_v(a_.lsx_i64, a_.lsx_i64);
     #elif defined(SIMDE_VECTOR_SUBSCRIPT_OPS)
       r_.i32 = ~a_.i32;
     #else
@@ -1027,6 +1079,8 @@ simde_x_mm_select_ps(simde__m128 a, simde__m128 b, simde__m128 mask) {
       r_.wasm_v128 = wasm_v128_bitselect(b_.wasm_v128, a_.wasm_v128, mask_.wasm_v128);
     #elif defined(SIMDE_POWER_ALTIVEC_P6_NATIVE) || defined(SIMDE_ZARCH_ZVECTOR_13_NATIVE)
       r_.altivec_i32 = vec_sel(a_.altivec_i32, b_.altivec_i32, mask_.altivec_u32);
+    #elif defined(SIMDE_LOONGARCH_LSX_NATIVE)
+      r_.lsx_i64 = __lsx_vbitsel_v(a_.lsx_i64, b_.lsx_i64, mask_.lsx_i64);
     #elif defined(SIMDE_VECTOR_SUBSCRIPT_OPS)
       r_.i32 = a_.i32 ^ ((a_.i32 ^ b_.i32) & mask_.i32);
     #else
@@ -1161,6 +1215,8 @@ simde_mm_cmpeq_ps (simde__m128 a, simde__m128 b) {
       r_.wasm_v128 = wasm_f32x4_eq(a_.wasm_v128, b_.wasm_v128);
     #elif defined(SIMDE_POWER_ALTIVEC_P6_NATIVE) || defined(SIMDE_ZARCH_ZVECTOR_14_NATIVE)
       r_.altivec_f32 = HEDLEY_REINTERPRET_CAST(SIMDE_POWER_ALTIVEC_VECTOR(float), vec_cmpeq(a_.altivec_f32, b_.altivec_f32));
+    #elif defined(SIMDE_LOONGARCH_LSX_NATIVE)
+      r_.lsx_i64 = __lsx_vfcmp_ceq_s(a_.lsx_f32, b_.lsx_f32);
     #elif defined(SIMDE_VECTOR_SUBSCRIPT_OPS)
       r_.i32 = HEDLEY_REINTERPRET_CAST(__typeof__(r_.i32), a_.f32 == b_.f32);
     #else
@@ -1222,6 +1278,8 @@ simde_mm_cmpge_ps (simde__m128 a, simde__m128 b) {
       r_.wasm_v128 = wasm_f32x4_ge(a_.wasm_v128, b_.wasm_v128);
     #elif defined(SIMDE_POWER_ALTIVEC_P6_NATIVE)
       r_.altivec_f32 = HEDLEY_REINTERPRET_CAST(SIMDE_POWER_ALTIVEC_VECTOR(float), vec_cmpge(a_.altivec_f32, b_.altivec_f32));
+    #elif defined(SIMDE_LOONGARCH_LSX_NATIVE)
+      r_.lsx_i64 = __lsx_vfcmp_cle_s(b_.lsx_f32, a_.lsx_f32);
     #elif defined(SIMDE_VECTOR_SUBSCRIPT_OPS)
       r_.i32 = HEDLEY_REINTERPRET_CAST(__typeof__(r_.i32), (a_.f32 >= b_.f32));
     #else
@@ -1283,6 +1341,8 @@ simde_mm_cmpgt_ps (simde__m128 a, simde__m128 b) {
       r_.wasm_v128 = wasm_f32x4_gt(a_.wasm_v128, b_.wasm_v128);
     #elif defined(SIMDE_POWER_ALTIVEC_P6_NATIVE)
       r_.altivec_f32 = HEDLEY_REINTERPRET_CAST(SIMDE_POWER_ALTIVEC_VECTOR(float), vec_cmpgt(a_.altivec_f32, b_.altivec_f32));
+    #elif defined(SIMDE_LOONGARCH_LSX_NATIVE)
+      r_.lsx_i64 = __lsx_vfcmp_clt_s(b_.lsx_f32, a_.lsx_f32);
     #elif defined(SIMDE_VECTOR_SUBSCRIPT_OPS)
       r_.i32 = HEDLEY_REINTERPRET_CAST(__typeof__(r_.i32), (a_.f32 > b_.f32));
     #else
@@ -1344,6 +1404,8 @@ simde_mm_cmple_ps (simde__m128 a, simde__m128 b) {
       r_.wasm_v128 = wasm_f32x4_le(a_.wasm_v128, b_.wasm_v128);
     #elif defined(SIMDE_POWER_ALTIVEC_P6_NATIVE)
       r_.altivec_f32 = HEDLEY_REINTERPRET_CAST(SIMDE_POWER_ALTIVEC_VECTOR(float), vec_cmple(a_.altivec_f32, b_.altivec_f32));
+    #elif defined(SIMDE_LOONGARCH_LSX_NATIVE)
+      r_.lsx_i64 = __lsx_vfcmp_cle_s(a_.lsx_f32, b_.lsx_f32);
     #elif defined(SIMDE_VECTOR_SUBSCRIPT_OPS)
       r_.i32 = HEDLEY_REINTERPRET_CAST(__typeof__(r_.i32), (a_.f32 <= b_.f32));
     #else
@@ -1405,6 +1467,8 @@ simde_mm_cmplt_ps (simde__m128 a, simde__m128 b) {
       r_.wasm_v128 = wasm_f32x4_lt(a_.wasm_v128, b_.wasm_v128);
     #elif defined(SIMDE_POWER_ALTIVEC_P6_NATIVE)
       r_.altivec_f32 = HEDLEY_REINTERPRET_CAST(SIMDE_POWER_ALTIVEC_VECTOR(float), vec_cmplt(a_.altivec_f32, b_.altivec_f32));
+    #elif defined(SIMDE_LOONGARCH_LSX_NATIVE)
+      r_.lsx_i64 = __lsx_vfcmp_clt_s(a_.lsx_f32, b_.lsx_f32);
     #elif defined(SIMDE_VECTOR_SUBSCRIPT_OPS)
       r_.i32 = HEDLEY_REINTERPRET_CAST(__typeof__(r_.i32), (a_.f32 < b_.f32));
     #else
@@ -1467,6 +1531,8 @@ simde_mm_cmpneq_ps (simde__m128 a, simde__m128 b) {
     #elif defined(SIMDE_POWER_ALTIVEC_P7_NATIVE) || defined(SIMDE_ZARCH_ZVECTOR_14_NATIVE)
       r_.altivec_f32 = HEDLEY_REINTERPRET_CAST(SIMDE_POWER_ALTIVEC_VECTOR(float), vec_cmpeq(a_.altivec_f32, b_.altivec_f32));
       r_.altivec_f32 = HEDLEY_REINTERPRET_CAST(SIMDE_POWER_ALTIVEC_VECTOR(float), vec_nor(r_.altivec_f32, r_.altivec_f32));
+    #elif defined(SIMDE_LOONGARCH_LSX_NATIVE)
+      r_.lsx_i64 = __lsx_vfcmp_cune_s(a_.lsx_f32, b_.lsx_f32);
     #elif defined(SIMDE_VECTOR_SUBSCRIPT_OPS)
       r_.i32 = HEDLEY_REINTERPRET_CAST(__typeof__(r_.i32), (a_.f32 != b_.f32));
     #else
@@ -1608,6 +1674,9 @@ simde_mm_cmpord_ps (simde__m128 a, simde__m128 b) {
     #elif defined(SIMDE_POWER_ALTIVEC_P6_NATIVE)
       r_.altivec_f32 = HEDLEY_REINTERPRET_CAST(SIMDE_POWER_ALTIVEC_VECTOR(float),
           vec_and(vec_cmpeq(a_.altivec_f32, a_.altivec_f32), vec_cmpeq(b_.altivec_f32, b_.altivec_f32)));
+    #elif defined(SIMDE_LOONGARCH_LSX_NATIVE)
+      r_.lsx_i64 = __lsx_vfcmp_cun_s(a_.lsx_f32, b_.lsx_f32);
+      r_.lsx_i64 = __lsx_vnor_v(r_.lsx_i64, r_.lsx_i64);
     #elif defined(simde_math_isnanf)
       SIMDE_VECTORIZE
       for (size_t i = 0 ; i < (sizeof(r_.f32) / sizeof(r_.f32[0])) ; i++) {
@@ -1650,6 +1719,8 @@ simde_mm_cmpunord_ps (simde__m128 a, simde__m128 b) {
       r_.altivec_f32 = HEDLEY_REINTERPRET_CAST(SIMDE_POWER_ALTIVEC_VECTOR(float),
           vec_and(vec_cmpeq(a_.altivec_f32, a_.altivec_f32), vec_cmpeq(b_.altivec_f32, b_.altivec_f32)));
       r_.altivec_f32 = vec_nor(r_.altivec_f32, r_.altivec_f32);
+    #elif defined(SIMDE_LOONGARCH_LSX_NATIVE)
+      r_.lsx_i64 = __lsx_vfcmp_cun_s(a_.lsx_f32, b_.lsx_f32);
     #elif defined(simde_math_isnanf)
       SIMDE_VECTORIZE
       for (size_t i = 0 ; i < (sizeof(r_.f32) / sizeof(r_.f32[0])) ; i++) {
@@ -1871,6 +1942,9 @@ simde_x_mm_copysign_ps(simde__m128 dest, simde__m128 src) {
   #elif defined(SIMDE_POWER_ALTIVEC_P6_NATIVE) || defined(SIMDE_ZARCH_ZVECTOR_14_NATIVE)
     const SIMDE_POWER_ALTIVEC_VECTOR(unsigned int) sign_pos = HEDLEY_REINTERPRET_CAST(SIMDE_POWER_ALTIVEC_VECTOR(unsigned int), vec_splats(-0.0f));
     r_.altivec_f32 = vec_sel(dest_.altivec_f32, src_.altivec_f32, sign_pos);
+  #elif defined(SIMDE_LOONGARCH_LSX_NATIVE)
+    const v4f32 sign_pos = {-0.0f, -0.0f, -0.0f, -0.0f};
+    r_.lsx_i64 = __lsx_vbitsel_v(dest_.lsx_i64, src_.lsx_i64, (v2i64)sign_pos);
   #elif defined(SIMDE_IEEE754_STORAGE)
     (void) src_;
     (void) dest_;
@@ -2493,6 +2567,8 @@ simde_mm_div_ps (simde__m128 a, simde__m128 b) {
       r_.wasm_v128 =  wasm_f32x4_div(a_.wasm_v128, b_.wasm_v128);
     #elif defined(SIMDE_POWER_ALTIVEC_P7_NATIVE)
       r_.altivec_f32 = vec_div(a_.altivec_f32, b_.altivec_f32);
+    #elif defined(SIMDE_LOONGARCH_LASX_NATIVE)
+      r_.lsx_f32 = __lsx_vfdiv_s(a_.lsx_f32, b_.lsx_f32);
     #elif defined(SIMDE_VECTOR_SUBSCRIPT_OPS)
       r_.f32 = a_.f32 / b_.f32;
     #else
@@ -2597,6 +2673,8 @@ simde_mm_load_ps (simde_float32 const mem_addr[HEDLEY_ARRAY_PARAM(4)]) {
     r_.altivec_f32 = vec_vsx_ld(0, mem_addr);
   #elif defined(SIMDE_POWER_ALTIVEC_P6_NATIVE)
     r_.altivec_f32 = vec_ld(0, mem_addr);
+  #elif defined(SIMDE_LOONGARCH_LSX_NATIVE)
+    r_.lsx_i64 = __lsx_vld(mem_addr, 0);
   #else
     simde_memcpy(&r_, SIMDE_ALIGN_ASSUME_LIKE(mem_addr, simde__m128), sizeof(r_));
   #endif
@@ -2618,6 +2696,8 @@ simde_mm_load1_ps (simde_float32 const* mem_addr) {
 
     #if defined(SIMDE_ARM_NEON_A32V7_NATIVE)
       r_.neon_f32 = vld1q_dup_f32(mem_addr);
+    #elif defined(SIMDE_LOONGARCH_LSX_NATIVE)
+      r_.lsx_i64 = __lsx_vldrepl_w(mem_addr, 0);
     #else
       r_ = simde__m128_to_private(simde_mm_set1_ps(*mem_addr));
     #endif
@@ -2743,6 +2823,8 @@ simde_mm_loadr_ps (simde_float32 const mem_addr[HEDLEY_ARRAY_PARAM(4)]) {
       r_.neon_f32 = vextq_f32(r_.neon_f32, r_.neon_f32, 2);
     #elif defined(SIMDE_POWER_ALTIVEC_P7_NATIVE) && defined(__PPC64__)
       r_.altivec_f32 = vec_reve(v_.altivec_f32);
+    #elif defined(SIMDE_LOONGARCH_LSX_NATIVE)
+      r_.lsx_i64 = __lsx_vshuf4i_w(v_.lsx_i64, 0x1b);
     #elif defined(SIMDE_SHUFFLE_VECTOR_)
       r_.f32 = SIMDE_SHUFFLE_VECTOR_(32, 16, v_.f32, v_.f32, 3, 2, 1, 0);
     #else
@@ -2773,6 +2855,8 @@ simde_mm_loadu_ps (simde_float32 const mem_addr[HEDLEY_ARRAY_PARAM(4)]) {
       r_.wasm_v128 = wasm_v128_load(mem_addr);
     #elif defined(SIMDE_POWER_ALTIVEC_P7_NATIVE) && defined(__PPC64__)
       r_.altivec_f32 = vec_vsx_ld(0, mem_addr);
+    #elif defined(SIMDE_LOONGARCH_LSX_NATIVE)
+      r_.lsx_i64 = __lsx_vld(mem_addr, 0);
     #else
       simde_memcpy(&r_, mem_addr, sizeof(r_));
     #endif
@@ -2858,6 +2942,8 @@ simde_mm_max_ps (simde__m128 a, simde__m128 b) {
       r_.altivec_f32 = vec_max(a_.altivec_f32, b_.altivec_f32);
     #elif defined(SIMDE_POWER_ALTIVEC_P6_NATIVE) || defined(SIMDE_ZARCH_ZVECTOR_14_NATIVE)
       r_.altivec_f32 = vec_sel(b_.altivec_f32, a_.altivec_f32, vec_cmpgt(a_.altivec_f32, b_.altivec_f32));
+    #elif defined(SIMDE_LOONGARCH_LSX_NATIVE) && defined(SIMDE_FAST_NANS)
+      r_.lsx_f32 = __lsx_vfmax_s(a_.lsx_f32, b_.lsx_f32);
     #else
       SIMDE_VECTORIZE
       for (size_t i = 0 ; i < (sizeof(r_.f32) / sizeof(r_.f32[0])) ; i++) {
@@ -2983,6 +3069,8 @@ simde_mm_min_ps (simde__m128 a, simde__m128 b) {
       #else
         r_.altivec_f32 = vec_sel(b_.altivec_f32, a_.altivec_f32, vec_cmpgt(b_.altivec_f32, a_.altivec_f32));
       #endif
+    #elif defined(SIMDE_FAST_NANS) && defined(SIMDE_LOONGARCH_LSX_NATIVE)
+      r_.lsx_f32 = __lsx_vfmin_s(a_.lsx_f32, b_.lsx_f32);
     #elif defined(SIMDE_VECTOR_SUBSCRIPT_OPS)
       uint32_t SIMDE_VECTOR(16) m = HEDLEY_REINTERPRET_CAST(__typeof__(m), a_.f32 < b_.f32);
       r_.f32 =
@@ -3085,6 +3173,8 @@ simde_mm_movehl_ps (simde__m128 a, simde__m128 b) {
     #elif defined(SIMDE_POWER_ALTIVEC_P8_NATIVE) || defined(SIMDE_ZARCH_ZVECTOR_13_NATIVE)
       r_.altivec_f32 = HEDLEY_REINTERPRET_CAST(SIMDE_POWER_ALTIVEC_VECTOR(float),
           vec_mergel(b_.altivec_i64, a_.altivec_i64));
+    #elif defined(SIMDE_LOONGARCH_LSX_NATIVE)
+      r_.lsx_i64 = __lsx_vilvh_d(a_.lsx_i64, b_.lsx_i64);
     #elif defined(SIMDE_SHUFFLE_VECTOR_)
       r_.f32 = SIMDE_SHUFFLE_VECTOR_(32, 16, a_.f32, b_.f32, 6, 7, 2, 3);
     #else
@@ -3121,6 +3211,8 @@ simde_mm_movelh_ps (simde__m128 a, simde__m128 b) {
     #elif defined(SIMDE_POWER_ALTIVEC_P8_NATIVE) || defined(SIMDE_ZARCH_ZVECTOR_13_NATIVE)
       r_.altivec_f32 = HEDLEY_REINTERPRET_CAST(SIMDE_POWER_ALTIVEC_VECTOR(float),
           vec_mergeh(a_.altivec_i64, b_.altivec_i64));
+    #elif defined(SIMDE_LOONGARCH_LSX_NATIVE)
+      r_.lsx_i64 = __lsx_vilvl_d(b_.lsx_i64, a_.lsx_i64);
     #else
       r_.f32[0] = a_.f32[0];
       r_.f32[1] = a_.f32[1];
@@ -3208,6 +3300,9 @@ simde_mm_movemask_ps (simde__m128 a) {
       SIMDE_POWER_ALTIVEC_VECTOR(unsigned char) idx = { 96, 64, 32, 0, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128 };
       SIMDE_POWER_ALTIVEC_VECTOR(unsigned char) res = vec_bperm(a_.altivec_u8, idx);
       return HEDLEY_STATIC_CAST(int32_t, vec_extract(HEDLEY_REINTERPRET_CAST(SIMDE_POWER_ALTIVEC_VECTOR(signed int), res), 2));
+    #elif defined(SIMDE_LOONGARCH_LSX_NATIVE)
+      v2i64 t64 = __lsx_vmskltz_w(a_.lsx_i64);
+      r = __lsx_vpickve2gr_wu(t64, 0);
     #else
       SIMDE_VECTORIZE_REDUCTION(|:r)
       for (size_t i = 0 ; i < sizeof(a_.u32) / sizeof(a_.u32[0]) ; i++) {
@@ -3241,6 +3336,8 @@ simde_mm_mul_ps (simde__m128 a, simde__m128 b) {
       r_.f32 = a_.f32 * b_.f32;
     #elif defined(SIMDE_POWER_ALTIVEC_P7_NATIVE)
       r_.altivec_f32 = vec_mul(a_.altivec_f32, b_.altivec_f32);
+    #elif defined(SIMDE_LOONGARCH_LSX_NATIVE)
+      r_.lsx_f32 = __lsx_vfmul_s(a_.lsx_f32, b_.lsx_f32);
     #else
       SIMDE_VECTORIZE
       for (size_t i = 0 ; i < (sizeof(r_.f32) / sizeof(r_.f32[0])) ; i++) {
@@ -3510,6 +3607,9 @@ simde_x_mm_negate_ps(simde__m128 a) {
       r_.wasm_v128 = wasm_f32x4_neg(a_.wasm_v128);
     #elif defined(SIMDE_POWER_ALTIVEC_P8_NATIVE)
       r_.altivec_f32 = vec_neg(a_.altivec_f32);
+    #elif defined(SIMDE_LOONGARCH_LSX_NATIVE)
+      const v4f32 f32 = {0.0f, 0.0f, 0.0f, 0.0f};
+      r_.lsx_f32 = __lsx_vfsub_s(f32, a_.lsx_f32);
     #elif defined(SIMDE_VECTOR_NEGATE)
       r_.f32 = -a_.f32;
     #else
@@ -3547,6 +3647,8 @@ simde_mm_rcp_ps (simde__m128 a) {
       r_.wasm_v128 = wasm_f32x4_div(simde_mm_set1_ps(1.0f), a_.wasm_v128);
     #elif defined(SIMDE_POWER_ALTIVEC_P6_NATIVE)
       r_.altivec_f32 = vec_re(a_.altivec_f32);
+    #elif defined(SIMDE_LOONGARCH_LSX_NATIVE)
+      r_.lsx_f32 = __lsx_vfrecip_s(a_.lsx_f32);
     #elif defined(SIMDE_VECTOR_SUBSCRIPT_SCALAR)
       r_.f32 = 1.0f / a_.f32;
     #elif defined(SIMDE_IEEE754_STORAGE)
@@ -3615,6 +3717,8 @@ simde_mm_rsqrt_ps (simde__m128 a) {
       r_.neon_f32 = vrsqrteq_f32(a_.neon_f32);
     #elif defined(SIMDE_POWER_ALTIVEC_P6_NATIVE)
       r_.altivec_f32 = vec_rsqrte(a_.altivec_f32);
+    #elif defined(SIMDE_LOONGARCH_LSX_NATIVE)
+      r_.lsx_f32 = __lsx_vfrsqrt_s(a_.lsx_f32);
     #elif defined(SIMDE_IEEE754_STORAGE)
       /* https://basesandframes.files.wordpress.com/2020/04/even_faster_math_functions_green_2020.pdf
         Pages 100 - 103 */
@@ -3878,11 +3982,11 @@ simde_mm_sfence (void) {
 #  define simde_mm_shuffle_pi16(a, imm8) _mm_shuffle_pi16(a, imm8)
 #elif defined(SIMDE_SHUFFLE_VECTOR_)
 #  define simde_mm_shuffle_pi16(a, imm8) (__extension__ ({ \
-      const simde__m64_private simde__tmp_a_ = simde__m64_to_private(a); \
+      const simde__m64_private simde_tmp_a_ = simde__m64_to_private(a); \
       simde__m64_from_private((simde__m64_private) { .i16 = \
         SIMDE_SHUFFLE_VECTOR_(16, 8, \
-          (simde__tmp_a_).i16, \
-          (simde__tmp_a_).i16, \
+          (simde_tmp_a_).i16, \
+          (simde_tmp_a_).i16, \
           (((imm8)     ) & 3), \
           (((imm8) >> 2) & 3), \
           (((imm8) >> 4) & 3), \
@@ -3984,6 +4088,8 @@ simde_mm_sqrt_ps (simde__m128 a) {
       r_.wasm_v128 = wasm_f32x4_sqrt(a_.wasm_v128);
     #elif defined(SIMDE_POWER_ALTIVEC_P7_NATIVE) || defined(SIMDE_ZARCH_ZVECTOR_14_NATIVE)
       r_.altivec_f32 = vec_sqrt(a_.altivec_f32);
+    #elif defined(SIMDE_LOONGARCH_LSX_NATIVE)
+      r_.lsx_f32 = __lsx_vfsqrt_s(a_.lsx_f32);
     #elif defined(simde_math_sqrt)
       SIMDE_VECTORIZE
       for (size_t i = 0 ; i < sizeof(r_.f32) / sizeof(r_.f32[0]) ; i++) {
@@ -4048,6 +4154,8 @@ simde_mm_store_ps (simde_float32 mem_addr[4], simde__m128 a) {
       vec_st(a_.altivec_f32, 0, mem_addr);
     #elif defined(SIMDE_WASM_SIMD128_NATIVE)
       wasm_v128_store(mem_addr, a_.wasm_v128);
+    #elif defined(SIMDE_LOONGARCH_LSX_NATIVE)
+      __lsx_vst(a_.lsx_f32, mem_addr, 0);
     #else
       simde_memcpy(mem_addr, &a_, sizeof(a));
     #endif
@@ -4073,6 +4181,8 @@ simde_mm_store1_ps (simde_float32 mem_addr[4], simde__m128 a) {
       wasm_v128_store(mem_addr_, wasm_i32x4_shuffle(a_.wasm_v128, a_.wasm_v128, 0, 0, 0, 0));
     #elif defined(SIMDE_POWER_ALTIVEC_P6_NATIVE)
       vec_st(vec_splat(a_.altivec_f32, 0), 0, mem_addr_);
+    #elif defined(SIMDE_LOONGARCH_LSX_NATIVE)
+      __lsx_vst(__lsx_vreplvei_w(a_.lsx_f32, 0), mem_addr_, 0);
     #elif defined(SIMDE_SHUFFLE_VECTOR_)
       simde__m128_private tmp_;
       tmp_.f32 = SIMDE_SHUFFLE_VECTOR_(32, 16, a_.f32, a_.f32, 0, 0, 0, 0);
@@ -4101,6 +4211,8 @@ simde_mm_store_ss (simde_float32* mem_addr, simde__m128 a) {
 
     #if defined(SIMDE_ARM_NEON_A32V7_NATIVE)
       vst1q_lane_f32(mem_addr, a_.neon_f32, 0);
+    #elif defined(SIMDE_LOONGARCH_LSX_NATIVE)
+      __lsx_vstelm_w(a_.lsx_f32, mem_addr, 0, 0);
     #else
       *mem_addr = a_.f32[0];
     #endif
@@ -4163,6 +4275,8 @@ simde_mm_storer_ps (simde_float32 mem_addr[4], simde__m128 a) {
     #elif defined(SIMDE_ARM_NEON_A32V7_NATIVE)
       float32x4_t tmp = vrev64q_f32(a_.neon_f32);
       vst1q_f32(mem_addr, vextq_f32(tmp, tmp, 2));
+    #elif defined(SIMDE_LOONGARCH_LSX_NATIVE)
+      __lsx_vst(__lsx_vshuf4i_w(a_.lsx_f32, 0x1b), mem_addr, 0);
     #elif defined(SIMDE_SHUFFLE_VECTOR_)
       a_.f32 = SIMDE_SHUFFLE_VECTOR_(32, 16, a_.f32, a_.f32, 3, 2, 1, 0);
       simde_mm_store_ps(mem_addr, simde__m128_from_private(a_));
@@ -4190,6 +4304,8 @@ simde_mm_storeu_ps (simde_float32 mem_addr[4], simde__m128 a) {
       vst1q_f32(mem_addr, a_.neon_f32);
     #elif defined(SIMDE_POWER_ALTIVEC_P7_NATIVE)
       vec_vsx_st(a_.altivec_f32, 0, mem_addr);
+    #elif defined(SIMDE_LOONGARCH_LSX_NATIVE)
+      __lsx_vst(a_.lsx_f32, mem_addr, 0);
     #else
       simde_memcpy(mem_addr, &a_, sizeof(a_));
     #endif
@@ -4216,6 +4332,8 @@ simde_mm_sub_ps (simde__m128 a, simde__m128 b) {
       r_.wasm_v128 = wasm_f32x4_sub(a_.wasm_v128, b_.wasm_v128);
     #elif defined(SIMDE_POWER_ALTIVEC_P6_NATIVE)
       r_.altivec_f32 = vec_sub(a_.altivec_f32, b_.altivec_f32);
+    #elif defined(SIMDE_LOONGARCH_LSX_NATIVE)
+      r_.lsx_f32 = __lsx_vfsub_s(a_.lsx_f32, b_.lsx_f32);
     #elif defined(SIMDE_VECTOR_SUBSCRIPT_OPS)
       r_.f32 = a_.f32 - b_.f32;
     #else
@@ -4474,11 +4592,6 @@ simde_mm_ucomineq_ss (simde__m128 a, simde__m128 b) {
 #  endif
 #endif
 
-#if defined(SIMDE_DIAGNOSTIC_DISABLE_UNINITIALIZED_)
-  HEDLEY_DIAGNOSTIC_PUSH
-  SIMDE_DIAGNOSTIC_DISABLE_UNINITIALIZED_
-#endif
-
 SIMDE_FUNCTION_ATTRIBUTES
 simde__m128
 simde_mm_unpackhi_ps (simde__m128 a, simde__m128 b) {
@@ -4497,6 +4610,8 @@ simde_mm_unpackhi_ps (simde__m128 a, simde__m128 b) {
       float32x2_t b1 = vget_high_f32(b_.neon_f32);
       float32x2x2_t result = vzip_f32(a1, b1);
       r_.neon_f32 = vcombine_f32(result.val[0], result.val[1]);
+    #elif defined(SIMDE_LOONGARCH_LSX_NATIVE)
+      r_.lsx_i64 = __lsx_vilvh_w(b_.lsx_i64, a_.lsx_i64);
     #elif defined(SIMDE_SHUFFLE_VECTOR_)
       r_.f32 = SIMDE_SHUFFLE_VECTOR_(32, 16, a_.f32, b_.f32, 2, 6, 3, 7);
     #else
@@ -4528,6 +4643,8 @@ simde_mm_unpacklo_ps (simde__m128 a, simde__m128 b) {
       r_.neon_f32 = vzip1q_f32(a_.neon_f32, b_.neon_f32);
     #elif defined(SIMDE_POWER_ALTIVEC_P6_NATIVE)
       r_.altivec_f32 = vec_mergeh(a_.altivec_f32, b_.altivec_f32);
+    #elif defined(SIMDE_LOONGARCH_LSX_NATIVE)
+      r_.lsx_i64 = __lsx_vilvl_w(b_.lsx_i64, a_.lsx_i64);
     #elif defined(SIMDE_SHUFFLE_VECTOR_)
       r_.f32 = SIMDE_SHUFFLE_VECTOR_(32, 16, a_.f32, b_.f32, 0, 4, 1, 5);
     #elif defined(SIMDE_ARM_NEON_A32V7_NATIVE)


=====================================
simde/x86/sse2.h
=====================================
@@ -1235,16 +1235,16 @@ simde_mm_bslli_si128 (simde__m128i a, const int imm8)
   simde__m128i_from_neon_i8(((imm8) <= 0) ? simde__m128i_to_neon_i8(a) : (((imm8) > 15) ? (vdupq_n_s8(0)) : (vextq_s8(vdupq_n_s8(0), simde__m128i_to_neon_i8(a), 16 - (imm8)))))
 #elif defined(SIMDE_SHUFFLE_VECTOR_) && !defined(SIMDE_POWER_ALTIVEC_P6_NATIVE) && !defined(SIMDE_ZARCH_ZVECTOR_13_NATIVE)
   #define simde_mm_bslli_si128(a, imm8) (__extension__ ({ \
-    const simde__m128i_private simde__tmp_a_ = simde__m128i_to_private(a); \
-    const simde__m128i_private simde__tmp_z_ = simde__m128i_to_private(simde_mm_setzero_si128()); \
-    simde__m128i_private simde__tmp_r_; \
+    const simde__m128i_private simde_tmp_a_ = simde__m128i_to_private(a); \
+    const simde__m128i_private simde_tmp_z_ = simde__m128i_to_private(simde_mm_setzero_si128()); \
+    simde__m128i_private simde_tmp_r_; \
     if (HEDLEY_UNLIKELY(imm8 > 15)) { \
-      simde__tmp_r_ = simde__m128i_to_private(simde_mm_setzero_si128()); \
+      simde_tmp_r_ = simde__m128i_to_private(simde_mm_setzero_si128()); \
     } else { \
-      simde__tmp_r_.i8 = \
+      simde_tmp_r_.i8 = \
         SIMDE_SHUFFLE_VECTOR_(8, 16, \
-          simde__tmp_z_.i8, \
-          (simde__tmp_a_).i8, \
+          simde_tmp_z_.i8, \
+          (simde_tmp_a_).i8, \
           HEDLEY_STATIC_CAST(int8_t, (16 - imm8) & 31), \
           HEDLEY_STATIC_CAST(int8_t, (17 - imm8) & 31), \
           HEDLEY_STATIC_CAST(int8_t, (18 - imm8) & 31), \
@@ -1262,7 +1262,7 @@ simde_mm_bslli_si128 (simde__m128i a, const int imm8)
           HEDLEY_STATIC_CAST(int8_t, (30 - imm8) & 31), \
           HEDLEY_STATIC_CAST(int8_t, (31 - imm8) & 31)); \
     } \
-    simde__m128i_from_private(simde__tmp_r_); }))
+    simde__m128i_from_private(simde_tmp_r_); }))
 #endif
 #define simde_mm_slli_si128(a, imm8) simde_mm_bslli_si128(a, imm8)
 #if defined(SIMDE_X86_SSE2_ENABLE_NATIVE_ALIASES)
@@ -1309,16 +1309,16 @@ simde_mm_bsrli_si128 (simde__m128i a, const int imm8)
   simde__m128i_from_neon_i8(((imm8 < 0) || (imm8 > 15)) ? vdupq_n_s8(0) : (vextq_s8(simde__m128i_to_private(a).neon_i8, vdupq_n_s8(0), ((imm8 & 15) != 0) ? imm8 : (imm8 & 15))))
 #elif defined(SIMDE_SHUFFLE_VECTOR_) && !defined(SIMDE_POWER_ALTIVEC_P6_NATIVE) && !defined(SIMDE_ZARCH_ZVECTOR_13_NATIVE)
   #define simde_mm_bsrli_si128(a, imm8) (__extension__ ({ \
-    const simde__m128i_private simde__tmp_a_ = simde__m128i_to_private(a); \
-    const simde__m128i_private simde__tmp_z_ = simde__m128i_to_private(simde_mm_setzero_si128()); \
-    simde__m128i_private simde__tmp_r_ = simde__m128i_to_private(a); \
+    const simde__m128i_private simde_tmp_a_ = simde__m128i_to_private(a); \
+    const simde__m128i_private simde_tmp_z_ = simde__m128i_to_private(simde_mm_setzero_si128()); \
+    simde__m128i_private simde_tmp_r_ = simde__m128i_to_private(a); \
     if (HEDLEY_UNLIKELY(imm8 > 15)) { \
-      simde__tmp_r_ = simde__m128i_to_private(simde_mm_setzero_si128()); \
+      simde_tmp_r_ = simde__m128i_to_private(simde_mm_setzero_si128()); \
     } else { \
-      simde__tmp_r_.i8 = \
+      simde_tmp_r_.i8 = \
       SIMDE_SHUFFLE_VECTOR_(8, 16, \
-        simde__tmp_z_.i8, \
-        (simde__tmp_a_).i8, \
+        simde_tmp_z_.i8, \
+        (simde_tmp_a_).i8, \
         HEDLEY_STATIC_CAST(int8_t, (imm8 + 16) & 31), \
         HEDLEY_STATIC_CAST(int8_t, (imm8 + 17) & 31), \
         HEDLEY_STATIC_CAST(int8_t, (imm8 + 18) & 31), \
@@ -1336,7 +1336,7 @@ simde_mm_bsrli_si128 (simde__m128i a, const int imm8)
         HEDLEY_STATIC_CAST(int8_t, (imm8 + 30) & 31), \
         HEDLEY_STATIC_CAST(int8_t, (imm8 + 31) & 31)); \
     } \
-    simde__m128i_from_private(simde__tmp_r_); }))
+    simde__m128i_from_private(simde_tmp_r_); }))
 #endif
 #define simde_mm_srli_si128(a, imm8) simde_mm_bsrli_si128((a), (imm8))
 #if defined(SIMDE_X86_SSE2_ENABLE_NATIVE_ALIASES)
@@ -5345,11 +5345,11 @@ simde_mm_shuffle_epi32 (simde__m128i a, const int imm8)
   #define simde_mm_shuffle_epi32(a, imm8) _mm_shuffle_epi32((a), (imm8))
 #elif defined(SIMDE_SHUFFLE_VECTOR_)
   #define simde_mm_shuffle_epi32(a, imm8) (__extension__ ({ \
-      const simde__m128i_private simde__tmp_a_ = simde__m128i_to_private(a); \
+      const simde__m128i_private simde_tmp_a_ = simde__m128i_to_private(a); \
       simde__m128i_from_private((simde__m128i_private) { .i32 = \
         SIMDE_SHUFFLE_VECTOR_(32, 16, \
-          (simde__tmp_a_).i32, \
-          (simde__tmp_a_).i32, \
+          (simde_tmp_a_).i32, \
+          (simde_tmp_a_).i32, \
           ((imm8)     ) & 3, \
           ((imm8) >> 2) & 3, \
           ((imm8) >> 4) & 3, \
@@ -5421,11 +5421,11 @@ simde_mm_shufflehi_epi16 (simde__m128i a, const int imm8)
   #define simde_mm_shufflehi_epi16(a, imm8) _mm_shufflehi_epi16((a), (imm8))
 #elif defined(SIMDE_SHUFFLE_VECTOR_)
   #define simde_mm_shufflehi_epi16(a, imm8) (__extension__ ({ \
-      const simde__m128i_private simde__tmp_a_ = simde__m128i_to_private(a); \
+      const simde__m128i_private simde_tmp_a_ = simde__m128i_to_private(a); \
       simde__m128i_from_private((simde__m128i_private) { .i16 = \
         SIMDE_SHUFFLE_VECTOR_(16, 16, \
-          (simde__tmp_a_).i16, \
-          (simde__tmp_a_).i16, \
+          (simde_tmp_a_).i16, \
+          (simde_tmp_a_).i16, \
           0, 1, 2, 3, \
           (((imm8)     ) & 3) + 4, \
           (((imm8) >> 2) & 3) + 4, \
@@ -5469,11 +5469,11 @@ simde_mm_shufflelo_epi16 (simde__m128i a, const int imm8)
   #define simde_mm_shufflelo_epi16(a, imm8) _mm_shufflelo_epi16((a), (imm8))
 #elif defined(SIMDE_SHUFFLE_VECTOR_)
   #define simde_mm_shufflelo_epi16(a, imm8) (__extension__ ({ \
-      const simde__m128i_private simde__tmp_a_ = simde__m128i_to_private(a); \
+      const simde__m128i_private simde_tmp_a_ = simde__m128i_to_private(a); \
       simde__m128i_from_private((simde__m128i_private) { .i16 = \
         SIMDE_SHUFFLE_VECTOR_(16, 16, \
-          (simde__tmp_a_).i16, \
-          (simde__tmp_a_).i16, \
+          (simde_tmp_a_).i16, \
+          (simde_tmp_a_).i16, \
           (((imm8)     ) & 3), \
           (((imm8) >> 2) & 3), \
           (((imm8) >> 4) & 3), \
@@ -7022,15 +7022,6 @@ simde_mm_ucomineq_sd (simde__m128d a, simde__m128d b) {
   #define _mm_ucomineq_sd(a, b) simde_mm_ucomineq_sd(a, b)
 #endif
 
-#if defined(SIMDE_DIAGNOSTIC_DISABLE_UNINITIALIZED_)
-  HEDLEY_DIAGNOSTIC_PUSH
-  SIMDE_DIAGNOSTIC_DISABLE_UNINITIALIZED_
-#endif
-
-#if defined(SIMDE_DIAGNOSTIC_DISABLE_UNINITIALIZED_)
-  HEDLEY_DIAGNOSTIC_POP
-#endif
-
 SIMDE_FUNCTION_ATTRIBUTES
 void
 simde_mm_lfence (void) {


=====================================
test/x86/avx.c
=====================================
@@ -12025,6 +12025,110 @@ test_simde_mm256_permutevar_pd(SIMDE_MUNIT_TEST_ARGS) {
   return 0;
 }
 
+static int
+test_simde_mm256_permute2f128_pd(SIMDE_MUNIT_TEST_ARGS) {
+#if 1
+  const struct {
+    const simde_float64 a[4];
+    const simde_float64 b[4];
+    const int imm8;
+    const simde_float64 r[4];
+  } test_vec[] = {
+    { { SIMDE_FLOAT64_C(    15.55), SIMDE_FLOAT64_C(  -461.51), SIMDE_FLOAT64_C(   514.66), SIMDE_FLOAT64_C(  -513.58) },
+      { SIMDE_FLOAT64_C(    95.37), SIMDE_FLOAT64_C(  -239.15), SIMDE_FLOAT64_C(  -315.05), SIMDE_FLOAT64_C(   844.04) },
+       INT32_C(         108),
+      { SIMDE_FLOAT64_C(     0.00), SIMDE_FLOAT64_C(     0.00), SIMDE_FLOAT64_C(    95.37), SIMDE_FLOAT64_C(  -239.15) } },
+    { { SIMDE_FLOAT64_C(   410.02), SIMDE_FLOAT64_C(  -232.21), SIMDE_FLOAT64_C(   585.19), SIMDE_FLOAT64_C(   989.33) },
+      { SIMDE_FLOAT64_C(   192.64), SIMDE_FLOAT64_C(  -316.14), SIMDE_FLOAT64_C(  -537.95), SIMDE_FLOAT64_C(  -941.52) },
+       INT32_C(          27),
+      { SIMDE_FLOAT64_C(     0.00), SIMDE_FLOAT64_C(     0.00), SIMDE_FLOAT64_C(   585.19), SIMDE_FLOAT64_C(   989.33) } },
+    { { SIMDE_FLOAT64_C(   573.89), SIMDE_FLOAT64_C(    20.06), SIMDE_FLOAT64_C(   715.65), SIMDE_FLOAT64_C(   911.84) },
+      { SIMDE_FLOAT64_C(  -412.11), SIMDE_FLOAT64_C(   406.05), SIMDE_FLOAT64_C(   758.60), SIMDE_FLOAT64_C(   603.44) },
+       INT32_C(          70),
+      { SIMDE_FLOAT64_C(  -412.11), SIMDE_FLOAT64_C(   406.05), SIMDE_FLOAT64_C(   573.89), SIMDE_FLOAT64_C(    20.06) } },
+    { { SIMDE_FLOAT64_C(  -965.88), SIMDE_FLOAT64_C(  -225.19), SIMDE_FLOAT64_C(  -116.04), SIMDE_FLOAT64_C(  -623.14) },
+      { SIMDE_FLOAT64_C(  -940.20), SIMDE_FLOAT64_C(  -698.12), SIMDE_FLOAT64_C(  -941.06), SIMDE_FLOAT64_C(   469.82) },
+       INT32_C(         185),
+      { SIMDE_FLOAT64_C(     0.00), SIMDE_FLOAT64_C(     0.00), SIMDE_FLOAT64_C(     0.00), SIMDE_FLOAT64_C(     0.00) } },
+    { { SIMDE_FLOAT64_C(  -672.02), SIMDE_FLOAT64_C(   921.19), SIMDE_FLOAT64_C(  -679.20), SIMDE_FLOAT64_C(   392.39) },
+      { SIMDE_FLOAT64_C(  -774.03), SIMDE_FLOAT64_C(  -268.72), SIMDE_FLOAT64_C(   639.82), SIMDE_FLOAT64_C(   799.86) },
+       INT32_C(          61),
+      { SIMDE_FLOAT64_C(     0.00), SIMDE_FLOAT64_C(     0.00), SIMDE_FLOAT64_C(   639.82), SIMDE_FLOAT64_C(   799.86) } },
+    { { SIMDE_FLOAT64_C(  -238.48), SIMDE_FLOAT64_C(   470.30), SIMDE_FLOAT64_C(   942.67), SIMDE_FLOAT64_C(  -293.93) },
+      { SIMDE_FLOAT64_C(  -256.44), SIMDE_FLOAT64_C(  -967.47), SIMDE_FLOAT64_C(   745.99), SIMDE_FLOAT64_C(  -222.32) },
+       INT32_C(         123),
+      { SIMDE_FLOAT64_C(     0.00), SIMDE_FLOAT64_C(     0.00), SIMDE_FLOAT64_C(   745.99), SIMDE_FLOAT64_C(  -222.32) } },
+    { { SIMDE_FLOAT64_C(   -68.16), SIMDE_FLOAT64_C(   213.48), SIMDE_FLOAT64_C(  -663.05), SIMDE_FLOAT64_C(  -998.49) },
+      { SIMDE_FLOAT64_C(  -142.40), SIMDE_FLOAT64_C(   796.10), SIMDE_FLOAT64_C(  -736.18), SIMDE_FLOAT64_C(   185.58) },
+       INT32_C(         170),
+      { SIMDE_FLOAT64_C(     0.00), SIMDE_FLOAT64_C(     0.00), SIMDE_FLOAT64_C(     0.00), SIMDE_FLOAT64_C(     0.00) } },
+    { { SIMDE_FLOAT64_C(   315.90), SIMDE_FLOAT64_C(  -782.21), SIMDE_FLOAT64_C(   743.12), SIMDE_FLOAT64_C(    67.24) },
+      { SIMDE_FLOAT64_C(   573.26), SIMDE_FLOAT64_C(   454.82), SIMDE_FLOAT64_C(   406.47), SIMDE_FLOAT64_C(  -665.22) },
+       INT32_C(         241),
+      { SIMDE_FLOAT64_C(   743.12), SIMDE_FLOAT64_C(    67.24), SIMDE_FLOAT64_C(     0.00), SIMDE_FLOAT64_C(     0.00) } },
+  };
+
+  simde__m256d a, b, r;
+
+  a = simde_mm256_loadu_pd(test_vec[0].a);
+  b = simde_mm256_loadu_pd(test_vec[0].b);
+  r = simde_mm256_permute2f128_pd(a, b, 108);
+  simde_test_x86_assert_equal_f64x4(r, simde_mm256_loadu_pd(test_vec[0].r), 1);
+
+  a = simde_mm256_loadu_pd(test_vec[1].a);
+  b = simde_mm256_loadu_pd(test_vec[1].b);
+  r = simde_mm256_permute2f128_pd(a, b, 27);
+  simde_test_x86_assert_equal_f64x4(r, simde_mm256_loadu_pd(test_vec[1].r), 1);
+
+  a = simde_mm256_loadu_pd(test_vec[2].a);
+  b = simde_mm256_loadu_pd(test_vec[2].b);
+  r = simde_mm256_permute2f128_pd(a, b, 70);
+  simde_test_x86_assert_equal_f64x4(r, simde_mm256_loadu_pd(test_vec[2].r), 1);
+
+  a = simde_mm256_loadu_pd(test_vec[3].a);
+  b = simde_mm256_loadu_pd(test_vec[3].b);
+  r = simde_mm256_permute2f128_pd(a, b, 185);
+  simde_test_x86_assert_equal_f64x4(r, simde_mm256_loadu_pd(test_vec[3].r), 1);
+
+  a = simde_mm256_loadu_pd(test_vec[4].a);
+  b = simde_mm256_loadu_pd(test_vec[4].b);
+  r = simde_mm256_permute2f128_pd(a, b, 61);
+  simde_test_x86_assert_equal_f64x4(r, simde_mm256_loadu_pd(test_vec[4].r), 1);
+
+  a = simde_mm256_loadu_pd(test_vec[5].a);
+  b = simde_mm256_loadu_pd(test_vec[5].b);
+  r = simde_mm256_permute2f128_pd(a, b, 123);
+  simde_test_x86_assert_equal_f64x4(r, simde_mm256_loadu_pd(test_vec[5].r), 1);
+
+  a = simde_mm256_loadu_pd(test_vec[6].a);
+  b = simde_mm256_loadu_pd(test_vec[6].b);
+  r = simde_mm256_permute2f128_pd(a, b, 170);
+  simde_test_x86_assert_equal_f64x4(r, simde_mm256_loadu_pd(test_vec[6].r), 1);
+
+  a = simde_mm256_loadu_pd(test_vec[7].a);
+  b = simde_mm256_loadu_pd(test_vec[7].b);
+  r = simde_mm256_permute2f128_pd(a, b, 241);
+  simde_test_x86_assert_equal_f64x4(r, simde_mm256_loadu_pd(test_vec[7].r), 1);
+
+  return 0;
+#else
+  fputc('\n', stdout);
+  for (int i = 0 ; i < 8 ; i++) {
+    simde__m256d a = simde_test_x86_random_f64x4(SIMDE_FLOAT64_C(-1000.0), SIMDE_FLOAT64_C(1000.0));
+    simde__m256d b = simde_test_x86_random_f64x4(SIMDE_FLOAT64_C(-1000.0), SIMDE_FLOAT64_C(1000.0));
+    int imm8 = simde_test_codegen_random_i32() & 255;
+    simde__m256d r;
+    SIMDE_CONSTIFY_256_(simde_mm256_permute2f128_pd, r, (HEDLEY_UNREACHABLE(), simde_mm256_setzero_pd()), imm8, a, b);
+
+    simde_test_x86_write_f64x4(2, a, SIMDE_TEST_VEC_POS_FIRST);
+    simde_test_x86_write_f64x4(2, b, SIMDE_TEST_VEC_POS_MIDDLE);
+    simde_test_codegen_write_i32(2, imm8, SIMDE_TEST_VEC_POS_MIDDLE);
+    simde_test_x86_write_f64x4(2, r, SIMDE_TEST_VEC_POS_LAST);
+  }
+  return 1;
+#endif
+}
+
 static int
 test_simde_mm256_permute2f128_ps(SIMDE_MUNIT_TEST_ARGS) {
   const struct {
@@ -12279,6 +12383,100 @@ test_simde_mm256_permute2f128_ps(SIMDE_MUNIT_TEST_ARGS) {
   return 0;
 }
 
+static int
+test_simde_mm256_permute2f128_si256(SIMDE_MUNIT_TEST_ARGS) {
+#if 1
+  const struct {
+    const int16_t a[16];
+    const int16_t b[16];
+    const int imm8;
+    const int16_t r[16];
+  } test_vec[] = {
+    { {  INT16_C(  8272), -INT16_C( 27274),  INT16_C( 13557), -INT16_C( 17507), -INT16_C( 29588), -INT16_C( 29778),  INT16_C(  1080),  INT16_C( 31493),
+         INT16_C( 20143), -INT16_C( 24612), -INT16_C( 24508), -INT16_C( 26033), -INT16_C( 18817),  INT16_C( 13712), -INT16_C( 15934),  INT16_C(  4959) },
+      { -INT16_C( 10526), -INT16_C( 10328),  INT16_C( 17674),  INT16_C( 30354),  INT16_C( 16594),  INT16_C(  2562),  INT16_C(  1860), -INT16_C(  2939),
+         INT16_C( 24918), -INT16_C( 25965), -INT16_C(  7679), -INT16_C( 32716), -INT16_C( 15207),  INT16_C( 23477),  INT16_C(  5510),  INT16_C( 26734) },
+       INT32_C(         235),
+      {  INT16_C(     0),  INT16_C(     0),  INT16_C(     0),  INT16_C(     0),  INT16_C(     0),  INT16_C(     0),  INT16_C(     0),  INT16_C(     0),
+         INT16_C(     0),  INT16_C(     0),  INT16_C(     0),  INT16_C(     0),  INT16_C(     0),  INT16_C(     0),  INT16_C(     0),  INT16_C(     0) } },
+    { { -INT16_C( 11684),  INT16_C( 11884),  INT16_C( 28178),  INT16_C( 22328), -INT16_C( 16779), -INT16_C( 13493), -INT16_C(  8673),  INT16_C(  8549),
+        -INT16_C( 26176),  INT16_C( 22945),  INT16_C( 22366), -INT16_C(  6987),  INT16_C(  9068),  INT16_C( 22348), -INT16_C( 29894), -INT16_C( 27060) },
+      { -INT16_C( 18339),  INT16_C( 28868), -INT16_C(   986), -INT16_C( 25401),  INT16_C(  4794), -INT16_C(  9625), -INT16_C( 12816), -INT16_C( 20229),
+        -INT16_C( 25498), -INT16_C( 15350), -INT16_C( 16397),  INT16_C( 24488), -INT16_C(  2846),  INT16_C(  7350),  INT16_C(   896), -INT16_C(  8782) },
+       INT32_C(         187),
+      {  INT16_C(     0),  INT16_C(     0),  INT16_C(     0),  INT16_C(     0),  INT16_C(     0),  INT16_C(     0),  INT16_C(     0),  INT16_C(     0),
+         INT16_C(     0),  INT16_C(     0),  INT16_C(     0),  INT16_C(     0),  INT16_C(     0),  INT16_C(     0),  INT16_C(     0),  INT16_C(     0) } },
+    { {  INT16_C(  5235),  INT16_C( 11646), -INT16_C(  6874),  INT16_C(  5639),  INT16_C(   690),  INT16_C(  6599), -INT16_C( 11873), -INT16_C( 27939),
+        -INT16_C( 31088),  INT16_C( 29426), -INT16_C( 22406), -INT16_C(  1393),  INT16_C( 16811),  INT16_C( 26584),  INT16_C(  9656),  INT16_C( 11081) },
+      { -INT16_C( 14534),  INT16_C( 24664),  INT16_C( 24748),  INT16_C( 24439),  INT16_C( 15970),  INT16_C(   376),  INT16_C( 21775), -INT16_C( 24684),
+        -INT16_C( 31013),  INT16_C( 22033), -INT16_C( 24530), -INT16_C(  9648),  INT16_C( 10466), -INT16_C( 26047), -INT16_C( 30130), -INT16_C( 30523) },
+       INT32_C(          81),
+      { -INT16_C( 31088),  INT16_C( 29426), -INT16_C( 22406), -INT16_C(  1393),  INT16_C( 16811),  INT16_C( 26584),  INT16_C(  9656),  INT16_C( 11081),
+        -INT16_C( 31088),  INT16_C( 29426), -INT16_C( 22406), -INT16_C(  1393),  INT16_C( 16811),  INT16_C( 26584),  INT16_C(  9656),  INT16_C( 11081) } },
+    { {  INT16_C( 24445), -INT16_C(  8100), -INT16_C( 11107), -INT16_C( 21279),  INT16_C( 29994),  INT16_C(  1355),  INT16_C( 24059),  INT16_C( 10843),
+        -INT16_C( 21251), -INT16_C(  8444),  INT16_C( 17876),  INT16_C(  8825),  INT16_C( 16079),  INT16_C(  8362), -INT16_C( 27812), -INT16_C(  9955) },
+      {  INT16_C( 31474), -INT16_C( 28487), -INT16_C( 25778),  INT16_C( 30780), -INT16_C( 30704),  INT16_C(  3198), -INT16_C(  9755), -INT16_C(  7626),
+         INT16_C( 14981),  INT16_C( 23234),  INT16_C( 15231),  INT16_C( 20092),  INT16_C( 10106), -INT16_C( 10642), -INT16_C( 29766), -INT16_C( 21329) },
+       INT32_C(           5),
+      { -INT16_C( 21251), -INT16_C(  8444),  INT16_C( 17876),  INT16_C(  8825),  INT16_C( 16079),  INT16_C(  8362), -INT16_C( 27812), -INT16_C(  9955),
+         INT16_C( 24445), -INT16_C(  8100), -INT16_C( 11107), -INT16_C( 21279),  INT16_C( 29994),  INT16_C(  1355),  INT16_C( 24059),  INT16_C( 10843) } },
+    { {  INT16_C( 30980),  INT16_C(  5324),  INT16_C( 18945), -INT16_C(  6624),  INT16_C( 22052), -INT16_C( 22072), -INT16_C( 30064),  INT16_C(  3843),
+        -INT16_C( 32570),  INT16_C( 16477), -INT16_C( 13401),  INT16_C( 24854), -INT16_C( 15017),  INT16_C( 23565),  INT16_C( 18990),  INT16_C( 12976) },
+      {  INT16_C( 32195), -INT16_C( 15289),  INT16_C( 26567), -INT16_C(  5206),  INT16_C( 29374),  INT16_C( 20117), -INT16_C( 26371), -INT16_C( 15522),
+        -INT16_C( 17640), -INT16_C( 16637),  INT16_C(  6535), -INT16_C(  8672),  INT16_C( 11998),  INT16_C(  3386), -INT16_C(  5256),  INT16_C( 15167) },
+       INT32_C(         104),
+      {  INT16_C(     0),  INT16_C(     0),  INT16_C(     0),  INT16_C(     0),  INT16_C(     0),  INT16_C(     0),  INT16_C(     0),  INT16_C(     0),
+         INT16_C( 32195), -INT16_C( 15289),  INT16_C( 26567), -INT16_C(  5206),  INT16_C( 29374),  INT16_C( 20117), -INT16_C( 26371), -INT16_C( 15522) } },
+    { { -INT16_C( 22034), -INT16_C( 21477), -INT16_C( 20453),  INT16_C(  6394),  INT16_C( 22600),  INT16_C( 25051), -INT16_C(  8684), -INT16_C( 25824),
+         INT16_C( 16887), -INT16_C( 10631), -INT16_C( 19601), -INT16_C(  6173),  INT16_C(  8862),  INT16_C(  1570),  INT16_C(  8617), -INT16_C( 26826) },
+      {  INT16_C( 20938), -INT16_C(  6845),  INT16_C( 15617),  INT16_C( 18942), -INT16_C(  9834), -INT16_C( 21846), -INT16_C( 13384), -INT16_C( 20667),
+        -INT16_C( 16884),  INT16_C( 31621),  INT16_C( 26737),  INT16_C(  4194), -INT16_C( 31605),  INT16_C( 13334),  INT16_C( 19621),  INT16_C( 28619) },
+       INT32_C(         157),
+      {  INT16_C(     0),  INT16_C(     0),  INT16_C(     0),  INT16_C(     0),  INT16_C(     0),  INT16_C(     0),  INT16_C(     0),  INT16_C(     0),
+         INT16_C(     0),  INT16_C(     0),  INT16_C(     0),  INT16_C(     0),  INT16_C(     0),  INT16_C(     0),  INT16_C(     0),  INT16_C(     0) } },
+    { {  INT16_C( 21067), -INT16_C(  7704), -INT16_C( 28116), -INT16_C(  7029), -INT16_C( 12195),  INT16_C( 27027),  INT16_C(  6542),  INT16_C(   228),
+         INT16_C( 18049),  INT16_C(  3088),  INT16_C(  9930),  INT16_C( 28480),  INT16_C(  2931),  INT16_C(  4318),  INT16_C( 13081),  INT16_C( 26031) },
+      { -INT16_C( 26747), -INT16_C( 20154), -INT16_C( 11735), -INT16_C( 30827),  INT16_C( 10658),  INT16_C( 12784), -INT16_C( 10942), -INT16_C( 15567),
+         INT16_C( 16667), -INT16_C(  6448),  INT16_C(  4199), -INT16_C(  9643),  INT16_C( 13340),  INT16_C( 13803), -INT16_C( 26009), -INT16_C(  4966) },
+       INT32_C(          49),
+      {  INT16_C( 18049),  INT16_C(  3088),  INT16_C(  9930),  INT16_C( 28480),  INT16_C(  2931),  INT16_C(  4318),  INT16_C( 13081),  INT16_C( 26031),
+         INT16_C( 16667), -INT16_C(  6448),  INT16_C(  4199), -INT16_C(  9643),  INT16_C( 13340),  INT16_C( 13803), -INT16_C( 26009), -INT16_C(  4966) } },
+    { {  INT16_C( 13235),  INT16_C( 21985), -INT16_C( 11684), -INT16_C( 24954), -INT16_C( 18521), -INT16_C( 15774),  INT16_C( 13048),  INT16_C( 24744),
+        -INT16_C(   446),  INT16_C( 24122),  INT16_C(  9522), -INT16_C( 26220),  INT16_C( 11967), -INT16_C(  3963),  INT16_C(  8975), -INT16_C( 15797) },
+      {  INT16_C( 11351), -INT16_C( 19688), -INT16_C( 24834), -INT16_C( 23214), -INT16_C( 19370),  INT16_C( 20072),  INT16_C(  4326),  INT16_C( 10414),
+        -INT16_C(  5874),  INT16_C( 16519),  INT16_C(  6926), -INT16_C( 12583),  INT16_C( 24393),  INT16_C( 22974),  INT16_C(  2434), -INT16_C(  9957) },
+       INT32_C(          54),
+      {  INT16_C( 11351), -INT16_C( 19688), -INT16_C( 24834), -INT16_C( 23214), -INT16_C( 19370),  INT16_C( 20072),  INT16_C(  4326),  INT16_C( 10414),
+        -INT16_C(  5874),  INT16_C( 16519),  INT16_C(  6926), -INT16_C( 12583),  INT16_C( 24393),  INT16_C( 22974),  INT16_C(  2434), -INT16_C(  9957) } },
+  };
+
+  for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])); i++) {
+    simde__m256i a = simde_mm256_loadu_epi16(test_vec[i].a);
+    simde__m256i b = simde_mm256_loadu_epi16(test_vec[i].b);
+    simde__m256i r;
+    SIMDE_CONSTIFY_256_(simde_mm256_permute2f128_si256, r, (HEDLEY_UNREACHABLE(), simde_mm256_setzero_si256()), test_vec[i].imm8, a, b);
+    simde_test_x86_assert_equal_i16x16(r, simde_mm256_loadu_epi16(test_vec[i].r));
+  }
+
+  return 0;
+#else
+  fputc('\n', stdout);
+  for (int i = 0 ; i < 8 ; i++) {
+    simde__m256i a = simde_test_x86_random_i16x16();
+    simde__m256i b = simde_test_x86_random_i16x16();
+    int imm8 = simde_test_codegen_random_i32() & 255;
+    simde__m256i r;
+    SIMDE_CONSTIFY_256_(simde_mm256_permute2f128_si256, r, (HEDLEY_UNREACHABLE(), simde_mm256_setzero_si256()), imm8, a, b);
+
+    simde_test_x86_write_i16x16(2, a, SIMDE_TEST_VEC_POS_FIRST);
+    simde_test_x86_write_i16x16(2, b, SIMDE_TEST_VEC_POS_MIDDLE);
+    simde_test_codegen_write_i32(2, imm8, SIMDE_TEST_VEC_POS_MIDDLE);
+    simde_test_x86_write_i16x16(2, r, SIMDE_TEST_VEC_POS_LAST);
+  }
+  return 1;
+#endif
+}
+
 static int
 test_simde_mm256_rcp_ps(SIMDE_MUNIT_TEST_ARGS) {
   const struct {
@@ -16405,7 +16603,9 @@ SIMDE_TEST_FUNC_LIST_BEGIN
   SIMDE_TEST_FUNC_LIST_ENTRY(mm256_permutevar_ps)
   SIMDE_TEST_FUNC_LIST_ENTRY(mm256_permutevar_pd)
 
+  SIMDE_TEST_FUNC_LIST_ENTRY(mm256_permute2f128_pd)
   SIMDE_TEST_FUNC_LIST_ENTRY(mm256_permute2f128_ps)
+  SIMDE_TEST_FUNC_LIST_ENTRY(mm256_permute2f128_si256)
 
   SIMDE_TEST_FUNC_LIST_ENTRY(mm256_rcp_ps)
 


=====================================
test/x86/avx512/test-avx512.h
=====================================
@@ -50,273 +50,4 @@ SIMDE_TEST_X86_GENERATE_MASK_FUNCS_(64)
   #undef SIMDE_TEST_DECLARE_SUITE
 #endif
 
-HEDLEY_DIAGNOSTIC_PUSH
-SIMDE_DIAGNOSTIC_DISABLE_VARIADIC_MACROS_
-SIMDE_DIAGNOSTIC_DISABLE_CPP98_COMPAT_PEDANTIC_
-
-#define SIMDE_CONSTIFY_256_(func_name, result, default_case, imm, ...) \
-  do { \
-    switch(imm) { \
-      case  0: result = func_name(__VA_ARGS__,  0); break; \
-      case  1: result = func_name(__VA_ARGS__,  1); break; \
-      case  2: result = func_name(__VA_ARGS__,  2); break; \
-      case  3: result = func_name(__VA_ARGS__,  3); break; \
-      case  4: result = func_name(__VA_ARGS__,  4); break; \
-      case  5: result = func_name(__VA_ARGS__,  5); break; \
-      case  6: result = func_name(__VA_ARGS__,  6); break; \
-      case  7: result = func_name(__VA_ARGS__,  7); break; \
-      case  8: result = func_name(__VA_ARGS__,  8); break; \
-      case  9: result = func_name(__VA_ARGS__,  9); break; \
-      case 10: result = func_name(__VA_ARGS__, 10); break; \
-      case 11: result = func_name(__VA_ARGS__, 11); break; \
-      case 12: result = func_name(__VA_ARGS__, 12); break; \
-      case 13: result = func_name(__VA_ARGS__, 13); break; \
-      case 14: result = func_name(__VA_ARGS__, 14); break; \
-      case 15: result = func_name(__VA_ARGS__, 15); break; \
-      case 16: result = func_name(__VA_ARGS__, 16); break; \
-      case 17: result = func_name(__VA_ARGS__, 17); break; \
-      case 18: result = func_name(__VA_ARGS__, 18); break; \
-      case 19: result = func_name(__VA_ARGS__, 19); break; \
-      case 20: result = func_name(__VA_ARGS__, 20); break; \
-      case 21: result = func_name(__VA_ARGS__, 21); break; \
-      case 22: result = func_name(__VA_ARGS__, 22); break; \
-      case 23: result = func_name(__VA_ARGS__, 23); break; \
-      case 24: result = func_name(__VA_ARGS__, 24); break; \
-      case 25: result = func_name(__VA_ARGS__, 25); break; \
-      case 26: result = func_name(__VA_ARGS__, 26); break; \
-      case 27: result = func_name(__VA_ARGS__, 27); break; \
-      case 28: result = func_name(__VA_ARGS__, 28); break; \
-      case 29: result = func_name(__VA_ARGS__, 29); break; \
-      case 30: result = func_name(__VA_ARGS__, 30); break; \
-      case 31: result = func_name(__VA_ARGS__, 31); break; \
-      case 32: result = func_name(__VA_ARGS__, 32); break; \
-      case 33: result = func_name(__VA_ARGS__, 33); break; \
-      case 34: result = func_name(__VA_ARGS__, 34); break; \
-      case 35: result = func_name(__VA_ARGS__, 35); break; \
-      case 36: result = func_name(__VA_ARGS__, 36); break; \
-      case 37: result = func_name(__VA_ARGS__, 37); break; \
-      case 38: result = func_name(__VA_ARGS__, 38); break; \
-      case 39: result = func_name(__VA_ARGS__, 39); break; \
-      case 40: result = func_name(__VA_ARGS__, 40); break; \
-      case 41: result = func_name(__VA_ARGS__, 41); break; \
-      case 42: result = func_name(__VA_ARGS__, 42); break; \
-      case 43: result = func_name(__VA_ARGS__, 43); break; \
-      case 44: result = func_name(__VA_ARGS__, 44); break; \
-      case 45: result = func_name(__VA_ARGS__, 45); break; \
-      case 46: result = func_name(__VA_ARGS__, 46); break; \
-      case 47: result = func_name(__VA_ARGS__, 47); break; \
-      case 48: result = func_name(__VA_ARGS__, 48); break; \
-      case 49: result = func_name(__VA_ARGS__, 49); break; \
-      case 50: result = func_name(__VA_ARGS__, 50); break; \
-      case 51: result = func_name(__VA_ARGS__, 51); break; \
-      case 52: result = func_name(__VA_ARGS__, 52); break; \
-      case 53: result = func_name(__VA_ARGS__, 53); break; \
-      case 54: result = func_name(__VA_ARGS__, 54); break; \
-      case 55: result = func_name(__VA_ARGS__, 55); break; \
-      case 56: result = func_name(__VA_ARGS__, 56); break; \
-      case 57: result = func_name(__VA_ARGS__, 57); break; \
-      case 58: result = func_name(__VA_ARGS__, 58); break; \
-      case 59: result = func_name(__VA_ARGS__, 59); break; \
-      case 60: result = func_name(__VA_ARGS__, 60); break; \
-      case 61: result = func_name(__VA_ARGS__, 61); break; \
-      case 62: result = func_name(__VA_ARGS__, 62); break; \
-      case 63: result = func_name(__VA_ARGS__, 63); break; \
-      case 64: result = func_name(__VA_ARGS__, 64); break; \
-      case 65: result = func_name(__VA_ARGS__, 65); break; \
-      case 66: result = func_name(__VA_ARGS__, 66); break; \
-      case 67: result = func_name(__VA_ARGS__, 67); break; \
-      case 68: result = func_name(__VA_ARGS__, 68); break; \
-      case 69: result = func_name(__VA_ARGS__, 69); break; \
-      case 70: result = func_name(__VA_ARGS__, 70); break; \
-      case 71: result = func_name(__VA_ARGS__, 71); break; \
-      case 72: result = func_name(__VA_ARGS__, 72); break; \
-      case 73: result = func_name(__VA_ARGS__, 73); break; \
-      case 74: result = func_name(__VA_ARGS__, 74); break; \
-      case 75: result = func_name(__VA_ARGS__, 75); break; \
-      case 76: result = func_name(__VA_ARGS__, 76); break; \
-      case 77: result = func_name(__VA_ARGS__, 77); break; \
-      case 78: result = func_name(__VA_ARGS__, 78); break; \
-      case 79: result = func_name(__VA_ARGS__, 79); break; \
-      case 80: result = func_name(__VA_ARGS__, 80); break; \
-      case 81: result = func_name(__VA_ARGS__, 81); break; \
-      case 82: result = func_name(__VA_ARGS__, 82); break; \
-      case 83: result = func_name(__VA_ARGS__, 83); break; \
-      case 84: result = func_name(__VA_ARGS__, 84); break; \
-      case 85: result = func_name(__VA_ARGS__, 85); break; \
-      case 86: result = func_name(__VA_ARGS__, 86); break; \
-      case 87: result = func_name(__VA_ARGS__, 87); break; \
-      case 88: result = func_name(__VA_ARGS__, 88); break; \
-      case 89: result = func_name(__VA_ARGS__, 89); break; \
-      case 90: result = func_name(__VA_ARGS__, 90); break; \
-      case 91: result = func_name(__VA_ARGS__, 91); break; \
-      case 92: result = func_name(__VA_ARGS__, 92); break; \
-      case 93: result = func_name(__VA_ARGS__, 93); break; \
-      case 94: result = func_name(__VA_ARGS__, 94); break; \
-      case 95: result = func_name(__VA_ARGS__, 95); break; \
-      case 96: result = func_name(__VA_ARGS__, 96); break; \
-      case 97: result = func_name(__VA_ARGS__, 97); break; \
-      case 98: result = func_name(__VA_ARGS__, 98); break; \
-      case 99: result = func_name(__VA_ARGS__, 99); break; \
-      case 100: result = func_name(__VA_ARGS__, 100); break; \
-      case 101: result = func_name(__VA_ARGS__, 101); break; \
-      case 102: result = func_name(__VA_ARGS__, 102); break; \
-      case 103: result = func_name(__VA_ARGS__, 103); break; \
-      case 104: result = func_name(__VA_ARGS__, 104); break; \
-      case 105: result = func_name(__VA_ARGS__, 105); break; \
-      case 106: result = func_name(__VA_ARGS__, 106); break; \
-      case 107: result = func_name(__VA_ARGS__, 107); break; \
-      case 108: result = func_name(__VA_ARGS__, 108); break; \
-      case 109: result = func_name(__VA_ARGS__, 109); break; \
-      case 110: result = func_name(__VA_ARGS__, 110); break; \
-      case 111: result = func_name(__VA_ARGS__, 111); break; \
-      case 112: result = func_name(__VA_ARGS__, 112); break; \
-      case 113: result = func_name(__VA_ARGS__, 113); break; \
-      case 114: result = func_name(__VA_ARGS__, 114); break; \
-      case 115: result = func_name(__VA_ARGS__, 115); break; \
-      case 116: result = func_name(__VA_ARGS__, 116); break; \
-      case 117: result = func_name(__VA_ARGS__, 117); break; \
-      case 118: result = func_name(__VA_ARGS__, 118); break; \
-      case 119: result = func_name(__VA_ARGS__, 119); break; \
-      case 120: result = func_name(__VA_ARGS__, 120); break; \
-      case 121: result = func_name(__VA_ARGS__, 121); break; \
-      case 122: result = func_name(__VA_ARGS__, 122); break; \
-      case 123: result = func_name(__VA_ARGS__, 123); break; \
-      case 124: result = func_name(__VA_ARGS__, 124); break; \
-      case 125: result = func_name(__VA_ARGS__, 125); break; \
-      case 126: result = func_name(__VA_ARGS__, 126); break; \
-      case 127: result = func_name(__VA_ARGS__, 127); break; \
-      case 128: result = func_name(__VA_ARGS__, 128); break; \
-      case 129: result = func_name(__VA_ARGS__, 129); break; \
-      case 130: result = func_name(__VA_ARGS__, 130); break; \
-      case 131: result = func_name(__VA_ARGS__, 131); break; \
-      case 132: result = func_name(__VA_ARGS__, 132); break; \
-      case 133: result = func_name(__VA_ARGS__, 133); break; \
-      case 134: result = func_name(__VA_ARGS__, 134); break; \
-      case 135: result = func_name(__VA_ARGS__, 135); break; \
-      case 136: result = func_name(__VA_ARGS__, 136); break; \
-      case 137: result = func_name(__VA_ARGS__, 137); break; \
-      case 138: result = func_name(__VA_ARGS__, 138); break; \
-      case 139: result = func_name(__VA_ARGS__, 139); break; \
-      case 140: result = func_name(__VA_ARGS__, 140); break; \
-      case 141: result = func_name(__VA_ARGS__, 141); break; \
-      case 142: result = func_name(__VA_ARGS__, 142); break; \
-      case 143: result = func_name(__VA_ARGS__, 143); break; \
-      case 144: result = func_name(__VA_ARGS__, 144); break; \
-      case 145: result = func_name(__VA_ARGS__, 145); break; \
-      case 146: result = func_name(__VA_ARGS__, 146); break; \
-      case 147: result = func_name(__VA_ARGS__, 147); break; \
-      case 148: result = func_name(__VA_ARGS__, 148); break; \
-      case 149: result = func_name(__VA_ARGS__, 149); break; \
-      case 150: result = func_name(__VA_ARGS__, 150); break; \
-      case 151: result = func_name(__VA_ARGS__, 151); break; \
-      case 152: result = func_name(__VA_ARGS__, 152); break; \
-      case 153: result = func_name(__VA_ARGS__, 153); break; \
-      case 154: result = func_name(__VA_ARGS__, 154); break; \
-      case 155: result = func_name(__VA_ARGS__, 155); break; \
-      case 156: result = func_name(__VA_ARGS__, 156); break; \
-      case 157: result = func_name(__VA_ARGS__, 157); break; \
-      case 158: result = func_name(__VA_ARGS__, 158); break; \
-      case 159: result = func_name(__VA_ARGS__, 159); break; \
-      case 160: result = func_name(__VA_ARGS__, 160); break; \
-      case 161: result = func_name(__VA_ARGS__, 161); break; \
-      case 162: result = func_name(__VA_ARGS__, 162); break; \
-      case 163: result = func_name(__VA_ARGS__, 163); break; \
-      case 164: result = func_name(__VA_ARGS__, 164); break; \
-      case 165: result = func_name(__VA_ARGS__, 165); break; \
-      case 166: result = func_name(__VA_ARGS__, 166); break; \
-      case 167: result = func_name(__VA_ARGS__, 167); break; \
-      case 168: result = func_name(__VA_ARGS__, 168); break; \
-      case 169: result = func_name(__VA_ARGS__, 169); break; \
-      case 170: result = func_name(__VA_ARGS__, 170); break; \
-      case 171: result = func_name(__VA_ARGS__, 171); break; \
-      case 172: result = func_name(__VA_ARGS__, 172); break; \
-      case 173: result = func_name(__VA_ARGS__, 173); break; \
-      case 174: result = func_name(__VA_ARGS__, 174); break; \
-      case 175: result = func_name(__VA_ARGS__, 175); break; \
-      case 176: result = func_name(__VA_ARGS__, 176); break; \
-      case 177: result = func_name(__VA_ARGS__, 177); break; \
-      case 178: result = func_name(__VA_ARGS__, 178); break; \
-      case 179: result = func_name(__VA_ARGS__, 179); break; \
-      case 180: result = func_name(__VA_ARGS__, 180); break; \
-      case 181: result = func_name(__VA_ARGS__, 181); break; \
-      case 182: result = func_name(__VA_ARGS__, 182); break; \
-      case 183: result = func_name(__VA_ARGS__, 183); break; \
-      case 184: result = func_name(__VA_ARGS__, 184); break; \
-      case 185: result = func_name(__VA_ARGS__, 185); break; \
-      case 186: result = func_name(__VA_ARGS__, 186); break; \
-      case 187: result = func_name(__VA_ARGS__, 187); break; \
-      case 188: result = func_name(__VA_ARGS__, 188); break; \
-      case 189: result = func_name(__VA_ARGS__, 189); break; \
-      case 190: result = func_name(__VA_ARGS__, 190); break; \
-      case 191: result = func_name(__VA_ARGS__, 191); break; \
-      case 192: result = func_name(__VA_ARGS__, 192); break; \
-      case 193: result = func_name(__VA_ARGS__, 193); break; \
-      case 194: result = func_name(__VA_ARGS__, 194); break; \
-      case 195: result = func_name(__VA_ARGS__, 195); break; \
-      case 196: result = func_name(__VA_ARGS__, 196); break; \
-      case 197: result = func_name(__VA_ARGS__, 197); break; \
-      case 198: result = func_name(__VA_ARGS__, 198); break; \
-      case 199: result = func_name(__VA_ARGS__, 199); break; \
-      case 200: result = func_name(__VA_ARGS__, 200); break; \
-      case 201: result = func_name(__VA_ARGS__, 201); break; \
-      case 202: result = func_name(__VA_ARGS__, 202); break; \
-      case 203: result = func_name(__VA_ARGS__, 203); break; \
-      case 204: result = func_name(__VA_ARGS__, 204); break; \
-      case 205: result = func_name(__VA_ARGS__, 205); break; \
-      case 206: result = func_name(__VA_ARGS__, 206); break; \
-      case 207: result = func_name(__VA_ARGS__, 207); break; \
-      case 208: result = func_name(__VA_ARGS__, 208); break; \
-      case 209: result = func_name(__VA_ARGS__, 209); break; \
-      case 210: result = func_name(__VA_ARGS__, 210); break; \
-      case 211: result = func_name(__VA_ARGS__, 211); break; \
-      case 212: result = func_name(__VA_ARGS__, 212); break; \
-      case 213: result = func_name(__VA_ARGS__, 213); break; \
-      case 214: result = func_name(__VA_ARGS__, 214); break; \
-      case 215: result = func_name(__VA_ARGS__, 215); break; \
-      case 216: result = func_name(__VA_ARGS__, 216); break; \
-      case 217: result = func_name(__VA_ARGS__, 217); break; \
-      case 218: result = func_name(__VA_ARGS__, 218); break; \
-      case 219: result = func_name(__VA_ARGS__, 219); break; \
-      case 220: result = func_name(__VA_ARGS__, 220); break; \
-      case 221: result = func_name(__VA_ARGS__, 221); break; \
-      case 222: result = func_name(__VA_ARGS__, 222); break; \
-      case 223: result = func_name(__VA_ARGS__, 223); break; \
-      case 224: result = func_name(__VA_ARGS__, 224); break; \
-      case 225: result = func_name(__VA_ARGS__, 225); break; \
-      case 226: result = func_name(__VA_ARGS__, 226); break; \
-      case 227: result = func_name(__VA_ARGS__, 227); break; \
-      case 228: result = func_name(__VA_ARGS__, 228); break; \
-      case 229: result = func_name(__VA_ARGS__, 229); break; \
-      case 230: result = func_name(__VA_ARGS__, 230); break; \
-      case 231: result = func_name(__VA_ARGS__, 231); break; \
-      case 232: result = func_name(__VA_ARGS__, 232); break; \
-      case 233: result = func_name(__VA_ARGS__, 233); break; \
-      case 234: result = func_name(__VA_ARGS__, 234); break; \
-      case 235: result = func_name(__VA_ARGS__, 235); break; \
-      case 236: result = func_name(__VA_ARGS__, 236); break; \
-      case 237: result = func_name(__VA_ARGS__, 237); break; \
-      case 238: result = func_name(__VA_ARGS__, 238); break; \
-      case 239: result = func_name(__VA_ARGS__, 239); break; \
-      case 240: result = func_name(__VA_ARGS__, 240); break; \
-      case 241: result = func_name(__VA_ARGS__, 241); break; \
-      case 242: result = func_name(__VA_ARGS__, 242); break; \
-      case 243: result = func_name(__VA_ARGS__, 243); break; \
-      case 244: result = func_name(__VA_ARGS__, 244); break; \
-      case 245: result = func_name(__VA_ARGS__, 245); break; \
-      case 246: result = func_name(__VA_ARGS__, 246); break; \
-      case 247: result = func_name(__VA_ARGS__, 247); break; \
-      case 248: result = func_name(__VA_ARGS__, 248); break; \
-      case 249: result = func_name(__VA_ARGS__, 249); break; \
-      case 250: result = func_name(__VA_ARGS__, 250); break; \
-      case 251: result = func_name(__VA_ARGS__, 251); break; \
-      case 252: result = func_name(__VA_ARGS__, 252); break; \
-      case 253: result = func_name(__VA_ARGS__, 253); break; \
-      case 254: result = func_name(__VA_ARGS__, 254); break; \
-      case 255: result = func_name(__VA_ARGS__, 255); break; \
-      default: result = default_case; break; \
-    } \
-  } while (0)
-
-HEDLEY_DIAGNOSTIC_POP
-
 #endif /* !defined(SIMDE_TEST_X86_TEST_AVX512_H) */


=====================================
test/x86/sse4.1.c
=====================================
@@ -25,6 +25,8 @@
 #include <simde/x86/sse4.1.h>
 #include <test/x86/test-sse2.h>
 
+SIMDE_DIAGNOSTIC_DISABLE_RESERVED_ID_
+
 static int
 test_simde_mm_blendv_epi8(SIMDE_MUNIT_TEST_ARGS) {
   const struct {


=====================================
test/x86/test-avx.h
=====================================
@@ -27,4 +27,274 @@ SIMDE_TEST_X86_GENERATE_UINT_TYPE_FUNCS_(__m256i, 64, 4, simde_mm256_storeu_si25
 #define simde_test_x86_assert_equal_u32x8(a, b) do { if (simde_test_x86_assert_equal_u32x8_(a, b, __FILE__, __LINE__, #a, #b)) { return 1; } } while (0)
 #define simde_test_x86_assert_equal_u64x4(a, b) do { if (simde_test_x86_assert_equal_u64x4_(a, b, __FILE__, __LINE__, #a, #b)) { return 1; } } while (0)
 
+HEDLEY_DIAGNOSTIC_PUSH
+SIMDE_DIAGNOSTIC_DISABLE_VARIADIC_MACROS_
+SIMDE_DIAGNOSTIC_DISABLE_CPP98_COMPAT_PEDANTIC_
+
+#define SIMDE_CONSTIFY_256_(func_name, result, default_case, imm, ...) \
+  do { \
+    switch(imm) { \
+      case  0: result = func_name(__VA_ARGS__,  0); break; \
+      case  1: result = func_name(__VA_ARGS__,  1); break; \
+      case  2: result = func_name(__VA_ARGS__,  2); break; \
+      case  3: result = func_name(__VA_ARGS__,  3); break; \
+      case  4: result = func_name(__VA_ARGS__,  4); break; \
+      case  5: result = func_name(__VA_ARGS__,  5); break; \
+      case  6: result = func_name(__VA_ARGS__,  6); break; \
+      case  7: result = func_name(__VA_ARGS__,  7); break; \
+      case  8: result = func_name(__VA_ARGS__,  8); break; \
+      case  9: result = func_name(__VA_ARGS__,  9); break; \
+      case 10: result = func_name(__VA_ARGS__, 10); break; \
+      case 11: result = func_name(__VA_ARGS__, 11); break; \
+      case 12: result = func_name(__VA_ARGS__, 12); break; \
+      case 13: result = func_name(__VA_ARGS__, 13); break; \
+      case 14: result = func_name(__VA_ARGS__, 14); break; \
+      case 15: result = func_name(__VA_ARGS__, 15); break; \
+      case 16: result = func_name(__VA_ARGS__, 16); break; \
+      case 17: result = func_name(__VA_ARGS__, 17); break; \
+      case 18: result = func_name(__VA_ARGS__, 18); break; \
+      case 19: result = func_name(__VA_ARGS__, 19); break; \
+      case 20: result = func_name(__VA_ARGS__, 20); break; \
+      case 21: result = func_name(__VA_ARGS__, 21); break; \
+      case 22: result = func_name(__VA_ARGS__, 22); break; \
+      case 23: result = func_name(__VA_ARGS__, 23); break; \
+      case 24: result = func_name(__VA_ARGS__, 24); break; \
+      case 25: result = func_name(__VA_ARGS__, 25); break; \
+      case 26: result = func_name(__VA_ARGS__, 26); break; \
+      case 27: result = func_name(__VA_ARGS__, 27); break; \
+      case 28: result = func_name(__VA_ARGS__, 28); break; \
+      case 29: result = func_name(__VA_ARGS__, 29); break; \
+      case 30: result = func_name(__VA_ARGS__, 30); break; \
+      case 31: result = func_name(__VA_ARGS__, 31); break; \
+      case 32: result = func_name(__VA_ARGS__, 32); break; \
+      case 33: result = func_name(__VA_ARGS__, 33); break; \
+      case 34: result = func_name(__VA_ARGS__, 34); break; \
+      case 35: result = func_name(__VA_ARGS__, 35); break; \
+      case 36: result = func_name(__VA_ARGS__, 36); break; \
+      case 37: result = func_name(__VA_ARGS__, 37); break; \
+      case 38: result = func_name(__VA_ARGS__, 38); break; \
+      case 39: result = func_name(__VA_ARGS__, 39); break; \
+      case 40: result = func_name(__VA_ARGS__, 40); break; \
+      case 41: result = func_name(__VA_ARGS__, 41); break; \
+      case 42: result = func_name(__VA_ARGS__, 42); break; \
+      case 43: result = func_name(__VA_ARGS__, 43); break; \
+      case 44: result = func_name(__VA_ARGS__, 44); break; \
+      case 45: result = func_name(__VA_ARGS__, 45); break; \
+      case 46: result = func_name(__VA_ARGS__, 46); break; \
+      case 47: result = func_name(__VA_ARGS__, 47); break; \
+      case 48: result = func_name(__VA_ARGS__, 48); break; \
+      case 49: result = func_name(__VA_ARGS__, 49); break; \
+      case 50: result = func_name(__VA_ARGS__, 50); break; \
+      case 51: result = func_name(__VA_ARGS__, 51); break; \
+      case 52: result = func_name(__VA_ARGS__, 52); break; \
+      case 53: result = func_name(__VA_ARGS__, 53); break; \
+      case 54: result = func_name(__VA_ARGS__, 54); break; \
+      case 55: result = func_name(__VA_ARGS__, 55); break; \
+      case 56: result = func_name(__VA_ARGS__, 56); break; \
+      case 57: result = func_name(__VA_ARGS__, 57); break; \
+      case 58: result = func_name(__VA_ARGS__, 58); break; \
+      case 59: result = func_name(__VA_ARGS__, 59); break; \
+      case 60: result = func_name(__VA_ARGS__, 60); break; \
+      case 61: result = func_name(__VA_ARGS__, 61); break; \
+      case 62: result = func_name(__VA_ARGS__, 62); break; \
+      case 63: result = func_name(__VA_ARGS__, 63); break; \
+      case 64: result = func_name(__VA_ARGS__, 64); break; \
+      case 65: result = func_name(__VA_ARGS__, 65); break; \
+      case 66: result = func_name(__VA_ARGS__, 66); break; \
+      case 67: result = func_name(__VA_ARGS__, 67); break; \
+      case 68: result = func_name(__VA_ARGS__, 68); break; \
+      case 69: result = func_name(__VA_ARGS__, 69); break; \
+      case 70: result = func_name(__VA_ARGS__, 70); break; \
+      case 71: result = func_name(__VA_ARGS__, 71); break; \
+      case 72: result = func_name(__VA_ARGS__, 72); break; \
+      case 73: result = func_name(__VA_ARGS__, 73); break; \
+      case 74: result = func_name(__VA_ARGS__, 74); break; \
+      case 75: result = func_name(__VA_ARGS__, 75); break; \
+      case 76: result = func_name(__VA_ARGS__, 76); break; \
+      case 77: result = func_name(__VA_ARGS__, 77); break; \
+      case 78: result = func_name(__VA_ARGS__, 78); break; \
+      case 79: result = func_name(__VA_ARGS__, 79); break; \
+      case 80: result = func_name(__VA_ARGS__, 80); break; \
+      case 81: result = func_name(__VA_ARGS__, 81); break; \
+      case 82: result = func_name(__VA_ARGS__, 82); break; \
+      case 83: result = func_name(__VA_ARGS__, 83); break; \
+      case 84: result = func_name(__VA_ARGS__, 84); break; \
+      case 85: result = func_name(__VA_ARGS__, 85); break; \
+      case 86: result = func_name(__VA_ARGS__, 86); break; \
+      case 87: result = func_name(__VA_ARGS__, 87); break; \
+      case 88: result = func_name(__VA_ARGS__, 88); break; \
+      case 89: result = func_name(__VA_ARGS__, 89); break; \
+      case 90: result = func_name(__VA_ARGS__, 90); break; \
+      case 91: result = func_name(__VA_ARGS__, 91); break; \
+      case 92: result = func_name(__VA_ARGS__, 92); break; \
+      case 93: result = func_name(__VA_ARGS__, 93); break; \
+      case 94: result = func_name(__VA_ARGS__, 94); break; \
+      case 95: result = func_name(__VA_ARGS__, 95); break; \
+      case 96: result = func_name(__VA_ARGS__, 96); break; \
+      case 97: result = func_name(__VA_ARGS__, 97); break; \
+      case 98: result = func_name(__VA_ARGS__, 98); break; \
+      case 99: result = func_name(__VA_ARGS__, 99); break; \
+      case 100: result = func_name(__VA_ARGS__, 100); break; \
+      case 101: result = func_name(__VA_ARGS__, 101); break; \
+      case 102: result = func_name(__VA_ARGS__, 102); break; \
+      case 103: result = func_name(__VA_ARGS__, 103); break; \
+      case 104: result = func_name(__VA_ARGS__, 104); break; \
+      case 105: result = func_name(__VA_ARGS__, 105); break; \
+      case 106: result = func_name(__VA_ARGS__, 106); break; \
+      case 107: result = func_name(__VA_ARGS__, 107); break; \
+      case 108: result = func_name(__VA_ARGS__, 108); break; \
+      case 109: result = func_name(__VA_ARGS__, 109); break; \
+      case 110: result = func_name(__VA_ARGS__, 110); break; \
+      case 111: result = func_name(__VA_ARGS__, 111); break; \
+      case 112: result = func_name(__VA_ARGS__, 112); break; \
+      case 113: result = func_name(__VA_ARGS__, 113); break; \
+      case 114: result = func_name(__VA_ARGS__, 114); break; \
+      case 115: result = func_name(__VA_ARGS__, 115); break; \
+      case 116: result = func_name(__VA_ARGS__, 116); break; \
+      case 117: result = func_name(__VA_ARGS__, 117); break; \
+      case 118: result = func_name(__VA_ARGS__, 118); break; \
+      case 119: result = func_name(__VA_ARGS__, 119); break; \
+      case 120: result = func_name(__VA_ARGS__, 120); break; \
+      case 121: result = func_name(__VA_ARGS__, 121); break; \
+      case 122: result = func_name(__VA_ARGS__, 122); break; \
+      case 123: result = func_name(__VA_ARGS__, 123); break; \
+      case 124: result = func_name(__VA_ARGS__, 124); break; \
+      case 125: result = func_name(__VA_ARGS__, 125); break; \
+      case 126: result = func_name(__VA_ARGS__, 126); break; \
+      case 127: result = func_name(__VA_ARGS__, 127); break; \
+      case 128: result = func_name(__VA_ARGS__, 128); break; \
+      case 129: result = func_name(__VA_ARGS__, 129); break; \
+      case 130: result = func_name(__VA_ARGS__, 130); break; \
+      case 131: result = func_name(__VA_ARGS__, 131); break; \
+      case 132: result = func_name(__VA_ARGS__, 132); break; \
+      case 133: result = func_name(__VA_ARGS__, 133); break; \
+      case 134: result = func_name(__VA_ARGS__, 134); break; \
+      case 135: result = func_name(__VA_ARGS__, 135); break; \
+      case 136: result = func_name(__VA_ARGS__, 136); break; \
+      case 137: result = func_name(__VA_ARGS__, 137); break; \
+      case 138: result = func_name(__VA_ARGS__, 138); break; \
+      case 139: result = func_name(__VA_ARGS__, 139); break; \
+      case 140: result = func_name(__VA_ARGS__, 140); break; \
+      case 141: result = func_name(__VA_ARGS__, 141); break; \
+      case 142: result = func_name(__VA_ARGS__, 142); break; \
+      case 143: result = func_name(__VA_ARGS__, 143); break; \
+      case 144: result = func_name(__VA_ARGS__, 144); break; \
+      case 145: result = func_name(__VA_ARGS__, 145); break; \
+      case 146: result = func_name(__VA_ARGS__, 146); break; \
+      case 147: result = func_name(__VA_ARGS__, 147); break; \
+      case 148: result = func_name(__VA_ARGS__, 148); break; \
+      case 149: result = func_name(__VA_ARGS__, 149); break; \
+      case 150: result = func_name(__VA_ARGS__, 150); break; \
+      case 151: result = func_name(__VA_ARGS__, 151); break; \
+      case 152: result = func_name(__VA_ARGS__, 152); break; \
+      case 153: result = func_name(__VA_ARGS__, 153); break; \
+      case 154: result = func_name(__VA_ARGS__, 154); break; \
+      case 155: result = func_name(__VA_ARGS__, 155); break; \
+      case 156: result = func_name(__VA_ARGS__, 156); break; \
+      case 157: result = func_name(__VA_ARGS__, 157); break; \
+      case 158: result = func_name(__VA_ARGS__, 158); break; \
+      case 159: result = func_name(__VA_ARGS__, 159); break; \
+      case 160: result = func_name(__VA_ARGS__, 160); break; \
+      case 161: result = func_name(__VA_ARGS__, 161); break; \
+      case 162: result = func_name(__VA_ARGS__, 162); break; \
+      case 163: result = func_name(__VA_ARGS__, 163); break; \
+      case 164: result = func_name(__VA_ARGS__, 164); break; \
+      case 165: result = func_name(__VA_ARGS__, 165); break; \
+      case 166: result = func_name(__VA_ARGS__, 166); break; \
+      case 167: result = func_name(__VA_ARGS__, 167); break; \
+      case 168: result = func_name(__VA_ARGS__, 168); break; \
+      case 169: result = func_name(__VA_ARGS__, 169); break; \
+      case 170: result = func_name(__VA_ARGS__, 170); break; \
+      case 171: result = func_name(__VA_ARGS__, 171); break; \
+      case 172: result = func_name(__VA_ARGS__, 172); break; \
+      case 173: result = func_name(__VA_ARGS__, 173); break; \
+      case 174: result = func_name(__VA_ARGS__, 174); break; \
+      case 175: result = func_name(__VA_ARGS__, 175); break; \
+      case 176: result = func_name(__VA_ARGS__, 176); break; \
+      case 177: result = func_name(__VA_ARGS__, 177); break; \
+      case 178: result = func_name(__VA_ARGS__, 178); break; \
+      case 179: result = func_name(__VA_ARGS__, 179); break; \
+      case 180: result = func_name(__VA_ARGS__, 180); break; \
+      case 181: result = func_name(__VA_ARGS__, 181); break; \
+      case 182: result = func_name(__VA_ARGS__, 182); break; \
+      case 183: result = func_name(__VA_ARGS__, 183); break; \
+      case 184: result = func_name(__VA_ARGS__, 184); break; \
+      case 185: result = func_name(__VA_ARGS__, 185); break; \
+      case 186: result = func_name(__VA_ARGS__, 186); break; \
+      case 187: result = func_name(__VA_ARGS__, 187); break; \
+      case 188: result = func_name(__VA_ARGS__, 188); break; \
+      case 189: result = func_name(__VA_ARGS__, 189); break; \
+      case 190: result = func_name(__VA_ARGS__, 190); break; \
+      case 191: result = func_name(__VA_ARGS__, 191); break; \
+      case 192: result = func_name(__VA_ARGS__, 192); break; \
+      case 193: result = func_name(__VA_ARGS__, 193); break; \
+      case 194: result = func_name(__VA_ARGS__, 194); break; \
+      case 195: result = func_name(__VA_ARGS__, 195); break; \
+      case 196: result = func_name(__VA_ARGS__, 196); break; \
+      case 197: result = func_name(__VA_ARGS__, 197); break; \
+      case 198: result = func_name(__VA_ARGS__, 198); break; \
+      case 199: result = func_name(__VA_ARGS__, 199); break; \
+      case 200: result = func_name(__VA_ARGS__, 200); break; \
+      case 201: result = func_name(__VA_ARGS__, 201); break; \
+      case 202: result = func_name(__VA_ARGS__, 202); break; \
+      case 203: result = func_name(__VA_ARGS__, 203); break; \
+      case 204: result = func_name(__VA_ARGS__, 204); break; \
+      case 205: result = func_name(__VA_ARGS__, 205); break; \
+      case 206: result = func_name(__VA_ARGS__, 206); break; \
+      case 207: result = func_name(__VA_ARGS__, 207); break; \
+      case 208: result = func_name(__VA_ARGS__, 208); break; \
+      case 209: result = func_name(__VA_ARGS__, 209); break; \
+      case 210: result = func_name(__VA_ARGS__, 210); break; \
+      case 211: result = func_name(__VA_ARGS__, 211); break; \
+      case 212: result = func_name(__VA_ARGS__, 212); break; \
+      case 213: result = func_name(__VA_ARGS__, 213); break; \
+      case 214: result = func_name(__VA_ARGS__, 214); break; \
+      case 215: result = func_name(__VA_ARGS__, 215); break; \
+      case 216: result = func_name(__VA_ARGS__, 216); break; \
+      case 217: result = func_name(__VA_ARGS__, 217); break; \
+      case 218: result = func_name(__VA_ARGS__, 218); break; \
+      case 219: result = func_name(__VA_ARGS__, 219); break; \
+      case 220: result = func_name(__VA_ARGS__, 220); break; \
+      case 221: result = func_name(__VA_ARGS__, 221); break; \
+      case 222: result = func_name(__VA_ARGS__, 222); break; \
+      case 223: result = func_name(__VA_ARGS__, 223); break; \
+      case 224: result = func_name(__VA_ARGS__, 224); break; \
+      case 225: result = func_name(__VA_ARGS__, 225); break; \
+      case 226: result = func_name(__VA_ARGS__, 226); break; \
+      case 227: result = func_name(__VA_ARGS__, 227); break; \
+      case 228: result = func_name(__VA_ARGS__, 228); break; \
+      case 229: result = func_name(__VA_ARGS__, 229); break; \
+      case 230: result = func_name(__VA_ARGS__, 230); break; \
+      case 231: result = func_name(__VA_ARGS__, 231); break; \
+      case 232: result = func_name(__VA_ARGS__, 232); break; \
+      case 233: result = func_name(__VA_ARGS__, 233); break; \
+      case 234: result = func_name(__VA_ARGS__, 234); break; \
+      case 235: result = func_name(__VA_ARGS__, 235); break; \
+      case 236: result = func_name(__VA_ARGS__, 236); break; \
+      case 237: result = func_name(__VA_ARGS__, 237); break; \
+      case 238: result = func_name(__VA_ARGS__, 238); break; \
+      case 239: result = func_name(__VA_ARGS__, 239); break; \
+      case 240: result = func_name(__VA_ARGS__, 240); break; \
+      case 241: result = func_name(__VA_ARGS__, 241); break; \
+      case 242: result = func_name(__VA_ARGS__, 242); break; \
+      case 243: result = func_name(__VA_ARGS__, 243); break; \
+      case 244: result = func_name(__VA_ARGS__, 244); break; \
+      case 245: result = func_name(__VA_ARGS__, 245); break; \
+      case 246: result = func_name(__VA_ARGS__, 246); break; \
+      case 247: result = func_name(__VA_ARGS__, 247); break; \
+      case 248: result = func_name(__VA_ARGS__, 248); break; \
+      case 249: result = func_name(__VA_ARGS__, 249); break; \
+      case 250: result = func_name(__VA_ARGS__, 250); break; \
+      case 251: result = func_name(__VA_ARGS__, 251); break; \
+      case 252: result = func_name(__VA_ARGS__, 252); break; \
+      case 253: result = func_name(__VA_ARGS__, 253); break; \
+      case 254: result = func_name(__VA_ARGS__, 254); break; \
+      case 255: result = func_name(__VA_ARGS__, 255); break; \
+      default: result = default_case; break; \
+    } \
+  } while (0)
+
+HEDLEY_DIAGNOSTIC_POP
+
+
 #endif /* !defined(SIMDE_TEST_X86_TEST_AVX_H) */



View it on GitLab: https://salsa.debian.org/med-team/simde/-/commit/79abcb1d5b01146b27c888923ddc7bf26468c6be

-- 
View it on GitLab: https://salsa.debian.org/med-team/simde/-/commit/79abcb1d5b01146b27c888923ddc7bf26468c6be
You're receiving this email because of your account on salsa.debian.org.


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://alioth-lists.debian.net/pipermail/debian-med-commit/attachments/20230505/2170f883/attachment-0001.htm>


More information about the debian-med-commit mailing list