Ben Clayton | 5d2f34e | 2021-06-16 09:19:36 +0000 | [diff] [blame] | 1 | [numthreads(1, 1, 1)] |
| 2 | void unused_entry_point() { |
| 3 | return; |
| 4 | } |
| 5 | |
Ben Clayton | 31936f3 | 2021-06-16 09:50:11 +0000 | [diff] [blame] | 6 | struct tint_padded_array_element { |
Ben Clayton | 165512c | 2021-06-18 21:15:25 +0000 | [diff] [blame] | 7 | int el; |
Ben Clayton | 31936f3 | 2021-06-16 09:50:11 +0000 | [diff] [blame] | 8 | }; |
Ben Clayton | 9ef52ff | 2021-06-16 09:19:36 +0000 | [diff] [blame] | 9 | struct tint_array_wrapper { |
Ben Clayton | 165512c | 2021-06-18 21:15:25 +0000 | [diff] [blame] | 10 | tint_padded_array_element arr[4]; |
Ben Clayton | 5d2f34e | 2021-06-16 09:19:36 +0000 | [diff] [blame] | 11 | }; |
Ben Clayton | 9ef52ff | 2021-06-16 09:19:36 +0000 | [diff] [blame] | 12 | struct S { |
Ben Clayton | 165512c | 2021-06-18 21:15:25 +0000 | [diff] [blame] | 13 | tint_array_wrapper arr; |
Ben Clayton | 9ef52ff | 2021-06-16 09:19:36 +0000 | [diff] [blame] | 14 | }; |
Ben Clayton | 5d2f34e | 2021-06-16 09:19:36 +0000 | [diff] [blame] | 15 | |
Ben Clayton | 165512c | 2021-06-18 21:15:25 +0000 | [diff] [blame] | 16 | tint_array_wrapper tint_symbol_2(uint4 buffer[4], uint offset) { |
Ben Clayton | 3124d43 | 2021-07-02 19:27:42 +0000 | [diff] [blame^] | 17 | const uint scalar_offset = ((offset + 0u)) / 4; |
| 18 | const uint scalar_offset_1 = ((offset + 16u)) / 4; |
| 19 | const uint scalar_offset_2 = ((offset + 32u)) / 4; |
| 20 | const uint scalar_offset_3 = ((offset + 48u)) / 4; |
Ben Clayton | 165512c | 2021-06-18 21:15:25 +0000 | [diff] [blame] | 21 | const tint_array_wrapper tint_symbol_11 = {{{asint(buffer[scalar_offset / 4][scalar_offset % 4])}, {asint(buffer[scalar_offset_1 / 4][scalar_offset_1 % 4])}, {asint(buffer[scalar_offset_2 / 4][scalar_offset_2 % 4])}, {asint(buffer[scalar_offset_3 / 4][scalar_offset_3 % 4])}}}; |
| 22 | return tint_symbol_11; |
Ben Clayton | 5d2f34e | 2021-06-16 09:19:36 +0000 | [diff] [blame] | 23 | } |
Ben Clayton | 9ef52ff | 2021-06-16 09:19:36 +0000 | [diff] [blame] | 24 | |
Ben Clayton | 165512c | 2021-06-18 21:15:25 +0000 | [diff] [blame] | 25 | tint_array_wrapper tint_symbol_4(RWByteAddressBuffer buffer, uint offset) { |
| 26 | const tint_array_wrapper tint_symbol_12 = {{{asint(buffer.Load((offset + 0u)))}, {asint(buffer.Load((offset + 16u)))}, {asint(buffer.Load((offset + 32u)))}, {asint(buffer.Load((offset + 48u)))}}}; |
| 27 | return tint_symbol_12; |
| 28 | } |
| 29 | |
| 30 | void tint_symbol_6(RWByteAddressBuffer buffer, uint offset, tint_array_wrapper value) { |
Ben Clayton | 31936f3 | 2021-06-16 09:50:11 +0000 | [diff] [blame] | 31 | buffer.Store((offset + 0u), asuint(value.arr[0u].el)); |
| 32 | buffer.Store((offset + 16u), asuint(value.arr[1u].el)); |
| 33 | buffer.Store((offset + 32u), asuint(value.arr[2u].el)); |
| 34 | buffer.Store((offset + 48u), asuint(value.arr[3u].el)); |
Ben Clayton | 5d2f34e | 2021-06-16 09:19:36 +0000 | [diff] [blame] | 35 | } |
| 36 | |
Ben Clayton | 9ef52ff | 2021-06-16 09:19:36 +0000 | [diff] [blame] | 37 | struct tint_array_wrapper_3 { |
Ben Clayton | 165512c | 2021-06-18 21:15:25 +0000 | [diff] [blame] | 38 | int arr[2]; |
Ben Clayton | 9ef52ff | 2021-06-16 09:19:36 +0000 | [diff] [blame] | 39 | }; |
| 40 | struct tint_array_wrapper_2 { |
Ben Clayton | 165512c | 2021-06-18 21:15:25 +0000 | [diff] [blame] | 41 | tint_array_wrapper_3 arr[3]; |
Ben Clayton | 9ef52ff | 2021-06-16 09:19:36 +0000 | [diff] [blame] | 42 | }; |
| 43 | struct tint_array_wrapper_1 { |
Ben Clayton | 165512c | 2021-06-18 21:15:25 +0000 | [diff] [blame] | 44 | tint_array_wrapper_2 arr[4]; |
Ben Clayton | 9ef52ff | 2021-06-16 09:19:36 +0000 | [diff] [blame] | 45 | }; |
| 46 | |
Ben Clayton | 165512c | 2021-06-18 21:15:25 +0000 | [diff] [blame] | 47 | void tint_symbol_8(RWByteAddressBuffer buffer, uint offset, tint_array_wrapper_3 value) { |
Ben Clayton | 9ef52ff | 2021-06-16 09:19:36 +0000 | [diff] [blame] | 48 | buffer.Store((offset + 0u), asuint(value.arr[0u])); |
| 49 | buffer.Store((offset + 4u), asuint(value.arr[1u])); |
Ben Clayton | 5d2f34e | 2021-06-16 09:19:36 +0000 | [diff] [blame] | 50 | } |
| 51 | |
Ben Clayton | 165512c | 2021-06-18 21:15:25 +0000 | [diff] [blame] | 52 | void tint_symbol_9(RWByteAddressBuffer buffer, uint offset, tint_array_wrapper_2 value) { |
| 53 | tint_symbol_8(buffer, (offset + 0u), value.arr[0u]); |
| 54 | tint_symbol_8(buffer, (offset + 8u), value.arr[1u]); |
| 55 | tint_symbol_8(buffer, (offset + 16u), value.arr[2u]); |
Ben Clayton | 9ef52ff | 2021-06-16 09:19:36 +0000 | [diff] [blame] | 56 | } |
| 57 | |
Ben Clayton | 165512c | 2021-06-18 21:15:25 +0000 | [diff] [blame] | 58 | void tint_symbol_10(RWByteAddressBuffer buffer, uint offset, tint_array_wrapper_1 value) { |
| 59 | tint_symbol_9(buffer, (offset + 0u), value.arr[0u]); |
| 60 | tint_symbol_9(buffer, (offset + 24u), value.arr[1u]); |
| 61 | tint_symbol_9(buffer, (offset + 48u), value.arr[2u]); |
| 62 | tint_symbol_9(buffer, (offset + 72u), value.arr[3u]); |
Ben Clayton | 9ef52ff | 2021-06-16 09:19:36 +0000 | [diff] [blame] | 63 | } |
| 64 | |
Ben Clayton | 2bb4538 | 2021-07-02 19:27:42 +0000 | [diff] [blame] | 65 | static tint_array_wrapper src_private = (tint_array_wrapper)0; |
Ben Clayton | 9ef52ff | 2021-06-16 09:19:36 +0000 | [diff] [blame] | 66 | groupshared tint_array_wrapper src_workgroup; |
Ben Clayton | 165512c | 2021-06-18 21:15:25 +0000 | [diff] [blame] | 67 | cbuffer cbuffer_src_uniform : register(b0, space0) { |
| 68 | uint4 src_uniform[4]; |
| 69 | }; |
Ben Clayton | 5d2f34e | 2021-06-16 09:19:36 +0000 | [diff] [blame] | 70 | RWByteAddressBuffer src_storage : register(u1, space0); |
| 71 | RWByteAddressBuffer tint_symbol : register(u2, space0); |
| 72 | RWByteAddressBuffer dst_nested : register(u3, space0); |
| 73 | |
Ben Clayton | 9ef52ff | 2021-06-16 09:19:36 +0000 | [diff] [blame] | 74 | tint_array_wrapper ret_arr() { |
Ben Clayton | 2bb4538 | 2021-07-02 19:27:42 +0000 | [diff] [blame] | 75 | const tint_array_wrapper tint_symbol_13 = {(tint_padded_array_element[4])0}; |
Ben Clayton | 165512c | 2021-06-18 21:15:25 +0000 | [diff] [blame] | 76 | return tint_symbol_13; |
Ben Clayton | 5d2f34e | 2021-06-16 09:19:36 +0000 | [diff] [blame] | 77 | } |
Ben Clayton | 9ef52ff | 2021-06-16 09:19:36 +0000 | [diff] [blame] | 78 | |
Ben Clayton | 5d2f34e | 2021-06-16 09:19:36 +0000 | [diff] [blame] | 79 | S ret_struct_arr() { |
Ben Clayton | 2bb4538 | 2021-07-02 19:27:42 +0000 | [diff] [blame] | 80 | const S tint_symbol_14 = (S)0; |
Ben Clayton | 165512c | 2021-06-18 21:15:25 +0000 | [diff] [blame] | 81 | return tint_symbol_14; |
Ben Clayton | 5d2f34e | 2021-06-16 09:19:36 +0000 | [diff] [blame] | 82 | } |
Ben Clayton | 9ef52ff | 2021-06-16 09:19:36 +0000 | [diff] [blame] | 83 | |
| 84 | void foo(tint_array_wrapper src_param) { |
Ben Clayton | 2bb4538 | 2021-07-02 19:27:42 +0000 | [diff] [blame] | 85 | tint_array_wrapper src_function = (tint_array_wrapper)0; |
Ben Clayton | 165512c | 2021-06-18 21:15:25 +0000 | [diff] [blame] | 86 | const tint_array_wrapper tint_symbol_15 = {{{1}, {2}, {3}, {3}}}; |
| 87 | tint_symbol_6(tint_symbol, 0u, tint_symbol_15); |
| 88 | tint_symbol_6(tint_symbol, 0u, src_param); |
| 89 | tint_symbol_6(tint_symbol, 0u, ret_arr()); |
Ben Clayton | 2bb4538 | 2021-07-02 19:27:42 +0000 | [diff] [blame] | 90 | const tint_array_wrapper src_let = {(tint_padded_array_element[4])0}; |
Ben Clayton | 165512c | 2021-06-18 21:15:25 +0000 | [diff] [blame] | 91 | tint_symbol_6(tint_symbol, 0u, src_let); |
| 92 | tint_symbol_6(tint_symbol, 0u, src_function); |
| 93 | tint_symbol_6(tint_symbol, 0u, src_private); |
| 94 | tint_symbol_6(tint_symbol, 0u, src_workgroup); |
| 95 | tint_symbol_6(tint_symbol, 0u, ret_struct_arr().arr); |
| 96 | tint_symbol_6(tint_symbol, 0u, tint_symbol_2(src_uniform, 0u)); |
| 97 | tint_symbol_6(tint_symbol, 0u, tint_symbol_4(src_storage, 0u)); |
Ben Clayton | 2bb4538 | 2021-07-02 19:27:42 +0000 | [diff] [blame] | 98 | tint_array_wrapper_1 src_nested = (tint_array_wrapper_1)0; |
Ben Clayton | 165512c | 2021-06-18 21:15:25 +0000 | [diff] [blame] | 99 | tint_symbol_10(dst_nested, 0u, src_nested); |
Ben Clayton | 5d2f34e | 2021-06-16 09:19:36 +0000 | [diff] [blame] | 100 | } |