| AI Engine Intrinsics User Guide (AIE) v2025.2

Loading...
Searching...
No Matches
Functions
X and Y buffer conjugation.
Intrinsics » Vector Operations » MAC intrinsics » Self-Multiplication » Advanced » 16 bit x 16 bit » 16-bit Complex x 16-bit Complex

## Overview

16-bit Complex self multiplication intrinsics. X and Y buffer conjugation.

## Functions
v4cacc48 | mac4_cc (v4cacc48 acc, v16cint16 xbuff, int xstart, unsigned int xoffsets, int xstep, int ystart, unsigned int yoffsets, int ystep)
| Complex multiply-accumulate intrinsic function with X and Y buffer conjugation using small X input buffer.
v4cacc48 | mac4_cc (v4cacc48 acc, v16cint16 xbuff, int xstart, unsigned int xoffsets, int xstep, v16cint16 ybuff, int ystart, unsigned int yoffsets, int ystep)
| Complex multiply-accumulate intrinsic function with X and Y buffer conjugation using small X input buffer.
v4cacc48 | mac4_cc (v4cacc48 acc, v32cint16 xbuff, int xstart, unsigned int xoffsets, int xstep, int ystart, unsigned int yoffsets, int ystep)
| Complex multiply-accumulate intrinsic function with X and Y buffer conjugation .
v8cacc48 | mac8_cc (v8cacc48 acc, v16cint16 xbuff, int xstart, unsigned int xoffsets, int ystart, unsigned int yoffsets)
| Complex multiply-accumulate intrinsic function with X and Y buffer conjugation using small X input buffer.
v8cacc48 | mac8_cc (v8cacc48 acc, v16cint16 xbuff, int xstart, unsigned int xoffsets, v16cint16 ybuff, int ystart, unsigned int yoffsets)
| Complex multiply-accumulate intrinsic function with X and Y buffer conjugation using small X input buffer.
v8cacc48 | mac8_cc (v8cacc48 acc, v32cint16 xbuff, int xstart, unsigned int xoffsets, int ystart, unsigned int yoffsets)
| Complex multiply-accumulate intrinsic function with X and Y buffer conjugation .
v4cacc48 | msc4_cc (v4cacc48 acc, v16cint16 xbuff, int xstart, unsigned int xoffsets, int xstep, int ystart, unsigned int yoffsets, int ystep)
| Complex multiply-subtract intrinsic function with X and Y buffer conjugation using small X input buffer.
v4cacc48 | msc4_cc (v4cacc48 acc, v16cint16 xbuff, int xstart, unsigned int xoffsets, int xstep, v16cint16 ybuff, int ystart, unsigned int yoffsets, int ystep)
| Complex multiply-subtract intrinsic function with X and Y buffer conjugation using small X input buffer.
v4cacc48 | msc4_cc (v4cacc48 acc, v32cint16 xbuff, int xstart, unsigned int xoffsets, int xstep, int ystart, unsigned int yoffsets, int ystep)
| Complex multiply-subtract intrinsic function with X and Y buffer conjugation .
v8cacc48 | msc8_cc (v8cacc48 acc, v16cint16 xbuff, int xstart, unsigned int xoffsets, int ystart, unsigned int yoffsets)
| Complex multiply-subtract intrinsic function with X and Y buffer conjugation using small X input buffer.
v8cacc48 | msc8_cc (v8cacc48 acc, v16cint16 xbuff, int xstart, unsigned int xoffsets, v16cint16 ybuff, int ystart, unsigned int yoffsets)
| Complex multiply-subtract intrinsic function with X and Y buffer conjugation using small X input buffer.
v8cacc48 | msc8_cc (v8cacc48 acc, v32cint16 xbuff, int xstart, unsigned int xoffsets, int ystart, unsigned int yoffsets)
| Complex multiply-subtract intrinsic function with X and Y buffer conjugation .
v4cacc48 | mul4_cc (v16cint16 xbuff, int xstart, unsigned int xoffsets, int xstep, int ystart, unsigned int yoffsets, int ystep)
| Complex multiply intrinsic function with X and Y buffer conjugation using small X input buffer.
v4cacc48 | mul4_cc (v16cint16 xbuff, int xstart, unsigned int xoffsets, int xstep, v16cint16 ybuff, int ystart, unsigned int yoffsets, int ystep)
| Complex multiply intrinsic function with X and Y buffer conjugation using small X input buffer.
v4cacc48 | mul4_cc (v32cint16 xbuff, int xstart, unsigned int xoffsets, int xstep, int ystart, unsigned int yoffsets, int ystep)
| Complex multiply intrinsic function with X and Y buffer conjugation .
v8cacc48 | mul8_cc (v16cint16 xbuff, int xstart, unsigned int xoffsets, int ystart, unsigned int yoffsets)
| Complex multiply intrinsic function with X and Y buffer conjugation using small X input buffer.
v8cacc48 | mul8_cc (v16cint16 xbuff, int xstart, unsigned int xoffsets, v16cint16 ybuff, int ystart, unsigned int yoffsets)
| Complex multiply intrinsic function with X and Y buffer conjugation using small X input buffer.
v8cacc48 | mul8_cc (v32cint16 xbuff, int xstart, unsigned int xoffsets, int ystart, unsigned int yoffsets)
| Complex multiply intrinsic function with X and Y buffer conjugation .
v4cacc48 | negmul4_cc (v16cint16 xbuff, int xstart, unsigned int xoffsets, int xstep, int ystart, unsigned int yoffsets, int ystep)
| Complex multiply-negate intrinsic function with X and Y buffer conjugation using small X input buffer.
v4cacc48 | negmul4_cc (v16cint16 xbuff, int xstart, unsigned int xoffsets, int xstep, v16cint16 ybuff, int ystart, unsigned int yoffsets, int ystep)
| Complex multiply-negate intrinsic function with X and Y buffer conjugation using small X input buffer.
v4cacc48 | negmul4_cc (v32cint16 xbuff, int xstart, unsigned int xoffsets, int xstep, int ystart, unsigned int yoffsets, int ystep)
| Complex multiply-negate intrinsic function with X and Y buffer conjugation .
v8cacc48 | negmul8_cc (v16cint16 xbuff, int xstart, unsigned int xoffsets, int ystart, unsigned int yoffsets)
| Complex multiply-negate intrinsic function with X and Y buffer conjugation using small X input buffer.
v8cacc48 | negmul8_cc (v16cint16 xbuff, int xstart, unsigned int xoffsets, v16cint16 ybuff, int ystart, unsigned int yoffsets)
| Complex multiply-negate intrinsic function with X and Y buffer conjugation using small X input buffer.
v8cacc48 | negmul8_cc (v32cint16 xbuff, int xstart, unsigned int xoffsets, int ystart, unsigned int yoffsets)
| Complex multiply-negate intrinsic function with X and Y buffer conjugation .

