1; Instcombine was missing a test that caused it to make illegal transformations
2; sometimes.  In this case, it transforms the sub into an add:
3; RUN: opt < %s -instcombine -S | FileCheck %s
4; CHECK: sub
5
6define i32 @test(i32 %i, i32 %j) {
7        %A = mul i32 %i, %j
8        %B = sub i32 2, %A
9        ret i32 %B
10}
11
12