__PS_MADDS / __PS_MSUBS / __PS_NMADDS / __PS_NMSUBS

Syntax

#include <ppc_ps.h>

f32x2 __PS_MADDS(float f1, float f2, float f3);
f32x2 __PS_MSUBS(float f1, float f2, float f3);
f32x2 __PS_NMADDS(float f1, float f2, float f3);
f32x2 __PS_NMSUBS(float f1, float f2, float f3);

Parameters

f1 32-bit float value.
f2 32-bit float value.
f3 32-bit float value.

Return Values

Returns the result of the multiply accumulate operation. Copying the result into both parts of the paired single result.

Description

Returns the result of multiply accumulate on the input values.

Behavior of __PS_MADDS

#include <ppc_ghs.h>

float in1;
float in2;
float in3;
f32x2 out;
...
out = __PS_MADDS(in1, in2, in3);

Is equivalent to:

out[0] = (in1[0] * in2[0]) + in3[0];
out[1] = out[0]

Behavior of __PS_MSUBS

#include <ppc_ghs.h>

float in1;
float in2;
float in3;
f32x2 out;
...
out = __PS_MSUBS(in1, in2, in3);

Is equivalent to:

out[0] = (in1[0] * in2[0]) - in3[0];
out[1] = out[0]

Behavior of __PS_NMADDS

#include <ppc_ghs.h>

float in1;
float in2;
float in3;
f32x2 out;
...
out = __PS_NMADDS(in1, in2, in3);

Is equivalent to:

out[0] = -((in1[0] * in2[0]) + in3[0]);
out[1] = out[0]

Behavior of __PS_NMSUBS

#include <ppc_ghs.h>

float in1;
float in2;
float in3;
f32x2 out;
...
out = __PS_NMADDS(in1, in2, in3);

Is equivalent to:

out[0] = -((in1[0] * in2[0]) - in3[0]);
out[1] = out[0]

Do Not Call From

__PS_MADDS

None.

__PS_MSUBS

None.

__PS_NMADDS

None.

__PS_NMSUBS

None.

See Also

Paired Single Type

Paired Single Functions

__PS_ABS
__PS_ADD
__PS_ADDS
__PS_FDUP
__PS_DIV
__PS_DIVS
__PS_MADD
__PS_MADDS0
__PS_MADDS1
__PS_MERGE00
__PS_MERGE01
__PS_MERGE10
__PS_MERGE11
__PS_MSUB
__PS_MUL
__PS_MULS
__PS_MULS0
__PS_MULS1
__PS_NABS
__PS_NMADD
__PS_NMSUB
__PS_NEG
__PS_NEGS
__PS_RES
__PS_RESS
__PS_RSQRTE
__PS_SEL
__PS_SUB
__PS_SUM0
__PS_SUM1
__PS_SUBS
__PSQ_L
__PSQ_LX
__PSQ_ST
__PSQ_STX

Fast Cast Routines

OSInitFastCast
OSf32tos16
OSf32tos8
OSf32tou16
OSf32tou8
OSs16tof32
OSs8tof32
OSu16tof32
OSu8tof32

Revision History

2013/05/08 Automated cleanup pass.
2011/09/21 Initial version.


CONFIDENTIAL