New GitHub issue #93279 from oda-gitso:<br>

<hr>

<pre>
Addition/subtraction (see `x_add`, `x_sub`, `_PyLong_Add` in `Objects/longobject.c`) between two Python integers such that at least one of the operands is "large" (i.e. not considered a  "medium"-valued integer) *may* involve two swap operations (of variables), amounting to six statements, that are not needed. It appears that these swap operations are intended to reduce the amount of code. By encapsulating some of the code inside a function-like macro (with `do { ... } while (0)`), these six statements need not ever be executed and the amount of code can be kept to a minimum.

The code, in it's current state, means that 
```Python3
>>> (1 << 30) + 5
```
does not involve the two swap operations whereas the "equivalent" 

```Python3
>>> 5 + (1 << 30) 
```
does. (For some systems, the shift will be `15` as opposed to `30`.)

In practice, the actual differences are not significant. However, IMO, if we never need to execute these six statements, we should not.
</pre>

<hr>

<a href="https://github.com/python/cpython/issues/93279">View on GitHub</a>
<p>Labels: type-feature</p>
<p>Assignee: </p>