assembly SIMD add: make uniform for all ISAs, mark as entry point to learning SIMD

This commit is contained in:
Ciro Santilli 六四事件 法轮功
2019-05-12 00:00:04 +00:00
parent b14f68f9bf
commit a13e99ec1c
8 changed files with 162 additions and 202 deletions

View File

@@ -11622,6 +11622,23 @@ Other infrastructure sanity checks that you might want to look into include:
* `ASSERT_MEMCMP` tests
** link:userland/arch/x86_64/lkmc_assert_memcmp_fail.S[]
=== Assembly SIMD
Much like ADD for non-SIMD, start learning SIMD instructions by looking at the integer and floating point SIMD ADD instructions of each ISA:
* x86
** link:userland/arch/x86_64/addpd.S[]: `ADDPS`, `ADDPD`
** link:userland/arch/x86_64/paddq.S[]: `PADDQ`, `PADDL`, `PADDW`, `PADDB`
* arm
** link:userland/arch/arm/vadd.S[]
* aarch64
** link:userland/arch/aarch64/add_vector.S[]
** link:userland/arch/aarch64/fadd_vector.S[]
Then it is just a huge copy paste of infinite boring details:
* <<x86-simd>>
=== User vs system assembly
By "userland assembly", we mean "the parts of the ISA which can be freely used from userland".
@@ -11854,8 +11871,6 @@ History:
* link:https://en.wikipedia.org/wiki/MMX_(instruction_set)[MMX]: 1997
* link:https://en.wikipedia.org/wiki/Streaming_SIMD_Extensions[SSE]: Streaming SIMD Extensions. 1999. 128-bit XMM registers.
* link:https://en.wikipedia.org/wiki/SSE2[SSE2]: 2004
** link:userland/arch/x86_64/addpd.S[]: `ADDPS`, `ADDPD`
** link:userland/arch/x86_64/paddq.S[]: `PADDQ`, `PADDL`, `PADDW`, `PADDB`
* link:https://en.wikipedia.org/wiki/SSE3[SSE3]: 2006
* link:https://en.wikipedia.org/wiki/SSE4[SSE4]: 2006
* link:https://en.wikipedia.org/wiki/Advanced_Vector_Extensions[AVX]: Advanced Vector Extensions. 2011. 256-bit YMM registers. Extension of XMM.