| NN | RT | RA | RB | 0 | 01 | 0001 110 |Rc| vec sofm | X-Form |
| NN | RT | RA | RB | 0 | 10 | 0001 110 |Rc| vec sifm | X-Form |
| NN | RT | RA | RB | 0 | 11 | 0001 110 |Rc| vec cprop | X-Form |
-| NN | | | | | -0 | 0101 110 |Rc| crfbinlog | {TODO} |
+| NN | | | | | 00 | 0101 110 |0 | crfbinlog | {TODO} |
+| NN | | | | | 00 | 0101 110 |1 | rsvd | |
+| NN | | | | | 10 | 0101 110 |Rc| rsvd | |
| NN | | | | | -1 | 0101 110 |Rc| rsvd | |
| NN | RT | RA | RB | 0 | itype | 1001 110 |Rc| av minmax | X-Form |
| NN | RT | RA | RB | 1 | 00 | 1001 110 |Rc| av abss | X-Form |
| -- | -- | --- | --- | --- |-----|----- | -----|--|
| NN | BT | BA | BB | BC |m0-2 | imm | 01 |m3|
- mask = m0-3,m4
+ mask = m0-3
for i in range(4):
a,b,c = CRs[BA][i], CRs[BB][i], CRs[BC][i])
if mask[i] CRs[BT][i] = lut3(imm, a, b, c)
With ternary (LUT3) dynamic instructions being very costly,
and CR Fields being only 4 bit, a binary (LUT2) variant is better
-| 0.5|6.8 | 9.11|12.14|15.17|18.22|23...30 |31|
-| -- | -- | --- | --- | --- |-----| --------|--|
-| NN | BT | BA | BB | BC |m0-m2|00101110 |m3|
+| 0.5|6.8 | 9.11|12.14|15.17|18.21|22...30 |31|
+| -- | -- | --- | --- | --- |-----| -------- |--|
+| NN | BT | BA | BB | BC |m0-m3|000101110 |0 |
- mask = m0-3,m4
+ mask = m0..m3
for i in range(4):
a,b = CRs[BA][i], CRs[BB][i])
if mask[i] CRs[BT][i] = lut2(CRs[BC], a, b)