AI Engine Intrinsics  (AIE) r2p21
 All Data Structures Namespaces Functions Variables Typedefs Groups Pages
Dynamic X and Z buffer conjugation

Overview

32 bit complex by 16 bit complex using Dynamic X and Z buffer conjugation

Functions

v4cacc48 mac4_conj_sym (v4cacc48 acc, v16cint32 xbuff, int xstart, unsigned int xoffsets, int ystart, bool xyconj, v8cint16 zbuff, int zstart, unsigned int zoffsets, bool zconj)
 Complex symetric conjugate multiply-accumulate intrinsic function with dynamic x and z buffer conjugation after computing the selected lanes from the input buffer .
 
v4cacc48 mac4_conj_sym (v4cacc48 acc, v8cint32 xbuff, int xstart, unsigned int xoffsets, int ystart, bool xyconj, v8cint16 zbuff, int zstart, unsigned int zoffsets, bool zconj)
 Complex symetric conjugate multiply-accumulate intrinsic function with dynamic x and z buffer conjugation after computing the selected lanes from the input buffer using small X input buffer.
 
v4cacc48 mac4_conj_sym (v4cacc48 acc, v8cint32 xbuff, int xstart, unsigned int xoffsets, v8cint32 ybuff, int ystart, bool xyconj, v8cint16 zbuff, int zstart, unsigned int zoffsets, bool zconj)
 Complex symetric conjugate multiply-accumulate intrinsic function with dynamic x and z buffer conjugation after computing the selected lanes from the input buffer using small X input buffer.
 
v4cacc48 msc4_conj_sym (v4cacc48 acc, v16cint32 xbuff, int xstart, unsigned int xoffsets, int ystart, bool xyconj, v8cint16 zbuff, int zstart, unsigned int zoffsets, bool zconj)
 Complex symetric conjugate multiply-subtract intrinsic function with dynamic x and z buffer conjugation after computing the selected lanes from the input buffer .
 
v4cacc48 msc4_conj_sym (v4cacc48 acc, v8cint32 xbuff, int xstart, unsigned int xoffsets, int ystart, bool xyconj, v8cint16 zbuff, int zstart, unsigned int zoffsets, bool zconj)
 Complex symetric conjugate multiply-subtract intrinsic function with dynamic x and z buffer conjugation after computing the selected lanes from the input buffer using small X input buffer.
 
v4cacc48 msc4_conj_sym (v4cacc48 acc, v8cint32 xbuff, int xstart, unsigned int xoffsets, v8cint32 ybuff, int ystart, bool xyconj, v8cint16 zbuff, int zstart, unsigned int zoffsets, bool zconj)
 Complex symetric conjugate multiply-subtract intrinsic function with dynamic x and z buffer conjugation after computing the selected lanes from the input buffer using small X input buffer.
 
v4cacc48 mul4_conj_sym (v16cint32 xbuff, int xstart, unsigned int xoffsets, int ystart, bool xyconj, v8cint16 zbuff, int zstart, unsigned int zoffsets, bool zconj)
 Complex symetric conjugate multiply intrinsic function with dynamic x and z buffer conjugation after computing the selected lanes from the input buffer .
 
v4cacc48 mul4_conj_sym (v8cint32 xbuff, int xstart, unsigned int xoffsets, int ystart, bool xyconj, v8cint16 zbuff, int zstart, unsigned int zoffsets, bool zconj)
 Complex symetric conjugate multiply intrinsic function with dynamic x and z buffer conjugation after computing the selected lanes from the input buffer using small X input buffer.
 
v4cacc48 mul4_conj_sym (v8cint32 xbuff, int xstart, unsigned int xoffsets, v8cint32 ybuff, int ystart, bool xyconj, v8cint16 zbuff, int zstart, unsigned int zoffsets, bool zconj)
 Complex symetric conjugate multiply intrinsic function with dynamic x and z buffer conjugation after computing the selected lanes from the input buffer using small X input buffer.
 
