Simple function which scalarizes Ops then ExtOrTruncs them according to function parameters
Details
Diff Detail
- Repository
- rG LLVM Github Monorepo
Event Timeline
llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp | ||
---|---|---|
1464–1467 | Is this just getExtOrTrunc plus a bitcast (plus support for any_extend?) a get*ExtOrTrunc with the extension type as an argument would be more general |
llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp | ||
---|---|---|
1464–1467 | It sounds like you are suggesting getAnyExtOrTrunc getZExtOrTrunc etc ? These already exist, so then I should just abandon this. Or did you perhaps mean getScalarizeZExtOrTrunc getScalarizeAnyExtOrTrunc which does the above but first converts potential vector VT to scalar ? |
llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp | ||
---|---|---|
1464–1467 | No, there's still a gap to be filled here. There isn't one that handles sext zext and anyext. Not quite sure if bitcast should be worked into it |
Add getExtOrTrunc for Any/Z/S.
Separate out getScalarizedExtOrTrunc into individual getScalarizedZext / getScalarizedAny ..
Instead of isAny / isSigned, I'de expect it to take the extend opcode