## Function Documentation

## ◆ mac4_cc() [1/3]

v4cacc48 mac4_cc | ( | v4cacc48 | acc,
|  | v16cint16 | xbuff,
|  | int | xstart,
|  | unsigned int | xoffsets,
|  | int | xstep,
|  | int | ystart,
|  | unsigned int | yoffsets,
|  | int | ystep
| ) |  |

Complex multiply-accumulate intrinsic function with X and Y buffer conjugation using small X input buffer.

acc0 += cnj(x00)*cnj(y00) + cnj(x01)*cnj(y01)
acc1 += cnj(x10)*cnj(y10) + cnj(x11)*cnj(y11)
acc2 += cnj(x20)*cnj(y20) + cnj(x21)*cnj(y21)
acc3 += cnj(x30)*cnj(y30) + cnj(x31)*cnj(y31)

Returns
  Returned accumulation vector (4 x cint48 lanes)

Parameters

  acc | Incoming accumulation vector (4 x cint48 lanes)
  xbuff | Input buffer of 16 elements of type cint16
  xstart | Starting position offset applied to all lanes of input from X buffer
  xoffsets | 4b offset for each lane in the xbuffer. LSB apply to first lane
  xstep | Step between each column for selection in the xbuffer
  ystart | Starting position offset applied to all lanes of input from xbuffer for the second input
  yoffsets | 4b offset for each lane in the xbuffer. LSB apply to first lane
  ystep | Step between each column for selection in the xbuffer

Note
  - For more information on how data selection works from the buffers go here.

## ◆ mac4_cc() [2/3]

v4cacc48 mac4_cc | ( | v4cacc48 | acc,
|  | v16cint16 | xbuff,
|  | int | xstart,
|  | unsigned int | xoffsets,
|  | int | xstep,
|  | v16cint16 | ybuff,
|  | int | ystart,
|  | unsigned int | yoffsets,
|  | int | ystep
| ) |  |

Complex multiply-accumulate intrinsic function with X and Y buffer conjugation using small X input buffer.

acc0 += cnj(x00)*cnj(y00) + cnj(x01)*cnj(y01)
acc1 += cnj(x10)*cnj(y10) + cnj(x11)*cnj(y11)
acc2 += cnj(x20)*cnj(y20) + cnj(x21)*cnj(y21)
acc3 += cnj(x30)*cnj(y30) + cnj(x31)*cnj(y31)

Returns
  Returned accumulation vector (4 x cint48 lanes)

Parameters

  acc | Incoming accumulation vector (4 x cint48 lanes)
  xbuff | Input buffer of 16 elements of type cint16
  xstart | Starting position offset applied to all lanes of input from X buffer
  xoffsets | 4b offset for each lane in the xbuffer. LSB apply to first lane
  xstep | Step between each column for selection in the xbuffer
  ybuff | Right input buffer of 16 elements of type cint16
  ystart | Starting position offset applied to all lanes of input from ybuffer for the second input
  yoffsets | 4b offset for each lane in the xbuffer. LSB apply to first lane
  ystep | Step between each column for selection in the ybuffer

Note
  - For more information on how data selection works from the buffers go here.

## ◆ mac4_cc() [3/3]

v4cacc48 mac4_cc | ( | v4cacc48 | acc,
|  | v32cint16 | xbuff,
|  | int | xstart,
|  | unsigned int | xoffsets,
|  | int | xstep,
|  | int | ystart,
|  | unsigned int | yoffsets,
|  | int | ystep
| ) |  |