v4cacc48 negmul4_conj_sym (v16cint32 xbuff, int xstart, unsigned int xoffsets, int ystart, bool xyconj, v8cint16 zbuff, int zstart, unsigned int zoffsets, bool zconj)
 Complex symetric conjugate multiply-negate intrinsic function with dynamic x and z buffer conjugation after computing the selected lanes from the input buffer .
 
v4cacc48 negmul4_conj_sym (v8cint32 xbuff, int xstart, unsigned int xoffsets, int ystart, bool xyconj, v8cint16 zbuff, int zstart, unsigned int zoffsets, bool zconj)
 Complex symetric conjugate multiply-negate intrinsic function with dynamic x and z buffer conjugation after computing the selected lanes from the input buffer using small X input buffer.
 
v4cacc48 negmul4_conj_sym (v8cint32 xbuff, int xstart, unsigned int xoffsets, v8cint32 ybuff, int ystart, bool xyconj, v8cint16 zbuff, int zstart, unsigned int zoffsets, bool zconj)
 Complex symetric conjugate multiply-negate intrinsic function with dynamic x and z buffer conjugation after computing the selected lanes from the input buffer using small X input buffer.
 

Function Documentation

v4cacc48 mac4_conj_sym ( v4cacc48  acc,
v16cint32  xbuff,
int  xstart,
unsigned int  xoffsets,
int  ystart,
bool  xyconj,
v8cint16  zbuff,
int  zstart,
unsigned int  zoffsets,
bool  zconj 
)

Complex symetric conjugate multiply-accumulate intrinsic function with dynamic x and z buffer conjugation after computing the selected lanes from the input buffer .

acc0 += (z00*x00 + cnj(z00)*y00)
acc1 += (z10*x10 + cnj(z10)*y10)
acc2 += (z20*x20 + cnj(z20)*y20)
acc3 += (z30*x30 + cnj(z30)*y30)

Parameters

Input/OutputType Comments
return v4cacc48 Returned accumulation vector (4 x cint48 lanes)
acc v4cacc48 Incoming accumulation vector (4 x cint48 lanes)
xbuff v16cint32Input buffer of 16 elements of type cint32
xstart int Starting position offset applied to all lanes of input from X buffer.
xoffsets unsigned int 4b offset for each lane, applied to both x and y buffers. LSB apply to first lane
ystart int Starting position offset applied to all lanes for input from Y buffer.
xyconj bool Selector for conjugation in X and Y buffers
zbuff v8cint16Input buffer of 8 elements of type cint16
zstart int Starting position offset applied to all lanes for input from Z buffer. This must be a compile time constant. Only the 4 LSB of the argument are used.
zoffsetsunsigned int 4b offset for each lane, applied to input from Z buffer. LSB apply to first lane
zconj bool Selector for conjugation in Z buffer
Note
  • The previous pseudocode is just a simplified representation of how the operation works, when computed internally it will be done using pre-adding
  • For more information on how data selection works from the buffers go here. The data buffer and coefficient buffer in this intrinsic use the general scheme.
  • Parameter 'zstart' must be a compile time constant.
v4cacc48 mac4_conj_sym ( v4cacc48  acc,
v8cint32  xbuff,
int  xstart,
unsigned int  xoffsets,
int  ystart,
bool  xyconj,
v8cint16  zbuff,
int  zstart,
unsigned int  zoffsets,
bool  zconj 
)

Complex symetric conjugate multiply-accumulate intrinsic function with dynamic x and z buffer conjugation after computing the selected lanes from the input buffer using small X input buffer.

acc0 += (z00*x00 + cnj(z00)*y00)
acc1 += (z10*x10 + cnj(z10)*y10)
acc2 += (z20*x20 + cnj(z20)*y20)
acc3 += (z30*x30 + cnj(z30)*y30)

Parameters

