41 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_test_checks.py UTC_ARGS: --version 52; RUN: opt < %s -passes=instcombine -S | FileCheck %s3 4define i1 @foo1(i1 %a, i1 %b) {5; CHECK-LABEL: define i1 @foo1(6; CHECK-SAME: i1 [[A:%.*]], i1 [[B:%.*]]) {7; CHECK-NEXT: [[R:%.*]] = xor i1 [[B]], [[A]]8; CHECK-NEXT: ret i1 [[R]]9;10 %r = sub i1 %a, %b11 ret i1 %r12}13 14define i1 @foo2(i1 %a, i1 %b) {15; CHECK-LABEL: define i1 @foo2(16; CHECK-SAME: i1 [[A:%.*]], i1 [[B:%.*]]) {17; CHECK-NEXT: [[R:%.*]] = and i1 [[A]], [[B]]18; CHECK-NEXT: ret i1 [[R]]19;20 %r = mul i1 %a, %b21 ret i1 %r22}23 24define i1 @foo3(i1 %a, i1 %b) {25; CHECK-LABEL: define i1 @foo3(26; CHECK-SAME: i1 [[A:%.*]], i1 [[B:%.*]]) {27; CHECK-NEXT: ret i1 [[A]]28;29 %r = udiv i1 %a, %b30 ret i1 %r31}32 33define i1 @foo4(i1 %a, i1 %b) {34; CHECK-LABEL: define i1 @foo4(35; CHECK-SAME: i1 [[A:%.*]], i1 [[B:%.*]]) {36; CHECK-NEXT: ret i1 [[A]]37;38 %r = sdiv i1 %a, %b39 ret i1 %r40}41