| /* PR target/85918 */ |
| /* { dg-do compile } */ |
| /* { dg-options "-O3 -mavx512dq -mavx512vl -mprefer-vector-width=512 -fno-vect-cost-model -fdump-tree-vect-details" } */ |
| /* { dg-final { scan-tree-dump-times "vectorized 1 loops in function" 24 "vect" } } */ |
| |
| #define N 1024 |
| |
| long long ll[N] __attribute__((aligned (64))); |
| unsigned long long ull[N] __attribute__((aligned (64))); |
| float f[N] __attribute__((aligned (64))); |
| double d[N] __attribute__((aligned (64))); |
| |
| void ll2d1 (void) |
| { |
| int i; |
| |
| for (i = 0; i < 4; i++) |
| d[i] = ll[i]; |
| } |
| |
| void ull2d1 (void) |
| { |
| int i; |
| |
| for (i = 0; i < 4; i++) |
| d[i] = ull[i]; |
| } |
| |
| void d2ll1 (void) |
| { |
| int i; |
| |
| for (i = 0; i < 4; i++) |
| ll[i] = d[i]; |
| } |
| |
| void d2ull1 (void) |
| { |
| int i; |
| |
| for (i = 0; i < 4; i++) |
| ull[i] = d[i]; |
| } |
| |
| void ll2f1 (void) |
| { |
| int i; |
| |
| for (i = 0; i < 4; i++) |
| f[i] = ll[i]; |
| } |
| |
| void ull2f1 (void) |
| { |
| int i; |
| |
| for (i = 0; i < 4; i++) |
| f[i] = ull[i]; |
| } |
| |
| void f2ll1 (void) |
| { |
| int i; |
| |
| for (i = 0; i < 4; i++) |
| ll[i] = f[i]; |
| } |
| |
| void f2ull1 (void) |
| { |
| int i; |
| |
| for (i = 0; i < 4; i++) |
| ull[i] = f[i]; |
| } |
| |
| void ll2d2 (void) |
| { |
| int i; |
| |
| for (i = 0; i < 8; i++) |
| d[i] = ll[i]; |
| } |
| |
| void ull2d2 (void) |
| { |
| int i; |
| |
| for (i = 0; i < 8; i++) |
| d[i] = ull[i]; |
| } |
| |
| void d2ll2 (void) |
| { |
| int i; |
| |
| for (i = 0; i < 8; i++) |
| ll[i] = d[i]; |
| } |
| |
| void d2ull2 (void) |
| { |
| int i; |
| |
| for (i = 0; i < 8; i++) |
| ull[i] = d[i]; |
| } |
| |
| void ll2f2 (void) |
| { |
| int i; |
| |
| for (i = 0; i < 8; i++) |
| f[i] = ll[i]; |
| } |
| |
| void ull2f2 (void) |
| { |
| int i; |
| |
| for (i = 0; i < 8; i++) |
| f[i] = ull[i]; |
| } |
| |
| void f2ll2 (void) |
| { |
| int i; |
| |
| for (i = 0; i < 8; i++) |
| ll[i] = f[i]; |
| } |
| |
| void f2ull2 (void) |
| { |
| int i; |
| |
| for (i = 0; i < 8; i++) |
| ull[i] = f[i]; |
| } |
| |
| void ll2d3 (void) |
| { |
| int i; |
| |
| for (i = 0; i < 16; i++) |
| d[i] = ll[i]; |
| } |
| |
| void ull2d3 (void) |
| { |
| int i; |
| |
| for (i = 0; i < 16; i++) |
| d[i] = ull[i]; |
| } |
| |
| void d2ll3 (void) |
| { |
| int i; |
| |
| for (i = 0; i < 16; i++) |
| ll[i] = d[i]; |
| } |
| |
| void d2ull3 (void) |
| { |
| int i; |
| |
| for (i = 0; i < 16; i++) |
| ull[i] = d[i]; |
| } |
| |
| void ll2f3 (void) |
| { |
| int i; |
| |
| for (i = 0; i < 16; i++) |
| f[i] = ll[i]; |
| } |
| |
| void ull2f3 (void) |
| { |
| int i; |
| |
| for (i = 0; i < 16; i++) |
| f[i] = ull[i]; |
| } |
| |
| void f2ll3 (void) |
| { |
| int i; |
| |
| for (i = 0; i < 16; i++) |
| ll[i] = f[i]; |
| } |
| |
| void f2ull3 (void) |
| { |
| int i; |
| |
| for (i = 0; i < 16; i++) |
| ull[i] = f[i]; |
| } |