| struct S1 { |
| a : i32, |
| b : i32, |
| c : i32, |
| d : i32, |
| } |
| |
| struct S2 { |
| e : i32, |
| f : S1, |
| } |
| |
| struct S3 { |
| g : i32, |
| h : S1, |
| i : S2, |
| } |
| |
| struct T { |
| a : array<i32, 2>, |
| } |
| |
| @stage(compute) @workgroup_size(1) |
| fn main() { |
| let x : i32 = 42; |
| let empty : S1 = S1(); |
| let nonempty : S1 = S1(1, 2, 3, 4); |
| let nonempty_with_expr : S1 = S1(1, x, (x + 1), nonempty.d); |
| let nested_empty : S3 = S3(); |
| let nested_nonempty : S3 = S3(1, S1(2, 3, 4, 5), S2(6, S1(7, 8, 9, 10))); |
| let nested_nonempty_with_expr : S3 = S3(1, S1(2, x, (x + 1), nested_nonempty.i.f.d), S2(6, nonempty)); |
| let subexpr_empty : i32 = S1().a; |
| let subexpr_nonempty : i32 = S1(1, 2, 3, 4).b; |
| let subexpr_nonempty_with_expr : i32 = S1(1, x, (x + 1), nonempty.d).c; |
| let subexpr_nested_empty : S1 = S2().f; |
| let subexpr_nested_nonempty : S1 = S2(1, S1(2, 3, 4, 5)).f; |
| let subexpr_nested_nonempty_with_expr : S1 = S2(1, S1(2, x, (x + 1), nested_nonempty.i.f.d)).f; |
| let aosoa_empty : array<T, 2> = array<T, 2>(); |
| let aosoa_nonempty : array<T, 2> = array<T, 2>(T(array<i32, 2>(1, 2)), T(array<i32, 2>(3, 4))); |
| let aosoa_nonempty_with_expr : array<T, 2> = array<T, 2>(T(array<i32, 2>(1, (aosoa_nonempty[0].a[0] + 1))), aosoa_nonempty[1]); |
| } |