testdata32.inc 15.5 KB

#define ITYPE_RAW uint32_t
#define STYPE_RAW int32_t

/// SWAR operations for data packed in 32bits
/// @swop: swar operation code (SW_OP_xxx) with flags (SW_CTRL_xxxx)
/// @dt: swar data type of operands and the result + special flags (DT_ARRAY, DT_SWREF)
/// @opa: operand A
///       If the special flag DT_ARRAY is used in @dt@, this item contains index (INDIR_xxx) 
///       to array @indirdata@ of indirect data sets.
/// @opb: operand B
/// @reference: expected result of the operation
///             If the special flags DT_SWREF is used in @dt@, this item is ignored
///             and the expected result is computed in a software function (swar_corr,swar_dem,swar_sincos,swar_alu).

typedef struct test_32b_item {
  unsigned swop; /* swar operation code */
  unsigned dt;
  ITYPE_RAW opa;
  ITYPE_RAW opb;
  ITYPE_RAW reference;
} test_32b_item_t;



const ITYPE_RAW corr[] = {
0x00000007, 0x0C000000, 0xFFFFFFFD,
0x0000FFFF, 0x30000000, 0x00000003,
#ifndef SHORT_DATA
0x0000FFFF, 0x00F00000, 0x00000006,
0x0000FFFC, 0xCCC00000, 0x00000009,
0x00000000, 0x00000000, 0x00000000,
0x00000000, 0x0333CFF0, 0xFFFFFFE8,
0x00000003, 0x00000000, 0x00000000,
0x0000FFFF, 0x30000000, 0x00000003,
0x0000FE00, 0x0300C000, 0x00000000,
0x00000001, 0x000000CC, 0xFFFFFFFA,
0x0000FFFF, 0x3000C00C, 0x00000009,
0x0000FF00, 0x0CC0CCF0, 0xFFFFFFFA,
0x00000000, 0x033C0300, 0xFFFFFFF4,
0x0000FFFF, 0xC0000030, 0x00000006,
0x0000FFFF, 0xF0000033, 0x0000000C,
0x0000FFFF, 0x0003C000, 0x00000006,
0x00008000, 0x00C03003, 0xFFFFFFF7,
0x0000003F, 0x00003000, 0xFFFFFFFD,
0x0000FFFF, 0x00000000, 0x00000000,
0x0000C000, 0x300C0F3C, 0xFFFFFFF4,
0x0000003F, 0x0000C000, 0xFFFFFFFD,
0x0000FFFF, 0x003F03C3, 0x00000012,
0x0000FFFF, 0x03030000, 0x00000006,
0x0000FFFF, 0x030C0FF0, 0x00000012,
0x0000FFFF, 0x33CC30CC, 0x00000015,
0x0000FFFF, 0x00033C00, 0x00000009,
0x0000FFF0, 0x3030F000, 0x0000000C,
0x00000000, 0x0030030F, 0xFFFFFFF4,
0x000007FF, 0x0C000C00, 0x00000000,
0x0000FFFF, 0x0303000C, 0x00000009,
0x0000FFFF, 0x003C0000, 0x00000006,
0x0000F800, 0x0300C30C, 0xFFFFFFFA,
0x00000000, 0xF00F0000, 0xFFFFFFF4,
0x00000000, 0x00033003, 0xFFFFFFF7,
0x00000000, 0x00000000, 0x00000000,
0x00000001, 0x00000000, 0x00000000,
0x0000FFFF, 0x3CCC0000, 0x0000000C,
0x0000FE00, 0x03C00C00, 0x00000003,
0x00000000, 0x0000C000, 0xFFFFFFFD,
0x00000000, 0x03CC0F00, 0xFFFFFFF1,
0x00000000, 0xC0000000, 0xFFFFFFFD,
0x00000000, 0x0FCCC000, 0xFFFFFFF1,
0x00007FFF, 0xC0C00000, 0x00000000,
0x0000FFFF, 0x03000000, 0x00000003,
0x0000FFFF, 0x0C000003, 0x00000006,
0x0000FFFF, 0x0C00F300, 0x0000000C,
0x0000FFC0, 0x000000F0, 0xFFFFFFFA,
0x00000000, 0x0C00C00C, 0xFFFFFFF7,
0x00003FFF, 0x030CFC00, 0x0000000F,
0x0000FFE0, 0x000000CC, 0xFFFFFFFA,
0x00000000, 0xC3000C00, 0xFFFFFFF7,
0x00001FFF, 0x000C0CC0, 0x00000009,
0x0000FFF0, 0x00000030, 0xFFFFFFFD,
0x00000000, 0x0C3300C0, 0xFFFFFFF4,
0x00000FFF, 0x0000000C, 0x00000003,
0x0000FFF0, 0xC300300C, 0x00000006,
0x00000000, 0x000000FF, 0xFFFFFFF4,
#endif
0x00000000, 0xFC00003C, 0xFFFFFFF1
};

