1typedef unsigned int uint; 2typedef _Bool bool; 3 4static uint ini(uint a) { return !a; } 5static bool bni(uint a) { return !a; } 6static uint ioii(uint a, uint b) { return a || b; } 7static uint iaii(uint a, uint b) { return a && b; } 8static bool boii(uint a, uint b) { return a || b; } 9static bool baii(uint a, uint b) { return a && b; } 10static uint ioiii(uint a, uint b, uint c) { return a || b || c; } 11static uint iaiii(uint a, uint b, uint c) { return a && b && c; } 12static bool boiii(uint a, uint b, uint c) { return a || b || c; } 13static bool baiii(uint a, uint b, uint c) { return a && b && c; } 14 15static uint inb(bool a) { return !a; } 16static bool bnb(bool a) { return !a; } 17static uint iobb(bool a, bool b) { return a || b; } 18static uint iabb(bool a, bool b) { return a && b; } 19static bool bobb(bool a, bool b) { return a || b; } 20static bool babb(bool a, bool b) { return a && b; } 21static uint iobbb(bool a, bool b, bool c) { return a || b || c; } 22static uint iabbb(bool a, bool b, bool c) { return a && b && c; } 23static bool bobbb(bool a, bool b, bool c) { return a || b || c; } 24static bool babbb(bool a, bool b, bool c) { return a && b && c; } 25 26/* 27 * check-name: bool-simplify2 28 * check-command: test-linearize $file 29 * 30 * check-output-pattern(20): setne\\. 31 * check-output-pattern(4): seteq\\. 32 * check-output-pattern(8): zext\\. 33 * check-output-pattern(12): and 34 * check-output-pattern(12): or 35 * check-output-end 36 * 37 * check-output-start 38ini: 39.L0: 40 <entry-point> 41 seteq.32 %r2 <- %arg1, $0 42 ret.32 %r2 43 44 45bni: 46.L2: 47 <entry-point> 48 seteq.1 %r6 <- %arg1, $0 49 ret.1 %r6 50 51 52ioii: 53.L4: 54 <entry-point> 55 setne.1 %r9 <- %arg1, $0 56 setne.1 %r11 <- %arg2, $0 57 or.1 %r12 <- %r9, %r11 58 zext.32 %r13 <- (1) %r12 59 ret.32 %r13 60 61 62iaii: 63.L6: 64 <entry-point> 65 setne.1 %r16 <- %arg1, $0 66 setne.1 %r18 <- %arg2, $0 67 and.1 %r19 <- %r16, %r18 68 zext.32 %r20 <- (1) %r19 69 ret.32 %r20 70 71 72boii: 73.L8: 74 <entry-point> 75 setne.1 %r23 <- %arg1, $0 76 setne.1 %r25 <- %arg2, $0 77 or.1 %r26 <- %r23, %r25 78 ret.1 %r26 79 80 81baii: 82.L10: 83 <entry-point> 84 setne.1 %r31 <- %arg1, $0 85 setne.1 %r33 <- %arg2, $0 86 and.1 %r34 <- %r31, %r33 87 ret.1 %r34 88 89 90ioiii: 91.L12: 92 <entry-point> 93 setne.1 %r39 <- %arg1, $0 94 setne.1 %r41 <- %arg2, $0 95 or.1 %r42 <- %r39, %r41 96 setne.1 %r46 <- %arg3, $0 97 or.1 %r47 <- %r42, %r46 98 zext.32 %r48 <- (1) %r47 99 ret.32 %r48 100 101 102iaiii: 103.L14: 104 <entry-point> 105 setne.1 %r51 <- %arg1, $0 106 setne.1 %r53 <- %arg2, $0 107 and.1 %r54 <- %r51, %r53 108 setne.1 %r58 <- %arg3, $0 109 and.1 %r59 <- %r54, %r58 110 zext.32 %r60 <- (1) %r59 111 ret.32 %r60 112 113 114boiii: 115.L16: 116 <entry-point> 117 setne.1 %r63 <- %arg1, $0 118 setne.1 %r65 <- %arg2, $0 119 or.1 %r66 <- %r63, %r65 120 setne.1 %r70 <- %arg3, $0 121 or.1 %r71 <- %r66, %r70 122 ret.1 %r71 123 124 125baiii: 126.L18: 127 <entry-point> 128 setne.1 %r76 <- %arg1, $0 129 setne.1 %r78 <- %arg2, $0 130 and.1 %r79 <- %r76, %r78 131 setne.1 %r83 <- %arg3, $0 132 and.1 %r84 <- %r79, %r83 133 ret.1 %r84 134 135 136inb: 137.L20: 138 <entry-point> 139 seteq.32 %r89 <- %arg1, $0 140 ret.32 %r89 141 142 143bnb: 144.L22: 145 <entry-point> 146 seteq.1 %r93 <- %arg1, $0 147 ret.1 %r93 148 149 150iobb: 151.L24: 152 <entry-point> 153 or.1 %r97 <- %arg1, %arg2 154 zext.32 %r98 <- (1) %r97 155 ret.32 %r98 156 157 158iabb: 159.L26: 160 <entry-point> 161 and.1 %r102 <- %arg1, %arg2 162 zext.32 %r103 <- (1) %r102 163 ret.32 %r103 164 165 166bobb: 167.L28: 168 <entry-point> 169 or.1 %r107 <- %arg1, %arg2 170 ret.1 %r107 171 172 173babb: 174.L30: 175 <entry-point> 176 and.1 %r113 <- %arg1, %arg2 177 ret.1 %r113 178 179 180iobbb: 181.L32: 182 <entry-point> 183 or.1 %r119 <- %arg1, %arg2 184 or.1 %r123 <- %r119, %arg3 185 zext.32 %r124 <- (1) %r123 186 ret.32 %r124 187 188 189iabbb: 190.L34: 191 <entry-point> 192 and.1 %r128 <- %arg1, %arg2 193 and.1 %r132 <- %r128, %arg3 194 zext.32 %r133 <- (1) %r132 195 ret.32 %r133 196 197 198bobbb: 199.L36: 200 <entry-point> 201 or.1 %r137 <- %arg1, %arg2 202 or.1 %r141 <- %r137, %arg3 203 ret.1 %r141 204 205 206babbb: 207.L38: 208 <entry-point> 209 and.1 %r147 <- %arg1, %arg2 210 and.1 %r151 <- %r147, %arg3 211 ret.1 %r151 212 213 214 * check-output-end 215 */ 216