mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-10-21 03:53:04 +02:00
69ab0809b7
Also, remove an enum hack where enum values were used as indexes into an array. We may want to make this a real class to allow pattern-based queries/customization (D13417). llvm-svn: 252196
47 lines
1.2 KiB
C++
47 lines
1.2 KiB
C++
//===-- llvm/CodeGen/MachineCombinerPattern.h - Instruction pattern supported by
|
|
// combiner ------*- C++ -*-===//
|
|
//
|
|
// The LLVM Compiler Infrastructure
|
|
//
|
|
// This file is distributed under the University of Illinois Open Source
|
|
// License. See LICENSE.TXT for details.
|
|
//
|
|
//===----------------------------------------------------------------------===//
|
|
//
|
|
// This file defines instruction pattern supported by combiner
|
|
//
|
|
//===----------------------------------------------------------------------===//
|
|
|
|
#ifndef LLVM_CODEGEN_MACHINECOMBINERPATTERN_H
|
|
#define LLVM_CODEGEN_MACHINECOMBINERPATTERN_H
|
|
|
|
namespace llvm {
|
|
|
|
/// These are instruction patterns matched by the machine combiner pass.
|
|
enum class MachineCombinerPattern {
|
|
// These are commutative variants for reassociating a computation chain. See
|
|
// the comments before getMachineCombinerPatterns() in TargetInstrInfo.cpp.
|
|
REASSOC_AX_BY,
|
|
REASSOC_AX_YB,
|
|
REASSOC_XA_BY,
|
|
REASSOC_XA_YB,
|
|
|
|
// These are multiply-add patterns matched by the AArch64 machine combiner.
|
|
MULADDW_OP1,
|
|
MULADDW_OP2,
|
|
MULSUBW_OP1,
|
|
MULSUBW_OP2,
|
|
MULADDWI_OP1,
|
|
MULSUBWI_OP1,
|
|
MULADDX_OP1,
|
|
MULADDX_OP2,
|
|
MULSUBX_OP1,
|
|
MULSUBX_OP2,
|
|
MULADDXI_OP1,
|
|
MULSUBXI_OP1
|
|
};
|
|
|
|
} // end namespace llvm
|
|
|
|
#endif
|