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