Lines Matching refs:i4

12 define i4 @xor_and_or_not_commute0(i4 %a, i4 %b) {
14 ; CHECK-NEXT: [[NOT:%.*]] = xor i4 [[A:%.*]], -1
15 ; CHECK-NEXT: ret i4 [[NOT]]
17 %and = and i4 %a, %b
18 %not = xor i4 %a, -1
19 %or = or i4 %not, %b
20 %r = xor i4 %and, %or
21 ret i4 %r
24 define <2 x i4> @xor_and_or_not_commute1(<2 x i4> %a, <2 x i4> %b) {
26 ; CHECK-NEXT: [[NOT:%.*]] = xor <2 x i4> [[A:%.*]], <i4 -1, i4 -1>
27 ; CHECK-NEXT: ret <2 x i4> [[NOT]]
29 %and = and <2 x i4> %a, %b
30 %not = xor <2 x i4> %a, <i4 -1, i4 -1>
31 %or = or <2 x i4> %not, %b
32 %r = xor <2 x i4> %or, %and
33 ret <2 x i4> %r
48 define <2 x i4> @xor_and_or_not_commute3(<2 x i4> %a, <2 x i4> %b) {
50 ; CHECK-NEXT: [[NOT:%.*]] = xor <2 x i4> [[A:%.*]], <i4 -1, i4 -1>
51 ; CHECK-NEXT: ret <2 x i4> [[NOT]]
53 %and = and <2 x i4> %b, %a
54 %not = xor <2 x i4> %a, <i4 -1, i4 -1>
55 %or = or <2 x i4> %not, %b
56 %r = xor <2 x i4> %or, %and
57 ret <2 x i4> %r
110 define i4 @xor_and_or_not_wrong_val1(i4 %a, i4 %b, i4 %c) {
112 ; CHECK-NEXT: [[AND:%.*]] = and i4 [[A:%.*]], [[C:%.*]]
113 ; CHECK-NEXT: [[NOT:%.*]] = xor i4 [[A]], -1
114 ; CHECK-NEXT: [[OR:%.*]] = or i4 [[NOT]], [[B:%.*]]
115 ; CHECK-NEXT: [[R:%.*]] = xor i4 [[AND]], [[OR]]
116 ; CHECK-NEXT: ret i4 [[R]]
118 %and = and i4 %a, %c
119 %not = xor i4 %a, -1
120 %or = or i4 %not, %b
121 %r = xor i4 %and, %or
122 ret i4 %r
127 define i4 @xor_and_or_not_wrong_val2(i4 %a, i4 %b, i4 %c) {
129 ; CHECK-NEXT: [[AND:%.*]] = and i4 [[C:%.*]], [[B:%.*]]
130 ; CHECK-NEXT: [[NOT:%.*]] = xor i4 [[A:%.*]], -1
131 ; CHECK-NEXT: [[OR:%.*]] = or i4 [[NOT]], [[B]]
132 ; CHECK-NEXT: [[R:%.*]] = xor i4 [[AND]], [[OR]]
133 ; CHECK-NEXT: ret i4 [[R]]
135 %and = and i4 %c, %b
136 %not = xor i4 %a, -1
137 %or = or i4 %not, %b
138 %r = xor i4 %and, %or
139 ret i4 %r
144 define <2 x i4> @xor_and_or_not_undef_elt(<2 x i4> %a, <2 x i4> %b) {
146 ; CHECK-NEXT: [[AND:%.*]] = and <2 x i4> [[B:%.*]], [[A:%.*]]
147 ; CHECK-NEXT: [[NOT:%.*]] = xor <2 x i4> [[A]], <i4 -1, i4 undef>
148 ; CHECK-NEXT: [[OR:%.*]] = or <2 x i4> [[NOT]], [[B]]
149 ; CHECK-NEXT: [[R:%.*]] = xor <2 x i4> [[OR]], [[AND]]
150 ; CHECK-NEXT: ret <2 x i4> [[R]]
152 %and = and <2 x i4> %b, %a
153 %not = xor <2 x i4> %a, <i4 -1, i4 undef>
154 %or = or <2 x i4> %not, %b
155 %r = xor <2 x i4> %or, %and
156 ret <2 x i4> %r
159 define i4 @xor_or_and_not_commute0(i4 %a, i4 %b) {
161 ; CHECK-NEXT: ret i4 [[A:%.*]]
163 %not = xor i4 %a, -1
164 %and = and i4 %not, %b
165 %or = or i4 %a, %b
166 %r = xor i4 %and, %or
167 ret i4 %r
170 define <2 x i4> @xor_or_and_not_commute1(<2 x i4> %a, <2 x i4> %b) {
172 ; CHECK-NEXT: ret <2 x i4> [[A:%.*]]
174 %not = xor <2 x i4> %a, <i4 -1, i4 -1>
175 %and = and <2 x i4> %not, %b
176 %or = or <2 x i4> %a, %b
177 %r = xor <2 x i4> %or, %and
178 ret <2 x i4> %r
192 define <2 x i4> @xor_or_and_not_commute3(<2 x i4> %a, <2 x i4> %b) {
194 ; CHECK-NEXT: ret <2 x i4> [[A:%.*]]
196 %not = xor <2 x i4> %a, <i4 -1, i4 -1>
197 %and = and <2 x i4> %b, %not
198 %or = or <2 x i4> %a, %b
199 %r = xor <2 x i4> %or, %and
200 ret <2 x i4> %r
249 define i4 @xor_or_and_not_wrong_val1(i4 %a, i4 %b, i4 %c) {
251 ; CHECK-NEXT: [[NOT:%.*]] = xor i4 [[A:%.*]], -1
252 ; CHECK-NEXT: [[AND:%.*]] = and i4 [[NOT]], [[C:%.*]]
253 ; CHECK-NEXT: [[OR:%.*]] = or i4 [[A]], [[B:%.*]]
254 ; CHECK-NEXT: [[R:%.*]] = xor i4 [[AND]], [[OR]]
255 ; CHECK-NEXT: ret i4 [[R]]
257 %not = xor i4 %a, -1
258 %and = and i4 %not, %c
259 %or = or i4 %a, %b
260 %r = xor i4 %and, %or
261 ret i4 %r
266 define i4 @xor_or_and_not_wrong_val2(i4 %a, i4 %b, i4 %c) {
268 ; CHECK-NEXT: [[AND:%.*]] = and i4 [[C:%.*]], [[B:%.*]]
269 ; CHECK-NEXT: [[OR:%.*]] = or i4 [[A:%.*]], [[B]]
270 ; CHECK-NEXT: [[R:%.*]] = xor i4 [[AND]], [[OR]]
271 ; CHECK-NEXT: ret i4 [[R]]
273 %not = xor i4 %a, -1
274 %and = and i4 %c, %b
275 %or = or i4 %a, %b
276 %r = xor i4 %and, %or
277 ret i4 %r
280 define <2 x i4> @xor_or_and_not_undef_elt(<2 x i4> %a, <2 x i4> %b) {
282 ; CHECK-NEXT: ret <2 x i4> [[A:%.*]]
284 %not = xor <2 x i4> %a, <i4 -1, i4 undef>
285 %and = and <2 x i4> %b, %not
286 %or = or <2 x i4> %a, %b
287 %r = xor <2 x i4> %or, %and
288 ret <2 x i4> %r