LLVM 23.0.0git
HexagonXQFloatGenerator.cpp File Reference

Go to the source code of this file.

Namespaces

namespace  llvm
 This is an optimization pass for GlobalISel generic memory operations.

Macros

#define HEXAGON_XQFLOAT_GENERATOR   "XQFloat Generator pass"
#define DEBUG_TYPE   "hexagon-xqf-gen"

Functions

FunctionPassllvm::createHexagonXQFloatGenerator ()
void llvm::initializeHexagonXQFloatGeneratorPass (PassRegistry &)
 INITIALIZE_PASS (HexagonXQFloatGenerator, "hexagon-xqfloat-generator", HEXAGON_XQFLOAT_GENERATOR, false, false) FunctionPass *llvm

Variables

cl::opt< QFloatMode > QFloatModeValue
cl::opt< boolEnableHVXXQFloat ("enable-xqf-gen", cl::init(false), cl::desc("Enable XQFloat generations"))
cl::opt< boolEnableConversionsRemoval ("enable-rem-conv", cl::init(false), cl::desc("Enable extraneous conversions removal"))
cl::opt< boolPrintDebug ("debug-print", cl::init(false), cl::desc("Print function mir after transformation"))
static constexpr unsigned XQFPAdd32 []
static constexpr unsigned XQFPAdd16 []
static constexpr unsigned XQFPMult32 []
static constexpr unsigned XQFPMult16 []

Macro Definition Documentation

◆ DEBUG_TYPE

#define DEBUG_TYPE   "hexagon-xqf-gen"

Definition at line 149 of file HexagonXQFloatGenerator.cpp.

◆ HEXAGON_XQFLOAT_GENERATOR

#define HEXAGON_XQFLOAT_GENERATOR   "XQFloat Generator pass"

Definition at line 127 of file HexagonXQFloatGenerator.cpp.

Referenced by INITIALIZE_PASS().

Function Documentation

◆ INITIALIZE_PASS()

INITIALIZE_PASS ( HexagonXQFloatGenerator ,
"hexagon-xqfloat-generator" ,
HEXAGON_XQFLOAT_GENERATOR ,
false ,
false  )

Variable Documentation

◆ EnableConversionsRemoval

cl::opt< bool > EnableConversionsRemoval("enable-rem-conv", cl::init(false), cl::desc("Enable extraneous conversions removal")) ( "enable-rem-conv" ,
cl::init(false) ,
cl::desc("Enable extraneous conversions removal")  )

◆ EnableHVXXQFloat

cl::opt< bool > EnableHVXXQFloat("enable-xqf-gen", cl::init(false), cl::desc("Enable XQFloat generations")) ( "enable-xqf-gen" ,
cl::init(false) ,
cl::desc("Enable XQFloat generations")  )

◆ PrintDebug

cl::opt< bool > PrintDebug("debug-print", cl::init(false), cl::desc("Print function mir after transformation")) ( "debug-print" ,
cl::init(false) ,
cl::desc("Print function mir after transformation")  )

◆ QFloatModeValue

cl::opt<QFloatMode> QFloatModeValue
extern

◆ XQFPAdd16

unsigned XQFPAdd16[]
staticconstexpr
Initial value:
= {
Hexagon::V6_vadd_hf, Hexagon::V6_vadd_qf16, Hexagon::V6_vadd_qf16_mix,
Hexagon::V6_vsub_hf, Hexagon::V6_vsub_qf16, Hexagon::V6_vsub_qf16_mix,
Hexagon::V6_vsub_hf_mix}

Definition at line 176 of file HexagonXQFloatGenerator.cpp.

◆ XQFPAdd32

unsigned XQFPAdd32[]
staticconstexpr
Initial value:
= {
Hexagon::V6_vadd_sf, Hexagon::V6_vadd_qf32, Hexagon::V6_vadd_qf32_mix,
Hexagon::V6_vsub_qf32, Hexagon::V6_vsub_qf32_mix, Hexagon::V6_vsub_sf,
Hexagon::V6_vsub_sf_mix}

Definition at line 167 of file HexagonXQFloatGenerator.cpp.

◆ XQFPMult16

unsigned XQFPMult16[]
staticconstexpr
Initial value:
= {Hexagon::V6_vmpy_qf16,
Hexagon::V6_vmpy_qf16_hf,
Hexagon::V6_vmpy_qf16_mix_hf}

Definition at line 189 of file HexagonXQFloatGenerator.cpp.

◆ XQFPMult32

unsigned XQFPMult32[]
staticconstexpr
Initial value:
= {
Hexagon::V6_vmpy_qf32, Hexagon::V6_vmpy_qf32_qf16, Hexagon::V6_vmpy_qf32_hf,
Hexagon::V6_vmpy_qf32_sf, Hexagon::V6_vmpy_qf32_mix_hf}

Definition at line 185 of file HexagonXQFloatGenerator.cpp.