diff --git a/tests/nested-statics-1.ispc b/tests/nested-statics-1.ispc new file mode 100644 index 00000000..638310ef --- /dev/null +++ b/tests/nested-statics-1.ispc @@ -0,0 +1,16 @@ + +export uniform int width() { return programCount; } + + +export void f_f(uniform float RET[], uniform float aFOO[]) { + static int a = 1+programIndex; + { + static int a = 0; + ++a; + } + RET[programIndex] = a; +} + +export void result(uniform float RET[]) { + RET[programIndex] = 1+programIndex; +} diff --git a/tests/nested-statics.ispc b/tests/nested-statics.ispc new file mode 100644 index 00000000..cea184b5 --- /dev/null +++ b/tests/nested-statics.ispc @@ -0,0 +1,16 @@ + +export uniform int width() { return programCount; } + + +export void f_f(uniform float RET[], uniform float aFOO[]) { + static int a = 1234; + { + static int a = 0; + ++a; + RET[programIndex] = a; + } +} + +export void result(uniform float RET[]) { + RET[programIndex] = 1; +} diff --git a/tests/pointer-decl-craziness-1.ispc b/tests/pointer-decl-craziness-1.ispc new file mode 100644 index 00000000..d7a8deb5 --- /dev/null +++ b/tests/pointer-decl-craziness-1.ispc @@ -0,0 +1,23 @@ +//add test for f(int x[2][10]) - f(int x[][10]) - f(int (*x)[10])x + +export uniform int width() { return programCount; } + + +int foo(uniform int x[][10]) { + return x[1][programIndex % 5]; +} + +export void f_f(uniform float RET[], uniform float aFOO[]) { + uniform int x[2][10]; + for (uniform int i = 0; i < 2; ++i) { + for (uniform int j = 0; j < 10; ++j) { + x[i][j] = 10*i+j; + } + } + + RET[programIndex] = foo(x); +} + +export void result(uniform float RET[]) { + RET[programIndex] = 10+ (programIndex % 5); +} diff --git a/tests/pointer-decl-craziness-3.ispc b/tests/pointer-decl-craziness-3.ispc new file mode 100644 index 00000000..dd134481 --- /dev/null +++ b/tests/pointer-decl-craziness-3.ispc @@ -0,0 +1,26 @@ +//add test for f(int x[2][10]) - f(int x[][10]) - f(int (*x)[10])x + +export uniform int width() { return programCount; } + +int bar(uniform int (* uniform x)[10]) { + return x[1][programIndex % 5]; +} + +int foo(uniform int x[][10]) { + return bar(x); +} + +export void f_f(uniform float RET[], uniform float aFOO[]) { + uniform int x[2][10]; + for (uniform int i = 0; i < 2; ++i) { + for (uniform int j = 0; j < 10; ++j) { + x[i][j] = 10*i+j; + } + } + + RET[programIndex] = foo(x); +} + +export void result(uniform float RET[]) { + RET[programIndex] = 10+ (programIndex % 5); +} diff --git a/tests/pointer-decl-craziness-4.ispc b/tests/pointer-decl-craziness-4.ispc new file mode 100644 index 00000000..0f847e53 --- /dev/null +++ b/tests/pointer-decl-craziness-4.ispc @@ -0,0 +1,19 @@ +//add test for f(int x[2][10]) - f(int x[][10]) - f(int (*x)[10])x + +export uniform int width() { return programCount; } + +export void f_f(uniform float RET[], uniform float aFOO[]) { + uniform int x[2][10]; + for (uniform int i = 0; i < 2; ++i) { + for (uniform int j = 0; j < 10; ++j) { + x[i][j] = 10*i+j; + } + } + + uniform int (* varying y)[10] = x; + RET[programIndex] = y[1][programIndex % 5]; +} + +export void result(uniform float RET[]) { + RET[programIndex] = 10+ (programIndex % 5); +} diff --git a/tests/pointer-decl-craziness.ispc b/tests/pointer-decl-craziness.ispc new file mode 100644 index 00000000..d2f14b49 --- /dev/null +++ b/tests/pointer-decl-craziness.ispc @@ -0,0 +1,23 @@ +//add test for f(int x[2][10]) - f(int x[][10]) - f(int (*x)[10])x + +export uniform int width() { return programCount; } + + +int foo(uniform int x[2][10]) { + return x[1][programIndex % 5]; +} + +export void f_f(uniform float RET[], uniform float aFOO[]) { + uniform int x[2][10]; + for (uniform int i = 0; i < 2; ++i) { + for (uniform int j = 0; j < 10; ++j) { + x[i][j] = 10*i+j; + } + } + + RET[programIndex] = foo(x); +} + +export void result(uniform float RET[]) { + RET[programIndex] = 10+ (programIndex % 5); +}