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

Overview

32 bit complex by 32 bit real using X buffer conjugation

Functions

v2cacc80 lmac2_antisym_ct_c (v2cacc80 acc, v16cint32 xbuff, int xstart, unsigned int xoffsets, int ystart, unsigned int mtap, v8int32 zbuff, int zstart, unsigned int zoffsets, int zstep)
 Complex anti-symmetric multiply-accumulate intrinsic function with center-tap optimization with x buffer conjugation with pre-sub from x input buffer .
 
v2cacc80 lmac2_antisym_ct_c (v2cacc80 acc, v8cint32 xbuff, int xstart, unsigned int xoffsets, int ystart, unsigned int mtap, v8int32 zbuff, int zstart, unsigned int zoffsets, int zstep)
 Complex anti-symmetric multiply-accumulate intrinsic function with center-tap optimization with x buffer conjugation with pre-sub from x input buffer using small X input buffer.
 
v2cacc80 lmac2_antisym_ct_c (v2cacc80 acc, v8cint32 xbuff, int xstart, unsigned int xoffsets, v8cint32 ybuff, int ystart, unsigned int mtap, v8int32 zbuff, int zstart, unsigned int zoffsets, int zstep)
 Complex anti-symmetric multiply-accumulate intrinsic function with center-tap optimization with x buffer conjugation with pre-sub from x and y input buffers using small X input buffer.
 
v2cacc80 lmsc2_antisym_ct_c (v2cacc80 acc, v16cint32 xbuff, int xstart, unsigned int xoffsets, int ystart, unsigned int mtap, v8int32 zbuff, int zstart, unsigned int zoffsets, int zstep)
 Complex anti-symmetric multiply-subtract intrinsic function with center-tap optimization with x buffer conjugation with pre-sub from x input buffer .
 
v2cacc80 lmsc2_antisym_ct_c (v2cacc80 acc, v8cint32 xbuff, int xstart, unsigned int xoffsets, int ystart, unsigned int mtap, v8int32 zbuff, int zstart, unsigned int zoffsets, int zstep)
 Complex anti-symmetric multiply-subtract intrinsic function with center-tap optimization with x buffer conjugation with pre-sub from x input buffer using small X input buffer.
 
v2cacc80 lmsc2_antisym_ct_c (v2cacc80 acc, v8cint32 xbuff, int xstart, unsigned int xoffsets, v8cint32 ybuff, int ystart, unsigned int mtap, v8int32 zbuff, int zstart, unsigned int zoffsets, int zstep)
 Complex anti-symmetric multiply-subtract intrinsic function with center-tap optimization with x buffer conjugation with pre-sub from x and y input buffers using small X input buffer.
 
v2cacc80 lmul2_antisym_ct_c (v16cint32 xbuff, int xstart, unsigned int xoffsets, int ystart, unsigned int mtap, v8int32 zbuff, int zstart, unsigned int zoffsets, int zstep)
 Complex anti-symmetric multiply intrinsic function with center-tap optimization with x buffer conjugation with pre-sub from x input buffer .
 
v2cacc80 lmul2_antisym_ct_c (v8cint32 xbuff, int xstart, unsigned int xoffsets, int ystart, unsigned int mtap, v8int32 zbuff, int zstart, unsigned int zoffsets, int zstep)
 Complex anti-symmetric multiply intrinsic function with center-tap optimization with x buffer conjugation with pre-sub from x input buffer using small X input buffer.
 
v2cacc80 lmul2_antisym_ct_c (v8cint32 xbuff, int xstart, unsigned int xoffsets, v8cint32 ybuff, int ystart, unsigned int mtap, v8int32 zbuff, int zstart, unsigned int zoffsets, int zstep)
 Complex anti-symmetric multiply intrinsic function with center-tap optimization with x buffer conjugation with pre-sub from x and y input buffers using small X input buffer.
 
v2cacc80 lnegmul2_antisym_ct_c (v16cint32 xbuff, int xstart, unsigned int xoffsets, int ystart, unsigned int mtap, v8int32 zbuff, int zstart, unsigned int zoffsets, int zstep)
 Complex anti-symmetric multiply-negate intrinsic function with center-tap optimization with x buffer conjugation with pre-sub from x input buffer .
 
