[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