#include "insns.h"

#if 0
static int foo[10];
static int bar (int i) { return foo[i]; }
#endif

#if 1
static int foo (int *x, int y) { return *(x + y); }
static char bar (char *x, int y) { return *(x + y); }
static char baz (char *x) { return *(x + 2); }
#endif

#if 0
#define FOO(N)							\
  static uint##N a##N[10];					\
  static uint##N f##N (int x) { return a##N[x]; }		\
  static uint##N *g##N (uint##N *x, int y) { return x + y; }	\
  static uint##N h##N (uint##N *x, int y) { return *(x + y); }

//FOO (6)
//FOO (7)
//FOO (8)
FOO (9)
//FOO (16)
//FOO (18)
FOO (32)
FOO (36)
FOO (72)
#endif

#if 0
static int foo[10];
static int bar (int x) { return foo[x]; }

static char f9[10];
static char b9 (int x) { return f9[x]; }
#endif

#if 0
static int foo[10];
static int baz (int x)
{
  int y = 0;
  while (--x >= 0)
    y += foo[x];
  return y;
}
#endif
