[PATCH] D82443: [ARM] Narrowing half-precision lowering to supported CCs
Puyan Lotfi via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Wed Jun 24 11:21:58 PDT 2020
plotfi marked an inline comment as done.
plotfi added a comment.
In D82443#2111882 <https://reviews.llvm.org/D82443#2111882>, @pratlucas wrote:
> It seems most of the argument lowering convertions get simplifyed on the regular case, when not using `fastcc`.
> When using it, though, type legalization ends up trying to handle a `i16 = bitcast ConstantFP:f16<APFloat(0)>` node, turning it into an `i32 <- f32` operation and getting lost while trying to create the new constant.
>
> Avoiding the splitting should do the trick for `fastcc`, as it has no need to conform with AAPCS. I'm not sure about `swiftcc`, though, as it is expected to comply with AAPCS-VFP on ios platforms according to LLVM's language reference manual.
================
Comment at: llvm/lib/Target/ARM/ARMISelLowering.cpp:4159
+ IsABIRegCopy =
+ (CCVal == CallingConv::ARM_APCS || CCVal == CallingConv::ARM_AAPCS);
+ }
----------------
pratlucas wrote:
> `CallingConv::ARM_AAPCS_VFP` and `CallingConv::C` would also need to be included here.
I believe I tried ARM_AAPCS_VFP and it asserted. Lemme confirm.
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D82443/new/
https://reviews.llvm.org/D82443
More information about the llvm-commits
mailing list