[PATCH] D81373: [WIP] Basic bfloat support on Arm
Dave Green via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Fri Jun 12 11:26:30 PDT 2020
dmgreen added inline comments.
================
Comment at: llvm/lib/Target/ARM/ARMISelLowering.cpp:5908
+ if ((DstVT == MVT::f16 && !Subtarget->hasFullFP16()) ||
+ (DstVT == MVT::bf16 && !Subtarget->hasBF16()))
return SDValue();
----------------
According to D81411, you can have bf16 without having fp16. And so you don't have any of the instructions like VMOV.f16 (which a VMOVrh will turn into).
Same goes for the vldr.16 int he test below. Because +fp16 isn't specified, we might have to awkwardly use some other set of instructions. It will be more efficient to use vmov.16 and vldr.16 if they are available, but if they are not we might have to fall back to something else.
Or we say that combination isn't supported, but it seems that fp16 is still optional and bf16 is mandatory in 8.6.
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D81373/new/
https://reviews.llvm.org/D81373
More information about the llvm-commits
mailing list