Home | History | Annotate | Download | only in InstCombine

Lines Matching refs:ZExt

163     C = ConstantExpr::getIntegerCast(C, Ty, isSigned /*Sext or ZExt*/);
192 case Instruction::ZExt:
201 // This also handles the case of zext(trunc(x)) -> zext(x).
408 case Instruction::ZExt:
472 // Transform trunc(lshr (zext A), Cst) to eliminate one type conversion.
508 /// transformZExtICmp - Transform (zext icmp) to bitwise / integer operations
512 // If we are just checking for a icmp eq of a single bit and zext'ing it
518 // zext (x <s 0) to i32 --> x>>u31 true if signbit set.
519 // zext (x >s -1) to i32 --> (x>>u31)^1 true if signbit clear.
529 In = Builder->CreateIntCast(In, CI.getType(), false/*ZExt*/);
539 // zext (X == 0) to i32 --> X^1 iff X has only the low bit set.
540 // zext (X == 0) to i32 --> (X>>1)^1 iff X has only the 2nd bit set.
541 // zext (X == 1) to i32 --> X iff X has only the low bit set.
542 // zext (X == 2) to i32 --> X>>1 iff X has only the 2nd bit set.
543 // zext (X != 0) to i32 --> X iff X has only the low bit set.
544 // zext (X != 0) to i32 --> X>>1 iff X has only the 2nd bit set.
545 // zext (X != 1) to i32 --> X^1 iff X has only the low bit set.
546 // zext (X != 2) to i32 --> (X>>1)^1 iff X has only the 2nd bit set.
585 return CastInst::CreateIntegerCast(In, CI.getType(), false/*ZExt*/);
643 /// %E = zext i32 %C to i64
670 case Instruction::ZExt: // zext(zext(x)) -> zext(x).
671 case Instruction::SExt: // zext(sext(x)) -> sext(x).
672 case Instruction::Trunc: // zext(trunc(x)) -> trunc(x) or zext(x)
759 // eliminated before we try to optimize this zext.
806 // If this is a TRUNC followed by a ZEXT then we are dealing with integral
819 // SrcSize < DstSize: zext(a & mask)
848 // zext (or icmp, icmp) --> or (zext icmp), (zext icmp) if at least one
849 // of the (zext icmp) will be transformed.
861 // zext(trunc(t) & C) -> (t & zext(C)).
872 // zext((trunc(t) & C) ^ C) -> ((t & zext(C)) ^ zext(C)).
887 // zext (xor i1 X, true) to i32 --> xor (zext i1 X to i32), 1
1022 case Instruction::ZExt: // sext(zext(x)) -> zext(x)
1339 // trunc or zext to the intptr_t type, then inttoptr of it. This allows the
1407 // do a ptrtoint to intptr_t then do a trunc or zext. This allows the cast
1554 case Instruction::ZExt:
1587 /// %tmp38 = zext
1589 /// %tmp32 = zext i32 %tmp31 to i64
1745 // is a trunc or zext of a bitcast from vector. If so, we can replace all