     int block_size = 256;
     int n = n_blocks * block_size;
     thrust::device_vector<T> s(n);
+    fill_test(s);
     thrust::device_vector<T> r(n);
     int iterations = 10;
     cudaEvent_t start, stop;

    do_tests<run_benchmark_direct_scatter, sizes>::impl(permutation);
    do_tests<run_benchmark_shfl_gather, sizes>::impl(permutation);
    do_tests<run_benchmark_direct_gather, sizes>::impl(permutation);
}


        gold<<<n_blocks, block_size>>>(thrust::raw_pointer_cast(s.data()), thrust::raw_pointer_cast(g.data()));
        correct = thrust::equal(r.begin(), r.end(), g.begin());
    }
    
    if (correct)
        std::cout << "Results passed";
    else
