void load_fn_links_gpu(info_t *info, fn_links_t *fn, ks_action_paths *ap,
		       su3_matrix *links, int want_back)
{
  ks_component_paths *p = &ap->p;
  double final_flop = 0;
  double dtime = -dclock();

  load_fatlonglinks_gpu(info, fn->fat, fn->lng, p, links);

  if(want_back)
    load_fn_backlinks(fn);
  else
    destroy_fn_backlinks(fn);

  dtime += dclock();
  info->final_sec = dtime;
  info->final_flop = final_flop;
}
static void  
load_X_from_W(info_t *info, fn_links_t *fn, hisq_auxiliary_t *aux,
	      ks_component_paths *ap){

  su3_matrix *fat = get_fatlinks(fn);
  su3_matrix *lng = get_lnglinks(fn);
  double final_flop = 0.0;
  double dtime = -dclock();
#ifdef USE_FL_GPU
  load_fatlonglinks_gpu(info, fat, lng, ap, aux->W_unitlink);
#else
  load_fatlinks(info, fat, ap, aux->W_unitlink );
  final_flop += info->final_flop;
  load_lnglinks(info, lng, ap, aux->W_unitlink );
  final_flop += info->final_flop;
#endif
  dtime += dclock();
  
  node0_printf("Combined fattening and long-link calculation time: %lf\n",dtime);

  info->final_flop = final_flop;

}