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.