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