Choosing a single canonical form allows LLVM to reduce complexity in other areas. Otherwise, other parts of LLVM would have to deal with two cases: normal `add` and sub with an operand which is always negative. http://reviews.llvm.org/D5007