82 lines
1.6 KiB
Plaintext
82 lines
1.6 KiB
Plaintext
|
#pragma version(1)
|
||
|
#pragma rs java_package_name(foo)
|
||
|
|
||
|
// "Divergent" = reflected code must have a runtime check for 32-bit
|
||
|
// versus 64-bit target.
|
||
|
|
||
|
// non-divergent
|
||
|
int intVar;
|
||
|
|
||
|
// non-divergent
|
||
|
int intArray[10];
|
||
|
|
||
|
// non-divergent
|
||
|
rs_matrix2x2 matVar;
|
||
|
|
||
|
// non-divergent
|
||
|
rs_matrix2x2 matArray[10];
|
||
|
|
||
|
// divergent
|
||
|
rs_allocation allocVar;
|
||
|
|
||
|
// divergent
|
||
|
rs_allocation allocArray[10];
|
||
|
|
||
|
struct NonDivergent {
|
||
|
int i;
|
||
|
int j;
|
||
|
};
|
||
|
|
||
|
struct NonDivergent ndVar;
|
||
|
|
||
|
struct NonDivergent ndArray[10];
|
||
|
|
||
|
// 32-bit: 12 bytes; 64-bit: 48 bytes
|
||
|
struct Divergent {
|
||
|
int i;
|
||
|
rs_allocation a;
|
||
|
int j;
|
||
|
};
|
||
|
|
||
|
struct Divergent dVar;
|
||
|
|
||
|
struct Divergent dArray[10];
|
||
|
|
||
|
// 32-bit: 20 bytes; 64-bit: 64 bytes
|
||
|
struct DivergentNest {
|
||
|
int x;
|
||
|
struct Divergent d;
|
||
|
int y;
|
||
|
};
|
||
|
|
||
|
#if 0
|
||
|
|
||
|
// TODO: Add these variables back once http://b/65210157 is fixed
|
||
|
|
||
|
struct DivergentNest dnVar;
|
||
|
|
||
|
struct DivergentNest dnArray[10];
|
||
|
|
||
|
#endif
|
||
|
|
||
|
void intFe(const int *in, int *out, const int *data) { }
|
||
|
|
||
|
void matFe(const int *in, int *out, const rs_matrix2x2 *data) { }
|
||
|
|
||
|
void allocFe(const int *in, int *out, const rs_allocation *data) { }
|
||
|
|
||
|
void ndFe(const int *in, int *out, const struct NonDivergent *data) { }
|
||
|
|
||
|
void dFe(const int *in, int *out, const struct Divergent *data) { }
|
||
|
|
||
|
void dnFe(const int *in, int *out, const struct DivergentNest *data) { }
|
||
|
|
||
|
// for arguments, should get a helper struct that looks like struct NonDivergent
|
||
|
void ndInv(int i, int j) { }
|
||
|
|
||
|
// for arguments, should get a helper struct that looks like struct Divergent
|
||
|
void dInv(int i, rs_allocation a, int j) { (void)a; }
|
||
|
|
||
|
// for arguments, should get a helper struct that looks like struct DivergentNest
|
||
|
void dnInv(int x, struct Divergent d, int y) { (void)d; }
|