Lines Matching refs:use
45 bool TryMergeIntoShifterOperand(HInstruction* use, HInstruction* bitfield_op, bool do_merge);
46 bool CanMergeIntoShifterOperand(HInstruction* use, HInstruction* bitfield_op) { in CanMergeIntoShifterOperand() argument
47 return TryMergeIntoShifterOperand(use, bitfield_op, /* do_merge= */ false); in CanMergeIntoShifterOperand()
49 bool MergeIntoShifterOperand(HInstruction* use, HInstruction* bitfield_op) { in MergeIntoShifterOperand() argument
50 DCHECK(CanMergeIntoShifterOperand(use, bitfield_op)); in MergeIntoShifterOperand()
51 return TryMergeIntoShifterOperand(use, bitfield_op, /* do_merge= */ true); in MergeIntoShifterOperand()
84 bool InstructionSimplifierArmVisitor::TryMergeIntoShifterOperand(HInstruction* use, in TryMergeIntoShifterOperand() argument
87 DCHECK(HasShifterOperand(use, InstructionSet::kArm)); in TryMergeIntoShifterOperand()
88 DCHECK(use->IsBinaryOperation()); in TryMergeIntoShifterOperand()
92 DataType::Type type = use->GetType(); in TryMergeIntoShifterOperand()
97 HInstruction* left = use->InputAt(0); in TryMergeIntoShifterOperand()
98 HInstruction* right = use->InputAt(1); in TryMergeIntoShifterOperand()
108 bool is_commutative = use->AsBinaryOperation()->IsCommutative(); in TryMergeIntoShifterOperand()
124 shift_amount &= use->GetType() == DataType::Type::kInt32 in TryMergeIntoShifterOperand()
129 if (!use->IsAdd() && (!use->IsSub() || use->GetType() != DataType::Type::kInt64)) { in TryMergeIntoShifterOperand()
140 new (GetGraph()->GetAllocator()) HDataProcWithShifterOp(use, in TryMergeIntoShifterOperand()
145 use->GetDexPc()); in TryMergeIntoShifterOperand()
146 use->GetBlock()->ReplaceAndRemoveInstructionWith(use, alu_with_op); in TryMergeIntoShifterOperand()
167 for (const HUseListNode<HInstruction*>& use : uses) { in TryMergeIntoUsersShifterOperand() local
168 HInstruction* user = use.GetUser(); in TryMergeIntoUsersShifterOperand()