message: Make sure infeeds and outfeeds obey the `always_rearrange_copies_on_the_host` flag.
  Summary:
  Copies for the FIFOs between the host and device (and vice versa) should obey the always_rearrange_copies_on_the_host flag from ipu.utils.create_ipu_config.
  Fixes T14615
  Test Plan: All tests pass.
  Reviewers: #tensorflow, hakons
  Maniphest Tasks: T14615
diff: @@ -64,7 +64,8 @@ StatusOr<poplar::program::Program> CreateInfeed(CompilerResources& res,
  auto fifo = graph.addHostToDeviceFIFO(
  GetInfeedCopyHandle(infeed->name(), tuple_index),
  tensor_to_update.elementType(), tensor_to_update.numElements());
  - seq.add(poplar::program::Copy(fifo, tensor_to_update, false));
  + seq.add(poplar::program::Copy(fifo, tensor_to_update,
  + res.always_rearrange_copies_on_host));
  } else if (UseSyntheticData() && UseSyntheticDataInitializer()) {
  // Initialize the tensor with a synthetic initalizer.
  auto& initializer = DataInitializer::GetSyntheticDataInitializer();
  @@ -217,7 +218,8 @@ StatusOr<poplar::program::Program> CreateOutfeed(CompilerResources& res,
  graph.addDeviceToHostFIFO(GetOutfeedCopyHandle(inst->name(), i),
  in.elementType(), in.numElements());
  - seq.add(poplar::program::Copy(in, fifo, false));
  + seq.add(
  + poplar::program::Copy(in, fifo, res.always_rearrange_copies_on_host));
  } else {
  // Batch multiple writes, and then write as a block.
  @@ -280,7 +282,8 @@ StatusOr<poplar::program::Program> CreateOutfeed(CompilerResources& res,
  auto fifo = graph.addDeviceToHostFIFO(
  GetOutfeedCopyHandle(outfeed->name(), i), batched.elementType(),
  batched.numElements());
  - true_body.add(poplar::program::Copy(batched, fifo, false));
  + true_body.add(poplar::program::Copy(batched, fifo,
  + res.always_rearrange_copies_on_host));
  // The NOP body.
  poplar::program::Sequence false_body;
  