-qsimd
类别
@PROCESS
无。
用途
控制编译器是否可以自动利用支持向量指令的处理器的向量指令。
与算法密集型任务(例如多媒体应用程序)配合使用时,这些指令可以提供更高的性能。
语法
缺省值
无论是否指定了 -qsimd,当以下两个条件都满足时,隐含 -qsimd=auto;否则,隐含 -qsimd=noauto。
- 优化级别为 -O3 或更高。
- -qarch 设置为 pwr7 或更高。
用途
-qsimd=auto 选项对支持向量指令的处理器启用自动生成向量指令的功能。 当 -qsimd=auto 生效时,编译器会将循环中对数组的连续元素执行某些的操作转换为向量指令。 这些指令一次计算多个结果,这比按顺序计算每个结果更快。 这些选项对于具有重要图像处理需求的应用程序很有用。
-qsimd=noauto 选项禁止将循环数组操作转换为向量指令。
-qsimd=auto 选项控制自动模拟,该操作以前由不推荐的 -qhot=simd 选项执行。 如果您指定 -qhot=simd,那么编译器会忽略它,并且不发出任何警告消息。
指定不推荐的 -qenablevmx 选项与指定 -qsimd=auto 的效果相同。 编译器不会对此发出任何警告。
备注信息:
- 指定不带任何子选项的 -qsimd 与 -qsimd=auto 等效。
- 指定 -qsimd=auto 并不保证将发生自动模拟。
- 使用向量指令一次计算多个结果时,可能会延迟甚至错过某些体系结构上的浮点异常检测。 如果检测异常很重要,请不要使用 -qsimd=auto。
规则
如果启用链接时间优化 (LTO) 并指定 -qsimd=auto 在 LTO 编译步骤中,但在 LTO 链接步骤中指定 -qsimd=noauto ,编译器将在 LTO 链接步骤中自动设置 -qsimd=auto 。 它还为 -qarch 设置相应的值,以与编译时指定的体系结构匹配。 同样,如果在 LTO 编译步骤中启用 LTO 并指定 -qsimd=noauto ,但在 LTO 链接步骤中指定 -qsimd=auto ,那么编译器会在编译步骤中自动设置 -qsimd=auto 。
