[PATCH] D150670: [WebAssembly] Disable generation of fshl/fshr for rotates
Nikita Popov via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Wed May 17 14:37:45 PDT 2023
nikic requested changes to this revision.
nikic added a comment.
This revision now requires changes to proceed.
This doesn't looks like a wasm specific problem. You get essentially the same issue on any target that has a rotate instruction but no funnel shift instruction. Here are just a couple examples: https://godbolt.org/z/8v6nfaax9
I believe this needs to be either solved by preventing demanded bits simplifications that break a rotate pattern (though I'm not sure if that would break any other optimizations we care about) or by adding a special case for this in the backend when lowering FSH to ROT.
Lowering to a rotate intrinsic only "solves" this for wasm and will at the same time make these rotates completely opaque to optimization -- heck, it looks like we don't even support constant folding for these intrinsics (https://llvm.godbolt.org/z/hMWG16b9W).
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D150670/new/
https://reviews.llvm.org/D150670
More information about the llvm-commits
mailing list