[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