message: Build StKind::CopyOverlapping
  This replaces where it was previously being constructed in intrinsics, with direct construction
  of the Statement.
diff: @@ -837,10 +837,21 @@ fn is_fat_ptr<'tcx>(fx: &FunctionCx<'_, '_, 'tcx>, ty: Ty<'tcx>) -> bool {
  dst,
  count,
  }) => {
  - let dst = codegen_operand(fx, dst).load_scalar(fx);
  + let dst = codegen_operand(fx, dst);
  + let pointee = dst
  + .layout()
  + .pointee_info_at(fx, rustc_target::abi::Size::ZERO)
  + .expect("Expected pointer");
  + let dst = dst.load_scalar(fx);
  let src = codegen_operand(fx, src).load_scalar(fx);
  let count = codegen_operand(fx, count).load_scalar(fx);
  - fx.bcx.call_memcpy(fx.cx.module.target_config(), dst, src, count);
  + let elem_size: u64 = pointee.size.bytes();
  + let bytes = if elem_size != 1 {
  + fx.bcx.ins().imul_imm(count, elem_size as i64)
  + } else {
  + count
  + };
  + fx.bcx.call_memcpy(fx.cx.module.target_config(), dst, src, bytes);
  }
  }
  }
  