Hello! Current mainline gcc can efficiently disable x87 instruction when -mno-80387 switch is used. In this case, MMX registers can be used for the autovectorisation even without emms or femms instructions to switch back to x87 mode.
-mno-80387 introduces ABI change, so existing libraries are already incompatible with -mno-80387 compiled programs. Attached RFC patch shows the condition to enable MMX vectorisation. To generate MMX instructions, a bunch of patterns in mmx.md has also to be renamed, as shown in the patch of PR target/14559. The benefits of this approach is the usage of another set otherwise idle 128bit registers in addition to existing SSE regs. Also, integer vectorisation could be easily enabled for (embedded) MMX processors. Uros.
mmx.diff
Description: Binary data