While the search feature is nice, the reference itself still lacks some details about what an instruction actually does. Take for example, [1], and compare it with say [2] (with diagram), [3] (ditto), or [4] (only pseudocode but helpful nonetheless). Of course, all the alternatives mentioned only cater to x86 but still it'd be great if this site also follows the approach taken by the other three.
I clicked the “go” button just to see the typical format, and it gave… zero results. Because the example is “e.g. integer vector addition” and it doesn't strip away the “e.g.” part!
Apart from that, I find the search results too sparse (doesn't contain the prototype) and the result page too verbose (way too much fluff in the description, and way too much setup in the example; honestly, who cares about <stdio.h>[1]), so I'll probably stick to the existing x86/Arm references.
[1] Also, the contrast is set so low that I literally cannot read all of the example.
Neat idea, the 'search' feature is a bit odd though if you don't know which instruction you are looking for. e.g. searching for 'SHA' shows the autocomplete for platforms not selected and then 0 results due to the filters (they haven't been added for SSE/AVX yet), but searching for 'hash' gets you 100 results like '_mm256_castsi256_ph' which has nothing to do with the search.
Thanks for your comment. We have noticed some strange behavior with the “search” feature, you are right to mention that & we are currently trying to improve its performance. Regarding the SHA you don’t get any results when filtering out NEON or VSX, because the AVX512 SHA intrinsics hasn’t been added yet (under dev atm). When searching for “HASH”, the first 3 results that you get are correct (NEON), the other ones are as mentioned before are bad behavior of the search component - it must have found some similarity.
Yeah, the plan is to get all SIMD engines there, RVV is the hardest though (20k intrinsics). Currently we're doing IBM Z, which should be done probably within the month? It still needs some work, and progress is slow because we're just using our own funds. Plan is IBM Z (currently worked on), Loongson LSX/LASX, MIPS MSA, ARM SVE/SVE2 and finally RVV 1.0. LSX/LASX and MSA are very easy. Ideally, I'd like to open source everything, but I can't just now, as I would just hand over all the data to big players like OpenAI. Once I manage to ensure adequate funding, we're going to open source the data (SIMD.info) and probably the model itself (SIMD.ai).
While the search feature is nice, the reference itself still lacks some details about what an instruction actually does. Take for example, [1], and compare it with say [2] (with diagram), [3] (ditto), or [4] (only pseudocode but helpful nonetheless). Of course, all the alternatives mentioned only cater to x86 but still it'd be great if this site also follows the approach taken by the other three.
[1]: https://simd.info/c_intrinsic/_mm256_permute_pd [2]: https://www.felixcloutier.com/x86/vpermilpd [3]: https://officedaytime.com/simd512e/simdimg/si.php?f=vpermilp... [4]: https://www.intel.com/content/www/us/en/docs/intrinsics-guid...
https://github.com/dzaima/intrinsics-viewer is like Intels Guide, but also for Arm, RISC-V and wasm.
RISC-V and wasm are hosted here: https://dzaima.github.io/intrinsics-viewer/
You need to download it your self if you want to use the others.
https://dougallj.github.io/asil/ is like officedaytime but for SVE.
I clicked the “go” button just to see the typical format, and it gave… zero results. Because the example is “e.g. integer vector addition” and it doesn't strip away the “e.g.” part!
Apart from that, I find the search results too sparse (doesn't contain the prototype) and the result page too verbose (way too much fluff in the description, and way too much setup in the example; honestly, who cares about <stdio.h>[1]), so I'll probably stick to the existing x86/Arm references.
[1] Also, the contrast is set so low that I literally cannot read all of the example.
I don't think it's that it's not stripping "e.g.", but that the search criteria are empty. The empty result set is prefaced by "Search results for:".
I actually like that the example is a complete, standalone program that you can compile or send to Compiler Explorer.
Neat idea, the 'search' feature is a bit odd though if you don't know which instruction you are looking for. e.g. searching for 'SHA' shows the autocomplete for platforms not selected and then 0 results due to the filters (they haven't been added for SSE/AVX yet), but searching for 'hash' gets you 100 results like '_mm256_castsi256_ph' which has nothing to do with the search.
Thanks for your comment. We have noticed some strange behavior with the “search” feature, you are right to mention that & we are currently trying to improve its performance. Regarding the SHA you don’t get any results when filtering out NEON or VSX, because the AVX512 SHA intrinsics hasn’t been added yet (under dev atm). When searching for “HASH”, the first 3 results that you get are correct (NEON), the other ones are as mentioned before are bad behavior of the search component - it must have found some similarity.
SIMD from MCUs would also be awesome!
This is pretty useful! Any plan for adding ARM SVE and RISC-V V extension?
A response from the SIMD.info folks:
Yeah, the plan is to get all SIMD engines there, RVV is the hardest though (20k intrinsics). Currently we're doing IBM Z, which should be done probably within the month? It still needs some work, and progress is slow because we're just using our own funds. Plan is IBM Z (currently worked on), Loongson LSX/LASX, MIPS MSA, ARM SVE/SVE2 and finally RVV 1.0. LSX/LASX and MSA are very easy. Ideally, I'd like to open source everything, but I can't just now, as I would just hand over all the data to big players like OpenAI. Once I manage to ensure adequate funding, we're going to open source the data (SIMD.info) and probably the model itself (SIMD.ai).
Maybe std::simd could be worked into this.