My choice follows the classic SIMD Intel instructions, when 2 bits are available in the opcode (such as the #YGREC8) :

- AND
- OR
- XOR
- ANDN

The last one is combined with AND and OR to create a MUX2 function for example.

When 3 bits are available, like the #YASEP, I add the remaining ROP2 functions:

- NAND
- NOR
- ORN
- XORN

There are 16 combinations for 2-inputs gates, 8 of them are "degenerate" (output if 0 or 1, or A or B or /A or /B, or a swap of inputs for ANDN/ORN).

With the full 8 functions, any significant boolean calculation becomes possible and efficient. This is particularly useful for "lateral computations" such as #ANGOLA - A New Game Of Life Algorithm or even some particular implementations of crypto algos, where the LUT sequential lookups are replaced by parallel boolean computations.

## Discussions

## Become a Hackaday.io Member

Create an account to leave a comment. Already have an account? Log In.