[PowerPC][FP128] Fix the incorrect calling convention for IEEE long double on Power8
authorQingShan Zhang <qshanz@cn.ibm.com>
Wed, 25 Nov 2020 01:38:57 +0000 (01:38 +0000)
committerQingShan Zhang <qshanz@cn.ibm.com>
Wed, 25 Nov 2020 01:43:48 +0000 (01:43 +0000)
commitfa42f08b2643d0a2e53fde8949e7f88b6d965bb8
treee30c2de4416c0d9cb3118b99505c3bccb9264903
parentcbd754163934a64e65b87a0f1b2c6741af8d24db
[PowerPC][FP128] Fix the incorrect calling convention for IEEE long double on Power8

For now, we are using the GPR to pass the arguments/return value for fp128 on Power8,
which is incorrect. It should be VSR. The reason why we do it this way is that,
we are setting the fp128 as illegal which make LLVM try to emulate it with i128 on
Power8. So, we need to correct it as legal.

Reviewed By: Nemanjai

Differential Revision: https://reviews.llvm.org/D91527
llvm/lib/Target/PowerPC/PPCCallingConv.td
llvm/lib/Target/PowerPC/PPCISelLowering.cpp
llvm/lib/Target/PowerPC/PPCInstrAltivec.td
llvm/test/CodeGen/PowerPC/f128-arith.ll