1var<workgroup> a : i32; 2var<workgroup> b : i32; 3var<workgroup> c : i32; // unused 4 5fn uses_a() { 6 a = a + 1; 7} 8 9fn uses_b() { 10 b = b * 2; 11} 12 13fn uses_a_and_b() { 14 b = a; 15} 16 17fn no_uses() { 18} 19 20fn outer() { 21 a = 0; 22 uses_a(); 23 uses_a_and_b(); 24 uses_b(); 25 no_uses(); 26} 27 28[[stage(compute), workgroup_size(1)]] 29fn main1() { 30 a = 42; 31 uses_a(); 32} 33 34[[stage(compute), workgroup_size(1)]] 35fn main2() { 36 b = 7; 37 uses_b(); 38} 39 40[[stage(compute), workgroup_size(1)]] 41fn main3() { 42 outer(); 43 no_uses(); 44} 45 46[[stage(compute), workgroup_size(1)]] 47fn main4() { 48 no_uses(); 49} 50