[PATCH] D21372: [ARM] Lower (select_cc k k (select_cc ~k ~k x)) into (SSAT l_k x)

Pablo Barrio via llvm-commits llvm-commits at lists.llvm.org
Wed Jun 22 08:51:19 PDT 2016


pbarrio added inline comments.

================
Comment at: lib/Target/ARM/ARMISelLowering.cpp:3837
@@ +3836,3 @@
+  uint64_t Val2 = cast<ConstantSDNode>(*K2)->getSExtValue();
+  uint64_t PosVal = Val1 < Val2 ? Val1 : Val2;
+
----------------
pbarrio wrote:
> rengolin wrote:
> > Wait, this looks backwards...
> > 
> > Shouldn't the positive value be something like:
> > 
> >     std::max(Val1, Val2);
> > 
> > but you seem to be getting the lowest of both sign extended values.
> I'm comparing two unsigned integers, so effectively the "negative" numbers are bigger than the positive ones because the most significant bit is always 1.
> 
> I'm doing this because getSExtValue() returns a uint64_t. I could cast Val1 and Val2 to signed and therefore do a signed integer compare. Let me know if you prefer that.
I will shut up. getSExtValue returns an int64_t so there is no reason to do this the convoluted way. I will change it in the next version.


http://reviews.llvm.org/D21372





More information about the llvm-commits mailing list