diff options
| author | Craig Topper <craig.topper@sifive.com> | 2022-01-20 11:32:26 -0800 |
|---|---|---|
| committer | Craig Topper <craig.topper@sifive.com> | 2022-01-20 11:35:37 -0800 |
| commit | 94e69fbb4f3a9719d4d8cc7268dd5db5d0be7e8f (patch) | |
| tree | 866105a53b059d35d17b67a82318e0da94dfdca9 /lldb/source/Plugins/ScriptInterpreter/Python/lldb-python.h | |
| parent | 6b92bb47901f3a2d4a9aa683b0365088113a729e (diff) | |
| download | llvm-94e69fbb4f3a9719d4d8cc7268dd5db5d0be7e8f.zip llvm-94e69fbb4f3a9719d4d8cc7268dd5db5d0be7e8f.tar.gz llvm-94e69fbb4f3a9719d4d8cc7268dd5db5d0be7e8f.tar.bz2 | |
[RISCV] Add DAG combine to fold (fp_to_int_sat (ffloor X)) -> (select X == nan, 0, (fcvt X, rdn))
Similar for ceil, trunc, round, and roundeven. This allows us to use
static rounding modes to avoid a libcall.
This is similar to D116771, but for the saturating conversions.
This optimization is done for AArch64 as isel patterns.
RISCV doesn't have instructions for ceil/floor/trunc/round/roundeven
so the operations don't stick around until isel to enable a pattern
match. Thus I've implemented a DAG combine.
I'm only handling saturating to i64 or i32. This could be extended
to other sizes in the future.
Reviewed By: asb
Differential Revision: https://reviews.llvm.org/D116864
Diffstat (limited to 'lldb/source/Plugins/ScriptInterpreter/Python/lldb-python.h')
0 files changed, 0 insertions, 0 deletions