Input/OutputType Comments
return v4cacc48 Returned accumulation vector (4 x cint48 lanes)
acc v4cacc48 Incoming accumulation vector (4 x cint48 lanes)
xbuff v8cint32Input buffer of 8 elements of type cint32
xstart int Starting position offset applied to all lanes of input from X buffer.
xoffsets unsigned int 4b offset for each lane, applied to both x and y buffers. LSB apply to first lane
ystart int Starting position offset applied to all lanes for input from Y buffer.
xyconj bool Selector for conjugation in X and Y buffers
zbuff v8cint16Input buffer of 8 elements of type cint16
zstart int Starting position offset applied to all lanes for input from Z buffer. This must be a compile time constant. Only the 4 LSB of the argument are used.
zoffsetsunsigned int 4b offset for each lane, applied to input from Z buffer. LSB apply to first lane
zconj bool Selector for conjugation in Z buffer
Note
  • The previous pseudocode is just a simplified representation of how the operation works, when computed internally it will be done using pre-adding
  • For more information on how data selection works from the buffers go here. The data buffer and coefficient buffer in this intrinsic use the general scheme.
  • Parameter 'zstart' must be a compile time constant.
v4cacc48 mac4_conj_sym ( v4cacc48  acc,
v8cint32  xbuff,
int  xstart,
unsigned int  xoffsets,
v8cint32  ybuff,
int  ystart,
bool  xyconj,
v8cint16  zbuff,
int  zstart,
unsigned int  zoffsets,
bool  zconj 
)

Complex symetric conjugate multiply-accumulate intrinsic function with dynamic x and z buffer conjugation after computing the selected lanes from the input buffer using small X input buffer.

acc0 += (z00*x00 + cnj(z00)*y00)
acc1 += (z10*x10 + cnj(z10)*y10)
acc2 += (z20*x20 + cnj(z20)*y20)
acc3 += (z30*x30 + cnj(z30)*y30)

Parameters

Input/OutputType Comments
return v4cacc48 Returned accumulation vector (4 x cint48 lanes)
acc v4cacc48 Incoming accumulation vector (4 x cint48 lanes)
xbuff v8cint32Input buffer of 8 elements of type cint32
xstart int Starting position offset applied to all lanes of input from X buffer.
xoffsets unsigned int 4b offset for each lane, applied to both x and y buffers. LSB apply to first lane
ybuff v8cint32Right input buffer of 8 elements of type cint32
ystart int Starting position offset applied to all lanes for input from Y buffer.
xyconj bool Selector for conjugation in X and Y buffers
zbuff v8cint16Input buffer of 8 elements of type cint16
zstart int Starting position offset applied to all lanes for input from Z buffer. This must be a compile time constant. Only the 4 LSB of the argument are used.
zoffsetsunsigned int 4b offset for each lane, applied to input from Z buffer. LSB apply to first lane
zconj bool Selector for conjugation in Z buffer
Note
  • The previous pseudocode is just a simplified representation of how the operation works, when computed internally it will be done using pre-adding
  • For more information on how data selection works from the buffers go here. The data buffer and coefficient buffer in this intrinsic use the general scheme.
  • Parameter 'zstart' must be a compile time constant.
v4cacc48 msc4_conj_sym ( v4cacc48  acc,
v16cint32  xbuff,
int  xstart,
unsigned int  xoffsets,
int  ystart,
bool  xyconj,
v8cint16  zbuff,
int  zstart,
unsigned int  zoffsets,
bool  zconj 
)

Complex symetric conjugate multiply-subtract intrinsic function with dynamic x and z buffer conjugation after computing the selected lanes from the input buffer .

acc0 -= (z00*x00 + cnj(z00)*y00)
acc1 -= (z10*x10 + cnj(z10)*y10)
acc2 -= (z20*x20 + cnj(z20)*y20)
acc3 -= (z30*x30 + cnj(z30)*y30)

Parameters

