In-advance, the summary of base scalar operations that need to be added is:
-| instruction | pseudocode |
-| ------------ | ------------------------ |
-| average-add. | result = (src1 + src2 + 1) >> 1 |
-| abs-diff | result = abs (src1-src2) |
+| instruction | pseudocode |
+| ------------ | ------------------------ |
+| average-add. | result = (src1 + src2 + 1) >> 1 |
+| abs-diff | result = abs (src1-src2) |
| abs-accumulate| result += abs (src1, src2) |
-| signed min | result = (src1 < src2) ? src1 : src2 use bitmanip |
-| signed max | result = (src1 > src2) ? src1 : src2 use bitmanip |
-| bitwise sel | (a ? b : c) - use [[sv/bitmanip]] ternary |
-| int/fp move | covered by [[sv/int_fp_mv]] |
+| (un)signed min| result = (src1 < src2) ? src1 : src2 use bitmanip |
+| (un)signed max| result = (src1 > src2) ? src1 : src2 use bitmanip |
+| bitwise sel | (a ? b : c) - use [[sv/bitmanip]] ternary |
+| int/fp move | covered by [[sv/int_fp_mv]] |
All other capabilities (saturate in particular) are achieved with [[sv/svp64]] modes and swizzle. Note that minmax and ternary are added in bitmanip.