inline
 void gather(const double *ptr, const int *offsets)
 {
     __m256i indices;
     indices = _mm256_loadu_si256(reinterpret_cast<const __m256i *>(offsets));
     val    = _mm512_i32gather_pd(indices, ptr, 8);
 }
void extern
avx512f_test (void)
{
  x = _mm512_i32gather_pd (idx, base, 8);
  x = _mm512_mask_i32gather_pd (x, m8, idx, base, 8);
}