Input/OutputType Comments
return v4cacc48 Returned accumulation vector (4 x cint48 lanes)
acc v4cacc48 Incoming accumulation vector (4 x cint48 lanes)
xbuff v16cint32Input buffer of 16 elements of type cint32
xstart int Starting position offset applied to all lanes of input from X buffer.
xoffsets unsigned int 4b offset for each lane, applied to both x and y buffers. LSB apply to first lane
ystart int Starting position offset applied to all lanes for input from Y buffer.
xyconj bool Selector for conjugation in X and Y buffers
zbuff v8cint16Input buffer of 8 elements of type cint16
zstart int Starting position offset applied to all lanes for input from Z buffer. This must be a compile time constant. Only the 4 LSB of the argument are used.
zoffsetsunsigned int 4b offset for each lane, applied to input from Z buffer. LSB apply to first lane
zconj bool Selector for conjugation in Z buffer
Note
  • The previous pseudocode is just a simplified representation of how the operation works, when computed internally it will be done using pre-adding
  • For more information on how data selection works from the buffers go here. The data buffer and coefficient buffer in this intrinsic use the general scheme.
  • Parameter 'zstart' must be a compile time constant.
v4cacc48 msc4_conj_sym ( v4cacc48  acc,
v8cint32  xbuff,
int  xstart,
unsigned int  xoffsets,
int  ystart,
bool  xyconj,
v8cint16  zbuff,
int  zstart,
unsigned int  zoffsets,
bool  zconj 
)

Complex symetric conjugate multiply-subtract intrinsic function with dynamic x and z buffer conjugation after computing the selected lanes from the input buffer using small X input buffer.

acc0 -= (z00*x00 + cnj(z00)*y00)
acc1 -= (z10*x10 + cnj(z10)*y10)
acc2 -= (z20*x20 + cnj(z20)*y20)
acc3 -= (z30*x30 + cnj(z30)*y30)

Parameters

Input/OutputType Comments
return v4cacc48 Returned accumulation vector (4 x cint48 lanes)
acc v4cacc48 Incoming accumulation vector (4 x cint48 lanes)
xbuff v8cint32Input buffer of 8 elements of type cint32
xstart int Starting position offset applied to all lanes of input from X buffer.
xoffsets unsigned int 4b offset for each lane, applied to both x and y buffers. LSB apply to first lane
ystart int Starting position offset applied to all lanes for input from Y buffer.
xyconj bool Selector for conjugation in X and Y buffers
zbuff v8cint16Input buffer of 8 elements of type cint16
zstart int Starting position offset applied to all lanes for input from Z buffer. This must be a compile time constant. Only the 4 LSB of the argument are used.
zoffsetsunsigned int 4b offset for each lane, applied to input from Z buffer. LSB apply to first lane
zconj bool Selector for conjugation in Z buffer
Note
  • The previous pseudocode is just a simplified representation of how the operation works, when computed internally it will be done using pre-adding
  • For more information on how data selection works from the buffers go here. The data buffer and coefficient buffer in this intrinsic use the general scheme.
  • Parameter 'zstart' must be a compile time constant.
v4cacc48 msc4_conj_sym ( v4cacc48  acc,
v8cint32  xbuff,
int  xstart,
unsigned int  xoffsets,
v8cint32  ybuff,
int  ystart,
bool  xyconj,
v8cint16  zbuff,
int  zstart,
unsigned int  zoffsets,
bool  zconj 
)

Complex symetric conjugate multiply-subtract intrinsic function with dynamic x and z buffer conjugation after computing the selected lanes from the input buffer using small X input buffer.

acc0 -= (z00*x00 + cnj(z00)*y00)
acc1 -= (z10*x10 + cnj(z10)*y10)
acc2 -= (z20*x20 + cnj(z20)*y20)
acc3 -= (z30*x30 + cnj(z30)*y30)

Parameters

