Lines Matching refs:op
54 bool ReplaceRotateWithRor(HBinaryOperation* op, HUShr* ushr, HShl* shl);
56 bool TryReplaceWithRotateConstantPattern(HBinaryOperation* op, HUShr* ushr, HShl* shl);
57 bool TryReplaceWithRotateRegisterNegPattern(HBinaryOperation* op, HUShr* ushr, HShl* shl);
58 bool TryReplaceWithRotateRegisterSubPattern(HBinaryOperation* op, HUShr* ushr, HShl* shl);
64 bool TryDeMorganNegationFactoring(HBinaryOperation* op);
213 bool InstructionSimplifierVisitor::TryDeMorganNegationFactoring(HBinaryOperation* op) { in TryDeMorganNegationFactoring() argument
214 DCHECK(op->IsAnd() || op->IsOr()) << op->DebugName(); in TryDeMorganNegationFactoring()
215 DataType::Type type = op->GetType(); in TryDeMorganNegationFactoring()
216 HInstruction* left = op->GetLeft(); in TryDeMorganNegationFactoring()
217 HInstruction* right = op->GetRight(); in TryDeMorganNegationFactoring()
234 uint32_t dex_pc = op->GetDexPc(); in TryDeMorganNegationFactoring()
244 if (op->IsAnd()) { in TryDeMorganNegationFactoring()
256 op->GetBlock()->InsertInstructionBefore(hbin, op); in TryDeMorganNegationFactoring()
257 op->GetBlock()->ReplaceAndRemoveInstructionWith(op, hnot); in TryDeMorganNegationFactoring()
412 bool InstructionSimplifierVisitor::ReplaceRotateWithRor(HBinaryOperation* op, in ReplaceRotateWithRor() argument
415 DCHECK(op->IsAdd() || op->IsXor() || op->IsOr()) << op->DebugName(); in ReplaceRotateWithRor()
418 op->GetBlock()->ReplaceAndRemoveInstructionWith(op, ror); in ReplaceRotateWithRor()
436 bool InstructionSimplifierVisitor::TryReplaceWithRotate(HBinaryOperation* op) { in TryReplaceWithRotate() argument
437 DCHECK(op->IsAdd() || op->IsXor() || op->IsOr()); in TryReplaceWithRotate()
438 HInstruction* left = op->GetLeft(); in TryReplaceWithRotate()
439 HInstruction* right = op->GetRight(); in TryReplaceWithRotate()
450 return TryReplaceWithRotateConstantPattern(op, ushr, shl); in TryReplaceWithRotate()
453 return TryReplaceWithRotateRegisterSubPattern(op, ushr, shl); in TryReplaceWithRotate()
456 return TryReplaceWithRotateRegisterNegPattern(op, ushr, shl); in TryReplaceWithRotate()
473 bool InstructionSimplifierVisitor::TryReplaceWithRotateConstantPattern(HBinaryOperation* op, in TryReplaceWithRotateConstantPattern() argument
476 DCHECK(op->IsAdd() || op->IsXor() || op->IsOr()); in TryReplaceWithRotateConstantPattern()
481 ReplaceRotateWithRor(op, ushr, shl); in TryReplaceWithRotateConstantPattern()
503 bool InstructionSimplifierVisitor::TryReplaceWithRotateRegisterNegPattern(HBinaryOperation* op, in TryReplaceWithRotateRegisterNegPattern() argument
506 DCHECK(op->IsAdd() || op->IsXor() || op->IsOr()); in TryReplaceWithRotateRegisterNegPattern()
512 ReplaceRotateWithRor(op, ushr, shl); in TryReplaceWithRotateRegisterNegPattern()
533 bool InstructionSimplifierVisitor::TryReplaceWithRotateRegisterSubPattern(HBinaryOperation* op, in TryReplaceWithRotateRegisterSubPattern() argument
536 DCHECK(op->IsAdd() || op->IsXor() || op->IsOr()); in TryReplaceWithRotateRegisterSubPattern()
543 return ReplaceRotateWithRor(op, ushr, shl); in TryReplaceWithRotateRegisterSubPattern()