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

Loading...
Searching...
No Matches
Functions
X 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 buffer conjugation.

## Functions
v4cacc48 | mac4_cn (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 buffer conjugation using small X input buffer.
v4cacc48 | mac4_cn (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 buffer conjugation using small X input buffer.
v4cacc48 | mac4_cn (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 buffer conjugation .
v8cacc48 | mac8_cn (v8cacc48 acc, v16cint16 xbuff, int xstart, unsigned int xoffsets, int ystart, unsigned int yoffsets)
| Complex multiply-accumulate intrinsic function with X buffer conjugation using small X input buffer.
v8cacc48 | mac8_cn (v8cacc48 acc, v16cint16 xbuff, int xstart, unsigned int xoffsets, v16cint16 ybuff, int ystart, unsigned int yoffsets)
| Complex multiply-accumulate intrinsic function with X buffer conjugation using small X input buffer.
v8cacc48 | mac8_cn (v8cacc48 acc, v32cint16 xbuff, int xstart, unsigned int xoffsets, int ystart, unsigned int yoffsets)
| Complex multiply-accumulate intrinsic function with X buffer conjugation .
v4cacc48 | msc4_cn (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 buffer conjugation using small X input buffer.
v4cacc48 | msc4_cn (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 buffer conjugation using small X input buffer.
v4cacc48 | msc4_cn (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 buffer conjugation .
v8cacc48 | msc8_cn (v8cacc48 acc, v16cint16 xbuff, int xstart, unsigned int xoffsets, int ystart, unsigned int yoffsets)
| Complex multiply-subtract intrinsic function with X buffer conjugation using small X input buffer.
v8cacc48 | msc8_cn (v8cacc48 acc, v16cint16 xbuff, int xstart, unsigned int xoffsets, v16cint16 ybuff, int ystart, unsigned int yoffsets)
| Complex multiply-subtract intrinsic function with X buffer conjugation using small X input buffer.
v8cacc48 | msc8_cn (v8cacc48 acc, v32cint16 xbuff, int xstart, unsigned int xoffsets, int ystart, unsigned int yoffsets)
| Complex multiply-subtract intrinsic function with X buffer conjugation .
v4cacc48 | mul4_cn (v16cint16 xbuff, int xstart, unsigned int xoffsets, int xstep, int ystart, unsigned int yoffsets, int ystep)
| Complex multiply intrinsic function with X buffer conjugation using small X input buffer.
v4cacc48 | mul4_cn (v16cint16 xbuff, int xstart, unsigned int xoffsets, int xstep, v16cint16 ybuff, int ystart, unsigned int yoffsets, int ystep)
| Complex multiply intrinsic function with X buffer conjugation using small X input buffer.
v4cacc48 | mul4_cn (v32cint16 xbuff, int xstart, unsigned int xoffsets, int xstep, int ystart, unsigned int yoffsets, int ystep)
| Complex multiply intrinsic function with X buffer conjugation .
v8cacc48 | mul8_cn (v16cint16 xbuff, int xstart, unsigned int xoffsets, int ystart, unsigned int yoffsets)
| Complex multiply intrinsic function with X buffer conjugation using small X input buffer.
v8cacc48 | mul8_cn (v16cint16 xbuff, int xstart, unsigned int xoffsets, v16cint16 ybuff, int ystart, unsigned int yoffsets)
| Complex multiply intrinsic function with X buffer conjugation using small X input buffer.
v8cacc48 | mul8_cn (v32cint16 xbuff, int xstart, unsigned int xoffsets, int ystart, unsigned int yoffsets)
| Complex multiply intrinsic function with X buffer conjugation .
v4cacc48 | negmul4_cn (v16cint16 xbuff, int xstart, unsigned int xoffsets, int xstep, int ystart, unsigned int yoffsets, int ystep)
| Complex multiply-negate intrinsic function with X buffer conjugation using small X input buffer.
v4cacc48 | negmul4_cn (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 buffer conjugation using small X input buffer.
v4cacc48 | negmul4_cn (v32cint16 xbuff, int xstart, unsigned int xoffsets, int xstep, int ystart, unsigned int yoffsets, int ystep)
| Complex multiply-negate intrinsic function with X buffer conjugation .
v8cacc48 | negmul8_cn (v16cint16 xbuff, int xstart, unsigned int xoffsets, int ystart, unsigned int yoffsets)
| Complex multiply-negate intrinsic function with X buffer conjugation using small X input buffer.
v8cacc48 | negmul8_cn (v16cint16 xbuff, int xstart, unsigned int xoffsets, v16cint16 ybuff, int ystart, unsigned int yoffsets)
| Complex multiply-negate intrinsic function with X buffer conjugation using small X input buffer.
v8cacc48 | negmul8_cn (v32cint16 xbuff, int xstart, unsigned int xoffsets, int ystart, unsigned int yoffsets)
| Complex multiply-negate intrinsic function with X buffer conjugation .

## Function Documentation

## ◆ mac4_cn() [1/3]

v4cacc48 mac4_cn | ( | 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 buffer conjugation using small X input buffer.

acc0 += cnj(x00)*y00 + cnj(x01)*y01
acc1 += cnj(x10)*y10 + cnj(x11)*y11
acc2 += cnj(x20)*y20 + cnj(x21)*y21
acc3 += cnj(x30)*y30 + cnj(x31)*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_cn() [2/3]

v4cacc48 mac4_cn | ( | 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 buffer conjugation using small X input buffer.

acc0 += cnj(x00)*y00 + cnj(x01)*y01
acc1 += cnj(x10)*y10 + cnj(x11)*y11
acc2 += cnj(x20)*y20 + cnj(x21)*y21
acc3 += cnj(x30)*y30 + cnj(x31)*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_cn() [3/3]

v4cacc48 mac4_cn | ( | 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 buffer conjugation .

acc0 += cnj(x00)*y00 + cnj(x01)*y01
acc1 += cnj(x10)*y10 + cnj(x11)*y11
acc2 += cnj(x20)*y20 + cnj(x21)*y21
acc3 += cnj(x30)*y30 + cnj(x31)*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_cn() [1/3]

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

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

acc0 += cnj(x00)*y00
acc1 += cnj(x10)*y10
acc2 += cnj(x20)*y20
acc3 += cnj(x30)*y30
acc4 += cnj(x40)*y40
acc5 += cnj(x50)*y50
acc6 += cnj(x60)*y60
acc7 += cnj(x70)*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_cn() [2/3]

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

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

acc0 += cnj(x00)*y00
acc1 += cnj(x10)*y10
acc2 += cnj(x20)*y20
acc3 += cnj(x30)*y30
acc4 += cnj(x40)*y40
acc5 += cnj(x50)*y50
acc6 += cnj(x60)*y60
acc7 += cnj(x70)*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_cn() [3/3]

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

Complex multiply-accumulate intrinsic function with X buffer conjugation .

acc0 += cnj(x00)*y00
acc1 += cnj(x10)*y10
acc2 += cnj(x20)*y20
acc3 += cnj(x30)*y30
acc4 += cnj(x40)*y40
acc5 += cnj(x50)*y50
acc6 += cnj(x60)*y60
acc7 += cnj(x70)*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_cn() [1/3]

v4cacc48 msc4_cn | ( | 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 buffer conjugation using small X input buffer.

acc0 -= cnj(x00)*y00 + cnj(x01)*y01
acc1 -= cnj(x10)*y10 + cnj(x11)*y11
acc2 -= cnj(x20)*y20 + cnj(x21)*y21
acc3 -= cnj(x30)*y30 + cnj(x31)*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_cn() [2/3]

v4cacc48 msc4_cn | ( | 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 buffer conjugation using small X input buffer.

acc0 -= cnj(x00)*y00 + cnj(x01)*y01
acc1 -= cnj(x10)*y10 + cnj(x11)*y11
acc2 -= cnj(x20)*y20 + cnj(x21)*y21
acc3 -= cnj(x30)*y30 + cnj(x31)*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_cn() [3/3]

v4cacc48 msc4_cn | ( | 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 buffer conjugation .

acc0 -= cnj(x00)*y00 + cnj(x01)*y01
acc1 -= cnj(x10)*y10 + cnj(x11)*y11
acc2 -= cnj(x20)*y20 + cnj(x21)*y21
acc3 -= cnj(x30)*y30 + cnj(x31)*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_cn() [1/3]

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

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

acc0 -= cnj(x00)*y00
acc1 -= cnj(x10)*y10
acc2 -= cnj(x20)*y20
acc3 -= cnj(x30)*y30
acc4 -= cnj(x40)*y40
acc5 -= cnj(x50)*y50
acc6 -= cnj(x60)*y60
acc7 -= cnj(x70)*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_cn() [2/3]

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

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

acc0 -= cnj(x00)*y00
acc1 -= cnj(x10)*y10
acc2 -= cnj(x20)*y20
acc3 -= cnj(x30)*y30
acc4 -= cnj(x40)*y40
acc5 -= cnj(x50)*y50
acc6 -= cnj(x60)*y60
acc7 -= cnj(x70)*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_cn() [3/3]

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

Complex multiply-subtract intrinsic function with X buffer conjugation .

acc0 -= cnj(x00)*y00
acc1 -= cnj(x10)*y10
acc2 -= cnj(x20)*y20
acc3 -= cnj(x30)*y30
acc4 -= cnj(x40)*y40
acc5 -= cnj(x50)*y50
acc6 -= cnj(x60)*y60
acc7 -= cnj(x70)*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_cn() [1/3]

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

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

acc0 = cnj(x00)*y00 + cnj(x01)*y01
acc1 = cnj(x10)*y10 + cnj(x11)*y11
acc2 = cnj(x20)*y20 + cnj(x21)*y21
acc3 = cnj(x30)*y30 + cnj(x31)*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_cn() [2/3]

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

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

acc0 = cnj(x00)*y00 + cnj(x01)*y01
acc1 = cnj(x10)*y10 + cnj(x11)*y11
acc2 = cnj(x20)*y20 + cnj(x21)*y21
acc3 = cnj(x30)*y30 + cnj(x31)*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_cn() [3/3]

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

Complex multiply intrinsic function with X buffer conjugation .

acc0 = cnj(x00)*y00 + cnj(x01)*y01
acc1 = cnj(x10)*y10 + cnj(x11)*y11
acc2 = cnj(x20)*y20 + cnj(x21)*y21
acc3 = cnj(x30)*y30 + cnj(x31)*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_cn() [1/3]

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

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

acc0 = cnj(x00)*y00
acc1 = cnj(x10)*y10
acc2 = cnj(x20)*y20
acc3 = cnj(x30)*y30
acc4 = cnj(x40)*y40
acc5 = cnj(x50)*y50
acc6 = cnj(x60)*y60
acc7 = cnj(x70)*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_cn() [2/3]

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

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

acc0 = cnj(x00)*y00
acc1 = cnj(x10)*y10
acc2 = cnj(x20)*y20
acc3 = cnj(x30)*y30
acc4 = cnj(x40)*y40
acc5 = cnj(x50)*y50
acc6 = cnj(x60)*y60
acc7 = cnj(x70)*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_cn() [3/3]

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

Complex multiply intrinsic function with X buffer conjugation .

acc0 = cnj(x00)*y00
acc1 = cnj(x10)*y10
acc2 = cnj(x20)*y20
acc3 = cnj(x30)*y30
acc4 = cnj(x40)*y40
acc5 = cnj(x50)*y50
acc6 = cnj(x60)*y60
acc7 = cnj(x70)*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_cn() [1/3]

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

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

acc0 = -( cnj(x00)*y00 + cnj(x01)*y01 )
acc1 = -( cnj(x10)*y10 + cnj(x11)*y11 )
acc2 = -( cnj(x20)*y20 + cnj(x21)*y21 )
acc3 = -( cnj(x30)*y30 + cnj(x31)*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_cn() [2/3]

v4cacc48 negmul4_cn | ( | 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 buffer conjugation using small X input buffer.

acc0 = -( cnj(x00)*y00 + cnj(x01)*y01 )
acc1 = -( cnj(x10)*y10 + cnj(x11)*y11 )
acc2 = -( cnj(x20)*y20 + cnj(x21)*y21 )
acc3 = -( cnj(x30)*y30 + cnj(x31)*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_cn() [3/3]

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

Complex multiply-negate intrinsic function with X buffer conjugation .

acc0 = -( cnj(x00)*y00 + cnj(x01)*y01 )
acc1 = -( cnj(x10)*y10 + cnj(x11)*y11 )
acc2 = -( cnj(x20)*y20 + cnj(x21)*y21 )
acc3 = -( cnj(x30)*y30 + cnj(x31)*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_cn() [1/3]

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

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

acc0 = -( cnj(x00)*y00 )
acc1 = -( cnj(x10)*y10 )
acc2 = -( cnj(x20)*y20 )
acc3 = -( cnj(x30)*y30 )
acc4 = -( cnj(x40)*y40 )
acc5 = -( cnj(x50)*y50 )
acc6 = -( cnj(x60)*y60 )
acc7 = -( cnj(x70)*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_cn() [2/3]

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

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

acc0 = -( cnj(x00)*y00 )
acc1 = -( cnj(x10)*y10 )
acc2 = -( cnj(x20)*y20 )
acc3 = -( cnj(x30)*y30 )
acc4 = -( cnj(x40)*y40 )
acc5 = -( cnj(x50)*y50 )
acc6 = -( cnj(x60)*y60 )
acc7 = -( cnj(x70)*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_cn() [3/3]

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

Complex multiply-negate intrinsic function with X buffer conjugation .

acc0 = -( cnj(x00)*y00 )
acc1 = -( cnj(x10)*y10 )
acc2 = -( cnj(x20)*y20 )
acc3 = -( cnj(x30)*y30 )
acc4 = -( cnj(x40)*y40 )
acc5 = -( cnj(x50)*y50 )
acc6 = -( cnj(x60)*y60 )
acc7 = -( cnj(x70)*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.