+fixed some example, found some bugs, and bugs in ptxas/cuda
This commit is contained in:
@@ -3,7 +3,7 @@ export uniform int width() { return programCount; }
|
||||
|
||||
export void f_f(uniform float RET[], uniform float aFOO[]) {
|
||||
float a = aFOO[programIndex];
|
||||
float b = (programCount == 1) ? 3 : broadcast(a, 2);
|
||||
float b = (programCount == 1) ? 4 : broadcast(a, 2);
|
||||
RET[programIndex] = b;
|
||||
}
|
||||
|
||||
|
||||
@@ -19,8 +19,11 @@ export void f_fu(uniform float RET[], uniform float aFOO[], uniform float b) {
|
||||
|
||||
|
||||
export void result(uniform float RET[]) {
|
||||
RET[0] = RET[4] = RET[8] = RET[12] = 2;
|
||||
RET[1] = RET[5] = RET[9] = RET[13] = 3;
|
||||
RET[2] = RET[6] = RET[10] = RET[14] = 5;
|
||||
RET[3] = RET[7] = RET[11] = RET[15] = 6;
|
||||
for (int i = 0; i < programCount; i += 4)
|
||||
{
|
||||
RET[i+0] = 2;
|
||||
RET[i+1] = 3;
|
||||
RET[i+2] = 5;
|
||||
RET[i+3] = 6;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -18,6 +18,9 @@ export void f_fu(uniform float RET[4], uniform float aFOO[4], uniform float b) {
|
||||
|
||||
export void result(uniform float RET[]) {
|
||||
RET[programIndex] = 3;
|
||||
RET[0] = RET[4] = RET[8] = RET[12] = 1;
|
||||
RET[3] = RET[7] = RET[11] = RET[15] = 29;
|
||||
for (int i = 0; i < programCount; i += 4)
|
||||
{
|
||||
RET[i+0] = 1;
|
||||
RET[i+3] = 29;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -19,6 +19,9 @@ export void f_fu(uniform float RET[], uniform float aFOO[], uniform float b) {
|
||||
|
||||
export void result(uniform float RET[]) {
|
||||
RET[programIndex] = 32;
|
||||
RET[2] = RET[6] = RET[10] = RET[14] = 38;
|
||||
RET[3] = RET[7] = RET[11] = RET[15] = 39;
|
||||
for (int i = 0; i < programCount; i += 4)
|
||||
{
|
||||
RET[i+2] = 38;
|
||||
RET[i+3] = 39;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4,14 +4,14 @@ export uniform int width() { return programCount; }
|
||||
|
||||
|
||||
struct Foo {
|
||||
uniform float x[17];
|
||||
uniform float x[programCount+1];
|
||||
};
|
||||
|
||||
export void f_fu(uniform float RET[], uniform float aFOO[], uniform float b) {
|
||||
float a = aFOO[programIndex];
|
||||
uniform Foo foo;
|
||||
uniform int i;
|
||||
cfor (i = 0; i < 17; ++i)
|
||||
cfor (i = 0; i < programCount+1; ++i)
|
||||
foo.x[i] = i;
|
||||
|
||||
if ((int)a & 1)
|
||||
|
||||
@@ -4,9 +4,9 @@ export uniform int width() { return programCount; }
|
||||
|
||||
export void f_fu(uniform float RET[], uniform float aFOO[], uniform float b) {
|
||||
float a = aFOO[programIndex];
|
||||
uniform double udx[25][25];
|
||||
cfor (uniform int i = 0; i < 25; ++i)
|
||||
cfor (uniform int j = 0; j < 25; ++j)
|
||||
uniform double udx[programCount+1][programCount+1];
|
||||
cfor (uniform int i = 0; i < programCount+1; ++i)
|
||||
cfor (uniform int j = 0; j < programCount+1; ++j)
|
||||
udx[i][j] = 10*i+j;
|
||||
|
||||
int x = 1;
|
||||
|
||||
@@ -5,9 +5,9 @@ export uniform int width() { return programCount; }
|
||||
|
||||
export void f_fu(uniform float RET[], uniform float aFOO[], uniform float b) {
|
||||
float a = aFOO[programIndex];
|
||||
uniform float udx[20][20];
|
||||
cfor (uniform int i = 0; i < 20; ++i)
|
||||
cfor (uniform int j = 0; j < 20; ++j)
|
||||
uniform float udx[programCount+1][programCount+1];
|
||||
cfor (uniform int i = 0; i < programCount+1; ++i)
|
||||
cfor (uniform int j = 0; j < programCount+1x; ++j)
|
||||
udx[i][j] = 100*i+j;
|
||||
|
||||
int x = 1;
|
||||
|
||||
@@ -13,9 +13,9 @@ float func(Foo foo[], int offset) {
|
||||
|
||||
export void f_fu(uniform float RET[], uniform float aFOO[], uniform float b) {
|
||||
float a = aFOO[programIndex];
|
||||
Foo foo[17];
|
||||
Foo foo[programCount+1];
|
||||
uniform int i;
|
||||
cfor (i = 0; i < 17; ++i)
|
||||
cfor (i = 0; i < programCount+1; ++i)
|
||||
foo[i].f = i*a;
|
||||
RET[programIndex] = func(foo, (int)a);
|
||||
}
|
||||
|
||||
@@ -13,9 +13,9 @@ float func(Foo foo[], int offset) {
|
||||
|
||||
export void f_fu(uniform float RET[], uniform float aFOO[], uniform float b) {
|
||||
float a = aFOO[programIndex];
|
||||
Foo foo[17];
|
||||
Foo foo[programCount+1];
|
||||
uniform int i;
|
||||
cfor (i = 0; i < 17; ++i)
|
||||
cfor (i = 0; i < programCount+1; ++i)
|
||||
foo[i].f = i*a;
|
||||
RET[programIndex] = func(foo, (int)a);
|
||||
}
|
||||
|
||||
@@ -9,9 +9,9 @@ struct Foo {
|
||||
|
||||
export void f_fu(uniform float RET[], uniform float aFOO[], uniform float b) {
|
||||
float a = aFOO[programIndex];
|
||||
Foo foo[17];
|
||||
Foo foo[programCount+1];
|
||||
uniform int i;
|
||||
cfor (i = 0; i < 17; ++i)
|
||||
cfor (i = 0; i < programCount+1; ++i)
|
||||
foo[i].f = i*a;
|
||||
RET[programIndex] = foo[(int)a].f;
|
||||
}
|
||||
|
||||
@@ -17,8 +17,11 @@ export void f_fu(uniform float RET[], uniform float aFOO[], uniform float b) {
|
||||
|
||||
|
||||
export void result(uniform float RET[]) {
|
||||
RET[0] = RET[4] = RET[8] = RET[12] = 1;
|
||||
RET[1] = RET[5] = RET[9] = RET[13] = 3;
|
||||
RET[2] = RET[6] = RET[10] = RET[14] = 3;
|
||||
RET[3] = RET[7] = RET[11] = RET[15] = 29;
|
||||
for (int i = 0; i < programCount; i += 4)
|
||||
{
|
||||
RET[i+0] = 1;
|
||||
RET[i+1] = 3;
|
||||
RET[i+2] = 3;
|
||||
RET[i+3] = 29;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -17,8 +17,11 @@ export void f_fu(uniform float RET[], uniform float aFOO[], uniform float b) {
|
||||
|
||||
|
||||
export void result(uniform float RET[]) {
|
||||
RET[0] = RET[4] = RET[8] = RET[12] = 1;
|
||||
RET[1] = RET[5] = RET[9] = RET[13] = 3;
|
||||
RET[2] = RET[6] = RET[10] = RET[14] = 3;
|
||||
RET[3] = RET[7] = RET[11] = RET[15] = 29;
|
||||
for (int i = 0; i < programCount; i += 4)
|
||||
{
|
||||
RET[i+0] = 1;
|
||||
RET[i+1] = 3;
|
||||
RET[i+2] = 3;
|
||||
RET[i+3] = 29;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -17,8 +17,11 @@ export void f_fu(uniform float RET[], uniform float aFOO[], uniform float b) {
|
||||
|
||||
|
||||
export void result(uniform float RET[]) {
|
||||
RET[0] = RET[4] = RET[8] = RET[12] = 1;
|
||||
RET[1] = RET[5] = RET[9] = RET[13] = 3;
|
||||
RET[2] = RET[6] = RET[10] = RET[14] = 3;
|
||||
RET[3] = RET[7] = RET[11] = RET[15] = 29;
|
||||
for (int i = 0; i < programCount; i += 4)
|
||||
{
|
||||
RET[i+0] = 1;
|
||||
RET[i+1] = 3;
|
||||
RET[i+2] = 3;
|
||||
RET[i+3] = 29;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -8,8 +8,11 @@ export void f_f(uniform float RET[], uniform float aFOO[]) {
|
||||
}
|
||||
|
||||
export void result(uniform float RET[]) {
|
||||
RET[0] = RET[4] = RET[8] = RET[12] = 0x0.0p+0;
|
||||
RET[1] = RET[5] = RET[9] = RET[13] = 0x1.62e43p-1;
|
||||
RET[2] = RET[6] = RET[10] = RET[14] = 0x1.193ea8p+0;
|
||||
RET[3] = RET[7] = RET[11] = RET[15] = 0x1.62e43p+0;
|
||||
for (int i = 0; i < programCount; i += 4)
|
||||
{
|
||||
RET[i+0] = 0x0.0p+0;
|
||||
RET[i+1] = 0x1.62e43p-1;
|
||||
RET[i+2] = 0x1.193ea8p+0;
|
||||
RET[i+3] = 0x1.62e43p+0;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user