| NN | RT | RA | RB | 1 | itype | 0101 110 |Rc| xperm |
| NN | RA | RB | RC | 0 | itype | 1001 110 |Rc| av minmax |
| NN | RA | RB | RC | 1 | 00 | 1001 110 |Rc| av abss |
-| NN | RA | RB | RC | 1 | 01 | 1001 110 |Rc| av absu|
+| NN | RA | RB | RC | 1 | 01 | 1001 110 |Rc| av absu |
| NN | RA | RB | | 1 | 10 | 1001 110 |Rc| av avgadd |
| NN | RA | RB | | 1 | 11 | 1001 110 |Rc| rsvd |
| NN | RT | | | | | 1101 110 |Rc| rsvd |
crregs[BC][i])
-# int min/max
+# int ops
+
+## min/max
required for the [[sv/av_opcodes]]
}
```
-# int average
+## average
required for the [[sv/av_opcodes]], these exist in Packed SIMD (VSX)
but not scalar
}
```
-## cmix
+## abs
+
+required for the [[sv/av_opcodes]], these exist in Packed SIMD (VSX)
+but not scalar
+
+```
+uint_xlen_t intabs(uint_xlen_t rs1, uint_xlen_t rs2) {
+ return (src1 > src2) ? (src1-src2) : (src2-src1)
+}
+```
+
+# cmix
based on RV bitmanip, covered by ternlog bitops