v2cacc80 lnegmul2_antisym_ct_c (v8cint32 xbuff, int xstart, unsigned int xoffsets, int ystart, unsigned int mtap, v8int32 zbuff, int zstart, unsigned int zoffsets, int zstep)
 Complex anti-symmetric multiply-negate intrinsic function with center-tap optimization with x buffer conjugation with pre-sub from x input buffer using small X input buffer.
 
v2cacc80 lnegmul2_antisym_ct_c (v8cint32 xbuff, int xstart, unsigned int xoffsets, v8cint32 ybuff, int ystart, unsigned int mtap, v8int32 zbuff, int zstart, unsigned int zoffsets, int zstep)
 Complex anti-symmetric multiply-negate intrinsic function with center-tap optimization with x buffer conjugation with pre-sub from x and y input buffers using small X input buffer.
 

Function Documentation

v2cacc80 lmac2_antisym_ct_c ( v2cacc80  acc,
v16cint32  xbuff,
int  xstart,
unsigned int  xoffsets,
int  ystart,
unsigned int  mtap,
v8int32  zbuff,
int  zstart,
unsigned int  zoffsets,
int  zstep 
)

Complex anti-symmetric multiply-accumulate intrinsic function with center-tap optimization with x buffer conjugation with pre-sub from x input buffer .

acc0 += z00*(cnj(x00) - cnj(y00)) + z01*cnj(x01)
acc1 += z10*(cnj(x10) - cnj(y10)) + z11*cnj(x11)

Parameters

Input/OutputType Comments
return v2cacc80 Returned accumulation vector (2 x cint80 lanes)
acc v2cacc80 Incoming accumulation vector (2 x cint80 lanes)
xbuff v16cint32Input buffer of 16 elements of type cint32
xstart int Starting position offset applied to all lanes of input from X buffer.
xoffsets unsigned int 4b offset for each lane, applied to both x and y buffers. LSB apply to first lane
ystart int Starting position offset applied to all lanes for input from Y buffer.
mtap int Selector for partial pre-subtraction relative to xstart
zbuff v8int32Input buffer of 8 elements of type int32
zstart int Starting position offset applied to all lanes for input from Z buffer. This must be a compile time constant. Only the 4 LSB of the argument are used.
zoffsetsunsigned int 4b offset for each lane, applied to input from Z buffer. LSB apply to first lane
zstep int Step between each column for selection in the zbuffer.
Note
  • For more information on how data selection works from the buffers go here. The data buffer and coefficient buffer in this intrinsic use the general scheme.
  • Parameter 'zstart' must be a compile time constant.
v2cacc80 lmac2_antisym_ct_c ( v2cacc80  acc,
v8cint32  xbuff,
int  xstart,
unsigned int  xoffsets,
int  ystart,
unsigned int  mtap,
v8int32  zbuff,
int  zstart,
unsigned int  zoffsets,
int  zstep 
)

Complex anti-symmetric multiply-accumulate intrinsic function with center-tap optimization with x buffer conjugation with pre-sub from x input buffer using small X input buffer.

acc0 += z00*(cnj(x00) - cnj(y00)) + z01*cnj(x01)
acc1 += z10*(cnj(x10) - cnj(y10)) + z11*cnj(x11)

Parameters

Input/OutputType Comments
return v2cacc80 Returned accumulation vector (2 x cint80 lanes)
acc v2cacc80 Incoming accumulation vector (2 x cint80 lanes)
xbuff v8cint32Input buffer of 8 elements of type cint32
xstart int Starting position offset applied to all lanes of input from X buffer.
xoffsets unsigned int 4b offset for each lane, applied to both x and y buffers. LSB apply to first lane
ystart int Starting position offset applied to all lanes for input from Y buffer.
mtap int Selector for partial pre-subtraction relative to xstart
zbuff v8int32Input buffer of 8 elements of type int32
zstart int Starting position offset applied to all lanes for input from Z buffer. This must be a compile time constant. Only the 4 LSB of the argument are used.
zoffsetsunsigned int 4b offset for each lane, applied to input from Z buffer. LSB apply to first lane
zstep int Step between each column for selection in the zbuffer.
Note
  • For more information on how data selection works from the buffers go here. The data buffer and coefficient buffer in this intrinsic use the general scheme.
  • Parameter 'zstart' must be a compile time constant.
