/* { dg-do compile } */ /* { dg-options "-O3 -mavx512f" } */ long long *D; int *S; short *H; char *Q; long long foo_unpack_1 (int low, int high, int ind) { int i; for (i = low; i <= high; i++) D[i] *= S[i]; return D[ind]; } long long foo_unpack_2 (int low, int high, int ind) { int i; for (i = low; i <= high; i++) D[i] *= H[i]; return D[ind]; } long long foo_unpack_3 (int low, int high, int ind) { int i; for (i = low; i <= high; i++) D[i] *= Q[i]; return D[ind]; } int foo_unpack_4 (int low, int high, int ind) { int i; for (i = low; i <= high; i++) S[i] *= H[i]; return S[ind]; } int foo_unpack_5 (int low, int high, int ind) { int i; for (i = low; i <= high; i++) S[i] *= Q[i]; return S[ind]; } short foo_unpack_6 (int low, int high, int ind) { int i; for (i = low; i <= high; i++) H[i] *= Q[i]; return H[ind]; } int foo_expand_1 (int low, int high, int ind) { int i; for (i = low; i <= high; i++) S[i] *= D[i]; return S[ind]; } short foo_expand_2 (int low, int high, int ind) { int i; for (i = low; i <= high; i++) H[i] *= D[i]; return H[ind]; } char foo_expand_3 (int low, int high, int ind) { int i; for (i = low; i <= high; i++) Q[i] *= D[i]; return Q[ind]; } short foo_expand_4 (int low, int high, int ind) { int i; for (i = low; i <= high; i++) H[i] *= S[i]; return H[ind]; } char foo_expand_5 (int low, int high, int ind) { int i; for (i = low; i <= high; i++) Q[i] *= S[i]; return Q[ind]; } char foo_expand_6 (int low, int high, int ind) { int i; for (i = low; i <= high; i++) Q[i] *= H[i]; return Q[ind]; }