Input/OutputType Comments
return v4cacc48 Returned accumulation vector (4 x cint48 lanes)
acc v4cacc48 Incoming accumulation vector (4 x cint48 lanes)
xbuff v8cint32Input buffer of 8 elements of type cint32
xstart int Starting position offset applied to all lanes of input from X buffer.
xoffsets unsigned int 4b offset for each lane, applied to both x and y buffers. LSB apply to first lane
ybuff v8cint32Right input buffer of 8 elements of type cint32
ystart int Starting position offset applied to all lanes for input from Y buffer.
xyconj bool Selector for conjugation in X and Y buffers
zbuff v8cint16Input buffer of 8 elements of type cint16
zstart int Starting position offset applied to all lanes for input from Z buffer. This must be a compile time constant. Only the 4 LSB of the argument are used.
zoffsetsunsigned int 4b offset for each lane, applied to input from Z buffer. LSB apply to first lane
zconj bool Selector for conjugation in Z buffer
Note
  • The previous pseudocode is just a simplified representation of how the operation works, when computed internally it will be done using pre-adding
  • For more information on how data selection works from the buffers go here. The data buffer and coefficient buffer in this intrinsic use the general scheme.
  • Parameter 'zstart' must be a compile time constant.
v4cacc48 mul4_conj_sym ( v16cint32  xbuff,
int  xstart,
unsigned int  xoffsets,
int  ystart,
bool  xyconj,
v8cint16  zbuff,
int  zstart,
unsigned int  zoffsets,
bool  zconj 
)

Complex symetric conjugate multiply intrinsic function with dynamic x and z buffer conjugation after computing the selected lanes from the input buffer .

acc0 = (z00*x00 + cnj(z00)*y00)
acc1 = (z10*x10 + cnj(z10)*y10)
acc2 = (z20*x20 + cnj(z20)*y20)
acc3 = (z30*x30 + cnj(z30)*y30)

Parameters

Input/OutputType Comments
return v4cacc48 Returned accumulation vector (4 x cint48 lanes)
xbuff v16cint32Input buffer of 16 elements of type cint32
xstart int Starting position offset applied to all lanes of input from X buffer.
xoffsets unsigned int 4b offset for each lane, applied to both x and y buffers. LSB apply to first lane
ystart int Starting position offset applied to all lanes for input from Y buffer.
xyconj bool Selector for conjugation in X and Y buffers
zbuff v8cint16Input buffer of 8 elements of type cint16
zstart int Starting position offset applied to all lanes for input from Z buffer. This must be a compile time constant. Only the 4 LSB of the argument are used.
zoffsetsunsigned int 4b offset for each lane, applied to input from Z buffer. LSB apply to first lane
zconj bool Selector for conjugation in Z buffer
Note
  • The previous pseudocode is just a simplified representation of how the operation works, when computed internally it will be done using pre-adding
  • For more information on how data selection works from the buffers go here. The data buffer and coefficient buffer in this intrinsic use the general scheme.
  • Parameter 'zstart' must be a compile time constant.
v4cacc48 mul4_conj_sym ( v8cint32  xbuff,
int  xstart,
unsigned int  xoffsets,
int  ystart,
bool  xyconj,
v8cint16  zbuff,
int  zstart,
unsigned int  zoffsets,
bool  zconj 
)

Complex symetric conjugate multiply intrinsic function with dynamic x and z buffer conjugation after computing the selected lanes from the input buffer using small X input buffer.

acc0 = (z00*x00 + cnj(z00)*y00)
acc1 = (z10*x10 + cnj(z10)*y10)
acc2 = (z20*x20 + cnj(z20)*y20)
acc3 = (z30*x30 + cnj(z30)*y30)

Parameters

Input/OutputType Comments
return v4cacc48 Returned accumulation vector (4 x cint48 lanes)
xbuff v8cint32Input buffer of 8 elements of type cint32
xstart int Starting position offset applied to all lanes of input from X buffer.
xoffsets unsigned int 4b offset for each lane, applied to both x and y buffers. LSB apply to first lane
ystart int Starting position offset applied to all lanes for input from Y buffer.
xyconj bool Selector for conjugation in X and Y buffers
zbuff v8cint16Input buffer of 8 elements of type cint16
zstart int Starting position offset applied to all lanes for input from Z buffer. This must be a compile time constant. Only the 4 LSB of the argument are used.
zoffsetsunsigned int 4b offset for each lane, applied to input from Z buffer. LSB apply to first lane
zconj bool Selector for conjugation in Z buffer
Note
  • The previous pseudocode is just a simplified representation of how the operation works, when computed internally it will be done using pre-adding
  • For more information on how data selection works from the buffers go here. The data buffer and coefficient buffer in this intrinsic use the general scheme.
  • Parameter 'zstart' must be a compile time constant.
