Lines Matching defs:ushr

46   bool ReplaceRotateWithRor(HBinaryOperation* op, HUShr* ushr, HShl* shl);
48 bool TryReplaceWithRotateConstantPattern(HBinaryOperation* op, HUShr* ushr, HShl* shl);
49 bool TryReplaceWithRotateRegisterNegPattern(HBinaryOperation* op, HUShr* ushr, HShl* shl);
50 bool TryReplaceWithRotateRegisterSubPattern(HBinaryOperation* op, HUShr* ushr, HShl* shl);
263 HUShr* ushr,
266 HRor* ror = new (GetGraph()->GetArena()) HRor(ushr->GetType(), ushr->GetLeft(), ushr->GetRight());
268 if (!ushr->HasUses()) {
269 ushr->GetBlock()->RemoveInstruction(ushr);
271 if (!ushr->GetRight()->HasUses()) {
272 ushr->GetRight()->GetBlock()->RemoveInstruction(ushr->GetRight());
290 HUShr* ushr = left->IsUShr() ? left->AsUShr() : right->AsUShr();
292 DCHECK(Primitive::IsIntOrLongType(ushr->GetType()));
293 if (ushr->GetType() == shl->GetType() &&
294 ushr->GetLeft() == shl->GetLeft()) {
295 if (ushr->GetRight()->IsConstant() && shl->GetRight()->IsConstant()) {
298 return TryReplaceWithRotateConstantPattern(op, ushr, shl);
299 } else if (ushr->GetRight()->IsSub() || shl->GetRight()->IsSub()) {
301 return TryReplaceWithRotateRegisterSubPattern(op, ushr, shl);
302 } else if (ushr->GetRight()->IsNeg() || shl->GetRight()->IsNeg()) {
304 return TryReplaceWithRotateRegisterNegPattern(op, ushr, shl);
322 HUShr* ushr,
325 size_t reg_bits = Primitive::ComponentSize(ushr->GetType()) * kBitsPerByte;
326 size_t rdist = Int64FromConstant(ushr->GetRight()->AsConstant());
329 ReplaceRotateWithRor(op, ushr, shl);
352 HUShr* ushr,
355 DCHECK(ushr->GetRight()->IsNeg() || shl->GetRight()->IsNeg());
357 HNeg* neg = neg_is_left ? shl->GetRight()->AsNeg() : ushr->GetRight()->AsNeg();
359 if (neg->InputAt(0) == (neg_is_left ? ushr->GetRight() : shl->GetRight())) {
360 ReplaceRotateWithRor(op, ushr, shl);
382 HUShr* ushr,
385 DCHECK(ushr->GetRight()->IsSub() || shl->GetRight()->IsSub());
386 size_t reg_bits = Primitive::ComponentSize(ushr->GetType()) * kBitsPerByte;
388 HInstruction* ushr_shift = ushr->GetRight();
391 return ReplaceRotateWithRor(op, ushr, shl);
979 HUShr* ushr = new (GetGraph()->GetArena()) HUShr(instruction->GetType(),
983 instruction->GetBlock()->ReplaceAndRemoveInstructionWith(instruction, ushr);