14a0dad67867f389e01a5a6c0fe381d210f687c0dArtem Udovichenko/* 24a0dad67867f389e01a5a6c0fe381d210f687c0dArtem Udovichenko * Copyright (C) 2015 The Android Open Source Project 34a0dad67867f389e01a5a6c0fe381d210f687c0dArtem Udovichenko * 44a0dad67867f389e01a5a6c0fe381d210f687c0dArtem Udovichenko * Licensed under the Apache License, Version 2.0 (the "License"); 54a0dad67867f389e01a5a6c0fe381d210f687c0dArtem Udovichenko * you may not use this file except in compliance with the License. 64a0dad67867f389e01a5a6c0fe381d210f687c0dArtem Udovichenko * You may obtain a copy of the License at 74a0dad67867f389e01a5a6c0fe381d210f687c0dArtem Udovichenko * 84a0dad67867f389e01a5a6c0fe381d210f687c0dArtem Udovichenko * http://www.apache.org/licenses/LICENSE-2.0 94a0dad67867f389e01a5a6c0fe381d210f687c0dArtem Udovichenko * 104a0dad67867f389e01a5a6c0fe381d210f687c0dArtem Udovichenko * Unless required by applicable law or agreed to in writing, software 114a0dad67867f389e01a5a6c0fe381d210f687c0dArtem Udovichenko * distributed under the License is distributed on an "AS IS" BASIS, 124a0dad67867f389e01a5a6c0fe381d210f687c0dArtem Udovichenko * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 134a0dad67867f389e01a5a6c0fe381d210f687c0dArtem Udovichenko * See the License for the specific language governing permissions and 144a0dad67867f389e01a5a6c0fe381d210f687c0dArtem Udovichenko * limitations under the License. 154a0dad67867f389e01a5a6c0fe381d210f687c0dArtem Udovichenko */ 164a0dad67867f389e01a5a6c0fe381d210f687c0dArtem Udovichenko 174a0dad67867f389e01a5a6c0fe381d210f687c0dArtem Udovichenko#ifndef ART_COMPILER_OPTIMIZING_INSTRUCTION_SIMPLIFIER_SHARED_H_ 184a0dad67867f389e01a5a6c0fe381d210f687c0dArtem Udovichenko#define ART_COMPILER_OPTIMIZING_INSTRUCTION_SIMPLIFIER_SHARED_H_ 194a0dad67867f389e01a5a6c0fe381d210f687c0dArtem Udovichenko 204a0dad67867f389e01a5a6c0fe381d210f687c0dArtem Udovichenko#include "nodes.h" 214a0dad67867f389e01a5a6c0fe381d210f687c0dArtem Udovichenko 224a0dad67867f389e01a5a6c0fe381d210f687c0dArtem Udovichenkonamespace art { 234a0dad67867f389e01a5a6c0fe381d210f687c0dArtem Udovichenko 244a0dad67867f389e01a5a6c0fe381d210f687c0dArtem Udovichenkobool TryCombineMultiplyAccumulate(HMul* mul, InstructionSet isa); 257fc6350f6f1ab04b52b9cd7542e0790528296cbeArtem Serov// For bitwise operations (And/Or/Xor) with a negated input, try to use 267fc6350f6f1ab04b52b9cd7542e0790528296cbeArtem Serov// a negated bitwise instruction. 277fc6350f6f1ab04b52b9cd7542e0790528296cbeArtem Serovbool TryMergeNegatedInput(HBinaryOperation* op); 284a0dad67867f389e01a5a6c0fe381d210f687c0dArtem Udovichenko 294a0dad67867f389e01a5a6c0fe381d210f687c0dArtem Udovichenko} // namespace art 304a0dad67867f389e01a5a6c0fe381d210f687c0dArtem Udovichenko 314a0dad67867f389e01a5a6c0fe381d210f687c0dArtem Udovichenko#endif // ART_COMPILER_OPTIMIZING_INSTRUCTION_SIMPLIFIER_SHARED_H_ 32