On Tue, 28 Nov 2023 at 13:36, Joern Rennecke <joern.renne...@embecosm.com> wrote: > For the saturating truncation operations, we have the high-to-low propagation, > but no low-to-high propagation, so that would be something separate to model.
P.S.: For unsigned saturating truncation, the propagation from higher to lower bits only happens for bits that are truncated off. e.g. if we truncate a 64 bit value to a 32 bit value, and only the lower 16 bit of the result are live, we got an output live mask 0x000000000000ffff implying an input live mask: 0xffffffff0000ffff For signed saturating truncation, we got an extra corner case. For the same data widths as above, the value 0xffffffff80000000 truncates to: 0x80000000 but 0x0000000080000000 truncates to: 0x7fffffff so the top bit that is included in the truncated mode propagates to all the lower bits (irrespective if it itself is live in the output), so it is live in the input if any bit is live in the output - just like all the truncated-off bits.