Home | History | Annotate | Download | only in optimizing

Lines Matching refs:mul

23 bool TrySimpleMultiplyAccumulatePatterns(HMul* mul,
26 DCHECK(Primitive::IsIntOrLongType(mul->GetType()));
76 ArenaAllocator* arena = mul->GetBlock()->GetGraph()->GetArena();
78 mul->GetType(), op_kind, input_a, input_a, input_b, mul->GetDexPc());
80 mul->GetBlock()->ReplaceAndRemoveInstructionWith(mul, mulacc);
88 bool TryCombineMultiplyAccumulate(HMul* mul, InstructionSet isa) {
89 Primitive::Type type = mul->GetType();
106 ArenaAllocator* arena = mul->GetBlock()->GetGraph()->GetArena();
108 if (mul->HasOnlyOneNonEnvironmentUse()) {
109 HInstruction* use = mul->GetUses().front().GetUser();
112 // MUL tmp, x, y
129 if (binop_right == mul) {
132 DCHECK_EQ(binop_left, mul);
141 mul->GetLeft(),
142 mul->GetRight());
145 DCHECK(!mul->HasUses());
146 mul->GetBlock()->RemoveInstruction(mul);
153 mul->GetBlock()->GetGraph()->GetConstant(type, 0),
154 mul->GetLeft(),
155 mul->GetRight());
158 DCHECK(!mul->HasUses());
159 mul->GetBlock()->RemoveInstruction(mul);
169 if (mul->GetLeft() == mul->GetRight()) {
173 HInstruction* left = mul->GetLeft();
174 HInstruction* right = mul->GetRight();
176 TrySimpleMultiplyAccumulatePatterns(mul, right->AsBinaryOperation(), left)) {
180 TrySimpleMultiplyAccumulatePatterns(mul, left->AsBinaryOperation(), right)) {