v4cacc48 mul4_conj_sym ( v8cint32  xbuff,
int  xstart,
unsigned int  xoffsets,
v8cint32  ybuff,
int  ystart,
bool  xyconj,
v8cint16  zbuff,
int  zstart,
unsigned int  zoffsets,
bool  zconj 
)

Complex symetric conjugate multiply intrinsic function with dynamic x and z buffer conjugation after computing the selected lanes from the input buffer using small X input buffer.

acc0 = (z00*x00 + cnj(z00)*y00)
acc1 = (z10*x10 + cnj(z10)*y10)
acc2 = (z20*x20 + cnj(z20)*y20)
acc3 = (z30*x30 + cnj(z30)*y30)

Parameters

Input/OutputType Comments
return v4cacc48 Returned accumulation vector (4 x cint48 lanes)
xbuff v8cint32Input buffer of 8 elements of type cint32
xstart int Starting position offset applied to all lanes of input from X buffer.
xoffsets unsigned int 4b offset for each lane, applied to both x and y buffers. LSB apply to first lane
ybuff v8cint32Right input buffer of 8 elements of type cint32
ystart int Starting position offset applied to all lanes for input from Y buffer.
xyconj bool Selector for conjugation in X and Y buffers
zbuff v8cint16Input buffer of 8 elements of type cint16
zstart int Starting position offset applied to all lanes for input from Z buffer. This must be a compile time constant. Only the 4 LSB of the argument are used.
zoffsetsunsigned int 4b offset for each lane, applied to input from Z buffer. LSB apply to first lane
zconj bool Selector for conjugation in Z buffer
Note
  • The previous pseudocode is just a simplified representation of how the operation works, when computed internally it will be done using pre-adding
  • For more information on how data selection works from the buffers go here. The data buffer and coefficient buffer in this intrinsic use the general scheme.
  • Parameter 'zstart' must be a compile time constant.
v4cacc48 negmul4_conj_sym ( v16cint32  xbuff,
int  xstart,
unsigned int  xoffsets,
int  ystart,
bool  xyconj,
v8cint16  zbuff,
int  zstart,
unsigned int  zoffsets,
bool  zconj 
)

Complex symetric conjugate multiply-negate intrinsic function with dynamic x and z buffer conjugation after computing the selected lanes from the input buffer .

acc0 = -( (z00*x00 + cnj(z00)*y00) )
acc1 = -( (z10*x10 + cnj(z10)*y10) )
acc2 = -( (z20*x20 + cnj(z20)*y20) )
acc3 = -( (z30*x30 + cnj(z30)*y30) )

Parameters

Input/OutputType Comments
return v4cacc48 Returned accumulation vector (4 x cint48 lanes)
xbuff v16cint32Input buffer of 16 elements of type cint32
xstart int Starting position offset applied to all lanes of input from X buffer.
xoffsets unsigned int 4b offset for each lane, applied to both x and y buffers. LSB apply to first lane
ystart int Starting position offset applied to all lanes for input from Y buffer.
xyconj bool Selector for conjugation in X and Y buffers
zbuff v8cint16Input buffer of 8 elements of type cint16
zstart int Starting position offset applied to all lanes for input from Z buffer. This must be a compile time constant. Only the 4 LSB of the argument are used.
zoffsetsunsigned int 4b offset for each lane, applied to input from Z buffer. LSB apply to first lane
zconj bool Selector for conjugation in Z buffer
Note
  • The previous pseudocode is just a simplified representation of how the operation works, when computed internally it will be done using pre-adding
  • For more information on how data selection works from the buffers go here. The data buffer and coefficient buffer in this intrinsic use the general scheme.
  • Parameter 'zstart' must be a compile time constant.
