swar-c99-6.7.5.2-arrays.c 1.67 KB
/* -----------------------------------------------------------------------------
 *  Copyright (C) 2018-2020 daiteq s.r.o.                http://www.daiteq.com
 *
 *  This program is distributed WITHOUT ANY WARRANTY; without even
 *  the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
 *  PURPOSE.
 *
 * -----------------------------------------------------------------------------
 *  Filename    : swar-c99-6.7.5.2-arrays.c
 *  Authors     : Roman Bartosinski
 *  Description : simple test of clang/LLVM compiler with SWAR extension
 *  Release     :
 *  Version     :
 *  Date        :
 * -----------------------------------------------------------------------------
 */

////A: --has-swar
//C: -daiteq-swar-enable

#define SWAR_USE_UNSIGNED_TYPES
#define SWAR_USE_SIGNED_TYPES
#include "swar-c99.h"

su32x1b ar1u[11];
ss32x1b ar1s[13];

su16x2b ar2u[17];
ss16x2b ar2s[19];

su10x3b ar3u[11];
ss10x3b ar3s[13];

su8x4b ar4u[17];
ss8x4b ar4s[19];

su4x8b ar8u[11];
ss4x8b ar8s[13];

su2x16b ar16u[17];
ss2x16b ar16s[19];

int main(void)
{
  int sz = 0, ssz = 0;
  sz += sizeof(ar1u);
  ssz += sizeofswar(ar1u);

  sz += sizeof(ar1s);
  ssz += sizeofswar(ar1s);

  sz += sizeof(ar2u);
  ssz += sizeofswar(ar2u);

  sz += sizeof(ar2s);
  ssz += sizeofswar(ar2s);

  sz += sizeof(ar3u);
  ssz += sizeofswar(ar3u);

  sz += sizeof(ar3s);
  ssz += sizeofswar(ar3s);

  sz += sizeof(ar4u);
  ssz += sizeofswar(ar4u);

  sz += sizeof(ar4s);
  ssz += sizeofswar(ar4s);

  sz += sizeof(ar8u);
  ssz += sizeofswar(ar8u);

  sz += sizeof(ar8s);
  ssz += sizeofswar(ar8s);

  sz += sizeof(ar16u);
  ssz += sizeofswar(ar16u);

  sz += sizeof(ar16s);
  ssz += sizeofswar(ar16s);

  return sz + ssz;
}