On 32-bit x86 platforms, the variable
*use-sse2-for-ext-vector-type* controls whether the code that is generated by foreign interface definitions that pass or receive vector type arguments or results (see Vector types) uses SSE2 to pass or receive these arguments or results.
SSE2 is a feature of the x86 CPU, which was introduced by Intel in 2001, and is supported by all new x86 CPUs. However, the C compiler can still pass arguments without using SSE2 for backwards compatibility. The Lisp definitions must pass/receive arguments in the same way that as the C compiler that compiled the foreign code they call/are called from.
*use-sse2-for-ext-vector-type* affects the code at macro expansion time, so if you use
compile-file and later load the compiled file, the value of
*use-sse2-for-ext-vector-type* at the time of
compile-file determine what the code does. When evaluating the definition, the value at the time of evaluating the definition determines what the code does.
On other platforms, or using other compilers or newer versions of Clang, if you use vector types then you will need to check what the C compiler does. If you have any doubt, contact LispWorks support.
LispWorks Foreign Language Interface User Guide and Reference Manual - 29 Sep 2017