Blast-Radius Aware AI Code Review for Business-Critical Systems
LiveReview LiveReview Explore LiveReview

fma - perform a fused multiply-add operation

Declaration

genTypefma(genTypea,genTypeb,genTypec);genDTypefma(genDTypea,genDTypeb,genDTypec);

Description

fma performs, where possible, a fused multiply-add operation, returning a * b + c. In use cases where the
       return value is eventually consumed by a variable declared as precise:

       •   fma() is considered a single operation, whereas the expression a * b + c consumed by a variable
           declared as precise is considered two operations.

       •   The precision of fma() can differ from the precision of the expression a * b + c.

       •   fma() will be computed with the same precision as any other fma() consumed by a precise variable,
           giving invariant results for the same input values of a, b and c.

       Otherwise, in the absense of precise consumption, there are no special constraints on the number of
       operations or difference in precision between fma() and the expression a * b + c.

Name

       fma - perform a fused multiply-add operation

Parameters

a
           Specifies the first multiplicand.

       b
           Specifies the second multiplicand.

       c
           Specifies the value to be added to the result.

Version Support

       ┌────────────┬───────────────────────────────────────────────────────────────────────────────────┐
       │            │        OpenGLShadingLanguageVersion                                            │
       ├────────────┼──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┤
       │ Function   │ 1.10 │ 1.20 │ 1.30 │ 1.40 │ 1.50 │ 3.30 │ 4.00 │ 4.10 │ 4.20 │ 4.30 │ 4.40 │ 4.50 │
       │ Name       │      │      │      │      │      │      │      │      │      │      │      │      │
       ├────────────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┤
       │ fma        │  -   │  -   │  -   │  -   │  -   │  -   │  ✔   │  ✔   │  ✔   │  ✔   │  ✔   │  ✔   │
       │ (genType)  │      │      │      │      │      │      │      │      │      │      │      │      │
       ├────────────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┤
       │ fma        │  -   │  -   │  -   │  -   │  -   │  -   │  ✔   │  ✔   │  ✔   │  ✔   │  ✔   │  ✔   │
       │ (genDType) │      │      │      │      │      │      │      │      │      │      │      │      │
       └────────────┴──────┴──────┴──────┴──────┴──────┴──────┴──────┴──────┴──────┴──────┴──────┴──────┘

See Also