0 1 2 3 4 description
------------------
0 0 0 0 0 nothing
- 0 0 non-zero reserved
+ 0 0 1 sz dz pred zeroing
0 1 inv CR-bit Rc=1: ffirst CR sel
0 1 inv sz dz Rc=0: ffirst z/nonz
1 0 N sz dz sat mode: N=0/1 u/s
- 1 1 0 sz dz pred zeroing
- 1 1 1 rsvd reserved
+ 1 1 inv CR-bit Rc=1: pred-result CR sel
+ 1 1 inv sz dz Rc=0: pred-result z/nonz
+Mode types:
+
+* **predicate zeroing** (sz, dz) if predication is enabled will put zeros into the dest (or as src in the case of twin pred) when the predicate bit is zero.
+* **ffirst* or data-dependent fail-on-first: see separate section.
+* **sat mode** or saturation: clamps the result to a min/max rather than overflows / wraps. allows signed and unsigned clamping.
+* **pred-result** will test the result (CR testing selects a bit of CR and inverts it, just like branch testing) and if the test fails it is as if the predicate bit was zero. When Rc=1 the CR element (CR0) however is still stored in the CR regfile. This scheme does not apply to crops (crand, cror).
# Notes about rounding, clamp and saturate