Lines Matching refs:Zext
1068 APInt NewRHS = RHS->getValue().zext(SrcBits);
1166 // If the LHS is an AND of a zext, and we have an equality compare, we can
1817 if (LHSCI->getOpcode() != Instruction::ZExt &&
1831 // and the other is a zext), then we can't handle this.
1976 Value *ZExt = Builder->CreateZExt(Add, OrigAdd->getType());
1980 IC.ReplaceInstUsesWith(*OrigAdd, ZExt);
2019 /// I = cmp u (mul(zext A, zext B), V
2043 assert(LHS->getOpcode() == Instruction::ZExt);
2044 assert(RHS->getOpcode() == Instruction::ZExt);
2093 // mulval = mul(zext A, zext B)
2094 // cmp eq/neq mulval, zext trunc mulval
2095 if (ZExtInst *Zext = dyn_cast<ZExtInst>(OtherVal))
2096 if (Zext->hasOneUse()) {
2097 Value *ZextArg = Zext->getOperand(0);
2104 // mulval = mul(zext A, zext B)
2122 // mulval = mul(zext A, zext B)
2126 MaxVal = MaxVal.zext(CI->getBitWidth());
2134 // mulval = mul(zext A, zext B)
2145 // mulval = mul(zext A, zext B)
2149 MaxVal = MaxVal.zext(CI->getBitWidth());
2157 // mulval = mul(zext A, zext B)
2174 // Replace: mul(zext A, zext B) --> mul.with.overflow(A, B)
2200 // Replace (mul & mask) --> zext (mul.with.overflow & short_mask)
2204 Instruction *Zext =
2206 IC.Worklist.Add(Zext);
2207 IC.ReplaceInstUsesWith(*BO, Zext);
3145 // (zext a) * (zext b) --> llvm.umul.with.overflow.
3216 // Transform (zext A) == (B & (1<<X)-1) --> A == (trunc B)
3217 // and (B & (1<<X)-1) == (zext A) --> A == (trunc B)
3267 APInt CmpV = Cst1->getValue().zext(ASize);