blob: cf3227258d27311a8e36db59e7fd51d0fc49cd0a [file] [log] [blame]
typedef unsigned int uint;
typedef _Bool bool;
static uint ini(uint a) { return !a; }
static bool bni(uint a) { return !a; }
static uint ioii(uint a, uint b) { return a || b; }
static uint iaii(uint a, uint b) { return a && b; }
static bool boii(uint a, uint b) { return a || b; }
static bool baii(uint a, uint b) { return a && b; }
static uint ioiii(uint a, uint b, uint c) { return a || b || c; }
static uint iaiii(uint a, uint b, uint c) { return a && b && c; }
static bool boiii(uint a, uint b, uint c) { return a || b || c; }
static bool baiii(uint a, uint b, uint c) { return a && b && c; }
static uint inb(bool a) { return !a; }
static bool bnb(bool a) { return !a; }
static uint iobb(bool a, bool b) { return a || b; }
static uint iabb(bool a, bool b) { return a && b; }
static bool bobb(bool a, bool b) { return a || b; }
static bool babb(bool a, bool b) { return a && b; }
static uint iobbb(bool a, bool b, bool c) { return a || b || c; }
static uint iabbb(bool a, bool b, bool c) { return a && b && c; }
static bool bobbb(bool a, bool b, bool c) { return a || b || c; }
static bool babbb(bool a, bool b, bool c) { return a && b && c; }
/*
* check-name: bool-simplify2
* check-command: test-linearize $file
*
* check-output-pattern(20): setne\\.
* check-output-pattern(3): seteq\\.
* check-output-pattern(8): zext\\.
* check-output-pattern(12): and
* check-output-pattern(12): or
* check-output-pattern(1): not
* check-output-end
*
* check-output-start
ini:
.L0:
<entry-point>
seteq.32 %r2 <- %arg1, $0
ret.32 %r2
bni:
.L2:
<entry-point>
seteq.1 %r6 <- %arg1, $0
ret.1 %r6
ioii:
.L4:
<entry-point>
setne.1 %r9 <- %arg1, $0
setne.1 %r11 <- %arg2, $0
or.1 %r12 <- %r9, %r11
zext.32 %r13 <- (1) %r12
ret.32 %r13
iaii:
.L6:
<entry-point>
setne.1 %r16 <- %arg1, $0
setne.1 %r18 <- %arg2, $0
and.1 %r19 <- %r16, %r18
zext.32 %r20 <- (1) %r19
ret.32 %r20
boii:
.L8:
<entry-point>
setne.1 %r23 <- %arg1, $0
setne.1 %r25 <- %arg2, $0
or.1 %r26 <- %r23, %r25
ret.1 %r26
baii:
.L10:
<entry-point>
setne.1 %r31 <- %arg1, $0
setne.1 %r33 <- %arg2, $0
and.1 %r34 <- %r31, %r33
ret.1 %r34
ioiii:
.L12:
<entry-point>
setne.1 %r39 <- %arg1, $0
setne.1 %r41 <- %arg2, $0
or.1 %r42 <- %r39, %r41
setne.1 %r46 <- %arg3, $0
or.1 %r47 <- %r42, %r46
zext.32 %r48 <- (1) %r47
ret.32 %r48
iaiii:
.L14:
<entry-point>
setne.1 %r51 <- %arg1, $0
setne.1 %r53 <- %arg2, $0
and.1 %r54 <- %r51, %r53
setne.1 %r58 <- %arg3, $0
and.1 %r59 <- %r54, %r58
zext.32 %r60 <- (1) %r59
ret.32 %r60
boiii:
.L16:
<entry-point>
setne.1 %r63 <- %arg1, $0
setne.1 %r65 <- %arg2, $0
or.1 %r66 <- %r63, %r65
setne.1 %r70 <- %arg3, $0
or.1 %r71 <- %r66, %r70
ret.1 %r71
baiii:
.L18:
<entry-point>
setne.1 %r76 <- %arg1, $0
setne.1 %r78 <- %arg2, $0
and.1 %r79 <- %r76, %r78
setne.1 %r83 <- %arg3, $0
and.1 %r84 <- %r79, %r83
ret.1 %r84
inb:
.L20:
<entry-point>
seteq.32 %r89 <- %arg1, $0
ret.32 %r89
bnb:
.L22:
<entry-point>
not.1 %r93 <- %arg1
ret.1 %r93
iobb:
.L24:
<entry-point>
or.1 %r97 <- %arg1, %arg2
zext.32 %r98 <- (1) %r97
ret.32 %r98
iabb:
.L26:
<entry-point>
and.1 %r102 <- %arg1, %arg2
zext.32 %r103 <- (1) %r102
ret.32 %r103
bobb:
.L28:
<entry-point>
or.1 %r107 <- %arg1, %arg2
ret.1 %r107
babb:
.L30:
<entry-point>
and.1 %r113 <- %arg1, %arg2
ret.1 %r113
iobbb:
.L32:
<entry-point>
or.1 %r119 <- %arg1, %arg2
or.1 %r123 <- %r119, %arg3
zext.32 %r124 <- (1) %r123
ret.32 %r124
iabbb:
.L34:
<entry-point>
and.1 %r128 <- %arg1, %arg2
and.1 %r132 <- %r128, %arg3
zext.32 %r133 <- (1) %r132
ret.32 %r133
bobbb:
.L36:
<entry-point>
or.1 %r137 <- %arg1, %arg2
or.1 %r141 <- %r137, %arg3
ret.1 %r141
babbb:
.L38:
<entry-point>
and.1 %r147 <- %arg1, %arg2
and.1 %r151 <- %r147, %arg3
ret.1 %r151
* check-output-end
*/