I'm currently reading the specification of Salsa20 ([link](https://cr.yp.to/snuffle/salsafamily-20071225.pdf)). DJB on whether he chooses
"xor-a-rotated-sum" instead of "add-a-rotated-xor" states the following :

> 
> **Should there be modifications other than xor-a-rotated-sum?**
> There are many plausible ways to modify each word in a column using other
> words in the same column. I settled on “xor a rotated sum” as bouncing back
> and forth between incompatible structures on the critical path. I chose “xor a
> rotated sum” over “add a rotated xor” for simple performance reasons: the x86
> architecture has a three-operand addition (LEA) but not a three-operand xor.
> 
> 
> 

First of all, I cannot understand why three-operand operations are mentioned since every operation whether it is xor or add is done in for a pair of words. Also, at first, from my little knowledge in embedded systems and a bit of research I did, a lot of "tricky hacks" can be done with the `LEA` instruction that is mentioned, see for example [1](https://stackoverflow.com/q/1658294/6126446),[2](https://stackoverflow.com/questions/6323027/lea-or-add-instruction),[3](https://godbolt.org/z/c5YGfEG4a). But as seen in the last reference, three operand addition cannot be done in a single x86 instruction, although as mentioned in the second reference they can be parallelized. However, I still doubt 3 arguments addition will be faster than three arguments xor.

So the questions are, why we are bothered with 3 argument operations and is there evidence that 3 arguments addition is faster than 3 arguments xor?