I abandoned D124080. In SelectionDAG::getNode, use VP_XOR or VP_AND replace VP_ADD/VP_MUL/VP_SUB when operand type is mask.
Details
Details
Diff Detail
Diff Detail
- Repository
- rG LLVM Github Monorepo
Unit Tests
Unit Tests
| Time | Test | |
|---|---|---|
| 60,400 ms | x64 debian > Clang.Driver::fsanitize.c | |
| 60,060 ms | x64 debian > libFuzzer.libFuzzer::large.test |
Event Timeline
Comment Actions
This should be done in SelectionDAG::getNode not SelectionDAGBuilder so it happens any time a mask VP_ADD/VP_SUB/VP_MUL is created.
| llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp | ||
|---|---|---|
| 7586 ↗ | (On Diff #424087) | VP_MUL should be replaced with VP_AND. 0 * 0 -> 0 The same as the truth table for AND. |
Comment Actions
Address comments.
1.Move CheckVPMaskOp to SelectionDAG::getNode.
- use VP_AND replace VP_MUL
| llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp | ||
|---|---|---|
| 8827 | Why not make this part of the switch? You don't need the VTList. This function only receives one VT. | |
| llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp | ||
|---|---|---|
| 8829 | I meant use the existing switch at line 8796. | |
Why not make this part of the switch? You don't need the VTList. This function only receives one VT.