v2cacc80 lmac2_antisym_ct_c ( v2cacc80  acc,
v8cint32  xbuff,
int  xstart,
unsigned int  xoffsets,
v8cint32  ybuff,
int  ystart,
unsigned int  mtap,
v8int32  zbuff,
int  zstart,
unsigned int  zoffsets,
int  zstep 
)

Complex anti-symmetric multiply-accumulate intrinsic function with center-tap optimization with x buffer conjugation with pre-sub from x and y input buffers using small X input buffer.

acc0 += z00*(cnj(x00) - cnj(y00)) + z01*cnj(x01)
acc1 += z10*(cnj(x10) - cnj(y10)) + z11*cnj(x11)

Parameters

Input/OutputType Comments
return v2cacc80 Returned accumulation vector (2 x cint80 lanes)
acc v2cacc80 Incoming accumulation vector (2 x cint80 lanes)
xbuff v8cint32Input buffer of 8 elements of type cint32
xstart int Starting position offset applied to all lanes of input from X buffer.
xoffsets unsigned int 4b offset for each lane, applied to both x and y buffers. LSB apply to first lane
ybuff v8cint32Right input buffer of 8 elements of type cint32
ystart int Starting position offset applied to all lanes for input from Y buffer.
mtap int Selector for partial pre-subtraction relative to xstart
zbuff v8int32Input buffer of 8 elements of type int32
zstart int Starting position offset applied to all lanes for input from Z buffer. This must be a compile time constant. Only the 4 LSB of the argument are used.
zoffsetsunsigned int 4b offset for each lane, applied to input from Z buffer. LSB apply to first lane
zstep int Step between each column for selection in the zbuffer.
Note
  • For more information on how data selection works from the buffers go here. The data buffer and coefficient buffer in this intrinsic use the general scheme.
  • Parameter 'zstart' must be a compile time constant.
v2cacc80 lmsc2_antisym_ct_c ( v2cacc80  acc,
v16cint32  xbuff,
int  xstart,
unsigned int  xoffsets,
int  ystart,
unsigned int  mtap,
v8int32  zbuff,
int  zstart,
unsigned int  zoffsets,
int  zstep 
)

Complex anti-symmetric multiply-subtract intrinsic function with center-tap optimization with x buffer conjugation with pre-sub from x input buffer .

acc0 -= z00*(cnj(x00) - cnj(y00)) + z01*cnj(x01)
acc1 -= z10*(cnj(x10) - cnj(y10)) + z11*cnj(x11)

Parameters

Input/OutputType Comments
return v2cacc80 Returned accumulation vector (2 x cint80 lanes)
acc v2cacc80 Incoming accumulation vector (2 x cint80 lanes)
xbuff v16cint32Input buffer of 16 elements of type cint32
xstart int Starting position offset applied to all lanes of input from X buffer.
xoffsets unsigned int 4b offset for each lane, applied to both x and y buffers. LSB apply to first lane
ystart int Starting position offset applied to all lanes for input from Y buffer.
mtap int Selector for partial pre-subtraction relative to xstart
zbuff v8int32Input buffer of 8 elements of type int32
zstart int Starting position offset applied to all lanes for input from Z buffer. This must be a compile time constant. Only the 4 LSB of the argument are used.
zoffsetsunsigned int 4b offset for each lane, applied to input from Z buffer. LSB apply to first lane
zstep int Step between each column for selection in the zbuffer.
Note
  • For more information on how data selection works from the buffers go here. The data buffer and coefficient buffer in this intrinsic use the general scheme.
  • Parameter 'zstart' must be a compile time constant.
v2cacc80 lmsc2_antisym_ct_c ( v2cacc80  acc,
v8cint32  xbuff,
int  xstart,
unsigned int  xoffsets,
int  ystart,
unsigned int  mtap,
v8int32  zbuff,
int  zstart,
unsigned int  zoffsets,
int  zstep 
)

Complex anti-symmetric multiply-subtract intrinsic function with center-tap optimization with x buffer conjugation with pre-sub from x input buffer using small X input buffer.

acc0 -= z00*(cnj(x00) - cnj(y00)) + z01*cnj(x01)
acc1 -= z10*(cnj(x10) - cnj(y10)) + z11*cnj(x11)

Parameters

