1; NOTE: Assertions have been autogenerated by utils/update_test_checks.py UTC_ARGS: --version 5 2; RUN: opt < %s -passes=instcombine -S | FileCheck %s 3 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, %b 11 ret i1 %r 12} 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, %b 21 ret i1 %r 22} 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, %b 30 ret i1 %r 31} 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, %b 39 ret i1 %r 40} 41