Lines Matching defs:Zext
1564 APInt NewRHS = RHS->getValue().zext(SrcBits);
1662 // If the LHS is an AND of a zext, and we have an equality compare, we can
2406 if (LHSCI->getOpcode() != Instruction::ZExt &&
2420 // and the other is a zext), then we can't handle this.
2564 Value *ZExt = Builder->CreateZExt(Add, OrigAdd->getType());
2568 IC.replaceInstUsesWith(*OrigAdd, ZExt);
2675 /// I = cmp u (mul(zext A, zext B), V
2701 assert(LHS->getOpcode() == Instruction::ZExt);
2702 assert(RHS->getOpcode() == Instruction::ZExt);
2751 // mulval = mul(zext A, zext B)
2752 // cmp eq/neq mulval, zext trunc mulval
2753 if (ZExtInst *Zext = dyn_cast<ZExtInst>(OtherVal))
2754 if (Zext->hasOneUse()) {
2755 Value *ZextArg = Zext->getOperand(0);
2762 // mulval = mul(zext A, zext B)
2780 // mulval = mul(zext A, zext B)
2784 MaxVal = MaxVal.zext(CI->getBitWidth());
2792 // mulval = mul(zext A, zext B)
2803 // mulval = mul(zext A, zext B)
2807 MaxVal = MaxVal.zext(CI->getBitWidth());
2815 // mulval = mul(zext A, zext B)
2831 // Replace: mul(zext A, zext B) --> mul.with.overflow(A, B)
2857 // Replace (mul & mask) --> zext (mul.with.overflow & short_mask)
2861 Instruction *Zext =
2863 IC.Worklist.Add(Zext);
2864 IC.replaceInstUsesWith(*BO, Zext);
4121 // (zext a) * (zext b) --> llvm.umul.with.overflow.
4192 // Transform (zext A) == (B & (1<<X)-1) --> A == (trunc B)
4193 // and (B & (1<<X)-1) == (zext A) --> A == (trunc B)
4258 APInt CmpV = Cst1->getValue().zext(ASize);