Input/OutputType Comments
return v2cacc80 Returned accumulation vector (2 x cint80 lanes)
acc v2cacc80 Incoming accumulation vector (2 x cint80 lanes)
xbuff v8cint32Input buffer of 8 elements of type cint32
xstart int Starting position offset applied to all lanes of input from X buffer.
xoffsets unsigned int 4b offset for each lane, applied to both x and y buffers. LSB apply to first lane
ystart int Starting position offset applied to all lanes for input from Y buffer.
mtap int Selector for partial pre-subtraction relative to xstart
zbuff v8int32Input buffer of 8 elements of type int32
zstart int Starting position offset applied to all lanes for input from Z buffer. This must be a compile time constant. Only the 4 LSB of the argument are used.
zoffsetsunsigned int 4b offset for each lane, applied to input from Z buffer. LSB apply to first lane
zstep int Step between each column for selection in the zbuffer.
Note
  • For more information on how data selection works from the buffers go here. The data buffer and coefficient buffer in this intrinsic use the general scheme.
  • Parameter 'zstart' must be a compile time constant.
v2cacc80 lmsc2_antisym_ct_c ( v2cacc80  acc,
v8cint32  xbuff,
int  xstart,
unsigned int  xoffsets,
v8cint32  ybuff,
int  ystart,
unsigned int  mtap,
v8int32  zbuff,
int  zstart,
unsigned int  zoffsets,
int  zstep 
)

Complex anti-symmetric multiply-subtract intrinsic function with center-tap optimization with x buffer conjugation with pre-sub from x and y input buffers using small X input buffer.

acc0 -= z00*(cnj(x00) - cnj(y00)) + z01*cnj(x01)
acc1 -= z10*(cnj(x10) - cnj(y10)) + z11*cnj(x11)

Parameters

Input/OutputType Comments
return v2cacc80 Returned accumulation vector (2 x cint80 lanes)
acc v2cacc80 Incoming accumulation vector (2 x cint80 lanes)
xbuff v8cint32Input buffer of 8 elements of type cint32
xstart int Starting position offset applied to all lanes of input from X buffer.
xoffsets unsigned int 4b offset for each lane, applied to both x and y buffers. LSB apply to first lane
ybuff v8cint32Right input buffer of 8 elements of type cint32
ystart int Starting position offset applied to all lanes for input from Y buffer.
mtap int Selector for partial pre-subtraction relative to xstart
zbuff v8int32Input buffer of 8 elements of type int32
zstart int Starting position offset applied to all lanes for input from Z buffer. This must be a compile time constant. Only the 4 LSB of the argument are used.
zoffsetsunsigned int 4b offset for each lane, applied to input from Z buffer. LSB apply to first lane
zstep int Step between each column for selection in the zbuffer.
Note
  • For more information on how data selection works from the buffers go here. The data buffer and coefficient buffer in this intrinsic use the general scheme.
  • Parameter 'zstart' must be a compile time constant.
v2cacc80 lmul2_antisym_ct_c ( v16cint32  xbuff,
int  xstart,
unsigned int  xoffsets,
int  ystart,
unsigned int  mtap,
v8int32  zbuff,
int  zstart,
unsigned int  zoffsets,
int  zstep 
)

Complex anti-symmetric multiply intrinsic function with center-tap optimization with x buffer conjugation with pre-sub from x input buffer .

acc0 = z00*(cnj(x00) - cnj(y00)) + z01*cnj(x01)
acc1 = z10*(cnj(x10) - cnj(y10)) + z11*cnj(x11)

Parameters

Input/OutputType Comments
return v2cacc80 Returned accumulation vector (2 x cint80 lanes)
xbuff v16cint32Input buffer of 16 elements of type cint32
xstart int Starting position offset applied to all lanes of input from X buffer.
xoffsets unsigned int 4b offset for each lane, applied to both x and y buffers. LSB apply to first lane
ystart int Starting position offset applied to all lanes for input from Y buffer.
mtap int Selector for partial pre-subtraction relative to xstart
zbuff v8int32Input buffer of 8 elements of type int32
zstart int Starting position offset applied to all lanes for input from Z buffer. This must be a compile time constant. Only the 4 LSB of the argument are used.
zoffsetsunsigned int 4b offset for each lane, applied to input from Z buffer. LSB apply to first lane
zstep int Step between each column for selection in the zbuffer.
Note
  • For more information on how data selection works from the buffers go here. The data buffer and coefficient buffer in this intrinsic use the general scheme.
  • Parameter 'zstart' must be a compile time constant.