Complex multiply-accumulate intrinsic function with X and Y buffer conjugation .

acc0 += cnj(x00)*cnj(y00) + cnj(x01)*cnj(y01)
acc1 += cnj(x10)*cnj(y10) + cnj(x11)*cnj(y11)
acc2 += cnj(x20)*cnj(y20) + cnj(x21)*cnj(y21)
acc3 += cnj(x30)*cnj(y30) + cnj(x31)*cnj(y31)

Returns
  Returned accumulation vector (4 x cint48 lanes)

Parameters

  acc | Incoming accumulation vector (4 x cint48 lanes)
  xbuff | Input buffer of 32 elements of type cint16
  xstart | Starting position offset applied to all lanes of input from X buffer
  xoffsets | 4b offset for each lane in the xbuffer. LSB apply to first lane
  xstep | Step between each column for selection in the xbuffer
  ystart | Starting position offset applied to all lanes of input from xbuffer for the second input
  yoffsets | 4b offset for each lane in the xbuffer. LSB apply to first lane
  ystep | Step between each column for selection in the xbuffer

Note
  - For more information on how data selection works from the buffers go here.

## ◆ mac8_cc() [1/3]

v8cacc48 mac8_cc | ( | v8cacc48 | acc,
|  | v16cint16 | xbuff,
|  | int | xstart,
|  | unsigned int | xoffsets,
|  | int | ystart,
|  | unsigned int | yoffsets
| ) |  |

Complex multiply-accumulate intrinsic function with X and Y buffer conjugation using small X input buffer.

acc0 += cnj(x00)*cnj(y00)
acc1 += cnj(x10)*cnj(y10)
acc2 += cnj(x20)*cnj(y20)
acc3 += cnj(x30)*cnj(y30)
acc4 += cnj(x40)*cnj(y40)
acc5 += cnj(x50)*cnj(y50)
acc6 += cnj(x60)*cnj(y60)
acc7 += cnj(x70)*cnj(y70)

Returns
  Returned accumulation vector (8 x cint48 lanes)

Parameters

  acc | Incoming accumulation vector (8 x cint48 lanes)
  xbuff | Input buffer of 16 elements of type cint16
  xstart | Starting position offset applied to all lanes of input from X buffer
  xoffsets | 4b offset for each lane in the xbuffer. LSB apply to first lane
  ystart | Starting position offset applied to all lanes of input from xbuffer for the second input
  yoffsets | 4b offset for each lane in the xbuffer. LSB apply to first lane

Note
  - For more information on how data selection works from the buffers go here.

## ◆ mac8_cc() [2/3]

v8cacc48 mac8_cc | ( | v8cacc48 | acc,
|  | v16cint16 | xbuff,
|  | int | xstart,
|  | unsigned int | xoffsets,
|  | v16cint16 | ybuff,
|  | int | ystart,
|  | unsigned int | yoffsets
| ) |  |

Complex multiply-accumulate intrinsic function with X and Y buffer conjugation using small X input buffer.

acc0 += cnj(x00)*cnj(y00)
acc1 += cnj(x10)*cnj(y10)
acc2 += cnj(x20)*cnj(y20)
acc3 += cnj(x30)*cnj(y30)
acc4 += cnj(x40)*cnj(y40)
acc5 += cnj(x50)*cnj(y50)
acc6 += cnj(x60)*cnj(y60)
acc7 += cnj(x70)*cnj(y70)

Returns
  Returned accumulation vector (8 x cint48 lanes)

Parameters

  acc | Incoming accumulation vector (8 x cint48 lanes)
  xbuff | Input buffer of 16 elements of type cint16
  xstart | Starting position offset applied to all lanes of input from X buffer
  xoffsets | 4b offset for each lane in the xbuffer. LSB apply to first lane
  ybuff | Right input buffer of 16 elements of type cint16
  ystart | Starting position offset applied to all lanes of input from ybuffer for the second input
  yoffsets | 4b offset for each lane in the xbuffer. LSB apply to first lane

Note
  - For more information on how data selection works from the buffers go here.

## ◆ mac8_cc() [3/3]

v8cacc48 mac8_cc | ( | v8cacc48 | acc,
|  | v32cint16 | xbuff,
|  | int | xstart,
|  | unsigned int | xoffsets,
|  | int | ystart,
|  | unsigned int | yoffsets
| ) |  |

Complex multiply-accumulate intrinsic function with X and Y buffer conjugation .

acc0 += cnj(x00)*cnj(y00)
acc1 += cnj(x10)*cnj(y10)
acc2 += cnj(x20)*cnj(y20)
acc3 += cnj(x30)*cnj(y30)
acc4 += cnj(x40)*cnj(y40)
acc5 += cnj(x50)*cnj(y50)
acc6 += cnj(x60)*cnj(y60)
acc7 += cnj(x70)*cnj(y70)

Returns
  Returned accumulation vector (8 x cint48 lanes)

Parameters

  acc | Incoming accumulation vector (8 x cint48 lanes)
  xbuff | Input buffer of 32 elements of type cint16
  xstart | Starting position offset applied to all lanes of input from X buffer
  xoffsets | 4b offset for each lane in the xbuffer. LSB apply to first lane
  ystart | Starting position offset applied to all lanes of input from xbuffer for the second input
  yoffsets | 4b offset for each lane in the xbuffer. LSB apply to first lane

