; NOTE: Assertions have been autogenerated by utils/update_test_checks.py ; RUN: opt < %s -instcombine -inline -S | FileCheck %s ; PR3142 define i32 @a(i32 %X) { ; CHECK-LABEL: @a( ; CHECK-NEXT: [[T0:%.*]] = sub i32 0, [[X:%.*]] ; CHECK-NEXT: [[T1:%.*]] = sdiv i32 [[T0]], -3 ; CHECK-NEXT: ret i32 [[T1]] ; %t0 = sub i32 0, %X %t1 = sdiv i32 %t0, -3 ret i32 %t1 } define i32 @b(i32 %X) { ; CHECK-LABEL: @b( ; CHECK-NEXT: ret i32 715827882 ; %t0 = call i32 @a(i32 -2147483648) ret i32 %t0 } define i32 @c(i32 %X) { ; CHECK-LABEL: @c( ; CHECK-NEXT: ret i32 715827882 ; %t0 = sub i32 0, -2147483648 %t1 = sdiv i32 %t0, -3 ret i32 %t1 }