SIMD: Difference between revisions
No edit summary |
No edit summary |
||
| Line 1: | Line 1: | ||
First introduced on the Illiac IV, and not to be confused with vector processing. | First introduced on the Illiac IV, and not to be confused with vector processing. | ||
==Compilers and Assemblers== | |||
* [[GCC]] can issue SIMD four different ways: | |||
** [http://gcc.gnu.org/onlinedocs/gcc/Submodel-Options.html#Submodel-Options Target-specific code generation] will sometimes use scalar SIMD | |||
** [http://gcc.gnu.org/onlinedocs/gcc/Target-Builtins.html Target-specific builtins], using [http://gcc.gnu.org/onlinedocs/gcc/Vector-Extensions.html vector extensions] | |||
** [[GCC#Inline_Assembly|Inline assembly]], using syntax of the [[http://sourceware.org/binutils/docs/as/index.html GNU Assembler]] and a baroque register specification convention | |||
** [http://gcc.gnu.org/projects/tree-ssa/vectorization.html Auto-vectorization] from [[GCC|gcc's]] <tt>autovect</tt> branch attempts to autovectorize some loops | |||
==Data Types (taken from SSE specs)== | ==Data Types (taken from SSE specs)== | ||