Lines Matching full:and
12 %and = and i32 %shr, 1
13 ret i32 %and
16 ; ...and again with i64.
22 %and = and i64 %shr, 1
23 ret i64 %and
32 %and = and i32 %shr, 12
33 ret i32 %and
36 ; ...and again with i64.
42 %and = and i64 %shr, 12
43 ret i64 %and
53 %and = and i32 %shr, -8
54 ret i32 %and
57 ; ...and again with i64.
63 %and = and i64 %shr, -8
64 ret i64 %and
68 ; and mask.
75 %and = and i32 %shr, -7
76 ret i32 %and
79 ; ...and again with i64.
86 %and = and i64 %shr, -7
87 ret i64 %and
97 %and = and i32 %shr, 255
98 ret i32 %and
101 ; ...and again with i64.
107 %and = and i64 %shr, 255
108 ret i64 %and
112 ; and mask.
119 %and = and i32 %shr, -241
120 ret i32 %and
123 ; ...and again with i64.
130 %and = and i64 %shr, -241
131 ret i64 %and
144 %and = and i32 %rotl, 248
145 ret i32 %and
148 ; ...and again with i64.
156 %and = and i64 %rotl, 248
157 ret i64 %and
168 %and = and i32 %rotl, 114688
169 ret i32 %and
172 ; ...and again with i64.
180 %and = and i64 %rotl, 114688
181 ret i64 %and
185 ; This needs a separate shift and mask.
194 %and = and i32 %rotl, 126
195 ret i32 %and
198 ; ...and for i64, where RISBG should do the rotate too.
206 %and = and i64 %rotl, 126
207 ret i64 %and
211 ; This needs a separate shift and mask.
218 %and = and i32 %shr, 30
219 ret i32 %and
222 ; ...and again with i64. In this case RISBG is the best way of doing the AND.
229 %and = and i64 %shr, 30
230 ret i64 %and
242 %and = and i32 %shr, 14
243 ret i32 %and
246 ; ...and again with i64.
253 %and = and i64 %shr, 14
254 ret i64 %and
257 ; Check that we use RISBG for shifted values even if the AND is a
264 %and = and i64 %shr, 255
265 ret i64 %and
268 ; Test a case where the AND comes before a rotate. This needs a separate
269 ; mask and rotate.
275 %and = and i32 %foo, 254
276 %parta = lshr i32 %and, 3
277 %partb = shl i32 %and, 29
282 ; ...and again with i64, where a single RISBG is enough.
287 %and = and i64 %foo, 14
288 %parta = shl i64 %and, 3
289 %partb = lshr i64 %and, 61
294 ; Test a wrap-around case in which the AND comes before a rotate.
295 ; This again needs a separate mask and rotate.
300 %and = and i32 %foo, -49
301 %parta = shl i32 %and, 5
302 %partb = lshr i32 %and, 27
307 ; ...and again with i64, where a single RISBG is OK.
312 %and = and i64 %foo, -49
313 %parta = shl i64 %and, 5
314 %partb = lshr i64 %and, 59
319 ; Test a case where the AND comes before a shift left.
324 %and = and i32 %foo, 32766
325 %shl = shl i32 %and, 17
329 ; ...and again with i64.
334 %and = and i64 %foo, 32766
335 %shl = shl i64 %and, 49
344 %and = and i32 %foo, 32766
345 %shl = shl i32 %and, 18
349 ; ...and again with i64.
354 %and = and i64 %foo, 32766
355 %shl = shl i64 %and, 50
359 ; Test a wrap-around case in which the shift left comes after the AND.
365 %and = and i32 %foo, -7
366 %shl = shl i32 %and, 10
370 ; ...and again with i64.
375 %and = and i64 %foo, -7
376 %shl = shl i64 %and, 10
380 ; Test a case where the AND comes before a shift right.
385 %and = and i32 %foo, 65535
386 %shl = lshr i32 %and, 9
390 ; ...and again with i64.
395 %and = and i64 %foo, 65535
396 %shl = lshr i64 %and, 9
400 ; Test a wrap-around case where the AND comes before a shift right.
406 %and = and i32 %foo, -25
407 %shl = lshr i32 %and, 1
411 ; ...and again with i64.
416 %and = and i64 %foo, -25
417 %shl = lshr i64 %and, 1
421 ; Test a combination involving a large ASHR and a shift left. We can't
442 %and = and i64 %shl, 2147483647
443 ret i64 %and
446 ; ...and again with the next highest shift value, where one sign bit is kept.
455 %and = and i64 %shl, 2147483647
456 ret i64 %and
484 ; Check that we get the case where a 64-bit shift is used by a 32-bit and.
491 %conv = and i32 %shr3.tr, -4
495 ; Check that we don't get the case where the 32-bit and mask is not contiguous
501 %and = and i32 %conv, 10
502 ret i32 %and