_mm256_nmacc_ps

업데이트: 2011년 3월

Visual Studio 2010 SP1이 필요합니다.

Microsoft 전용

FMA4 YMM 명령 vfnmaddps를 생성하여 소스의 한 번 반올림 부동 소수점 음수 곱하기-더하기를 수행합니다.

__m256 _mm256_nmacc_ps (
   __m256 src1,
   __m256 src2,
   __m256 src3
);

매개 변수

  • [in] src1
    8개의 32비트 부동 소수점 값을 포함하는 256비트 매개 변수입니다.

  • [in] src2
    8개의 32비트 부동 소수점 값을 포함하는 256비트 매개 변수입니다.

  • [in] src3
    8개의 32비트 부동 소수점 값을 포함하는 256비트 매개 변수입니다.

반환 값

8개의 32비트 부동 소수점 값을 포함하는 256비트 결과 r입니다.

r[i] := -(src1[i] * src2[i]) + src3[i];

요구 사항

내장

아키텍처

_mm256_nmacc_ps

FMA4

헤더 파일 <intrin.h>

설명

src1에서 각 8개 단정밀도 부동 소수점 값을 src2의 해당 값에 곱합니다. 결과는 부정되며 src3의 해당 값에 더하고 결과는 대상에 해당 값으로 저장됩니다. 각 곱하기- 음수-더하기는 중간 결과가 무한 정밀도로 계산된 것처럼 마지막에 한 번 반올림하여 수행됩니다.

vfnmaddps 명령은 FMA4 명령군의 일부입니다. 이 intrinsic을 사용하기 전에 프로세서가 이 명령을 지원하는지 확인해야 합니다. 이 명령에 대한 하드웨어 지원을 확인하려면 InfoType = 0x80000001을 사용하여 __cpuid intrinsic을 호출하고 CPUInfo[2] (ECX)의 비트 16을 확인합니다. 명령이 지원되는 경우 비트는 1이고, 그렇지 않으면 0입니다.

예제

#include <stdio.h>
#include <intrin.h>
int main()
{
    __m256 a, b, c, d;
    int i;
    for (i = 0; i < 8; i++) {
        a.m256_f32[i] = i;
        b.m256_f32[i] = 2.;
        c.m256_f32[i] = 3.;
    }
    d = _mm256_nmacc_ps(a, b, c);
    for (i = 0; i < 8; i++) printf_s(" %.3f", d.m256_f32[i]);
    printf_s("\n");
}
  

참고 항목

참조

__cpuid, __cpuidex

기타 리소스

_mm_nmacc_ps

_mm_nmacc_ss

_mm256_nmacc_pd

_mm256_macc_ps

_mm256_msub_ps

_mm256_nmsub_ps

Visual Studio 2010 SP1용으로 추가된 FMA4 내장 함수

변경 기록

날짜

변경 내용

이유

2011년 3월

이 내용이 추가되었습니다.

SP1 기능 변경