diff options
author | Michael Maitland <michaeltmaitland@gmail.com> | 2024-01-25 12:44:36 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-01-25 14:44:36 -0500 |
commit | 594b92a7b987b839af10bd1035a816f233033826 (patch) | |
tree | 634d61f9c61e9c5d39ae2df0f01ea791880afe2b /llvm/lib/Target/RISCV/RISCVFeatures.td | |
parent | a315fb1c577a40a40968daa9d346435458d7e06e (diff) | |
download | llvm-594b92a7b987b839af10bd1035a816f233033826.zip llvm-594b92a7b987b839af10bd1035a816f233033826.tar.gz llvm-594b92a7b987b839af10bd1035a816f233033826.tar.bz2 |
[RISCV] Add Tune to DontSinkSplatOperands (#79199)
A CPU may prefer to not sink splat operands, one reason being that it
could require a S2V transfer buffer to move scalars into buffers.
Diffstat (limited to 'llvm/lib/Target/RISCV/RISCVFeatures.td')
-rw-r--r-- | llvm/lib/Target/RISCV/RISCVFeatures.td | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/llvm/lib/Target/RISCV/RISCVFeatures.td b/llvm/lib/Target/RISCV/RISCVFeatures.td index 045173b..c822b9c 100644 --- a/llvm/lib/Target/RISCV/RISCVFeatures.td +++ b/llvm/lib/Target/RISCV/RISCVFeatures.td @@ -1074,6 +1074,13 @@ def TuneShortForwardBranchOpt def HasShortForwardBranchOpt : Predicate<"Subtarget->hasShortForwardBranchOpt()">; def NoShortForwardBranchOpt : Predicate<"!Subtarget->hasShortForwardBranchOpt()">; +// Some subtargets require a S2V transfer buffer to move scalars into vectors. +// FIXME: Forming .vx/.vf/.wx/.wf can reduce register pressure. +def TuneNoSinkSplatOperands + : SubtargetFeature<"no-sink-splat-operands", "SinkSplatOperands", + "false", "Disable sink splat operands to enable .vx, .vf," + ".wx, and .wf instructions">; + def TuneConditionalCompressedMoveFusion : SubtargetFeature<"conditional-cmv-fusion", "HasConditionalCompressedMoveFusion", "true", "Enable branch+c.mv fusion">; |