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

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

## Functions
v2cacc80 | lmac2_nc (v2cacc80 acc, v16cint32 xbuff, int xstart, unsigned int xoffsets, int ystart, unsigned int yoffsets)
| Complex multiply-accumulate intrinsic function with Y buffer conjugation .
v2cacc80 | lmac2_nc (v2cacc80 acc, v8cint32 xbuff, int xstart, unsigned int xoffsets, int ystart, unsigned int yoffsets)
| Complex multiply-accumulate intrinsic function with Y buffer conjugation using small X input buffer.
v2cacc80 | lmac2_nc (v2cacc80 acc, v8cint32 xbuff, int xstart, unsigned int xoffsets, v8cint32 ybuff, int ystart, unsigned int yoffsets)
| Complex multiply-accumulate intrinsic function with Y buffer conjugation using small X input buffer.
v2cacc80 | lmsc2_nc (v2cacc80 acc, v16cint32 xbuff, int xstart, unsigned int xoffsets, int ystart, unsigned int yoffsets)
| Complex multiply-subtract intrinsic function with Y buffer conjugation .
v2cacc80 | lmsc2_nc (v2cacc80 acc, v8cint32 xbuff, int xstart, unsigned int xoffsets, int ystart, unsigned int yoffsets)
| Complex multiply-subtract intrinsic function with Y buffer conjugation using small X input buffer.
v2cacc80 | lmsc2_nc (v2cacc80 acc, v8cint32 xbuff, int xstart, unsigned int xoffsets, v8cint32 ybuff, int ystart, unsigned int yoffsets)
| Complex multiply-subtract intrinsic function with Y buffer conjugation using small X input buffer.
v2cacc80 | lmul2_nc (v16cint32 xbuff, int xstart, unsigned int xoffsets, int ystart, unsigned int yoffsets)
| Complex multiply intrinsic function with Y buffer conjugation .
v2cacc80 | lmul2_nc (v8cint32 xbuff, int xstart, unsigned int xoffsets, int ystart, unsigned int yoffsets)
| Complex multiply intrinsic function with Y buffer conjugation using small X input buffer.
v2cacc80 | lmul2_nc (v8cint32 xbuff, int xstart, unsigned int xoffsets, v8cint32 ybuff, int ystart, unsigned int yoffsets)
| Complex multiply intrinsic function with Y buffer conjugation using small X input buffer.
v2cacc80 | lnegmul2_nc (v16cint32 xbuff, int xstart, unsigned int xoffsets, int ystart, unsigned int yoffsets)
| Complex multiply-negate intrinsic function with Y buffer conjugation .
v2cacc80 | lnegmul2_nc (v8cint32 xbuff, int xstart, unsigned int xoffsets, int ystart, unsigned int yoffsets)
| Complex multiply-negate intrinsic function with Y buffer conjugation using small X input buffer.
v2cacc80 | lnegmul2_nc (v8cint32 xbuff, int xstart, unsigned int xoffsets, v8cint32 ybuff, int ystart, unsigned int yoffsets)
| Complex multiply-negate intrinsic function with Y buffer conjugation using small X input buffer.

## Function Documentation

## ◆ lmac2_nc() [1/3]

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

Complex multiply-accumulate intrinsic function with Y buffer conjugation .

acc0 += x00*cnj(y00)
acc1 += x10*cnj(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_nc() [2/3]

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

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

acc0 += x00*cnj(y00)
acc1 += x10*cnj(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_nc() [3/3]

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

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

acc0 += x00*cnj(y00)
acc1 += x10*cnj(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_nc() [1/3]

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

Complex multiply-subtract intrinsic function with Y buffer conjugation .

acc0 -= x00*cnj(y00)
acc1 -= x10*cnj(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_nc() [2/3]

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

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

acc0 -= x00*cnj(y00)
acc1 -= x10*cnj(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_nc() [3/3]

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

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

acc0 -= x00*cnj(y00)
acc1 -= x10*cnj(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_nc() [1/3]

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

Complex multiply intrinsic function with Y buffer conjugation .

acc0 = x00*cnj(y00)
acc1 = x10*cnj(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_nc() [2/3]

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

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

acc0 = x00*cnj(y00)
acc1 = x10*cnj(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_nc() [3/3]

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

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

acc0 = x00*cnj(y00)
acc1 = x10*cnj(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_nc() [1/3]

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

Complex multiply-negate intrinsic function with Y buffer conjugation .

acc0 = -( x00*cnj(y00) )
acc1 = -( x10*cnj(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_nc() [2/3]

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

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

acc0 = -( x00*cnj(y00) )
acc1 = -( x10*cnj(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_nc() [3/3]

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

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

acc0 = -( x00*cnj(y00) )
acc1 = -( x10*cnj(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.