Home | History | Annotate | Download | only in InstCombine

Lines Matching refs:Byte

1277 /// the expression came from the corresponding "byte swapped" byte in some other
1279 /// we know that the expression deposits the low byte of %X into the high byte
1281 /// accepted, the high byte of ByteValues is set to X to indicate a correct
1289 /// byte of ByteValues is actually being set.
1292 /// byte is masked to zero by a user. For example, in (X & 255), X will be
1294 /// this function to working on up to 32-byte (256 bit) values. ByteMask is
1313 // Ensure the shift amount is defined and of a byte value.
1340 // Scan every byte of the and mask, seeing if the byte is either 0 or 255.
1342 APInt Byte(I->getType()->getPrimitiveSizeInBits(), 255);
1345 for (unsigned i = 0; i != NumBytes; ++i, Byte <<= 8) {
1346 // If this byte is masked out by a later operation, we don't care what
1351 // If the AndMask is all zeros for this byte, clear the bit.
1352 APInt MaskB = AndMask & Byte;
1358 // If the AndMask is not all ones for this byte, it's not a bytezap.
1359 if (MaskB != Byte)
1362 // Otherwise, this byte is kept.
1371 // the input value to the bswap. Some observations: 1) if more than one byte
1378 // 2) The input and ultimate destinations must line up: if byte 3 of an i32
1379 // is demanded, it needs to go into byte 0 of the result. This means that the
1380 // byte needs to be shifted until it lands in the right byte bucket. The
1381 // shift amount depends on the position: if the byte is coming from the high
1382 // part of the value (e.g. byte 3) then it must be shifted right. If from the
1393 // If the destination byte value is already defined, the values are or'd
1406 // ByteMask only allows up to 32-byte values.
1410 /// ByteValues - For each byte of the result, we keep track of which value
1411 /// defines each byte.
1422 if (V == 0) return 0; // Didn't find a byte? Must be zero.