| // { dg-do compile } |
| // { dg-options "-O3" } |
| // { dg-additional-options "-march=bdver2" { target x86_64-*-* } } |
| |
| int max(int __b) { |
| if (0 < __b) |
| return __b; |
| return 0; |
| } |
| struct Plane { |
| Plane(int, int); |
| int *Row(); |
| }; |
| #ifdef __x86_64__ |
| #pragma GCC target "sse2,ssse3,avx,avx2" |
| #endif |
| float *ConvolveXSampleAndTranspose_rowp; |
| int ConvolveXSampleAndTranspose_res, ConvolveXSampleAndTranspose_r; |
| void ConvolveXSampleAndTranspose() { |
| Plane out(0, ConvolveXSampleAndTranspose_res); |
| for (int y;;) { |
| float sum; |
| for (int i = ConvolveXSampleAndTranspose_r; i; ++i) |
| sum += i; |
| for (; ConvolveXSampleAndTranspose_r; ++ConvolveXSampleAndTranspose_r) |
| sum += |
| ConvolveXSampleAndTranspose_rowp[max(ConvolveXSampleAndTranspose_r)] * |
| ConvolveXSampleAndTranspose_r; |
| out.Row()[y] = sum; |
| } |
| } |