Details
Details
Diff Detail
Diff Detail
- Repository
- rL LLVM
- Build Status
Buildable 24489 Build 24488: arc lint + arc unit
Event Timeline
lib/Target/WebAssembly/WebAssemblyInstrSIMD.td | ||
---|---|---|
587 | It looks like the expansions bottom out with SELECT. Even when select is set to expand, it still shows up in instruction selection. |
Comment Actions
I tried to add ISD::SELECT in the expansion list, like
for (auto Op : {ISD::VSELECT, ISD::SELECT_CC, ISD::SELECT}) { ... }
And the code generation apparently works for current test simd-select.ll. I'm not sure if it's optimal though. Could you check again?
Comment Actions
I'm not sure what I did before, but you're totally right. Letting the expander take care of selects yields the same code in most places and actually allows some DAGCombine optimizations that weren't possible before.
Why do we need this pattern? Can't we also expand SELECT as we did for SELECT_CC and VSELECT?