allocate draft opcode for minmax
authorJacob Lifshay <programmerjake@gmail.com>
Tue, 25 Apr 2023 06:43:02 +0000 (23:43 -0700)
committerJacob Lifshay <programmerjake@gmail.com>
Tue, 25 Apr 2023 06:43:02 +0000 (23:43 -0700)
openpower/sv/bitmanip.mdwn
openpower/sv/draft_opcode_tables.mdwn

index 1245287e67cfa15bc6bcaf003ab10aa3958cec0c..55574820979358cfccd0e4f6b858d91c8beb15b0 100644 (file)
@@ -186,12 +186,12 @@ signed/unsigned min/max gives more flexibility.
 
 X-Form
 
-* XO=0001001110, itype=0b00 min, unsigned
-* XO=0101001110, itype=0b01 min, signed
-* XO=0011001110, itype=0b10 max, unsigned
-* XO=0111001110, itype=0b11 max, signed
+* PO=19, XO=----000011 `minmax RT, RA, RB, MMM`
+* PO=19, XO=----000011 `minmax. RT, RA, RB, MMM`
 
+see [[openpower/sv/rfc/ls013]] for `MMM` definition and pseudo-code.
 
+implements all of (and more):
 ```
 uint_xlen_t mins(uint_xlen_t rs1, uint_xlen_t rs2)
 { return (int_xlen_t)rs1 < (int_xlen_t)rs2 ? rs1 : rs2;
index 527962620e3dbb404230d7d49d47347d01287ec2..d9ff186ccd075fc965a0938ce2da5daa25fe04ac 100644 (file)
@@ -25,6 +25,7 @@ ternlog has its own major opcode
 |  110   |Rc| 1/2-op    |
 |  111   |  | bmrevi   |
 
+`minmax` is allocated to PO 19 XO `000011`
 
 1-op and variants
 
@@ -44,7 +45,7 @@ ternlog has its own major opcode
 | RT   | RA   | RB   | shuf  | shuffle | 
 | RT   | RA   | RB   | unshuf| shuffle | 
 | RT   | RA   | RB   | width | xperm  | 
-| RT   | RA   | RB   | type | av minmax | 
+| RT   | RA   | RB   | MMM   | `minmax` |
 | RT   | RA   | RB   |      | av abs avgadd  | 
 | RT   | RA   | RB   | type | vmask ops | 
 | RT   | RA   | RB   | type | abs accumulate (overwrite)  | 
@@ -101,7 +102,7 @@ the [[sv/av_opcodes]])
 | NN |    |     |     |    |   00  | 0101 110 |1 | rsvd      |         |
 | NN |    |     |     |    |   10  | 0101 110 |Rc| rsvd      |         |
 | NN | RT | RA  | RB  | sm0| sm1 1 | 0101 110 |Rc| shaddw    | X-Form  |
-| NN | RT | RA  | RB  | 0  | itype | 1001 110 |Rc| av minmax | X-Form  |
+| NN |    |     |     | 0  |       | 1001 110 |Rc| rsvd      |         |
 | NN | RT | RA  | RB  | 1  |   00  | 1001 110 |Rc| av abss   | X-Form  |
 | NN | RT | RA  | RB  | 1  |   01  | 1001 110 |Rc| av absu   | X-Form  |
 | NN | RT | RA  | RB  | 1  |   10  | 1001 110 |Rc| av avgadd | X-Form  |