小编Hes*_*sLg的帖子

为什么 Clang 添加额外的 FMA 指令?

#include <immintrin.h>

__m256 mult(__m256 num) {
    return 278*num/(num+1400);
}
Run Code Online (Sandbox Code Playgroud)
.LCPI0_0:
        .long   0x438b0000                      # float 278
.LCPI0_1:
        .long   0x44af0000                      # float 1400
mult(float __vector(8)):                           # @mult(float __vector(8))
        vbroadcastss    ymm1, dword ptr [rip + .LCPI0_0] # ymm1 = [2.78E+2,2.78E+2,2.78E+2,2.78E+2,2.78E+2,2.78E+2,2.78E+2,2.78E+2]
        vmulps  ymm1, ymm0, ymm1
        vbroadcastss    ymm2, dword ptr [rip + .LCPI0_1] # ymm2 = [1.4E+3,1.4E+3,1.4E+3,1.4E+3,1.4E+3,1.4E+3,1.4E+3,1.4E+3]
        vaddps  ymm0, ymm0, ymm2
        vrcpps  ymm2, ymm0
        vmulps  ymm3, ymm1, ymm2
        vfmsub213ps     ymm0, ymm3, ymm1        # ymm0 = (ymm3 * ymm0) - ymm1
        vfnmadd213ps    ymm0, ymm2, ymm3        # …
Run Code Online (Sandbox Code Playgroud)

c++ precision x86 assembly numerical-methods

2
推荐指数
1
解决办法
132
查看次数

标签 统计

assembly ×1

c++ ×1

numerical-methods ×1

precision ×1

x86 ×1