================
@@ -842,6 +846,42 @@ bool SystemZTargetLowering::useSoftFloat() const {
return Subtarget.hasSoftFloat();
}
+unsigned SystemZTargetLowering::getVectorTypeBreakdownForCallingConv(
+ LLVMContext &Context, CallingConv::ID CC, EVT VT, EVT &IntermediateVT,
+ unsigned &NumIntermediates, MVT &RegisterVT) const {
+ // Pass fp16 vectors in VR(s).
+ if (Subtarget.hasVector() && VT.isVector() && VT.getScalarType() ==
MVT::f16) {
+ IntermediateVT = RegisterVT = MVT::v8f16;
+ return NumIntermediates = divideCeil(VT.getVectorNumElements(),
+ SystemZ::VectorBytes / 2);
+ }
----------------
arsenm wrote:
Do you really need this? I would expect you get this by default?
https://github.com/llvm/llvm-project/pull/171066
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits