------- Comment #3 from adam at consulting dot net dot nz 2010-01-03 23:20 ------- This is a demo of poor code generation with XMM global register variables ("hardregs") and the vector extensions. Intrinsics are too low level. The vector extensions can continue to work on a platform without x86 intrinsics (just replace register variable definitions with, e.g., __thread variable definitions on a foreign architecture).
test_fp_vectors_containing_fp_data() indicates that code generation can be optimal with XMM global register variables+vector extensions. But only if the register variables are defined as the same type as the calculation. This is not a reasonable restriction for an XMM global register variable that has to contain integer and/or floating point data over the lifetime of a program. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=42596