[PATCH] D69250: [ARM][AArch64] Implement __cls and __clsl intrinsics from ACLE
Victor Campos via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Tue Oct 22 02:58:31 PDT 2019
vhscampos marked 4 inline comments as done.
vhscampos added inline comments.
================
Comment at: clang/lib/Headers/arm_acle.h:150
+__clsl(unsigned long __t) {
+#if __SIZEOF_LONG__ == 4
+ return __builtin_arm_cls(__t);
----------------
compnerd wrote:
> I don't see a pattern match for the `cls64` on ARM32, would that not fail to lower?
Yes. However, for now, I am not enabling support for `cls64` on ARM32 as it is not done yet.
================
Comment at: clang/lib/Headers/arm_acle.h:155
+#endif
+}
+
----------------
compnerd wrote:
> Should we have a `__clsll` extension, otherwise these two are the same in LLP64? I'm thinking about the LLP64 environments, where `long` and `long long` are different (32-bit vs 64-bit).
ACLE does provide a `long long` version of `cls` called `__clsll`. But since the support for `cls64` on Arm32 is not done yet, I decided not to write support for `__clsll`. If I did, it would work for 64-bit but not for 32-bit.
Please let me know what you think.
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D69250/new/
https://reviews.llvm.org/D69250
More information about the llvm-commits
mailing list