   @inlinable
   @differentiable(where Scalar: TensorFlowFloatingPoint)
   public static func + (lhs: Tensor, rhs: Tensor) -> Tensor {
-    _Raw.addV2(lhs, rhs)
+    if lhs._isScalarZero {
+      return rhs
+    } else if rhs._isScalarZero {
+      return lhs
+    }
+    return _Raw.addV2(lhs, rhs)
   }
 
   /// Subtracts one tensor from another and produces their difference.

      if _DeviceThreadLocalState.local.isReducedPrecision {
        zero = zero.toReducedPrecision
      }
      return zero
    }
  #else

  /// - Note: `handle` is public to allow user defined ops, but should not normally be used.
  public let handle: TensorHandle<Scalar>

  /// An internal marker to identify scalar zero tensors, for use in optimizations.
  @usableFromInline
  internal var _isScalarZero = false

  /// An internal workaround for SR-13263: debug info generation crash.
  @usableFromInline
  class SR13263Workaround {}

  /// An internal workaround for SR-13263: debug info generation crash.
  internal var _sr13263Workaround: SR13263Workaround?
  
  @inlinable
  public init(handle: TensorHandle<Scalar>) {
    self.handle = handle
