pmatos added a comment.

In D150670#4351147 <https://reviews.llvm.org/D150670#4351147>, @nikic wrote:

> 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

Yes, I am indeed aware this is not specific to wasm. What's specific to wasm 
afaiu is that the code generated is much worse when expanding fshl. That's what 
I mentioned in the bug discussion here: 
https://github.com/llvm/llvm-project/issues/62703#issuecomment-1548474310

> 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.

Preventing the simplification means adding target specific code in instcombine 
which seems even worse than adding it here given as @dschuff 
pointed out, there's precedent with x86.

> 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).

I just added the intrinsics, so those optimizations were not added yet.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D150670/new/

https://reviews.llvm.org/D150670

_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to