| // Compile with O3 and gcc4.7 and -march=corei7-avx for Sandy Bridge | |
| void maxArray(double* __restrict x, double* __restrict y) { | |
| #if __GNUC_MINOR__ >= 7 // 4.7+ | |
| x = static_cast<double*>(__builtin_assume_aligned(x, 64)); | |
| y = static_cast<double*>(__builtin_assume_aligned(y, 64)); | |
| #endif | |
| for (auto i = 0; i < 65536; i++) { | |
| x[i] = ((y[i] > x[i]) ? y[i] : x[i]); | |
| } | |
| } |