Hi, what is given, unchangeably, is a 32 bit GNU/Linux on 64 bit Intel hardware with SSE3. The systems have a 32 bit GCC (from the OS distribution), 4.6.1 or 4.6.3. Some things are in C, others are in Ada. I am targeting a function like the one below (semi-pseudocode) and try to have GCC automatically generate SSE SIMD instructions such as mulpd, or divpd for the above system. Automatically meaning *without* importing builtins/intrinsics, explicitly or via #include. This works just fine using attributes when everything is 64 bits, using -O3 -msse3 -mfpmath=sse. I cannot get it to work at all when OS and GCC are 32 bit. (Using intrinsics explicitly does work, sort of, but that's beside the point, if I may say so.) So, is there any way to make a 32 bit GCC emit mulpd and the like automatically (and correctly), without explicitly calling built-ins, like there is when everything is 64 bits? (Maybe: Does the vectorizer, if applicable, recognize that it may assume presence of suitable hardware and act accordingly?) VECTOR f(double a, double b, double c, double d) { return (VECTOR) { a OP c, b OP d }; } (VECTOR is an array of two 64 bit FPT components, in all GCC languages I have tried. It works nicely, as said, with 64 bit compilers.) Georg