Home | History | Annotate | Download | only in InstCombine

Lines Matching defs:Zext

1308   Value *ZExt = Builder.CreateZExt(Add, OrigAdd->getType());
1312 IC.replaceInstUsesWith(*OrigAdd, ZExt);
1442 APInt NewRHS = C.zext(SrcBits);
1625 Constant *ZextC1 = ConstantInt::get(WideType, C1.zext(WideScalarBits));
1626 Constant *ZextC2 = ConstantInt::get(WideType, C2->zext(WideScalarBits));
3537 // Transform (zext A) == (B & (1<<X)-1) --> A == (trunc B)
3538 // and (B & (1<<X)-1) == (zext A) --> A == (trunc B)
3597 APInt CmpV = Cst1->getValue().zext(ASize);
3657 if (LHSCI->getOpcode() != Instruction::ZExt &&
3671 // and the other is a zext), then we can't handle this.
3843 /// I = cmp u (mul(zext A, zext B), V
3869 assert(LHS->getOpcode() == Instruction::ZExt);
3870 assert(RHS->getOpcode() == Instruction::ZExt);
3924 // mulval = mul(zext A, zext B)
3925 // cmp eq/neq mulval, zext trunc mulval
3926 if (ZExtInst *Zext = dyn_cast<ZExtInst>(OtherVal))
3927 if (Zext->hasOneUse()) {
3928 Value *ZextArg = Zext->getOperand(0);
3935 // mulval = mul(zext A, zext B)
3953 // mulval = mul(zext A, zext B)
3957 MaxVal = MaxVal.zext(CI->getBitWidth());
3965 // mulval = mul(zext A, zext B)
3976 // mulval = mul(zext A, zext B)
3980 MaxVal = MaxVal.zext(CI->getBitWidth());
3988 // mulval = mul(zext A, zext B)
4004 // Replace: mul(zext A, zext B) --> mul.with.overflow(A, B)
4031 // Replace (mul & mask) --> zext (mul.with.overflow & short_mask)
4035 Instruction *Zext =
4037 IC.Worklist.Add(Zext);
4038 IC.replaceInstUsesWith(*BO, Zext);
4837 // (zext a) * (zext b) --> llvm.umul.with.overflow.