Class X86.Fma
FMA intrinsics
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. |