| AI Engine Intrinsics User Guide (v2026.1)

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

## Overview

32-bit Complex self multiplication intrinsics. No buffer conjugation.

## Functions
v2cacc80 | lmac2 (v2cacc80 acc, v16cint32 xbuff, int xstart, unsigned int xoffsets, int ystart, unsigned int yoffsets)
| Complex multiply-accumulate intrinsic function .
v2cacc80 | lmac2 (v2cacc80 acc, v8cint32 xbuff, int xstart, unsigned int xoffsets, int ystart, unsigned int yoffsets)
| Complex multiply-accumulate intrinsic function using small X input buffer.
v2cacc80 | lmac2 (v2cacc80 acc, v8cint32 xbuff, int xstart, unsigned int xoffsets, v8cint32 ybuff, int ystart, unsigned int yoffsets)
| Complex multiply-accumulate intrinsic function using small X input buffer.
v2cacc80 | lmsc2 (v2cacc80 acc, v16cint32 xbuff, int xstart, unsigned int xoffsets, int ystart, unsigned int yoffsets)
| Complex multiply-subtract intrinsic function .
v2cacc80 | lmsc2 (v2cacc80 acc, v8cint32 xbuff, int xstart, unsigned int xoffsets, int ystart, unsigned int yoffsets)
| Complex multiply-subtract intrinsic function using small X input buffer.
v2cacc80 | lmsc2 (v2cacc80 acc, v8cint32 xbuff, int xstart, unsigned int xoffsets, v8cint32 ybuff, int ystart, unsigned int yoffsets)
| Complex multiply-subtract intrinsic function using small X input buffer.
v2cacc80 | lmul2 (v16cint32 xbuff, int xstart, unsigned int xoffsets, int ystart, unsigned int yoffsets)
| Complex multiply intrinsic function .
v2cacc80 | lmul2 (v8cint32 xbuff, int xstart, unsigned int xoffsets, int ystart, unsigned int yoffsets)
| Complex multiply intrinsic function using small X input buffer.
v2cacc80 | lmul2 (v8cint32 xbuff, int xstart, unsigned int xoffsets, v8cint32 ybuff, int ystart, unsigned int yoffsets)
| Complex multiply intrinsic function using small X input buffer.
v2cacc80 | lnegmul2 (v16cint32 xbuff, int xstart, unsigned int xoffsets, int ystart, unsigned int yoffsets)
| Complex multiply-negate intrinsic function .
v2cacc80 | lnegmul2 (v8cint32 xbuff, int xstart, unsigned int xoffsets, int ystart, unsigned int yoffsets)
| Complex multiply-negate intrinsic function using small X input buffer.
v2cacc80 | lnegmul2 (v8cint32 xbuff, int xstart, unsigned int xoffsets, v8cint32 ybuff, int ystart, unsigned int yoffsets)
| Complex multiply-negate intrinsic function using small X input buffer.

## Function Documentation

## ◆ lmac2() [1/3]

v2cacc80 lmac2 | ( | v2cacc80 | acc,
|  | v16cint32 | xbuff,
|  | int | xstart,
|  | unsigned int | xoffsets,
|  | int | ystart,
|  | unsigned int | yoffsets )

Complex multiply-accumulate intrinsic function .

acc0 += x00*y00
acc1 += x10*y10

Returns
  Returned accumulation vector (2 x cint80 lanes)

Parameters

  acc | Incoming accumulation vector (2 x cint80 lanes)
  xbuff | Input buffer of 16 elements of type cint32
  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.

## ◆ lmac2() [2/3]

v2cacc80 lmac2 | ( | v2cacc80 | acc,
|  | v8cint32 | xbuff,
|  | int | xstart,
|  | unsigned int | xoffsets,
|  | int | ystart,
|  | unsigned int | yoffsets )

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

acc0 += x00*y00
acc1 += x10*y10

Returns
  Returned accumulation vector (2 x cint80 lanes)

Parameters

  acc | Incoming accumulation vector (2 x cint80 lanes)
  xbuff | Input buffer of 8 elements of type cint32
  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.

## ◆ lmac2() [3/3]

v2cacc80 lmac2 | ( | v2cacc80 | acc,
|  | v8cint32 | xbuff,
|  | int | xstart,
|  | unsigned int | xoffsets,
|  | v8cint32 | ybuff,
|  | int | ystart,
|  | unsigned int | yoffsets )

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

acc0 += x00*y00
acc1 += x10*y10

Returns
  Returned accumulation vector (2 x cint80 lanes)

Parameters

  acc | Incoming accumulation vector (2 x cint80 lanes)
  xbuff | Input buffer of 8 elements of type cint32
  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 8 elements of type cint32
  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.

## ◆ lmsc2() [1/3]

