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.