agutowski marked 2 inline comments as done.
agutowski added a comment.

In https://reviews.llvm.org/D24311#536333, @rnk wrote:

> You should locally verify that this generates the correct assembly when 
> optimizations are enabled, and if it doesn't, try to make the input look more 
> like llvm/test/CodeGen/X86/rotate.ll


Yeah, I checked that it's optimized to ROL/ROR instruction - now, after looking 
closer, I can see that it's optimized for all functions except for the ones 
operating on 16-bit integers. Could that be a calculated decision, or should I 
try to make it generate ROL/ROR whenever it can?


================
Comment at: lib/CodeGen/CGBuiltin.cpp:740
@@ +739,3 @@
+    Value *Mask = llvm::ConstantInt::get(ArgType, ArgWidth - 1);
+    Shift = Builder.CreateAnd(Shift, Mask);
+    Value *RightShift = Builder.CreateSub(ArgTypeSize, Shift);
----------------
Ah, I am sure I saw that bug, but apparently I forgot about it, as on my 
machine it returned correct values. Thanks!


https://reviews.llvm.org/D24311



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

Reply via email to