v4cacc48 negmul4_conj_sym ( v8cint32  xbuff,
int  xstart,
unsigned int  xoffsets,
int  ystart,
bool  xyconj,
v8cint16  zbuff,
int  zstart,
unsigned int  zoffsets,
bool  zconj 
)

Complex symetric conjugate multiply-negate intrinsic function with dynamic x and z buffer conjugation after computing the selected lanes from the input buffer using small X input buffer.

acc0 = -( (z00*x00 + cnj(z00)*y00) )
acc1 = -( (z10*x10 + cnj(z10)*y10) )
acc2 = -( (z20*x20 + cnj(z20)*y20) )
acc3 = -( (z30*x30 + cnj(z30)*y30) )

Parameters

Input/OutputType Comments
return v4cacc48 Returned accumulation vector (4 x cint48 lanes)
xbuff v8cint32Input buffer of 8 elements of type cint32
xstart int Starting position offset applied to all lanes of input from X buffer.
xoffsets unsigned int 4b offset for each lane, applied to both x and y buffers. LSB apply to first lane
ystart int Starting position offset applied to all lanes for input from Y buffer.
xyconj bool Selector for conjugation in X and Y buffers
zbuff v8cint16Input buffer of 8 elements of type cint16
zstart int Starting position offset applied to all lanes for input from Z buffer. This must be a compile time constant. Only the 4 LSB of the argument are used.
zoffsetsunsigned int 4b offset for each lane, applied to input from Z buffer. LSB apply to first lane
zconj bool Selector for conjugation in Z buffer
Note
  • The previous pseudocode is just a simplified representation of how the operation works, when computed internally it will be done using pre-adding
  • For more information on how data selection works from the buffers go here. The data buffer and coefficient buffer in this intrinsic use the general scheme.
  • Parameter 'zstart' must be a compile time constant.
v4cacc48 negmul4_conj_sym ( v8cint32  xbuff,
int  xstart,
unsigned int  xoffsets,
v8cint32  ybuff,
int  ystart,
bool  xyconj,
v8cint16  zbuff,
int  zstart,
unsigned int  zoffsets,
bool  zconj 
)

Complex symetric conjugate multiply-negate intrinsic function with dynamic x and z buffer conjugation after computing the selected lanes from the input buffer using small X input buffer.

acc0 = -( (z00*x00 + cnj(z00)*y00) )
acc1 = -( (z10*x10 + cnj(z10)*y10) )
acc2 = -( (z20*x20 + cnj(z20)*y20) )
acc3 = -( (z30*x30 + cnj(z30)*y30) )

Parameters

Input/OutputType Comments
return v4cacc48 Returned accumulation vector (4 x cint48 lanes)
xbuff v8cint32Input buffer of 8 elements of type cint32
xstart int Starting position offset applied to all lanes of input from X buffer.
xoffsets unsigned int 4b offset for each lane, applied to both x and y buffers. LSB apply to first lane
ybuff v8cint32Right input buffer of 8 elements of type cint32
ystart int Starting position offset applied to all lanes for input from Y buffer.
xyconj bool Selector for conjugation in X and Y buffers
zbuff v8cint16Input buffer of 8 elements of type cint16
zstart int Starting position offset applied to all lanes for input from Z buffer. This must be a compile time constant. Only the 4 LSB of the argument are used.
zoffsetsunsigned int 4b offset for each lane, applied to input from Z buffer. LSB apply to first lane
zconj bool Selector for conjugation in Z buffer
Note
  • The previous pseudocode is just a simplified representation of how the operation works, when computed internally it will be done using pre-adding
  • For more information on how data selection works from the buffers go here. The data buffer and coefficient buffer in this intrinsic use the general scheme.
  • Parameter 'zstart' must be a compile time constant.