docs.unity3d.com
    Show / Hide Table of Contents

    Class X86.Fma

    FMA intrinsics

    Inheritance
    Object
    X86.Fma
    Namespace: Unity.Burst.Intrinsics
    Syntax
    public static class Fma : object

    Properties

    Name Description
    IsFmaSupported

    Evaluates to true at compile time if FMA intrinsics are supported.

    Burst ties FMA support to AVX2 support to simplify feature sets to support.

    Methods

    Name Description
    fmadd_pd(v128, v128, v128)

    Multiply packed double-precision (64-bit) floating-point elements in a and b, add the intermediate result to packed elements in c, and store the results in dst.

    fmadd_ps(v128, v128, v128)

    Multiply packed single-precision (32-bit) floating-point elements in a and b, add the intermediate result to packed elements in c, and store the results in dst.

    fmadd_sd(v128, v128, v128)

    Multiply the lower double-precision (64-bit) floating-point elements in a and b, and add the intermediate result to the lower element in c. Store the result in the lower element of dst, and copy the upper element from a to the upper element of dst.

    fmadd_ss(v128, v128, v128)

    Multiply the lower single-precision (32-bit) floating-point elements in a and b, and add the intermediate result to the lower element in c. Store the result in the lower element of dst, and copy the upper 3 packed elements from a to the upper elements of dst.

    fmaddsub_pd(v128, v128, v128)

    Multiply packed double-precision (64-bit) floating-point elements in a and b, alternatively add and subtract packed elements in c to/from the intermediate result, and store the results in dst.

    fmaddsub_ps(v128, v128, v128)

    Multiply packed single-precision (32-bit) floating-point elements in a and b, alternatively add and subtract packed elements in c to/from the intermediate result, and store the results in dst.

    fmsub_pd(v128, v128, v128)

    Multiply packed double-precision (64-bit) floating-point elements in a and b, subtract packed elements in c from the intermediate result, and store the results in dst.

    fmsub_ps(v128, v128, v128)

    Multiply packed single-precision (32-bit) floating-point elements in a and b, subtract packed elements in c from the intermediate result, and store the results in dst.

    fmsub_sd(v128, v128, v128)

    Multiply the lower double-precision(64-bit) floating-point elements in a and b, and subtract the lower element in c from the intermediate result.Store the result in the lower element of dst, and copy the upper element from a to the upper element of dst.

    fmsub_ss(v128, v128, v128)

    Multiply the lower single-precision (32-bit) floating-point elements in a and b, and subtract the lower element in c from the intermediate result. Store the result in the lower element of dst, and copy the upper 3 packed elements from a to the upper elements of dst.

    fmsubadd_pd(v128, v128, v128)

    Multiply packed double-precision (64-bit) floating-point elements in a and b, alternatively subtract and add packed elements in c to/from the intermediate result, and store the results in dst.

    fmsubadd_ps(v128, v128, v128)

    Multiply packed single-precision (32-bit) floating-point elements in a and b, alternatively subtract and add packed elements in c to/from the intermediate result, and store the results in dst.

    fnmadd_pd(v128, v128, v128)

    Multiply packed double-precision (64-bit) floating-point elements in a and b, add the negated intermediate result to packed elements in c, and store the results in dst.

    fnmadd_ps(v128, v128, v128)

    Multiply packed single-precision (32-bit) floating-point elements in a and b, add the negated intermediate result to packed elements in c, and store the results in dst.

    fnmadd_sd(v128, v128, v128)

    Multiply the lower double-precision (64-bit) floating-point elements in a and b, and add the negated intermediate result to the lower element in c. Store the result in the lower element of dst, and copy the upper element from a to the upper element of dst.

    fnmadd_ss(v128, v128, v128)

    Multiply the lower single-precision (32-bit) floating-point elements in a and b, and add the negated intermediate result to the lower element in c. Store the result in the lower element of dst, and copy the upper 3 packed elements from a to the upper elements of dst.

    fnmsub_pd(v128, v128, v128)

    Multiply packed double-precision (64-bit) floating-point elements in a and b, subtract packed elements in c from the negated intermediate result, and store the results in dst.

    fnmsub_ps(v128, v128, v128)

    Multiply packed single-precision (32-bit) floating-point elements in a and b, subtract packed elements in c from the negated intermediate result, and store the results in dst.

    fnmsub_sd(v128, v128, v128)

    Multiply the lower double-precision(64-bit) floating-point elements in a and b, and subtract the lower element in c from the negated intermediate result.Store the result in the lower element of dst, and copy the upper element from a to the upper element of dst.

    fnmsub_ss(v128, v128, v128)

    Multiply the lower single-precision (32-bit) floating-point elements in a and b, and subtract the lower element in c from the negated intermediate result. Store the result in the lower element of dst, and copy the upper 3 packed elements from a to the upper elements of dst.

    mm256_fmadd_pd(v256, v256, v256)

    Multiply packed double-precision (64-bit) floating-point elements in a and b, add the intermediate result to packed elements in c, and store the results in dst.

    mm256_fmadd_ps(v256, v256, v256)

    Multiply packed single-precision (32-bit) floating-point elements in a and b, add the intermediate result to packed elements in c, and store the results in dst.

    mm256_fmaddsub_pd(v256, v256, v256)

    Multiply packed double-precision (64-bit) floating-point elements in a and b, alternatively add and subtract packed elements in c to/from the intermediate result, and store the results in dst.

    mm256_fmaddsub_ps(v256, v256, v256)

    Multiply packed single-precision (32-bit) floating-point elements in a and b, alternatively add and subtract packed elements in c to/from the intermediate result, and store the results in dst.

    mm256_fmsub_pd(v256, v256, v256)

    Multiply packed double-precision (64-bit) floating-point elements in a and b, subtract packed elements in c from the intermediate result, and store the results in dst.

    mm256_fmsub_ps(v256, v256, v256)

    Multiply packed single-precision (32-bit) floating-point elements in a and b, subtract packed elements in c from the intermediate result, and store the results in dst.

    mm256_fmsubadd_pd(v256, v256, v256)

    Multiply packed double-precision (64-bit) floating-point elements in a and b, alternatively subtract and add packed elements in c to/from the intermediate result, and store the results in dst.

    mm256_fmsubadd_ps(v256, v256, v256)

    Multiply packed single-precision (32-bit) floating-point elements in a and b, alternatively subtract and add packed elements in c to/from the intermediate result, and store the results in dst.

    mm256_fnmadd_pd(v256, v256, v256)

    Multiply packed double-precision (64-bit) floating-point elements in a and b, add the negated intermediate result to packed elements in c, and store the results in dst.

    mm256_fnmadd_ps(v256, v256, v256)

    Multiply packed single-precision (32-bit) floating-point elements in a and b, add the negated intermediate result to packed elements in c, and store the results in dst.

    mm256_fnmsub_pd(v256, v256, v256)

    Multiply packed double-precision (64-bit) floating-point elements in a and b, subtract packed elements in c from the negated intermediate result, and store the results in dst.

    mm256_fnmsub_ps(v256, v256, v256)

    Multiply packed single-precision (32-bit) floating-point elements in a and b, subtract packed elements in c from the negated intermediate result, and store the results in dst.

    Back to top
    Copyright © 2023 Unity Technologies — Terms of use
    • Legal
    • Privacy Policy
    • Cookies
    • Do Not Sell or Share My Personal Information
    • Your Privacy Choices (Cookie Settings)
    "Unity", Unity logos, and other Unity trademarks are trademarks or registered trademarks of Unity Technologies or its affiliates in the U.S. and elsewhere (more info here). Other names or brands are trademarks of their respective owners.
    Generated by DocFX on 18 October 2023