Note
  - For more information on how data selection works from the buffers go here.

## ◆ msc4_cc() [1/3]

v4cacc48 msc4_cc | ( | v4cacc48 | acc,
|  | v16cint16 | xbuff,
|  | int | xstart,
|  | unsigned int | xoffsets,
|  | int | xstep,
|  | int | ystart,
|  | unsigned int | yoffsets,
|  | int | ystep
| ) |  |

Complex multiply-subtract intrinsic function with X and Y buffer conjugation using small X input buffer.

acc0 -= cnj(x00)*cnj(y00) + cnj(x01)*cnj(y01)
acc1 -= cnj(x10)*cnj(y10) + cnj(x11)*cnj(y11)
acc2 -= cnj(x20)*cnj(y20) + cnj(x21)*cnj(y21)
acc3 -= cnj(x30)*cnj(y30) + cnj(x31)*cnj(y31)

Returns
  Returned accumulation vector (4 x cint48 lanes)

Parameters

  acc | Incoming accumulation vector (4 x cint48 lanes)
  xbuff | Input buffer of 16 elements of type cint16
  xstart | Starting position offset applied to all lanes of input from X buffer
  xoffsets | 4b offset for each lane in the xbuffer. LSB apply to first lane
  xstep | Step between each column for selection in the xbuffer
  ystart | Starting position offset applied to all lanes of input from xbuffer for the second input
  yoffsets | 4b offset for each lane in the xbuffer. LSB apply to first lane
  ystep | Step between each column for selection in the xbuffer

Note
  - For more information on how data selection works from the buffers go here.

## ◆ msc4_cc() [2/3]

v4cacc48 msc4_cc | ( | v4cacc48 | acc,
|  | v16cint16 | xbuff,
|  | int | xstart,
|  | unsigned int | xoffsets,
|  | int | xstep,
|  | v16cint16 | ybuff,
|  | int | ystart,
|  | unsigned int | yoffsets,
|  | int | ystep
| ) |  |

Complex multiply-subtract intrinsic function with X and Y buffer conjugation using small X input buffer.

acc0 -= cnj(x00)*cnj(y00) + cnj(x01)*cnj(y01)
acc1 -= cnj(x10)*cnj(y10) + cnj(x11)*cnj(y11)
acc2 -= cnj(x20)*cnj(y20) + cnj(x21)*cnj(y21)
acc3 -= cnj(x30)*cnj(y30) + cnj(x31)*cnj(y31)

Returns
  Returned accumulation vector (4 x cint48 lanes)

Parameters

  acc | Incoming accumulation vector (4 x cint48 lanes)
  xbuff | Input buffer of 16 elements of type cint16
  xstart | Starting position offset applied to all lanes of input from X buffer
  xoffsets | 4b offset for each lane in the xbuffer. LSB apply to first lane
  xstep | Step between each column for selection in the xbuffer
  ybuff | Right input buffer of 16 elements of type cint16
  ystart | Starting position offset applied to all lanes of input from ybuffer for the second input
  yoffsets | 4b offset for each lane in the xbuffer. LSB apply to first lane
  ystep | Step between each column for selection in the ybuffer

Note
  - For more information on how data selection works from the buffers go here.

## ◆ msc4_cc() [3/3]

v4cacc48 msc4_cc | ( | v4cacc48 | acc,
|  | v32cint16 | xbuff,
|  | int | xstart,
|  | unsigned int | xoffsets,
|  | int | xstep,
|  | int | ystart,
|  | unsigned int | yoffsets,
|  | int | ystep
| ) |  |

Complex multiply-subtract intrinsic function with X and Y buffer conjugation .

acc0 -= cnj(x00)*cnj(y00) + cnj(x01)*cnj(y01)
acc1 -= cnj(x10)*cnj(y10) + cnj(x11)*cnj(y11)
acc2 -= cnj(x20)*cnj(y20) + cnj(x21)*cnj(y21)
acc3 -= cnj(x30)*cnj(y30) + cnj(x31)*cnj(y31)

Returns
  Returned accumulation vector (4 x cint48 lanes)

Parameters

  acc | Incoming accumulation vector (4 x cint48 lanes)
  xbuff | Input buffer of 32 elements of type cint16
  xstart | Starting position offset applied to all lanes of input from X buffer
  xoffsets | 4b offset for each lane in the xbuffer. LSB apply to first lane
  xstep | Step between each column for selection in the xbuffer
  ystart | Starting position offset applied to all lanes of input from xbuffer for the second input
  yoffsets | 4b offset for each lane in the xbuffer. LSB apply to first lane
  ystep | Step between each column for selection in the xbuffer

Note
  - For more information on how data selection works from the buffers go here.

## ◆ msc8_cc() [1/3]

v8cacc48 msc8_cc | ( | v8cacc48 | acc,
|  | v16cint16 | xbuff,
|  | int | xstart,
|  | unsigned int | xoffsets,
|  | int | ystart,
|  | unsigned int | yoffsets
| ) |  |

Complex multiply-subtract intrinsic function with X and Y buffer conjugation using small X input buffer.

acc0 -= cnj(x00)*cnj(y00)
acc1 -= cnj(x10)*cnj(y10)
acc2 -= cnj(x20)*cnj(y20)
acc3 -= cnj(x30)*cnj(y30)
acc4 -= cnj(x40)*cnj(y40)
acc5 -= cnj(x50)*cnj(y50)
acc6 -= cnj(x60)*cnj(y60)
acc7 -= cnj(x70)*cnj(y70)

Returns
  Returned accumulation vector (8 x cint48 lanes)

Parameters

  acc | Incoming accumulation vector (8 x cint48 lanes)
  xbuff | Input buffer of 16 elements of type cint16
  xstart | Starting position offset applied to all lanes of input from X buffer
  xoffsets | 4b offset for each lane in the xbuffer. LSB apply to first lane
  ystart | Starting position offset applied to all lanes of input from xbuffer for the second input
  yoffsets | 4b offset for each lane in the xbuffer. LSB apply to first lane

Note
  - For more information on how data selection works from the buffers go here.

## ◆ msc8_cc() [2/3]

v8cacc48 msc8_cc | ( | v8cacc48 | acc,
|  | v16cint16 | xbuff,
|  | int | xstart,
|  | unsigned int | xoffsets,
|  | v16cint16 | ybuff,
|  | int | ystart,
|  | unsigned int | yoffsets
| ) |  |

Complex multiply-subtract intrinsic function with X and Y buffer conjugation using small X input buffer.

acc0 -= cnj(x00)*cnj(y00)
acc1 -= cnj(x10)*cnj(y10)
acc2 -= cnj(x20)*cnj(y20)
acc3 -= cnj(x30)*cnj(y30)
acc4 -= cnj(x40)*cnj(y40)
acc5 -= cnj(x50)*cnj(y50)
acc6 -= cnj(x60)*cnj(y60)
acc7 -= cnj(x70)*cnj(y70)

Returns
  Returned accumulation vector (8 x cint48 lanes)

Parameters

  acc | Incoming accumulation vector (8 x cint48 lanes)
  xbuff | Input buffer of 16 elements of type cint16
  xstart | Starting position offset applied to all lanes of input from X buffer
  xoffsets | 4b offset for each lane in the xbuffer. LSB apply to first lane
  ybuff | Right input buffer of 16 elements of type cint16
  ystart | Starting position offset applied to all lanes of input from ybuffer for the second input
  yoffsets | 4b offset for each lane in the xbuffer. LSB apply to first lane

Note
  - For more information on how data selection works from the buffers go here.

## ◆ msc8_cc() [3/3]

v8cacc48 msc8_cc | ( | v8cacc48 | acc,
|  | v32cint16 | xbuff,
|  | int | xstart,
|  | unsigned int | xoffsets,
|  | int | ystart,
|  | unsigned int | yoffsets
| ) |  |

Complex multiply-subtract intrinsic function with X and Y buffer conjugation .

acc0 -= cnj(x00)*cnj(y00)
acc1 -= cnj(x10)*cnj(y10)
acc2 -= cnj(x20)*cnj(y20)
acc3 -= cnj(x30)*cnj(y30)
acc4 -= cnj(x40)*cnj(y40)
acc5 -= cnj(x50)*cnj(y50)
acc6 -= cnj(x60)*cnj(y60)
acc7 -= cnj(x70)*cnj(y70)

Returns
  Returned accumulation vector (8 x cint48 lanes)

Parameters

  acc | Incoming accumulation vector (8 x cint48 lanes)
  xbuff | Input buffer of 32 elements of type cint16
  xstart | Starting position offset applied to all lanes of input from X buffer
  xoffsets | 4b offset for each lane in the xbuffer. LSB apply to first lane
  ystart | Starting position offset applied to all lanes of input from xbuffer for the second input
  yoffsets | 4b offset for each lane in the xbuffer. LSB apply to first lane

Note
  - For more information on how data selection works from the buffers go here.

## ◆ mul4_cc() [1/3]

v4cacc48 mul4_cc | ( | v16cint16 | xbuff,
|  | int | xstart,
|  | unsigned int | xoffsets,
|  | int | xstep,
|  | int | ystart,
|  | unsigned int | yoffsets,
|  | int | ystep
| ) |  |

Complex multiply intrinsic function with X and Y buffer conjugation using small X input buffer.

acc0 = cnj(x00)*cnj(y00) + cnj(x01)*cnj(y01)
acc1 = cnj(x10)*cnj(y10) + cnj(x11)*cnj(y11)
acc2 = cnj(x20)*cnj(y20) + cnj(x21)*cnj(y21)
acc3 = cnj(x30)*cnj(y30) + cnj(x31)*cnj(y31)

Returns
  Returned accumulation vector (4 x cint48 lanes)

Parameters

  xbuff | Input buffer of 16 elements of type cint16
  xstart | Starting position offset applied to all lanes of input from X buffer
  xoffsets | 4b offset for each lane in the xbuffer. LSB apply to first lane
  xstep | Step between each column for selection in the xbuffer
  ystart | Starting position offset applied to all lanes of input from xbuffer for the second input
  yoffsets | 4b offset for each lane in the xbuffer. LSB apply to first lane
  ystep | Step between each column for selection in the xbuffer

