Skip to content

Instantly share code, notes, and snippets.

@kvalv
Created September 14, 2018 15:09
Show Gist options
  • Save kvalv/7af067d8ec3e86b679f84a293525c452 to your computer and use it in GitHub Desktop.
Save kvalv/7af067d8ec3e86b679f84a293525c452 to your computer and use it in GitHub Desktop.
#include <vector>
#include <iostream>
union sse_float4 {
float __attribute__ ((vector_size (16))) vector;
float elements[4];
};
int main() {
sse_float4 fa;
fa.elements[0] = 0.0f;
fa.elements[1] = 1.0f;
fa.elements[2] = 2.0f;
fa.elements[3] = 3.0f;
bool doVector = true;
if (doVector) {
for (int i=0; i<1000000000; i++) {
fa.vector = fa.vector + fa.vector;
}
} else {
for (int i=0; i<1000000000; i++) {
fa.elements[0] = fa.elements[0] + fa.elements[1];
fa.elements[3] = fa.elements[3] + fa.elements[1];
fa.elements[2] = fa.elements[2] + fa.elements[1];
fa.elements[1] = fa.elements[1] + fa.elements[1];
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment