rnk added a comment.

In https://reviews.llvm.org/D35259#805284, @erichkeane wrote:

> Oren discovered this miss to the original implementation.  I'd reviewed this 
> internally quite a bit.
>
> The reason for the Win32ABI test is that MSVC 'long double' is actually small 
> enough for SSE registers in this case.  I DO now (looking again, sorry 
> Elizabeth) wonder if there is a better way to exclude extended-length 
> LongDouble type?  Could we us the 'length' of it instead? @rnk : opinion?


Yeah, you can ask clang::TargetInfo for the format of most basic FP types. The 
code to do that looks like:

  &TI.getLongDoubleFormat() == &llvm::APFloat::x87DoubleExtended()

Any reason you can't just add that condition to isX86VectorTypeForVectorCall? I 
assume we don't want to pass x86_fp80s in SSE registers for vectorcall either, 
right? That would eliminate the need for the isRegCallReturnableHA helper and 
the IsWin32StructABI parameter, which is a poorly named variable.


https://reviews.llvm.org/D35259



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

Reply via email to