Reformat partially.
[oota-llvm.git] / include / llvm / CodeGen / MachineCombinerPattern.h
1 //===-- llvm/CodeGen/MachineCombinerPattern.h - Instruction pattern supported by
2 // combiner  ------*- C++ -*-===//
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_CODEGEN_MACHINECOMBINERPATTERN_H
16 #define LLVM_CODEGEN_MACHINECOMBINERPATTERN_H
17
18 namespace llvm {
19
20 /// Enumeration of instruction pattern supported by machine combiner
21 ///
22 ///
23 namespace MachineCombinerPattern {
24 // Forward declaration
25 enum MC_PATTERN : int {
26   // These are commutative variants for reassociating a computation chain. See
27   // the comments before getMachineCombinerPatterns() in TargetInstrInfo.cpp.
28   MC_REASSOC_AX_BY = 0,
29   MC_REASSOC_AX_YB = 1,
30   MC_REASSOC_XA_BY = 2,
31   MC_REASSOC_XA_YB = 3,
32
33   /// Enumeration of instruction pattern supported by AArch64 machine combiner
34   MC_NONE,
35   MC_MULADDW_OP1,
36   MC_MULADDW_OP2,
37   MC_MULSUBW_OP1,
38   MC_MULSUBW_OP2,
39   MC_MULADDWI_OP1,
40   MC_MULSUBWI_OP1,
41   MC_MULADDX_OP1,
42   MC_MULADDX_OP2,
43   MC_MULSUBX_OP1,
44   MC_MULSUBX_OP2,
45   MC_MULADDXI_OP1,
46   MC_MULSUBXI_OP1
47 };
48 } // end namespace MachineCombinerPattern
49 } // end namespace llvm
50
51 #endif