[Synth] Enhance 3-input logic operations
@okekayode is already working on this.
Since May 7, 2026.
- Dominant language
- C++
- Stars
- 2.2k
- Forks
- 524
- Avg merge
- 3d 2h
- Merged PRs (30d)
- 46
Description
Look at https://si2.epfl.ch/~demichel/publications/archive/2021/3Input.pdf, and introduce following operations that look useful.
```
synth.onehot (n input)
synth.mux_inv (3 input)
synth.majority (2*n+1 input)
```
Note that `synth.majority` is re-introduction of `synth.mig.maj_inv` but this time
the operation is simply one of 3-input logic operations, and is not considered as a primary target of homogeneous logic representation. So three shouldn't be no concern from the patent perspective (see https://github.com/llvm/circt/issues/10152). Though we have to make sure not to introduce mig specific optimizations (specifically algebraic rewriting etc).
The addition of these operations can be done in a declarative way using BooleanLogicOpInterface.
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Assessment
This issue has not been assessed yet.