blob: 49b02753ef54e694b49d34506fea53ed4fe42d5f [file] [log] [blame]
Natalie Chouinarde7de00b2024-08-06 20:54:16 +00001#include <metal_stdlib>
2using namespace metal;
3
4struct tint_module_vars_struct {
James Price61c2d1e2024-08-27 21:26:49 +00005 device packed_half3* prevent_dce;
Natalie Chouinarde7de00b2024-08-06 20:54:16 +00006};
7
8half3 subgroupExclusiveAdd_e58e23() {
9 half3 arg_0 = half3(1.0h);
10 half3 res = simd_prefix_exclusive_sum(arg_0);
11 return res;
12}
13
James Price61c2d1e2024-08-27 21:26:49 +000014fragment void fragment_main(device packed_half3* prevent_dce [[buffer(0)]]) {
Natalie Chouinarde9e450e2024-08-08 23:16:40 +000015 tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.prevent_dce=prevent_dce};
James Price61c2d1e2024-08-27 21:26:49 +000016 (*tint_module_vars.prevent_dce) = packed_half3(subgroupExclusiveAdd_e58e23());
Natalie Chouinarde9e450e2024-08-08 23:16:40 +000017}
18
James Price61c2d1e2024-08-27 21:26:49 +000019kernel void compute_main(device packed_half3* prevent_dce [[buffer(0)]]) {
Natalie Chouinarde7de00b2024-08-06 20:54:16 +000020 tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.prevent_dce=prevent_dce};
James Price61c2d1e2024-08-27 21:26:49 +000021 (*tint_module_vars.prevent_dce) = packed_half3(subgroupExclusiveAdd_e58e23());
Natalie Chouinarde7de00b2024-08-06 20:54:16 +000022}