v2cacc80 lmul2_antisym_ct_c ( v8cint32  xbuff,
int  xstart,
unsigned int  xoffsets,
int  ystart,
unsigned int  mtap,
v8int32  zbuff,
int  zstart,
unsigned int  zoffsets,
int  zstep 
)

Complex anti-symmetric multiply intrinsic function with center-tap optimization with x buffer conjugation with pre-sub from x input buffer using small X input buffer.

acc0 = z00*(cnj(x00) - cnj(y00)) + z01*cnj(x01)
acc1 = z10*(cnj(x10) - cnj(y10)) + z11*cnj(x11)

Parameters

Input/OutputType Comments
return v2cacc80 Returned accumulation vector (2 x cint80 lanes)
xbuff v8cint32Input buffer of 8 elements of type cint32
xstart int Starting position offset applied to all lanes of input from X buffer.
xoffsets unsigned int 4b offset for each lane, applied to both x and y buffers. LSB apply to first lane
ystart int Starting position offset applied to all lanes for input from Y buffer.
mtap int Selector for partial pre-subtraction relative to xstart
zbuff v8int32Input buffer of 8 elements of type int32
zstart int Starting position offset applied to all lanes for input from Z buffer. This must be a compile time constant. Only the 4 LSB of the argument are used.
zoffsetsunsigned int 4b offset for each lane, applied to input from Z buffer. LSB apply to first lane
zstep int Step between each column for selection in the zbuffer.
Note
  • For more information on how data selection works from the buffers go here. The data buffer and coefficient buffer in this intrinsic use the general scheme.
  • Parameter 'zstart' must be a compile time constant.
v2cacc80 lmul2_antisym_ct_c ( v8cint32  xbuff,
int  xstart,
unsigned int  xoffsets,
v8cint32  ybuff,
int  ystart,
unsigned int  mtap,
v8int32  zbuff,
int  zstart,
unsigned int  zoffsets,
int  zstep 
)

Complex anti-symmetric multiply intrinsic function with center-tap optimization with x buffer conjugation with pre-sub from x and y input buffers using small X input buffer.

acc0 = z00*(cnj(x00) - cnj(y00)) + z01*cnj(x01)
acc1 = z10*(cnj(x10) - cnj(y10)) + z11*cnj(x11)

Parameters

Input/OutputType Comments
return v2cacc80 Returned accumulation vector (2 x cint80 lanes)
xbuff v8cint32Input buffer of 8 elements of type cint32
xstart int Starting position offset applied to all lanes of input from X buffer.
xoffsets unsigned int 4b offset for each lane, applied to both x and y buffers. LSB apply to first lane
ybuff v8cint32Right input buffer of 8 elements of type cint32
ystart int Starting position offset applied to all lanes for input from Y buffer.
mtap int Selector for partial pre-subtraction relative to xstart
zbuff v8int32Input buffer of 8 elements of type int32
zstart int Starting position offset applied to all lanes for input from Z buffer. This must be a compile time constant. Only the 4 LSB of the argument are used.
zoffsetsunsigned int 4b offset for each lane, applied to input from Z buffer. LSB apply to first lane
zstep int Step between each column for selection in the zbuffer.
Note
  • For more information on how data selection works from the buffers go here. The data buffer and coefficient buffer in this intrinsic use the general scheme.
  • Parameter 'zstart' must be a compile time constant.
v2cacc80 lnegmul2_antisym_ct_c ( v16cint32  xbuff,
int  xstart,
unsigned int  xoffsets,
int  ystart,
unsigned int  mtap,
v8int32  zbuff,
int  zstart,
unsigned int  zoffsets,
int  zstep 
)

Complex anti-symmetric multiply-negate intrinsic function with center-tap optimization with x buffer conjugation with pre-sub from x input buffer .

acc0 = -( z00*(cnj(x00) - cnj(y00)) + z01*cnj(x01) )
acc1 = -( z10*(cnj(x10) - cnj(y10)) + z11*cnj(x11) )

Parameters