Note
  - For more information on how data selection works from the buffers go here.

## ◆ mul4_cc() [2/3]

v4cacc48 mul4_cc | ( | v16cint16 | xbuff,
|  | int | xstart,
|  | unsigned int | xoffsets,
|  | int | xstep,
|  | v16cint16 | ybuff,
|  | int | ystart,
|  | unsigned int | yoffsets,
|  | int | ystep
| ) |  |

Complex multiply intrinsic function with X and Y buffer conjugation using small X input buffer.

acc0 = cnj(x00)*cnj(y00) + cnj(x01)*cnj(y01)
acc1 = cnj(x10)*cnj(y10) + cnj(x11)*cnj(y11)
acc2 = cnj(x20)*cnj(y20) + cnj(x21)*cnj(y21)
acc3 = cnj(x30)*cnj(y30) + cnj(x31)*cnj(y31)

Returns
  Returned accumulation vector (4 x cint48 lanes)

Parameters

  xbuff | Input buffer of 16 elements of type cint16
  xstart | Starting position offset applied to all lanes of input from X buffer
  xoffsets | 4b offset for each lane in the xbuffer. LSB apply to first lane
  xstep | Step between each column for selection in the xbuffer
  ybuff | Right input buffer of 16 elements of type cint16
  ystart | Starting position offset applied to all lanes of input from ybuffer for the second input
  yoffsets | 4b offset for each lane in the xbuffer. LSB apply to first lane
  ystep | Step between each column for selection in the ybuffer

Note
  - For more information on how data selection works from the buffers go here.

## ◆ mul4_cc() [3/3]

v4cacc48 mul4_cc | ( | v32cint16 | xbuff,
|  | int | xstart,
|  | unsigned int | xoffsets,
|  | int | xstep,
|  | int | ystart,
|  | unsigned int | yoffsets,
|  | int | ystep
| ) |  |

Complex multiply intrinsic function with X and Y buffer conjugation .

acc0 = cnj(x00)*cnj(y00) + cnj(x01)*cnj(y01)
acc1 = cnj(x10)*cnj(y10) + cnj(x11)*cnj(y11)
acc2 = cnj(x20)*cnj(y20) + cnj(x21)*cnj(y21)
acc3 = cnj(x30)*cnj(y30) + cnj(x31)*cnj(y31)

Returns
  Returned accumulation vector (4 x cint48 lanes)

Parameters

  xbuff | Input buffer of 32 elements of type cint16
  xstart | Starting position offset applied to all lanes of input from X buffer
  xoffsets | 4b offset for each lane in the xbuffer. LSB apply to first lane
  xstep | Step between each column for selection in the xbuffer
  ystart | Starting position offset applied to all lanes of input from xbuffer for the second input
  yoffsets | 4b offset for each lane in the xbuffer. LSB apply to first lane
  ystep | Step between each column for selection in the xbuffer

Note
  - For more information on how data selection works from the buffers go here.

## ◆ mul8_cc() [1/3]

v8cacc48 mul8_cc | ( | v16cint16 | xbuff,
|  | int | xstart,
|  | unsigned int | xoffsets,
|  | int | ystart,
|  | unsigned int | yoffsets
| ) |  |

Complex multiply intrinsic function with X and Y buffer conjugation using small X input buffer.

acc0 = cnj(x00)*cnj(y00)
acc1 = cnj(x10)*cnj(y10)
acc2 = cnj(x20)*cnj(y20)
acc3 = cnj(x30)*cnj(y30)
acc4 = cnj(x40)*cnj(y40)
acc5 = cnj(x50)*cnj(y50)
acc6 = cnj(x60)*cnj(y60)
acc7 = cnj(x70)*cnj(y70)

Returns
  Returned accumulation vector (8 x cint48 lanes)

Parameters

  xbuff | Input buffer of 16 elements of type cint16
  xstart | Starting position offset applied to all lanes of input from X buffer
  xoffsets | 4b offset for each lane in the xbuffer. LSB apply to first lane
  ystart | Starting position offset applied to all lanes of input from xbuffer for the second input
  yoffsets | 4b offset for each lane in the xbuffer. LSB apply to first lane

Note
  - For more information on how data selection works from the buffers go here.

## ◆ mul8_cc() [2/3]

v8cacc48 mul8_cc | ( | v16cint16 | xbuff,
|  | int | xstart,
|  | unsigned int | xoffsets,
|  | v16cint16 | ybuff,
|  | int | ystart,
|  | unsigned int | yoffsets
| ) |  |

Complex multiply intrinsic function with X and Y buffer conjugation using small X input buffer.

acc0 = cnj(x00)*cnj(y00)
acc1 = cnj(x10)*cnj(y10)
acc2 = cnj(x20)*cnj(y20)
acc3 = cnj(x30)*cnj(y30)
acc4 = cnj(x40)*cnj(y40)
acc5 = cnj(x50)*cnj(y50)
acc6 = cnj(x60)*cnj(y60)
acc7 = cnj(x70)*cnj(y70)

