[PATCH] D88062: [ARM] add .f16 -> .16 token alias

Yuanfang Chen via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Thu Sep 24 21:48:12 PDT 2020


ychen added a comment.

This patch caused some failures (fullfp16-neg.s etc.) and seems changed the behavior of parsing "vmov.f16 s1,r2" for -fp16 from fail to pass. With this patch and -fp16, "vmov.f16 s1,r2" would be parsed to "vmov.16 s1,r2" which is defined to alias "vmov s1,r2".

2cf294a213c01d074c35f1a6d579092da8caa54c implemented "Data type specification flexibility" (in ArmV8-A manual, paragraph F2 <https://reviews.llvm.org/F2>.9.5, Table F2 <https://reviews.llvm.org/F2>-9) except f16, so adding .f16 to .16 case here should be doing the right thing. IIUC "Data type specification flexibility" should be restricted to <dt> field which 2cf294a213c01d074c35f1a6d579092da8caa54c did not implement (judging from the failures caused by this patch). It has been almost 11 years, so I guess the feature is not widely used. If I'm going to make `TokenAlias` restricted to <dt> field as the manual says, "vst1.f16" is still not parsable beause it does not use <dt> field.

"vst1.f16" -> "vst1.16" seems be a GCC extension. GNU as docs does not mention these. It is hard to implement this GCC-compatible function without looking into GNU as source code.


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D88062



More information about the llvm-commits mailing list