We have a good selection of W instructions, so promoting a truncated
value back to i64 is often free.
This appears to be a net code size reduction on SPECINT2006.
This has been split from D130397 as one of the patches needed to
complete that.
Paths
| Differential D131819
[RISCV] Enable isTruncateFree in SDAG for i64->i32 on rv64. ClosedPublic Authored by craig.topper on Aug 12 2022, 4:54 PM.
Details Summary We have a good selection of W instructions, so promoting a truncated This appears to be a net code size reduction on SPECINT2006. This has been split from D130397 as one of the patches needed to
Diff Detail
Event TimelineComment Actions LGTM. I'm not deeply convinced this is the right heuristic long term, but it's a reasonable one and we can revisit if needed. This revision is now accepted and ready to land.Aug 15 2022, 8:05 AM Closed by commit rG7a73ab5818a1: [RISCV] Enable isTruncateFree in SDAG for i64->i32 on rv64. (authored by craig.topper). · Explain WhyAug 15 2022, 8:36 AM This revision was automatically updated to reflect the committed changes.
Revision Contents
Diff 452686 llvm/lib/Target/RISCV/RISCVISelLowering.cpp
llvm/test/CodeGen/RISCV/rvv/fixed-vectors-masked-scatter.ll
llvm/test/CodeGen/RISCV/trunc-free.ll
|
Is there a reason they *shouldn't* match? Having them differ for simple types like i64->i32 is rather surprising.