craig.topper added a comment.

In D112398#3087183 <https://reviews.llvm.org/D112398#3087183>, @frasercrmck 
wrote:

> It looks as though all checks are checking the same thing? Presumably this is 
> expected? I wonder if allowing an extra combined check 
> (`--check-prefixes=CHECK,CHECK-ZFH-ILP32F` or something) would make it more 
> obvious when things *are* different between the different configs.
>
> I'm not familiar with how `Float16` is supposed to behave if the target 
> doesn't advertise support `zfh`, but I come more from OpenCL where it's 
> either fully supported or "storage-only", in which case I wouldn't expect a 
> `fadd` to get past the frontend (or maybe it'd enforce promotion to 
> `float`?). This isn't necessarily a blocker - I'm just showing the limits of 
> my knowledge in this area.

If I remember correctly, the frontend doesn't know if the backend has support 
for half. It only has a single flag to say whether Float16 should be a valid 
type. I believe on AArch64 gcc does promote it in the frontend when there are 
no native instructions. clang does not. The effect of this is that clang rounds 
a lot more often than gcc when half isn't supported. gcc will promote an entire 
expression an only round at places like assignment.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D112398/new/

https://reviews.llvm.org/D112398

_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to