10ebe88abf0f7d20128e1e64976c52a3a1312285
Previously, we used an IfStmt to wrap complex functions with the equivalent of a "cif" to check to see if the mask was all on, all off, or mixed at the start of executing non-trivial functions. This had the unintended side effect of suggesting to other parts of the compiler that the entire function was under varying control flow (which in turn led to some small code quality issues.) Now, we emit the equivalent code directly.
============================== Intel(r) SPMD Program Compiler ============================== Welcome to the Intel(r) SPMD Program Compiler (ispc)! ispc is a new compiler for "single program, multiple data" (SPMD) programs. Under the SPMD model, the programmer writes a program that mostly appears to be a regular serial program, though the execution model is actually that a number of program instances execute in parallel on the hardware. ispc compiles a C-based SPMD programming language to run on the SIMD units of CPUs; it frequently provides a a 3x or more speedup on CPUs with 4-wide SSE units, without any of the difficulty of writing intrinsics code. ispc is an open source compiler under the BSD license; see the file LICENSE.txt. ispc supports Windows, Mac, and Linux, with both x86 and x86-64 targets. It currently supports the SSE2, SSE4, and AVX instruction sets. For more information and examples, as well as a wiki and the bug database, see the ispc distribution site, http://ispc.github.com.
Description
Languages
C++
63.5%
LLVM
19.1%
M4
11.6%
Python
4.5%
Makefile
0.5%
Other
0.6%