MachineCombiner Pass for selecting faster instruction
[oota-llvm.git] / lib / Target / AArch64 / AArch64MachineCombinerPattern.h
1 //===- AArch64MachineCombinerPattern.h                                    -===//
2 //===- AArch64 instruction pattern supported by combiner                  -===//
3 //
4 //                     The LLVM Compiler Infrastructure
5 //
6 // This file is distributed under the University of Illinois Open Source
7 // License. See LICENSE.TXT for details.
8 //
9 //===----------------------------------------------------------------------===//
10 //
11 // This file defines instruction pattern supported by combiner
12 //
13 //===----------------------------------------------------------------------===//
14
15 #ifndef LLVM_TARGET_AArch64MACHINECOMBINERPATTERN_H
16 #define LLVM_TARGET_AArch64MACHINECOMBINERPATTERN_H
17
18 namespace llvm {
19
20 /// Enumeration of instruction pattern supported by machine combiner
21 ///
22 ///
23 namespace MachineCombinerPattern {
24 enum MC_PATTERN : int {
25   MC_NONE = 0,
26   MC_MULADDW_OP1 = 1,
27   MC_MULADDW_OP2 = 2,
28   MC_MULSUBW_OP1 = 3,
29   MC_MULSUBW_OP2 = 4,
30   MC_MULADDWI_OP1 = 5,
31   MC_MULSUBWI_OP1 = 6,
32   MC_MULADDX_OP1 = 7,
33   MC_MULADDX_OP2 = 8,
34   MC_MULSUBX_OP1 = 9,
35   MC_MULSUBX_OP2 = 10,
36   MC_MULADDXI_OP1 = 11,
37   MC_MULSUBXI_OP1 = 12
38 };
39 } // end namespace MachineCombinerPattern
40 } // end namespace llvm
41
42 #endif