Lines Matching refs:left

208   HInstruction* left = op->GetLeft();
213 if (((left->IsNot() && right->IsNot()) ||
214 (left->IsBooleanNot() && right->IsBooleanNot())) &&
215 left->HasOnlyOneNonEnvironmentUse() &&
224 HInstruction* src_left = left->InputAt(0);
229 left->ReplaceWith(src_left);
231 left->GetBlock()->RemoveInstruction(left);
242 if (left->IsBooleanNot()) {
441 HInstruction* left = op->GetLeft();
444 if ((left->IsUShr() && right->IsShl()) || (left->IsShl() && right->IsUShr())) {
445 HUShr* ushr = left->IsUShr() ? left->AsUShr() : right->AsUShr();
446 HShl* shl = left->IsShl() ? left->AsShl() : right->AsShl();
1253 HInstruction* left = instruction->GetLeft();
1255 bool left_is_neg = left->IsNeg();
1264 HNeg* neg = left_is_neg ? left->AsNeg() : right->AsNeg();
1275 HInstruction* other = left_is_neg ? right : left;
1292 if ((left->IsSub() || right->IsSub()) &&
1305 if (left->IsSub() && left->InputAt(1) == right) {
1306 instruction->ReplaceWith(left->InputAt(0));
1310 } else if (right->IsSub() && right->InputAt(1) == left) {
1536 // Reverse condition if left is constant. Our code generators prefer constant
1556 HInstruction* left = condition->GetLeft();
1564 if (!left->IsCompare() || !right->IsConstant() || right->AsIntConstant()->GetValue() != 0) {
1570 if (!left->GetUses().HasExactlyOneElement()) {
1575 if (!left->GetEnvUses().empty()) {
1582 if (left->HasAnyEnvironmentUseBefore(condition)) {
1588 left->RemoveEnvironmentUsers();
1591 condition->SetBias(left->AsCompare()->GetBias());
1594 condition->ReplaceInput(left->InputAt(0), 0);
1595 condition->ReplaceInput(left->InputAt(1), 1);
1598 left->GetBlock()->RemoveInstruction(left);
1792 // the input negation only if it is does not have any uses left.
1834 // the input negation only if it is does not have any uses left.
1919 HInstruction* left = instruction->GetLeft();
1921 if (left->IsConstant()) {
1922 if (Int64FromConstant(left->AsConstant()) == 0) {
1937 if (left->IsNeg() && right->IsNeg()) {
1949 HAdd* add = new(GetGraph()->GetAllocator()) HAdd(type, left, right->AsNeg()->GetInput());
1956 if (left->IsNeg() && left->HasOnlyOneNonEnvironmentUse()) {
1965 HAdd* add = new(GetGraph()->GetAllocator()) HAdd(type, left->AsNeg()->GetInput(), right);
1972 left->GetBlock()->RemoveInstruction(left);
1980 if (left->IsAdd()) {
1990 if (left->InputAt(1) == right) {
1991 instruction->ReplaceWith(left->InputAt(0));
1995 } else if (left->InputAt(0) == right) {
1996 instruction->ReplaceWith(left->InputAt(1));
2046 HInstruction* left = instruction->GetLeft();
2048 if (((left->IsNot() && right->IsNot()) ||
2049 (left->IsBooleanNot() && right->IsBooleanNot())) &&
2050 left->HasOnlyOneNonEnvironmentUse() &&
2058 instruction->ReplaceInput(left->InputAt(0), 0);
2060 left->GetBlock()->RemoveInstruction(left);
2265 HInstruction* left = invoke->InputAt(0);
2275 HCompare(type, left, right, ComparisonBias::kNoBias, dex_pc);
2550 HInstruction* left = instruction->GetLeft();
2556 if (instruction->InstructionTypeEquals(left) && right->IsConstant()) {
2558 y = left->AsBinaryOperation();
2559 } else if (left->IsConstant() && instruction->InstructionTypeEquals(right)) {
2560 const2 = left->AsConstant();
2574 // GetConstantRight() can return both left and right constants
2628 HInstruction* left = instruction->GetLeft();
2631 HConstant* const2 = right->IsConstant() ? right->AsConstant() : left->AsConstant();
2636 HBinaryOperation* y = (AsAddOrSub(left) != nullptr)
2637 ? left->AsBinaryOperation()
2646 left = y->GetLeft();
2647 HConstant* const1 = left->IsConstant() ? left->AsConstant() : y->GetRight()->AsConstant();
2652 HInstruction* x = (const1 == left) ? y->GetRight() : left;