blob: 9689ab3959cd9df8234b89ec307b7cd5d6f9d795 [file] [log] [blame]
static double identity[4][4] = {{1, 0, 0, 0},
{0, 1, 0, 0},
{0, 0, 1, 0},
{0, 0, 0, 1}};
static double expected[4][4] = {{1, 0, 0, 0},
{0, 0, 0, 0},
{0, 0, 0, 0},
{0, 0, 0, 0}};
static void __attribute__((noinline,noclone))
kernel(double A[4][4])
{
double tmp[4][4];
for (int j = 0; j < 4; j++)
for (int k = 0; k < 4; k++)
tmp[j][k] = identity[j][0] * identity[j][k];
for (int j = 0; j < 4; j++ )
for (int k = 0; k < 4; k++)
A[j][k] = tmp[j][k];
}
int main(void)
{
double A[4][4] = {{0.0}};
kernel(A);
for ( int i = 0; i < 4; i++ )
for ( int j = 0; j < 4; j++ )
if (A[i][j] != expected[i][j])
__builtin_abort ();
return 0;
}