Returns
  Returned accumulation vector (8 x cint48 lanes)

Parameters

  xbuff | Input buffer of 16 elements of type cint16
  xstart | Starting position offset applied to all lanes of input from X buffer
  xoffsets | 4b offset for each lane in the xbuffer. LSB apply to first lane
  ybuff | Right input buffer of 16 elements of type cint16
  ystart | Starting position offset applied to all lanes of input from ybuffer for the second input
  yoffsets | 4b offset for each lane in the xbuffer. LSB apply to first lane

Note
  - For more information on how data selection works from the buffers go here.

## ◆ mul8_cc() [3/3]

v8cacc48 mul8_cc | ( | v32cint16 | xbuff,
|  | int | xstart,
|  | unsigned int | xoffsets,
|  | int | ystart,
|  | unsigned int | yoffsets
| ) |  |

Complex multiply intrinsic function with X and Y buffer conjugation .

acc0 = cnj(x00)*cnj(y00)
acc1 = cnj(x10)*cnj(y10)
acc2 = cnj(x20)*cnj(y20)
acc3 = cnj(x30)*cnj(y30)
acc4 = cnj(x40)*cnj(y40)
acc5 = cnj(x50)*cnj(y50)
acc6 = cnj(x60)*cnj(y60)
acc7 = cnj(x70)*cnj(y70)

Returns
  Returned accumulation vector (8 x cint48 lanes)

Parameters

  xbuff | Input buffer of 32 elements of type cint16
  xstart | Starting position offset applied to all lanes of input from X buffer
  xoffsets | 4b offset for each lane in the xbuffer. LSB apply to first lane
  ystart | Starting position offset applied to all lanes of input from xbuffer for the second input
  yoffsets | 4b offset for each lane in the xbuffer. LSB apply to first lane

Note
  - For more information on how data selection works from the buffers go here.

## ◆ negmul4_cc() [1/3]

v4cacc48 negmul4_cc | ( | v16cint16 | xbuff,
|  | int | xstart,
|  | unsigned int | xoffsets,
|  | int | xstep,
|  | int | ystart,
|  | unsigned int | yoffsets,
|  | int | ystep
| ) |  |

Complex multiply-negate intrinsic function with X and Y buffer conjugation using small X input buffer.

acc0 = -( cnj(x00)*cnj(y00) + cnj(x01)*cnj(y01) )
acc1 = -( cnj(x10)*cnj(y10) + cnj(x11)*cnj(y11) )
acc2 = -( cnj(x20)*cnj(y20) + cnj(x21)*cnj(y21) )
acc3 = -( cnj(x30)*cnj(y30) + cnj(x31)*cnj(y31) )

Returns
  Returned accumulation vector (4 x cint48 lanes)

Parameters

  xbuff | Input buffer of 16 elements of type cint16
  xstart | Starting position offset applied to all lanes of input from X buffer
  xoffsets | 4b offset for each lane in the xbuffer. LSB apply to first lane
  xstep | Step between each column for selection in the xbuffer
  ystart | Starting position offset applied to all lanes of input from xbuffer for the second input
  yoffsets | 4b offset for each lane in the xbuffer. LSB apply to first lane
  ystep | Step between each column for selection in the xbuffer

Note
  - For more information on how data selection works from the buffers go here.

## ◆ negmul4_cc() [2/3]

v4cacc48 negmul4_cc | ( | v16cint16 | xbuff,
|  | int | xstart,
|  | unsigned int | xoffsets,
|  | int | xstep,
|  | v16cint16 | ybuff,
|  | int | ystart,
|  | unsigned int | yoffsets,
|  | int | ystep
| ) |  |

Complex multiply-negate intrinsic function with X and Y buffer conjugation using small X input buffer.

acc0 = -( cnj(x00)*cnj(y00) + cnj(x01)*cnj(y01) )
acc1 = -( cnj(x10)*cnj(y10) + cnj(x11)*cnj(y11) )
acc2 = -( cnj(x20)*cnj(y20) + cnj(x21)*cnj(y21) )
acc3 = -( cnj(x30)*cnj(y30) + cnj(x31)*cnj(y31) )

Returns
  Returned accumulation vector (4 x cint48 lanes)

Parameters

  xbuff | Input buffer of 16 elements of type cint16
  xstart | Starting position offset applied to all lanes of input from X buffer
  xoffsets | 4b offset for each lane in the xbuffer. LSB apply to first lane
  xstep | Step between each column for selection in the xbuffer
  ybuff | Right input buffer of 16 elements of type cint16
  ystart | Starting position offset applied to all lanes of input from ybuffer for the second input
  yoffsets | 4b offset for each lane in the xbuffer. LSB apply to first lane
  ystep | Step between each column for selection in the ybuffer

Note
  - For more information on how data selection works from the buffers go here.

## ◆ negmul4_cc() [3/3]

v4cacc48 negmul4_cc | ( | v32cint16 | xbuff,
|  | int | xstart,
|  | unsigned int | xoffsets,
|  | int | xstep,
|  | int | ystart,
|  | unsigned int | yoffsets,
|  | int | ystep
| ) |  |

Complex multiply-negate intrinsic function with X and Y buffer conjugation .

