dawn-cmake/test/vk-gl-cts/graphicsfuzz/control-flow-in-function/0-opt.spvasm.expected.wgsl

318 lines
8.7 KiB
WebGPU Shading Language

[[block]]
struct buf0 {
injectionSwitch : vec2<f32>;
};
[[group(0), binding(0)]] var<uniform> x_25 : buf0;
var<private> gl_FragCoord : vec4<f32>;
var<private> x_GLF_color : vec4<f32>;
fn drawShape_vf2_(pos : ptr<function, vec2<f32>>) -> vec3<f32> {
var c2 : bool;
var c3 : bool;
var c4 : bool;
var c5 : bool;
var c6 : bool;
var GLF_live4i : i32;
var GLF_live4_looplimiter5 : i32;
var GLF_live7m42 : mat4x2<f32>;
var GLF_live7m33 : mat3x3<f32>;
var GLF_live7cols : i32;
var GLF_live7_looplimiter3 : i32;
var GLF_live7rows : i32;
var GLF_live7_looplimiter2 : i32;
var GLF_live7_looplimiter1 : i32;
var GLF_live7c : i32;
var GLF_live7r : i32;
var GLF_live7_looplimiter0 : i32;
var GLF_live7sum_index : i32;
var GLF_live7_looplimiter7 : i32;
var GLF_live7cols_1 : i32;
var GLF_live7rows_1 : i32;
var GLF_live7sums : array<f32, 9>;
var GLF_live7c_1 : i32;
var GLF_live7r_1 : i32;
var x_180 : i32;
var indexable : mat3x3<f32>;
let x_182 : f32 = (*(pos)).x;
c2 = (x_182 > 1.0);
let x_184 : bool = c2;
if (x_184) {
return vec3<f32>(1.0, 1.0, 1.0);
}
let x_188 : f32 = (*(pos)).y;
c3 = (x_188 < 1.0);
let x_190 : bool = c3;
if (x_190) {
return vec3<f32>(1.0, 1.0, 1.0);
}
let x_194 : f32 = (*(pos)).y;
c4 = (x_194 > 1.0);
let x_196 : bool = c4;
if (x_196) {
return vec3<f32>(1.0, 1.0, 1.0);
}
let x_200 : f32 = (*(pos)).x;
c5 = (x_200 < 1.0);
let x_202 : bool = c5;
if (x_202) {
return vec3<f32>(1.0, 1.0, 1.0);
}
let x_206 : f32 = (*(pos)).x;
c6 = ((x_206 + 1.0) > 1.0);
let x_209 : bool = c6;
if (x_209) {
return vec3<f32>(1.0, 1.0, 1.0);
}
GLF_live4i = 0;
loop {
let x_39 : i32 = GLF_live4i;
if ((x_39 < 4)) {
} else {
break;
}
let x_40 : i32 = GLF_live4_looplimiter5;
if ((x_40 >= 7)) {
break;
}
let x_41 : i32 = GLF_live4_looplimiter5;
GLF_live4_looplimiter5 = (x_41 + 1);
GLF_live7m42 = mat4x2<f32>(vec2<f32>(1.0, 0.0), vec2<f32>(0.0, 1.0), vec2<f32>(0.0, 0.0), vec2<f32>(1.0, 0.0));
GLF_live7m33 = mat3x3<f32>(vec3<f32>(1.0, 0.0, 0.0), vec3<f32>(0.0, 1.0, 0.0), vec3<f32>(0.0, 0.0, 1.0));
GLF_live7cols = 2;
loop {
let x_43 : i32 = GLF_live7cols;
if ((x_43 < 4)) {
} else {
break;
}
let x_44 : i32 = GLF_live7_looplimiter3;
if ((x_44 >= 7)) {
break;
}
let x_45 : i32 = GLF_live7_looplimiter3;
GLF_live7_looplimiter3 = (x_45 + 1);
GLF_live7rows = 2;
loop {
let x_47 : i32 = GLF_live7rows;
if ((x_47 < 4)) {
} else {
break;
}
let x_48 : i32 = GLF_live7_looplimiter2;
if ((x_48 >= 7)) {
break;
}
let x_49 : i32 = GLF_live7_looplimiter2;
GLF_live7_looplimiter2 = (x_49 + 1);
GLF_live7_looplimiter1 = 0;
GLF_live7c = 0;
loop {
let x_51 : i32 = GLF_live7c;
if ((x_51 < 3)) {
} else {
break;
}
let x_52 : i32 = GLF_live7_looplimiter1;
if ((x_52 >= 7)) {
break;
}
let x_53 : i32 = GLF_live7_looplimiter1;
GLF_live7_looplimiter1 = (x_53 + 1);
GLF_live7r = 0;
loop {
let x_55 : i32 = GLF_live7r;
if ((x_55 < 2)) {
} else {
break;
}
let x_56 : i32 = GLF_live7_looplimiter0;
if ((x_56 >= 7)) {
break;
}
let x_57 : i32 = GLF_live7_looplimiter0;
GLF_live7_looplimiter0 = (x_57 + 1);
let x_59 : i32 = GLF_live7c;
let x_60 : i32 = GLF_live7c;
let x_61 : i32 = GLF_live7c;
let x_62 : i32 = GLF_live7r;
let x_63 : i32 = GLF_live7r;
let x_64 : i32 = GLF_live7r;
GLF_live7m33[select(0, x_61, ((x_59 >= 0) && (x_60 < 3)))][select(0, x_64, ((x_62 >= 0) && (x_63 < 3)))] = 1.0;
let x_267 : f32 = x_25.injectionSwitch.y;
if ((0.0 > x_267)) {
} else {
let x_65 : i32 = GLF_live7c;
let x_66 : i32 = GLF_live7c;
let x_67 : i32 = GLF_live7c;
let x_68 : i32 = GLF_live7r;
let x_69 : i32 = GLF_live7r;
let x_70 : i32 = GLF_live7r;
GLF_live7m42[select(0, x_67, ((x_65 >= 0) && (x_66 < 4)))][select(0, x_70, ((x_68 >= 0) && (x_69 < 2)))] = 1.0;
}
continuing {
let x_71 : i32 = GLF_live7r;
GLF_live7r = (x_71 + 1);
}
}
continuing {
let x_73 : i32 = GLF_live7c;
GLF_live7c = (x_73 + 1);
}
}
continuing {
let x_75 : i32 = GLF_live7rows;
GLF_live7rows = (x_75 + 1);
}
}
continuing {
let x_77 : i32 = GLF_live7cols;
GLF_live7cols = (x_77 + 1);
}
}
GLF_live7sum_index = 0;
GLF_live7_looplimiter7 = 0;
GLF_live7cols_1 = 2;
loop {
let x_79 : i32 = GLF_live7cols_1;
if ((x_79 < 4)) {
} else {
break;
}
let x_80 : i32 = GLF_live7_looplimiter7;
if ((x_80 >= 7)) {
break;
}
let x_81 : i32 = GLF_live7_looplimiter7;
GLF_live7_looplimiter7 = (x_81 + 1);
GLF_live7rows_1 = 2;
let x_83 : i32 = GLF_live7sum_index;
let x_84 : i32 = GLF_live7sum_index;
let x_85 : i32 = GLF_live7sum_index;
GLF_live7sums[select(0, x_85, ((x_83 >= 0) && (x_84 < 9)))] = 0.0;
GLF_live7c_1 = 0;
loop {
let x_86 : i32 = GLF_live7c_1;
if ((x_86 < 1)) {
} else {
break;
}
GLF_live7r_1 = 0;
loop {
let x_87 : i32 = GLF_live7r_1;
let x_88 : i32 = GLF_live7rows_1;
if ((x_87 < x_88)) {
} else {
break;
}
let x_89 : i32 = GLF_live7sum_index;
let x_90 : i32 = GLF_live7sum_index;
let x_91 : i32 = GLF_live7sum_index;
let x_310 : i32 = select(0, x_91, ((x_89 >= 0) && (x_90 < 9)));
let x_311 : mat3x3<f32> = GLF_live7m33;
let x_312 : mat3x3<f32> = transpose(x_311);
let x_92 : i32 = GLF_live7c_1;
if ((x_92 < 3)) {
x_180 = 1;
} else {
let x_318 : f32 = x_25.injectionSwitch.x;
x_180 = i32(x_318);
}
let x_320 : i32 = x_180;
let x_93 : i32 = GLF_live7r_1;
indexable = x_312;
let x_324 : f32 = indexable[x_320][select(0, 1, (x_93 < 3))];
let x_326 : f32 = GLF_live7sums[x_310];
GLF_live7sums[x_310] = (x_326 + x_324);
let x_94 : i32 = GLF_live7sum_index;
let x_95 : i32 = GLF_live7sum_index;
let x_96 : i32 = GLF_live7sum_index;
let x_332 : i32 = select(0, x_96, ((x_94 >= 0) && (x_95 < 9)));
let x_97 : i32 = GLF_live7r_1;
let x_334 : f32 = GLF_live7m42[1][x_97];
let x_336 : f32 = GLF_live7sums[x_332];
GLF_live7sums[x_332] = (x_336 + x_334);
continuing {
let x_98 : i32 = GLF_live7r_1;
GLF_live7r_1 = (x_98 + 1);
}
}
continuing {
let x_100 : i32 = GLF_live7c_1;
GLF_live7c_1 = (x_100 + 1);
}
}
let x_102 : i32 = GLF_live7sum_index;
GLF_live7sum_index = (x_102 + 1);
continuing {
let x_104 : i32 = GLF_live7cols_1;
GLF_live7cols_1 = (x_104 + 1);
}
}
continuing {
let x_106 : i32 = GLF_live4i;
GLF_live4i = (x_106 + 1);
}
}
return vec3<f32>(1.0, 1.0, 1.0);
}
fn main_1() {
var position : vec2<f32>;
var param : vec2<f32>;
var param_1 : vec2<f32>;
var i : i32;
var param_2 : vec2<f32>;
let x_161 : f32 = x_25.injectionSwitch.x;
if ((x_161 >= 2.0)) {
let x_165 : vec4<f32> = gl_FragCoord;
position = vec2<f32>(x_165.x, x_165.y);
let x_167 : vec2<f32> = position;
param = x_167;
let x_168 : vec3<f32> = drawShape_vf2_(&(param));
let x_169 : vec2<f32> = position;
param_1 = x_169;
let x_170 : vec3<f32> = drawShape_vf2_(&(param_1));
i = 25;
loop {
let x_108 : i32 = i;
if ((x_108 > 0)) {
} else {
break;
}
let x_177 : vec2<f32> = position;
param_2 = x_177;
let x_178 : vec3<f32> = drawShape_vf2_(&(param_2));
continuing {
let x_109 : i32 = i;
i = (x_109 - 1);
}
}
}
x_GLF_color = vec4<f32>(1.0, 0.0, 0.0, 1.0);
return;
}
struct main_out {
[[location(0)]]
x_GLF_color_1 : vec4<f32>;
};
[[stage(fragment)]]
fn main([[builtin(position)]] gl_FragCoord_param : vec4<f32>) -> main_out {
gl_FragCoord = gl_FragCoord_param;
main_1();
return main_out(x_GLF_color);
}