spirv-reader: Sink pointer-to-vector-component

WGSL does not support pointer-to-vector-component, so the SPIR-V
reader needs to sink these pointers into their use.

Bug: tint:491
Change-Id: Ib5ae87d2f6bbac13280314ba11369d7ced505b56
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/68241
Kokoro: Kokoro <noreply+kokoro@google.com>
Reviewed-by: David Neto <dneto@google.com>
This commit is contained in:
James Price 2021-11-04 19:55:57 +00:00
parent e7323f1a36
commit def9d97609
20 changed files with 685 additions and 617 deletions

View File

@ -2541,6 +2541,12 @@ TypedExpression FunctionEmitter::MakeExpression(uint32_t id) {
Fail() << "internal error: unhandled use of opaque object with ID: " Fail() << "internal error: unhandled use of opaque object with ID: "
<< id; << id;
return {}; return {};
case SkipReason::kSinkPointerIntoUse: {
// Replace the pointer with its source reference expression.
auto source_expr = GetDefInfo(id)->sink_pointer_source_expr;
TINT_ASSERT(Reader, source_expr.type->Is<Reference>());
return source_expr;
}
case SkipReason::kPointSizeBuiltinValue: { case SkipReason::kPointSizeBuiltinValue: {
return {ty_.F32(), return {ty_.F32(),
create<ast::ScalarConstructorExpression>( create<ast::ScalarConstructorExpression>(
@ -3470,6 +3476,12 @@ bool FunctionEmitter::EmitConstDefinition(
if (!expr) { if (!expr) {
return false; return false;
} }
// Do not generate pointers that we want to sink.
if (GetDefInfo(inst.result_id())->skip == SkipReason::kSinkPointerIntoUse) {
return true;
}
expr = AddressOfIfNeeded(expr, &inst); expr = AddressOfIfNeeded(expr, &inst);
auto* ast_const = parser_impl_.MakeVariable( auto* ast_const = parser_impl_.MakeVariable(
inst.result_id(), ast::StorageClass::kNone, expr.type, true, expr.expr, inst.result_id(), ast::StorageClass::kNone, expr.type, true, expr.expr,
@ -3735,6 +3747,8 @@ bool FunctionEmitter::EmitStatement(const spvtools::opt::Instruction& inst) {
const auto skip = GetSkipReason(value_id); const auto skip = GetSkipReason(value_id);
if (skip != SkipReason::kDontSkip) { if (skip != SkipReason::kDontSkip) {
GetDefInfo(inst.result_id())->skip = skip; GetDefInfo(inst.result_id())->skip = skip;
GetDefInfo(inst.result_id())->sink_pointer_source_expr =
GetDefInfo(value_id)->sink_pointer_source_expr;
return true; return true;
} }
auto expr = AddressOfIfNeeded(MakeExpression(value_id), &inst); auto expr = AddressOfIfNeeded(MakeExpression(value_id), &inst);
@ -4214,6 +4228,8 @@ TypedExpression FunctionEmitter::MakeAccessChain(
if (base_skip != SkipReason::kDontSkip) { if (base_skip != SkipReason::kDontSkip) {
// This can occur for AccessChain with no indices. // This can occur for AccessChain with no indices.
GetDefInfo(inst.result_id())->skip = base_skip; GetDefInfo(inst.result_id())->skip = base_skip;
GetDefInfo(inst.result_id())->sink_pointer_source_expr =
GetDefInfo(base_id)->sink_pointer_source_expr;
return {}; return {};
} }
@ -4221,6 +4237,7 @@ TypedExpression FunctionEmitter::MakeAccessChain(
uint32_t first_index = 1; uint32_t first_index = 1;
const auto num_in_operands = inst.NumInOperands(); const auto num_in_operands = inst.NumInOperands();
bool sink_pointer = false;
TypedExpression current_expr; TypedExpression current_expr;
// If the variable was originally gl_PerVertex, then in the AST we // If the variable was originally gl_PerVertex, then in the AST we
@ -4352,6 +4369,8 @@ TypedExpression FunctionEmitter::MakeAccessChain(
} }
// All vector components are the same type. // All vector components are the same type.
pointee_type_id = pointee_type_inst->GetSingleWordInOperand(0); pointee_type_id = pointee_type_inst->GetSingleWordInOperand(0);
// Sink pointers to vector components.
sink_pointer = true;
break; break;
case SpvOpTypeMatrix: case SpvOpTypeMatrix:
// Use array syntax. // Use array syntax.
@ -4407,6 +4426,13 @@ TypedExpression FunctionEmitter::MakeAccessChain(
TINT_ASSERT(Reader, type && type->Is<Reference>()); TINT_ASSERT(Reader, type && type->Is<Reference>());
current_expr = TypedExpression{type, next_expr}; current_expr = TypedExpression{type, next_expr};
} }
if (sink_pointer) {
// Capture the reference so that we can sink it into the point of use.
GetDefInfo(inst.result_id())->skip = SkipReason::kSinkPointerIntoUse;
GetDefInfo(inst.result_id())->sink_pointer_source_expr = current_expr;
}
return current_expr; return current_expr;
} }

View File

@ -205,6 +205,12 @@ enum class SkipReason {
/// function parameter). /// function parameter).
kOpaqueObject, kOpaqueObject,
/// `kSinkPointerIntoUse`: used to avoid emitting certain pointer expressions,
/// by instead generating their reference expression directly at the point of
/// use. For example, we apply this to OpAccessChain when indexing into a
/// vector, to avoid generating address-of vector component expressions.
kSinkPointerIntoUse,
/// `kPointSizeBuiltinPointer`: the value is a pointer to the Position builtin /// `kPointSizeBuiltinPointer`: the value is a pointer to the Position builtin
/// variable. Don't generate its address. Avoid generating stores to this /// variable. Don't generate its address. Avoid generating stores to this
/// pointer. /// pointer.
@ -296,6 +302,11 @@ struct DefInfo {
/// This is kInvalid for non-pointers. /// This is kInvalid for non-pointers.
ast::StorageClass storage_class = ast::StorageClass::kInvalid; ast::StorageClass storage_class = ast::StorageClass::kInvalid;
/// The expression to use when sinking pointers into their use.
/// When encountering a use of this instruction, we will emit this expression
/// instead.
TypedExpression sink_pointer_source_expr = {};
/// The reason, if any, that this value should be ignored. /// The reason, if any, that this value should be ignored.
/// Normally no values are ignored. This field can be updated while /// Normally no values are ignored. This field can be updated while
/// generating code because sometimes we only discover necessary facts /// generating code because sometimes we only discover necessary facts
@ -320,6 +331,9 @@ inline std::ostream& operator<<(std::ostream& o, const DefInfo& di) {
case SkipReason::kOpaqueObject: case SkipReason::kOpaqueObject:
o << " skip:opaque"; o << " skip:opaque";
break; break;
case SkipReason::kSinkPointerIntoUse:
o << " skip:sink_pointer";
break;
case SkipReason::kPointSizeBuiltinPointer: case SkipReason::kPointSizeBuiltinPointer:
o << " skip:pointsize_pointer"; o << " skip:pointsize_pointer";
break; break;

View File

@ -390,6 +390,119 @@ TEST_F(SpvParserMemoryTest, EmitStatement_AccessChain_VectorNonConstIndex) {
HasSubstr("myvar[a_dynamic_index] = 42u;")); HasSubstr("myvar[a_dynamic_index] = 42u;"));
} }
TEST_F(SpvParserMemoryTest,
EmitStatement_AccessChain_VectorComponent_MultiUse) {
// WGSL does not support pointer-to-vector-component, so test that we sink
// these pointers into the point of use.
const std::string assembly = Preamble() + R"(
OpName %1 "myvar"
%void = OpTypeVoid
%voidfn = OpTypeFunction %void
%uint = OpTypeInt 32 0
%store_ty = OpTypeVector %uint 4
%uint_2 = OpConstant %uint 2
%uint_42 = OpConstant %uint 42
%elem_ty = OpTypePointer Private %uint
%var_ty = OpTypePointer Private %store_ty
%1 = OpVariable %var_ty Private
%100 = OpFunction %void None %voidfn
%entry = OpLabel
%ptr = OpAccessChain %elem_ty %1 %uint_2
%load = OpLoad %uint %ptr
%result = OpIAdd %uint %load %uint_2
OpStore %ptr %result
OpReturn
OpFunctionEnd
)";
auto p = parser(test::Assemble(assembly));
ASSERT_TRUE(p->BuildAndParseInternalModuleExceptFunctions())
<< assembly << p->error();
auto fe = p->function_emitter(100);
EXPECT_TRUE(fe.EmitBody()) << p->error();
auto ast_body = fe.ast_body();
auto wgsl = test::ToString(p->program(), ast_body);
EXPECT_THAT(wgsl, Not(HasSubstr("&")));
EXPECT_THAT(wgsl, HasSubstr(" = myvar.z;"));
EXPECT_THAT(wgsl, HasSubstr("myvar.z = "));
}
TEST_F(SpvParserMemoryTest,
EmitStatement_AccessChain_VectorComponent_MultiUse_NonConstIndex) {
// WGSL does not support pointer-to-vector-component, so test that we sink
// these pointers into the point of use.
const std::string assembly = Preamble() + R"(
OpName %1 "myvar"
%void = OpTypeVoid
%voidfn = OpTypeFunction %void
%uint = OpTypeInt 32 0
%store_ty = OpTypeVector %uint 4
%uint_2 = OpConstant %uint 2
%uint_42 = OpConstant %uint 42
%elem_ty = OpTypePointer Private %uint
%var_ty = OpTypePointer Private %store_ty
%1 = OpVariable %var_ty Private
%2 = OpVariable %elem_ty Private
%100 = OpFunction %void None %voidfn
%entry = OpLabel
%idx = OpLoad %uint %2
%ptr = OpAccessChain %elem_ty %1 %idx
%load = OpLoad %uint %ptr
%result = OpIAdd %uint %load %uint_2
OpStore %ptr %result
OpReturn
OpFunctionEnd
)";
auto p = parser(test::Assemble(assembly));
ASSERT_TRUE(p->BuildAndParseInternalModuleExceptFunctions())
<< assembly << p->error();
auto fe = p->function_emitter(100);
EXPECT_TRUE(fe.EmitBody()) << p->error();
auto ast_body = fe.ast_body();
auto wgsl = test::ToString(p->program(), ast_body);
EXPECT_THAT(wgsl, Not(HasSubstr("&")));
EXPECT_THAT(wgsl, HasSubstr(" = myvar[x_12];"));
EXPECT_THAT(wgsl, HasSubstr("myvar[x_12] = "));
}
TEST_F(SpvParserMemoryTest,
EmitStatement_AccessChain_VectorComponent_SinkThroughChain) {
// Test that we can sink a pointer-to-vector-component through a chain of
// instructions that propagate it.
const std::string assembly = Preamble() + R"(
OpName %1 "myvar"
%void = OpTypeVoid
%voidfn = OpTypeFunction %void
%uint = OpTypeInt 32 0
%store_ty = OpTypeVector %uint 4
%uint_2 = OpConstant %uint 2
%uint_42 = OpConstant %uint 42
%elem_ty = OpTypePointer Private %uint
%var_ty = OpTypePointer Private %store_ty
%1 = OpVariable %var_ty Private
%100 = OpFunction %void None %voidfn
%entry = OpLabel
%ptr = OpAccessChain %elem_ty %1 %uint_2
%ptr2 = OpCopyObject %elem_ty %ptr
%ptr3 = OpInBoundsAccessChain %elem_ty %ptr2
%ptr4 = OpAccessChain %elem_ty %ptr3
%load = OpLoad %uint %ptr3
%result = OpIAdd %uint %load %uint_2
OpStore %ptr4 %result
OpReturn
OpFunctionEnd
)";
auto p = parser(test::Assemble(assembly));
ASSERT_TRUE(p->BuildAndParseInternalModuleExceptFunctions())
<< assembly << p->error();
auto fe = p->function_emitter(100);
EXPECT_TRUE(fe.EmitBody()) << p->error();
auto ast_body = fe.ast_body();
auto wgsl = test::ToString(p->program(), ast_body);
EXPECT_THAT(wgsl, Not(HasSubstr("&")));
EXPECT_THAT(wgsl, HasSubstr(" = myvar.z;"));
EXPECT_THAT(wgsl, HasSubstr("myvar.z = "));
}
TEST_F(SpvParserMemoryTest, EmitStatement_AccessChain_Matrix) { TEST_F(SpvParserMemoryTest, EmitStatement_AccessChain_Matrix) {
const std::string assembly = Preamble() + R"( const std::string assembly = Preamble() + R"(
OpName %1 "myvar" OpName %1 "myvar"

View File

@ -6,9 +6,8 @@ fn main_1() {
var srcValue : vec4<u32>; var srcValue : vec4<u32>;
let x_18 : vec4<u32> = textureLoad(Src, vec2<i32>(0, 0), 0); let x_18 : vec4<u32> = textureLoad(Src, vec2<i32>(0, 0), 0);
srcValue = x_18; srcValue = x_18;
let x_21 : ptr<function, u32> = &(srcValue.x); let x_22 : u32 = srcValue.x;
let x_22 : u32 = *(x_21); srcValue.x = (x_22 + bitcast<u32>(1));
*(x_21) = (x_22 + bitcast<u32>(1));
let x_27 : vec4<u32> = srcValue; let x_27 : vec4<u32> = srcValue;
textureStore(Dst, vec2<i32>(0, 0), x_27); textureStore(Dst, vec2<i32>(0, 0), x_27);
return; return;

View File

@ -861,14 +861,13 @@ fn main_1() {
let x_771 : QuicksortObject = obj; let x_771 : QuicksortObject = obj;
obj = QuicksortObject(array<i32, 10u>(0, 0, 0, 0, 0, 0, 0, 0, 0, 0)); obj = QuicksortObject(array<i32, 10u>(0, 0, 0, 0, 0, 0, 0, 0, 0, 0));
obj = x_771; obj = x_771;
let x_205 : ptr<function, f32> = &(color.x);
let x_772 : i32 = *(x_200); let x_772 : i32 = *(x_200);
*(x_200) = 0; *(x_200) = 0;
*(x_200) = x_772; *(x_200) = x_772;
let x_206 : f32 = *(x_205); let x_206 : f32 = color.x;
let x_773 : f32 = *(x_205); let x_773 : f32 = color.x;
*(x_205) = 0.0; color.x = 0.0;
*(x_205) = x_773; color.x = x_773;
let x_452 : vec2<f32> = vec2<f32>(vec3<f32>(1.0, 2.0, 3.0).z, vec3<f32>(1.0, 2.0, 3.0).y); let x_452 : vec2<f32> = vec2<f32>(vec3<f32>(1.0, 2.0, 3.0).z, vec3<f32>(1.0, 2.0, 3.0).y);
let x_774 : i32 = i_2; let x_774 : i32 = i_2;
i_2 = 0; i_2 = 0;
@ -876,22 +875,20 @@ fn main_1() {
let x_775 : QuicksortObject = obj; let x_775 : QuicksortObject = obj;
obj = QuicksortObject(array<i32, 10u>(0, 0, 0, 0, 0, 0, 0, 0, 0, 0)); obj = QuicksortObject(array<i32, 10u>(0, 0, 0, 0, 0, 0, 0, 0, 0, 0));
obj = x_775; obj = x_775;
let x_208 : ptr<function, f32> = &(color.x);
let x_453 : vec3<f32> = vec3<f32>(x_451.x, x_450.x, x_450.y); let x_453 : vec3<f32> = vec3<f32>(x_451.x, x_450.x, x_450.y);
*(x_208) = (x_206 + f32(x_201)); color.x = (x_206 + f32(x_201));
let x_776 : vec2<f32> = uv; let x_776 : vec2<f32> = uv;
uv = vec2<f32>(0.0, 0.0); uv = vec2<f32>(0.0, 0.0);
uv = x_776; uv = x_776;
let x_209 : ptr<function, f32> = &(uv.x);
let x_777 : vec2<f32> = uv; let x_777 : vec2<f32> = uv;
uv = vec2<f32>(0.0, 0.0); uv = vec2<f32>(0.0, 0.0);
uv = x_777; uv = x_777;
let x_454 : vec2<f32> = vec2<f32>(x_184.y, x_184.y); let x_454 : vec2<f32> = vec2<f32>(x_184.y, x_184.y);
let x_210 : f32 = *(x_209); let x_210 : f32 = uv.x;
let x_455 : vec2<f32> = vec2<f32>(x_192.y, x_192.x); let x_455 : vec2<f32> = vec2<f32>(x_192.y, x_192.x);
let x_778 : f32 = *(x_209); let x_778 : f32 = uv.x;
*(x_209) = 0.0; uv.x = 0.0;
*(x_209) = x_778; uv.x = x_778;
let x_779 : QuicksortObject = obj; let x_779 : QuicksortObject = obj;
obj = QuicksortObject(array<i32, 10u>(0, 0, 0, 0, 0, 0, 0, 0, 0, 0)); obj = QuicksortObject(array<i32, 10u>(0, 0, 0, 0, 0, 0, 0, 0, 0, 0));
obj = x_779; obj = x_779;
@ -903,9 +900,9 @@ fn main_1() {
*(x_200) = 0; *(x_200) = 0;
*(x_200) = x_781; *(x_200) = x_781;
let x_456 : vec3<f32> = vec3<f32>(vec2<f32>(0.0, 0.0).y, x_448.y, x_448.y); let x_456 : vec3<f32> = vec3<f32>(vec2<f32>(0.0, 0.0).y, x_448.y, x_448.y);
let x_782 : f32 = *(x_209); let x_782 : f32 = uv.x;
*(x_209) = 0.0; uv.x = 0.0;
*(x_209) = x_782; uv.x = x_782;
let x_216 : i32 = obj.numbers[1]; let x_216 : i32 = obj.numbers[1];
let x_783 : QuicksortObject = obj; let x_783 : QuicksortObject = obj;
obj = QuicksortObject(array<i32, 10u>(0, 0, 0, 0, 0, 0, 0, 0, 0, 0)); obj = QuicksortObject(array<i32, 10u>(0, 0, 0, 0, 0, 0, 0, 0, 0, 0));
@ -914,7 +911,6 @@ fn main_1() {
let x_784 : vec2<f32> = uv; let x_784 : vec2<f32> = uv;
uv = vec2<f32>(0.0, 0.0); uv = vec2<f32>(0.0, 0.0);
uv = x_784; uv = x_784;
let x_218 : ptr<function, f32> = &(color[0]);
let x_785 : QuicksortObject = obj; let x_785 : QuicksortObject = obj;
obj = QuicksortObject(array<i32, 10u>(0, 0, 0, 0, 0, 0, 0, 0, 0, 0)); obj = QuicksortObject(array<i32, 10u>(0, 0, 0, 0, 0, 0, 0, 0, 0, 0));
obj = x_785; obj = x_785;
@ -922,10 +918,10 @@ fn main_1() {
let x_786 : i32 = i_2; let x_786 : i32 = i_2;
i_2 = 0; i_2 = 0;
i_2 = x_786; i_2 = x_786;
let x_219 : f32 = *(x_218); let x_219 : f32 = color[0];
let x_787 : f32 = *(x_218); let x_787 : f32 = color[0];
*(x_218) = 0.0; color[0] = 0.0;
*(x_218) = x_787; color[0] = x_787;
let x_788 : vec3<f32> = color; let x_788 : vec3<f32> = color;
color = vec3<f32>(0.0, 0.0, 0.0); color = vec3<f32>(0.0, 0.0, 0.0);
color = x_788; color = x_788;
@ -933,75 +929,73 @@ fn main_1() {
color = vec3<f32>(0.0, 0.0, 0.0); color = vec3<f32>(0.0, 0.0, 0.0);
color = x_789; color = x_789;
let x_459 : vec3<f32> = vec3<f32>(x_454.y, x_454.y, x_447.y); let x_459 : vec3<f32> = vec3<f32>(x_454.y, x_454.y, x_447.y);
let x_790 : f32 = *(x_218); let x_790 : f32 = color[0];
*(x_218) = 0.0; color[0] = 0.0;
*(x_218) = x_790; color[0] = x_790;
color.x = (f32(x_216) + x_219); color.x = (f32(x_216) + x_219);
let x_791 : i32 = *(x_200); let x_791 : i32 = *(x_200);
*(x_200) = 0; *(x_200) = 0;
*(x_200) = x_791; *(x_200) = x_791;
} }
let x_792 : f32 = *(x_209); let x_792 : f32 = uv.x;
*(x_209) = 0.0; uv.x = 0.0;
*(x_209) = x_792; uv.x = x_792;
let x_222 : ptr<function, f32> = &(uv.x); let x_793 : f32 = uv.x;
let x_793 : f32 = *(x_209); uv.x = 0.0;
*(x_209) = 0.0; uv.x = x_793;
*(x_209) = x_793; let x_223 : f32 = uv.x;
let x_223 : f32 = *(x_222); let x_794 : f32 = uv.x;
let x_794 : f32 = *(x_222); uv.x = 0.0;
*(x_222) = 0.0; uv.x = x_794;
*(x_222) = x_794;
let x_460 : vec3<f32> = vec3<f32>(x_453.z, x_453.y, x_453.y); let x_460 : vec3<f32> = vec3<f32>(x_453.z, x_453.y, x_453.y);
let x_795 : vec2<f32> = uv; let x_795 : vec2<f32> = uv;
uv = vec2<f32>(0.0, 0.0); uv = vec2<f32>(0.0, 0.0);
uv = x_795; uv = x_795;
let x_796 : f32 = *(x_222); let x_796 : f32 = uv.x;
*(x_222) = 0.0; uv.x = 0.0;
*(x_222) = x_796; uv.x = x_796;
let x_461 : vec2<f32> = vec2<f32>(vec2<f32>(0.0, 0.0).y, vec2<f32>(0.0, 0.0).y); let x_461 : vec2<f32> = vec2<f32>(vec2<f32>(0.0, 0.0).y, vec2<f32>(0.0, 0.0).y);
let x_797 : f32 = *(x_222); let x_797 : f32 = uv.x;
*(x_222) = 0.0; uv.x = 0.0;
*(x_222) = x_797; uv.x = x_797;
if ((x_223 > 0.5)) { if ((x_223 > 0.5)) {
let x_798 : f32 = *(x_222); let x_798 : f32 = uv.x;
*(x_222) = 0.0; uv.x = 0.0;
*(x_222) = x_798; uv.x = x_798;
let x_462 : vec2<f32> = vec2<f32>(x_446.x, x_446.x); let x_462 : vec2<f32> = vec2<f32>(x_446.x, x_446.x);
let x_799 : f32 = *(x_205); let x_799 : f32 = color.x;
*(x_205) = 0.0; color.x = 0.0;
*(x_205) = x_799; color.x = x_799;
let x_229 : ptr<private, i32> = &(obj.numbers[2u]); let x_229 : ptr<private, i32> = &(obj.numbers[2u]);
let x_800 : f32 = *(x_205); let x_800 : f32 = color.x;
*(x_205) = 0.0; color.x = 0.0;
*(x_205) = x_800; color.x = x_800;
let x_463 : vec3<f32> = vec3<f32>(x_453.x, x_453.z, x_461.y); let x_463 : vec3<f32> = vec3<f32>(x_453.x, x_453.z, x_461.y);
let x_801 : f32 = *(x_208); let x_801 : f32 = color.x;
*(x_208) = 0.0; color.x = 0.0;
*(x_208) = x_801; color.x = x_801;
let x_230 : i32 = *(x_229); let x_230 : i32 = *(x_229);
let x_802 : f32 = *(x_209); let x_802 : f32 = uv.x;
*(x_209) = 0.0; uv.x = 0.0;
*(x_209) = x_802; uv.x = x_802;
let x_803 : f32 = *(x_205); let x_803 : f32 = color.x;
*(x_205) = 0.0; color.x = 0.0;
*(x_205) = x_803; color.x = x_803;
let x_233 : ptr<function, f32> = &(color.y);
let x_804 : i32 = *(x_229); let x_804 : i32 = *(x_229);
*(x_229) = 0; *(x_229) = 0;
*(x_229) = x_804; *(x_229) = x_804;
let x_464 : vec2<f32> = vec2<f32>(x_450.y, x_191.x); let x_464 : vec2<f32> = vec2<f32>(x_450.y, x_191.x);
let x_805 : f32 = *(x_233); let x_805 : f32 = color.y;
*(x_233) = 0.0; color.y = 0.0;
*(x_233) = x_805; color.y = x_805;
let x_234 : f32 = *(x_233); let x_234 : f32 = color.y;
let x_806 : i32 = *(x_229); let x_806 : i32 = *(x_229);
*(x_229) = 0; *(x_229) = 0;
*(x_229) = x_806; *(x_229) = x_806;
let x_465 : vec2<f32> = vec2<f32>(x_463.x, x_185.x); let x_465 : vec2<f32> = vec2<f32>(x_463.x, x_185.x);
let x_807 : f32 = *(x_208); let x_807 : f32 = color.x;
*(x_208) = 0.0; color.x = 0.0;
*(x_208) = x_807; color.x = x_807;
let x_808 : i32 = i_2; let x_808 : i32 = i_2;
i_2 = 0; i_2 = 0;
i_2 = x_808; i_2 = x_808;
@ -1010,74 +1004,72 @@ fn main_1() {
i_2 = 0; i_2 = 0;
i_2 = x_809; i_2 = x_809;
color.y = (f32(x_230) + x_234); color.y = (f32(x_230) + x_234);
let x_810 : f32 = *(x_209); let x_810 : f32 = uv.x;
*(x_209) = 0.0; uv.x = 0.0;
*(x_209) = x_810; uv.x = x_810;
} }
let x_237 : ptr<function, f32> = &(uv[0]);
let x_811 : i32 = i_2; let x_811 : i32 = i_2;
i_2 = 0; i_2 = 0;
i_2 = x_811; i_2 = x_811;
let x_467 : vec2<f32> = vec2<f32>(x_191.x, x_191.x); let x_467 : vec2<f32> = vec2<f32>(x_191.x, x_191.x);
let x_812 : f32 = *(x_222); let x_812 : f32 = uv.x;
*(x_222) = 0.0; uv.x = 0.0;
*(x_222) = x_812; uv.x = x_812;
let x_238 : f32 = *(x_237); let x_238 : f32 = uv[0];
let x_813 : vec3<f32> = color; let x_813 : vec3<f32> = color;
color = vec3<f32>(0.0, 0.0, 0.0); color = vec3<f32>(0.0, 0.0, 0.0);
color = x_813; color = x_813;
let x_814 : f32 = *(x_208); let x_814 : f32 = color.x;
*(x_208) = 0.0; color.x = 0.0;
*(x_208) = x_814; color.x = x_814;
if ((x_238 > 0.75)) { if ((x_238 > 0.75)) {
let x_815 : f32 = *(x_205); let x_815 : f32 = color.x;
*(x_205) = 0.0; color.x = 0.0;
*(x_205) = x_815; color.x = x_815;
let x_245 : i32 = obj.numbers[3]; let x_245 : i32 = obj.numbers[3];
let x_816 : f32 = *(x_208); let x_816 : f32 = color.x;
*(x_208) = 0.0; color.x = 0.0;
*(x_208) = x_816; color.x = x_816;
let x_817 : QuicksortObject = obj; let x_817 : QuicksortObject = obj;
obj = QuicksortObject(array<i32, 10u>(0, 0, 0, 0, 0, 0, 0, 0, 0, 0)); obj = QuicksortObject(array<i32, 10u>(0, 0, 0, 0, 0, 0, 0, 0, 0, 0));
obj = x_817; obj = x_817;
let x_468 : vec3<f32> = vec3<f32>(x_467.x, x_467.x, x_467.x); let x_468 : vec3<f32> = vec3<f32>(x_467.x, x_467.x, x_467.x);
let x_818 : f32 = *(x_237); let x_818 : f32 = uv[0];
*(x_237) = 0.0; uv[0] = 0.0;
*(x_237) = x_818; uv[0] = x_818;
let x_248 : ptr<function, f32> = &(color.z); let x_819 : f32 = uv.x;
let x_819 : f32 = *(x_222); uv.x = 0.0;
*(x_222) = 0.0; uv.x = x_819;
*(x_222) = x_819; let x_249 : f32 = color.z;
let x_249 : f32 = *(x_248);
let x_820 : vec3<f32> = color; let x_820 : vec3<f32> = color;
color = vec3<f32>(0.0, 0.0, 0.0); color = vec3<f32>(0.0, 0.0, 0.0);
color = x_820; color = x_820;
let x_469 : vec3<f32> = vec3<f32>(x_467.x, x_191.y, x_467.y); let x_469 : vec3<f32> = vec3<f32>(x_467.x, x_191.y, x_467.y);
let x_821 : f32 = *(x_248); let x_821 : f32 = color.z;
*(x_248) = 0.0; color.z = 0.0;
*(x_248) = x_821; color.z = x_821;
let x_822 : i32 = *(x_200); let x_822 : i32 = *(x_200);
*(x_200) = 0; *(x_200) = 0;
*(x_200) = x_822; *(x_200) = x_822;
let x_470 : vec2<f32> = vec2<f32>(vec2<f32>(0.0, 0.0).x, vec2<f32>(0.0, 0.0).y); let x_470 : vec2<f32> = vec2<f32>(vec2<f32>(0.0, 0.0).x, vec2<f32>(0.0, 0.0).y);
let x_823 : f32 = *(x_248); let x_823 : f32 = color.z;
*(x_248) = 0.0; color.z = 0.0;
*(x_248) = x_823; color.z = x_823;
color.z = (x_249 + f32(x_245)); color.z = (x_249 + f32(x_245));
let x_824 : vec2<f32> = uv; let x_824 : vec2<f32> = uv;
uv = vec2<f32>(0.0, 0.0); uv = vec2<f32>(0.0, 0.0);
uv = x_824; uv = x_824;
let x_471 : vec2<f32> = vec2<f32>(x_470.y, x_470.y); let x_471 : vec2<f32> = vec2<f32>(x_470.y, x_470.y);
} }
let x_825 : f32 = *(x_237); let x_825 : f32 = uv[0];
*(x_237) = 0.0; uv[0] = 0.0;
*(x_237) = x_825; uv[0] = x_825;
let x_472 : vec3<f32> = vec3<f32>(x_454.x, x_454.y, x_454.y); let x_472 : vec3<f32> = vec3<f32>(x_454.x, x_454.y, x_454.y);
let x_253 : ptr<private, i32> = &(obj.numbers[4]); let x_253 : ptr<private, i32> = &(obj.numbers[4]);
let x_254 : i32 = *(x_253); let x_254 : i32 = *(x_253);
let x_826 : f32 = *(x_237); let x_826 : f32 = uv[0];
*(x_237) = 0.0; uv[0] = 0.0;
*(x_237) = x_826; uv[0] = x_826;
let x_827 : vec3<f32> = color; let x_827 : vec3<f32> = color;
color = vec3<f32>(0.0, 0.0, 0.0); color = vec3<f32>(0.0, 0.0, 0.0);
color = x_827; color = x_827;
@ -1085,38 +1077,35 @@ fn main_1() {
let x_828 : i32 = *(x_253); let x_828 : i32 = *(x_253);
*(x_253) = 0; *(x_253) = 0;
*(x_253) = x_828; *(x_253) = x_828;
let x_256 : ptr<function, f32> = &(color.y);
let x_474 : vec2<f32> = vec2<f32>(x_191.x, x_184.z); let x_474 : vec2<f32> = vec2<f32>(x_191.x, x_184.z);
let x_829 : f32 = *(x_209); let x_829 : f32 = uv.x;
*(x_209) = 0.0; uv.x = 0.0;
*(x_209) = x_829; uv.x = x_829;
let x_257 : f32 = *(x_256); let x_257 : f32 = color.y;
let x_830 : f32 = *(x_256); let x_830 : f32 = color.y;
*(x_256) = 0.0; color.y = 0.0;
*(x_256) = x_830; color.y = x_830;
let x_475 : vec2<f32> = vec2<f32>(x_467.x, x_450.x); let x_475 : vec2<f32> = vec2<f32>(x_467.x, x_450.x);
let x_831 : f32 = *(x_222); let x_831 : f32 = uv.x;
*(x_222) = 0.0; uv.x = 0.0;
*(x_222) = x_831; uv.x = x_831;
let x_259 : ptr<function, f32> = &(color.y); let x_832 : f32 = color.x;
let x_832 : f32 = *(x_205); color.x = 0.0;
*(x_205) = 0.0; color.x = x_832;
*(x_205) = x_832;
let x_476 : vec2<f32> = vec2<f32>(x_451.z, x_460.y); let x_476 : vec2<f32> = vec2<f32>(x_451.z, x_460.y);
*(x_259) = (x_257 + f32(x_254)); color.y = (x_257 + f32(x_254));
let x_477 : vec3<f32> = vec3<f32>(vec2<f32>(0.0, 0.0).x, x_472.x, vec2<f32>(0.0, 0.0).y); let x_477 : vec3<f32> = vec3<f32>(vec2<f32>(0.0, 0.0).x, x_472.x, vec2<f32>(0.0, 0.0).y);
let x_833 : f32 = *(x_209); let x_833 : f32 = uv.x;
*(x_209) = 0.0; uv.x = 0.0;
*(x_209) = x_833; uv.x = x_833;
let x_260 : ptr<function, f32> = &(uv.y); let x_834 : f32 = color.x;
let x_834 : f32 = *(x_205); color.x = 0.0;
*(x_205) = 0.0; color.x = x_834;
*(x_205) = x_834;
let x_478 : vec2<f32> = vec2<f32>(x_472.x, x_472.y); let x_478 : vec2<f32> = vec2<f32>(x_472.x, x_472.y);
let x_835 : f32 = *(x_260); let x_835 : f32 = uv.y;
*(x_260) = 0.0; uv.y = 0.0;
*(x_260) = x_835; uv.y = x_835;
let x_261 : f32 = *(x_260); let x_261 : f32 = uv.y;
let x_836 : i32 = i_2; let x_836 : i32 = i_2;
i_2 = 0; i_2 = 0;
i_2 = x_836; i_2 = x_836;
@ -1124,22 +1113,22 @@ fn main_1() {
let x_837 : i32 = *(x_200); let x_837 : i32 = *(x_200);
*(x_200) = 0; *(x_200) = 0;
*(x_200) = x_837; *(x_200) = x_837;
let x_838 : f32 = *(x_259); let x_838 : f32 = color.y;
*(x_259) = 0.0; color.y = 0.0;
*(x_259) = x_838; color.y = x_838;
let x_480 : vec3<f32> = vec3<f32>(x_446.x, x_446.x, vec2<f32>(0.0, 0.0).y); let x_480 : vec3<f32> = vec3<f32>(x_446.x, x_446.x, vec2<f32>(0.0, 0.0).y);
let x_839 : f32 = *(x_209); let x_839 : f32 = uv.x;
*(x_209) = 0.0; uv.x = 0.0;
*(x_209) = x_839; uv.x = x_839;
if ((x_261 > 0.25)) { if ((x_261 > 0.25)) {
let x_481 : vec2<f32> = vec2<f32>(x_447.x, x_480.z); let x_481 : vec2<f32> = vec2<f32>(x_447.x, x_480.z);
let x_840 : vec3<f32> = color; let x_840 : vec3<f32> = color;
color = vec3<f32>(0.0, 0.0, 0.0); color = vec3<f32>(0.0, 0.0, 0.0);
color = x_840; color = x_840;
let x_267 : i32 = obj.numbers[5u]; let x_267 : i32 = obj.numbers[5u];
let x_841 : f32 = *(x_205); let x_841 : f32 = color.x;
*(x_205) = 0.0; color.x = 0.0;
*(x_205) = x_841; color.x = x_841;
let x_842 : i32 = i_2; let x_842 : i32 = i_2;
i_2 = 0; i_2 = 0;
i_2 = x_842; i_2 = x_842;
@ -1147,61 +1136,60 @@ fn main_1() {
i_2 = 0; i_2 = 0;
i_2 = x_843; i_2 = x_843;
let x_270 : f32 = color.x; let x_270 : f32 = color.x;
let x_844 : f32 = *(x_237); let x_844 : f32 = uv[0];
*(x_237) = 0.0; uv[0] = 0.0;
*(x_237) = x_844; uv[0] = x_844;
let x_482 : vec3<f32> = vec3<f32>(x_455.x, x_475.y, x_455.y); let x_482 : vec3<f32> = vec3<f32>(x_455.x, x_475.y, x_455.y);
let x_845 : QuicksortObject = obj; let x_845 : QuicksortObject = obj;
obj = QuicksortObject(array<i32, 10u>(0, 0, 0, 0, 0, 0, 0, 0, 0, 0)); obj = QuicksortObject(array<i32, 10u>(0, 0, 0, 0, 0, 0, 0, 0, 0, 0));
obj = x_845; obj = x_845;
let x_846 : f32 = *(x_260); let x_846 : f32 = uv.y;
*(x_260) = 0.0; uv.y = 0.0;
*(x_260) = x_846; uv.y = x_846;
let x_847 : i32 = i_2; let x_847 : i32 = i_2;
i_2 = 0; i_2 = 0;
i_2 = x_847; i_2 = x_847;
let x_483 : vec3<f32> = vec3<f32>(x_184.w, x_184.w, x_192.x); let x_483 : vec3<f32> = vec3<f32>(x_184.w, x_184.w, x_192.x);
let x_848 : f32 = *(x_209); let x_848 : f32 = uv.x;
*(x_209) = 0.0; uv.x = 0.0;
*(x_209) = x_848; uv.x = x_848;
color.x = (f32(x_267) + x_270); color.x = (f32(x_267) + x_270);
let x_484 : vec3<f32> = vec3<f32>(x_454.y, x_450.x, x_454.y); let x_484 : vec3<f32> = vec3<f32>(x_454.y, x_450.x, x_454.y);
let x_849 : f32 = *(x_209); let x_849 : f32 = uv.x;
*(x_209) = 0.0; uv.x = 0.0;
*(x_209) = x_849; uv.x = x_849;
} }
let x_850 : f32 = *(x_205); let x_850 : f32 = color.x;
*(x_205) = 0.0; color.x = 0.0;
*(x_205) = x_850; color.x = x_850;
let x_485 : vec3<f32> = vec3<f32>(x_467.x, x_450.y, x_450.x); let x_485 : vec3<f32> = vec3<f32>(x_467.x, x_450.y, x_450.x);
let x_851 : f32 = *(x_260); let x_851 : f32 = uv.y;
*(x_260) = 0.0; uv.y = 0.0;
*(x_260) = x_851; uv.y = x_851;
let x_273 : ptr<function, f32> = &(uv.y);
let x_852 : i32 = *(x_253); let x_852 : i32 = *(x_253);
*(x_253) = 0; *(x_253) = 0;
*(x_253) = x_852; *(x_253) = x_852;
let x_274 : f32 = *(x_273); let x_274 : f32 = uv.y;
let x_853 : i32 = *(x_200); let x_853 : i32 = *(x_200);
*(x_200) = 0; *(x_200) = 0;
*(x_200) = x_853; *(x_200) = x_853;
if ((x_274 > 0.5)) { if ((x_274 > 0.5)) {
let x_854 : f32 = *(x_222); let x_854 : f32 = uv.x;
*(x_222) = 0.0; uv.x = 0.0;
*(x_222) = x_854; uv.x = x_854;
let x_486 : vec2<f32> = vec2<f32>(x_480.y, x_455.y); let x_486 : vec2<f32> = vec2<f32>(x_480.y, x_455.y);
let x_279 : ptr<private, i32> = &(obj.numbers[6u]); let x_279 : ptr<private, i32> = &(obj.numbers[6u]);
let x_855 : f32 = *(x_256); let x_855 : f32 = color.y;
*(x_256) = 0.0; color.y = 0.0;
*(x_256) = x_855; color.y = x_855;
let x_487 : vec2<f32> = vec2<f32>(x_449.z, x_449.y); let x_487 : vec2<f32> = vec2<f32>(x_449.z, x_449.y);
let x_856 : f32 = *(x_273); let x_856 : f32 = uv.y;
*(x_273) = 0.0; uv.y = 0.0;
*(x_273) = x_856; uv.y = x_856;
let x_280 : i32 = *(x_279); let x_280 : i32 = *(x_279);
let x_857 : f32 = *(x_260); let x_857 : f32 = uv.y;
*(x_260) = 0.0; uv.y = 0.0;
*(x_260) = x_857; uv.y = x_857;
let x_858 : i32 = i_2; let x_858 : i32 = i_2;
i_2 = 0; i_2 = 0;
i_2 = x_858; i_2 = x_858;
@ -1213,9 +1201,9 @@ fn main_1() {
let x_860 : vec2<f32> = uv; let x_860 : vec2<f32> = uv;
uv = vec2<f32>(0.0, 0.0); uv = vec2<f32>(0.0, 0.0);
uv = x_860; uv = x_860;
let x_861 : f32 = *(x_208); let x_861 : f32 = color.x;
*(x_208) = 0.0; color.x = 0.0;
*(x_208) = x_861; color.x = x_861;
let x_489 : vec2<f32> = vec2<f32>(x_475.y, x_475.x); let x_489 : vec2<f32> = vec2<f32>(x_475.y, x_475.x);
let x_862 : i32 = *(x_279); let x_862 : i32 = *(x_279);
*(x_279) = 0; *(x_279) = 0;
@ -1228,30 +1216,29 @@ fn main_1() {
obj = QuicksortObject(array<i32, 10u>(0, 0, 0, 0, 0, 0, 0, 0, 0, 0)); obj = QuicksortObject(array<i32, 10u>(0, 0, 0, 0, 0, 0, 0, 0, 0, 0));
obj = x_864; obj = x_864;
color.y = (f32(x_280) + x_283); color.y = (f32(x_280) + x_283);
let x_865 : f32 = *(x_208); let x_865 : f32 = color.x;
*(x_208) = 0.0; color.x = 0.0;
*(x_208) = x_865; color.x = x_865;
let x_491 : vec2<f32> = vec2<f32>(vec3<f32>(1.0, 2.0, 3.0).y, x_454.x); let x_491 : vec2<f32> = vec2<f32>(vec3<f32>(1.0, 2.0, 3.0).y, x_454.x);
let x_866 : f32 = *(x_259); let x_866 : f32 = color.y;
*(x_259) = 0.0; color.y = 0.0;
*(x_259) = x_866; color.y = x_866;
} }
let x_492 : vec2<f32> = vec2<f32>(x_455.y, x_455.y); let x_492 : vec2<f32> = vec2<f32>(x_455.y, x_455.y);
let x_867 : f32 = *(x_205); let x_867 : f32 = color.x;
*(x_205) = 0.0; color.x = 0.0;
*(x_205) = x_867; color.x = x_867;
let x_286 : ptr<function, f32> = &(uv.y); let x_287 : f32 = uv.y;
let x_287 : f32 = *(x_286);
let x_868 : QuicksortObject = obj; let x_868 : QuicksortObject = obj;
obj = QuicksortObject(array<i32, 10u>(0, 0, 0, 0, 0, 0, 0, 0, 0, 0)); obj = QuicksortObject(array<i32, 10u>(0, 0, 0, 0, 0, 0, 0, 0, 0, 0));
obj = x_868; obj = x_868;
let x_493 : vec2<f32> = vec2<f32>(x_475.x, x_475.y); let x_493 : vec2<f32> = vec2<f32>(x_475.x, x_475.y);
let x_869 : f32 = *(x_237); let x_869 : f32 = uv[0];
*(x_237) = 0.0; uv[0] = 0.0;
*(x_237) = x_869; uv[0] = x_869;
let x_870 : f32 = *(x_259); let x_870 : f32 = color.y;
*(x_259) = 0.0; color.y = 0.0;
*(x_259) = x_870; color.y = x_870;
let x_494 : vec3<f32> = vec3<f32>(x_191.x, x_191.y, x_191.y); let x_494 : vec3<f32> = vec3<f32>(x_191.x, x_191.y, x_191.y);
let x_871 : i32 = *(x_253); let x_871 : i32 = *(x_253);
*(x_253) = 0; *(x_253) = 0;
@ -1260,59 +1247,58 @@ fn main_1() {
let x_872 : vec3<f32> = color; let x_872 : vec3<f32> = color;
color = vec3<f32>(0.0, 0.0, 0.0); color = vec3<f32>(0.0, 0.0, 0.0);
color = x_872; color = x_872;
let x_873 : f32 = *(x_208); let x_873 : f32 = color.x;
*(x_208) = 0.0; color.x = 0.0;
*(x_208) = x_873; color.x = x_873;
let x_495 : vec3<f32> = vec3<f32>(x_192.y, x_192.x, x_192.y); let x_495 : vec3<f32> = vec3<f32>(x_192.y, x_192.x, x_192.y);
let x_874 : vec3<f32> = color; let x_874 : vec3<f32> = color;
color = vec3<f32>(0.0, 0.0, 0.0); color = vec3<f32>(0.0, 0.0, 0.0);
color = x_874; color = x_874;
let x_293 : i32 = obj.numbers[7]; let x_293 : i32 = obj.numbers[7];
let x_875 : f32 = *(x_222); let x_875 : f32 = uv.x;
*(x_222) = 0.0; uv.x = 0.0;
*(x_222) = x_875; uv.x = x_875;
let x_496 : vec3<f32> = vec3<f32>(x_475.x, x_467.y, x_467.x); let x_496 : vec3<f32> = vec3<f32>(x_475.x, x_467.y, x_467.x);
let x_876 : f32 = *(x_259); let x_876 : f32 = color.y;
*(x_259) = 0.0; color.y = 0.0;
*(x_259) = x_876; color.y = x_876;
let x_497 : vec2<f32> = vec2<f32>(x_477.x, x_461.y); let x_497 : vec2<f32> = vec2<f32>(x_477.x, x_461.y);
let x_877 : i32 = *(x_200); let x_877 : i32 = *(x_200);
*(x_200) = 0; *(x_200) = 0;
*(x_200) = x_877; *(x_200) = x_877;
let x_878 : f32 = *(x_259); let x_878 : f32 = color.y;
*(x_259) = 0.0; color.y = 0.0;
*(x_259) = x_878; color.y = x_878;
let x_498 : vec3<f32> = vec3<f32>(x_478.x, x_478.y, x_478.x); let x_498 : vec3<f32> = vec3<f32>(x_478.x, x_478.y, x_478.x);
let x_879 : f32 = *(x_205); let x_879 : f32 = color.x;
*(x_205) = 0.0; color.x = 0.0;
*(x_205) = x_879; color.x = x_879;
let x_296 : f32 = color.z; let x_296 : f32 = color.z;
let x_880 : f32 = *(x_273); let x_880 : f32 = uv.y;
*(x_273) = 0.0; uv.y = 0.0;
*(x_273) = x_880; uv.y = x_880;
let x_499 : vec2<f32> = vec2<f32>(x_184.x, x_184.y); let x_499 : vec2<f32> = vec2<f32>(x_184.x, x_184.y);
let x_881 : f32 = *(x_209); let x_881 : f32 = uv.x;
*(x_209) = 0.0; uv.x = 0.0;
*(x_209) = x_881; uv.x = x_881;
let x_882 : f32 = *(x_286); let x_882 : f32 = uv.y;
*(x_286) = 0.0; uv.y = 0.0;
*(x_286) = x_882; uv.y = x_882;
let x_298 : ptr<function, f32> = &(color.z); let x_883 : f32 = uv.y;
let x_883 : f32 = *(x_273); uv.y = 0.0;
*(x_273) = 0.0; uv.y = x_883;
*(x_273) = x_883;
let x_500 : vec3<f32> = vec3<f32>(x_499.y, x_499.y, x_494.z); let x_500 : vec3<f32> = vec3<f32>(x_499.y, x_499.y, x_494.z);
let x_884 : f32 = *(x_298); let x_884 : f32 = color.z;
*(x_298) = 0.0; color.z = 0.0;
*(x_298) = x_884; color.z = x_884;
*(x_298) = (f32(x_293) + x_296); color.z = (f32(x_293) + x_296);
let x_885 : f32 = *(x_256); let x_885 : f32 = color.y;
*(x_256) = 0.0; color.y = 0.0;
*(x_256) = x_885; color.y = x_885;
let x_501 : vec2<f32> = vec2<f32>(x_453.x, x_453.z); let x_501 : vec2<f32> = vec2<f32>(x_453.x, x_453.z);
let x_886 : f32 = *(x_205); let x_886 : f32 = color.x;
*(x_205) = 0.0; color.x = 0.0;
*(x_205) = x_886; color.x = x_886;
} }
let x_887 : i32 = i_2; let x_887 : i32 = i_2;
i_2 = 0; i_2 = 0;
@ -1330,65 +1316,62 @@ fn main_1() {
let x_890 : i32 = *(x_300); let x_890 : i32 = *(x_300);
*(x_300) = 0; *(x_300) = 0;
*(x_300) = x_890; *(x_300) = x_890;
let x_891 : f32 = *(x_256); let x_891 : f32 = color.y;
*(x_256) = 0.0; color.y = 0.0;
*(x_256) = x_891; color.y = x_891;
let x_504 : vec2<f32> = vec2<f32>(x_453.y, vec2<f32>(0.0, 0.0).x); let x_504 : vec2<f32> = vec2<f32>(x_453.y, vec2<f32>(0.0, 0.0).x);
let x_892 : f32 = *(x_205); let x_892 : f32 = color.x;
*(x_205) = 0.0; color.x = 0.0;
*(x_205) = x_892; color.x = x_892;
let x_303 : ptr<function, f32> = &(color.z);
let x_505 : vec3<f32> = vec3<f32>(x_504.x, x_504.y, x_504.x); let x_505 : vec3<f32> = vec3<f32>(x_504.x, x_504.y, x_504.x);
let x_893 : f32 = *(x_303); let x_893 : f32 = color.z;
*(x_303) = 0.0; color.z = 0.0;
*(x_303) = x_893; color.z = x_893;
let x_304 : f32 = *(x_303); let x_304 : f32 = color.z;
let x_894 : f32 = *(x_208); let x_894 : f32 = color.x;
*(x_208) = 0.0; color.x = 0.0;
*(x_208) = x_894; color.x = x_894;
let x_506 : vec2<f32> = vec2<f32>(x_493.x, x_492.x); let x_506 : vec2<f32> = vec2<f32>(x_493.x, x_492.x);
let x_895 : i32 = *(x_253); let x_895 : i32 = *(x_253);
*(x_253) = 0; *(x_253) = 0;
*(x_253) = x_895; *(x_253) = x_895;
let x_896 : f32 = *(x_286); let x_896 : f32 = uv.y;
*(x_286) = 0.0; uv.y = 0.0;
*(x_286) = x_896; uv.y = x_896;
let x_507 : vec2<f32> = vec2<f32>(x_461.x, x_447.x); let x_507 : vec2<f32> = vec2<f32>(x_461.x, x_447.x);
let x_897 : f32 = *(x_259); let x_897 : f32 = color.y;
*(x_259) = 0.0; color.y = 0.0;
*(x_259) = x_897; color.y = x_897;
let x_306 : ptr<function, f32> = &(color.z); color.z = (x_304 + f32(x_301));
*(x_306) = (x_304 + f32(x_301));
let x_898 : vec2<f32> = uv; let x_898 : vec2<f32> = uv;
uv = vec2<f32>(0.0, 0.0); uv = vec2<f32>(0.0, 0.0);
uv = x_898; uv = x_898;
let x_899 : f32 = *(x_222); let x_899 : f32 = uv.x;
*(x_222) = 0.0; uv.x = 0.0;
*(x_222) = x_899; uv.x = x_899;
let x_508 : vec3<f32> = vec3<f32>(x_461.y, x_461.x, x_506.y); let x_508 : vec3<f32> = vec3<f32>(x_461.y, x_461.x, x_506.y);
let x_900 : f32 = *(x_222); let x_900 : f32 = uv.x;
*(x_222) = 0.0; uv.x = 0.0;
*(x_222) = x_900; uv.x = x_900;
let x_308 : f32 = uv.x; let x_308 : f32 = uv.x;
let x_901 : f32 = *(x_259); let x_901 : f32 = color.y;
*(x_259) = 0.0; color.y = 0.0;
*(x_259) = x_901; color.y = x_901;
let x_309 : ptr<function, f32> = &(uv.y);
let x_509 : vec3<f32> = vec3<f32>(x_503.y, x_503.x, x_448.z); let x_509 : vec3<f32> = vec3<f32>(x_503.y, x_503.x, x_448.z);
let x_902 : f32 = *(x_260); let x_902 : f32 = uv.y;
*(x_260) = 0.0; uv.y = 0.0;
*(x_260) = x_902; uv.y = x_902;
let x_310 : f32 = *(x_309); let x_310 : f32 = uv.y;
let x_903 : f32 = *(x_260); let x_903 : f32 = uv.y;
*(x_260) = 0.0; uv.y = 0.0;
*(x_260) = x_903; uv.y = x_903;
let x_904 : f32 = *(x_306); let x_904 : f32 = color.z;
*(x_306) = 0.0; color.z = 0.0;
*(x_306) = x_904; color.z = x_904;
let x_510 : vec3<f32> = vec3<f32>(vec3<f32>(1.0, 2.0, 3.0).y, x_485.y, x_485.z); let x_510 : vec3<f32> = vec3<f32>(vec3<f32>(1.0, 2.0, 3.0).y, x_485.y, x_485.z);
let x_905 : f32 = *(x_306); let x_905 : f32 = color.z;
*(x_306) = 0.0; color.z = 0.0;
*(x_306) = x_905; color.z = x_905;
let x_906 : i32 = i_2; let x_906 : i32 = i_2;
i_2 = 0; i_2 = 0;
i_2 = x_906; i_2 = x_906;
@ -1396,17 +1379,17 @@ fn main_1() {
let x_907 : vec3<f32> = color; let x_907 : vec3<f32> = color;
color = vec3<f32>(0.0, 0.0, 0.0); color = vec3<f32>(0.0, 0.0, 0.0);
color = x_907; color = x_907;
let x_908 : f32 = *(x_260); let x_908 : f32 = uv.y;
*(x_260) = 0.0; uv.y = 0.0;
*(x_260) = x_908; uv.y = x_908;
let x_512 : vec3<f32> = vec3<f32>(x_455.y, x_455.y, x_455.y); let x_512 : vec3<f32> = vec3<f32>(x_455.y, x_455.y, x_455.y);
let x_909 : i32 = *(x_253); let x_909 : i32 = *(x_253);
*(x_253) = 0; *(x_253) = 0;
*(x_253) = x_909; *(x_253) = x_909;
if ((abs((x_308 - x_310)) < 0.25)) { if ((abs((x_308 - x_310)) < 0.25)) {
let x_910 : f32 = *(x_209); let x_910 : f32 = uv.x;
*(x_209) = 0.0; uv.x = 0.0;
*(x_209) = x_910; uv.x = x_910;
let x_911 : QuicksortObject = obj; let x_911 : QuicksortObject = obj;
obj = QuicksortObject(array<i32, 10u>(0, 0, 0, 0, 0, 0, 0, 0, 0, 0)); obj = QuicksortObject(array<i32, 10u>(0, 0, 0, 0, 0, 0, 0, 0, 0, 0));
obj = x_911; obj = x_911;
@ -1416,17 +1399,17 @@ fn main_1() {
*(x_300) = x_912; *(x_300) = x_912;
let x_317 : i32 = obj.numbers[9u]; let x_317 : i32 = obj.numbers[9u];
let x_514 : vec3<f32> = vec3<f32>(x_474.y, x_474.y, x_474.y); let x_514 : vec3<f32> = vec3<f32>(x_474.y, x_474.y, x_474.y);
let x_913 : f32 = *(x_260); let x_913 : f32 = uv.y;
*(x_260) = 0.0; uv.y = 0.0;
*(x_260) = x_913; uv.y = x_913;
let x_320 : f32 = color.x; let x_320 : f32 = color.x;
let x_914 : f32 = *(x_286); let x_914 : f32 = uv.y;
*(x_286) = 0.0; uv.y = 0.0;
*(x_286) = x_914; uv.y = x_914;
let x_515 : vec2<f32> = vec2<f32>(x_502.x, x_502.y); let x_515 : vec2<f32> = vec2<f32>(x_502.x, x_502.y);
let x_915 : f32 = *(x_205); let x_915 : f32 = color.x;
*(x_205) = 0.0; color.x = 0.0;
*(x_205) = x_915; color.x = x_915;
let x_916 : vec3<f32> = color; let x_916 : vec3<f32> = color;
color = vec3<f32>(0.0, 0.0, 0.0); color = vec3<f32>(0.0, 0.0, 0.0);
color = x_916; color = x_916;
@ -1434,61 +1417,60 @@ fn main_1() {
let x_917 : vec2<f32> = uv; let x_917 : vec2<f32> = uv;
uv = vec2<f32>(0.0, 0.0); uv = vec2<f32>(0.0, 0.0);
uv = x_917; uv = x_917;
let x_322 : ptr<function, f32> = &(color.x); let x_918 : f32 = uv.x;
let x_918 : f32 = *(x_209); uv.x = 0.0;
*(x_209) = 0.0; uv.x = x_918;
*(x_209) = x_918;
let x_517 : vec3<f32> = vec3<f32>(vec2<f32>(0.0, 0.0).x, vec2<f32>(0.0, 0.0).x, vec2<f32>(0.0, 0.0).y); let x_517 : vec3<f32> = vec3<f32>(vec2<f32>(0.0, 0.0).x, vec2<f32>(0.0, 0.0).x, vec2<f32>(0.0, 0.0).y);
*(x_322) = (f32(x_317) + x_320); color.x = (f32(x_317) + x_320);
let x_919 : f32 = *(x_322); let x_919 : f32 = color.x;
*(x_322) = 0.0; color.x = 0.0;
*(x_322) = x_919; color.x = x_919;
let x_518 : vec3<f32> = vec3<f32>(x_480.y, x_508.x, x_480.x); let x_518 : vec3<f32> = vec3<f32>(x_480.y, x_508.x, x_480.x);
let x_920 : f32 = *(x_205); let x_920 : f32 = color.x;
*(x_205) = 0.0; color.x = 0.0;
*(x_205) = x_920; color.x = x_920;
} }
let x_921 : f32 = *(x_309); let x_921 : f32 = uv.y;
*(x_309) = 0.0; uv.y = 0.0;
*(x_309) = x_921; uv.y = x_921;
let x_325 : vec3<f32> = color; let x_325 : vec3<f32> = color;
let x_922 : f32 = *(x_237); let x_922 : f32 = uv[0];
*(x_237) = 0.0; uv[0] = 0.0;
*(x_237) = x_922; uv[0] = x_922;
let x_519 : vec3<f32> = vec3<f32>(x_447.x, x_446.x, x_446.y); let x_519 : vec3<f32> = vec3<f32>(x_447.x, x_446.x, x_446.y);
let x_326 : vec3<f32> = normalize(x_325); let x_326 : vec3<f32> = normalize(x_325);
let x_923 : f32 = *(x_209); let x_923 : f32 = uv.x;
*(x_209) = 0.0; uv.x = 0.0;
*(x_209) = x_923; uv.x = x_923;
let x_924 : QuicksortObject = obj; let x_924 : QuicksortObject = obj;
obj = QuicksortObject(array<i32, 10u>(0, 0, 0, 0, 0, 0, 0, 0, 0, 0)); obj = QuicksortObject(array<i32, 10u>(0, 0, 0, 0, 0, 0, 0, 0, 0, 0));
obj = x_924; obj = x_924;
let x_925 : QuicksortObject = obj; let x_925 : QuicksortObject = obj;
obj = QuicksortObject(array<i32, 10u>(0, 0, 0, 0, 0, 0, 0, 0, 0, 0)); obj = QuicksortObject(array<i32, 10u>(0, 0, 0, 0, 0, 0, 0, 0, 0, 0));
obj = x_925; obj = x_925;
let x_926 : f32 = *(x_259); let x_926 : f32 = color.y;
*(x_259) = 0.0; color.y = 0.0;
*(x_259) = x_926; color.y = x_926;
let x_520 : vec2<f32> = vec2<f32>(x_506.y, x_519.y); let x_520 : vec2<f32> = vec2<f32>(x_506.y, x_519.y);
let x_927 : f32 = *(x_259); let x_927 : f32 = color.y;
*(x_259) = 0.0; color.y = 0.0;
*(x_259) = x_927; color.y = x_927;
let x_330 : vec4<f32> = vec4<f32>(x_326.x, x_326.y, x_326.z, 1.0); let x_330 : vec4<f32> = vec4<f32>(x_326.x, x_326.y, x_326.z, 1.0);
let x_928 : f32 = *(x_309); let x_928 : f32 = uv.y;
*(x_309) = 0.0; uv.y = 0.0;
*(x_309) = x_928; uv.y = x_928;
let x_521 : vec3<f32> = vec3<f32>(vec3<f32>(1.0, 2.0, 3.0).y, vec3<f32>(1.0, 2.0, 3.0).y, x_520.y); let x_521 : vec3<f32> = vec3<f32>(vec3<f32>(1.0, 2.0, 3.0).y, vec3<f32>(1.0, 2.0, 3.0).y, x_520.y);
let x_929 : f32 = *(x_222); let x_929 : f32 = uv.x;
*(x_222) = 0.0; uv.x = 0.0;
*(x_222) = x_929; uv.x = x_929;
x_GLF_color = x_330; x_GLF_color = x_330;
let x_930 : QuicksortObject = obj; let x_930 : QuicksortObject = obj;
obj = QuicksortObject(array<i32, 10u>(0, 0, 0, 0, 0, 0, 0, 0, 0, 0)); obj = QuicksortObject(array<i32, 10u>(0, 0, 0, 0, 0, 0, 0, 0, 0, 0));
obj = x_930; obj = x_930;
let x_522 : vec3<f32> = vec3<f32>(x_330.w, x_330.y, x_493.x); let x_522 : vec3<f32> = vec3<f32>(x_330.w, x_330.y, x_493.x);
let x_931 : f32 = *(x_208); let x_931 : f32 = color.x;
*(x_208) = 0.0; color.x = 0.0;
*(x_208) = x_931; color.x = x_931;
return; return;
} }

View File

@ -25,13 +25,9 @@ fn main_1() {
let x_52 : i32 = x_51.f1; let x_52 : i32 = x_51.f1;
x_6 = x_52; x_6 = x_52;
x_41 = x_51.f2; x_41 = x_51.f2;
let x_55 : ptr<function, f32> = &(x_41[0].x);
let x_56 : mat2x2<f32> = x_41; let x_56 : mat2x2<f32> = x_41;
let x_58 : ptr<function, f32> = &(x_41[1].x);
let x_59 : mat2x2<f32> = x_41; let x_59 : mat2x2<f32> = x_41;
let x_62 : ptr<function, f32> = &(x_41[0].y);
let x_63 : mat2x2<f32> = x_41; let x_63 : mat2x2<f32> = x_41;
let x_65 : ptr<function, f32> = &(x_41[1].y);
let x_66 : mat2x2<f32> = x_41; let x_66 : mat2x2<f32> = x_41;
x_GLF_color = vec4<f32>(f32(x_52), (x_56[0u].x + x_59[1u].x), (x_63[0u].y + x_66[1u].y), f32(x_52)); x_GLF_color = vec4<f32>(f32(x_52), (x_56[0u].x + x_59[1u].x), (x_63[0u].y + x_66[1u].y), f32(x_52));
return; return;

View File

@ -37,9 +37,8 @@ fn main_1() {
continuing { continuing {
let x_72 : f32 = x_7.one; let x_72 : f32 = x_7.one;
let x_73 : ptr<function, f32> = &(m44[x_10][x_11]); let x_74 : f32 = m44[x_10][x_11];
let x_74 : f32 = *(x_73); m44[x_10][x_11] = (x_74 + x_72);
*(x_73) = (x_74 + x_72);
x_8 = (x_11 + 1); x_8 = (x_11 + 1);
x_11_phi = x_8; x_11_phi = x_8;
} }

View File

@ -55,7 +55,7 @@ fn main_1() {
x_56_phi = x_68; x_56_phi = x_68;
} else { } else {
x_76_phi = x_55; x_76_phi = x_55;
if (((f32(x_58) % round(x_49)) <= 0.01)) { if (((f32(x_58) - (round(x_49) * floor((f32(x_58) / round(x_49))))) <= 0.01)) {
x_75 = (x_55 + 100.0); x_75 = (x_55 + 100.0);
x_76_phi = x_75; x_76_phi = x_75;
} }
@ -95,8 +95,7 @@ fn main_1() {
var x_119_phi : f32; var x_119_phi : f32;
var x_120_phi : bool; var x_120_phi : bool;
let x_85 : f32 = x_85_phi; let x_85 : f32 = x_85_phi;
let x_86 : ptr<function, f32> = &(c.x); c.x = x_85;
*(x_86) = x_85;
x_88 = gl_FragCoord.y; x_88 = gl_FragCoord.y;
switch(0u) { switch(0u) {
default: { default: {
@ -123,7 +122,7 @@ fn main_1() {
x_93_phi = x_105; x_93_phi = x_105;
} else { } else {
x_113_phi = x_92; x_113_phi = x_92;
if (((f32(x_95) % round(x_49)) <= 0.01)) { if (((f32(x_95) - (round(x_49) * floor((f32(x_95) / round(x_49))))) <= 0.01)) {
x_112 = (x_92 + 100.0); x_112 = (x_92 + 100.0);
x_113_phi = x_112; x_113_phi = x_112;
} }
@ -155,10 +154,9 @@ fn main_1() {
} }
} }
let x_122 : f32 = x_122_phi; let x_122 : f32 = x_122_phi;
let x_123 : ptr<function, f32> = &(c.y); c.y = x_122;
*(x_123) = x_122; let x_124 : f32 = c.x;
let x_124 : f32 = *(x_86); let x_125 : f32 = c.y;
let x_125 : f32 = *(x_123);
c.z = (x_124 + x_125); c.z = (x_124 + x_125);
x_129_phi = 0; x_129_phi = 0;
loop { loop {
@ -168,12 +166,11 @@ fn main_1() {
} else { } else {
break; break;
} }
let x_135 : ptr<function, f32> = &(c[x_129]); let x_136 : f32 = c[x_129];
let x_136 : f32 = *(x_135);
if ((x_136 >= 1.0)) { if ((x_136 >= 1.0)) {
let x_140 : f32 = *(x_135); let x_140 : f32 = c[x_129];
let x_141 : f32 = *(x_135); let x_141 : f32 = c[x_129];
*(x_135) = (x_140 * x_141); c[x_129] = (x_140 * x_141);
} }
continuing { continuing {

View File

@ -57,7 +57,7 @@ fn main_1() {
x_58_phi = x_70; x_58_phi = x_70;
} else { } else {
x_78_phi = x_57; x_78_phi = x_57;
if (((f32(x_60) % round(x_50)) <= 0.01)) { if (((f32(x_60) - (round(x_50) * floor((f32(x_60) / round(x_50))))) <= 0.01)) {
x_77 = (x_57 + 100.0); x_77 = (x_57 + 100.0);
x_78_phi = x_77; x_78_phi = x_77;
} }
@ -97,9 +97,8 @@ fn main_1() {
var x_125_phi : f32; var x_125_phi : f32;
var x_126_phi : bool; var x_126_phi : bool;
let x_87 : f32 = x_87_phi; let x_87 : f32 = x_87_phi;
let x_88 : ptr<function, f32> = &(c.x);
let x_89 : vec4<f32> = vec4<f32>(x_84, 0.400000006, x_83, 0.400000006); let x_89 : vec4<f32> = vec4<f32>(x_84, 0.400000006, x_83, 0.400000006);
*(x_88) = x_87; c.x = x_87;
x_92 = gl_FragCoord.y; x_92 = gl_FragCoord.y;
switch(0u) { switch(0u) {
default: { default: {
@ -128,7 +127,7 @@ fn main_1() {
x_99_phi = x_111; x_99_phi = x_111;
} else { } else {
x_119_phi = x_98; x_119_phi = x_98;
if (((f32(x_101) % round(x_50)) <= 0.01)) { if (((f32(x_101) - (round(x_50) * floor((f32(x_101) / round(x_50))))) <= 0.01)) {
x_118 = (x_98 + 100.0); x_118 = (x_98 + 100.0);
x_119_phi = x_118; x_119_phi = x_118;
} }
@ -160,10 +159,9 @@ fn main_1() {
} }
} }
let x_128 : f32 = x_128_phi; let x_128 : f32 = x_128_phi;
let x_129 : ptr<function, f32> = &(c.y); c.y = x_128;
*(x_129) = x_128; let x_130 : f32 = c.x;
let x_130 : f32 = *(x_88); let x_131 : f32 = c.y;
let x_131 : f32 = *(x_129);
c.z = (x_130 + x_131); c.z = (x_130 + x_131);
x_135_phi = 0; x_135_phi = 0;
loop { loop {
@ -173,12 +171,11 @@ fn main_1() {
} else { } else {
break; break;
} }
let x_141 : ptr<function, f32> = &(c[x_135]); let x_142 : f32 = c[x_135];
let x_142 : f32 = *(x_141);
if ((x_142 >= 1.0)) { if ((x_142 >= 1.0)) {
let x_146 : f32 = *(x_141); let x_146 : f32 = c[x_135];
let x_147 : f32 = *(x_141); let x_147 : f32 = c[x_135];
*(x_141) = (x_146 * x_147); c[x_135] = (x_146 * x_147);
} }
continuing { continuing {

View File

@ -55,7 +55,7 @@ fn main_1() {
x_56_phi = x_68; x_56_phi = x_68;
} else { } else {
x_76_phi = x_55; x_76_phi = x_55;
if (((f32(x_58) % round(x_49)) <= 0.01)) { if (((f32(x_58) - (round(x_49) * floor((f32(x_58) / round(x_49))))) <= 0.01)) {
x_75 = (x_55 + 100.0); x_75 = (x_55 + 100.0);
x_76_phi = x_75; x_76_phi = x_75;
} }
@ -95,8 +95,7 @@ fn main_1() {
var x_119_phi : f32; var x_119_phi : f32;
var x_120_phi : bool; var x_120_phi : bool;
let x_85 : f32 = x_85_phi; let x_85 : f32 = x_85_phi;
let x_86 : ptr<function, f32> = &(c.x); c.x = x_85;
*(x_86) = x_85;
x_88 = gl_FragCoord.y; x_88 = gl_FragCoord.y;
switch(0u) { switch(0u) {
default: { default: {
@ -123,7 +122,7 @@ fn main_1() {
x_93_phi = x_113; x_93_phi = x_113;
} else { } else {
x_112_phi = x_92; x_112_phi = x_92;
if (((f32(x_95) % round(x_49)) <= 0.01)) { if (((f32(x_95) - (round(x_49) * floor((f32(x_95) / round(x_49))))) <= 0.01)) {
x_111 = (x_92 + 100.0); x_111 = (x_92 + 100.0);
x_112_phi = x_111; x_112_phi = x_111;
} }
@ -155,10 +154,9 @@ fn main_1() {
} }
} }
let x_122 : f32 = x_122_phi; let x_122 : f32 = x_122_phi;
let x_123 : ptr<function, f32> = &(c.y); c.y = x_122;
*(x_123) = x_122; let x_124 : f32 = c.x;
let x_124 : f32 = *(x_86); let x_125 : f32 = c.y;
let x_125 : f32 = *(x_123);
c.z = (x_124 + x_125); c.z = (x_124 + x_125);
x_129_phi = 0; x_129_phi = 0;
loop { loop {
@ -168,12 +166,11 @@ fn main_1() {
} else { } else {
break; break;
} }
let x_135 : ptr<function, f32> = &(c[x_129]); let x_136 : f32 = c[x_129];
let x_136 : f32 = *(x_135);
if ((x_136 >= 1.0)) { if ((x_136 >= 1.0)) {
let x_140 : f32 = *(x_135); let x_140 : f32 = c[x_129];
let x_141 : f32 = *(x_135); let x_141 : f32 = c[x_129];
*(x_135) = (x_140 * x_141); c[x_129] = (x_140 * x_141);
} }
continuing { continuing {

View File

@ -10,10 +10,10 @@ var<private> gl_FragCoord : vec4<f32>;
var<private> x_GLF_color : vec4<f32>; var<private> x_GLF_color : vec4<f32>;
fn trace_vi2_(pos : ptr<function, vec2<i32>>) -> vec4<f32> { fn trace_vi2_(pos : ptr<function, vec2<i32>>) -> vec4<f32> {
var indexable : array<i32, 256>; var indexable : array<i32, 256u>;
var indexable_1 : array<i32, 256>; var indexable_1 : array<i32, 256u>;
var p : f32; var p : f32;
var indexable_2 : array<i32, 256>; var indexable_2 : array<i32, 256u>;
loop { loop {
var x_247 : bool; var x_247 : bool;
var x_248_phi : bool; var x_248_phi : bool;
@ -24,14 +24,14 @@ fn trace_vi2_(pos : ptr<function, vec2<i32>>) -> vec4<f32> {
} }
let x_231 : i32 = (*(pos)).x; let x_231 : i32 = (*(pos)).x;
let x_233 : i32 = (*(pos)).y; let x_233 : i32 = (*(pos)).y;
indexable = array<i32, 256>(115, 133, 150, 164, 176, 184, 190, 192, 191, 187, 181, 172, 163, 153, 143, 134, 126, 120, 116, 114, 114, 117, 121, 127, 134, 141, 148, 154, 159, 162, 163, 161, 157, 151, 143, 134, 124, 113, 103, 94, 87, 82, 79, 80, 84, 91, 101, 114, 130, 146, 164, 182, 199, 215, 229, 240, 249, 254, 256, 254, 250, 243, 233, 223, 212, 200, 190, 180, 172, 166, 163, 161, 162, 164, 169, 174, 179, 185, 190, 193, 195, 195, 192, 188, 180, 171, 161, 149, 137, 125, 114, 105, 97, 93, 91, 93, 98, 106, 117, 130, 145, 161, 177, 193, 208, 221, 231, 239, 243, 244, 242, 236, 228, 218, 207, 194, 181, 169, 158, 148, 141, 135, 132, 131, 132, 135, 138, 143, 147, 151, 154, 155, 155, 152, 146, 139, 129, 118, 106, 93, 80, 68, 58, 49, 43, 40, 41, 44, 51, 61, 73, 87, 103, 119, 134, 149, 162, 173, 181, 186, 188, 186, 181, 174, 164, 153, 141, 128, 116, 104, 94, 86, 81, 77, 76, 77, 80, 84, 89, 94, 98, 102, 104, 104, 102, 98, 92, 83, 73, 62, 50, 38, 26, 16, 8, 2, 0, 0, 4, 11, 21, 33, 48, 64, 81, 98, 114, 129, 141, 151, 158, 161, 161, 158, 152, 144, 134, 123, 112, 100, 90, 81, 73, 68, 65, 65, 67, 70, 75, 81, 87, 92, 97, 101, 103, 102, 100, 95, 88, 79, 69, 58, 47, 36, 26, 18, 13, 11, 11, 15, 22, 32, 45, 60, 77, 94); indexable = array<i32, 256u>(115, 133, 150, 164, 176, 184, 190, 192, 191, 187, 181, 172, 163, 153, 143, 134, 126, 120, 116, 114, 114, 117, 121, 127, 134, 141, 148, 154, 159, 162, 163, 161, 157, 151, 143, 134, 124, 113, 103, 94, 87, 82, 79, 80, 84, 91, 101, 114, 130, 146, 164, 182, 199, 215, 229, 240, 249, 254, 256, 254, 250, 243, 233, 223, 212, 200, 190, 180, 172, 166, 163, 161, 162, 164, 169, 174, 179, 185, 190, 193, 195, 195, 192, 188, 180, 171, 161, 149, 137, 125, 114, 105, 97, 93, 91, 93, 98, 106, 117, 130, 145, 161, 177, 193, 208, 221, 231, 239, 243, 244, 242, 236, 228, 218, 207, 194, 181, 169, 158, 148, 141, 135, 132, 131, 132, 135, 138, 143, 147, 151, 154, 155, 155, 152, 146, 139, 129, 118, 106, 93, 80, 68, 58, 49, 43, 40, 41, 44, 51, 61, 73, 87, 103, 119, 134, 149, 162, 173, 181, 186, 188, 186, 181, 174, 164, 153, 141, 128, 116, 104, 94, 86, 81, 77, 76, 77, 80, 84, 89, 94, 98, 102, 104, 104, 102, 98, 92, 83, 73, 62, 50, 38, 26, 16, 8, 2, 0, 0, 4, 11, 21, 33, 48, 64, 81, 98, 114, 129, 141, 151, 158, 161, 161, 158, 152, 144, 134, 123, 112, 100, 90, 81, 73, 68, 65, 65, 67, 70, 75, 81, 87, 92, 97, 101, 103, 102, 100, 95, 88, 79, 69, 58, 47, 36, 26, 18, 13, 11, 11, 15, 22, 32, 45, 60, 77, 94);
let x_235 : i32 = indexable[x_233]; let x_235 : i32 = indexable[x_233];
let x_237 : bool = (x_231 < (x_235 + 15)); let x_237 : bool = (x_231 < (x_235 + 15));
x_248_phi = x_237; x_248_phi = x_237;
if (x_237) { if (x_237) {
let x_241 : i32 = (*(pos)).x; let x_241 : i32 = (*(pos)).x;
let x_243 : i32 = (*(pos)).y; let x_243 : i32 = (*(pos)).y;
indexable_1 = array<i32, 256>(115, 133, 150, 164, 176, 184, 190, 192, 191, 187, 181, 172, 163, 153, 143, 134, 126, 120, 116, 114, 114, 117, 121, 127, 134, 141, 148, 154, 159, 162, 163, 161, 157, 151, 143, 134, 124, 113, 103, 94, 87, 82, 79, 80, 84, 91, 101, 114, 130, 146, 164, 182, 199, 215, 229, 240, 249, 254, 256, 254, 250, 243, 233, 223, 212, 200, 190, 180, 172, 166, 163, 161, 162, 164, 169, 174, 179, 185, 190, 193, 195, 195, 192, 188, 180, 171, 161, 149, 137, 125, 114, 105, 97, 93, 91, 93, 98, 106, 117, 130, 145, 161, 177, 193, 208, 221, 231, 239, 243, 244, 242, 236, 228, 218, 207, 194, 181, 169, 158, 148, 141, 135, 132, 131, 132, 135, 138, 143, 147, 151, 154, 155, 155, 152, 146, 139, 129, 118, 106, 93, 80, 68, 58, 49, 43, 40, 41, 44, 51, 61, 73, 87, 103, 119, 134, 149, 162, 173, 181, 186, 188, 186, 181, 174, 164, 153, 141, 128, 116, 104, 94, 86, 81, 77, 76, 77, 80, 84, 89, 94, 98, 102, 104, 104, 102, 98, 92, 83, 73, 62, 50, 38, 26, 16, 8, 2, 0, 0, 4, 11, 21, 33, 48, 64, 81, 98, 114, 129, 141, 151, 158, 161, 161, 158, 152, 144, 134, 123, 112, 100, 90, 81, 73, 68, 65, 65, 67, 70, 75, 81, 87, 92, 97, 101, 103, 102, 100, 95, 88, 79, 69, 58, 47, 36, 26, 18, 13, 11, 11, 15, 22, 32, 45, 60, 77, 94); indexable_1 = array<i32, 256u>(115, 133, 150, 164, 176, 184, 190, 192, 191, 187, 181, 172, 163, 153, 143, 134, 126, 120, 116, 114, 114, 117, 121, 127, 134, 141, 148, 154, 159, 162, 163, 161, 157, 151, 143, 134, 124, 113, 103, 94, 87, 82, 79, 80, 84, 91, 101, 114, 130, 146, 164, 182, 199, 215, 229, 240, 249, 254, 256, 254, 250, 243, 233, 223, 212, 200, 190, 180, 172, 166, 163, 161, 162, 164, 169, 174, 179, 185, 190, 193, 195, 195, 192, 188, 180, 171, 161, 149, 137, 125, 114, 105, 97, 93, 91, 93, 98, 106, 117, 130, 145, 161, 177, 193, 208, 221, 231, 239, 243, 244, 242, 236, 228, 218, 207, 194, 181, 169, 158, 148, 141, 135, 132, 131, 132, 135, 138, 143, 147, 151, 154, 155, 155, 152, 146, 139, 129, 118, 106, 93, 80, 68, 58, 49, 43, 40, 41, 44, 51, 61, 73, 87, 103, 119, 134, 149, 162, 173, 181, 186, 188, 186, 181, 174, 164, 153, 141, 128, 116, 104, 94, 86, 81, 77, 76, 77, 80, 84, 89, 94, 98, 102, 104, 104, 102, 98, 92, 83, 73, 62, 50, 38, 26, 16, 8, 2, 0, 0, 4, 11, 21, 33, 48, 64, 81, 98, 114, 129, 141, 151, 158, 161, 161, 158, 152, 144, 134, 123, 112, 100, 90, 81, 73, 68, 65, 65, 67, 70, 75, 81, 87, 92, 97, 101, 103, 102, 100, 95, 88, 79, 69, 58, 47, 36, 26, 18, 13, 11, 11, 15, 22, 32, 45, 60, 77, 94);
let x_245 : i32 = indexable_1[x_243]; let x_245 : i32 = indexable_1[x_243];
x_247 = (x_241 > (x_245 - 15)); x_247 = (x_241 > (x_245 - 15));
x_248_phi = x_247; x_248_phi = x_247;
@ -40,7 +40,7 @@ fn trace_vi2_(pos : ptr<function, vec2<i32>>) -> vec4<f32> {
if (x_248) { if (x_248) {
let x_252 : i32 = (*(pos)).x; let x_252 : i32 = (*(pos)).x;
let x_254 : i32 = (*(pos)).y; let x_254 : i32 = (*(pos)).y;
indexable_2 = array<i32, 256>(115, 133, 150, 164, 176, 184, 190, 192, 191, 187, 181, 172, 163, 153, 143, 134, 126, 120, 116, 114, 114, 117, 121, 127, 134, 141, 148, 154, 159, 162, 163, 161, 157, 151, 143, 134, 124, 113, 103, 94, 87, 82, 79, 80, 84, 91, 101, 114, 130, 146, 164, 182, 199, 215, 229, 240, 249, 254, 256, 254, 250, 243, 233, 223, 212, 200, 190, 180, 172, 166, 163, 161, 162, 164, 169, 174, 179, 185, 190, 193, 195, 195, 192, 188, 180, 171, 161, 149, 137, 125, 114, 105, 97, 93, 91, 93, 98, 106, 117, 130, 145, 161, 177, 193, 208, 221, 231, 239, 243, 244, 242, 236, 228, 218, 207, 194, 181, 169, 158, 148, 141, 135, 132, 131, 132, 135, 138, 143, 147, 151, 154, 155, 155, 152, 146, 139, 129, 118, 106, 93, 80, 68, 58, 49, 43, 40, 41, 44, 51, 61, 73, 87, 103, 119, 134, 149, 162, 173, 181, 186, 188, 186, 181, 174, 164, 153, 141, 128, 116, 104, 94, 86, 81, 77, 76, 77, 80, 84, 89, 94, 98, 102, 104, 104, 102, 98, 92, 83, 73, 62, 50, 38, 26, 16, 8, 2, 0, 0, 4, 11, 21, 33, 48, 64, 81, 98, 114, 129, 141, 151, 158, 161, 161, 158, 152, 144, 134, 123, 112, 100, 90, 81, 73, 68, 65, 65, 67, 70, 75, 81, 87, 92, 97, 101, 103, 102, 100, 95, 88, 79, 69, 58, 47, 36, 26, 18, 13, 11, 11, 15, 22, 32, 45, 60, 77, 94); indexable_2 = array<i32, 256u>(115, 133, 150, 164, 176, 184, 190, 192, 191, 187, 181, 172, 163, 153, 143, 134, 126, 120, 116, 114, 114, 117, 121, 127, 134, 141, 148, 154, 159, 162, 163, 161, 157, 151, 143, 134, 124, 113, 103, 94, 87, 82, 79, 80, 84, 91, 101, 114, 130, 146, 164, 182, 199, 215, 229, 240, 249, 254, 256, 254, 250, 243, 233, 223, 212, 200, 190, 180, 172, 166, 163, 161, 162, 164, 169, 174, 179, 185, 190, 193, 195, 195, 192, 188, 180, 171, 161, 149, 137, 125, 114, 105, 97, 93, 91, 93, 98, 106, 117, 130, 145, 161, 177, 193, 208, 221, 231, 239, 243, 244, 242, 236, 228, 218, 207, 194, 181, 169, 158, 148, 141, 135, 132, 131, 132, 135, 138, 143, 147, 151, 154, 155, 155, 152, 146, 139, 129, 118, 106, 93, 80, 68, 58, 49, 43, 40, 41, 44, 51, 61, 73, 87, 103, 119, 134, 149, 162, 173, 181, 186, 188, 186, 181, 174, 164, 153, 141, 128, 116, 104, 94, 86, 81, 77, 76, 77, 80, 84, 89, 94, 98, 102, 104, 104, 102, 98, 92, 83, 73, 62, 50, 38, 26, 16, 8, 2, 0, 0, 4, 11, 21, 33, 48, 64, 81, 98, 114, 129, 141, 151, 158, 161, 161, 158, 152, 144, 134, 123, 112, 100, 90, 81, 73, 68, 65, 65, 67, 70, 75, 81, 87, 92, 97, 101, 103, 102, 100, 95, 88, 79, 69, 58, 47, 36, 26, 18, 13, 11, 11, 15, 22, 32, 45, 60, 77, 94);
let x_256 : i32 = indexable_2[x_254]; let x_256 : i32 = indexable_2[x_254];
p = ((15.0 - abs(f32((x_252 - x_256)))) / 15.0); p = ((15.0 - abs(f32((x_252 - x_256)))) / 15.0);
let x_262 : f32 = p; let x_262 : f32 = p;
@ -48,9 +48,8 @@ fn trace_vi2_(pos : ptr<function, vec2<i32>>) -> vec4<f32> {
let x_264 : f32 = p; let x_264 : f32 = p;
return vec4<f32>(x_262, x_263, x_264, 1.0); return vec4<f32>(x_262, x_263, x_264, 1.0);
} }
let x_266 : ptr<function, i32> = &((*(pos)).y); let x_267 : i32 = (*(pos)).y;
let x_267 : i32 = *(x_266); (*(pos)).y = (x_267 + 1);
*(x_266) = (x_267 + 1);
} }
return vec4<f32>(0.0, 0.0, 0.0, 1.0); return vec4<f32>(0.0, 0.0, 0.0, 1.0);
} }

View File

@ -10,35 +10,34 @@ var<private> gl_FragCoord : vec4<f32>;
var<private> x_GLF_color : vec4<f32>; var<private> x_GLF_color : vec4<f32>;
fn trace_vi2_(pos : ptr<function, vec2<i32>>) -> vec4<f32> { fn trace_vi2_(pos : ptr<function, vec2<i32>>) -> vec4<f32> {
var indexable : array<i32, 256>; var indexable : array<i32, 256u>;
var indexable_1 : array<i32, 256>; var indexable_1 : array<i32, 256u>;
var p : f32; var p : f32;
var indexable_2 : array<i32, 256>; var indexable_2 : array<i32, 256u>;
loop { loop {
var x_251 : bool; var x_251 : bool;
var x_252_phi : bool; var x_252_phi : bool;
let x_228 : ptr<function, i32> = &((*(pos)).y); let x_229 : i32 = (*(pos)).y;
let x_229 : i32 = *(x_228);
if ((x_229 != 256)) { if ((x_229 != 256)) {
} else { } else {
break; break;
} }
let x_233 : i32 = (*(pos)).x; let x_233 : i32 = (*(pos)).x;
let x_235 : i32 = (*(pos)).y; let x_235 : i32 = (*(pos)).y;
indexable = array<i32, 256>(115, 133, 150, 164, 176, 184, 190, 192, 191, 187, 181, 172, 163, 153, 143, 134, 126, 120, 116, 114, 114, 117, 121, 127, 134, 141, 148, 154, 159, 162, 163, 161, 157, 151, 143, 134, 124, 113, 103, 94, 87, 82, 79, 80, 84, 91, 101, 114, 130, 146, 164, 182, 199, 215, 229, 240, 249, 254, 256, 254, 250, 243, 233, 223, 212, 200, 190, 180, 172, 166, 163, 161, 162, 164, 169, 174, 179, 185, 190, 193, 195, 195, 192, 188, 180, 171, 161, 149, 137, 125, 114, 105, 97, 93, 91, 93, 98, 106, 117, 130, 145, 161, 177, 193, 208, 221, 231, 239, 243, 244, 242, 236, 228, 218, 207, 194, 181, 169, 158, 148, 141, 135, 132, 131, 132, 135, 138, 143, 147, 151, 154, 155, 155, 152, 146, 139, 129, 118, 106, 93, 80, 68, 58, 49, 43, 40, 41, 44, 51, 61, 73, 87, 103, 119, 134, 149, 162, 173, 181, 186, 188, 186, 181, 174, 164, 153, 141, 128, 116, 104, 94, 86, 81, 77, 76, 77, 80, 84, 89, 94, 98, 102, 104, 104, 102, 98, 92, 83, 73, 62, 50, 38, 26, 16, 8, 2, 0, 0, 4, 11, 21, 33, 48, 64, 81, 98, 114, 129, 141, 151, 158, 161, 161, 158, 152, 144, 134, 123, 112, 100, 90, 81, 73, 68, 65, 65, 67, 70, 75, 81, 87, 92, 97, 101, 103, 102, 100, 95, 88, 79, 69, 58, 47, 36, 26, 18, 13, 11, 11, 15, 22, 32, 45, 60, 77, 94); indexable = array<i32, 256u>(115, 133, 150, 164, 176, 184, 190, 192, 191, 187, 181, 172, 163, 153, 143, 134, 126, 120, 116, 114, 114, 117, 121, 127, 134, 141, 148, 154, 159, 162, 163, 161, 157, 151, 143, 134, 124, 113, 103, 94, 87, 82, 79, 80, 84, 91, 101, 114, 130, 146, 164, 182, 199, 215, 229, 240, 249, 254, 256, 254, 250, 243, 233, 223, 212, 200, 190, 180, 172, 166, 163, 161, 162, 164, 169, 174, 179, 185, 190, 193, 195, 195, 192, 188, 180, 171, 161, 149, 137, 125, 114, 105, 97, 93, 91, 93, 98, 106, 117, 130, 145, 161, 177, 193, 208, 221, 231, 239, 243, 244, 242, 236, 228, 218, 207, 194, 181, 169, 158, 148, 141, 135, 132, 131, 132, 135, 138, 143, 147, 151, 154, 155, 155, 152, 146, 139, 129, 118, 106, 93, 80, 68, 58, 49, 43, 40, 41, 44, 51, 61, 73, 87, 103, 119, 134, 149, 162, 173, 181, 186, 188, 186, 181, 174, 164, 153, 141, 128, 116, 104, 94, 86, 81, 77, 76, 77, 80, 84, 89, 94, 98, 102, 104, 104, 102, 98, 92, 83, 73, 62, 50, 38, 26, 16, 8, 2, 0, 0, 4, 11, 21, 33, 48, 64, 81, 98, 114, 129, 141, 151, 158, 161, 161, 158, 152, 144, 134, 123, 112, 100, 90, 81, 73, 68, 65, 65, 67, 70, 75, 81, 87, 92, 97, 101, 103, 102, 100, 95, 88, 79, 69, 58, 47, 36, 26, 18, 13, 11, 11, 15, 22, 32, 45, 60, 77, 94);
let x_237 : i32 = indexable[x_235]; let x_237 : i32 = indexable[x_235];
let x_238 : array<i32, 256> = indexable; let x_238 : array<i32, 256u> = indexable;
indexable = array<i32, 256>(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); indexable = array<i32, 256u>(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
let x_239 : i32 = *(x_228); let x_239 : i32 = (*(pos)).y;
*(x_228) = 0; (*(pos)).y = 0;
*(x_228) = x_239; (*(pos)).y = x_239;
indexable = x_238; indexable = x_238;
let x_241 : bool = (x_233 < (x_237 + 15)); let x_241 : bool = (x_233 < (x_237 + 15));
x_252_phi = x_241; x_252_phi = x_241;
if (x_241) { if (x_241) {
let x_245 : i32 = (*(pos)).x; let x_245 : i32 = (*(pos)).x;
let x_247 : i32 = (*(pos)).y; let x_247 : i32 = (*(pos)).y;
indexable_1 = array<i32, 256>(115, 133, 150, 164, 176, 184, 190, 192, 191, 187, 181, 172, 163, 153, 143, 134, 126, 120, 116, 114, 114, 117, 121, 127, 134, 141, 148, 154, 159, 162, 163, 161, 157, 151, 143, 134, 124, 113, 103, 94, 87, 82, 79, 80, 84, 91, 101, 114, 130, 146, 164, 182, 199, 215, 229, 240, 249, 254, 256, 254, 250, 243, 233, 223, 212, 200, 190, 180, 172, 166, 163, 161, 162, 164, 169, 174, 179, 185, 190, 193, 195, 195, 192, 188, 180, 171, 161, 149, 137, 125, 114, 105, 97, 93, 91, 93, 98, 106, 117, 130, 145, 161, 177, 193, 208, 221, 231, 239, 243, 244, 242, 236, 228, 218, 207, 194, 181, 169, 158, 148, 141, 135, 132, 131, 132, 135, 138, 143, 147, 151, 154, 155, 155, 152, 146, 139, 129, 118, 106, 93, 80, 68, 58, 49, 43, 40, 41, 44, 51, 61, 73, 87, 103, 119, 134, 149, 162, 173, 181, 186, 188, 186, 181, 174, 164, 153, 141, 128, 116, 104, 94, 86, 81, 77, 76, 77, 80, 84, 89, 94, 98, 102, 104, 104, 102, 98, 92, 83, 73, 62, 50, 38, 26, 16, 8, 2, 0, 0, 4, 11, 21, 33, 48, 64, 81, 98, 114, 129, 141, 151, 158, 161, 161, 158, 152, 144, 134, 123, 112, 100, 90, 81, 73, 68, 65, 65, 67, 70, 75, 81, 87, 92, 97, 101, 103, 102, 100, 95, 88, 79, 69, 58, 47, 36, 26, 18, 13, 11, 11, 15, 22, 32, 45, 60, 77, 94); indexable_1 = array<i32, 256u>(115, 133, 150, 164, 176, 184, 190, 192, 191, 187, 181, 172, 163, 153, 143, 134, 126, 120, 116, 114, 114, 117, 121, 127, 134, 141, 148, 154, 159, 162, 163, 161, 157, 151, 143, 134, 124, 113, 103, 94, 87, 82, 79, 80, 84, 91, 101, 114, 130, 146, 164, 182, 199, 215, 229, 240, 249, 254, 256, 254, 250, 243, 233, 223, 212, 200, 190, 180, 172, 166, 163, 161, 162, 164, 169, 174, 179, 185, 190, 193, 195, 195, 192, 188, 180, 171, 161, 149, 137, 125, 114, 105, 97, 93, 91, 93, 98, 106, 117, 130, 145, 161, 177, 193, 208, 221, 231, 239, 243, 244, 242, 236, 228, 218, 207, 194, 181, 169, 158, 148, 141, 135, 132, 131, 132, 135, 138, 143, 147, 151, 154, 155, 155, 152, 146, 139, 129, 118, 106, 93, 80, 68, 58, 49, 43, 40, 41, 44, 51, 61, 73, 87, 103, 119, 134, 149, 162, 173, 181, 186, 188, 186, 181, 174, 164, 153, 141, 128, 116, 104, 94, 86, 81, 77, 76, 77, 80, 84, 89, 94, 98, 102, 104, 104, 102, 98, 92, 83, 73, 62, 50, 38, 26, 16, 8, 2, 0, 0, 4, 11, 21, 33, 48, 64, 81, 98, 114, 129, 141, 151, 158, 161, 161, 158, 152, 144, 134, 123, 112, 100, 90, 81, 73, 68, 65, 65, 67, 70, 75, 81, 87, 92, 97, 101, 103, 102, 100, 95, 88, 79, 69, 58, 47, 36, 26, 18, 13, 11, 11, 15, 22, 32, 45, 60, 77, 94);
let x_249 : i32 = indexable_1[x_247]; let x_249 : i32 = indexable_1[x_247];
x_251 = (x_245 > (x_249 - 15)); x_251 = (x_245 > (x_249 - 15));
x_252_phi = x_251; x_252_phi = x_251;
@ -47,7 +46,7 @@ fn trace_vi2_(pos : ptr<function, vec2<i32>>) -> vec4<f32> {
if (x_252) { if (x_252) {
let x_256 : i32 = (*(pos)).x; let x_256 : i32 = (*(pos)).x;
let x_258 : i32 = (*(pos)).y; let x_258 : i32 = (*(pos)).y;
indexable_2 = array<i32, 256>(115, 133, 150, 164, 176, 184, 190, 192, 191, 187, 181, 172, 163, 153, 143, 134, 126, 120, 116, 114, 114, 117, 121, 127, 134, 141, 148, 154, 159, 162, 163, 161, 157, 151, 143, 134, 124, 113, 103, 94, 87, 82, 79, 80, 84, 91, 101, 114, 130, 146, 164, 182, 199, 215, 229, 240, 249, 254, 256, 254, 250, 243, 233, 223, 212, 200, 190, 180, 172, 166, 163, 161, 162, 164, 169, 174, 179, 185, 190, 193, 195, 195, 192, 188, 180, 171, 161, 149, 137, 125, 114, 105, 97, 93, 91, 93, 98, 106, 117, 130, 145, 161, 177, 193, 208, 221, 231, 239, 243, 244, 242, 236, 228, 218, 207, 194, 181, 169, 158, 148, 141, 135, 132, 131, 132, 135, 138, 143, 147, 151, 154, 155, 155, 152, 146, 139, 129, 118, 106, 93, 80, 68, 58, 49, 43, 40, 41, 44, 51, 61, 73, 87, 103, 119, 134, 149, 162, 173, 181, 186, 188, 186, 181, 174, 164, 153, 141, 128, 116, 104, 94, 86, 81, 77, 76, 77, 80, 84, 89, 94, 98, 102, 104, 104, 102, 98, 92, 83, 73, 62, 50, 38, 26, 16, 8, 2, 0, 0, 4, 11, 21, 33, 48, 64, 81, 98, 114, 129, 141, 151, 158, 161, 161, 158, 152, 144, 134, 123, 112, 100, 90, 81, 73, 68, 65, 65, 67, 70, 75, 81, 87, 92, 97, 101, 103, 102, 100, 95, 88, 79, 69, 58, 47, 36, 26, 18, 13, 11, 11, 15, 22, 32, 45, 60, 77, 94); indexable_2 = array<i32, 256u>(115, 133, 150, 164, 176, 184, 190, 192, 191, 187, 181, 172, 163, 153, 143, 134, 126, 120, 116, 114, 114, 117, 121, 127, 134, 141, 148, 154, 159, 162, 163, 161, 157, 151, 143, 134, 124, 113, 103, 94, 87, 82, 79, 80, 84, 91, 101, 114, 130, 146, 164, 182, 199, 215, 229, 240, 249, 254, 256, 254, 250, 243, 233, 223, 212, 200, 190, 180, 172, 166, 163, 161, 162, 164, 169, 174, 179, 185, 190, 193, 195, 195, 192, 188, 180, 171, 161, 149, 137, 125, 114, 105, 97, 93, 91, 93, 98, 106, 117, 130, 145, 161, 177, 193, 208, 221, 231, 239, 243, 244, 242, 236, 228, 218, 207, 194, 181, 169, 158, 148, 141, 135, 132, 131, 132, 135, 138, 143, 147, 151, 154, 155, 155, 152, 146, 139, 129, 118, 106, 93, 80, 68, 58, 49, 43, 40, 41, 44, 51, 61, 73, 87, 103, 119, 134, 149, 162, 173, 181, 186, 188, 186, 181, 174, 164, 153, 141, 128, 116, 104, 94, 86, 81, 77, 76, 77, 80, 84, 89, 94, 98, 102, 104, 104, 102, 98, 92, 83, 73, 62, 50, 38, 26, 16, 8, 2, 0, 0, 4, 11, 21, 33, 48, 64, 81, 98, 114, 129, 141, 151, 158, 161, 161, 158, 152, 144, 134, 123, 112, 100, 90, 81, 73, 68, 65, 65, 67, 70, 75, 81, 87, 92, 97, 101, 103, 102, 100, 95, 88, 79, 69, 58, 47, 36, 26, 18, 13, 11, 11, 15, 22, 32, 45, 60, 77, 94);
let x_260 : i32 = indexable_2[x_258]; let x_260 : i32 = indexable_2[x_258];
p = ((15.0 - abs(f32((x_256 - x_260)))) / 15.0); p = ((15.0 - abs(f32((x_256 - x_260)))) / 15.0);
let x_266 : f32 = p; let x_266 : f32 = p;
@ -55,9 +54,8 @@ fn trace_vi2_(pos : ptr<function, vec2<i32>>) -> vec4<f32> {
let x_268 : f32 = p; let x_268 : f32 = p;
return vec4<f32>(x_266, x_267, x_268, 1.0); return vec4<f32>(x_266, x_267, x_268, 1.0);
} }
let x_270 : ptr<function, i32> = &((*(pos)).y); let x_271 : i32 = (*(pos)).y;
let x_271 : i32 = *(x_270); (*(pos)).y = (x_271 + 1);
*(x_270) = (x_271 + 1);
} }
return vec4<f32>(0.0, 0.0, 0.0, 1.0); return vec4<f32>(0.0, 0.0, 0.0, 1.0);
} }

View File

@ -62,7 +62,7 @@ fn main_1() {
x_59_phi = x_71; x_59_phi = x_71;
} else { } else {
x_79_phi = x_58; x_79_phi = x_58;
if (((f32(x_61) % round(x_52)) <= 0.01)) { if (((f32(x_61) - (round(x_52) * floor((f32(x_61) / round(x_52))))) <= 0.01)) {
x_78 = (x_58 + 100.0); x_78 = (x_58 + 100.0);
x_79_phi = x_78; x_79_phi = x_78;
} }
@ -107,8 +107,7 @@ fn main_1() {
var x_136_phi : f32; var x_136_phi : f32;
var x_137_phi : bool; var x_137_phi : bool;
let x_95 : f32 = x_95_phi; let x_95 : f32 = x_95_phi;
let x_96 : ptr<function, f32> = &(c.x); c.x = x_95;
*(x_96) = x_95;
x_98 = gl_FragCoord.y; x_98 = gl_FragCoord.y;
switch(0u) { switch(0u) {
default: { default: {
@ -135,7 +134,7 @@ fn main_1() {
x_103_phi = x_115; x_103_phi = x_115;
} else { } else {
x_123_phi = x_102; x_123_phi = x_102;
if (((f32(x_105) % round(x_52)) <= 0.01)) { if (((f32(x_105) - (round(x_52) * floor((f32(x_105) / round(x_52))))) <= 0.01)) {
x_122 = (x_102 + 100.0); x_122 = (x_102 + 100.0);
x_123_phi = x_122; x_123_phi = x_122;
} }
@ -172,10 +171,9 @@ fn main_1() {
} }
} }
let x_139 : f32 = x_139_phi; let x_139 : f32 = x_139_phi;
let x_140 : ptr<function, f32> = &(c.y); c.y = x_139;
*(x_140) = x_139; let x_141 : f32 = c.x;
let x_141 : f32 = *(x_96); let x_142 : f32 = c.y;
let x_142 : f32 = *(x_140);
c.z = (x_141 + x_142); c.z = (x_141 + x_142);
x_146_phi = 0; x_146_phi = 0;
loop { loop {
@ -185,12 +183,11 @@ fn main_1() {
} else { } else {
break; break;
} }
let x_152 : ptr<function, f32> = &(c[x_146]); let x_153 : f32 = c[x_146];
let x_153 : f32 = *(x_152);
if ((x_153 >= 1.0)) { if ((x_153 >= 1.0)) {
let x_157 : f32 = *(x_152); let x_157 : f32 = c[x_146];
let x_158 : f32 = *(x_152); let x_158 : f32 = c[x_146];
*(x_152) = (x_157 * x_158); c[x_146] = (x_157 * x_158);
let x_161 : f32 = x_6.injectionSwitch.x; let x_161 : f32 = x_6.injectionSwitch.x;
let x_163 : f32 = x_6.injectionSwitch.y; let x_163 : f32 = x_6.injectionSwitch.y;
if ((x_161 > x_163)) { if ((x_161 > x_163)) {

View File

@ -34,7 +34,7 @@ fn compute_value_f1_f1_(limit : ptr<function, f32>, thirty_two : ptr<function, f
} else { } else {
let x_106 : f32 = *(thirty_two); let x_106 : f32 = *(thirty_two);
x_113_phi = x_91; x_113_phi = x_91;
if (((f32(x_94) % round(x_106)) <= 0.01)) { if (((f32(x_94) - (round(x_106) * floor((f32(x_94) / round(x_106))))) <= 0.01)) {
x_112 = (x_91 + 100.0); x_112 = (x_91 + 100.0);
x_113_phi = x_112; x_113_phi = x_112;
} }
@ -71,16 +71,14 @@ fn main_1() {
param = x_56; param = x_56;
param_1 = x_54; param_1 = x_54;
let x_57 : f32 = compute_value_f1_f1_(&(param), &(param_1)); let x_57 : f32 = compute_value_f1_f1_(&(param), &(param_1));
let x_58 : ptr<function, f32> = &(c.x); c.x = x_57;
*(x_58) = x_57;
let x_60 : f32 = gl_FragCoord.y; let x_60 : f32 = gl_FragCoord.y;
param_2 = x_60; param_2 = x_60;
param_3 = x_54; param_3 = x_54;
let x_61 : f32 = compute_value_f1_f1_(&(param_2), &(param_3)); let x_61 : f32 = compute_value_f1_f1_(&(param_2), &(param_3));
let x_62 : ptr<function, f32> = &(c.y); c.y = x_61;
*(x_62) = x_61; let x_63 : f32 = c.x;
let x_63 : f32 = *(x_58); let x_64 : f32 = c.y;
let x_64 : f32 = *(x_62);
c.z = (x_63 + x_64); c.z = (x_63 + x_64);
x_68_phi = 0; x_68_phi = 0;
loop { loop {
@ -90,12 +88,11 @@ fn main_1() {
} else { } else {
break; break;
} }
let x_74 : ptr<function, f32> = &(c[x_68]); let x_75 : f32 = c[x_68];
let x_75 : f32 = *(x_74);
if ((x_75 >= 1.0)) { if ((x_75 >= 1.0)) {
let x_79 : f32 = *(x_74); let x_79 : f32 = c[x_68];
let x_80 : f32 = *(x_74); let x_80 : f32 = c[x_68];
*(x_74) = (x_79 * x_80); c[x_68] = (x_79 * x_80);
} }
continuing { continuing {

View File

@ -41,7 +41,7 @@ fn compute_value_f1_f1_(limit : ptr<function, f32>, thirty_two : ptr<function, f
} else { } else {
let x_118 : f32 = *(thirty_two); let x_118 : f32 = *(thirty_two);
x_125_phi = x_104; x_125_phi = x_104;
if (((f32(x_107) % round(x_118)) <= 0.01)) { if (((f32(x_107) - (round(x_118) * floor((f32(x_107) / round(x_118))))) <= 0.01)) {
x_124 = (x_104 + 100.0); x_124 = (x_104 + 100.0);
x_125_phi = x_124; x_125_phi = x_124;
} }
@ -79,14 +79,13 @@ fn main_1() {
param = x_60; param = x_60;
param_1 = x_58; param_1 = x_58;
let x_61 : f32 = compute_value_f1_f1_(&(param), &(param_1)); let x_61 : f32 = compute_value_f1_f1_(&(param), &(param_1));
let x_62 : ptr<function, f32> = &(c.x); c.x = x_61;
*(x_62) = x_61;
let x_64 : f32 = gl_FragCoord.y; let x_64 : f32 = gl_FragCoord.y;
param_2 = x_64; param_2 = x_64;
param_3 = x_58; param_3 = x_58;
let x_65 : f32 = compute_value_f1_f1_(&(param_2), &(param_3)); let x_65 : f32 = compute_value_f1_f1_(&(param_2), &(param_3));
c.y = x_65; c.y = x_65;
let x_67 : f32 = *(x_62); let x_67 : f32 = c.x;
let x_68 : vec3<f32> = c; let x_68 : vec3<f32> = c;
x_54 = x_68; x_54 = x_68;
let x_70 : f32 = x_54.y; let x_70 : f32 = x_54.y;
@ -99,17 +98,16 @@ fn main_1() {
} else { } else {
break; break;
} }
let x_80 : ptr<function, f32> = &(c[x_74]); let x_81 : f32 = c[x_74];
let x_81 : f32 = *(x_80);
if ((x_81 >= 1.0)) { if ((x_81 >= 1.0)) {
let x_86 : f32 = x_16.injectionSwitch.x; let x_86 : f32 = x_16.injectionSwitch.x;
let x_88 : f32 = x_16.injectionSwitch.y; let x_88 : f32 = x_16.injectionSwitch.y;
if ((x_86 > x_88)) { if ((x_86 > x_88)) {
discard; discard;
} }
let x_92 : f32 = *(x_80); let x_92 : f32 = c[x_74];
let x_93 : f32 = *(x_80); let x_93 : f32 = c[x_74];
*(x_80) = (x_92 * x_93); c[x_74] = (x_92 * x_93);
} }
continuing { continuing {

View File

@ -36,42 +36,34 @@ fn pointInTriangle_vf2_vf2_vf2_vf2_(p : ptr<function, vec2<f32>>, a_1 : ptr<func
var x_173_phi : i32; var x_173_phi : i32;
switch(0u) { switch(0u) {
default: { default: {
let x_94 : ptr<function, f32> = &((*(p)).x); let x_95 : f32 = (*(p)).x;
let x_95 : f32 = *(x_94); let x_97 : f32 = (*(a_1)).x;
let x_96 : ptr<function, f32> = &((*(a_1)).x); let x_100 : f32 = (*(p)).y;
let x_97 : f32 = *(x_96); let x_102 : f32 = (*(a_1)).y;
let x_99 : ptr<function, f32> = &((*(p)).y); let x_106 : f32 = (*(b_1)).x;
let x_100 : f32 = *(x_99); let x_107 : f32 = (*(a_1)).x;
let x_101 : ptr<function, f32> = &((*(a_1)).y); let x_110 : f32 = (*(b_1)).y;
let x_102 : f32 = *(x_101); let x_111 : f32 = (*(a_1)).y;
let x_105 : ptr<function, f32> = &((*(b_1)).x);
let x_106 : f32 = *(x_105);
let x_107 : f32 = *(x_96);
let x_109 : ptr<function, f32> = &((*(b_1)).y);
let x_110 : f32 = *(x_109);
let x_111 : f32 = *(x_101);
param = vec2<f32>((x_95 - x_97), (x_100 - x_102)); param = vec2<f32>((x_95 - x_97), (x_100 - x_102));
param_1 = vec2<f32>((x_106 - x_107), (x_110 - x_111)); param_1 = vec2<f32>((x_106 - x_107), (x_110 - x_111));
let x_114 : f32 = cross2d_vf2_vf2_(&(param), &(param_1)); let x_114 : f32 = cross2d_vf2_vf2_(&(param), &(param_1));
pab = x_114; pab = x_114;
let x_115 : f32 = *(x_94); let x_115 : f32 = (*(p)).x;
let x_116 : f32 = *(x_105); let x_116 : f32 = (*(b_1)).x;
let x_118 : f32 = *(x_99); let x_118 : f32 = (*(p)).y;
let x_119 : f32 = *(x_109); let x_119 : f32 = (*(b_1)).y;
let x_122 : ptr<function, f32> = &((*(c)).x); let x_123 : f32 = (*(c)).x;
let x_123 : f32 = *(x_122); let x_124 : f32 = (*(b_1)).x;
let x_124 : f32 = *(x_105); let x_127 : f32 = (*(c)).y;
let x_126 : ptr<function, f32> = &((*(c)).y); let x_128 : f32 = (*(b_1)).y;
let x_127 : f32 = *(x_126);
let x_128 : f32 = *(x_109);
param_2 = vec2<f32>((x_115 - x_116), (x_118 - x_119)); param_2 = vec2<f32>((x_115 - x_116), (x_118 - x_119));
param_3 = vec2<f32>((x_123 - x_124), (x_127 - x_128)); param_3 = vec2<f32>((x_123 - x_124), (x_127 - x_128));
let x_131 : f32 = cross2d_vf2_vf2_(&(param_2), &(param_3)); let x_131 : f32 = cross2d_vf2_vf2_(&(param_2), &(param_3));
pbc = x_131; pbc = x_131;
let x_134 : bool = ((x_114 < 0.0) && (x_131 < 0.0)); let x_134 : bool = ((x_114 < 0.0) & (x_131 < 0.0));
x_141_phi = x_134; x_141_phi = x_134;
if (!(x_134)) { if (!(x_134)) {
x_140 = ((x_114 >= 0.0) && (x_131 >= 0.0)); x_140 = ((x_114 >= 0.0) & (x_131 >= 0.0));
x_141_phi = x_140; x_141_phi = x_140;
} }
let x_141 : bool = x_141_phi; let x_141 : bool = x_141_phi;
@ -81,22 +73,22 @@ fn pointInTriangle_vf2_vf2_vf2_vf2_(p : ptr<function, vec2<f32>>, a_1 : ptr<func
x_173_phi = 0; x_173_phi = 0;
break; break;
} }
let x_145 : f32 = *(x_94); let x_145 : f32 = (*(p)).x;
let x_146 : f32 = *(x_122); let x_146 : f32 = (*(c)).x;
let x_148 : f32 = *(x_99); let x_148 : f32 = (*(p)).y;
let x_149 : f32 = *(x_126); let x_149 : f32 = (*(c)).y;
let x_152 : f32 = *(x_96); let x_152 : f32 = (*(a_1)).x;
let x_153 : f32 = *(x_122); let x_153 : f32 = (*(c)).x;
let x_155 : f32 = *(x_101); let x_155 : f32 = (*(a_1)).y;
let x_156 : f32 = *(x_126); let x_156 : f32 = (*(c)).y;
param_4 = vec2<f32>((x_145 - x_146), (x_148 - x_149)); param_4 = vec2<f32>((x_145 - x_146), (x_148 - x_149));
param_5 = vec2<f32>((x_152 - x_153), (x_155 - x_156)); param_5 = vec2<f32>((x_152 - x_153), (x_155 - x_156));
let x_159 : f32 = cross2d_vf2_vf2_(&(param_4), &(param_5)); let x_159 : f32 = cross2d_vf2_vf2_(&(param_4), &(param_5));
pca = x_159; pca = x_159;
let x_162 : bool = ((x_114 < 0.0) && (x_159 < 0.0)); let x_162 : bool = ((x_114 < 0.0) & (x_159 < 0.0));
x_169_phi = x_162; x_169_phi = x_162;
if (!(x_162)) { if (!(x_162)) {
x_168 = ((x_114 >= 0.0) && (x_159 >= 0.0)); x_168 = ((x_114 >= 0.0) & (x_159 >= 0.0));
x_169_phi = x_168; x_169_phi = x_168;
} }
let x_169 : bool = x_169_phi; let x_169 : bool = x_169_phi;

View File

@ -31,72 +31,64 @@ fn pointInTriangle_vf2_vf2_vf2_vf2_(p : ptr<function, vec2<f32>>, a_1 : ptr<func
var x_169 : bool; var x_169 : bool;
var x_138_phi : bool; var x_138_phi : bool;
var x_170_phi : bool; var x_170_phi : bool;
let x_87 : ptr<function, f32> = &((*(p)).x); let x_88 : f32 = (*(p)).x;
let x_88 : f32 = *(x_87); let x_90 : f32 = (*(a_1)).x;
let x_89 : ptr<function, f32> = &((*(a_1)).x); let x_93 : f32 = (*(p)).y;
let x_90 : f32 = *(x_89); let x_95 : f32 = (*(a_1)).y;
let x_92 : ptr<function, f32> = &((*(p)).y); let x_99 : f32 = (*(b_1)).x;
let x_93 : f32 = *(x_92); let x_100 : f32 = (*(a_1)).x;
let x_94 : ptr<function, f32> = &((*(a_1)).y); let x_103 : f32 = (*(b_1)).y;
let x_95 : f32 = *(x_94); let x_104 : f32 = (*(a_1)).y;
let x_98 : ptr<function, f32> = &((*(b_1)).x);
let x_99 : f32 = *(x_98);
let x_100 : f32 = *(x_89);
let x_102 : ptr<function, f32> = &((*(b_1)).y);
let x_103 : f32 = *(x_102);
let x_104 : f32 = *(x_94);
param = vec2<f32>((x_88 - x_90), (x_93 - x_95)); param = vec2<f32>((x_88 - x_90), (x_93 - x_95));
param_1 = vec2<f32>((x_99 - x_100), (x_103 - x_104)); param_1 = vec2<f32>((x_99 - x_100), (x_103 - x_104));
let x_107 : f32 = cross2d_vf2_vf2_(&(param), &(param_1)); let x_107 : f32 = cross2d_vf2_vf2_(&(param), &(param_1));
pab = x_107; pab = x_107;
let x_108 : f32 = *(x_87); let x_108 : f32 = (*(p)).x;
let x_109 : f32 = *(x_98); let x_109 : f32 = (*(b_1)).x;
let x_111 : f32 = *(x_92); let x_111 : f32 = (*(p)).y;
let x_112 : f32 = *(x_102); let x_112 : f32 = (*(b_1)).y;
let x_115 : ptr<function, f32> = &((*(c)).x); let x_116 : f32 = (*(c)).x;
let x_116 : f32 = *(x_115); let x_117 : f32 = (*(b_1)).x;
let x_117 : f32 = *(x_98); let x_120 : f32 = (*(c)).y;
let x_119 : ptr<function, f32> = &((*(c)).y); let x_121 : f32 = (*(b_1)).y;
let x_120 : f32 = *(x_119);
let x_121 : f32 = *(x_102);
param_2 = vec2<f32>((x_108 - x_109), (x_111 - x_112)); param_2 = vec2<f32>((x_108 - x_109), (x_111 - x_112));
param_3 = vec2<f32>((x_116 - x_117), (x_120 - x_121)); param_3 = vec2<f32>((x_116 - x_117), (x_120 - x_121));
let x_124 : f32 = cross2d_vf2_vf2_(&(param_2), &(param_3)); let x_124 : f32 = cross2d_vf2_vf2_(&(param_2), &(param_3));
pbc = x_124; pbc = x_124;
let x_125 : f32 = pab; let x_125 : f32 = pab;
let x_127 : f32 = pbc; let x_127 : f32 = pbc;
let x_129 : bool = ((x_125 < 0.0) && (x_127 < 0.0)); let x_129 : bool = ((x_125 < 0.0) & (x_127 < 0.0));
x_138_phi = x_129; x_138_phi = x_129;
if (!(x_129)) { if (!(x_129)) {
let x_133 : f32 = pab; let x_133 : f32 = pab;
let x_135 : f32 = pbc; let x_135 : f32 = pbc;
x_137 = ((x_133 >= 0.0) && (x_135 >= 0.0)); x_137 = ((x_133 >= 0.0) & (x_135 >= 0.0));
x_138_phi = x_137; x_138_phi = x_137;
} }
let x_138 : bool = x_138_phi; let x_138 : bool = x_138_phi;
if (!(x_138)) { if (!(x_138)) {
return 0; return 0;
} }
let x_142 : f32 = *(x_87); let x_142 : f32 = (*(p)).x;
let x_143 : f32 = *(x_115); let x_143 : f32 = (*(c)).x;
let x_145 : f32 = *(x_92); let x_145 : f32 = (*(p)).y;
let x_146 : f32 = *(x_119); let x_146 : f32 = (*(c)).y;
let x_149 : f32 = *(x_89); let x_149 : f32 = (*(a_1)).x;
let x_150 : f32 = *(x_115); let x_150 : f32 = (*(c)).x;
let x_152 : f32 = *(x_94); let x_152 : f32 = (*(a_1)).y;
let x_153 : f32 = *(x_119); let x_153 : f32 = (*(c)).y;
param_4 = vec2<f32>((x_142 - x_143), (x_145 - x_146)); param_4 = vec2<f32>((x_142 - x_143), (x_145 - x_146));
param_5 = vec2<f32>((x_149 - x_150), (x_152 - x_153)); param_5 = vec2<f32>((x_149 - x_150), (x_152 - x_153));
let x_156 : f32 = cross2d_vf2_vf2_(&(param_4), &(param_5)); let x_156 : f32 = cross2d_vf2_vf2_(&(param_4), &(param_5));
pca = x_156; pca = x_156;
let x_157 : f32 = pab; let x_157 : f32 = pab;
let x_159 : f32 = pca; let x_159 : f32 = pca;
let x_161 : bool = ((x_157 < 0.0) && (x_159 < 0.0)); let x_161 : bool = ((x_157 < 0.0) & (x_159 < 0.0));
x_170_phi = x_161; x_170_phi = x_161;
if (!(x_161)) { if (!(x_161)) {
let x_165 : f32 = pab; let x_165 : f32 = pab;
let x_167 : f32 = pca; let x_167 : f32 = pca;
x_169 = ((x_165 >= 0.0) && (x_167 >= 0.0)); x_169 = ((x_165 >= 0.0) & (x_167 >= 0.0));
x_170_phi = x_169; x_170_phi = x_169;
} }
let x_170 : bool = x_170_phi; let x_170 : bool = x_170_phi;

View File

@ -38,17 +38,16 @@ fn pointInTriangle_vf2_vf2_vf2_vf2_(p : ptr<function, vec2<f32>>, a_1 : ptr<func
let x_99 : f32 = x_15.resolution.x; let x_99 : f32 = x_15.resolution.x;
let x_101 : f32 = x_15.resolution.y; let x_101 : f32 = x_15.resolution.y;
if ((x_99 == x_101)) { if ((x_99 == x_101)) {
let x_106 : ptr<function, f32> = &((*(c)).y); let x_107 : f32 = (*(c)).y;
let x_107 : f32 = *(x_106);
let x_108 : vec2<f32> = vec2<f32>(0.0, x_107); let x_108 : vec2<f32> = vec2<f32>(0.0, x_107);
if (true) { if (true) {
let x_112 : f32 = *(x_106); let x_112 : f32 = (*(c)).y;
x_97 = x_112; x_97 = x_112;
} else { } else {
x_97 = 1.0; x_97 = 1.0;
} }
let x_113 : f32 = x_97; let x_113 : f32 = x_97;
let x_114 : f32 = *(x_106); let x_114 : f32 = (*(c)).y;
let x_116 : vec2<f32> = vec2<f32>(1.0, max(x_113, x_114)); let x_116 : vec2<f32> = vec2<f32>(1.0, max(x_113, x_114));
let x_117 : vec2<f32> = vec2<f32>(x_108.x, x_108.y); let x_117 : vec2<f32> = vec2<f32>(x_108.x, x_108.y);
x_96 = x_107; x_96 = x_107;
@ -57,76 +56,68 @@ fn pointInTriangle_vf2_vf2_vf2_vf2_(p : ptr<function, vec2<f32>>, a_1 : ptr<func
} }
let x_118 : f32 = x_96; let x_118 : f32 = x_96;
var_y = x_118; var_y = x_118;
let x_119 : ptr<function, f32> = &((*(c)).y); let x_120 : f32 = (*(c)).y;
let x_120 : f32 = *(x_119); let x_121 : f32 = (*(c)).y;
let x_121 : f32 = *(x_119);
let x_122 : f32 = var_y; let x_122 : f32 = var_y;
clamp_y = clamp(x_120, x_121, x_122); clamp_y = clamp(x_120, x_121, x_122);
let x_124 : ptr<function, f32> = &((*(p)).x); let x_125 : f32 = (*(p)).x;
let x_125 : f32 = *(x_124); let x_127 : f32 = (*(a_1)).x;
let x_126 : ptr<function, f32> = &((*(a_1)).x); let x_130 : f32 = (*(p)).y;
let x_127 : f32 = *(x_126); let x_132 : f32 = (*(a_1)).y;
let x_129 : ptr<function, f32> = &((*(p)).y); let x_136 : f32 = (*(b_1)).x;
let x_130 : f32 = *(x_129); let x_137 : f32 = (*(a_1)).x;
let x_131 : ptr<function, f32> = &((*(a_1)).y); let x_140 : f32 = (*(b_1)).y;
let x_132 : f32 = *(x_131); let x_141 : f32 = (*(a_1)).y;
let x_135 : ptr<function, f32> = &((*(b_1)).x);
let x_136 : f32 = *(x_135);
let x_137 : f32 = *(x_126);
let x_139 : ptr<function, f32> = &((*(b_1)).y);
let x_140 : f32 = *(x_139);
let x_141 : f32 = *(x_131);
param = vec2<f32>((x_125 - x_127), (x_130 - x_132)); param = vec2<f32>((x_125 - x_127), (x_130 - x_132));
param_1 = vec2<f32>((x_136 - x_137), (x_140 - x_141)); param_1 = vec2<f32>((x_136 - x_137), (x_140 - x_141));
let x_144 : f32 = cross2d_vf2_vf2_(&(param), &(param_1)); let x_144 : f32 = cross2d_vf2_vf2_(&(param), &(param_1));
pab = x_144; pab = x_144;
let x_145 : f32 = *(x_124); let x_145 : f32 = (*(p)).x;
let x_146 : f32 = *(x_135); let x_146 : f32 = (*(b_1)).x;
let x_148 : f32 = *(x_129); let x_148 : f32 = (*(p)).y;
let x_149 : f32 = *(x_139); let x_149 : f32 = (*(b_1)).y;
let x_152 : ptr<function, f32> = &((*(c)).x); let x_153 : f32 = (*(c)).x;
let x_153 : f32 = *(x_152); let x_154 : f32 = (*(b_1)).x;
let x_154 : f32 = *(x_135);
let x_156 : f32 = clamp_y; let x_156 : f32 = clamp_y;
let x_157 : f32 = *(x_139); let x_157 : f32 = (*(b_1)).y;
param_2 = vec2<f32>((x_145 - x_146), (x_148 - x_149)); param_2 = vec2<f32>((x_145 - x_146), (x_148 - x_149));
param_3 = vec2<f32>((x_153 - x_154), (x_156 - x_157)); param_3 = vec2<f32>((x_153 - x_154), (x_156 - x_157));
let x_160 : f32 = cross2d_vf2_vf2_(&(param_2), &(param_3)); let x_160 : f32 = cross2d_vf2_vf2_(&(param_2), &(param_3));
pbc = x_160; pbc = x_160;
let x_161 : f32 = pab; let x_161 : f32 = pab;
let x_163 : f32 = pbc; let x_163 : f32 = pbc;
let x_165 : bool = ((x_161 < 0.0) && (x_163 < 0.0)); let x_165 : bool = ((x_161 < 0.0) & (x_163 < 0.0));
x_174_phi = x_165; x_174_phi = x_165;
if (!(x_165)) { if (!(x_165)) {
let x_169 : f32 = pab; let x_169 : f32 = pab;
let x_171 : f32 = pbc; let x_171 : f32 = pbc;
x_173 = ((x_169 >= 0.0) && (x_171 >= 0.0)); x_173 = ((x_169 >= 0.0) & (x_171 >= 0.0));
x_174_phi = x_173; x_174_phi = x_173;
} }
let x_174 : bool = x_174_phi; let x_174 : bool = x_174_phi;
if (!(x_174)) { if (!(x_174)) {
return 0; return 0;
} }
let x_178 : f32 = *(x_124); let x_178 : f32 = (*(p)).x;
let x_179 : f32 = *(x_152); let x_179 : f32 = (*(c)).x;
let x_181 : f32 = *(x_129); let x_181 : f32 = (*(p)).y;
let x_182 : f32 = *(x_119); let x_182 : f32 = (*(c)).y;
let x_185 : f32 = *(x_126); let x_185 : f32 = (*(a_1)).x;
let x_186 : f32 = *(x_152); let x_186 : f32 = (*(c)).x;
let x_188 : f32 = *(x_131); let x_188 : f32 = (*(a_1)).y;
let x_189 : f32 = *(x_119); let x_189 : f32 = (*(c)).y;
param_4 = vec2<f32>((x_178 - x_179), (x_181 - x_182)); param_4 = vec2<f32>((x_178 - x_179), (x_181 - x_182));
param_5 = vec2<f32>((x_185 - x_186), (x_188 - x_189)); param_5 = vec2<f32>((x_185 - x_186), (x_188 - x_189));
let x_192 : f32 = cross2d_vf2_vf2_(&(param_4), &(param_5)); let x_192 : f32 = cross2d_vf2_vf2_(&(param_4), &(param_5));
pca = x_192; pca = x_192;
let x_193 : f32 = pab; let x_193 : f32 = pab;
let x_195 : f32 = pca; let x_195 : f32 = pca;
let x_197 : bool = ((x_193 < 0.0) && (x_195 < 0.0)); let x_197 : bool = ((x_193 < 0.0) & (x_195 < 0.0));
x_206_phi = x_197; x_206_phi = x_197;
if (!(x_197)) { if (!(x_197)) {
let x_201 : f32 = pab; let x_201 : f32 = pab;
let x_203 : f32 = pca; let x_203 : f32 = pca;
x_205 = ((x_201 >= 0.0) && (x_203 >= 0.0)); x_205 = ((x_201 >= 0.0) & (x_203 >= 0.0));
x_206_phi = x_205; x_206_phi = x_205;
} }
let x_206 : bool = x_206_phi; let x_206 : bool = x_206_phi;

View File

@ -23,20 +23,14 @@ fn pointInTriangle_vf2_vf2_vf2_vf2_(p : ptr<function, vec2<f32>>, a : ptr<functi
var x_172 : bool; var x_172 : bool;
var x_136_phi : bool; var x_136_phi : bool;
var x_173_phi : bool; var x_173_phi : bool;
let x_69 : ptr<function, f32> = &((*(p)).x); let x_70 : f32 = (*(p)).x;
let x_70 : f32 = *(x_69); let x_72 : f32 = (*(a)).x;
let x_71 : ptr<function, f32> = &((*(a)).x); let x_75 : f32 = (*(p)).y;
let x_72 : f32 = *(x_71); let x_77 : f32 = (*(a)).y;
let x_74 : ptr<function, f32> = &((*(p)).y); let x_81 : f32 = (*(b)).x;
let x_75 : f32 = *(x_74); let x_82 : f32 = (*(a)).x;
let x_76 : ptr<function, f32> = &((*(a)).y); let x_85 : f32 = (*(b)).y;
let x_77 : f32 = *(x_76); let x_86 : f32 = (*(a)).y;
let x_80 : ptr<function, f32> = &((*(b)).x);
let x_81 : f32 = *(x_80);
let x_82 : f32 = *(x_71);
let x_84 : ptr<function, f32> = &((*(b)).y);
let x_85 : f32 = *(x_84);
let x_86 : f32 = *(x_76);
param = vec2<f32>((x_70 - x_72), (x_75 - x_77)); param = vec2<f32>((x_70 - x_72), (x_75 - x_77));
param_1 = vec2<f32>((x_81 - x_82), (x_85 - x_86)); param_1 = vec2<f32>((x_81 - x_82), (x_85 - x_86));
let x_90 : f32 = param.x; let x_90 : f32 = param.x;
@ -45,16 +39,14 @@ fn pointInTriangle_vf2_vf2_vf2_vf2_(p : ptr<function, vec2<f32>>, a : ptr<functi
let x_97 : f32 = param.y; let x_97 : f32 = param.y;
let x_99 : f32 = ((x_90 * x_92) - (x_95 * x_97)); let x_99 : f32 = ((x_90 * x_92) - (x_95 * x_97));
x_68 = x_99; x_68 = x_99;
let x_100 : f32 = *(x_69); let x_100 : f32 = (*(p)).x;
let x_101 : f32 = *(x_80); let x_101 : f32 = (*(b)).x;
let x_103 : f32 = *(x_74); let x_103 : f32 = (*(p)).y;
let x_104 : f32 = *(x_84); let x_104 : f32 = (*(b)).y;
let x_107 : ptr<function, f32> = &((*(c)).x); let x_108 : f32 = (*(c)).x;
let x_108 : f32 = *(x_107); let x_109 : f32 = (*(b)).x;
let x_109 : f32 = *(x_80); let x_112 : f32 = (*(c)).y;
let x_111 : ptr<function, f32> = &((*(c)).y); let x_113 : f32 = (*(b)).y;
let x_112 : f32 = *(x_111);
let x_113 : f32 = *(x_84);
param_2 = vec2<f32>((x_100 - x_101), (x_103 - x_104)); param_2 = vec2<f32>((x_100 - x_101), (x_103 - x_104));
param_3 = vec2<f32>((x_108 - x_109), (x_112 - x_113)); param_3 = vec2<f32>((x_108 - x_109), (x_112 - x_113));
let x_117 : f32 = param_2.x; let x_117 : f32 = param_2.x;
@ -64,24 +56,24 @@ fn pointInTriangle_vf2_vf2_vf2_vf2_(p : ptr<function, vec2<f32>>, a : ptr<functi
let x_126 : f32 = ((x_117 * x_119) - (x_122 * x_124)); let x_126 : f32 = ((x_117 * x_119) - (x_122 * x_124));
x_67 = x_126; x_67 = x_126;
let x_127 : bool = (x_99 < 0.0); let x_127 : bool = (x_99 < 0.0);
let x_129 : bool = (x_127 && (x_126 < 0.0)); let x_129 : bool = (x_127 & (x_126 < 0.0));
x_136_phi = x_129; x_136_phi = x_129;
if (!(x_129)) { if (!(x_129)) {
x_135 = ((x_99 >= 0.0) && (x_126 >= 0.0)); x_135 = ((x_99 >= 0.0) & (x_126 >= 0.0));
x_136_phi = x_135; x_136_phi = x_135;
} }
let x_136 : bool = x_136_phi; let x_136 : bool = x_136_phi;
if (!(x_136)) { if (!(x_136)) {
return 0; return 0;
} }
let x_140 : f32 = *(x_69); let x_140 : f32 = (*(p)).x;
let x_141 : f32 = *(x_107); let x_141 : f32 = (*(c)).x;
let x_143 : f32 = *(x_74); let x_143 : f32 = (*(p)).y;
let x_144 : f32 = *(x_111); let x_144 : f32 = (*(c)).y;
let x_147 : f32 = *(x_71); let x_147 : f32 = (*(a)).x;
let x_148 : f32 = *(x_107); let x_148 : f32 = (*(c)).x;
let x_150 : f32 = *(x_76); let x_150 : f32 = (*(a)).y;
let x_151 : f32 = *(x_111); let x_151 : f32 = (*(c)).y;
param_4 = vec2<f32>((x_140 - x_141), (x_143 - x_144)); param_4 = vec2<f32>((x_140 - x_141), (x_143 - x_144));
param_5 = vec2<f32>((x_147 - x_148), (x_150 - x_151)); param_5 = vec2<f32>((x_147 - x_148), (x_150 - x_151));
let x_155 : f32 = param_4.x; let x_155 : f32 = param_4.x;
@ -90,10 +82,10 @@ fn pointInTriangle_vf2_vf2_vf2_vf2_(p : ptr<function, vec2<f32>>, a : ptr<functi
let x_162 : f32 = param_4.y; let x_162 : f32 = param_4.y;
let x_164 : f32 = ((x_155 * x_157) - (x_160 * x_162)); let x_164 : f32 = ((x_155 * x_157) - (x_160 * x_162));
x_66 = x_164; x_66 = x_164;
let x_166 : bool = (x_127 && (x_164 < 0.0)); let x_166 : bool = (x_127 & (x_164 < 0.0));
x_173_phi = x_166; x_173_phi = x_166;
if (!(x_166)) { if (!(x_166)) {
x_172 = ((x_99 >= 0.0) && (x_164 >= 0.0)); x_172 = ((x_99 >= 0.0) & (x_164 >= 0.0));
x_173_phi = x_172; x_173_phi = x_172;
} }
let x_173 : bool = x_173_phi; let x_173 : bool = x_173_phi;

View File

@ -30,20 +30,14 @@ fn pointInTriangle_vf2_vf2_vf2_vf2_(p : ptr<function, vec2<f32>>, a : ptr<functi
var x_203 : bool; var x_203 : bool;
var x_148_phi : bool; var x_148_phi : bool;
var x_204_phi : bool; var x_204_phi : bool;
let x_81 : ptr<function, f32> = &((*(p)).x); let x_82 : f32 = (*(p)).x;
let x_82 : f32 = *(x_81); let x_84 : f32 = (*(a)).x;
let x_83 : ptr<function, f32> = &((*(a)).x); let x_87 : f32 = (*(p)).y;
let x_84 : f32 = *(x_83); let x_89 : f32 = (*(a)).y;
let x_86 : ptr<function, f32> = &((*(p)).y); let x_93 : f32 = (*(b)).x;
let x_87 : f32 = *(x_86); let x_94 : f32 = (*(a)).x;
let x_88 : ptr<function, f32> = &((*(a)).y); let x_97 : f32 = (*(b)).y;
let x_89 : f32 = *(x_88); let x_98 : f32 = (*(a)).y;
let x_92 : ptr<function, f32> = &((*(b)).x);
let x_93 : f32 = *(x_92);
let x_94 : f32 = *(x_83);
let x_96 : ptr<function, f32> = &((*(b)).y);
let x_97 : f32 = *(x_96);
let x_98 : f32 = *(x_88);
param = vec2<f32>((x_82 - x_84), (x_87 - x_89)); param = vec2<f32>((x_82 - x_84), (x_87 - x_89));
param_1 = vec2<f32>((x_93 - x_94), (x_97 - x_98)); param_1 = vec2<f32>((x_93 - x_94), (x_97 - x_98));
let x_102 : f32 = param.x; let x_102 : f32 = param.x;
@ -52,16 +46,14 @@ fn pointInTriangle_vf2_vf2_vf2_vf2_(p : ptr<function, vec2<f32>>, a : ptr<functi
let x_109 : f32 = param.y; let x_109 : f32 = param.y;
let x_111 : f32 = ((x_102 * x_104) - (x_107 * x_109)); let x_111 : f32 = ((x_102 * x_104) - (x_107 * x_109));
x_80 = x_111; x_80 = x_111;
let x_112 : f32 = *(x_81); let x_112 : f32 = (*(p)).x;
let x_113 : f32 = *(x_92); let x_113 : f32 = (*(b)).x;
let x_115 : f32 = *(x_86); let x_115 : f32 = (*(p)).y;
let x_116 : f32 = *(x_96); let x_116 : f32 = (*(b)).y;
let x_119 : ptr<function, f32> = &((*(c)).x); let x_120 : f32 = (*(c)).x;
let x_120 : f32 = *(x_119); let x_121 : f32 = (*(b)).x;
let x_121 : f32 = *(x_92); let x_124 : f32 = (*(c)).y;
let x_123 : ptr<function, f32> = &((*(c)).y); let x_125 : f32 = (*(b)).y;
let x_124 : f32 = *(x_123);
let x_125 : f32 = *(x_96);
param_2 = vec2<f32>((x_112 - x_113), (x_115 - x_116)); param_2 = vec2<f32>((x_112 - x_113), (x_115 - x_116));
param_3 = vec2<f32>((x_120 - x_121), (x_124 - x_125)); param_3 = vec2<f32>((x_120 - x_121), (x_124 - x_125));
let x_129 : f32 = param_2.x; let x_129 : f32 = param_2.x;
@ -71,10 +63,10 @@ fn pointInTriangle_vf2_vf2_vf2_vf2_(p : ptr<function, vec2<f32>>, a : ptr<functi
let x_138 : f32 = ((x_129 * x_131) - (x_134 * x_136)); let x_138 : f32 = ((x_129 * x_131) - (x_134 * x_136));
x_79 = x_138; x_79 = x_138;
let x_139 : bool = (x_111 < 0.0); let x_139 : bool = (x_111 < 0.0);
let x_141 : bool = (x_139 && (x_138 < 0.0)); let x_141 : bool = (x_139 & (x_138 < 0.0));
x_148_phi = x_141; x_148_phi = x_141;
if (!(x_141)) { if (!(x_141)) {
x_147 = ((x_111 >= 0.0) && (x_138 >= 0.0)); x_147 = ((x_111 >= 0.0) & (x_138 >= 0.0));
x_148_phi = x_147; x_148_phi = x_147;
} }
var x_153_phi : i32; var x_153_phi : i32;
@ -115,14 +107,14 @@ fn pointInTriangle_vf2_vf2_vf2_vf2_(p : ptr<function, vec2<f32>>, a : ptr<functi
} }
return 0; return 0;
} }
let x_171 : f32 = *(x_81); let x_171 : f32 = (*(p)).x;
let x_172 : f32 = *(x_119); let x_172 : f32 = (*(c)).x;
let x_174 : f32 = *(x_86); let x_174 : f32 = (*(p)).y;
let x_175 : f32 = *(x_123); let x_175 : f32 = (*(c)).y;
let x_178 : f32 = *(x_83); let x_178 : f32 = (*(a)).x;
let x_179 : f32 = *(x_119); let x_179 : f32 = (*(c)).x;
let x_181 : f32 = *(x_88); let x_181 : f32 = (*(a)).y;
let x_182 : f32 = *(x_123); let x_182 : f32 = (*(c)).y;
param_4 = vec2<f32>((x_171 - x_172), (x_174 - x_175)); param_4 = vec2<f32>((x_171 - x_172), (x_174 - x_175));
param_5 = vec2<f32>((x_178 - x_179), (x_181 - x_182)); param_5 = vec2<f32>((x_178 - x_179), (x_181 - x_182));
let x_186 : f32 = param_4.x; let x_186 : f32 = param_4.x;
@ -131,10 +123,10 @@ fn pointInTriangle_vf2_vf2_vf2_vf2_(p : ptr<function, vec2<f32>>, a : ptr<functi
let x_193 : f32 = param_4.y; let x_193 : f32 = param_4.y;
let x_195 : f32 = ((x_186 * x_188) - (x_191 * x_193)); let x_195 : f32 = ((x_186 * x_188) - (x_191 * x_193));
x_78 = x_195; x_78 = x_195;
let x_197 : bool = (x_139 && (x_195 < 0.0)); let x_197 : bool = (x_139 & (x_195 < 0.0));
x_204_phi = x_197; x_204_phi = x_197;
if (!(x_197)) { if (!(x_197)) {
x_203 = ((x_111 >= 0.0) && (x_195 >= 0.0)); x_203 = ((x_111 >= 0.0) & (x_195 >= 0.0));
x_204_phi = x_203; x_204_phi = x_203;
} }
let x_204 : bool = x_204_phi; let x_204 : bool = x_204_phi;