acc0 = -( cnj(x00)*cnj(y00) + cnj(x01)*cnj(y01) )
acc1 = -( cnj(x10)*cnj(y10) + cnj(x11)*cnj(y11) )
acc2 = -( cnj(x20)*cnj(y20) + cnj(x21)*cnj(y21) )
acc3 = -( cnj(x30)*cnj(y30) + cnj(x31)*cnj(y31) )

Returns
  Returned accumulation vector (4 x cint48 lanes)

Parameters

  xbuff | Input buffer of 32 elements of type cint16
  xstart | Starting position offset applied to all lanes of input from X buffer
  xoffsets | 4b offset for each lane in the xbuffer. LSB apply to first lane
  xstep | Step between each column for selection in the xbuffer
  ystart | Starting position offset applied to all lanes of input from xbuffer for the second input
  yoffsets | 4b offset for each lane in the xbuffer. LSB apply to first lane
  ystep | Step between each column for selection in the xbuffer

Note
  - For more information on how data selection works from the buffers go here.

## ◆ negmul8_cc() [1/3]

v8cacc48 negmul8_cc | ( | v16cint16 | xbuff,
|  | int | xstart,
|  | unsigned int | xoffsets,
|  | int | ystart,
|  | unsigned int | yoffsets
| ) |  |

Complex multiply-negate intrinsic function with X and Y buffer conjugation using small X input buffer.

acc0 = -( cnj(x00)*cnj(y00) )
acc1 = -( cnj(x10)*cnj(y10) )
acc2 = -( cnj(x20)*cnj(y20) )
acc3 = -( cnj(x30)*cnj(y30) )
acc4 = -( cnj(x40)*cnj(y40) )
acc5 = -( cnj(x50)*cnj(y50) )
acc6 = -( cnj(x60)*cnj(y60) )
acc7 = -( cnj(x70)*cnj(y70) )

Returns
  Returned accumulation vector (8 x cint48 lanes)

Parameters

  xbuff | Input buffer of 16 elements of type cint16
  xstart | Starting position offset applied to all lanes of input from X buffer
  xoffsets | 4b offset for each lane in the xbuffer. LSB apply to first lane
  ystart | Starting position offset applied to all lanes of input from xbuffer for the second input
  yoffsets | 4b offset for each lane in the xbuffer. LSB apply to first lane

Note
  - For more information on how data selection works from the buffers go here.

## ◆ negmul8_cc() [2/3]

v8cacc48 negmul8_cc | ( | v16cint16 | xbuff,
|  | int | xstart,
|  | unsigned int | xoffsets,
|  | v16cint16 | ybuff,
|  | int | ystart,
|  | unsigned int | yoffsets
| ) |  |

Complex multiply-negate intrinsic function with X and Y buffer conjugation using small X input buffer.

acc0 = -( cnj(x00)*cnj(y00) )
acc1 = -( cnj(x10)*cnj(y10) )
acc2 = -( cnj(x20)*cnj(y20) )
acc3 = -( cnj(x30)*cnj(y30) )
acc4 = -( cnj(x40)*cnj(y40) )
acc5 = -( cnj(x50)*cnj(y50) )
acc6 = -( cnj(x60)*cnj(y60) )
acc7 = -( cnj(x70)*cnj(y70) )

Returns
  Returned accumulation vector (8 x cint48 lanes)

Parameters

  xbuff | Input buffer of 16 elements of type cint16
  xstart | Starting position offset applied to all lanes of input from X buffer
  xoffsets | 4b offset for each lane in the xbuffer. LSB apply to first lane
  ybuff | Right input buffer of 16 elements of type cint16
  ystart | Starting position offset applied to all lanes of input from ybuffer for the second input
  yoffsets | 4b offset for each lane in the xbuffer. LSB apply to first lane

Note
  - For more information on how data selection works from the buffers go here.

## ◆ negmul8_cc() [3/3]

v8cacc48 negmul8_cc | ( | v32cint16 | xbuff,
|  | int | xstart,
|  | unsigned int | xoffsets,
|  | int | ystart,
|  | unsigned int | yoffsets
| ) |  |

Complex multiply-negate intrinsic function with X and Y buffer conjugation .

acc0 = -( cnj(x00)*cnj(y00) )
acc1 = -( cnj(x10)*cnj(y10) )
acc2 = -( cnj(x20)*cnj(y20) )
acc3 = -( cnj(x30)*cnj(y30) )
acc4 = -( cnj(x40)*cnj(y40) )
acc5 = -( cnj(x50)*cnj(y50) )
acc6 = -( cnj(x60)*cnj(y60) )
acc7 = -( cnj(x70)*cnj(y70) )

Returns
  Returned accumulation vector (8 x cint48 lanes)

Parameters

  xbuff | Input buffer of 32 elements of type cint16
  xstart | Starting position offset applied to all lanes of input from X buffer
  xoffsets | 4b offset for each lane in the xbuffer. LSB apply to first lane
  ystart | Starting position offset applied to all lanes of input from xbuffer for the second input
  yoffsets | 4b offset for each lane in the xbuffer. LSB apply to first lane

Note
  - For more information on how data selection works from the buffers go here.