Input/OutputType Comments
return v2cacc80 Returned accumulation vector (2 x cint80 lanes)
xbuff v16cint32Input buffer of 16 elements of type cint32
xstart int Starting position offset applied to all lanes of input from X buffer.
xoffsets unsigned int 4b offset for each lane, applied to both x and y buffers. LSB apply to first lane
ystart int Starting position offset applied to all lanes for input from Y buffer.
mtap int Selector for partial pre-subtraction relative to xstart
zbuff v8int32Input buffer of 8 elements of type int32
zstart int Starting position offset applied to all lanes for input from Z buffer. This must be a compile time constant. Only the 4 LSB of the argument are used.
zoffsetsunsigned int 4b offset for each lane, applied to input from Z buffer. LSB apply to first lane
zstep int Step between each column for selection in the zbuffer.
Note
  • For more information on how data selection works from the buffers go here. The data buffer and coefficient buffer in this intrinsic use the general scheme.
  • Parameter 'zstart' must be a compile time constant.
v2cacc80 lnegmul2_antisym_ct_c ( v8cint32  xbuff,
int  xstart,
unsigned int  xoffsets,
int  ystart,
unsigned int  mtap,
v8int32  zbuff,
int  zstart,
unsigned int  zoffsets,
int  zstep 
)

Complex anti-symmetric multiply-negate intrinsic function with center-tap optimization with x buffer conjugation with pre-sub from x input buffer using small X input buffer.

acc0 = -( z00*(cnj(x00) - cnj(y00)) + z01*cnj(x01) )
acc1 = -( z10*(cnj(x10) - cnj(y10)) + z11*cnj(x11) )

Parameters

Input/OutputType Comments
return v2cacc80 Returned accumulation vector (2 x cint80 lanes)
xbuff v8cint32Input buffer of 8 elements of type cint32
xstart int Starting position offset applied to all lanes of input from X buffer.
xoffsets unsigned int 4b offset for each lane, applied to both x and y buffers. LSB apply to first lane
ystart int Starting position offset applied to all lanes for input from Y buffer.
mtap int Selector for partial pre-subtraction relative to xstart
zbuff v8int32Input buffer of 8 elements of type int32
zstart int Starting position offset applied to all lanes for input from Z buffer. This must be a compile time constant. Only the 4 LSB of the argument are used.
zoffsetsunsigned int 4b offset for each lane, applied to input from Z buffer. LSB apply to first lane
zstep int Step between each column for selection in the zbuffer.
Note
  • For more information on how data selection works from the buffers go here. The data buffer and coefficient buffer in this intrinsic use the general scheme.
  • Parameter 'zstart' must be a compile time constant.
v2cacc80 lnegmul2_antisym_ct_c ( v8cint32  xbuff,
int  xstart,
unsigned int  xoffsets,
v8cint32  ybuff,
int  ystart,
unsigned int  mtap,
v8int32  zbuff,
int  zstart,
unsigned int  zoffsets,
int  zstep 
)

Complex anti-symmetric multiply-negate intrinsic function with center-tap optimization with x buffer conjugation with pre-sub from x and y input buffers using small X input buffer.

acc0 = -( z00*(cnj(x00) - cnj(y00)) + z01*cnj(x01) )
acc1 = -( z10*(cnj(x10) - cnj(y10)) + z11*cnj(x11) )

Parameters

Input/OutputType Comments
return v2cacc80 Returned accumulation vector (2 x cint80 lanes)
xbuff v8cint32Input buffer of 8 elements of type cint32
xstart int Starting position offset applied to all lanes of input from X buffer.
xoffsets unsigned int 4b offset for each lane, applied to both x and y buffers. LSB apply to first lane
ybuff v8cint32Right input buffer of 8 elements of type cint32
ystart int Starting position offset applied to all lanes for input from Y buffer.
mtap int Selector for partial pre-subtraction relative to xstart
zbuff v8int32Input buffer of 8 elements of type int32
zstart int Starting position offset applied to all lanes for input from Z buffer. This must be a compile time constant. Only the 4 LSB of the argument are used.
zoffsetsunsigned int 4b offset for each lane, applied to input from Z buffer. LSB apply to first lane
zstep int Step between each column for selection in the zbuffer.
Note
  • For more information on how data selection works from the buffers go here. The data buffer and coefficient buffer in this intrinsic use the general scheme.
  • Parameter 'zstart' must be a compile time constant.