erichkeane added a comment.

In https://reviews.llvm.org/D37448#861211, @rnk wrote:

> I think this is a reasonable stop-gap fix since the code isn't trying to 
> return EAX:EDX or XMM0 from the inline asm blob. This affects any function 
> that contains inline asm and returns a vector, which is potentially a lot of 
> stuff.


Actually... I've convinced myself that this is likely the correct fix for this 
bug.  There is likely a separate bug for vector-types and struct return types, 
however I'd believe those aren't really things that anyone else supports.

According to our definition, v4si is NOT a "Vector" type, since a vector type 
requires it be a FP value.  SO, we are converting an integer stored in eax/edx 
to a wider integer.  Since assembly doesn't have a 'signed'-ness, I would 
assert that widening a register-stored variable to via zero-ext is the correct 
fix here.

In summary, I believe this is the correct fix for the bug as reported.


Repository:
  rL LLVM

https://reviews.llvm.org/D37448



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

Reply via email to