simde
simde copied to clipboard
Implementations of SIMD instruction sets for systems which don't natively support them.
Hi, I did not find any instructions in the repo regarding how I can build `simde` from source. Would it be possible to point me to the instructions? Thanks in...
Per https://github.com/simd-everywhere/simde/pull/1152#issuecomment-2021047051 - listing those in case some of them are not yet implemented. non-SIMD [instructions related to](https://en.wikipedia.org/wiki/X86_instruction_listings): - P5 - [ ] `CL1INVMB` ([SCC](https://en.wikipedia.org/wiki/Single-chip_Cloud_Computer) only) - MMX - [...
https://en.wikipedia.org/wiki/List_of_discontinued_x86_instructions#Lightweight_Profiling_instructions [lwpintrin.h](https://github.com/llvm/llvm-project/blob/4998587e6f5f66d464ac22ad4c11fe9afd2d56ab/clang/lib/Headers/lwpintrin.h) [LWP at Microsoft intrinsics list](https://learn.microsoft.com/en-us/cpp/intrinsics/x86-intrinsics-list?view=msvc-170): ammintrin.h [Lightweight Profiling Specification](https://web.archive.org/web/20121127061327/http://support.amd.com/us/Processor_TechDocs/43724.pdf)
https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#othertechs=BMI1 https://en.wikipedia.org/wiki/X86_Bit_manipulation_instruction_set#BMI1_(Bit_Manipulation_Instruction_Set_1) implementation status for TZCNT: https://github.com/simd-everywhere/implementation-status/blob/main/x86.md#bmi1
https://en.wikipedia.org/wiki/CLMUL_instruction_set - PCLMULLQLQDQ xmmreg,xmmrm [rm: 66 0f 3a 44 /r 00] Multiply the low halves of the two registers. - PCLMULHQLQDQ xmmreg,xmmrm [rm: 66 0f 3a 44 /r 01] Multiply...
[DOSbox Staging plans to use SIMDe](https://github.com/simd-everywhere/simde/issues/1025#issuecomment-1963028873) and it will benefit if SIMDe provides execution of [3DNow!](https://en.wikipedia.org/wiki/3DNow!) instructions on modern x86 (that doesn't have 3DNow!), ARM64, etc. 3DNow! emulation code is...
x87 (instructions list: [current](https://en.wikipedia.org/wiki/X86_instruction_listings#x87_floating-point_instructions), [obsolete Intel/IIT/Cyrix](https://en.wikipedia.org/wiki/List_of_discontinued_x86_instructions#Instructions_present_in_specific_80387_clones), obsolete NEC: [part1](https://www.cpu-world.com/forum/viewtopic.php?t=12863&view=previous), [part2](https://www.cpushack.com/2021/09/01/necs-forgotten-fpus/)) - code for most of those is available in SoftFloat ([Bochs](https://github.com/bochs-emu/Bochs/tree/master/bochs/cpu), [86Box](https://github.com/86Box/86Box/tree/master/src/cpu), [QEMU](https://wiki.qemu.org/Features/Softfloat), [Berkeley](http://www.jhauser.us/arithmetic/SoftFloat.html)) - useful even on x86, because...
[SVE](https://developer.arm.com/docs/101726/latest/explore-the-scalable-vector-extension-sve/what-is-the-scalable-vector-extension) is ARM's "vector-length agnostic" API. AFAICT it's really only available for CPUs geared towards HPC, and not very widely used (yet?), but it works with vector sizes that are...
https://en.wikipedia.org/wiki/List_of_discontinued_x86_instructions#Cyrix_EMMI_instructions Slightly relevant for DOS/Win9x/WinXP [emulators](https://github.com/PCBox/PCBox/issues/39#issuecomment-1147292376) as there is not a lot of software that uses those. There is a [CPU flag in Linux](https://unix.stackexchange.com/questions/43539/what-do-the-flags-in-proc-cpuinfo-mean) for those: `cxmmx` Cyrix MMX extensions...
https://en.wikipedia.org/wiki/X86_Bit_manipulation_instruction_set#TBM_(Trailing_Bit_Manipulation)