gpt4 book ai didi

ios - 如何在 iOS 中使用 ARM 内在函数?

转载 作者:可可西里 更新时间:2023-11-01 04:41:53 25 4
gpt4 key购买 nike

我需要在 iPad 上快速计算数百万个 32 位整数的 MSB(最高有效位)。我有自己的(丑陋的)MSB 实现,它是用普通 C 编写的,速度很慢。 ARM 处理器有 CLZ(计数前导零)硬件命令,这对它非常有用。根据ARM reference有一个固有的 C 函数 __CLZ。如何向我的 Xcode 项目添加对 ARM 内部函数的支持?

附言我设法找到了从 NEON 访问硬件 CLZ 的方法(通过包含 arm_neon.h),但这不是我需要的,因为它只适用于矢量,但我需要标量 MSB。

最佳答案

我在 ARM C language extensions 的第 44 页找到了 ARM 内部函数名称.其中一些在 Xcode 中工作。正如预期的那样打印 31:

NSLog(@"%u", __builtin_clz(1));

注意事项:

  • 我没有在 Apple 文档中找到任何关于此的引用资料。 Xcode 很可能从 LLVM 或 CLANG 继承了这些功能。
  • 您无需包含任何特殊的 header 或框架即可使用这些功能。 Xcode IDE 自动完成功能不知道它们。
  • 只实现了扩展列表中的一些功能。根据同一文档的第 12-13 页,它应该是两个头文件:用于非 NEON 内在函数的 arm_acle.h 和用于 NEON 内在函数的 arm_neon.h。 Xcode 只有第二个文件,但是第一个文件中的一些函数在其他地方声明。

关于ios - 如何在 iOS 中使用 ARM 内在函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19665201/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com