xref: /llvm-project/llvm/test/Transforms/InstCombine/2008-05-31-Bools.ll (revision 0c97ac0a46d0c29fbe5168adcd32e1f25336096d)
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