in src/webgpu/shader/execution/memory_model/memory_model_setup.ts [957:1003]
fn do_stress(iterations: u32, pattern: u32, workgroup_id: u32) {
let addr = combo.scratch_locations.value[workgroup_id];
switch(pattern) {
case 0u: {
for(var i: u32 = 0u; i < iterations; i = i + 1u) {
combo.scratchpad.value[addr] = i;
combo.scratchpad.value[addr] = i + 1u;
}
}
case 1u: {
for(var i: u32 = 0u; i < iterations; i = i + 1u) {
combo.scratchpad.value[addr] = i;
let tmp1: u32 = combo.scratchpad.value[addr];
if (tmp1 > 100000u) {
combo.scratchpad.value[addr] = i;
break;
}
}
}
case 2u: {
for(var i: u32 = 0u; i < iterations; i = i + 1u) {
let tmp1: u32 = combo.scratchpad.value[addr];
if (tmp1 > 100000u) {
combo.scratchpad.value[addr] = i;
break;
}
combo.scratchpad.value[addr] = i;
}
}
case 3u: {
for(var i: u32 = 0u; i < iterations; i = i + 1u) {
let tmp1: u32 = combo.scratchpad.value[addr];
if (tmp1 > 100000u) {
combo.scratchpad.value[addr] = i;
break;
}
let tmp2: u32 = combo.scratchpad.value[addr];
if (tmp2 > 100000u) {
combo.scratchpad.value[addr] = i;
break;
}
}
}
default: {
}
}
}