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

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

Reply via email to