aboutsummaryrefslogtreecommitdiffstats
path: root/test/kvx/instr/individual/indirect_call.c
blob: f376c00a98bcca89055c756ccde7a010c8ed2500 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
#include "framework.h"

long long sum(long long a, long long b){
  return a+b;
}

long long diff(long long a, long long b){
  return a-b;
}

long long mul(long long a, long long b){
  return a*b;
}

long long make(long long a){
  return a;
}

BEGIN_TEST(long long)
{
  long long d = 3;
  long long (*op)(long long, long long);

  if (a % d == 0)
    op = sum;
  else if (a % d == 1)
    op = diff;
  else
    op = mul;

  c += op(make(a), make(b));
}
END_TEST64()