[llvm] [DAG] Support saturated truncate (PR #99418)
Simon Pilgrim via llvm-commits
llvm-commits at lists.llvm.org
Thu Jul 18 03:40:14 PDT 2024
================
@@ -804,6 +804,9 @@ enum NodeType {
/// TRUNCATE - Completely drop the high bits.
TRUNCATE,
+ /// TRUNCATE_[SU]SAT - Truncate for saturated operand
+ TRUNCATE_SSAT,
----------------
RKSimon wrote:
So should we have 3 truncsat nodes? I mentioned this on #85903 but hadn't realised other targets had something similar to PACKUS
```
TRUNCATE_SSAT_S, // saturate signed input to signed result - truncate(smax(smin(x)))
TRUNCATE_SSAT_U, // saturate signed input to unsigned result - truncate(umax(smin(x,0)))
TRUNCATE_USAT_U, // saturate unsigned input to unsigned result - truncate(umin(x))
```
https://github.com/llvm/llvm-project/pull/99418
More information about the llvm-commits
mailing list