Commit rG934d5fa2b8672695c335deed0e19d0e777c98403 changed the vperm codegen
for cases that vperm is not replaced by xxperm, this patch is to revert that.
Details
- Reviewers
stefanp nemanjai - Commits
- rG7614ba0a5db8: [PowerPC] Fix vperm codegen
Diff Detail
- Repository
- rG LLVM Github Monorepo
Time | Test | |
---|---|---|
60,060 ms | x64 debian > MLIR.Examples/standalone::test.toy Script:
--
: 'RUN: at line 1'; /usr/bin/cmake /var/lib/buildkite-agent/builds/llvm-project/mlir/examples/standalone -G "Ninja" -DCMAKE_CXX_COMPILER=/usr/bin/clang++ -DCMAKE_C_COMPILER=/usr/bin/clang -DLLVM_ENABLE_LIBCXX=OFF -DMLIR_DIR=/var/lib/buildkite-agent/builds/llvm-project/build/lib/cmake/mlir -DLLVM_USE_LINKER=lld -DPython3_EXECUTABLE="/usr/bin/python3.9"
|
Event Timeline
Thank you for fixing this.
I do have a couple of comments related to the fix.
llvm/lib/Target/PowerPC/PPCISelLowering.cpp | ||
---|---|---|
10204 | I don't think you need to bother with this extra ternary operator. | |
10265 | For this section how about: if (Opcode == PPCISD::XXPERM && (V1HasXXSWAPD || V2HasXXSWAPD)) { /// Same code as above but you don't need to check that (V1HasXXSWAPD || V2HasXXSWAPD) } You don't need to go into the if statement at all if there isn't at least one XXSWAPD. | |
10269 | Is it possible to have a swap on both sides? |
llvm/lib/Target/PowerPC/PPCISelLowering.cpp | ||
---|---|---|
10269 | I have not see such a case. |
@maryammo Please can you take a look at https://github.com/llvm/llvm-project/issues/61315 - it looks related to this patch (and D133700)