v2cacc80 lmsc2 | ( | v2cacc80 | acc,
|  | v16cint32 | xbuff,
|  | int | xstart,
|  | unsigned int | xoffsets,
|  | int | ystart,
|  | unsigned int | yoffsets )

Complex multiply-subtract intrinsic function .

acc0 -= x00*y00
acc1 -= x10*y10

Returns
  Returned accumulation vector (2 x cint80 lanes)

Parameters

  acc | Incoming accumulation vector (2 x cint80 lanes)
  xbuff | Input buffer of 16 elements of type cint32
  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.

## ◆ lmsc2() [2/3]

v2cacc80 lmsc2 | ( | v2cacc80 | acc,
|  | v8cint32 | xbuff,
|  | int | xstart,
|  | unsigned int | xoffsets,
|  | int | ystart,
|  | unsigned int | yoffsets )

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

acc0 -= x00*y00
acc1 -= x10*y10

Returns
  Returned accumulation vector (2 x cint80 lanes)

Parameters

  acc | Incoming accumulation vector (2 x cint80 lanes)
  xbuff | Input buffer of 8 elements of type cint32
  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.

## ◆ lmsc2() [3/3]

v2cacc80 lmsc2 | ( | v2cacc80 | acc,
|  | v8cint32 | xbuff,
|  | int | xstart,
|  | unsigned int | xoffsets,
|  | v8cint32 | ybuff,
|  | int | ystart,
|  | unsigned int | yoffsets )

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

acc0 -= x00*y00
acc1 -= x10*y10

Returns
  Returned accumulation vector (2 x cint80 lanes)

Parameters

  acc | Incoming accumulation vector (2 x cint80 lanes)
  xbuff | Input buffer of 8 elements of type cint32
  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 8 elements of type cint32
  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.

## ◆ lmul2() [1/3]

v2cacc80 lmul2 | ( | v16cint32 | xbuff,
|  | int | xstart,
|  | unsigned int | xoffsets,
|  | int | ystart,
|  | unsigned int | yoffsets )

Complex multiply intrinsic function .

acc0 = x00*y00
acc1 = x10*y10

Returns
  Returned accumulation vector (2 x cint80 lanes)

Parameters

  xbuff | Input buffer of 16 elements of type cint32
  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.

## ◆ lmul2() [2/3]

v2cacc80 lmul2 | ( | v8cint32 | xbuff,
|  | int | xstart,
|  | unsigned int | xoffsets,
|  | int | ystart,
|  | unsigned int | yoffsets )

Complex multiply intrinsic function using small X input buffer.

acc0 = x00*y00
acc1 = x10*y10

Returns
  Returned accumulation vector (2 x cint80 lanes)

Parameters

  xbuff | Input buffer of 8 elements of type cint32
  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.

## ◆ lmul2() [3/3]

v2cacc80 lmul2 | ( | v8cint32 | xbuff,
|  | int | xstart,
|  | unsigned int | xoffsets,
|  | v8cint32 | ybuff,
|  | int | ystart,
|  | unsigned int | yoffsets )

Complex multiply intrinsic function using small X input buffer.

acc0 = x00*y00
acc1 = x10*y10

Returns
  Returned accumulation vector (2 x cint80 lanes)

Parameters

  xbuff | Input buffer of 8 elements of type cint32
  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 8 elements of type cint32
  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.

## ◆ lnegmul2() [1/3]

v2cacc80 lnegmul2 | ( | v16cint32 | xbuff,
|  | int | xstart,
|  | unsigned int | xoffsets,
|  | int | ystart,
|  | unsigned int | yoffsets )

Complex multiply-negate intrinsic function .

acc0 = -( x00*y00 )
acc1 = -( x10*y10 )

Returns
  Returned accumulation vector (2 x cint80 lanes)

Parameters

  xbuff | Input buffer of 16 elements of type cint32
  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.

## ◆ lnegmul2() [2/3]

v2cacc80 lnegmul2 | ( | v8cint32 | xbuff,
|  | int | xstart,
|  | unsigned int | xoffsets,
|  | int | ystart,
|  | unsigned int | yoffsets )

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

acc0 = -( x00*y00 )
acc1 = -( x10*y10 )

Returns
  Returned accumulation vector (2 x cint80 lanes)

Parameters

  xbuff | Input buffer of 8 elements of type cint32
  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.

## ◆ lnegmul2() [3/3]

v2cacc80 lnegmul2 | ( | v8cint32 | xbuff,
|  | int | xstart,
|  | unsigned int | xoffsets,
|  | v8cint32 | ybuff,
|  | int | ystart,
|  | unsigned int | yoffsets )

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

acc0 = -( x00*y00 )
acc1 = -( x10*y10 )

Returns
  Returned accumulation vector (2 x cint80 lanes)

Parameters

  xbuff | Input buffer of 8 elements of type cint32
  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 8 elements of type cint32
  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.