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_LIB_TARGET_AARCH64_AARCH64MACHINECOMBINERPATTERN_H 16 #define LLVM_LIB_TARGET_AARCH64_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 43