| /* PR tree-optimization/88464 */ |
| /* { dg-do run { target { avx512f } } } */ |
| /* { dg-options "-O3 -mavx512f -mprefer-vector-width=512 -mtune=skylake-avx512" } */ |
| |
| #include "avx512f-check.h" |
| |
| #include "avx512f-pr88464-5.c" |
| |
| static void |
| avx512f_test (void) |
| { |
| long long a[1024], b[1024]; |
| int c[1024], f[1024]; |
| int d[1024]; |
| long e[1024]; |
| int i; |
| for (i = 0; i < 1024; i++) |
| { |
| asm volatile ("" : "+g" (i)); |
| a[i] = (i % 3) != 0 ? 15 : -5; |
| b[i] = 2 * i; |
| d[i] = (i % 3) ? 1023 - i : __INT_MAX__; |
| } |
| f1 (a, b, d, 1024); |
| for (i = 0; i < 1024; i++) |
| { |
| asm volatile ("" : "+g" (i)); |
| if (a[i] != ((i % 3) != 0 ? (1023 - i) * 2 : -5)) |
| abort (); |
| a[i] = (i % 3) != 1 ? 15 : -5; |
| b[i] = 3 * i; |
| e[i] = (i % 3) != 1 ? 1023 - i : __LONG_MAX__; |
| } |
| f2 (a, b, e, 1024); |
| for (i = 0; i < 1024; i++) |
| { |
| asm volatile ("" : "+g" (i)); |
| if (a[i] != ((i % 3) != 1 ? (1023 - i) * 3 : -5)) |
| abort (); |
| c[i] = (i % 3) != 2 ? 15 : -5; |
| d[i] = (i % 3) != 2 ? 1023 - i : __INT_MAX__; |
| f[i] = 4 * i; |
| } |
| f3 (c, f, d, 1024); |
| for (i = 0; i < 1024; i++) |
| { |
| asm volatile ("" : "+g" (i)); |
| if (c[i] != ((i % 3) != 2 ? (1023 - i) * 4: -5)) |
| abort (); |
| c[i] = (i % 3) != 0 ? 15 : -5; |
| e[i] = (i % 3) != 0 ? 1023 - i : __INT_MAX__; |
| f[i] = 5 * i; |
| } |
| f4 (c, f, e, 1024); |
| for (i = 0; i < 1024; i++) |
| { |
| asm volatile ("" : "+g" (i)); |
| if (c[i] != ((i % 3) != 0 ? (1023 - i) * 5 : -5)) |
| abort (); |
| } |
| } |