const ITYPE_RAW demod[] = {
0xEF7208DF, 0xAEE6AAAA, 0x0C000000,
0x7208DEB3, 0xAAAEEAEA, 0x00000000,
#ifndef SHORT_DATA
0x14CEB314, 0x9BAAABAA, 0x30003030,
0xCEF7208D, 0xAAAABA6A, 0x000000C0,
0xF7208DFB, 0xEBAABBAA, 0x00F03000,
0x314CEB31, 0xAAAAAA6A, 0x00000000,
0x4CEF7208, 0xB96AFA6A, 0xCCC0F0C0,
0xDF7208DF, 0xEAAB9ADA, 0x00000300,
0xB314CEB3, 0xAAA6AEEB, 0x00000003,
0x14CEB720, 0x66AEAAAA, 0x00000000,
0x8DF7208D, 0x69A9ABA6, 0x03333030,
0xF7314CEB, 0x9ADBBBAA, 0xCFF0C3C0,
0x314CEB72, 0xAAA9AA6A, 0x00000300,
0x08DF7208, 0xAAAAAA6A, 0x00000000,
0xDF7314CE, 0xA9A6AAEA, 0x30003000,
0xB314CEB3, 0xBB6AAAAB, 0x00003003,
0x208DF720, 0xBAABEAA6, 0x0300C000,
0x8DF7314C, 0xBAAAAAAE, 0xC0000000,
0xEB314CEB, 0xBBA9AAFA, 0x00000000,
0x3208DF72, 0x6AAA7BD6, 0x00CC0000,
0x08DF7214, 0xABAA65AA, 0x30000000,
0xCEB314CE, 0xBFAAAABA, 0xC00C0000,
0xB3108DF7, 0xAAEABAAA, 0x0CC00000,
0x208DF721, 0xEABA99AA, 0xCCF000C0,
0x4CEB314C, 0xAAE96EEA, 0x033C0000,
0xEB3108DF, 0xA6AEA9AA, 0x03000000,
0x7208DF72, 0x5A9EAAAA, 0xC0000000,
0x04CEB314, 0x69EBB9AA, 0x00300000,
0xCEB3108D, 0xF6AAAAAA, 0xF0000000,
0xF7208DF7, 0xAA6696AF, 0x00330003,
0x204CEB31, 0xA69AAAAE, 0x00030000,
0x4CEB3148, 0xBEAAAAAA, 0xC000C000,
0xDF7208DF, 0xAAA6EAAE, 0x00C00000,
0x7208CEB3, 0xAE9AAEA9, 0x30030000,
0x14CEB314, 0xA9A9AA6A, 0x00000300,
0x8DF7208D, 0xEBAA5AAE, 0x30000000,
0xF7208CEB, 0xAAAAA9AA, 0x00000030,
0x314CEB31, 0xAA5AAEA6, 0x00000000,
0x4CDF7208, 0xA5AEA776, 0x300C303C,
0xDF7208CE, 0xAAEEABBA, 0x0F3C0000,
0xB314CEB3, 0xAA9AAAAA, 0x00000000,
0x14CDF720, 0xE6E9AAB6, 0xC000030C,
0x8DF7208D, 0xAAAABEB7, 0x003F00C0,
0xEB314CEB, 0xAAAEBAA9, 0x03C300C0,
0x314CEF72, 0xAAA6AAAE, 0x03030000,
0x08DF7208, 0xA6AEA9AE, 0x00000000,
0xDEB314CE, 0xAAAE9AFA, 0x030C0000,
0xB314CEF7, 0x6AEFF6AA, 0x0FF00000,
0x208DF720, 0xAEAB66DA, 0x33CC0000,
0x8DFB314C, 0xABBAEAB9, 0x30CC000F,
0xEB314CEF, 0xAABAAEA9, 0x00030C03,
0x7208DF72, 0xAEEAEAAA, 0x3C000000,
0x08DFB314, 0xABAB6EAA, 0x30300000,
0xCEB314CE, 0xB6EAAAAA, 0xF0000000,
0xB7208DF7, 0xABBAA7A6, 0x00303C00,
0x208DF731, 0xAAE5BA9E, 0x030F0300,
0x4CEB314C, 0xAA6AA99A, 0x0C000000,
0xEB7208DF, 0xAEEAAAAA, 0x0C000000,
#endif
0x7208DF73, 0xAAABEEA9, 0x03030000
};

