[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