[WIP] parses polymorphic types
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
//@error
|
||||
//assigning mismatched polymorphic types
|
||||
|
||||
export void foo(floating<0> bar) {
|
||||
floating<1> baz = bar;
|
||||
export void foo(floating$0 bar) {
|
||||
floating$1 baz = bar;
|
||||
}
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
//@error
|
||||
//assigning mismatched polymorphic types
|
||||
|
||||
export void foo(floating<0> bar) {
|
||||
export void foo(floating$0 bar) {
|
||||
floating baz = bar;
|
||||
}
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
//@error
|
||||
//assigning mismatched polymorphic types
|
||||
|
||||
export void foo(number<0> bar) {
|
||||
floating<0> baz = bar;
|
||||
export void foo(number$0 bar) {
|
||||
floating$0 baz = bar;
|
||||
}
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
//@error
|
||||
//assigning mismatched polymorphic types
|
||||
|
||||
export void foo(number<0> bar) {
|
||||
export void foo(number$0 bar) {
|
||||
integer baz = bar;
|
||||
}
|
||||
|
||||
@@ -2,18 +2,18 @@
|
||||
// cannot determine return type for mult
|
||||
|
||||
|
||||
floating mult(floating<0> x, floating<1>y) {
|
||||
floating mult(floating$0 x, floating$1 y) {
|
||||
return x * y;
|
||||
}
|
||||
|
||||
export void saxpy(uniform int N,
|
||||
uniform floating<0> scale,
|
||||
uniform floating<1> X[],
|
||||
uniform floating<1> Y[],
|
||||
uniform floating<2> result[])
|
||||
uniform floating$0 scale,
|
||||
uniform floating$1 X[],
|
||||
uniform floating$1 Y[],
|
||||
uniform floating$2 result[])
|
||||
{
|
||||
foreach (i = 0 ... N) {
|
||||
floating<2> tmp = mult(scale, X[i]) + Y[i];
|
||||
floating$2 tmp = mult(scale, X[i]) + Y[i];
|
||||
result[i] = tmp;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
export void saxpy(uniform int N,
|
||||
uniform floating<0> scale,
|
||||
uniform floating<1> X[],
|
||||
uniform floating<1> Y[],
|
||||
uniform floating<2> result[])
|
||||
uniform floating$0 scale,
|
||||
uniform floating$1 X[],
|
||||
uniform floating$1 Y[],
|
||||
uniform floating$2 result[])
|
||||
{
|
||||
foreach (i = 0 ... N) {
|
||||
floating<2> tmp = scale * X[i] + Y[i];
|
||||
floating$2 tmp = scale * X[i] + Y[i];
|
||||
result[i] = tmp;
|
||||
}
|
||||
}
|
||||
|
||||
6
tests_ispcpp/simple.ispc
Normal file
6
tests_ispcpp/simple.ispc
Normal file
@@ -0,0 +1,6 @@
|
||||
export void foo(uniform int N, floating$1 X[])
|
||||
{
|
||||
foreach (i = 0 ... N) {
|
||||
X[i] = X[i] + 1.0;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user