blob: e16f3b9b58aa83416f64bb172a2ba923d73417fd [file] [log] [blame]
type Arr = [[stride(4)]] array<i32, 8>;
[[block]]
struct In2 {
data_in2 : Arr;
};
type Arr_1 = [[stride(4)]] array<i32, 1024>;
[[block]]
struct Out0 {
data_out0 : Arr_1;
};
type Arr_2 = [[stride(4)]] array<i32, 512>;
type Arr_3 = [[stride(4)]] array<i32, 512>;
[[block]]
struct In1 {
data_in1 : Arr_3;
};
[[block]]
struct In0 {
data_in0 : Arr_3;
};
var<private> gl_WorkGroupID : vec3<u32>;
[[group(0), binding(2)]] var<storage, read> x_13 : In2;
[[group(0), binding(3)]] var<storage, read_write> x_15 : Out0;
[[group(0), binding(1)]] var<storage, read> x_17 : In1;
[[group(0), binding(0)]] var<storage, read> x_19 : In0;
fn main_1() {
var base_index_in : u32;
var base_index_out : u32;
var index_in0 : i32;
var index_in1 : i32;
var index_out0 : i32;
var index_out1 : i32;
var condition_index : i32;
var i : i32;
var temp0 : i32;
var temp1 : i32;
let x_58 : u32 = gl_WorkGroupID.x;
base_index_in = (128u * x_58);
let x_61 : u32 = gl_WorkGroupID.x;
base_index_out = (256u * x_61);
index_in0 = 127;
index_in1 = 383;
index_out0 = 255;
index_out1 = 383;
condition_index = 0;
i = 0;
loop {
let x_67 : i32 = i;
if ((x_67 < 256)) {
} else {
break;
}
let x_70 : i32 = condition_index;
let x_72 : i32 = x_13.data_in2[x_70];
if ((x_72 == 0)) {
let x_77 : u32 = base_index_out;
let x_78 : i32 = index_out0;
let x_81 : u32 = base_index_in;
let x_82 : i32 = index_in0;
let x_86 : i32 = x_17.data_in1[(x_81 + bitcast<u32>(x_82))];
x_15.data_out0[(x_77 + bitcast<u32>(x_78))] = x_86;
let x_88 : i32 = index_out0;
index_out0 = (x_88 - 1);
let x_90 : i32 = index_in1;
index_in1 = (x_90 - 1);
} else {
let x_92 : u32 = base_index_out;
let x_93 : i32 = index_out1;
let x_96 : u32 = base_index_in;
let x_97 : i32 = index_in1;
let x_101 : i32 = x_19.data_in0[(x_96 + bitcast<u32>(x_97))];
x_15.data_out0[(x_92 + bitcast<u32>(x_93))] = x_101;
let x_103 : i32 = index_out1;
index_out1 = (x_103 - 1);
let x_105 : i32 = index_in1;
index_in1 = (x_105 - 1);
}
let x_107 : i32 = condition_index;
let x_110 : i32 = x_13.data_in2[(x_107 + 1)];
let x_111 : i32 = condition_index;
condition_index = (x_111 + x_110);
let x_113 : i32 = index_in0;
temp0 = x_113;
let x_114 : i32 = index_in1;
index_in0 = x_114;
let x_115 : i32 = temp0;
index_in1 = x_115;
let x_116 : i32 = index_out0;
temp1 = x_116;
let x_117 : i32 = index_out1;
index_out0 = x_117;
let x_118 : i32 = temp1;
index_out1 = x_118;
continuing {
let x_119 : i32 = i;
i = (x_119 + 1);
}
}
return;
}
[[stage(compute), workgroup_size(4, 1, 1)]]
fn main([[builtin(workgroup_id)]] gl_WorkGroupID_param : vec3<u32>) {
gl_WorkGroupID = gl_WorkGroupID_param;
main_1();
}