33 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_test_checks.py2; RUN: opt < %s -passes=instcombine -S | FileCheck %s3 4define i32 @foo(i32 %a) {5; CHECK-LABEL: @foo(6; CHECK-NEXT: [[T15:%.*]] = sub i32 99, [[A:%.*]]7; CHECK-NEXT: [[SMAX:%.*]] = call i32 @llvm.smax.i32(i32 [[T15]], i32 0)8; CHECK-NEXT: [[T12:%.*]] = add i32 [[SMAX]], [[A]]9; CHECK-NEXT: [[T13:%.*]] = add i32 [[T12]], 110; CHECK-NEXT: ret i32 [[T13]]11;12 %t15 = sub i32 99, %a13 %t16 = icmp slt i32 %t15, 014 %smax = select i1 %t16, i32 0, i32 %t1515 %t12 = add i32 %smax, %a16 %t13 = add i32 %t12, 117 ret i32 %t1318}19 20define i32 @bar(i32 %a) {21; CHECK-LABEL: @bar(22; CHECK-NEXT: [[T15:%.*]] = sub i32 99, [[A:%.*]]23; CHECK-NEXT: [[SMAX:%.*]] = call i32 @llvm.smax.i32(i32 [[T15]], i32 0)24; CHECK-NEXT: [[T12:%.*]] = add i32 [[SMAX]], [[A]]25; CHECK-NEXT: ret i32 [[T12]]26;27 %t15 = sub i32 99, %a28 %t16 = icmp slt i32 %t15, 029 %smax = select i1 %t16, i32 0, i32 %t1530 %t12 = add i32 %smax, %a31 ret i32 %t1232}33