const struct {
  const ITYPE_RAW *pdata;
  unsigned  num;
} indirdata[] = {
  {corr, sizeof(corr)/(sizeof(ITYPE_RAW)*3)},
  {demod, sizeof(demod)/(sizeof(ITYPE_RAW)*3)},
};

enum indirdata_indices {
  INDIR_CORR  = 0,
  INDIR_DEMOD = 1,
};

const test_32b_item_t testdata[] = {
/* -------------------------------------------------------------------------- */
/* 1p32 */
//  {OP | CTRL,    DT, A, B, REF},

//  {SW_OP_ADD | SW_CTRL_ALU,   DT_1P32,      0x11111111, 0x00000000, 0x11111111},
//  {SW_OP_ADD | SW_CTRL_ALU,   DT_1P32,      0x10101010, 0x01010101, 0x11111111},
//  {SW_OP_MUL | SW_CTRL_ALU | SW_CTRL_SATURATE,   DT_1P32,  0x10101010, 0x01010101, 0x00000000},

#ifdef SWAR_CORR
  {SW_OP_COR2b | SW_CTRL_SIGNED,  DT_2P32 | DT_ARRAY,             INDIR_CORR, 0, 0}, /* the 1st argument contains an index to indirdata (0=corr, 1=demod) */
  {SW_OP_COR1b,                   DT_1P32 | DT_ARRAY | DT_SWREF,  INDIR_CORR, 0, 0},
  {SW_OP_COR3b | SW_CTRL_REDUCE,  DT_3P32 | DT_ARRAY | DT_SWREF,  INDIR_CORR, 0, 0},
  {SW_OP_COR4b | SW_CTRL_SIGNED | SW_CTRL_REDUCE, DT_4P32 | DT_ARRAY | DT_SWREF, INDIR_CORR, 0, 0},
#endif

#ifdef SWAR_DEM
  {SW_OP_DEMC2bG,                 DT_2P32 | DT_ARRAY , INDIR_DEMOD, 0, 0},
  {SW_OP_DEMC2b,                  DT_2P32 | DT_ARRAY | DT_SWREF, INDIR_DEMOD, 0, 0},
  {SW_OP_DEMC4b,                  DT_4P32 | DT_ARRAY | DT_SWREF, INDIR_DEMOD, 0, 0},
  {SW_OP_DEMR3b,                  DT_3P32 | DT_ARRAY | DT_SWREF, INDIR_DEMOD, 0, 0},
#endif /* SWAR_CORR */

#ifdef SWAR_SINCOS
  {SW_OP_SC4b,                    DT_4P32 | DT_ARRAY | DT_SWREF, INDIR_DEMOD, 0, 0},
  {SW_OP_SC3b,                    DT_3P32 | DT_ARRAY | DT_SWREF, INDIR_DEMOD, 0, 0},
  {SW_OP_SC2b,                    DT_2P32 | DT_ARRAY | DT_SWREF, INDIR_DEMOD, 0, 0},
  {SW_OP_SC1b,                    DT_1P32 | DT_ARRAY | DT_SWREF, INDIR_DEMOD, 0, 0},
#endif /* SWAR_SINCOS */

#ifdef SWAR_ALU
  {SW_OP_ADD | SW_CTRL_VIDEO,     DT_8P32 | DT_ARRAY | DT_SWREF, INDIR_CORR, 0, 0},
  {ACCGET,        0,        0,           0,          0}, // read accumulator acc0

  {SW_OP_ADD | SW_CTRL_VIDEO | SW_CTRL_SIGNED,     DT_8P32 | DT_ARRAY | DT_SWREF, INDIR_CORR, 0, 0},
  {ACCGET,        0,        0,           0,          0}, // read accumulator acc0

  {SW_OP_ADD | SW_CTRL_VIDEO | SW_CTRL_REDUCE,     DT_8P32 | DT_ARRAY | DT_SWREF, INDIR_CORR, 0, 0},
  {ACCGET,        0,        0,           0,          0}, // read accumulator acc0

  {SW_OP_ADD | SW_CTRL_VIDEO | SW_CTRL_SIGNED | SW_CTRL_REDUCE,     DT_8P32 | DT_ARRAY | DT_SWREF, INDIR_CORR, 0, 0},
  {ACCGET,        0,        0,           0,          0},

  {SW_OP_ADD | SW_CTRL_VIDEO | SW_CTRL_SATURATE,     DT_8P32 | DT_ARRAY | DT_SWREF, INDIR_CORR, 0, 0},
  {ACCGET,        0,        0,           0,          0},

  {SW_OP_ADD | SW_CTRL_VIDEO | SW_CTRL_SATURATE | SW_CTRL_SIGNED,     DT_8P32 | DT_ARRAY | DT_SWREF, INDIR_CORR, 0, 0},
  {ACCGET,        0,        0,           0,          0},

  {SW_OP_ADD | SW_CTRL_VIDEO | SW_CTRL_SATURATE | SW_CTRL_REDUCE,     DT_8P32 | DT_ARRAY | DT_SWREF, INDIR_CORR, 0, 0},
  {ACCGET,        0,        0,           0,          0},

  {SW_OP_ADD | SW_CTRL_VIDEO | SW_CTRL_SATURATE | SW_CTRL_SIGNED | SW_CTRL_REDUCE,     DT_8P32 | DT_ARRAY | DT_SWREF, INDIR_CORR, 0, 0},
  {ACCGET,        0,        0,           0,          0},


  {SW_OP_SUB | SW_CTRL_VIDEO,     DT_8P32 | DT_ARRAY | DT_SWREF, INDIR_CORR, 0, 0},
  {ACCGET,        0,        0,           0,          0},

  {SW_OP_SUB | SW_CTRL_VIDEO | SW_CTRL_SIGNED,     DT_8P32 | DT_ARRAY | DT_SWREF, INDIR_CORR, 0, 0},
  {ACCGET,        0,        0,           0,          0},

  {SW_OP_SUB | SW_CTRL_VIDEO | SW_CTRL_REDUCE,     DT_8P32 | DT_ARRAY | DT_SWREF, INDIR_CORR, 0, 0},
  {ACCGET,        0,        0,           0,          0},

  {SW_OP_SUB | SW_CTRL_VIDEO | SW_CTRL_SIGNED | SW_CTRL_REDUCE,     DT_8P32 | DT_ARRAY | DT_SWREF, INDIR_CORR, 0, 0},
  {ACCGET,        0,        0,           0,          0},

  {SW_OP_SUB | SW_CTRL_VIDEO | SW_CTRL_SATURATE,     DT_8P32 | DT_ARRAY | DT_SWREF, INDIR_CORR, 0, 0},
  {ACCGET,        0,        0,           0,          0},

  {SW_OP_SUB | SW_CTRL_VIDEO | SW_CTRL_SATURATE | SW_CTRL_SIGNED,     DT_8P32 | DT_ARRAY | DT_SWREF, INDIR_CORR, 0, 0},
  {ACCGET,        0,        0,           0,          0},

  {SW_OP_SUB | SW_CTRL_VIDEO | SW_CTRL_SATURATE | SW_CTRL_REDUCE,     DT_8P32 | DT_ARRAY | DT_SWREF, INDIR_CORR, 0, 0},
  {ACCGET,        0,        0,           0,          0},

  {SW_OP_SUB | SW_CTRL_VIDEO | SW_CTRL_SATURATE | SW_CTRL_SIGNED | SW_CTRL_REDUCE,     DT_8P32 | DT_ARRAY | DT_SWREF, INDIR_CORR, 0, 0},
  {ACCGET,        0,        0,           0,          0},


  {SW_OP_MUL | SW_CTRL_VIDEO,     DT_8P32 | DT_ARRAY | DT_SWREF, INDIR_CORR, 0, 0},
  {ACCGET,        0,        0,           0,          0},

  {SW_OP_MUL | SW_CTRL_VIDEO | SW_CTRL_SIGNED,     DT_8P32 | DT_ARRAY | DT_SWREF, INDIR_CORR, 0, 0},
  {ACCGET,        0,        0,           0,          0},

  {SW_OP_MUL | SW_CTRL_VIDEO | SW_CTRL_REDUCE,     DT_8P32 | DT_ARRAY | DT_SWREF, INDIR_CORR, 0, 0},
  {ACCGET,        0,        0,           0,          0},

  {SW_OP_MUL | SW_CTRL_VIDEO | SW_CTRL_SIGNED | SW_CTRL_REDUCE,     DT_8P32 | DT_ARRAY | DT_SWREF, INDIR_CORR, 0, 0},
  {ACCGET,        0,        0,           0,          0},

  {SW_OP_MUL | SW_CTRL_VIDEO | SW_CTRL_SATURATE,     DT_8P32 | DT_ARRAY | DT_SWREF, INDIR_CORR, 0, 0},
  {ACCGET,        0,        0,           0,          0},

  {SW_OP_MUL | SW_CTRL_VIDEO | SW_CTRL_SATURATE | SW_CTRL_SIGNED,     DT_8P32 | DT_ARRAY | DT_SWREF, INDIR_CORR, 0, 0},
  {ACCGET,        0,        0,           0,          0},

  {SW_OP_MUL | SW_CTRL_VIDEO | SW_CTRL_SATURATE | SW_CTRL_REDUCE,     DT_8P32 | DT_ARRAY | DT_SWREF, INDIR_CORR, 0, 0},
  {ACCGET,        0,        0,           0,          0},

  {SW_OP_MUL | SW_CTRL_VIDEO | SW_CTRL_SATURATE | SW_CTRL_SIGNED | SW_CTRL_REDUCE,     DT_8P32 | DT_ARRAY | DT_SWREF, INDIR_CORR, 0, 0},
  {ACCGET,        0,        0,           0,          0},

  {SW_OP_ADD | SW_CTRL_AUDIO,     DT_16P32 | DT_ARRAY | DT_SWREF, INDIR_CORR, 0, 0},
  {ACCGET,        0,        0,           0,          0},

  {SW_OP_ADD | SW_CTRL_AUDIO | SW_CTRL_SIGNED,     DT_16P32 | DT_ARRAY | DT_SWREF, INDIR_CORR, 0, 0},
  {ACCGET,        0,        0,           0,          0},

  {SW_OP_ADD | SW_CTRL_AUDIO | SW_CTRL_REDUCE,     DT_16P32 | DT_ARRAY | DT_SWREF, INDIR_CORR, 0, 0},
  {ACCGET,        0,        0,           0,          0},

  {SW_OP_ADD | SW_CTRL_AUDIO | SW_CTRL_SIGNED | SW_CTRL_REDUCE,     DT_16P32 | DT_ARRAY | DT_SWREF, INDIR_CORR, 0, 0},
  {ACCGET,        0,        0,           0,          0},

  {SW_OP_ADD | SW_CTRL_AUDIO | SW_CTRL_SATURATE,     DT_16P32 | DT_ARRAY | DT_SWREF, INDIR_CORR, 0, 0},
  {ACCGET,        0,        0,           0,          0},

  {SW_OP_ADD | SW_CTRL_AUDIO | SW_CTRL_SATURATE | SW_CTRL_SIGNED,     DT_16P32 | DT_ARRAY | DT_SWREF, INDIR_CORR, 0, 0},
  {ACCGET,        0,        0,           0,          0},

  {SW_OP_ADD | SW_CTRL_AUDIO | SW_CTRL_SATURATE | SW_CTRL_REDUCE,     DT_16P32 | DT_ARRAY | DT_SWREF, INDIR_CORR, 0, 0},
  {ACCGET,        0,        0,           0,          0},

  {SW_OP_ADD | SW_CTRL_AUDIO | SW_CTRL_SATURATE | SW_CTRL_SIGNED | SW_CTRL_REDUCE,     DT_16P32 | DT_ARRAY | DT_SWREF, INDIR_CORR, 0, 0},
  {ACCGET,        0,        0,           0,          0},


  {SW_OP_SUB | SW_CTRL_AUDIO,     DT_16P32 | DT_ARRAY | DT_SWREF, INDIR_CORR, 0, 0},
  {ACCGET,        0,        0,           0,          0},

  {SW_OP_SUB | SW_CTRL_AUDIO | SW_CTRL_SIGNED,     DT_16P32 | DT_ARRAY | DT_SWREF, INDIR_CORR, 0, 0},
  {ACCGET,        0,        0,           0,          0},

  {SW_OP_SUB | SW_CTRL_AUDIO | SW_CTRL_REDUCE,     DT_16P32 | DT_ARRAY | DT_SWREF, INDIR_CORR, 0, 0},
  {ACCGET,        0,        0,           0,          0},

  {SW_OP_SUB | SW_CTRL_AUDIO | SW_CTRL_SIGNED | SW_CTRL_REDUCE,     DT_16P32 | DT_ARRAY | DT_SWREF, INDIR_CORR, 0, 0},
  {ACCGET,        0,        0,           0,          0},

  {SW_OP_SUB | SW_CTRL_AUDIO | SW_CTRL_SATURATE,     DT_16P32 | DT_ARRAY | DT_SWREF, INDIR_CORR, 0, 0},
  {ACCGET,        0,        0,           0,          0},

  {SW_OP_SUB | SW_CTRL_AUDIO | SW_CTRL_SATURATE | SW_CTRL_SIGNED,     DT_16P32 | DT_ARRAY | DT_SWREF, INDIR_CORR, 0, 0},
  {ACCGET,        0,        0,           0,          0},

  {SW_OP_SUB | SW_CTRL_AUDIO | SW_CTRL_SATURATE | SW_CTRL_REDUCE,     DT_16P32 | DT_ARRAY | DT_SWREF, INDIR_CORR, 0, 0},
  {ACCGET,        0,        0,           0,          0},

  {SW_OP_SUB | SW_CTRL_AUDIO | SW_CTRL_SATURATE | SW_CTRL_SIGNED | SW_CTRL_REDUCE,     DT_16P32 | DT_ARRAY | DT_SWREF, INDIR_CORR, 0, 0},
  {ACCGET,        0,        0,           0,          0},


  {SW_OP_MUL | SW_CTRL_AUDIO,     DT_16P32 | DT_ARRAY | DT_SWREF, INDIR_CORR, 0, 0},
  {ACCGET,        0,        0,           0,          0},

  {SW_OP_MUL | SW_CTRL_AUDIO | SW_CTRL_SIGNED,     DT_16P32 | DT_ARRAY | DT_SWREF, INDIR_CORR, 0, 0},
  {ACCGET,        0,        0,           0,          0},

  {SW_OP_MUL | SW_CTRL_AUDIO | SW_CTRL_REDUCE,     DT_16P32 | DT_ARRAY | DT_SWREF, INDIR_CORR, 0, 0},
  {ACCGET,        0,        0,           0,          0},

  {SW_OP_MUL | SW_CTRL_AUDIO | SW_CTRL_SIGNED | SW_CTRL_REDUCE,     DT_16P32 | DT_ARRAY | DT_SWREF, INDIR_CORR, 0, 0},
  {ACCGET,        0,        0,           0,          0},

  {SW_OP_MUL | SW_CTRL_AUDIO | SW_CTRL_SATURATE,     DT_16P32 | DT_ARRAY | DT_SWREF, INDIR_CORR, 0, 0},
  {ACCGET,        0,        0,           0,          0},

  {SW_OP_MUL | SW_CTRL_AUDIO | SW_CTRL_SATURATE | SW_CTRL_SIGNED,     DT_16P32 | DT_ARRAY | DT_SWREF, INDIR_CORR, 0, 0},
  {ACCGET,        0,        0,           0,          0},

  {SW_OP_MUL | SW_CTRL_AUDIO | SW_CTRL_SATURATE | SW_CTRL_REDUCE,     DT_16P32 | DT_ARRAY | DT_SWREF, INDIR_CORR, 0, 0},
  {ACCGET,        0,        0,           0,          0},

  {SW_OP_MUL | SW_CTRL_AUDIO | SW_CTRL_SATURATE | SW_CTRL_SIGNED | SW_CTRL_REDUCE,     DT_16P32 | DT_ARRAY | DT_SWREF, INDIR_CORR, 0, 0},
  {ACCGET,        0,        0,           0,          0},


/*
  {SW_OP_ADD | SW_CTRL_ALU,       DT_2P32 | DT_ARRAY | DT_SWREF, INDIR_CORR, 0, 0},
  {SW_OP_SUB | SW_CTRL_ALU,       DT_2P32 | DT_ARRAY | DT_SWREF, INDIR_CORR, 0, 0},
  {SW_OP_MUL | SW_CTRL_ALU,       DT_2P32 | DT_ARRAY | DT_SWREF, INDIR_CORR, 0, 0},
*/
#endif /* SWAR_ALU */

  // get value from accumulator, 1st argument contains an index of accumulator register
  // SWOP, data type, OPA, OPB, expected
  // ACCGET, N.U., ACC#, N.U., N.U.
//   {ACCGET,        0,        0,           0,          0},
};

#define SIZETESTDATA  (sizeof(testdata)/sizeof(test_32b_item_t))