tint/resolver: Evaluate const-expr swizzles
Bug: chromium:1341475
Change-Id: I2ac44824b08c460df759a96d0ba96f6045b60f74
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/95765
Reviewed-by: Dan Sinclair <dsinclair@chromium.org>
Commit-Queue: Ben Clayton <bclayton@google.com>
diff --git a/src/tint/resolver/resolver.cc b/src/tint/resolver/resolver.cc
index 42cd0bb..9891f29 100644
--- a/src/tint/resolver/resolver.cc
+++ b/src/tint/resolver/resolver.cc
@@ -1976,7 +1976,8 @@
ret = builder_->create<sem::Reference>(ret, ref->StorageClass(), ref->Access());
}
- return builder_->create<sem::StructMemberAccess>(expr, ret, current_statement_, object,
+ sem::Constant* val = nullptr; // TODO(crbug.com/tint/1611): Add structure support.
+ return builder_->create<sem::StructMemberAccess>(expr, ret, current_statement_, val, object,
member, has_side_effects, source_var);
}
@@ -2043,7 +2044,8 @@
// the swizzle.
ret = builder_->create<sem::Vector>(vec->type(), static_cast<uint32_t>(size));
}
- return builder_->create<sem::Swizzle>(expr, ret, current_statement_, object,
+ auto* val = EvaluateSwizzleValue(object, ret, swizzle);
+ return builder_->create<sem::Swizzle>(expr, ret, current_statement_, val, object,
std::move(swizzle), has_side_effects, source_var);
}
diff --git a/src/tint/resolver/resolver.h b/src/tint/resolver/resolver.h
index 7c1f838..9a9811f 100644
--- a/src/tint/resolver/resolver.h
+++ b/src/tint/resolver/resolver.h
@@ -218,6 +218,9 @@
const sem::Type* ty); // Note: ty is not an array or structure
const sem::Constant* EvaluateIndexValue(const sem::Expression* obj, const sem::Expression* idx);
const sem::Constant* EvaluateLiteralValue(const ast::LiteralExpression*, const sem::Type*);
+ const sem::Constant* EvaluateSwizzleValue(const sem::Expression* vector,
+ const sem::Type* type,
+ const std::vector<uint32_t>& indices);
const sem::Constant* EvaluateUnaryValue(const sem::Expression*,
const IntrinsicTable::UnaryOperator&);
diff --git a/src/tint/resolver/resolver_constants.cc b/src/tint/resolver/resolver_constants.cc
index 0c314cb..30c00e2 100644
--- a/src/tint/resolver/resolver_constants.cc
+++ b/src/tint/resolver/resolver_constants.cc
@@ -19,6 +19,7 @@
#include "src/tint/sem/abstract_float.h"
#include "src/tint/sem/abstract_int.h"
#include "src/tint/sem/constant.h"
+#include "src/tint/sem/member_accessor_expression.h"
#include "src/tint/sem/type_constructor.h"
#include "src/tint/utils/compiler_macros.h"
#include "src/tint/utils/transform.h"
@@ -537,6 +538,22 @@
return obj_val->Index(static_cast<size_t>(idx));
}
+const sem::Constant* Resolver::EvaluateSwizzleValue(const sem::Expression* vec_expr,
+ const sem::Type* type,
+ const std::vector<uint32_t>& indices) {
+ auto* vec_val = vec_expr->ConstantValue();
+ if (!vec_val) {
+ return nullptr;
+ }
+ if (indices.size() == 1) {
+ return static_cast<const Constant*>(vec_val->Index(indices[0]));
+ } else {
+ auto values = utils::Transform(
+ indices, [&](uint32_t i) { return static_cast<const Constant*>(vec_val->Index(i)); });
+ return CreateComposite(*builder_, type, std::move(values));
+ }
+}
+
const sem::Constant* Resolver::EvaluateBitcastValue(const sem::Expression*, const sem::Type*) {
// TODO(crbug.com/tint/1581): Implement @const intrinsics
return nullptr;
diff --git a/src/tint/resolver/resolver_constants_test.cc b/src/tint/resolver/resolver_constants_test.cc
index ff8a189..b8ef1b1 100644
--- a/src/tint/resolver/resolver_constants_test.cc
+++ b/src/tint/resolver/resolver_constants_test.cc
@@ -20,6 +20,7 @@
#include "src/tint/resolver/resolver_test_helper.h"
#include "src/tint/sem/expression.h"
#include "src/tint/sem/index_accessor_expression.h"
+#include "src/tint/sem/member_accessor_expression.h"
#include "src/tint/sem/test_helper.h"
using namespace tint::number_suffixes; // NOLINT
@@ -1869,6 +1870,63 @@
EXPECT_EQ(sem->ConstantValue()->As<i32>(), 1_i);
}
+TEST_F(ResolverConstantsTest, Vec3_Swizzle_Scalar) {
+ auto* expr = MemberAccessor(vec3<i32>(1_i, 2_i, 3_i), "y");
+ WrapInFunction(expr);
+
+ EXPECT_TRUE(r()->Resolve()) << r()->error();
+
+ auto* sem = Sem().Get(expr);
+ ASSERT_NE(sem, nullptr);
+ ASSERT_TRUE(sem->Type()->Is<sem::I32>());
+ EXPECT_TYPE(sem->ConstantValue()->Type(), sem->Type());
+ EXPECT_TRUE(sem->ConstantValue()->AllEqual());
+ EXPECT_FALSE(sem->ConstantValue()->AnyZero());
+ EXPECT_FALSE(sem->ConstantValue()->AllZero());
+ EXPECT_EQ(sem->ConstantValue()->As<i32>(), 2_i);
+}
+
+TEST_F(ResolverConstantsTest, Vec3_Swizzle_Vector) {
+ auto* expr = MemberAccessor(vec3<i32>(1_i, 2_i, 3_i), "zx");
+ WrapInFunction(expr);
+
+ EXPECT_TRUE(r()->Resolve()) << r()->error();
+
+ auto* sem = Sem().Get(expr);
+ ASSERT_NE(sem, nullptr);
+ auto* vec = sem->Type()->As<sem::Vector>();
+ ASSERT_NE(vec, nullptr);
+ EXPECT_EQ(vec->Width(), 2u);
+ EXPECT_TYPE(sem->ConstantValue()->Type(), sem->Type());
+
+ EXPECT_TRUE(sem->ConstantValue()->Index(0)->AllEqual());
+ EXPECT_FALSE(sem->ConstantValue()->Index(0)->AnyZero());
+ EXPECT_FALSE(sem->ConstantValue()->Index(0)->AllZero());
+ EXPECT_EQ(sem->ConstantValue()->Index(0)->As<f32>(), 3._a);
+
+ EXPECT_TRUE(sem->ConstantValue()->Index(1)->AllEqual());
+ EXPECT_FALSE(sem->ConstantValue()->Index(1)->AnyZero());
+ EXPECT_FALSE(sem->ConstantValue()->Index(1)->AllZero());
+ EXPECT_EQ(sem->ConstantValue()->Index(1)->As<f32>(), 1._a);
+}
+
+TEST_F(ResolverConstantsTest, Vec3_Swizzle_Chain) {
+ auto* expr = // (1, 2, 3) -> (2, 3, 1) -> (3, 2) -> 2
+ MemberAccessor(MemberAccessor(MemberAccessor(vec3<i32>(1_i, 2_i, 3_i), "gbr"), "yx"), "y");
+ WrapInFunction(expr);
+
+ EXPECT_TRUE(r()->Resolve()) << r()->error();
+
+ auto* sem = Sem().Get(expr);
+ ASSERT_NE(sem, nullptr);
+ ASSERT_TRUE(sem->Type()->Is<sem::I32>());
+ EXPECT_TYPE(sem->ConstantValue()->Type(), sem->Type());
+ EXPECT_TRUE(sem->ConstantValue()->AllEqual());
+ EXPECT_FALSE(sem->ConstantValue()->AnyZero());
+ EXPECT_FALSE(sem->ConstantValue()->AllZero());
+ EXPECT_EQ(sem->ConstantValue()->As<i32>(), 2_i);
+}
+
TEST_F(ResolverConstantsTest, Mat3x2_Index) {
auto* expr = IndexAccessor(
mat3x2<f32>(vec2<f32>(1._a, 2._a), vec2<f32>(3._a, 4._a), vec2<f32>(5._a, 6._a)), 2_i);
diff --git a/src/tint/sem/expression.h b/src/tint/sem/expression.h
index 05e5dac..45a67ca 100644
--- a/src/tint/sem/expression.h
+++ b/src/tint/sem/expression.h
@@ -35,7 +35,7 @@
/// @param declaration the AST node
/// @param type the resolved type of the expression
/// @param statement the statement that owns this expression
- /// @param constant the constant value of the expression. May be invalid
+ /// @param constant the constant value of the expression. May be null
/// @param has_side_effects true if this expression may have side-effects
/// @param source_var the (optional) source variable for this expression
Expression(const ast::Expression* declaration,
diff --git a/src/tint/sem/index_accessor_expression.h b/src/tint/sem/index_accessor_expression.h
index 233b0fa..3ba10ea 100644
--- a/src/tint/sem/index_accessor_expression.h
+++ b/src/tint/sem/index_accessor_expression.h
@@ -35,7 +35,7 @@
/// @param object the object expression that is being indexed
/// @param index the index expression
/// @param statement the statement that owns this expression
- /// @param constant the constant value of the expression. May be invalid
+ /// @param constant the constant value of the expression. May be null
/// @param has_side_effects whether this expression may have side effects
/// @param source_var the (optional) source variable for this expression
IndexAccessorExpression(const ast::IndexAccessorExpression* declaration,
diff --git a/src/tint/sem/member_accessor_expression.cc b/src/tint/sem/member_accessor_expression.cc
index f9929c7..7c31b0e 100644
--- a/src/tint/sem/member_accessor_expression.cc
+++ b/src/tint/sem/member_accessor_expression.cc
@@ -26,32 +26,36 @@
MemberAccessorExpression::MemberAccessorExpression(const ast::MemberAccessorExpression* declaration,
const sem::Type* type,
const Statement* statement,
+ const Constant* constant,
const Expression* object,
bool has_side_effects,
const Variable* source_var /* = nullptr */)
- : Base(declaration, type, statement, nullptr, has_side_effects, source_var), object_(object) {}
+ : Base(declaration, type, statement, constant, has_side_effects, source_var), object_(object) {}
MemberAccessorExpression::~MemberAccessorExpression() = default;
StructMemberAccess::StructMemberAccess(const ast::MemberAccessorExpression* declaration,
const sem::Type* type,
const Statement* statement,
+ const Constant* constant,
const Expression* object,
const StructMember* member,
bool has_side_effects,
const Variable* source_var /* = nullptr */)
- : Base(declaration, type, statement, object, has_side_effects, source_var), member_(member) {}
+ : Base(declaration, type, statement, constant, object, has_side_effects, source_var),
+ member_(member) {}
StructMemberAccess::~StructMemberAccess() = default;
Swizzle::Swizzle(const ast::MemberAccessorExpression* declaration,
const sem::Type* type,
const Statement* statement,
+ const Constant* constant,
const Expression* object,
std::vector<uint32_t> indices,
bool has_side_effects,
const Variable* source_var /* = nullptr */)
- : Base(declaration, type, statement, object, has_side_effects, source_var),
+ : Base(declaration, type, statement, constant, object, has_side_effects, source_var),
indices_(std::move(indices)) {}
Swizzle::~Swizzle() = default;
diff --git a/src/tint/sem/member_accessor_expression.h b/src/tint/sem/member_accessor_expression.h
index 3d60816..d8484a8 100644
--- a/src/tint/sem/member_accessor_expression.h
+++ b/src/tint/sem/member_accessor_expression.h
@@ -38,12 +38,14 @@
/// @param declaration the AST node
/// @param type the resolved type of the expression
/// @param statement the statement that owns this expression
+ /// @param constant the constant value of the expression. May be null.
/// @param object the object that holds the member being accessed
/// @param has_side_effects whether this expression may have side effects
/// @param source_var the (optional) source variable for this expression
MemberAccessorExpression(const ast::MemberAccessorExpression* declaration,
const sem::Type* type,
const Statement* statement,
+ const Constant* constant,
const Expression* object,
bool has_side_effects,
const Variable* source_var = nullptr);
@@ -67,6 +69,7 @@
/// @param declaration the AST node
/// @param type the resolved type of the expression
/// @param statement the statement that owns this expression
+ /// @param constant the constant value of the expression. May be null
/// @param object the object that holds the member being accessed
/// @param member the structure member
/// @param has_side_effects whether this expression may have side effects
@@ -74,6 +77,7 @@
StructMemberAccess(const ast::MemberAccessorExpression* declaration,
const sem::Type* type,
const Statement* statement,
+ const Constant* constant,
const Expression* object,
const StructMember* member,
bool has_side_effects,
@@ -97,6 +101,7 @@
/// @param declaration the AST node
/// @param type the resolved type of the expression
/// @param statement the statement that owns this expression
+ /// @param constant the constant value of the expression. May be null
/// @param object the object that holds the member being accessed
/// @param indices the swizzle indices
/// @param has_side_effects whether this expression may have side effects
@@ -104,6 +109,7 @@
Swizzle(const ast::MemberAccessorExpression* declaration,
const sem::Type* type,
const Statement* statement,
+ const Constant* constant,
const Expression* object,
std::vector<uint32_t> indices,
bool has_side_effects,
diff --git a/src/tint/sem/variable.h b/src/tint/sem/variable.h
index 28e8f97..e5a5cec 100644
--- a/src/tint/sem/variable.h
+++ b/src/tint/sem/variable.h
@@ -47,7 +47,7 @@
/// @param type the variable type
/// @param storage_class the variable storage class
/// @param access the variable access control type
- /// @param constant_value the constant value for the variable. May be invalid
+ /// @param constant_value the constant value for the variable. May be null
Variable(const ast::Variable* declaration,
const sem::Type* type,
ast::StorageClass storage_class,
@@ -105,7 +105,7 @@
/// @param storage_class the variable storage class
/// @param access the variable access control type
/// @param statement the statement that declared this local variable
- /// @param constant_value the constant value for the variable. May be invalid
+ /// @param constant_value the constant value for the variable. May be null
LocalVariable(const ast::Variable* declaration,
const sem::Type* type,
ast::StorageClass storage_class,
@@ -139,7 +139,7 @@
/// @param type the variable type
/// @param storage_class the variable storage class
/// @param access the variable access control type
- /// @param constant_value the constant value for the variable. May be invalid
+ /// @param constant_value the constant value for the variable. May be null
/// @param binding_point the optional resource binding point of the variable
GlobalVariable(const ast::Variable* declaration,
const sem::Type* type,
diff --git a/test/tint/access/let/matrix.spvasm.expected.glsl b/test/tint/access/let/matrix.spvasm.expected.glsl
index f4bf9cc..28576b7 100644
--- a/test/tint/access/let/matrix.spvasm.expected.glsl
+++ b/test/tint/access/let/matrix.spvasm.expected.glsl
@@ -1,7 +1,7 @@
#version 310 es
void main_1() {
- float x_24 = vec3(4.0f, 5.0f, 6.0f).y;
+ float x_24 = 5.0f;
return;
}
diff --git a/test/tint/access/let/matrix.spvasm.expected.hlsl b/test/tint/access/let/matrix.spvasm.expected.hlsl
index 164f020..a78b2e6 100644
--- a/test/tint/access/let/matrix.spvasm.expected.hlsl
+++ b/test/tint/access/let/matrix.spvasm.expected.hlsl
@@ -1,5 +1,5 @@
void main_1() {
- const float x_24 = float3(4.0f, 5.0f, 6.0f).y;
+ const float x_24 = 5.0f;
return;
}
diff --git a/test/tint/access/let/matrix.spvasm.expected.msl b/test/tint/access/let/matrix.spvasm.expected.msl
index ca54fa6..bbb7ba6 100644
--- a/test/tint/access/let/matrix.spvasm.expected.msl
+++ b/test/tint/access/let/matrix.spvasm.expected.msl
@@ -2,7 +2,7 @@
using namespace metal;
void main_1() {
- float const x_24 = float3(4.0f, 5.0f, 6.0f)[1];
+ float const x_24 = 5.0f;
return;
}
diff --git a/test/tint/access/let/matrix.spvasm.expected.spvasm b/test/tint/access/let/matrix.spvasm.expected.spvasm
index 7556cb3..a95383c 100644
--- a/test/tint/access/let/matrix.spvasm.expected.spvasm
+++ b/test/tint/access/let/matrix.spvasm.expected.spvasm
@@ -1,7 +1,7 @@
; SPIR-V
; Version: 1.3
; Generator: Google Tint Compiler; 0
-; Bound: 28
+; Bound: 10
; Schema: 0
OpCapability Shader
OpMemoryModel Logical GLSL450
@@ -12,31 +12,13 @@
%void = OpTypeVoid
%1 = OpTypeFunction %void
%float = OpTypeFloat 32
- %v3float = OpTypeVector %float 3
-%mat3v3float = OpTypeMatrix %v3float 3
- %float_1 = OpConstant %float 1
- %float_2 = OpConstant %float 2
- %float_3 = OpConstant %float 3
- %11 = OpConstantComposite %v3float %float_1 %float_2 %float_3
- %float_4 = OpConstant %float 4
%float_5 = OpConstant %float 5
- %float_6 = OpConstant %float 6
- %15 = OpConstantComposite %v3float %float_4 %float_5 %float_6
- %float_7 = OpConstant %float 7
- %float_8 = OpConstant %float 8
- %float_9 = OpConstant %float 9
- %19 = OpConstantComposite %v3float %float_7 %float_8 %float_9
- %20 = OpConstantComposite %mat3v3float %11 %15 %19
- %uint = OpTypeInt 32 0
- %uint_1 = OpConstant %uint 1
%main_1 = OpFunction %void None %1
%4 = OpLabel
- %23 = OpCompositeExtract %v3float %20 1
- %24 = OpCompositeExtract %float %23 1
OpReturn
OpFunctionEnd
%main = OpFunction %void None %1
- %26 = OpLabel
- %27 = OpFunctionCall %void %main_1
+ %8 = OpLabel
+ %9 = OpFunctionCall %void %main_1
OpReturn
OpFunctionEnd
diff --git a/test/tint/access/let/vector.spvasm.expected.glsl b/test/tint/access/let/vector.spvasm.expected.glsl
index 6d744cd..6edf308 100644
--- a/test/tint/access/let/vector.spvasm.expected.glsl
+++ b/test/tint/access/let/vector.spvasm.expected.glsl
@@ -1,9 +1,9 @@
#version 310 es
void main_1() {
- float x_11 = vec3(1.0f, 2.0f, 3.0f).y;
- vec2 x_13 = vec2(vec3(1.0f, 2.0f, 3.0f).x, vec3(1.0f, 2.0f, 3.0f).z);
- vec3 x_14 = vec3(vec3(1.0f, 2.0f, 3.0f).x, vec3(1.0f, 2.0f, 3.0f).z, vec3(1.0f, 2.0f, 3.0f).y);
+ float x_11 = 2.0f;
+ vec2 x_13 = vec2(1.0f, 3.0f);
+ vec3 x_14 = vec3(1.0f, 3.0f, 2.0f);
return;
}
diff --git a/test/tint/access/let/vector.spvasm.expected.hlsl b/test/tint/access/let/vector.spvasm.expected.hlsl
index cc37e54..d5e689b 100644
--- a/test/tint/access/let/vector.spvasm.expected.hlsl
+++ b/test/tint/access/let/vector.spvasm.expected.hlsl
@@ -1,7 +1,7 @@
void main_1() {
- const float x_11 = float3(1.0f, 2.0f, 3.0f).y;
- const float2 x_13 = float2(float3(1.0f, 2.0f, 3.0f).x, float3(1.0f, 2.0f, 3.0f).z);
- const float3 x_14 = float3(float3(1.0f, 2.0f, 3.0f).x, float3(1.0f, 2.0f, 3.0f).z, float3(1.0f, 2.0f, 3.0f).y);
+ const float x_11 = 2.0f;
+ const float2 x_13 = float2(1.0f, 3.0f);
+ const float3 x_14 = float3(1.0f, 3.0f, 2.0f);
return;
}
diff --git a/test/tint/access/let/vector.spvasm.expected.msl b/test/tint/access/let/vector.spvasm.expected.msl
index 354e9b1..1277c5a 100644
--- a/test/tint/access/let/vector.spvasm.expected.msl
+++ b/test/tint/access/let/vector.spvasm.expected.msl
@@ -2,9 +2,9 @@
using namespace metal;
void main_1() {
- float const x_11 = float3(1.0f, 2.0f, 3.0f)[1];
- float2 const x_13 = float2(float3(1.0f, 2.0f, 3.0f)[0], float3(1.0f, 2.0f, 3.0f)[2]);
- float3 const x_14 = float3(float3(1.0f, 2.0f, 3.0f)[0], float3(1.0f, 2.0f, 3.0f)[2], float3(1.0f, 2.0f, 3.0f)[1]);
+ float const x_11 = 2.0f;
+ float2 const x_13 = float2(1.0f, 3.0f);
+ float3 const x_14 = float3(1.0f, 3.0f, 2.0f);
return;
}
diff --git a/test/tint/access/let/vector.spvasm.expected.spvasm b/test/tint/access/let/vector.spvasm.expected.spvasm
index 5b2e162..58ec939 100644
--- a/test/tint/access/let/vector.spvasm.expected.spvasm
+++ b/test/tint/access/let/vector.spvasm.expected.spvasm
@@ -1,7 +1,7 @@
; SPIR-V
; Version: 1.3
; Generator: Google Tint Compiler; 0
-; Bound: 23
+; Bound: 16
; Schema: 0
OpCapability Shader
OpMemoryModel Logical GLSL450
@@ -12,26 +12,19 @@
%void = OpTypeVoid
%1 = OpTypeFunction %void
%float = OpTypeFloat 32
- %v3float = OpTypeVector %float 3
- %float_1 = OpConstant %float 1
%float_2 = OpConstant %float 2
- %float_3 = OpConstant %float 3
- %10 = OpConstantComposite %v3float %float_1 %float_2 %float_3
%v2float = OpTypeVector %float 2
+ %float_1 = OpConstant %float 1
+ %float_3 = OpConstant %float 3
+ %10 = OpConstantComposite %v2float %float_1 %float_3
+ %v3float = OpTypeVector %float 3
+ %12 = OpConstantComposite %v3float %float_1 %float_3 %float_2
%main_1 = OpFunction %void None %1
%4 = OpLabel
- %11 = OpCompositeExtract %float %10 1
- %13 = OpCompositeExtract %float %10 0
- %14 = OpCompositeExtract %float %10 2
- %15 = OpCompositeConstruct %v2float %13 %14
- %16 = OpCompositeExtract %float %10 0
- %17 = OpCompositeExtract %float %10 2
- %18 = OpCompositeExtract %float %10 1
- %19 = OpCompositeConstruct %v3float %16 %17 %18
OpReturn
OpFunctionEnd
%main = OpFunction %void None %1
- %21 = OpLabel
- %22 = OpFunctionCall %void %main_1
+ %14 = OpLabel
+ %15 = OpFunctionCall %void %main_1
OpReturn
OpFunctionEnd
diff --git a/test/tint/bug/chromium/1341475.wgsl b/test/tint/bug/chromium/1341475.wgsl
new file mode 100644
index 0000000..864442b1
--- /dev/null
+++ b/test/tint/bug/chromium/1341475.wgsl
@@ -0,0 +1,4 @@
+@compute @workgroup_size(1)
+fn main() {
+ _ = mix(1.0, vec2(1.0).y, 1.0);
+}
diff --git a/test/tint/bug/chromium/1341475.wgsl.expected.glsl b/test/tint/bug/chromium/1341475.wgsl.expected.glsl
new file mode 100644
index 0000000..f009847
--- /dev/null
+++ b/test/tint/bug/chromium/1341475.wgsl.expected.glsl
@@ -0,0 +1,11 @@
+#version 310 es
+
+void tint_symbol() {
+ mix(1.0f, 1.0f, 1.0f);
+}
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+ tint_symbol();
+ return;
+}
diff --git a/test/tint/bug/chromium/1341475.wgsl.expected.hlsl b/test/tint/bug/chromium/1341475.wgsl.expected.hlsl
new file mode 100644
index 0000000..01c8800
--- /dev/null
+++ b/test/tint/bug/chromium/1341475.wgsl.expected.hlsl
@@ -0,0 +1,5 @@
+[numthreads(1, 1, 1)]
+void main() {
+ lerp(1.0f, 1.0f, 1.0f);
+ return;
+}
diff --git a/test/tint/bug/chromium/1341475.wgsl.expected.msl b/test/tint/bug/chromium/1341475.wgsl.expected.msl
new file mode 100644
index 0000000..5e194ff
--- /dev/null
+++ b/test/tint/bug/chromium/1341475.wgsl.expected.msl
@@ -0,0 +1,8 @@
+#include <metal_stdlib>
+
+using namespace metal;
+kernel void tint_symbol() {
+ mix(1.0f, 1.0f, 1.0f);
+ return;
+}
+
diff --git a/test/tint/bug/chromium/1341475.wgsl.expected.spvasm b/test/tint/bug/chromium/1341475.wgsl.expected.spvasm
new file mode 100644
index 0000000..784c1de
--- /dev/null
+++ b/test/tint/bug/chromium/1341475.wgsl.expected.spvasm
@@ -0,0 +1,20 @@
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 0
+; Bound: 9
+; Schema: 0
+ OpCapability Shader
+ %7 = OpExtInstImport "GLSL.std.450"
+ OpMemoryModel Logical GLSL450
+ OpEntryPoint GLCompute %main "main"
+ OpExecutionMode %main LocalSize 1 1 1
+ OpName %main "main"
+ %void = OpTypeVoid
+ %1 = OpTypeFunction %void
+ %float = OpTypeFloat 32
+ %float_1 = OpConstant %float 1
+ %main = OpFunction %void None %1
+ %4 = OpLabel
+ %5 = OpExtInst %float %7 FMix %float_1 %float_1 %float_1
+ OpReturn
+ OpFunctionEnd
diff --git a/test/tint/bug/chromium/1341475.wgsl.expected.wgsl b/test/tint/bug/chromium/1341475.wgsl.expected.wgsl
new file mode 100644
index 0000000..f77126b
--- /dev/null
+++ b/test/tint/bug/chromium/1341475.wgsl.expected.wgsl
@@ -0,0 +1,4 @@
+@compute @workgroup_size(1)
+fn main() {
+ _ = mix(1.0, vec2(1.0).y, 1.0);
+}
diff --git a/test/tint/bug/tint/749.spvasm.expected.glsl b/test/tint/bug/tint/749.spvasm.expected.glsl
index 96a7c14..ea9ce91 100644
--- a/test/tint/bug/tint/749.spvasm.expected.glsl
+++ b/test/tint/bug/tint/749.spvasm.expected.glsl
@@ -22,7 +22,7 @@
int x_932 = temp;
temp = 0;
temp = x_932;
- vec3 x_523 = vec3(vec3(1.0f, 2.0f, 3.0f).z, vec3(1.0f, 2.0f, 3.0f).y, vec3(1.0f, 2.0f, 3.0f).z);
+ vec3 x_523 = vec3(3.0f, 2.0f, 3.0f);
int x_933 = i;
i = 0;
i = x_933;
@@ -46,7 +46,7 @@
int x_938 = j;
j = 0;
j = x_938;
- vec3 x_525 = vec3(x_523.z, vec3(1.0f, 2.0f, 3.0f).x, x_523.y);
+ vec3 x_525 = vec3(x_523.z, 1.0f, x_523.y);
int x_939 = i;
i = 0;
i = x_939;
@@ -136,7 +136,7 @@
int x_955 = param_3;
param_3 = 0;
param_3 = x_955;
- vec3 x_534 = vec3(vec3(1.0f, 2.0f, 3.0f).z, vec3(1.0f, 2.0f, 3.0f).x, vec3(1.0f, 2.0f, 3.0f).z);
+ vec3 x_534 = vec3(3.0f, 1.0f, 3.0f);
int x_956 = param_1;
param_1 = 0;
param_1 = x_956;
@@ -172,7 +172,7 @@
int x_963 = pivot;
pivot = 0;
pivot = x_963;
- x_537 = vec2(vec3(1.0f, 2.0f, 3.0f).y, vec3(1.0f, 2.0f, 3.0f).z);
+ x_537 = vec2(2.0f, 3.0f);
QuicksortObject x_964 = obj;
int tint_symbol_11[10] = int[10](0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
QuicksortObject tint_symbol_12 = QuicksortObject(tint_symbol_11);
@@ -215,7 +215,7 @@
obj = tint_symbol_14;
obj = x_972;
int x_63 = pivot;
- vec2 x_540 = vec2(vec3(1.0f, 2.0f, 3.0f).y, x_534.z);
+ vec2 x_540 = vec2(2.0f, x_534.z);
int x_973 = i_1;
i_1 = 0;
i_1 = x_973;
@@ -246,7 +246,7 @@
int x_980 = l;
l = 0;
l = x_980;
- vec3 x_544 = vec3(vec3(1.0f, 2.0f, 3.0f).z, vec3(1.0f, 2.0f, 3.0f).y, x_540.x);
+ vec3 x_544 = vec3(3.0f, 2.0f, x_540.x);
int x_70 = i_1;
vec2 x_545 = vec2(x_537.y, x_538.x);
int x_981 = param;
@@ -346,7 +346,7 @@
int x_1003 = l;
l = 0;
l = x_1003;
- vec2 x_554 = vec2(x_536.z, vec3(1.0f, 2.0f, 3.0f).y);
+ vec2 x_554 = vec2(x_536.z, 2.0f);
int x_1004 = param_1;
param_1 = 0;
param_1 = x_1004;
@@ -378,7 +378,7 @@
int tint_symbol_19[10] = int[10](0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
stack = tint_symbol_19;
stack = x_1008;
- vec2 x_556 = vec2(vec3(1.0f, 2.0f, 3.0f).y, vec3(1.0f, 2.0f, 3.0f).y);
+ vec2 x_556 = vec2(2.0f);
int x_1009 = param_5;
param_5 = 0;
param_5 = x_1009;
@@ -387,7 +387,7 @@
p = 0;
p = x_1010;
int x_93 = top;
- vec2 x_557 = vec2(vec3(1.0f, 2.0f, 3.0f).x, vec3(1.0f, 2.0f, 3.0f).x);
+ vec2 x_557 = vec2(1.0f);
int x_1011 = p;
p = 0;
p = x_1011;
@@ -431,7 +431,7 @@
int x_1020 = param_4;
param_4 = 0;
param_4 = x_1020;
- vec3 x_562 = vec3(vec3(1.0f, 2.0f, 3.0f).z, x_558.y, vec3(1.0f, 2.0f, 3.0f).y);
+ vec3 x_562 = vec3(3.0f, x_558.y, 2.0f);
int x_1021 = stack[x_96_save];
stack[x_96_save] = 0;
stack[x_96_save] = x_1021;
@@ -534,7 +534,7 @@
int x_1043 = stack[x_100_save];
stack[x_100_save] = 0;
stack[x_100_save] = x_1043;
- vec2 x_573 = vec2(vec3(1.0f, 2.0f, 3.0f).y, vec3(1.0f, 2.0f, 3.0f).z);
+ vec2 x_573 = vec2(2.0f, 3.0f);
top = (x_112 - 1);
int x_1044 = param_5;
param_5 = 0;
@@ -566,7 +566,7 @@
stack[x_110_save] = x_1050;
vec2 x_577 = vec2(x_569.y, x_569.z);
int x_120 = h_1;
- vec2 x_578 = vec2(x_558.x, vec3(1.0f, 2.0f, 3.0f).y);
+ vec2 x_578 = vec2(x_558.x, 2.0f);
param_5 = x_120;
int x_1051 = stack[x_100_save];
stack[x_100_save] = 0;
@@ -676,7 +676,7 @@
int x_1076 = stack[x_96_save];
stack[x_96_save] = 0;
stack[x_96_save] = x_1076;
- vec2 x_592 = vec2(vec3(1.0f, 2.0f, 3.0f).x, vec3(1.0f, 2.0f, 3.0f).y);
+ vec2 x_592 = vec2(1.0f, 2.0f);
QuicksortObject x_1077 = obj;
int tint_symbol_31[10] = int[10](0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
QuicksortObject tint_symbol_32 = QuicksortObject(tint_symbol_31);
@@ -821,7 +821,7 @@
QuicksortObject tint_symbol_40 = QuicksortObject(tint_symbol_39);
obj = tint_symbol_40;
obj = x_722;
- vec2 x_431 = vec2(vec3(1.0f, 2.0f, 3.0f).x, vec3(1.0f, 2.0f, 3.0f).x);
+ vec2 x_431 = vec2(1.0f);
int x_158 = i_2;
vec2 x_723 = uv;
uv = vec2(0.0f);
@@ -841,7 +841,7 @@
QuicksortObject tint_symbol_44 = QuicksortObject(tint_symbol_43);
obj = tint_symbol_44;
obj = x_756;
- vec2 x_446 = vec2(vec2(0.0f).x, vec2(0.0f).x);
+ vec2 x_446 = vec2(0.0f);
int x_757 = i_2;
i_2 = 0;
i_2 = x_757;
@@ -855,7 +855,7 @@
vec2 x_759 = uv;
uv = vec2(0.0f);
uv = x_759;
- vec2 x_447 = vec2(vec2(0.0f).y, vec2(0.0f).y);
+ vec2 x_447 = vec2(0.0f);
vec2 x_760 = uv;
uv = vec2(0.0f);
uv = x_760;
@@ -875,7 +875,7 @@
QuicksortObject tint_symbol_50 = QuicksortObject(tint_symbol_49);
obj = tint_symbol_50;
obj = x_763;
- vec3 x_449 = vec3(x_184.y, vec3(1.0f, 2.0f, 3.0f).z, x_184.w);
+ vec3 x_449 = vec3(x_184.y, 3.0f, x_184.w);
vec3 x_764 = color;
color = vec3(0.0f);
color = x_764;
@@ -919,7 +919,7 @@
float x_773 = color.x;
color.x = 0.0f;
color.x = x_773;
- vec2 x_452 = vec2(vec3(1.0f, 2.0f, 3.0f).z, vec3(1.0f, 2.0f, 3.0f).y);
+ vec2 x_452 = vec2(3.0f, 2.0f);
int x_774 = i_2;
i_2 = 0;
i_2 = x_774;
@@ -954,7 +954,7 @@
int x_781 = obj.numbers[0u];
obj.numbers[0u] = 0;
obj.numbers[0u] = x_781;
- vec3 x_456 = vec3(vec2(0.0f).y, x_448.y, x_448.y);
+ vec3 x_456 = vec3(0.0f, x_448.y, x_448.y);
float x_782 = uv.x;
uv.x = 0.0f;
uv.x = x_782;
@@ -973,7 +973,7 @@
QuicksortObject tint_symbol_64 = QuicksortObject(tint_symbol_63);
obj = tint_symbol_64;
obj = x_785;
- vec2 x_458 = vec2(vec3(1.0f, 2.0f, 3.0f).z, vec2(0.0f).y);
+ vec2 x_458 = vec2(3.0f, 0.0f);
int x_786 = i_2;
i_2 = 0;
i_2 = x_786;
@@ -1013,7 +1013,7 @@
float x_796 = uv.x;
uv.x = 0.0f;
uv.x = x_796;
- vec2 x_461 = vec2(vec2(0.0f).y, vec2(0.0f).y);
+ vec2 x_461 = vec2(0.0f);
float x_797 = uv.x;
uv.x = 0.0f;
uv.x = x_797;
@@ -1057,7 +1057,7 @@
int x_808 = i_2;
i_2 = 0;
i_2 = x_808;
- vec2 x_466 = vec2(x_455.y, vec2(0.0f).y);
+ vec2 x_466 = vec2(x_455.y, 0.0f);
int x_809 = i_2;
i_2 = 0;
i_2 = x_809;
@@ -1111,7 +1111,7 @@
int x_822 = obj.numbers[0u];
obj.numbers[0u] = 0;
obj.numbers[0u] = x_822;
- vec2 x_470 = vec2(vec2(0.0f).x, vec2(0.0f).y);
+ vec2 x_470 = vec2(0.0f);
float x_823 = color.z;
color.z = 0.0f;
color.z = x_823;
@@ -1153,7 +1153,7 @@
color.x = x_832;
vec2 x_476 = vec2(x_451.z, x_460.y);
color.y = (x_257 + float(x_254));
- vec3 x_477 = vec3(vec2(0.0f).x, x_472.x, vec2(0.0f).y);
+ vec3 x_477 = vec3(0.0f, x_472.x, 0.0f);
float x_833 = uv.x;
uv.x = 0.0f;
uv.x = x_833;
@@ -1168,14 +1168,14 @@
int x_836 = i_2;
i_2 = 0;
i_2 = x_836;
- vec3 x_479 = vec3(vec2(0.0f).y, x_454.y, vec2(0.0f).x);
+ vec3 x_479 = vec3(0.0f, x_454.y, 0.0f);
int x_837 = obj.numbers[0u];
obj.numbers[0u] = 0;
obj.numbers[0u] = x_837;
float x_838 = color.y;
color.y = 0.0f;
color.y = x_838;
- vec3 x_480 = vec3(x_446.x, x_446.x, vec2(0.0f).y);
+ vec3 x_480 = vec3(x_446.x, x_446.x, 0.0f);
float x_839 = uv.x;
uv.x = 0.0f;
uv.x = x_839;
@@ -1281,7 +1281,7 @@
float x_865 = color.x;
color.x = 0.0f;
color.x = x_865;
- vec2 x_491 = vec2(vec3(1.0f, 2.0f, 3.0f).y, x_454.x);
+ vec2 x_491 = vec2(2.0f, x_454.x);
float x_866 = color.y;
color.y = 0.0f;
color.y = x_866;
@@ -1382,7 +1382,7 @@
float x_891 = color.y;
color.y = 0.0f;
color.y = x_891;
- vec2 x_504 = vec2(x_453.y, vec2(0.0f).x);
+ vec2 x_504 = vec2(x_453.y, 0.0f);
float x_892 = color.x;
color.x = 0.0f;
color.x = x_892;
@@ -1431,7 +1431,7 @@
float x_904 = color.z;
color.z = 0.0f;
color.z = x_904;
- vec3 x_510 = vec3(vec3(1.0f, 2.0f, 3.0f).y, x_485.y, x_485.z);
+ vec3 x_510 = vec3(2.0f, x_485.y, x_485.z);
float x_905 = color.z;
color.z = 0.0f;
color.z = x_905;
@@ -1485,7 +1485,7 @@
float x_918 = uv.x;
uv.x = 0.0f;
uv.x = x_918;
- vec3 x_517 = vec3(vec2(0.0f).x, vec2(0.0f).x, vec2(0.0f).y);
+ vec3 x_517 = vec3(0.0f);
color.x = (float(x_317) + x_320);
float x_919 = color.x;
color.x = 0.0f;
@@ -1528,7 +1528,7 @@
float x_928 = uv.y;
uv.y = 0.0f;
uv.y = x_928;
- vec3 x_521 = vec3(vec3(1.0f, 2.0f, 3.0f).y, vec3(1.0f, 2.0f, 3.0f).y, x_520.y);
+ vec3 x_521 = vec3(2.0f, 2.0f, x_520.y);
float x_929 = uv.x;
uv.x = 0.0f;
uv.x = x_929;
diff --git a/test/tint/bug/tint/749.spvasm.expected.hlsl b/test/tint/bug/tint/749.spvasm.expected.hlsl
index 3208c15..8605266 100644
--- a/test/tint/bug/tint/749.spvasm.expected.hlsl
+++ b/test/tint/bug/tint/749.spvasm.expected.hlsl
@@ -14,7 +14,7 @@
const int x_932 = temp;
temp = 0;
temp = x_932;
- const float3 x_523 = float3(float3(1.0f, 2.0f, 3.0f).z, float3(1.0f, 2.0f, 3.0f).y, float3(1.0f, 2.0f, 3.0f).z);
+ const float3 x_523 = float3(3.0f, 2.0f, 3.0f);
const int x_933 = i;
i = 0;
i = x_933;
@@ -46,7 +46,7 @@
const int x_938 = j;
j = 0;
j = x_938;
- const float3 x_525 = float3(x_523.z, float3(1.0f, 2.0f, 3.0f).x, x_523.y);
+ const float3 x_525 = float3(x_523.z, 1.0f, x_523.y);
const int x_939 = i;
i = 0;
i = x_939;
@@ -192,7 +192,7 @@
const int x_955 = param_3;
param_3 = 0;
param_3 = x_955;
- const float3 x_534 = float3(float3(1.0f, 2.0f, 3.0f).z, float3(1.0f, 2.0f, 3.0f).x, float3(1.0f, 2.0f, 3.0f).z);
+ const float3 x_534 = float3(3.0f, 1.0f, 3.0f);
const int x_956 = param_1;
param_1 = 0;
param_1 = x_956;
@@ -228,7 +228,7 @@
const int x_963 = pivot;
pivot = 0;
pivot = x_963;
- x_537 = float2(float3(1.0f, 2.0f, 3.0f).y, float3(1.0f, 2.0f, 3.0f).z);
+ x_537 = float2(2.0f, 3.0f);
const QuicksortObject x_964 = obj;
const int tint_symbol_60[10] = (int[10])0;
const QuicksortObject tint_symbol_61 = {tint_symbol_60};
@@ -279,7 +279,7 @@
obj = tint_symbol_63;
obj = x_972;
const int x_63 = pivot;
- const float2 x_540 = float2(float3(1.0f, 2.0f, 3.0f).y, x_534.z);
+ const float2 x_540 = float2(2.0f, x_534.z);
const int x_973 = i_1;
i_1 = 0;
i_1 = x_973;
@@ -310,7 +310,7 @@
const int x_980 = l;
l = 0;
l = x_980;
- const float3 x_544 = float3(float3(1.0f, 2.0f, 3.0f).z, float3(1.0f, 2.0f, 3.0f).y, x_540.x);
+ const float3 x_544 = float3(3.0f, 2.0f, x_540.x);
const int x_70 = i_1;
const float2 x_545 = float2(x_537.y, x_538.x);
const int x_981 = param;
@@ -434,7 +434,7 @@
const int x_1003 = l;
l = 0;
l = x_1003;
- const float2 x_554 = float2(x_536.z, float3(1.0f, 2.0f, 3.0f).y);
+ const float2 x_554 = float2(x_536.z, 2.0f);
const int x_1004 = param_1;
param_1 = 0;
param_1 = x_1004;
@@ -466,7 +466,7 @@
const int tint_symbol_68[10] = (int[10])0;
stack = tint_symbol_68;
stack = x_1008;
- const float2 x_556 = float2(float3(1.0f, 2.0f, 3.0f).y, float3(1.0f, 2.0f, 3.0f).y);
+ const float2 x_556 = (2.0f).xx;
const int x_1009 = param_5;
param_5 = 0;
param_5 = x_1009;
@@ -475,7 +475,7 @@
p = 0;
p = x_1010;
const int x_93 = top;
- const float2 x_557 = float2(float3(1.0f, 2.0f, 3.0f).x, float3(1.0f, 2.0f, 3.0f).x);
+ const float2 x_557 = (1.0f).xx;
const int x_1011 = p;
p = 0;
p = x_1011;
@@ -519,7 +519,7 @@
const int x_1020 = param_4;
param_4 = 0;
param_4 = x_1020;
- const float3 x_562 = float3(float3(1.0f, 2.0f, 3.0f).z, x_558.y, float3(1.0f, 2.0f, 3.0f).y);
+ const float3 x_562 = float3(3.0f, x_558.y, 2.0f);
const int x_1021 = stack[x_96_save];
stack[x_96_save] = 0;
stack[x_96_save] = x_1021;
@@ -622,7 +622,7 @@
const int x_1043 = stack[x_100_save];
stack[x_100_save] = 0;
stack[x_100_save] = x_1043;
- const float2 x_573 = float2(float3(1.0f, 2.0f, 3.0f).y, float3(1.0f, 2.0f, 3.0f).z);
+ const float2 x_573 = float2(2.0f, 3.0f);
top = (x_112 - 1);
const int x_1044 = param_5;
param_5 = 0;
@@ -654,7 +654,7 @@
stack[x_110_save] = x_1050;
const float2 x_577 = float2(x_569.y, x_569.z);
const int x_120 = h_1;
- const float2 x_578 = float2(x_558.x, float3(1.0f, 2.0f, 3.0f).y);
+ const float2 x_578 = float2(x_558.x, 2.0f);
param_5 = x_120;
const int x_1051 = stack[x_100_save];
stack[x_100_save] = 0;
@@ -764,7 +764,7 @@
const int x_1076 = stack[x_96_save];
stack[x_96_save] = 0;
stack[x_96_save] = x_1076;
- const float2 x_592 = float2(float3(1.0f, 2.0f, 3.0f).x, float3(1.0f, 2.0f, 3.0f).y);
+ const float2 x_592 = float2(1.0f, 2.0f);
const QuicksortObject x_1077 = obj;
const int tint_symbol_80[10] = (int[10])0;
const QuicksortObject tint_symbol_81 = {tint_symbol_80};
@@ -909,7 +909,7 @@
const QuicksortObject tint_symbol_89 = {tint_symbol_88};
obj = tint_symbol_89;
obj = x_722;
- const float2 x_431 = float2(float3(1.0f, 2.0f, 3.0f).x, float3(1.0f, 2.0f, 3.0f).x);
+ const float2 x_431 = (1.0f).xx;
const int x_158 = i_2;
const float2 x_723 = uv;
uv = (0.0f).xx;
@@ -929,7 +929,7 @@
const QuicksortObject tint_symbol_93 = {tint_symbol_92};
obj = tint_symbol_93;
obj = x_756;
- const float2 x_446 = float2((0.0f).xx.x, (0.0f).xx.x);
+ const float2 x_446 = (0.0f).xx;
const int x_757 = i_2;
i_2 = 0;
i_2 = x_757;
@@ -943,7 +943,7 @@
const float2 x_759 = uv;
uv = (0.0f).xx;
uv = x_759;
- const float2 x_447 = float2((0.0f).xx.y, (0.0f).xx.y);
+ const float2 x_447 = (0.0f).xx;
const float2 x_760 = uv;
uv = (0.0f).xx;
uv = x_760;
@@ -963,7 +963,7 @@
const QuicksortObject tint_symbol_99 = {tint_symbol_98};
obj = tint_symbol_99;
obj = x_763;
- const float3 x_449 = float3(x_184.y, float3(1.0f, 2.0f, 3.0f).z, x_184.w);
+ const float3 x_449 = float3(x_184.y, 3.0f, x_184.w);
const float3 x_764 = color;
color = (0.0f).xxx;
color = x_764;
@@ -1007,7 +1007,7 @@
const float x_773 = color.x;
color.x = 0.0f;
color.x = x_773;
- const float2 x_452 = float2(float3(1.0f, 2.0f, 3.0f).z, float3(1.0f, 2.0f, 3.0f).y);
+ const float2 x_452 = float2(3.0f, 2.0f);
const int x_774 = i_2;
i_2 = 0;
i_2 = x_774;
@@ -1042,7 +1042,7 @@
const int x_781 = obj.numbers[0u];
obj.numbers[0u] = 0;
obj.numbers[0u] = x_781;
- const float3 x_456 = float3((0.0f).xx.y, x_448.y, x_448.y);
+ const float3 x_456 = float3(0.0f, x_448.y, x_448.y);
const float x_782 = uv.x;
uv.x = 0.0f;
uv.x = x_782;
@@ -1061,7 +1061,7 @@
const QuicksortObject tint_symbol_113 = {tint_symbol_112};
obj = tint_symbol_113;
obj = x_785;
- const float2 x_458 = float2(float3(1.0f, 2.0f, 3.0f).z, (0.0f).xx.y);
+ const float2 x_458 = float2(3.0f, 0.0f);
const int x_786 = i_2;
i_2 = 0;
i_2 = x_786;
@@ -1101,7 +1101,7 @@
const float x_796 = uv.x;
uv.x = 0.0f;
uv.x = x_796;
- const float2 x_461 = float2((0.0f).xx.y, (0.0f).xx.y);
+ const float2 x_461 = (0.0f).xx;
const float x_797 = uv.x;
uv.x = 0.0f;
uv.x = x_797;
@@ -1145,7 +1145,7 @@
const int x_808 = i_2;
i_2 = 0;
i_2 = x_808;
- const float2 x_466 = float2(x_455.y, (0.0f).xx.y);
+ const float2 x_466 = float2(x_455.y, 0.0f);
const int x_809 = i_2;
i_2 = 0;
i_2 = x_809;
@@ -1199,7 +1199,7 @@
const int x_822 = obj.numbers[0u];
obj.numbers[0u] = 0;
obj.numbers[0u] = x_822;
- const float2 x_470 = float2((0.0f).xx.x, (0.0f).xx.y);
+ const float2 x_470 = (0.0f).xx;
const float x_823 = color.z;
color.z = 0.0f;
color.z = x_823;
@@ -1241,7 +1241,7 @@
color.x = x_832;
const float2 x_476 = float2(x_451.z, x_460.y);
color.y = (x_257 + float(x_254));
- const float3 x_477 = float3((0.0f).xx.x, x_472.x, (0.0f).xx.y);
+ const float3 x_477 = float3(0.0f, x_472.x, 0.0f);
const float x_833 = uv.x;
uv.x = 0.0f;
uv.x = x_833;
@@ -1256,14 +1256,14 @@
const int x_836 = i_2;
i_2 = 0;
i_2 = x_836;
- const float3 x_479 = float3((0.0f).xx.y, x_454.y, (0.0f).xx.x);
+ const float3 x_479 = float3(0.0f, x_454.y, 0.0f);
const int x_837 = obj.numbers[0u];
obj.numbers[0u] = 0;
obj.numbers[0u] = x_837;
const float x_838 = color.y;
color.y = 0.0f;
color.y = x_838;
- const float3 x_480 = float3(x_446.x, x_446.x, (0.0f).xx.y);
+ const float3 x_480 = float3(x_446.x, x_446.x, 0.0f);
const float x_839 = uv.x;
uv.x = 0.0f;
uv.x = x_839;
@@ -1369,7 +1369,7 @@
const float x_865 = color.x;
color.x = 0.0f;
color.x = x_865;
- const float2 x_491 = float2(float3(1.0f, 2.0f, 3.0f).y, x_454.x);
+ const float2 x_491 = float2(2.0f, x_454.x);
const float x_866 = color.y;
color.y = 0.0f;
color.y = x_866;
@@ -1470,7 +1470,7 @@
const float x_891 = color.y;
color.y = 0.0f;
color.y = x_891;
- const float2 x_504 = float2(x_453.y, (0.0f).xx.x);
+ const float2 x_504 = float2(x_453.y, 0.0f);
const float x_892 = color.x;
color.x = 0.0f;
color.x = x_892;
@@ -1519,7 +1519,7 @@
const float x_904 = color.z;
color.z = 0.0f;
color.z = x_904;
- const float3 x_510 = float3(float3(1.0f, 2.0f, 3.0f).y, x_485.y, x_485.z);
+ const float3 x_510 = float3(2.0f, x_485.y, x_485.z);
const float x_905 = color.z;
color.z = 0.0f;
color.z = x_905;
@@ -1573,7 +1573,7 @@
const float x_918 = uv.x;
uv.x = 0.0f;
uv.x = x_918;
- const float3 x_517 = float3((0.0f).xx.x, (0.0f).xx.x, (0.0f).xx.y);
+ const float3 x_517 = (0.0f).xxx;
color.x = (float(x_317) + x_320);
const float x_919 = color.x;
color.x = 0.0f;
@@ -1616,7 +1616,7 @@
const float x_928 = uv.y;
uv.y = 0.0f;
uv.y = x_928;
- const float3 x_521 = float3(float3(1.0f, 2.0f, 3.0f).y, float3(1.0f, 2.0f, 3.0f).y, x_520.y);
+ const float3 x_521 = float3(2.0f, 2.0f, x_520.y);
const float x_929 = uv.x;
uv.x = 0.0f;
uv.x = x_929;
diff --git a/test/tint/bug/tint/749.spvasm.expected.msl b/test/tint/bug/tint/749.spvasm.expected.msl
index 88d8ef4..119081c 100644
--- a/test/tint/bug/tint/749.spvasm.expected.msl
+++ b/test/tint/bug/tint/749.spvasm.expected.msl
@@ -27,7 +27,7 @@
int const x_932 = temp;
temp = 0;
temp = x_932;
- float3 const x_523 = float3(float3(1.0f, 2.0f, 3.0f)[2], float3(1.0f, 2.0f, 3.0f)[1], float3(1.0f, 2.0f, 3.0f)[2]);
+ float3 const x_523 = float3(3.0f, 2.0f, 3.0f);
int const x_933 = *(i);
*(i) = 0;
*(i) = x_933;
@@ -51,7 +51,7 @@
int const x_938 = *(j);
*(j) = 0;
*(j) = x_938;
- float3 const x_525 = float3(x_523[2], float3(1.0f, 2.0f, 3.0f)[0], x_523[1]);
+ float3 const x_525 = float3(x_523[2], 1.0f, x_523[1]);
int const x_939 = *(i);
*(i) = 0;
*(i) = x_939;
@@ -141,7 +141,7 @@
int const x_955 = param_3;
param_3 = 0;
param_3 = x_955;
- float3 const x_534 = float3(float3(1.0f, 2.0f, 3.0f)[2], float3(1.0f, 2.0f, 3.0f)[0], float3(1.0f, 2.0f, 3.0f)[2]);
+ float3 const x_534 = float3(3.0f, 1.0f, 3.0f);
int const x_956 = param_1;
param_1 = 0;
param_1 = x_956;
@@ -177,7 +177,7 @@
int const x_963 = pivot;
pivot = 0;
pivot = x_963;
- x_537 = float2(float3(1.0f, 2.0f, 3.0f)[1], float3(1.0f, 2.0f, 3.0f)[2]);
+ x_537 = float2(2.0f, 3.0f);
QuicksortObject const x_964 = *(tint_symbol_82);
tint_array<int, 10> const tint_symbol_10 = tint_array<int, 10>{};
QuicksortObject const tint_symbol_11 = {.numbers=tint_symbol_10};
@@ -220,7 +220,7 @@
*(tint_symbol_82) = tint_symbol_13;
*(tint_symbol_82) = x_972;
int const x_63 = pivot;
- float2 const x_540 = float2(float3(1.0f, 2.0f, 3.0f)[1], x_534[2]);
+ float2 const x_540 = float2(2.0f, x_534[2]);
int const x_973 = i_1;
i_1 = 0;
i_1 = x_973;
@@ -251,7 +251,7 @@
int const x_980 = *(l);
*(l) = 0;
*(l) = x_980;
- float3 const x_544 = float3(float3(1.0f, 2.0f, 3.0f)[2], float3(1.0f, 2.0f, 3.0f)[1], x_540[0]);
+ float3 const x_544 = float3(3.0f, 2.0f, x_540[0]);
int const x_70 = i_1;
float2 const x_545 = float2(x_537[1], x_538[0]);
int const x_981 = param;
@@ -352,7 +352,7 @@
int const x_1003 = *(l);
*(l) = 0;
*(l) = x_1003;
- float2 const x_554 = float2(x_536[2], float3(1.0f, 2.0f, 3.0f)[1]);
+ float2 const x_554 = float2(x_536[2], 2.0f);
int const x_1004 = param_1;
param_1 = 0;
param_1 = x_1004;
@@ -384,7 +384,7 @@
tint_array<int, 10> const tint_symbol_18 = tint_array<int, 10>{};
stack = tint_symbol_18;
stack = x_1008;
- float2 const x_556 = float2(float3(1.0f, 2.0f, 3.0f)[1], float3(1.0f, 2.0f, 3.0f)[1]);
+ float2 const x_556 = float2(2.0f);
int const x_1009 = param_5;
param_5 = 0;
param_5 = x_1009;
@@ -393,7 +393,7 @@
p = 0;
p = x_1010;
int const x_93 = top;
- float2 const x_557 = float2(float3(1.0f, 2.0f, 3.0f)[0], float3(1.0f, 2.0f, 3.0f)[0]);
+ float2 const x_557 = float2(1.0f);
int const x_1011 = p;
p = 0;
p = x_1011;
@@ -437,7 +437,7 @@
int const x_1020 = param_4;
param_4 = 0;
param_4 = x_1020;
- float3 const x_562 = float3(float3(1.0f, 2.0f, 3.0f)[2], x_558[1], float3(1.0f, 2.0f, 3.0f)[1]);
+ float3 const x_562 = float3(3.0f, x_558[1], 2.0f);
int const x_1021 = stack[x_96_save];
stack[x_96_save] = 0;
stack[x_96_save] = x_1021;
@@ -540,7 +540,7 @@
int const x_1043 = stack[x_100_save];
stack[x_100_save] = 0;
stack[x_100_save] = x_1043;
- float2 const x_573 = float2(float3(1.0f, 2.0f, 3.0f)[1], float3(1.0f, 2.0f, 3.0f)[2]);
+ float2 const x_573 = float2(2.0f, 3.0f);
top = as_type<int>((as_type<uint>(x_112) - as_type<uint>(1)));
int const x_1044 = param_5;
param_5 = 0;
@@ -573,7 +573,7 @@
stack[x_110_save] = x_1050;
float2 const x_577 = float2(x_569[1], x_569[2]);
int const x_120 = h_1;
- float2 const x_578 = float2(x_558[0], float3(1.0f, 2.0f, 3.0f)[1]);
+ float2 const x_578 = float2(x_558[0], 2.0f);
param_5 = x_120;
int const x_1051 = stack[x_100_save];
stack[x_100_save] = 0;
@@ -683,7 +683,7 @@
int const x_1076 = stack[x_96_save];
stack[x_96_save] = 0;
stack[x_96_save] = x_1076;
- float2 const x_592 = float2(float3(1.0f, 2.0f, 3.0f)[0], float3(1.0f, 2.0f, 3.0f)[1]);
+ float2 const x_592 = float2(1.0f, 2.0f);
QuicksortObject const x_1077 = *(tint_symbol_83);
tint_array<int, 10> const tint_symbol_30 = tint_array<int, 10>{};
QuicksortObject const tint_symbol_31 = {.numbers=tint_symbol_30};
@@ -828,7 +828,7 @@
QuicksortObject const tint_symbol_39 = {.numbers=tint_symbol_38};
*(tint_symbol_84) = tint_symbol_39;
*(tint_symbol_84) = x_722;
- float2 const x_431 = float2(float3(1.0f, 2.0f, 3.0f)[0], float3(1.0f, 2.0f, 3.0f)[0]);
+ float2 const x_431 = float2(1.0f);
int const x_158 = i_2;
float2 const x_723 = uv;
uv = float2(0.0f);
@@ -848,7 +848,7 @@
QuicksortObject const tint_symbol_43 = {.numbers=tint_symbol_42};
*(tint_symbol_84) = tint_symbol_43;
*(tint_symbol_84) = x_756;
- float2 const x_446 = float2(float2(0.0f)[0], float2(0.0f)[0]);
+ float2 const x_446 = float2(0.0f);
int const x_757 = i_2;
i_2 = 0;
i_2 = x_757;
@@ -862,7 +862,7 @@
float2 const x_759 = uv;
uv = float2(0.0f);
uv = x_759;
- float2 const x_447 = float2(float2(0.0f)[1], float2(0.0f)[1]);
+ float2 const x_447 = float2(0.0f);
float2 const x_760 = uv;
uv = float2(0.0f);
uv = x_760;
@@ -882,7 +882,7 @@
QuicksortObject const tint_symbol_49 = {.numbers=tint_symbol_48};
*(tint_symbol_84) = tint_symbol_49;
*(tint_symbol_84) = x_763;
- float3 const x_449 = float3(x_184[1], float3(1.0f, 2.0f, 3.0f)[2], x_184[3]);
+ float3 const x_449 = float3(x_184[1], 3.0f, x_184[3]);
float3 const x_764 = color;
color = float3(0.0f);
color = x_764;
@@ -926,7 +926,7 @@
float const x_773 = color[0];
color[0] = 0.0f;
color[0] = x_773;
- float2 const x_452 = float2(float3(1.0f, 2.0f, 3.0f)[2], float3(1.0f, 2.0f, 3.0f)[1]);
+ float2 const x_452 = float2(3.0f, 2.0f);
int const x_774 = i_2;
i_2 = 0;
i_2 = x_774;
@@ -961,7 +961,7 @@
int const x_781 = (*(tint_symbol_84)).numbers[0u];
(*(tint_symbol_84)).numbers[0u] = 0;
(*(tint_symbol_84)).numbers[0u] = x_781;
- float3 const x_456 = float3(float2(0.0f)[1], x_448[1], x_448[1]);
+ float3 const x_456 = float3(0.0f, x_448[1], x_448[1]);
float const x_782 = uv[0];
uv[0] = 0.0f;
uv[0] = x_782;
@@ -980,7 +980,7 @@
QuicksortObject const tint_symbol_63 = {.numbers=tint_symbol_62};
*(tint_symbol_84) = tint_symbol_63;
*(tint_symbol_84) = x_785;
- float2 const x_458 = float2(float3(1.0f, 2.0f, 3.0f)[2], float2(0.0f)[1]);
+ float2 const x_458 = float2(3.0f, 0.0f);
int const x_786 = i_2;
i_2 = 0;
i_2 = x_786;
@@ -1020,7 +1020,7 @@
float const x_796 = uv[0];
uv[0] = 0.0f;
uv[0] = x_796;
- float2 const x_461 = float2(float2(0.0f)[1], float2(0.0f)[1]);
+ float2 const x_461 = float2(0.0f);
float const x_797 = uv[0];
uv[0] = 0.0f;
uv[0] = x_797;
@@ -1064,7 +1064,7 @@
int const x_808 = i_2;
i_2 = 0;
i_2 = x_808;
- float2 const x_466 = float2(x_455[1], float2(0.0f)[1]);
+ float2 const x_466 = float2(x_455[1], 0.0f);
int const x_809 = i_2;
i_2 = 0;
i_2 = x_809;
@@ -1118,7 +1118,7 @@
int const x_822 = (*(tint_symbol_84)).numbers[0u];
(*(tint_symbol_84)).numbers[0u] = 0;
(*(tint_symbol_84)).numbers[0u] = x_822;
- float2 const x_470 = float2(float2(0.0f)[0], float2(0.0f)[1]);
+ float2 const x_470 = float2(0.0f);
float const x_823 = color[2];
color[2] = 0.0f;
color[2] = x_823;
@@ -1160,7 +1160,7 @@
color[0] = x_832;
float2 const x_476 = float2(x_451[2], x_460[1]);
color[1] = (x_257 + float(x_254));
- float3 const x_477 = float3(float2(0.0f)[0], x_472[0], float2(0.0f)[1]);
+ float3 const x_477 = float3(0.0f, x_472[0], 0.0f);
float const x_833 = uv[0];
uv[0] = 0.0f;
uv[0] = x_833;
@@ -1175,14 +1175,14 @@
int const x_836 = i_2;
i_2 = 0;
i_2 = x_836;
- float3 const x_479 = float3(float2(0.0f)[1], x_454[1], float2(0.0f)[0]);
+ float3 const x_479 = float3(0.0f, x_454[1], 0.0f);
int const x_837 = (*(tint_symbol_84)).numbers[0u];
(*(tint_symbol_84)).numbers[0u] = 0;
(*(tint_symbol_84)).numbers[0u] = x_837;
float const x_838 = color[1];
color[1] = 0.0f;
color[1] = x_838;
- float3 const x_480 = float3(x_446[0], x_446[0], float2(0.0f)[1]);
+ float3 const x_480 = float3(x_446[0], x_446[0], 0.0f);
float const x_839 = uv[0];
uv[0] = 0.0f;
uv[0] = x_839;
@@ -1288,7 +1288,7 @@
float const x_865 = color[0];
color[0] = 0.0f;
color[0] = x_865;
- float2 const x_491 = float2(float3(1.0f, 2.0f, 3.0f)[1], x_454[0]);
+ float2 const x_491 = float2(2.0f, x_454[0]);
float const x_866 = color[1];
color[1] = 0.0f;
color[1] = x_866;
@@ -1389,7 +1389,7 @@
float const x_891 = color[1];
color[1] = 0.0f;
color[1] = x_891;
- float2 const x_504 = float2(x_453[1], float2(0.0f)[0]);
+ float2 const x_504 = float2(x_453[1], 0.0f);
float const x_892 = color[0];
color[0] = 0.0f;
color[0] = x_892;
@@ -1438,7 +1438,7 @@
float const x_904 = color[2];
color[2] = 0.0f;
color[2] = x_904;
- float3 const x_510 = float3(float3(1.0f, 2.0f, 3.0f)[1], x_485[1], x_485[2]);
+ float3 const x_510 = float3(2.0f, x_485[1], x_485[2]);
float const x_905 = color[2];
color[2] = 0.0f;
color[2] = x_905;
@@ -1492,7 +1492,7 @@
float const x_918 = uv[0];
uv[0] = 0.0f;
uv[0] = x_918;
- float3 const x_517 = float3(float2(0.0f)[0], float2(0.0f)[0], float2(0.0f)[1]);
+ float3 const x_517 = float3(0.0f);
color[0] = (float(x_317) + x_320);
float const x_919 = color[0];
color[0] = 0.0f;
@@ -1535,7 +1535,7 @@
float const x_928 = uv[1];
uv[1] = 0.0f;
uv[1] = x_928;
- float3 const x_521 = float3(float3(1.0f, 2.0f, 3.0f)[1], float3(1.0f, 2.0f, 3.0f)[1], x_520[1]);
+ float3 const x_521 = float3(2.0f, 2.0f, x_520[1]);
float const x_929 = uv[0];
uv[0] = 0.0f;
uv[0] = x_929;
diff --git a/test/tint/bug/tint/749.spvasm.expected.spvasm b/test/tint/bug/tint/749.spvasm.expected.spvasm
index cb9afaa..70a28b1 100644
--- a/test/tint/bug/tint/749.spvasm.expected.spvasm
+++ b/test/tint/bug/tint/749.spvasm.expected.spvasm
@@ -1,10 +1,10 @@
; SPIR-V
; Version: 1.3
; Generator: Google Tint Compiler; 0
-; Bound: 1830
+; Bound: 1769
; Schema: 0
OpCapability Shader
- %1691 = OpExtInstImport "GLSL.std.450"
+ %1636 = OpExtInstImport "GLSL.std.450"
OpMemoryModel Logical GLSL450
OpEntryPoint Fragment %main "main" %gl_FragCoord_param_1 %x_GLF_color_1_1
OpExecutionMode %main OriginUpperLeft
@@ -88,33 +88,41 @@
%23 = OpTypeFunction %void %_ptr_Function_int %_ptr_Function_int
%31 = OpConstantNull %int
%v3float = OpTypeVector %float 3
- %float_1 = OpConstant %float 1
- %float_2 = OpConstant %float 2
%float_3 = OpConstant %float 3
- %37 = OpConstantComposite %v3float %float_1 %float_2 %float_3
+ %float_2 = OpConstant %float 2
+ %36 = OpConstantComposite %v3float %float_3 %float_2 %float_3
%uint_0 = OpConstant %uint 0
%_ptr_Private_int = OpTypePointer Private %int
- %101 = OpConstantNull %_arr_int_uint_10
- %102 = OpConstantComposite %QuicksortObject %101
- %153 = OpTypeFunction %int %_ptr_Function_int %_ptr_Function_int
+ %float_1 = OpConstant %float 1
+ %96 = OpConstantNull %_arr_int_uint_10
+ %97 = OpConstantComposite %QuicksortObject %96
+ %148 = OpTypeFunction %int %_ptr_Function_int %_ptr_Function_int
%_ptr_Function_v2float = OpTypePointer Function %v2float
- %167 = OpConstantNull %v2float
+ %162 = OpConstantNull %v2float
%_ptr_Function_v3float = OpTypePointer Function %v3float
- %170 = OpConstantNull %v3float
+ %165 = OpConstantNull %v3float
+ %183 = OpConstantComposite %v3float %float_3 %float_1 %float_3
%uint_1 = OpConstant %uint 1
%int_10 = OpConstant %int 10
+ %219 = OpConstantComposite %v2float %float_2 %float_3
%_ptr_Function_float = OpTypePointer Function %float
%bool = OpTypeBool
%int_1 = OpConstant %int 1
- %418 = OpTypeFunction %void
+ %404 = OpTypeFunction %void
%_ptr_Function__arr_int_uint_10 = OpTypePointer Function %_arr_int_uint_10
%int_9 = OpConstant %int 9
+ %418 = OpConstantComposite %v2float %float_2 %float_2
%int_n1 = OpConstant %int -1
- %520 = OpConstantNull %uint
+ %423 = OpConstantComposite %v2float %float_1 %float_1
+ %500 = OpConstantNull %uint
+ %710 = OpConstantComposite %v2float %float_1 %float_2
%true = OpConstantTrue %bool
%_ptr_Uniform_v2float = OpTypePointer Uniform %v2float
- %949 = OpConstantNull %float
+ %891 = OpConstantComposite %v3float %float_1 %float_2 %float_3
+ %914 = OpConstantNull %float
+ %916 = OpConstantComposite %v2float %float_3 %float_2
%float_0_25 = OpConstant %float 0.25
+ %965 = OpConstantComposite %v2float %float_3 %914
%float_0_5 = OpConstant %float 0.5
%uint_2 = OpConstant %uint 2
%float_0_75 = OpConstant %float 0.75
@@ -126,7 +134,7 @@
%int_8 = OpConstant %int 8
%uint_9 = OpConstant %uint 9
%main_out = OpTypeStruct %v4float
- %1817 = OpTypeFunction %main_out %v4float
+ %1756 = OpTypeFunction %main_out %v4float
%swap_i1_i1_ = OpFunction %void None %23
%i = OpFunctionParameter %_ptr_Function_int
%j = OpFunctionParameter %_ptr_Function_int
@@ -135,139 +143,134 @@
%32 = OpLoad %int %temp
OpStore %temp %31
OpStore %temp %32
- %38 = OpCompositeExtract %float %37 2
- %39 = OpCompositeExtract %float %37 1
- %40 = OpCompositeExtract %float %37 2
- %41 = OpCompositeConstruct %v3float %38 %39 %40
- %43 = OpLoad %int %i
+ %38 = OpLoad %int %i
OpStore %i %31
- OpStore %i %43
- %47 = OpLoad %int %i
- %49 = OpLoad %int %j
+ OpStore %i %38
+ %42 = OpLoad %int %i
+ %44 = OpLoad %int %j
OpStore %j %31
- OpStore %j %49
- %52 = OpCompositeExtract %float %41 1
- %53 = OpCompositeExtract %float %41 0
- %54 = OpCompositeExtract %float %41 1
- %55 = OpCompositeConstruct %v3float %52 %53 %54
- %56 = OpLoad %int %temp
+ OpStore %j %44
+ %47 = OpCompositeExtract %float %36 1
+ %48 = OpCompositeExtract %float %36 0
+ %49 = OpCompositeExtract %float %36 1
+ %50 = OpCompositeConstruct %v3float %47 %48 %49
+ %51 = OpLoad %int %temp
OpStore %temp %31
- OpStore %temp %56
- %59 = OpAccessChain %_ptr_Private_int %obj %uint_0 %47
- %60 = OpLoad %int %59
- %61 = OpAccessChain %_ptr_Private_int %obj %uint_0 %47
- OpStore %61 %31
- %62 = OpAccessChain %_ptr_Private_int %obj %uint_0 %47
- OpStore %62 %60
- %63 = OpAccessChain %_ptr_Private_int %obj %uint_0 %47
- %64 = OpLoad %int %63
- %65 = OpLoad %int %temp
+ OpStore %temp %51
+ %54 = OpAccessChain %_ptr_Private_int %obj %uint_0 %42
+ %55 = OpLoad %int %54
+ %56 = OpAccessChain %_ptr_Private_int %obj %uint_0 %42
+ OpStore %56 %31
+ %57 = OpAccessChain %_ptr_Private_int %obj %uint_0 %42
+ OpStore %57 %55
+ %58 = OpAccessChain %_ptr_Private_int %obj %uint_0 %42
+ %59 = OpLoad %int %58
+ %60 = OpLoad %int %temp
OpStore %temp %31
- OpStore %temp %65
- OpStore %temp %64
- %67 = OpLoad %int %j
+ OpStore %temp %60
+ OpStore %temp %59
+ %62 = OpLoad %int %j
OpStore %j %31
- OpStore %j %67
- %70 = OpCompositeExtract %float %41 2
- %71 = OpCompositeExtract %float %37 0
- %72 = OpCompositeExtract %float %41 1
- %73 = OpCompositeConstruct %v3float %70 %71 %72
- %75 = OpLoad %int %i
+ OpStore %j %62
+ %65 = OpCompositeExtract %float %36 2
+ %67 = OpCompositeExtract %float %36 1
+ %68 = OpCompositeConstruct %v3float %65 %float_1 %67
+ %70 = OpLoad %int %i
OpStore %i %31
- OpStore %i %75
- %79 = OpLoad %int %i
- %80 = OpAccessChain %_ptr_Private_int %obj %uint_0 %47
- %81 = OpLoad %int %80
- %82 = OpAccessChain %_ptr_Private_int %obj %uint_0 %47
- OpStore %82 %31
- %83 = OpAccessChain %_ptr_Private_int %obj %uint_0 %47
- OpStore %83 %81
- %85 = OpLoad %int %j
- %87 = OpLoad %int %i
+ OpStore %i %70
+ %74 = OpLoad %int %i
+ %75 = OpAccessChain %_ptr_Private_int %obj %uint_0 %42
+ %76 = OpLoad %int %75
+ %77 = OpAccessChain %_ptr_Private_int %obj %uint_0 %42
+ OpStore %77 %31
+ %78 = OpAccessChain %_ptr_Private_int %obj %uint_0 %42
+ OpStore %78 %76
+ %80 = OpLoad %int %j
+ %82 = OpLoad %int %i
OpStore %i %31
- OpStore %i %87
- %90 = OpCompositeExtract %float %73 0
- %91 = OpCompositeExtract %float %73 2
- %92 = OpCompositeExtract %float %73 2
- %93 = OpCompositeConstruct %v3float %90 %91 %92
- %94 = OpAccessChain %_ptr_Private_int %obj %uint_0 %47
- %95 = OpLoad %int %94
- %96 = OpAccessChain %_ptr_Private_int %obj %uint_0 %47
- OpStore %96 %31
- %97 = OpAccessChain %_ptr_Private_int %obj %uint_0 %47
- OpStore %97 %95
- %98 = OpAccessChain %_ptr_Private_int %obj %uint_0 %85
- %99 = OpLoad %int %98
- %100 = OpLoad %QuicksortObject %obj
- OpStore %obj %102
- OpStore %obj %100
- %103 = OpCompositeExtract %float %93 0
- %104 = OpCompositeExtract %float %93 0
- %105 = OpCompositeConstruct %v2float %103 %104
- %106 = OpCompositeExtract %float %55 0
- %107 = OpCompositeExtract %float %55 2
- %108 = OpCompositeExtract %float %55 0
- %109 = OpCompositeConstruct %v3float %106 %107 %108
- %110 = OpAccessChain %_ptr_Private_int %obj %uint_0 %79
- OpStore %110 %99
- %111 = OpLoad %QuicksortObject %obj
- OpStore %obj %102
- OpStore %obj %111
- %112 = OpCompositeExtract %float %93 1
- %113 = OpCompositeExtract %float %93 2
- %114 = OpCompositeExtract %float %93 0
- %115 = OpCompositeConstruct %v3float %112 %113 %114
- %117 = OpLoad %int %i
+ OpStore %i %82
+ %85 = OpCompositeExtract %float %68 0
+ %86 = OpCompositeExtract %float %68 2
+ %87 = OpCompositeExtract %float %68 2
+ %88 = OpCompositeConstruct %v3float %85 %86 %87
+ %89 = OpAccessChain %_ptr_Private_int %obj %uint_0 %42
+ %90 = OpLoad %int %89
+ %91 = OpAccessChain %_ptr_Private_int %obj %uint_0 %42
+ OpStore %91 %31
+ %92 = OpAccessChain %_ptr_Private_int %obj %uint_0 %42
+ OpStore %92 %90
+ %93 = OpAccessChain %_ptr_Private_int %obj %uint_0 %80
+ %94 = OpLoad %int %93
+ %95 = OpLoad %QuicksortObject %obj
+ OpStore %obj %97
+ OpStore %obj %95
+ %98 = OpCompositeExtract %float %88 0
+ %99 = OpCompositeExtract %float %88 0
+ %100 = OpCompositeConstruct %v2float %98 %99
+ %101 = OpCompositeExtract %float %50 0
+ %102 = OpCompositeExtract %float %50 2
+ %103 = OpCompositeExtract %float %50 0
+ %104 = OpCompositeConstruct %v3float %101 %102 %103
+ %105 = OpAccessChain %_ptr_Private_int %obj %uint_0 %74
+ OpStore %105 %94
+ %106 = OpLoad %QuicksortObject %obj
+ OpStore %obj %97
+ OpStore %obj %106
+ %107 = OpCompositeExtract %float %88 1
+ %108 = OpCompositeExtract %float %88 2
+ %109 = OpCompositeExtract %float %88 0
+ %110 = OpCompositeConstruct %v3float %107 %108 %109
+ %112 = OpLoad %int %i
OpStore %i %31
- OpStore %i %117
- %121 = OpLoad %int %j
- %122 = OpLoad %int %temp
+ OpStore %i %112
+ %116 = OpLoad %int %j
+ %117 = OpLoad %int %temp
OpStore %temp %31
- OpStore %temp %122
- %123 = OpCompositeExtract %float %115 2
- %124 = OpCompositeExtract %float %115 1
- %125 = OpCompositeConstruct %v2float %123 %124
- %126 = OpAccessChain %_ptr_Private_int %obj %uint_0 %85
- %127 = OpLoad %int %126
- %128 = OpAccessChain %_ptr_Private_int %obj %uint_0 %85
- OpStore %128 %31
- %129 = OpAccessChain %_ptr_Private_int %obj %uint_0 %85
- OpStore %129 %127
- %130 = OpLoad %int %temp
- %132 = OpLoad %int %j
+ OpStore %temp %117
+ %118 = OpCompositeExtract %float %110 2
+ %119 = OpCompositeExtract %float %110 1
+ %120 = OpCompositeConstruct %v2float %118 %119
+ %121 = OpAccessChain %_ptr_Private_int %obj %uint_0 %80
+ %122 = OpLoad %int %121
+ %123 = OpAccessChain %_ptr_Private_int %obj %uint_0 %80
+ OpStore %123 %31
+ %124 = OpAccessChain %_ptr_Private_int %obj %uint_0 %80
+ OpStore %124 %122
+ %125 = OpLoad %int %temp
+ %127 = OpLoad %int %j
OpStore %j %31
- OpStore %j %132
- %135 = OpCompositeExtract %float %105 0
- %136 = OpCompositeExtract %float %93 1
- %137 = OpCompositeExtract %float %93 0
- %138 = OpCompositeConstruct %v3float %135 %136 %137
- %139 = OpAccessChain %_ptr_Private_int %obj %uint_0 %79
- %140 = OpLoad %int %139
- %141 = OpAccessChain %_ptr_Private_int %obj %uint_0 %79
- OpStore %141 %31
- %142 = OpAccessChain %_ptr_Private_int %obj %uint_0 %79
- OpStore %142 %140
- %143 = OpLoad %QuicksortObject %obj
- OpStore %obj %102
- OpStore %obj %143
- %144 = OpCompositeExtract %float %109 0
- %145 = OpCompositeExtract %float %109 1
- %146 = OpCompositeExtract %float %109 0
- %147 = OpCompositeConstruct %v3float %144 %145 %146
- %148 = OpAccessChain %_ptr_Private_int %obj %uint_0 %85
- %149 = OpLoad %int %148
- %150 = OpAccessChain %_ptr_Private_int %obj %uint_0 %85
- OpStore %150 %31
- %151 = OpAccessChain %_ptr_Private_int %obj %uint_0 %85
- OpStore %151 %149
- %152 = OpAccessChain %_ptr_Private_int %obj %uint_0 %121
- OpStore %152 %130
+ OpStore %j %127
+ %130 = OpCompositeExtract %float %100 0
+ %131 = OpCompositeExtract %float %88 1
+ %132 = OpCompositeExtract %float %88 0
+ %133 = OpCompositeConstruct %v3float %130 %131 %132
+ %134 = OpAccessChain %_ptr_Private_int %obj %uint_0 %74
+ %135 = OpLoad %int %134
+ %136 = OpAccessChain %_ptr_Private_int %obj %uint_0 %74
+ OpStore %136 %31
+ %137 = OpAccessChain %_ptr_Private_int %obj %uint_0 %74
+ OpStore %137 %135
+ %138 = OpLoad %QuicksortObject %obj
+ OpStore %obj %97
+ OpStore %obj %138
+ %139 = OpCompositeExtract %float %104 0
+ %140 = OpCompositeExtract %float %104 1
+ %141 = OpCompositeExtract %float %104 0
+ %142 = OpCompositeConstruct %v3float %139 %140 %141
+ %143 = OpAccessChain %_ptr_Private_int %obj %uint_0 %80
+ %144 = OpLoad %int %143
+ %145 = OpAccessChain %_ptr_Private_int %obj %uint_0 %80
+ OpStore %145 %31
+ %146 = OpAccessChain %_ptr_Private_int %obj %uint_0 %80
+ OpStore %146 %144
+ %147 = OpAccessChain %_ptr_Private_int %obj %uint_0 %116
+ OpStore %147 %125
OpReturn
OpFunctionEnd
-%performPartition_i1_i1_ = OpFunction %int None %153
+%performPartition_i1_i1_ = OpFunction %int None %148
%l = OpFunctionParameter %_ptr_Function_int
%h = OpFunctionParameter %_ptr_Function_int
- %157 = OpLabel
+ %152 = OpLabel
%param_3 = OpVariable %_ptr_Function_int Function %31
%i_1 = OpVariable %_ptr_Function_int Function %31
%j_1 = OpVariable %_ptr_Function_int Function %31
@@ -275,2366 +278,2302 @@
%param_1 = OpVariable %_ptr_Function_int Function %31
%param = OpVariable %_ptr_Function_int Function %31
%pivot = OpVariable %_ptr_Function_int Function %31
- %x_537 = OpVariable %_ptr_Function_v2float Function %167
- %x_538 = OpVariable %_ptr_Function_v3float Function %170
- %172 = OpLoad %int %h
+ %x_537 = OpVariable %_ptr_Function_v2float Function %162
+ %x_538 = OpVariable %_ptr_Function_v3float Function %165
+ %167 = OpLoad %int %h
OpStore %h %31
- OpStore %h %172
- %176 = OpLoad %int %h
- %178 = OpLoad %int %l
+ OpStore %h %167
+ %171 = OpLoad %int %h
+ %173 = OpLoad %int %l
OpStore %l %31
- OpStore %l %178
- %181 = OpAccessChain %_ptr_Private_int %obj %uint_0 %176
- %182 = OpLoad %int %181
- %183 = OpAccessChain %_ptr_Private_int %obj %uint_0 %176
- OpStore %183 %31
- %184 = OpAccessChain %_ptr_Private_int %obj %uint_0 %176
- OpStore %184 %182
- %185 = OpAccessChain %_ptr_Private_int %obj %uint_0 %176
- %186 = OpLoad %int %185
- %187 = OpLoad %int %param_3
+ OpStore %l %173
+ %176 = OpAccessChain %_ptr_Private_int %obj %uint_0 %171
+ %177 = OpLoad %int %176
+ %178 = OpAccessChain %_ptr_Private_int %obj %uint_0 %171
+ OpStore %178 %31
+ %179 = OpAccessChain %_ptr_Private_int %obj %uint_0 %171
+ OpStore %179 %177
+ %180 = OpAccessChain %_ptr_Private_int %obj %uint_0 %171
+ %181 = OpLoad %int %180
+ %182 = OpLoad %int %param_3
OpStore %param_3 %31
- OpStore %param_3 %187
- %188 = OpCompositeExtract %float %37 2
- %189 = OpCompositeExtract %float %37 0
- %190 = OpCompositeExtract %float %37 2
- %191 = OpCompositeConstruct %v3float %188 %189 %190
- %192 = OpLoad %int %param_1
+ OpStore %param_3 %182
+ %184 = OpLoad %int %param_1
OpStore %param_1 %31
- OpStore %param_1 %192
- OpStore %pivot %186
- %194 = OpLoad %int %l
- %196 = OpLoad %int %h
+ OpStore %param_1 %184
+ OpStore %pivot %181
+ %186 = OpLoad %int %l
+ %188 = OpLoad %int %h
OpStore %h %31
- OpStore %h %196
- %199 = OpLoad %int %j_1
+ OpStore %h %188
+ %191 = OpLoad %int %j_1
OpStore %j_1 %31
- OpStore %j_1 %199
- %200 = OpCompositeExtract %float %191 1
- %201 = OpCompositeExtract %float %191 2
- %202 = OpCompositeExtract %float %191 1
- %203 = OpCompositeConstruct %v3float %200 %201 %202
- %205 = OpLoad %int %l
+ OpStore %j_1 %191
+ %192 = OpCompositeExtract %float %183 1
+ %193 = OpCompositeExtract %float %183 2
+ %194 = OpCompositeExtract %float %183 1
+ %195 = OpCompositeConstruct %v3float %192 %193 %194
+ %197 = OpLoad %int %l
OpStore %l %31
- OpStore %l %205
- %208 = OpBitcast %int %uint_1
- %210 = OpISub %int %194 %208
- OpStore %i_1 %210
- %212 = OpLoad %int %l
- %213 = OpCompositeExtract %float %191 0
- %214 = OpCompositeExtract %float %191 2
- %215 = OpCompositeExtract %float %203 0
- %216 = OpCompositeConstruct %v3float %213 %214 %215
+ OpStore %l %197
+ %200 = OpBitcast %int %uint_1
+ %202 = OpISub %int %186 %200
+ OpStore %i_1 %202
+ %204 = OpLoad %int %l
+ %205 = OpCompositeExtract %float %183 0
+ %206 = OpCompositeExtract %float %183 2
+ %207 = OpCompositeExtract %float %195 0
+ %208 = OpCompositeConstruct %v3float %205 %206 %207
OpStore %j_1 %int_10
- %218 = OpLoad %QuicksortObject %obj
- OpStore %obj %102
- OpStore %obj %218
- OpBranch %219
- %219 = OpLabel
- OpLoopMerge %220 %221 None
- OpBranch %222
- %222 = OpLabel
- %223 = OpLoad %int %pivot
+ %210 = OpLoad %QuicksortObject %obj
+ OpStore %obj %97
+ OpStore %obj %210
+ OpBranch %211
+ %211 = OpLabel
+ OpLoopMerge %212 %213 None
+ OpBranch %214
+ %214 = OpLabel
+ %215 = OpLoad %int %pivot
OpStore %pivot %31
- OpStore %pivot %223
- %224 = OpLoad %int %param_1
+ OpStore %pivot %215
+ %216 = OpLoad %int %param_1
OpStore %param_1 %31
- OpStore %param_1 %224
- %225 = OpLoad %int %j_1
- %226 = OpLoad %int %pivot
+ OpStore %param_1 %216
+ %217 = OpLoad %int %j_1
+ %218 = OpLoad %int %pivot
OpStore %pivot %31
- OpStore %pivot %226
- %227 = OpCompositeExtract %float %37 1
- %228 = OpCompositeExtract %float %37 2
- %229 = OpCompositeConstruct %v2float %227 %228
- OpStore %x_537 %229
- %230 = OpLoad %QuicksortObject %obj
- OpStore %obj %102
- OpStore %obj %230
- %232 = OpLoad %int %h
- %234 = OpLoad %int %h
+ OpStore %pivot %218
+ OpStore %x_537 %219
+ %220 = OpLoad %QuicksortObject %obj
+ OpStore %obj %97
+ OpStore %obj %220
+ %222 = OpLoad %int %h
+ %224 = OpLoad %int %h
OpStore %h %31
- OpStore %h %234
- %237 = OpLoad %int %param
+ OpStore %h %224
+ %227 = OpLoad %int %param
OpStore %param %31
- OpStore %param %237
- %238 = OpLoad %int %j_1
+ OpStore %param %227
+ %228 = OpLoad %int %j_1
OpStore %j_1 %31
- OpStore %j_1 %238
- %239 = OpCompositeExtract %float %191 0
- %241 = OpAccessChain %_ptr_Function_float %x_537 %uint_1
- %242 = OpLoad %float %241
- %243 = OpCompositeExtract %float %191 2
- %244 = OpCompositeConstruct %v3float %239 %242 %243
- OpStore %x_538 %244
- %245 = OpLoad %int %param
+ OpStore %j_1 %228
+ %229 = OpCompositeExtract %float %183 0
+ %231 = OpAccessChain %_ptr_Function_float %x_537 %uint_1
+ %232 = OpLoad %float %231
+ %233 = OpCompositeExtract %float %183 2
+ %234 = OpCompositeConstruct %v3float %229 %232 %233
+ OpStore %x_538 %234
+ %235 = OpLoad %int %param
OpStore %param %31
- OpStore %param %245
- %246 = OpBitcast %int %uint_1
- %247 = OpISub %int %232 %246
- %248 = OpSLessThanEqual %bool %225 %247
- OpSelectionMerge %250 None
- OpBranchConditional %248 %251 %252
- %251 = OpLabel
- OpBranch %250
- %252 = OpLabel
- OpBranch %220
- %250 = OpLabel
- %253 = OpLoad %int %j_1
- %254 = OpAccessChain %_ptr_Private_int %obj %uint_0 %176
- %255 = OpLoad %int %254
- %256 = OpAccessChain %_ptr_Private_int %obj %uint_0 %176
- OpStore %256 %31
- %257 = OpAccessChain %_ptr_Private_int %obj %uint_0 %176
- OpStore %257 %255
- %259 = OpLoad %int %h
+ OpStore %param %235
+ %236 = OpBitcast %int %uint_1
+ %237 = OpISub %int %222 %236
+ %238 = OpSLessThanEqual %bool %217 %237
+ OpSelectionMerge %240 None
+ OpBranchConditional %238 %241 %242
+ %241 = OpLabel
+ OpBranch %240
+ %242 = OpLabel
+ OpBranch %212
+ %240 = OpLabel
+ %243 = OpLoad %int %j_1
+ %244 = OpAccessChain %_ptr_Private_int %obj %uint_0 %171
+ %245 = OpLoad %int %244
+ %246 = OpAccessChain %_ptr_Private_int %obj %uint_0 %171
+ OpStore %246 %31
+ %247 = OpAccessChain %_ptr_Private_int %obj %uint_0 %171
+ OpStore %247 %245
+ %249 = OpLoad %int %h
OpStore %h %31
- OpStore %h %259
- %262 = OpAccessChain %_ptr_Function_float %x_537 %uint_0
- %263 = OpLoad %float %262
- %264 = OpCompositeExtract %float %203 2
- %265 = OpAccessChain %_ptr_Function_float %x_537 %uint_0
- %266 = OpLoad %float %265
- %267 = OpCompositeConstruct %v3float %263 %264 %266
- %268 = OpLoad %int %param_1
+ OpStore %h %249
+ %252 = OpAccessChain %_ptr_Function_float %x_537 %uint_0
+ %253 = OpLoad %float %252
+ %254 = OpCompositeExtract %float %195 2
+ %255 = OpAccessChain %_ptr_Function_float %x_537 %uint_0
+ %256 = OpLoad %float %255
+ %257 = OpCompositeConstruct %v3float %253 %254 %256
+ %258 = OpLoad %int %param_1
OpStore %param_1 %31
- OpStore %param_1 %268
- %269 = OpAccessChain %_ptr_Private_int %obj %uint_0 %253
- %270 = OpLoad %int %269
- %271 = OpLoad %QuicksortObject %obj
- OpStore %obj %102
- OpStore %obj %271
- %272 = OpLoad %int %pivot
- %273 = OpCompositeExtract %float %37 1
- %274 = OpCompositeExtract %float %191 2
- %275 = OpCompositeConstruct %v2float %273 %274
- %276 = OpLoad %int %i_1
+ OpStore %param_1 %258
+ %259 = OpAccessChain %_ptr_Private_int %obj %uint_0 %243
+ %260 = OpLoad %int %259
+ %261 = OpLoad %QuicksortObject %obj
+ OpStore %obj %97
+ OpStore %obj %261
+ %262 = OpLoad %int %pivot
+ %263 = OpCompositeExtract %float %183 2
+ %264 = OpCompositeConstruct %v2float %float_2 %263
+ %265 = OpLoad %int %i_1
OpStore %i_1 %31
- OpStore %i_1 %276
- %278 = OpLoad %int %l
+ OpStore %i_1 %265
+ %267 = OpLoad %int %l
OpStore %l %31
- OpStore %l %278
- %281 = OpCompositeExtract %float %191 1
- %282 = OpCompositeExtract %float %191 0
- %283 = OpCompositeExtract %float %191 1
- %284 = OpCompositeConstruct %v3float %281 %282 %283
- %285 = OpLoad %int %pivot
+ OpStore %l %267
+ %270 = OpCompositeExtract %float %183 1
+ %271 = OpCompositeExtract %float %183 0
+ %272 = OpCompositeExtract %float %183 1
+ %273 = OpCompositeConstruct %v3float %270 %271 %272
+ %274 = OpLoad %int %pivot
OpStore %pivot %31
- OpStore %pivot %285
- %286 = OpSLessThanEqual %bool %270 %272
- OpSelectionMerge %287 None
- OpBranchConditional %286 %288 %287
- %288 = OpLabel
- %289 = OpCompositeExtract %float %284 2
- %290 = OpCompositeExtract %float %284 0
- %291 = OpCompositeExtract %float %284 0
- %292 = OpCompositeConstruct %v3float %289 %290 %291
- %293 = OpLoad %int %param_3
+ OpStore %pivot %274
+ %275 = OpSLessThanEqual %bool %260 %262
+ OpSelectionMerge %276 None
+ OpBranchConditional %275 %277 %276
+ %277 = OpLabel
+ %278 = OpCompositeExtract %float %273 2
+ %279 = OpCompositeExtract %float %273 0
+ %280 = OpCompositeExtract %float %273 0
+ %281 = OpCompositeConstruct %v3float %278 %279 %280
+ %282 = OpLoad %int %param_3
OpStore %param_3 %31
- OpStore %param_3 %293
- %294 = OpLoad %int %i_1
- %295 = OpLoad %int %pivot
+ OpStore %param_3 %282
+ %283 = OpLoad %int %i_1
+ %284 = OpLoad %int %pivot
OpStore %pivot %31
- OpStore %pivot %295
- %296 = OpCompositeExtract %float %267 0
- %297 = OpCompositeExtract %float %284 1
- %298 = OpCompositeConstruct %v2float %296 %297
- %299 = OpLoad %int %i_1
+ OpStore %pivot %284
+ %285 = OpCompositeExtract %float %257 0
+ %286 = OpCompositeExtract %float %273 1
+ %287 = OpCompositeConstruct %v2float %285 %286
+ %288 = OpLoad %int %i_1
OpStore %i_1 %31
- OpStore %i_1 %299
- %300 = OpLoad %int %param
+ OpStore %i_1 %288
+ %289 = OpLoad %int %param
OpStore %param %31
- OpStore %param %300
- %301 = OpBitcast %int %uint_1
- %302 = OpIAdd %int %294 %301
- OpStore %i_1 %302
- %304 = OpLoad %int %l
+ OpStore %param %289
+ %290 = OpBitcast %int %uint_1
+ %291 = OpIAdd %int %283 %290
+ OpStore %i_1 %291
+ %293 = OpLoad %int %l
OpStore %l %31
- OpStore %l %304
- %307 = OpCompositeExtract %float %37 2
- %308 = OpCompositeExtract %float %37 1
- %309 = OpCompositeExtract %float %275 0
- %310 = OpCompositeConstruct %v3float %307 %308 %309
- %311 = OpLoad %int %i_1
- %312 = OpAccessChain %_ptr_Function_float %x_537 %uint_1
- %313 = OpLoad %float %312
- %314 = OpAccessChain %_ptr_Function_float %x_538 %uint_0
- %315 = OpLoad %float %314
- %316 = OpCompositeConstruct %v2float %313 %315
- %317 = OpLoad %int %param
+ OpStore %l %293
+ %296 = OpCompositeExtract %float %264 0
+ %297 = OpCompositeConstruct %v3float %float_3 %float_2 %296
+ %298 = OpLoad %int %i_1
+ %299 = OpAccessChain %_ptr_Function_float %x_537 %uint_1
+ %300 = OpLoad %float %299
+ %301 = OpAccessChain %_ptr_Function_float %x_538 %uint_0
+ %302 = OpLoad %float %301
+ %303 = OpCompositeConstruct %v2float %300 %302
+ %304 = OpLoad %int %param
OpStore %param %31
- OpStore %param %317
- OpStore %param %311
- %318 = OpLoad %int %param
+ OpStore %param %304
+ OpStore %param %298
+ %305 = OpLoad %int %param
OpStore %param %31
- OpStore %param %318
- %319 = OpCompositeExtract %float %316 0
- %320 = OpCompositeExtract %float %316 0
- %321 = OpCompositeConstruct %v2float %319 %320
- %322 = OpLoad %int %i_1
+ OpStore %param %305
+ %306 = OpCompositeExtract %float %303 0
+ %307 = OpCompositeExtract %float %303 0
+ %308 = OpCompositeConstruct %v2float %306 %307
+ %309 = OpLoad %int %i_1
OpStore %i_1 %31
- OpStore %i_1 %322
- %323 = OpLoad %int %j_1
- OpStore %param_1 %323
- %324 = OpLoad %int %param_3
+ OpStore %i_1 %309
+ %310 = OpLoad %int %j_1
+ OpStore %param_1 %310
+ %311 = OpLoad %int %param_3
OpStore %param_3 %31
- OpStore %param_3 %324
- %325 = OpFunctionCall %void %swap_i1_i1_ %param %param_1
- %328 = OpLoad %int %param_1
+ OpStore %param_3 %311
+ %312 = OpFunctionCall %void %swap_i1_i1_ %param %param_1
+ %315 = OpLoad %int %param_1
OpStore %param_1 %31
- OpStore %param_1 %328
- OpBranch %287
- %287 = OpLabel
- %329 = OpLoad %QuicksortObject %obj
- OpStore %obj %102
- OpStore %obj %329
- OpBranch %221
- %221 = OpLabel
- %331 = OpLoad %int %h
+ OpStore %param_1 %315
+ OpBranch %276
+ %276 = OpLabel
+ %316 = OpLoad %QuicksortObject %obj
+ OpStore %obj %97
+ OpStore %obj %316
+ OpBranch %213
+ %213 = OpLabel
+ %318 = OpLoad %int %h
OpStore %h %31
- OpStore %h %331
- %334 = OpLoad %int %j_1
- %336 = OpLoad %int %h
+ OpStore %h %318
+ %321 = OpLoad %int %j_1
+ %323 = OpLoad %int %h
OpStore %h %31
- OpStore %h %336
- %339 = OpCompositeExtract %float %267 0
- %340 = OpCompositeExtract %float %284 2
- %341 = OpCompositeExtract %float %284 2
- %342 = OpCompositeConstruct %v3float %339 %340 %341
- %343 = OpAccessChain %_ptr_Private_int %obj %uint_0 %253
- %344 = OpLoad %int %343
- %345 = OpAccessChain %_ptr_Private_int %obj %uint_0 %253
- OpStore %345 %31
- %346 = OpAccessChain %_ptr_Private_int %obj %uint_0 %253
- OpStore %346 %344
- %347 = OpLoad %int %param
+ OpStore %h %323
+ %326 = OpCompositeExtract %float %257 0
+ %327 = OpCompositeExtract %float %273 2
+ %328 = OpCompositeExtract %float %273 2
+ %329 = OpCompositeConstruct %v3float %326 %327 %328
+ %330 = OpAccessChain %_ptr_Private_int %obj %uint_0 %243
+ %331 = OpLoad %int %330
+ %332 = OpAccessChain %_ptr_Private_int %obj %uint_0 %243
+ OpStore %332 %31
+ %333 = OpAccessChain %_ptr_Private_int %obj %uint_0 %243
+ OpStore %333 %331
+ %334 = OpLoad %int %param
OpStore %param %31
- OpStore %param %347
- %349 = OpIAdd %int %int_1 %334
- OpStore %j_1 %349
- %350 = OpLoad %int %param_1
+ OpStore %param %334
+ %336 = OpIAdd %int %int_1 %321
+ OpStore %j_1 %336
+ %337 = OpLoad %int %param_1
OpStore %param_1 %31
- OpStore %param_1 %350
- %351 = OpCompositeExtract %float %284 1
- %352 = OpCompositeExtract %float %284 2
- %353 = OpCompositeExtract %float %284 0
- %354 = OpCompositeConstruct %v3float %351 %352 %353
- %355 = OpAccessChain %_ptr_Private_int %obj %uint_0 %253
- %356 = OpLoad %int %355
- %357 = OpAccessChain %_ptr_Private_int %obj %uint_0 %253
- OpStore %357 %31
- %358 = OpAccessChain %_ptr_Private_int %obj %uint_0 %253
- OpStore %358 %356
- OpBranch %219
- %220 = OpLabel
- %359 = OpLoad %int %i_1
- %360 = OpAccessChain %_ptr_Private_int %obj %uint_0 %176
- %361 = OpLoad %int %360
- %362 = OpAccessChain %_ptr_Private_int %obj %uint_0 %176
- OpStore %362 %31
- %363 = OpAccessChain %_ptr_Private_int %obj %uint_0 %176
- OpStore %363 %361
- %364 = OpCompositeExtract %float %191 0
- %365 = OpCompositeExtract %float %191 1
- %366 = OpCompositeConstruct %v2float %364 %365
- %367 = OpLoad %QuicksortObject %obj
- OpStore %obj %102
- OpStore %obj %367
- %369 = OpLoad %int %h
+ OpStore %param_1 %337
+ %338 = OpCompositeExtract %float %273 1
+ %339 = OpCompositeExtract %float %273 2
+ %340 = OpCompositeExtract %float %273 0
+ %341 = OpCompositeConstruct %v3float %338 %339 %340
+ %342 = OpAccessChain %_ptr_Private_int %obj %uint_0 %243
+ %343 = OpLoad %int %342
+ %344 = OpAccessChain %_ptr_Private_int %obj %uint_0 %243
+ OpStore %344 %31
+ %345 = OpAccessChain %_ptr_Private_int %obj %uint_0 %243
+ OpStore %345 %343
+ OpBranch %211
+ %212 = OpLabel
+ %346 = OpLoad %int %i_1
+ %347 = OpAccessChain %_ptr_Private_int %obj %uint_0 %171
+ %348 = OpLoad %int %347
+ %349 = OpAccessChain %_ptr_Private_int %obj %uint_0 %171
+ OpStore %349 %31
+ %350 = OpAccessChain %_ptr_Private_int %obj %uint_0 %171
+ OpStore %350 %348
+ %351 = OpCompositeExtract %float %183 0
+ %352 = OpCompositeExtract %float %183 1
+ %353 = OpCompositeConstruct %v2float %351 %352
+ %354 = OpLoad %QuicksortObject %obj
+ OpStore %obj %97
+ OpStore %obj %354
+ %356 = OpLoad %int %h
OpStore %h %31
- OpStore %h %369
- %372 = OpIAdd %int %int_1 %359
- OpStore %i_1 %372
- %373 = OpLoad %int %param_1
+ OpStore %h %356
+ %359 = OpIAdd %int %int_1 %346
+ OpStore %i_1 %359
+ %360 = OpLoad %int %param_1
OpStore %param_1 %31
- OpStore %param_1 %373
- %374 = OpLoad %int %i_1
- %375 = OpLoad %int %j_1
+ OpStore %param_1 %360
+ %361 = OpLoad %int %i_1
+ %362 = OpLoad %int %j_1
OpStore %j_1 %31
- OpStore %j_1 %375
- %376 = OpCompositeExtract %float %191 0
- %377 = OpCompositeExtract %float %191 0
- %378 = OpCompositeConstruct %v2float %376 %377
- %379 = OpLoad %int %param_1
+ OpStore %j_1 %362
+ %363 = OpCompositeExtract %float %183 0
+ %364 = OpCompositeExtract %float %183 0
+ %365 = OpCompositeConstruct %v2float %363 %364
+ %366 = OpLoad %int %param_1
OpStore %param_1 %31
- OpStore %param_1 %379
- OpStore %param_2 %374
- %380 = OpCompositeExtract %float %191 1
- %381 = OpCompositeExtract %float %216 0
- %382 = OpCompositeConstruct %v2float %380 %381
- %383 = OpLoad %int %pivot
+ OpStore %param_1 %366
+ OpStore %param_2 %361
+ %367 = OpCompositeExtract %float %183 1
+ %368 = OpCompositeExtract %float %208 0
+ %369 = OpCompositeConstruct %v2float %367 %368
+ %370 = OpLoad %int %pivot
OpStore %pivot %31
- OpStore %pivot %383
+ OpStore %pivot %370
+ %372 = OpLoad %int %h
+ %373 = OpCompositeExtract %float %365 0
+ %374 = OpCompositeExtract %float %353 1
+ %375 = OpCompositeConstruct %v2float %373 %374
+ %377 = OpLoad %int %h
+ OpStore %h %31
+ OpStore %h %377
+ OpStore %param_3 %372
+ %380 = OpLoad %int %i_1
+ OpStore %i_1 %31
+ OpStore %i_1 %380
+ %381 = OpCompositeExtract %float %353 1
+ %382 = OpCompositeExtract %float %375 0
+ %383 = OpCompositeConstruct %v2float %381 %382
%385 = OpLoad %int %h
- %386 = OpCompositeExtract %float %378 0
- %387 = OpCompositeExtract %float %366 1
- %388 = OpCompositeConstruct %v2float %386 %387
- %390 = OpLoad %int %h
OpStore %h %31
- OpStore %h %390
- OpStore %param_3 %385
- %393 = OpLoad %int %i_1
- OpStore %i_1 %31
- OpStore %i_1 %393
- %394 = OpCompositeExtract %float %366 1
- %395 = OpCompositeExtract %float %388 0
- %396 = OpCompositeConstruct %v2float %394 %395
- %398 = OpLoad %int %h
- OpStore %h %31
- OpStore %h %398
- %401 = OpFunctionCall %void %swap_i1_i1_ %param_2 %param_3
- %405 = OpLoad %int %l
+ OpStore %h %385
+ %388 = OpFunctionCall %void %swap_i1_i1_ %param_2 %param_3
+ %392 = OpLoad %int %l
OpStore %l %31
- OpStore %l %405
- %408 = OpCompositeExtract %float %216 2
- %409 = OpCompositeExtract %float %37 1
- %410 = OpCompositeConstruct %v2float %408 %409
- %411 = OpLoad %int %param_1
+ OpStore %l %392
+ %395 = OpCompositeExtract %float %208 2
+ %396 = OpCompositeConstruct %v2float %395 %float_2
+ %397 = OpLoad %int %param_1
OpStore %param_1 %31
- OpStore %param_1 %411
- %412 = OpLoad %int %i_1
- %413 = OpLoad %int %param
+ OpStore %param_1 %397
+ %398 = OpLoad %int %i_1
+ %399 = OpLoad %int %param
OpStore %param %31
- OpStore %param %413
- %414 = OpCompositeExtract %float %191 1
- %415 = OpCompositeExtract %float %191 0
- %416 = OpCompositeConstruct %v2float %414 %415
- %417 = OpLoad %int %j_1
+ OpStore %param %399
+ %400 = OpCompositeExtract %float %183 1
+ %401 = OpCompositeExtract %float %183 0
+ %402 = OpCompositeConstruct %v2float %400 %401
+ %403 = OpLoad %int %j_1
OpStore %j_1 %31
- OpStore %j_1 %417
- OpReturnValue %412
+ OpStore %j_1 %403
+ OpReturnValue %398
OpFunctionEnd
- %quicksort_ = OpFunction %void None %418
- %420 = OpLabel
+ %quicksort_ = OpFunction %void None %404
+ %406 = OpLabel
%param_4 = OpVariable %_ptr_Function_int Function %31
%h_1 = OpVariable %_ptr_Function_int Function %31
%p = OpVariable %_ptr_Function_int Function %31
%l_1 = OpVariable %_ptr_Function_int Function %31
%top = OpVariable %_ptr_Function_int Function %31
- %stack = OpVariable %_ptr_Function__arr_int_uint_10 Function %101
+ %stack = OpVariable %_ptr_Function__arr_int_uint_10 Function %96
%param_5 = OpVariable %_ptr_Function_int Function %31
OpStore %l_1 %31
- %429 = OpLoad %int %param_5
+ %415 = OpLoad %int %param_5
OpStore %param_5 %31
- OpStore %param_5 %429
+ OpStore %param_5 %415
OpStore %h_1 %int_9
- %431 = OpLoad %_arr_int_uint_10 %stack
- OpStore %stack %101
- OpStore %stack %431
- %432 = OpCompositeExtract %float %37 1
- %433 = OpCompositeExtract %float %37 1
- %434 = OpCompositeConstruct %v2float %432 %433
- %435 = OpLoad %int %param_5
+ %417 = OpLoad %_arr_int_uint_10 %stack
+ OpStore %stack %96
+ OpStore %stack %417
+ %419 = OpLoad %int %param_5
OpStore %param_5 %31
- OpStore %param_5 %435
+ OpStore %param_5 %419
OpStore %top %int_n1
- %437 = OpLoad %int %p
+ %421 = OpLoad %int %p
OpStore %p %31
- OpStore %p %437
- %438 = OpLoad %int %top
- %439 = OpCompositeExtract %float %37 0
- %440 = OpCompositeExtract %float %37 0
- %441 = OpCompositeConstruct %v2float %439 %440
- %442 = OpLoad %int %p
+ OpStore %p %421
+ %422 = OpLoad %int %top
+ %424 = OpLoad %int %p
OpStore %p %31
- OpStore %p %442
- %443 = OpBitcast %int %uint_1
- %444 = OpIAdd %int %438 %443
- %445 = OpLoad %int %top
+ OpStore %p %424
+ %425 = OpBitcast %int %uint_1
+ %426 = OpIAdd %int %422 %425
+ %427 = OpLoad %int %top
OpStore %top %31
- OpStore %top %445
- %446 = OpCompositeExtract %float %434 1
- %447 = OpCompositeExtract %float %441 1
- %448 = OpCompositeConstruct %v2float %446 %447
- %449 = OpLoad %int %param_4
+ OpStore %top %427
+ %428 = OpCompositeExtract %float %418 1
+ %429 = OpCompositeExtract %float %423 1
+ %430 = OpCompositeConstruct %v2float %428 %429
+ %431 = OpLoad %int %param_4
OpStore %param_4 %31
- OpStore %param_4 %449
- OpStore %top %444
- %450 = OpLoad %int %h_1
+ OpStore %param_4 %431
+ OpStore %top %426
+ %432 = OpLoad %int %h_1
OpStore %h_1 %31
- OpStore %h_1 %450
- %451 = OpCompositeExtract %float %441 1
- %452 = OpCompositeExtract %float %441 0
- %453 = OpCompositeExtract %float %441 0
- %454 = OpCompositeConstruct %v3float %451 %452 %453
- %455 = OpLoad %int %param_4
+ OpStore %h_1 %432
+ %433 = OpCompositeExtract %float %423 1
+ %434 = OpCompositeExtract %float %423 0
+ %435 = OpCompositeExtract %float %423 0
+ %436 = OpCompositeConstruct %v3float %433 %434 %435
+ %437 = OpLoad %int %param_4
OpStore %param_4 %31
- OpStore %param_4 %455
- %456 = OpLoad %int %l_1
- %457 = OpLoad %QuicksortObject %obj
- OpStore %obj %102
- OpStore %obj %457
- %458 = OpCompositeExtract %float %454 1
- %459 = OpCompositeExtract %float %454 0
- %460 = OpCompositeExtract %float %441 0
- %461 = OpCompositeConstruct %v3float %458 %459 %460
- %462 = OpLoad %_arr_int_uint_10 %stack
- OpStore %stack %101
- OpStore %stack %462
- %463 = OpCompositeExtract %float %434 1
- %464 = OpCompositeExtract %float %434 1
- %465 = OpCompositeExtract %float %434 1
- %466 = OpCompositeConstruct %v3float %463 %464 %465
- %467 = OpLoad %int %l_1
+ OpStore %param_4 %437
+ %438 = OpLoad %int %l_1
+ %439 = OpLoad %QuicksortObject %obj
+ OpStore %obj %97
+ OpStore %obj %439
+ %440 = OpCompositeExtract %float %436 1
+ %441 = OpCompositeExtract %float %436 0
+ %442 = OpCompositeExtract %float %423 0
+ %443 = OpCompositeConstruct %v3float %440 %441 %442
+ %444 = OpLoad %_arr_int_uint_10 %stack
+ OpStore %stack %96
+ OpStore %stack %444
+ %445 = OpCompositeExtract %float %418 1
+ %446 = OpCompositeExtract %float %418 1
+ %447 = OpCompositeExtract %float %418 1
+ %448 = OpCompositeConstruct %v3float %445 %446 %447
+ %449 = OpLoad %int %l_1
OpStore %l_1 %31
OpStore %l_1 %31
- %468 = OpAccessChain %_ptr_Function_int %stack %444
- OpStore %468 %456
- %469 = OpLoad %int %param_5
+ %450 = OpAccessChain %_ptr_Function_int %stack %426
+ OpStore %450 %438
+ %451 = OpLoad %int %param_5
OpStore %param_5 %31
- OpStore %param_5 %469
- %470 = OpLoad %int %top
+ OpStore %param_5 %451
+ %452 = OpLoad %int %top
+ %453 = OpLoad %int %param_4
+ OpStore %param_4 %31
+ OpStore %param_4 %453
+ %454 = OpCompositeExtract %float %430 1
+ %455 = OpCompositeConstruct %v3float %float_3 %454 %float_2
+ %456 = OpAccessChain %_ptr_Function_int %stack %426
+ %457 = OpLoad %int %456
+ %458 = OpAccessChain %_ptr_Function_int %stack %426
+ OpStore %458 %31
+ %459 = OpAccessChain %_ptr_Function_int %stack %426
+ OpStore %459 %457
+ %460 = OpIAdd %int %452 %int_1
+ %461 = OpAccessChain %_ptr_Function_int %stack %426
+ %462 = OpLoad %int %461
+ %463 = OpAccessChain %_ptr_Function_int %stack %426
+ OpStore %463 %31
+ %464 = OpAccessChain %_ptr_Function_int %stack %426
+ OpStore %464 %462
+ %465 = OpCompositeExtract %float %436 0
+ %466 = OpCompositeExtract %float %436 2
+ %467 = OpCompositeExtract %float %418 1
+ %468 = OpCompositeConstruct %v3float %465 %466 %467
+ OpStore %top %460
+ %469 = OpLoad %int %param_4
+ OpStore %param_4 %31
+ OpStore %param_4 %469
+ %470 = OpLoad %int %h_1
%471 = OpLoad %int %param_4
OpStore %param_4 %31
OpStore %param_4 %471
- %472 = OpCompositeExtract %float %37 2
- %473 = OpCompositeExtract %float %448 1
- %474 = OpCompositeExtract %float %37 1
+ %472 = OpCompositeExtract %float %430 0
+ %473 = OpCompositeExtract %float %448 0
+ %474 = OpCompositeExtract %float %430 1
%475 = OpCompositeConstruct %v3float %472 %473 %474
- %476 = OpAccessChain %_ptr_Function_int %stack %444
- %477 = OpLoad %int %476
- %478 = OpAccessChain %_ptr_Function_int %stack %444
- OpStore %478 %31
- %479 = OpAccessChain %_ptr_Function_int %stack %444
- OpStore %479 %477
- %480 = OpIAdd %int %470 %int_1
- %481 = OpAccessChain %_ptr_Function_int %stack %444
- %482 = OpLoad %int %481
- %483 = OpAccessChain %_ptr_Function_int %stack %444
- OpStore %483 %31
- %484 = OpAccessChain %_ptr_Function_int %stack %444
- OpStore %484 %482
- %485 = OpCompositeExtract %float %454 0
- %486 = OpCompositeExtract %float %454 2
- %487 = OpCompositeExtract %float %434 1
- %488 = OpCompositeConstruct %v3float %485 %486 %487
- OpStore %top %480
- %489 = OpLoad %int %param_4
- OpStore %param_4 %31
- OpStore %param_4 %489
- %490 = OpLoad %int %h_1
- %491 = OpLoad %int %param_4
- OpStore %param_4 %31
- OpStore %param_4 %491
- %492 = OpCompositeExtract %float %448 0
- %493 = OpCompositeExtract %float %466 0
- %494 = OpCompositeExtract %float %448 1
- %495 = OpCompositeConstruct %v3float %492 %493 %494
- %496 = OpLoad %int %l_1
+ %476 = OpLoad %int %l_1
OpStore %l_1 %31
- OpStore %l_1 %496
- %497 = OpLoad %int %param_5
+ OpStore %l_1 %476
+ %477 = OpLoad %int %param_5
OpStore %param_5 %31
- OpStore %param_5 %497
- %498 = OpCompositeExtract %float %495 2
- %499 = OpCompositeExtract %float %495 2
- %500 = OpCompositeConstruct %v2float %498 %499
- %501 = OpLoad %int %p
+ OpStore %param_5 %477
+ %478 = OpCompositeExtract %float %475 2
+ %479 = OpCompositeExtract %float %475 2
+ %480 = OpCompositeConstruct %v2float %478 %479
+ %481 = OpLoad %int %p
OpStore %p %31
- OpStore %p %501
- %502 = OpAccessChain %_ptr_Function_int %stack %480
- OpStore %502 %490
- OpBranch %503
+ OpStore %p %481
+ %482 = OpAccessChain %_ptr_Function_int %stack %460
+ OpStore %482 %470
+ OpBranch %483
+ %483 = OpLabel
+ OpLoopMerge %484 %485 None
+ OpBranch %486
+ %486 = OpLabel
+ %487 = OpCompositeExtract %float %468 0
+ %488 = OpCompositeExtract %float %468 0
+ %489 = OpCompositeExtract %float %468 0
+ %490 = OpCompositeConstruct %v3float %487 %488 %489
+ %491 = OpLoad %int %h_1
+ OpStore %h_1 %31
+ OpStore %h_1 %491
+ %492 = OpLoad %_arr_int_uint_10 %stack
+ OpStore %stack %96
+ OpStore %stack %492
+ %493 = OpLoad %int %top
+ %494 = OpLoad %_arr_int_uint_10 %stack
+ OpStore %stack %96
+ OpStore %stack %494
+ %495 = OpCompositeExtract %float %430 0
+ %496 = OpCompositeExtract %float %475 2
+ %497 = OpCompositeConstruct %v2float %495 %496
+ %498 = OpLoad %int %param_4
+ OpStore %param_4 %31
+ OpStore %param_4 %498
+ %499 = OpBitcast %int %500
+ %501 = OpSGreaterThanEqual %bool %493 %499
+ OpSelectionMerge %502 None
+ OpBranchConditional %501 %503 %504
%503 = OpLabel
- OpLoopMerge %504 %505 None
- OpBranch %506
- %506 = OpLabel
- %507 = OpCompositeExtract %float %488 0
- %508 = OpCompositeExtract %float %488 0
- %509 = OpCompositeExtract %float %488 0
- %510 = OpCompositeConstruct %v3float %507 %508 %509
- %511 = OpLoad %int %h_1
- OpStore %h_1 %31
- OpStore %h_1 %511
- %512 = OpLoad %_arr_int_uint_10 %stack
- OpStore %stack %101
- OpStore %stack %512
- %513 = OpLoad %int %top
- %514 = OpLoad %_arr_int_uint_10 %stack
- OpStore %stack %101
- OpStore %stack %514
- %515 = OpCompositeExtract %float %448 0
- %516 = OpCompositeExtract %float %495 2
- %517 = OpCompositeConstruct %v2float %515 %516
- %518 = OpLoad %int %param_4
+ OpBranch %502
+ %504 = OpLabel
+ OpBranch %484
+ %502 = OpLabel
+ %505 = OpLoad %QuicksortObject %obj
+ OpStore %obj %97
+ OpStore %obj %505
+ %506 = OpCompositeExtract %float %436 1
+ %507 = OpCompositeExtract %float %436 0
+ %508 = OpCompositeExtract %float %468 1
+ %509 = OpCompositeConstruct %v3float %506 %507 %508
+ %510 = OpLoad %int %param_4
OpStore %param_4 %31
- OpStore %param_4 %518
- %519 = OpBitcast %int %520
- %521 = OpSGreaterThanEqual %bool %513 %519
- OpSelectionMerge %522 None
- OpBranchConditional %521 %523 %524
- %523 = OpLabel
- OpBranch %522
- %524 = OpLabel
- OpBranch %504
- %522 = OpLabel
- %525 = OpLoad %QuicksortObject %obj
- OpStore %obj %102
- OpStore %obj %525
- %526 = OpCompositeExtract %float %454 1
- %527 = OpCompositeExtract %float %454 0
- %528 = OpCompositeExtract %float %488 1
- %529 = OpCompositeConstruct %v3float %526 %527 %528
- %530 = OpLoad %int %param_4
- OpStore %param_4 %31
- OpStore %param_4 %530
- %531 = OpLoad %int %top
- %532 = OpCompositeExtract %float %500 0
- %533 = OpCompositeExtract %float %517 1
- %534 = OpCompositeExtract %float %500 0
- %535 = OpCompositeConstruct %v3float %532 %533 %534
- %536 = OpLoad %int %h_1
+ OpStore %param_4 %510
+ %511 = OpLoad %int %top
+ %512 = OpCompositeExtract %float %480 0
+ %513 = OpCompositeExtract %float %497 1
+ %514 = OpCompositeExtract %float %480 0
+ %515 = OpCompositeConstruct %v3float %512 %513 %514
+ %516 = OpLoad %int %h_1
OpStore %h_1 %31
- OpStore %h_1 %536
- %537 = OpCompositeExtract %float %434 0
- %538 = OpCompositeExtract %float %434 0
+ OpStore %h_1 %516
+ %517 = OpCompositeExtract %float %418 0
+ %518 = OpCompositeExtract %float %418 0
+ %519 = OpCompositeConstruct %v2float %517 %518
+ %520 = OpLoad %int %p
+ OpStore %p %31
+ OpStore %p %520
+ %521 = OpBitcast %int %uint_1
+ %522 = OpISub %int %511 %521
+ OpStore %top %522
+ %523 = OpLoad %int %p
+ OpStore %p %31
+ OpStore %p %523
+ %524 = OpAccessChain %_ptr_Function_int %stack %426
+ %525 = OpLoad %int %524
+ %526 = OpAccessChain %_ptr_Function_int %stack %426
+ OpStore %526 %31
+ %527 = OpAccessChain %_ptr_Function_int %stack %426
+ OpStore %527 %525
+ %528 = OpAccessChain %_ptr_Function_int %stack %511
+ %529 = OpLoad %int %528
+ %530 = OpLoad %_arr_int_uint_10 %stack
+ OpStore %stack %96
+ OpStore %stack %530
+ %531 = OpCompositeExtract %float %436 1
+ %532 = OpCompositeExtract %float %436 0
+ %533 = OpCompositeExtract %float %475 1
+ %534 = OpCompositeConstruct %v3float %531 %532 %533
+ %535 = OpLoad %int %l_1
+ OpStore %l_1 %31
+ OpStore %l_1 %535
+ OpStore %h_1 %529
+ %536 = OpLoad %_arr_int_uint_10 %stack
+ OpStore %stack %96
+ OpStore %stack %536
+ %537 = OpCompositeExtract %float %455 1
+ %538 = OpCompositeExtract %float %448 1
%539 = OpCompositeConstruct %v2float %537 %538
%540 = OpLoad %int %p
OpStore %p %31
OpStore %p %540
- %541 = OpBitcast %int %uint_1
- %542 = OpISub %int %531 %541
- OpStore %top %542
- %543 = OpLoad %int %p
- OpStore %p %31
- OpStore %p %543
- %544 = OpAccessChain %_ptr_Function_int %stack %444
- %545 = OpLoad %int %544
- %546 = OpAccessChain %_ptr_Function_int %stack %444
- OpStore %546 %31
- %547 = OpAccessChain %_ptr_Function_int %stack %444
- OpStore %547 %545
- %548 = OpAccessChain %_ptr_Function_int %stack %531
- %549 = OpLoad %int %548
- %550 = OpLoad %_arr_int_uint_10 %stack
- OpStore %stack %101
- OpStore %stack %550
- %551 = OpCompositeExtract %float %454 1
- %552 = OpCompositeExtract %float %454 0
- %553 = OpCompositeExtract %float %495 1
- %554 = OpCompositeConstruct %v3float %551 %552 %553
- %555 = OpLoad %int %l_1
- OpStore %l_1 %31
- OpStore %l_1 %555
- OpStore %h_1 %549
- %556 = OpLoad %_arr_int_uint_10 %stack
- OpStore %stack %101
- OpStore %stack %556
- %557 = OpCompositeExtract %float %475 1
- %558 = OpCompositeExtract %float %466 1
- %559 = OpCompositeConstruct %v2float %557 %558
- %560 = OpLoad %int %p
- OpStore %p %31
- OpStore %p %560
- %561 = OpLoad %int %top
- %562 = OpLoad %int %param_4
+ %541 = OpLoad %int %top
+ %542 = OpLoad %int %param_4
OpStore %param_4 %31
- OpStore %param_4 %562
- %563 = OpAccessChain %_ptr_Function_int %stack %480
- %564 = OpLoad %int %563
- %565 = OpAccessChain %_ptr_Function_int %stack %480
- OpStore %565 %31
- %566 = OpAccessChain %_ptr_Function_int %stack %480
- OpStore %566 %564
- %567 = OpCompositeExtract %float %37 1
- %568 = OpCompositeExtract %float %37 2
- %569 = OpCompositeConstruct %v2float %567 %568
- %570 = OpISub %int %561 %int_1
- OpStore %top %570
- %571 = OpLoad %int %param_5
+ OpStore %param_4 %542
+ %543 = OpAccessChain %_ptr_Function_int %stack %460
+ %544 = OpLoad %int %543
+ %545 = OpAccessChain %_ptr_Function_int %stack %460
+ OpStore %545 %31
+ %546 = OpAccessChain %_ptr_Function_int %stack %460
+ OpStore %546 %544
+ %547 = OpISub %int %541 %int_1
+ OpStore %top %547
+ %548 = OpLoad %int %param_5
OpStore %param_5 %31
- OpStore %param_5 %571
- %572 = OpCompositeExtract %float %539 1
- %573 = OpCompositeExtract %float %500 0
- %574 = OpCompositeExtract %float %539 1
- %575 = OpCompositeConstruct %v3float %572 %573 %574
- %576 = OpLoad %int %h_1
+ OpStore %param_5 %548
+ %549 = OpCompositeExtract %float %519 1
+ %550 = OpCompositeExtract %float %480 0
+ %551 = OpCompositeExtract %float %519 1
+ %552 = OpCompositeConstruct %v3float %549 %550 %551
+ %553 = OpLoad %int %h_1
OpStore %h_1 %31
- OpStore %h_1 %576
- %577 = OpCompositeExtract %float %495 1
- %578 = OpCompositeExtract %float %495 2
- %579 = OpCompositeConstruct %v2float %577 %578
- %580 = OpAccessChain %_ptr_Function_int %stack %480
- %581 = OpLoad %int %580
- %582 = OpAccessChain %_ptr_Function_int %stack %480
- OpStore %582 %31
- %583 = OpAccessChain %_ptr_Function_int %stack %480
- OpStore %583 %581
- %584 = OpAccessChain %_ptr_Function_int %stack %561
- %585 = OpLoad %int %584
- %586 = OpLoad %int %p
+ OpStore %h_1 %553
+ %554 = OpCompositeExtract %float %475 1
+ %555 = OpCompositeExtract %float %475 2
+ %556 = OpCompositeConstruct %v2float %554 %555
+ %557 = OpAccessChain %_ptr_Function_int %stack %460
+ %558 = OpLoad %int %557
+ %559 = OpAccessChain %_ptr_Function_int %stack %460
+ OpStore %559 %31
+ %560 = OpAccessChain %_ptr_Function_int %stack %460
+ OpStore %560 %558
+ %561 = OpAccessChain %_ptr_Function_int %stack %541
+ %562 = OpLoad %int %561
+ %563 = OpLoad %int %p
OpStore %p %31
- OpStore %p %586
- %587 = OpCompositeExtract %float %569 1
- %588 = OpCompositeExtract %float %569 1
- %589 = OpCompositeExtract %float %500 0
- %590 = OpCompositeConstruct %v3float %587 %588 %589
+ OpStore %p %563
+ %564 = OpCompositeExtract %float %219 1
+ %565 = OpCompositeExtract %float %219 1
+ %566 = OpCompositeExtract %float %480 0
+ %567 = OpCompositeConstruct %v3float %564 %565 %566
+ %568 = OpLoad %int %param_5
+ OpStore %param_5 %31
+ OpStore %param_5 %568
+ OpStore %l_1 %562
+ %569 = OpLoad %int %top
+ OpStore %top %31
+ OpStore %top %569
+ %570 = OpLoad %int %l_1
+ OpStore %param_4 %570
+ %571 = OpAccessChain %_ptr_Function_int %stack %511
+ %572 = OpLoad %int %571
+ %573 = OpAccessChain %_ptr_Function_int %stack %511
+ OpStore %573 %31
+ %574 = OpAccessChain %_ptr_Function_int %stack %511
+ OpStore %574 %572
+ %575 = OpCompositeExtract %float %515 1
+ %576 = OpCompositeExtract %float %515 2
+ %577 = OpCompositeConstruct %v2float %575 %576
+ %578 = OpLoad %int %h_1
+ %579 = OpCompositeExtract %float %430 0
+ %580 = OpCompositeConstruct %v2float %579 %float_2
+ OpStore %param_5 %578
+ %581 = OpAccessChain %_ptr_Function_int %stack %460
+ %582 = OpLoad %int %581
+ %583 = OpAccessChain %_ptr_Function_int %stack %460
+ OpStore %583 %31
+ %584 = OpAccessChain %_ptr_Function_int %stack %460
+ OpStore %584 %582
+ %585 = OpFunctionCall %int %performPartition_i1_i1_ %param_4 %param_5
+ %588 = OpCompositeExtract %float %497 0
+ %589 = OpCompositeExtract %float %509 0
+ %590 = OpCompositeConstruct %v2float %588 %589
%591 = OpLoad %int %param_5
OpStore %param_5 %31
OpStore %param_5 %591
- OpStore %l_1 %585
- %592 = OpLoad %int %top
- OpStore %top %31
- OpStore %top %592
- %593 = OpLoad %int %l_1
- OpStore %param_4 %593
- %594 = OpAccessChain %_ptr_Function_int %stack %531
- %595 = OpLoad %int %594
- %596 = OpAccessChain %_ptr_Function_int %stack %531
- OpStore %596 %31
- %597 = OpAccessChain %_ptr_Function_int %stack %531
- OpStore %597 %595
- %598 = OpCompositeExtract %float %535 1
- %599 = OpCompositeExtract %float %535 2
- %600 = OpCompositeConstruct %v2float %598 %599
- %601 = OpLoad %int %h_1
- %602 = OpCompositeExtract %float %448 0
- %603 = OpCompositeExtract %float %37 1
- %604 = OpCompositeConstruct %v2float %602 %603
- OpStore %param_5 %601
- %605 = OpAccessChain %_ptr_Function_int %stack %480
- %606 = OpLoad %int %605
- %607 = OpAccessChain %_ptr_Function_int %stack %480
- OpStore %607 %31
- %608 = OpAccessChain %_ptr_Function_int %stack %480
- OpStore %608 %606
- %609 = OpFunctionCall %int %performPartition_i1_i1_ %param_4 %param_5
- %612 = OpCompositeExtract %float %517 0
- %613 = OpCompositeExtract %float %529 0
- %614 = OpCompositeConstruct %v2float %612 %613
- %615 = OpLoad %int %param_5
- OpStore %param_5 %31
- OpStore %param_5 %615
- OpStore %p %609
- %616 = OpLoad %int %param_4
+ OpStore %p %585
+ %592 = OpLoad %int %param_4
OpStore %param_4 %31
- OpStore %param_4 %616
- %617 = OpLoad %int %p
- %618 = OpLoad %int %h_1
+ OpStore %param_4 %592
+ %593 = OpLoad %int %p
+ %594 = OpLoad %int %h_1
OpStore %h_1 %31
- OpStore %h_1 %618
- %619 = OpCompositeExtract %float %529 1
- %620 = OpCompositeExtract %float %529 1
- %621 = OpCompositeConstruct %v2float %619 %620
- %622 = OpLoad %int %l_1
+ OpStore %h_1 %594
+ %595 = OpCompositeExtract %float %509 1
+ %596 = OpCompositeExtract %float %509 1
+ %597 = OpCompositeConstruct %v2float %595 %596
+ %598 = OpLoad %int %l_1
OpStore %l_1 %31
- OpStore %l_1 %622
- %623 = OpLoad %int %h_1
+ OpStore %l_1 %598
+ %599 = OpLoad %int %h_1
OpStore %h_1 %31
- OpStore %h_1 %623
- %624 = OpLoad %int %l_1
- %625 = OpAccessChain %_ptr_Function_int %stack %531
- %626 = OpLoad %int %625
- %627 = OpAccessChain %_ptr_Function_int %stack %531
- OpStore %627 %31
- %628 = OpAccessChain %_ptr_Function_int %stack %531
- OpStore %628 %626
- %629 = OpLoad %int %h_1
+ OpStore %h_1 %599
+ %600 = OpLoad %int %l_1
+ %601 = OpAccessChain %_ptr_Function_int %stack %511
+ %602 = OpLoad %int %601
+ %603 = OpAccessChain %_ptr_Function_int %stack %511
+ OpStore %603 %31
+ %604 = OpAccessChain %_ptr_Function_int %stack %511
+ OpStore %604 %602
+ %605 = OpLoad %int %h_1
OpStore %h_1 %31
- OpStore %h_1 %629
- %630 = OpCompositeExtract %float %517 1
- %631 = OpCompositeExtract %float %569 0
- %632 = OpCompositeConstruct %v2float %630 %631
- %633 = OpAccessChain %_ptr_Function_int %stack %480
- %634 = OpLoad %int %633
- %635 = OpAccessChain %_ptr_Function_int %stack %480
- OpStore %635 %31
- %636 = OpAccessChain %_ptr_Function_int %stack %480
- OpStore %636 %634
- %637 = OpBitcast %int %uint_1
- %638 = OpISub %int %617 %637
- %639 = OpSGreaterThan %bool %638 %624
- OpSelectionMerge %640 None
- OpBranchConditional %639 %641 %640
- %641 = OpLabel
- %642 = OpLoad %int %param_4
+ OpStore %h_1 %605
+ %606 = OpCompositeExtract %float %497 1
+ %607 = OpCompositeExtract %float %219 0
+ %608 = OpCompositeConstruct %v2float %606 %607
+ %609 = OpAccessChain %_ptr_Function_int %stack %460
+ %610 = OpLoad %int %609
+ %611 = OpAccessChain %_ptr_Function_int %stack %460
+ OpStore %611 %31
+ %612 = OpAccessChain %_ptr_Function_int %stack %460
+ OpStore %612 %610
+ %613 = OpBitcast %int %uint_1
+ %614 = OpISub %int %593 %613
+ %615 = OpSGreaterThan %bool %614 %600
+ OpSelectionMerge %616 None
+ OpBranchConditional %615 %617 %616
+ %617 = OpLabel
+ %618 = OpLoad %int %param_4
OpStore %param_4 %31
- OpStore %param_4 %642
- %643 = OpLoad %int %top
- %644 = OpCompositeExtract %float %554 1
- %645 = OpCompositeExtract %float %434 1
- %646 = OpCompositeConstruct %v2float %644 %645
- %647 = OpAccessChain %_ptr_Function_int %stack %480
- %648 = OpLoad %int %647
- %649 = OpAccessChain %_ptr_Function_int %stack %480
- OpStore %649 %31
- %650 = OpAccessChain %_ptr_Function_int %stack %480
- OpStore %650 %648
- %651 = OpLoad %_arr_int_uint_10 %stack
- OpStore %stack %101
- OpStore %stack %651
- %652 = OpCompositeExtract %float %535 2
- %653 = OpCompositeExtract %float %535 1
- %654 = OpCompositeConstruct %v2float %652 %653
- %655 = OpCompositeExtract %float %621 1
- %656 = OpCompositeExtract %float %600 0
- %657 = OpCompositeExtract %float %600 0
- %658 = OpCompositeConstruct %v3float %655 %656 %657
- %659 = OpLoad %int %l_1
- %660 = OpAccessChain %_ptr_Function_int %stack %561
- %661 = OpLoad %int %660
- %662 = OpAccessChain %_ptr_Function_int %stack %561
- OpStore %662 %31
- %663 = OpAccessChain %_ptr_Function_int %stack %561
- OpStore %663 %661
- %664 = OpCompositeExtract %float %495 0
- %665 = OpCompositeExtract %float %658 0
- %666 = OpCompositeConstruct %v2float %664 %665
- %667 = OpLoad %int %param_5
+ OpStore %param_4 %618
+ %619 = OpLoad %int %top
+ %620 = OpCompositeExtract %float %534 1
+ %621 = OpCompositeExtract %float %418 1
+ %622 = OpCompositeConstruct %v2float %620 %621
+ %623 = OpAccessChain %_ptr_Function_int %stack %460
+ %624 = OpLoad %int %623
+ %625 = OpAccessChain %_ptr_Function_int %stack %460
+ OpStore %625 %31
+ %626 = OpAccessChain %_ptr_Function_int %stack %460
+ OpStore %626 %624
+ %627 = OpLoad %_arr_int_uint_10 %stack
+ OpStore %stack %96
+ OpStore %stack %627
+ %628 = OpCompositeExtract %float %515 2
+ %629 = OpCompositeExtract %float %515 1
+ %630 = OpCompositeConstruct %v2float %628 %629
+ %631 = OpCompositeExtract %float %597 1
+ %632 = OpCompositeExtract %float %577 0
+ %633 = OpCompositeExtract %float %577 0
+ %634 = OpCompositeConstruct %v3float %631 %632 %633
+ %635 = OpLoad %int %l_1
+ %636 = OpAccessChain %_ptr_Function_int %stack %541
+ %637 = OpLoad %int %636
+ %638 = OpAccessChain %_ptr_Function_int %stack %541
+ OpStore %638 %31
+ %639 = OpAccessChain %_ptr_Function_int %stack %541
+ OpStore %639 %637
+ %640 = OpCompositeExtract %float %475 0
+ %641 = OpCompositeExtract %float %634 0
+ %642 = OpCompositeConstruct %v2float %640 %641
+ %643 = OpLoad %int %param_5
OpStore %param_5 %31
- OpStore %param_5 %667
- %668 = OpIAdd %int %int_1 %643
- %669 = OpAccessChain %_ptr_Function_int %stack %531
- %670 = OpLoad %int %669
- %671 = OpAccessChain %_ptr_Function_int %stack %531
- OpStore %671 %31
- %672 = OpAccessChain %_ptr_Function_int %stack %531
- OpStore %672 %670
- %673 = OpCompositeExtract %float %510 1
- %674 = OpCompositeExtract %float %510 1
- %675 = OpCompositeExtract %float %488 0
- %676 = OpCompositeConstruct %v3float %673 %674 %675
- %677 = OpLoad %int %param_5
+ OpStore %param_5 %643
+ %644 = OpIAdd %int %int_1 %619
+ %645 = OpAccessChain %_ptr_Function_int %stack %511
+ %646 = OpLoad %int %645
+ %647 = OpAccessChain %_ptr_Function_int %stack %511
+ OpStore %647 %31
+ %648 = OpAccessChain %_ptr_Function_int %stack %511
+ OpStore %648 %646
+ %649 = OpCompositeExtract %float %490 1
+ %650 = OpCompositeExtract %float %490 1
+ %651 = OpCompositeExtract %float %468 0
+ %652 = OpCompositeConstruct %v3float %649 %650 %651
+ %653 = OpLoad %int %param_5
OpStore %param_5 %31
- OpStore %param_5 %677
- %678 = OpAccessChain %_ptr_Function_int %stack %668
- OpStore %678 %659
- %679 = OpLoad %int %top
- %680 = OpAccessChain %_ptr_Function_int %stack %480
- %681 = OpLoad %int %680
- %682 = OpAccessChain %_ptr_Function_int %stack %480
- OpStore %682 %31
- %683 = OpAccessChain %_ptr_Function_int %stack %480
- OpStore %683 %681
- %684 = OpCompositeExtract %float %579 1
- %685 = OpCompositeExtract %float %579 0
- %686 = OpCompositeConstruct %v2float %684 %685
- %687 = OpAccessChain %_ptr_Function_int %stack %668
- %688 = OpLoad %int %687
- %689 = OpAccessChain %_ptr_Function_int %stack %668
- OpStore %689 %31
- %690 = OpAccessChain %_ptr_Function_int %stack %668
- OpStore %690 %688
- %692 = OpBitcast %uint %679
- %693 = OpIAdd %uint %uint_1 %692
- %691 = OpBitcast %int %693
- %694 = OpAccessChain %_ptr_Function_int %stack %480
- %695 = OpLoad %int %694
- %696 = OpAccessChain %_ptr_Function_int %stack %480
- OpStore %696 %31
- %697 = OpAccessChain %_ptr_Function_int %stack %480
- OpStore %697 %695
- %698 = OpCompositeExtract %float %590 2
- %699 = OpCompositeExtract %float %686 1
- %700 = OpCompositeExtract %float %590 2
- %701 = OpCompositeConstruct %v3float %698 %699 %700
- %702 = OpLoad %int %h_1
+ OpStore %param_5 %653
+ %654 = OpAccessChain %_ptr_Function_int %stack %644
+ OpStore %654 %635
+ %655 = OpLoad %int %top
+ %656 = OpAccessChain %_ptr_Function_int %stack %460
+ %657 = OpLoad %int %656
+ %658 = OpAccessChain %_ptr_Function_int %stack %460
+ OpStore %658 %31
+ %659 = OpAccessChain %_ptr_Function_int %stack %460
+ OpStore %659 %657
+ %660 = OpCompositeExtract %float %556 1
+ %661 = OpCompositeExtract %float %556 0
+ %662 = OpCompositeConstruct %v2float %660 %661
+ %663 = OpAccessChain %_ptr_Function_int %stack %644
+ %664 = OpLoad %int %663
+ %665 = OpAccessChain %_ptr_Function_int %stack %644
+ OpStore %665 %31
+ %666 = OpAccessChain %_ptr_Function_int %stack %644
+ OpStore %666 %664
+ %668 = OpBitcast %uint %655
+ %669 = OpIAdd %uint %uint_1 %668
+ %667 = OpBitcast %int %669
+ %670 = OpAccessChain %_ptr_Function_int %stack %460
+ %671 = OpLoad %int %670
+ %672 = OpAccessChain %_ptr_Function_int %stack %460
+ OpStore %672 %31
+ %673 = OpAccessChain %_ptr_Function_int %stack %460
+ OpStore %673 %671
+ %674 = OpCompositeExtract %float %567 2
+ %675 = OpCompositeExtract %float %662 1
+ %676 = OpCompositeExtract %float %567 2
+ %677 = OpCompositeConstruct %v3float %674 %675 %676
+ %678 = OpLoad %int %h_1
OpStore %h_1 %31
- OpStore %h_1 %702
- OpStore %top %691
- %703 = OpLoad %_arr_int_uint_10 %stack
- OpStore %stack %101
- OpStore %stack %703
- %704 = OpLoad %int %p
- %705 = OpCompositeExtract %float %590 0
- %706 = OpCompositeExtract %float %569 1
- %707 = OpCompositeConstruct %v2float %705 %706
- %708 = OpAccessChain %_ptr_Function_int %stack %561
- %709 = OpLoad %int %708
- %710 = OpAccessChain %_ptr_Function_int %stack %561
- OpStore %710 %31
- %711 = OpAccessChain %_ptr_Function_int %stack %561
- OpStore %711 %709
- %712 = OpAccessChain %_ptr_Function_int %stack %561
- %713 = OpLoad %int %712
- %714 = OpAccessChain %_ptr_Function_int %stack %561
- OpStore %714 %31
- %715 = OpAccessChain %_ptr_Function_int %stack %561
- OpStore %715 %713
- %716 = OpAccessChain %_ptr_Function_int %stack %691
- %717 = OpBitcast %int %uint_1
- %718 = OpISub %int %704 %717
- OpStore %716 %718
- %719 = OpAccessChain %_ptr_Function_int %stack %444
- %720 = OpLoad %int %719
- %721 = OpAccessChain %_ptr_Function_int %stack %444
- OpStore %721 %31
- %722 = OpAccessChain %_ptr_Function_int %stack %444
- OpStore %722 %720
- %723 = OpCompositeExtract %float %535 2
- %724 = OpCompositeExtract %float %535 1
- %725 = OpCompositeConstruct %v2float %723 %724
- %726 = OpAccessChain %_ptr_Function_int %stack %691
+ OpStore %h_1 %678
+ OpStore %top %667
+ %679 = OpLoad %_arr_int_uint_10 %stack
+ OpStore %stack %96
+ OpStore %stack %679
+ %680 = OpLoad %int %p
+ %681 = OpCompositeExtract %float %567 0
+ %682 = OpCompositeExtract %float %219 1
+ %683 = OpCompositeConstruct %v2float %681 %682
+ %684 = OpAccessChain %_ptr_Function_int %stack %541
+ %685 = OpLoad %int %684
+ %686 = OpAccessChain %_ptr_Function_int %stack %541
+ OpStore %686 %31
+ %687 = OpAccessChain %_ptr_Function_int %stack %541
+ OpStore %687 %685
+ %688 = OpAccessChain %_ptr_Function_int %stack %541
+ %689 = OpLoad %int %688
+ %690 = OpAccessChain %_ptr_Function_int %stack %541
+ OpStore %690 %31
+ %691 = OpAccessChain %_ptr_Function_int %stack %541
+ OpStore %691 %689
+ %692 = OpAccessChain %_ptr_Function_int %stack %667
+ %693 = OpBitcast %int %uint_1
+ %694 = OpISub %int %680 %693
+ OpStore %692 %694
+ %695 = OpAccessChain %_ptr_Function_int %stack %426
+ %696 = OpLoad %int %695
+ %697 = OpAccessChain %_ptr_Function_int %stack %426
+ OpStore %697 %31
+ %698 = OpAccessChain %_ptr_Function_int %stack %426
+ OpStore %698 %696
+ %699 = OpCompositeExtract %float %515 2
+ %700 = OpCompositeExtract %float %515 1
+ %701 = OpCompositeConstruct %v2float %699 %700
+ %702 = OpAccessChain %_ptr_Function_int %stack %667
+ %703 = OpLoad %int %702
+ %704 = OpAccessChain %_ptr_Function_int %stack %667
+ OpStore %704 %31
+ %705 = OpAccessChain %_ptr_Function_int %stack %667
+ OpStore %705 %703
+ OpBranch %616
+ %616 = OpLabel
+ %706 = OpAccessChain %_ptr_Function_int %stack %426
+ %707 = OpLoad %int %706
+ %708 = OpAccessChain %_ptr_Function_int %stack %426
+ OpStore %708 %31
+ %709 = OpAccessChain %_ptr_Function_int %stack %426
+ OpStore %709 %707
+ %711 = OpLoad %QuicksortObject %obj
+ OpStore %obj %97
+ OpStore %obj %711
+ %712 = OpLoad %int %p
+ %713 = OpAccessChain %_ptr_Function_int %stack %541
+ %714 = OpLoad %int %713
+ %715 = OpAccessChain %_ptr_Function_int %stack %541
+ OpStore %715 %31
+ %716 = OpAccessChain %_ptr_Function_int %stack %541
+ OpStore %716 %714
+ %717 = OpCompositeExtract %float %534 2
+ %718 = OpCompositeExtract %float %418 0
+ %719 = OpCompositeExtract %float %418 1
+ %720 = OpCompositeConstruct %v3float %717 %718 %719
+ %721 = OpLoad %int %p
+ OpStore %p %31
+ OpStore %p %721
+ %722 = OpCompositeExtract %float %468 2
+ %723 = OpCompositeExtract %float %468 0
+ %724 = OpCompositeExtract %float %556 0
+ %725 = OpCompositeConstruct %v3float %722 %723 %724
+ %726 = OpAccessChain %_ptr_Function_int %stack %541
%727 = OpLoad %int %726
- %728 = OpAccessChain %_ptr_Function_int %stack %691
+ %728 = OpAccessChain %_ptr_Function_int %stack %541
OpStore %728 %31
- %729 = OpAccessChain %_ptr_Function_int %stack %691
+ %729 = OpAccessChain %_ptr_Function_int %stack %541
OpStore %729 %727
- OpBranch %640
- %640 = OpLabel
- %730 = OpAccessChain %_ptr_Function_int %stack %444
- %731 = OpLoad %int %730
- %732 = OpAccessChain %_ptr_Function_int %stack %444
- OpStore %732 %31
- %733 = OpAccessChain %_ptr_Function_int %stack %444
- OpStore %733 %731
- %734 = OpCompositeExtract %float %37 0
- %735 = OpCompositeExtract %float %37 1
- %736 = OpCompositeConstruct %v2float %734 %735
- %737 = OpLoad %QuicksortObject %obj
- OpStore %obj %102
- OpStore %obj %737
- %738 = OpLoad %int %p
- %739 = OpAccessChain %_ptr_Function_int %stack %561
- %740 = OpLoad %int %739
- %741 = OpAccessChain %_ptr_Function_int %stack %561
- OpStore %741 %31
- %742 = OpAccessChain %_ptr_Function_int %stack %561
- OpStore %742 %740
- %743 = OpCompositeExtract %float %554 2
- %744 = OpCompositeExtract %float %434 0
- %745 = OpCompositeExtract %float %434 1
- %746 = OpCompositeConstruct %v3float %743 %744 %745
- %747 = OpLoad %int %p
- OpStore %p %31
- OpStore %p %747
- %748 = OpCompositeExtract %float %488 2
- %749 = OpCompositeExtract %float %488 0
- %750 = OpCompositeExtract %float %579 0
- %751 = OpCompositeConstruct %v3float %748 %749 %750
- %752 = OpAccessChain %_ptr_Function_int %stack %561
- %753 = OpLoad %int %752
- %754 = OpAccessChain %_ptr_Function_int %stack %561
- OpStore %754 %31
- %755 = OpAccessChain %_ptr_Function_int %stack %561
- OpStore %755 %753
- %756 = OpLoad %int %h_1
- %757 = OpLoad %int %top
+ %730 = OpLoad %int %h_1
+ %731 = OpLoad %int %top
OpStore %top %31
- OpStore %top %757
- %758 = OpCompositeExtract %float %461 2
- %759 = OpCompositeExtract %float %529 0
- %760 = OpCompositeExtract %float %461 0
- %761 = OpCompositeConstruct %v3float %758 %759 %760
- %762 = OpAccessChain %_ptr_Function_int %stack %480
- %763 = OpLoad %int %762
- %764 = OpAccessChain %_ptr_Function_int %stack %480
- OpStore %764 %31
- %765 = OpAccessChain %_ptr_Function_int %stack %480
- OpStore %765 %763
- %766 = OpLoad %int %p
+ OpStore %top %731
+ %732 = OpCompositeExtract %float %443 2
+ %733 = OpCompositeExtract %float %509 0
+ %734 = OpCompositeExtract %float %443 0
+ %735 = OpCompositeConstruct %v3float %732 %733 %734
+ %736 = OpAccessChain %_ptr_Function_int %stack %460
+ %737 = OpLoad %int %736
+ %738 = OpAccessChain %_ptr_Function_int %stack %460
+ OpStore %738 %31
+ %739 = OpAccessChain %_ptr_Function_int %stack %460
+ OpStore %739 %737
+ %740 = OpLoad %int %p
OpStore %p %31
- OpStore %p %766
- %768 = OpBitcast %uint %738
- %769 = OpIAdd %uint %uint_1 %768
- %767 = OpBitcast %int %769
- %770 = OpSLessThan %bool %767 %756
- OpSelectionMerge %771 None
- OpBranchConditional %770 %772 %771
- %772 = OpLabel
- %773 = OpAccessChain %_ptr_Function_int %stack %561
- %774 = OpLoad %int %773
- %775 = OpAccessChain %_ptr_Function_int %stack %561
- OpStore %775 %31
- %776 = OpAccessChain %_ptr_Function_int %stack %561
- OpStore %776 %774
- %777 = OpCompositeExtract %float %736 1
- %778 = OpCompositeExtract %float %632 0
- %779 = OpCompositeConstruct %v2float %777 %778
- %780 = OpLoad %int %l_1
+ OpStore %p %740
+ %742 = OpBitcast %uint %712
+ %743 = OpIAdd %uint %uint_1 %742
+ %741 = OpBitcast %int %743
+ %744 = OpSLessThan %bool %741 %730
+ OpSelectionMerge %745 None
+ OpBranchConditional %744 %746 %745
+ %746 = OpLabel
+ %747 = OpAccessChain %_ptr_Function_int %stack %541
+ %748 = OpLoad %int %747
+ %749 = OpAccessChain %_ptr_Function_int %stack %541
+ OpStore %749 %31
+ %750 = OpAccessChain %_ptr_Function_int %stack %541
+ OpStore %750 %748
+ %751 = OpCompositeExtract %float %710 1
+ %752 = OpCompositeExtract %float %608 0
+ %753 = OpCompositeConstruct %v2float %751 %752
+ %754 = OpLoad %int %l_1
OpStore %l_1 %31
- OpStore %l_1 %780
- %781 = OpLoad %int %top
- %782 = OpAccessChain %_ptr_Function_int %stack %561
- %783 = OpLoad %int %782
- %784 = OpAccessChain %_ptr_Function_int %stack %561
- OpStore %784 %31
- %785 = OpAccessChain %_ptr_Function_int %stack %561
- OpStore %785 %783
- %786 = OpCompositeExtract %float %475 1
- %787 = OpCompositeExtract %float %461 1
- %788 = OpCompositeExtract %float %461 1
- %789 = OpCompositeConstruct %v3float %786 %787 %788
- %790 = OpIAdd %int %781 %int_1
- %791 = OpLoad %int %param_5
+ OpStore %l_1 %754
+ %755 = OpLoad %int %top
+ %756 = OpAccessChain %_ptr_Function_int %stack %541
+ %757 = OpLoad %int %756
+ %758 = OpAccessChain %_ptr_Function_int %stack %541
+ OpStore %758 %31
+ %759 = OpAccessChain %_ptr_Function_int %stack %541
+ OpStore %759 %757
+ %760 = OpCompositeExtract %float %455 1
+ %761 = OpCompositeExtract %float %443 1
+ %762 = OpCompositeExtract %float %443 1
+ %763 = OpCompositeConstruct %v3float %760 %761 %762
+ %764 = OpIAdd %int %755 %int_1
+ %765 = OpLoad %int %param_5
OpStore %param_5 %31
- OpStore %param_5 %791
- OpStore %top %790
- %792 = OpAccessChain %_ptr_Function_int %stack %561
- %793 = OpLoad %int %792
- %794 = OpAccessChain %_ptr_Function_int %stack %561
- OpStore %794 %31
- %795 = OpAccessChain %_ptr_Function_int %stack %561
- OpStore %795 %793
- %796 = OpLoad %int %p
- %797 = OpLoad %int %param_5
+ OpStore %param_5 %765
+ OpStore %top %764
+ %766 = OpAccessChain %_ptr_Function_int %stack %541
+ %767 = OpLoad %int %766
+ %768 = OpAccessChain %_ptr_Function_int %stack %541
+ OpStore %768 %31
+ %769 = OpAccessChain %_ptr_Function_int %stack %541
+ OpStore %769 %767
+ %770 = OpLoad %int %p
+ %771 = OpLoad %int %param_5
OpStore %param_5 %31
- OpStore %param_5 %797
- %798 = OpCompositeExtract %float %461 2
- %799 = OpCompositeExtract %float %461 0
- %800 = OpCompositeExtract %float %529 0
- %801 = OpCompositeConstruct %v3float %798 %799 %800
- %802 = OpLoad %int %p
+ OpStore %param_5 %771
+ %772 = OpCompositeExtract %float %443 2
+ %773 = OpCompositeExtract %float %443 0
+ %774 = OpCompositeExtract %float %509 0
+ %775 = OpCompositeConstruct %v3float %772 %773 %774
+ %776 = OpLoad %int %p
OpStore %p %31
- OpStore %p %802
- %803 = OpCompositeExtract %float %434 0
- %804 = OpCompositeExtract %float %621 0
- %805 = OpCompositeExtract %float %621 0
- %806 = OpCompositeConstruct %v3float %803 %804 %805
- %807 = OpAccessChain %_ptr_Function_int %stack %480
- %808 = OpLoad %int %807
- %809 = OpAccessChain %_ptr_Function_int %stack %480
- OpStore %809 %31
- %810 = OpAccessChain %_ptr_Function_int %stack %480
- OpStore %810 %808
- %811 = OpAccessChain %_ptr_Function_int %stack %531
- %812 = OpLoad %int %811
- %813 = OpAccessChain %_ptr_Function_int %stack %531
- OpStore %813 %31
- %814 = OpAccessChain %_ptr_Function_int %stack %531
- OpStore %814 %812
- %815 = OpCompositeExtract %float %488 0
- %816 = OpCompositeExtract %float %488 1
- %817 = OpCompositeConstruct %v2float %815 %816
- %818 = OpAccessChain %_ptr_Function_int %stack %790
- %820 = OpBitcast %uint %796
- %821 = OpIAdd %uint %uint_1 %820
- %819 = OpBitcast %int %821
- OpStore %818 %819
- %822 = OpLoad %_arr_int_uint_10 %stack
- OpStore %stack %101
- OpStore %stack %822
- %823 = OpLoad %int %top
- %824 = OpAccessChain %_ptr_Function_int %stack %561
- %825 = OpLoad %int %824
- %826 = OpAccessChain %_ptr_Function_int %stack %561
- OpStore %826 %31
- %827 = OpAccessChain %_ptr_Function_int %stack %561
- OpStore %827 %825
- %828 = OpCompositeExtract %float %500 1
- %829 = OpCompositeExtract %float %801 1
- %830 = OpCompositeConstruct %v2float %828 %829
- %831 = OpLoad %_arr_int_uint_10 %stack
- OpStore %stack %101
- OpStore %stack %831
- %832 = OpBitcast %int %uint_1
- %833 = OpIAdd %int %823 %832
- %834 = OpAccessChain %_ptr_Function_int %stack %790
- %835 = OpLoad %int %834
- %836 = OpAccessChain %_ptr_Function_int %stack %790
- OpStore %836 %31
- %837 = OpAccessChain %_ptr_Function_int %stack %790
- OpStore %837 %835
- OpStore %top %833
- %838 = OpLoad %int %param_4
+ OpStore %p %776
+ %777 = OpCompositeExtract %float %418 0
+ %778 = OpCompositeExtract %float %597 0
+ %779 = OpCompositeExtract %float %597 0
+ %780 = OpCompositeConstruct %v3float %777 %778 %779
+ %781 = OpAccessChain %_ptr_Function_int %stack %460
+ %782 = OpLoad %int %781
+ %783 = OpAccessChain %_ptr_Function_int %stack %460
+ OpStore %783 %31
+ %784 = OpAccessChain %_ptr_Function_int %stack %460
+ OpStore %784 %782
+ %785 = OpAccessChain %_ptr_Function_int %stack %511
+ %786 = OpLoad %int %785
+ %787 = OpAccessChain %_ptr_Function_int %stack %511
+ OpStore %787 %31
+ %788 = OpAccessChain %_ptr_Function_int %stack %511
+ OpStore %788 %786
+ %789 = OpCompositeExtract %float %468 0
+ %790 = OpCompositeExtract %float %468 1
+ %791 = OpCompositeConstruct %v2float %789 %790
+ %792 = OpAccessChain %_ptr_Function_int %stack %764
+ %794 = OpBitcast %uint %770
+ %795 = OpIAdd %uint %uint_1 %794
+ %793 = OpBitcast %int %795
+ OpStore %792 %793
+ %796 = OpLoad %_arr_int_uint_10 %stack
+ OpStore %stack %96
+ OpStore %stack %796
+ %797 = OpLoad %int %top
+ %798 = OpAccessChain %_ptr_Function_int %stack %541
+ %799 = OpLoad %int %798
+ %800 = OpAccessChain %_ptr_Function_int %stack %541
+ OpStore %800 %31
+ %801 = OpAccessChain %_ptr_Function_int %stack %541
+ OpStore %801 %799
+ %802 = OpCompositeExtract %float %480 1
+ %803 = OpCompositeExtract %float %775 1
+ %804 = OpCompositeConstruct %v2float %802 %803
+ %805 = OpLoad %_arr_int_uint_10 %stack
+ OpStore %stack %96
+ OpStore %stack %805
+ %806 = OpBitcast %int %uint_1
+ %807 = OpIAdd %int %797 %806
+ %808 = OpAccessChain %_ptr_Function_int %stack %764
+ %809 = OpLoad %int %808
+ %810 = OpAccessChain %_ptr_Function_int %stack %764
+ OpStore %810 %31
+ %811 = OpAccessChain %_ptr_Function_int %stack %764
+ OpStore %811 %809
+ OpStore %top %807
+ %812 = OpLoad %int %param_4
OpStore %param_4 %31
- OpStore %param_4 %838
- %839 = OpLoad %int %h_1
- %840 = OpAccessChain %_ptr_Function_int %stack %480
- %841 = OpLoad %int %840
- %842 = OpAccessChain %_ptr_Function_int %stack %480
- OpStore %842 %31
- %843 = OpAccessChain %_ptr_Function_int %stack %480
- OpStore %843 %841
- %844 = OpAccessChain %_ptr_Function_int %stack %444
- %845 = OpLoad %int %844
- %846 = OpAccessChain %_ptr_Function_int %stack %444
- OpStore %846 %31
- %847 = OpAccessChain %_ptr_Function_int %stack %444
- OpStore %847 %845
- %848 = OpAccessChain %_ptr_Function_int %stack %833
- OpStore %848 %839
- %849 = OpAccessChain %_ptr_Function_int %stack %561
- %850 = OpLoad %int %849
- %851 = OpAccessChain %_ptr_Function_int %stack %561
- OpStore %851 %31
- %852 = OpAccessChain %_ptr_Function_int %stack %561
- OpStore %852 %850
- %853 = OpCompositeExtract %float %529 1
- %854 = OpCompositeExtract %float %495 0
- %855 = OpCompositeExtract %float %495 0
- %856 = OpCompositeConstruct %v3float %853 %854 %855
- %857 = OpLoad %int %l_1
+ OpStore %param_4 %812
+ %813 = OpLoad %int %h_1
+ %814 = OpAccessChain %_ptr_Function_int %stack %460
+ %815 = OpLoad %int %814
+ %816 = OpAccessChain %_ptr_Function_int %stack %460
+ OpStore %816 %31
+ %817 = OpAccessChain %_ptr_Function_int %stack %460
+ OpStore %817 %815
+ %818 = OpAccessChain %_ptr_Function_int %stack %426
+ %819 = OpLoad %int %818
+ %820 = OpAccessChain %_ptr_Function_int %stack %426
+ OpStore %820 %31
+ %821 = OpAccessChain %_ptr_Function_int %stack %426
+ OpStore %821 %819
+ %822 = OpAccessChain %_ptr_Function_int %stack %807
+ OpStore %822 %813
+ %823 = OpAccessChain %_ptr_Function_int %stack %541
+ %824 = OpLoad %int %823
+ %825 = OpAccessChain %_ptr_Function_int %stack %541
+ OpStore %825 %31
+ %826 = OpAccessChain %_ptr_Function_int %stack %541
+ OpStore %826 %824
+ %827 = OpCompositeExtract %float %509 1
+ %828 = OpCompositeExtract %float %475 0
+ %829 = OpCompositeExtract %float %475 0
+ %830 = OpCompositeConstruct %v3float %827 %828 %829
+ %831 = OpLoad %int %l_1
OpStore %l_1 %31
- OpStore %l_1 %857
- OpBranch %771
- %771 = OpLabel
- %858 = OpAccessChain %_ptr_Function_int %stack %480
- %859 = OpLoad %int %858
- %860 = OpAccessChain %_ptr_Function_int %stack %480
- OpStore %860 %31
- %861 = OpAccessChain %_ptr_Function_int %stack %480
- OpStore %861 %859
- OpBranch %505
- %505 = OpLabel
- %862 = OpLoad %int %l_1
+ OpStore %l_1 %831
+ OpBranch %745
+ %745 = OpLabel
+ %832 = OpAccessChain %_ptr_Function_int %stack %460
+ %833 = OpLoad %int %832
+ %834 = OpAccessChain %_ptr_Function_int %stack %460
+ OpStore %834 %31
+ %835 = OpAccessChain %_ptr_Function_int %stack %460
+ OpStore %835 %833
+ OpBranch %485
+ %485 = OpLabel
+ %836 = OpLoad %int %l_1
OpStore %l_1 %31
- OpStore %l_1 %862
- %863 = OpCompositeExtract %float %488 2
- %864 = OpCompositeExtract %float %495 0
- %865 = OpCompositeConstruct %v2float %863 %864
- %866 = OpLoad %QuicksortObject %obj
- OpStore %obj %102
- OpStore %obj %866
- OpBranch %503
- %504 = OpLabel
- %867 = OpLoad %int %h_1
+ OpStore %l_1 %836
+ %837 = OpCompositeExtract %float %468 2
+ %838 = OpCompositeExtract %float %475 0
+ %839 = OpCompositeConstruct %v2float %837 %838
+ %840 = OpLoad %QuicksortObject %obj
+ OpStore %obj %97
+ OpStore %obj %840
+ OpBranch %483
+ %484 = OpLabel
+ %841 = OpLoad %int %h_1
OpStore %h_1 %31
- OpStore %h_1 %867
+ OpStore %h_1 %841
OpReturn
OpFunctionEnd
- %main_1 = OpFunction %void None %418
- %869 = OpLabel
- %color = OpVariable %_ptr_Function_v3float Function %170
+ %main_1 = OpFunction %void None %404
+ %843 = OpLabel
+ %color = OpVariable %_ptr_Function_v3float Function %165
%i_2 = OpVariable %_ptr_Function_int Function %31
- %uv = OpVariable %_ptr_Function_v2float Function %167
- %873 = OpLoad %v2float %uv
- OpStore %uv %167
- OpStore %uv %873
+ %uv = OpVariable %_ptr_Function_v2float Function %162
+ %847 = OpLoad %v2float %uv
+ OpStore %uv %162
+ OpStore %uv %847
OpStore %i_2 %31
+ %848 = OpLoad %QuicksortObject %obj
+ OpStore %obj %97
+ OpStore %obj %848
+ OpSelectionMerge %850 None
+ OpBranchConditional %true %851 %850
+ %851 = OpLabel
+ %852 = OpLoad %QuicksortObject %obj
+ OpStore %obj %97
+ OpStore %obj %852
+ %853 = OpLoad %int %i_2
+ %854 = OpLoad %v2float %uv
+ OpStore %uv %162
+ OpStore %uv %854
+ %855 = OpLoad %v3float %color
+ OpStore %color %165
+ OpStore %color %855
+ %856 = OpCompositeExtract %float %423 1
+ %857 = OpCompositeExtract %float %423 1
+ %858 = OpCompositeConstruct %v2float %856 %857
+ %859 = OpLoad %QuicksortObject %obj
+ OpStore %obj %97
+ OpStore %obj %859
+ OpBranch %850
+ %850 = OpLabel
+ %860 = OpLoad %QuicksortObject %obj
+ OpStore %obj %97
+ OpStore %obj %860
+ %861 = OpLoad %int %i_2
+ OpStore %i_2 %31
+ OpStore %i_2 %861
+ %862 = OpFunctionCall %void %quicksort_
+ %863 = OpLoad %QuicksortObject %obj
+ OpStore %obj %97
+ OpStore %obj %863
+ %864 = OpLoad %v4float %gl_FragCoord
+ %865 = OpLoad %v2float %uv
+ OpStore %uv %162
+ OpStore %uv %865
+ %866 = OpLoad %v2float %uv
+ OpStore %uv %162
+ OpStore %uv %866
+ %867 = OpCompositeExtract %float %864 0
+ %868 = OpCompositeExtract %float %864 1
+ %869 = OpCompositeConstruct %v2float %867 %868
+ %870 = OpCompositeExtract %float %869 1
+ %871 = OpCompositeExtract %float %162 1
+ %872 = OpCompositeExtract %float %162 1
+ %873 = OpCompositeConstruct %v3float %870 %871 %872
%874 = OpLoad %QuicksortObject %obj
- OpStore %obj %102
+ OpStore %obj %97
OpStore %obj %874
- OpSelectionMerge %876 None
- OpBranchConditional %true %877 %876
- %877 = OpLabel
- %878 = OpLoad %QuicksortObject %obj
- OpStore %obj %102
- OpStore %obj %878
- %879 = OpCompositeExtract %float %37 0
- %880 = OpCompositeExtract %float %37 0
- %881 = OpCompositeConstruct %v2float %879 %880
- %882 = OpLoad %int %i_2
- %883 = OpLoad %v2float %uv
- OpStore %uv %167
- OpStore %uv %883
- %884 = OpLoad %v3float %color
- OpStore %color %170
- OpStore %color %884
- %885 = OpCompositeExtract %float %881 1
- %886 = OpCompositeExtract %float %881 1
- %887 = OpCompositeConstruct %v2float %885 %886
- %888 = OpLoad %QuicksortObject %obj
- OpStore %obj %102
- OpStore %obj %888
- OpBranch %876
- %876 = OpLabel
- %889 = OpLoad %QuicksortObject %obj
- OpStore %obj %102
- OpStore %obj %889
- %890 = OpCompositeExtract %float %167 0
- %891 = OpCompositeExtract %float %167 0
- %892 = OpCompositeConstruct %v2float %890 %891
- %893 = OpLoad %int %i_2
+ %875 = OpLoad %v2float %uv
+ OpStore %uv %162
+ OpStore %uv %875
+ %877 = OpAccessChain %_ptr_Uniform_v2float %x_188 %uint_0
+ %878 = OpLoad %v2float %877
+ %879 = OpLoad %QuicksortObject %obj
+ OpStore %obj %97
+ OpStore %obj %879
+ %880 = OpCompositeExtract %float %864 1
+ %881 = OpCompositeExtract %float %864 3
+ %882 = OpCompositeConstruct %v3float %880 %float_3 %881
+ %883 = OpLoad %v3float %color
+ OpStore %color %165
+ OpStore %color %883
+ %884 = OpFDiv %v2float %869 %878
+ %885 = OpLoad %QuicksortObject %obj
+ OpStore %obj %97
+ OpStore %obj %885
+ %886 = OpCompositeExtract %float %162 0
+ %887 = OpCompositeExtract %float %869 1
+ %888 = OpCompositeConstruct %v2float %886 %887
+ %889 = OpLoad %v3float %color
+ OpStore %color %165
+ %890 = OpLoad %v3float %color
+ OpStore %color %165
+ OpStore %color %890
+ OpStore %color %889
+ OpStore %uv %884
+ OpStore %color %891
+ %892 = OpLoad %v3float %color
+ OpStore %color %165
+ OpStore %color %892
+ %893 = OpCompositeExtract %float %869 0
+ %894 = OpCompositeExtract %float %869 1
+ %895 = OpCompositeExtract %float %162 1
+ %896 = OpCompositeConstruct %v3float %893 %894 %895
+ %897 = OpLoad %QuicksortObject %obj
+ OpStore %obj %97
+ OpStore %obj %897
+ %898 = OpAccessChain %_ptr_Private_int %obj %uint_0 %500
+ %899 = OpLoad %int %898
+ %900 = OpAccessChain %_ptr_Private_int %obj %uint_0 %500
+ OpStore %900 %31
+ %901 = OpAccessChain %_ptr_Private_int %obj %uint_0 %500
+ OpStore %901 %899
+ %902 = OpAccessChain %_ptr_Private_int %obj %uint_0 %500
+ %903 = OpLoad %int %902
+ %904 = OpLoad %QuicksortObject %obj
+ OpStore %obj %97
+ OpStore %obj %904
+ %905 = OpAccessChain %_ptr_Private_int %obj %uint_0 %500
+ %906 = OpLoad %int %905
+ %907 = OpAccessChain %_ptr_Private_int %obj %uint_0 %500
+ OpStore %907 %31
+ %908 = OpAccessChain %_ptr_Private_int %obj %uint_0 %500
+ OpStore %908 %906
+ %909 = OpAccessChain %_ptr_Function_float %color %uint_0
+ %910 = OpLoad %float %909
+ %911 = OpAccessChain %_ptr_Function_float %color %uint_0
+ %912 = OpLoad %float %911
+ %913 = OpAccessChain %_ptr_Function_float %color %uint_0
+ OpStore %913 %914
+ %915 = OpAccessChain %_ptr_Function_float %color %uint_0
+ OpStore %915 %912
+ %917 = OpLoad %int %i_2
OpStore %i_2 %31
- OpStore %i_2 %893
- %894 = OpFunctionCall %void %quicksort_
- %895 = OpLoad %QuicksortObject %obj
- OpStore %obj %102
- OpStore %obj %895
- %896 = OpLoad %v4float %gl_FragCoord
- %897 = OpLoad %v2float %uv
- OpStore %uv %167
- OpStore %uv %897
- %898 = OpCompositeExtract %float %167 1
- %899 = OpCompositeExtract %float %167 1
- %900 = OpCompositeConstruct %v2float %898 %899
- %901 = OpLoad %v2float %uv
- OpStore %uv %167
- OpStore %uv %901
- %902 = OpCompositeExtract %float %896 0
- %903 = OpCompositeExtract %float %896 1
- %904 = OpCompositeConstruct %v2float %902 %903
- %905 = OpCompositeExtract %float %904 1
- %906 = OpCompositeExtract %float %892 1
- %907 = OpCompositeExtract %float %892 1
- %908 = OpCompositeConstruct %v3float %905 %906 %907
- %909 = OpLoad %QuicksortObject %obj
- OpStore %obj %102
- OpStore %obj %909
- %910 = OpLoad %v2float %uv
- OpStore %uv %167
- OpStore %uv %910
- %912 = OpAccessChain %_ptr_Uniform_v2float %x_188 %uint_0
- %913 = OpLoad %v2float %912
- %914 = OpLoad %QuicksortObject %obj
- OpStore %obj %102
- OpStore %obj %914
- %915 = OpCompositeExtract %float %896 1
- %916 = OpCompositeExtract %float %37 2
- %917 = OpCompositeExtract %float %896 3
- %918 = OpCompositeConstruct %v3float %915 %916 %917
- %919 = OpLoad %v3float %color
- OpStore %color %170
- OpStore %color %919
- %920 = OpFDiv %v2float %904 %913
- %921 = OpLoad %QuicksortObject %obj
- OpStore %obj %102
- OpStore %obj %921
- %922 = OpCompositeExtract %float %900 0
- %923 = OpCompositeExtract %float %904 1
- %924 = OpCompositeConstruct %v2float %922 %923
- %925 = OpLoad %v3float %color
- OpStore %color %170
- %926 = OpLoad %v3float %color
- OpStore %color %170
- OpStore %color %926
- OpStore %color %925
- OpStore %uv %920
- OpStore %color %37
- %927 = OpLoad %v3float %color
- OpStore %color %170
- OpStore %color %927
- %928 = OpCompositeExtract %float %904 0
- %929 = OpCompositeExtract %float %904 1
- %930 = OpCompositeExtract %float %892 1
- %931 = OpCompositeConstruct %v3float %928 %929 %930
- %932 = OpLoad %QuicksortObject %obj
- OpStore %obj %102
- OpStore %obj %932
- %933 = OpAccessChain %_ptr_Private_int %obj %uint_0 %520
- %934 = OpLoad %int %933
- %935 = OpAccessChain %_ptr_Private_int %obj %uint_0 %520
- OpStore %935 %31
- %936 = OpAccessChain %_ptr_Private_int %obj %uint_0 %520
- OpStore %936 %934
- %937 = OpAccessChain %_ptr_Private_int %obj %uint_0 %520
- %938 = OpLoad %int %937
- %939 = OpLoad %QuicksortObject %obj
- OpStore %obj %102
- OpStore %obj %939
- %940 = OpAccessChain %_ptr_Private_int %obj %uint_0 %520
- %941 = OpLoad %int %940
- %942 = OpAccessChain %_ptr_Private_int %obj %uint_0 %520
- OpStore %942 %31
- %943 = OpAccessChain %_ptr_Private_int %obj %uint_0 %520
- OpStore %943 %941
- %944 = OpAccessChain %_ptr_Function_float %color %uint_0
- %945 = OpLoad %float %944
- %946 = OpAccessChain %_ptr_Function_float %color %uint_0
- %947 = OpLoad %float %946
- %948 = OpAccessChain %_ptr_Function_float %color %uint_0
- OpStore %948 %949
- %950 = OpAccessChain %_ptr_Function_float %color %uint_0
- OpStore %950 %947
- %951 = OpCompositeExtract %float %37 2
- %952 = OpCompositeExtract %float %37 1
- %953 = OpCompositeConstruct %v2float %951 %952
- %954 = OpLoad %int %i_2
+ OpStore %i_2 %917
+ %918 = OpLoad %QuicksortObject %obj
+ OpStore %obj %97
+ OpStore %obj %918
+ %919 = OpCompositeExtract %float %896 0
+ %920 = OpCompositeExtract %float %888 0
+ %921 = OpCompositeExtract %float %888 1
+ %922 = OpCompositeConstruct %v3float %919 %920 %921
+ %923 = OpAccessChain %_ptr_Function_float %color %uint_0
+ %924 = OpConvertSToF %float %903
+ %925 = OpFAdd %float %910 %924
+ OpStore %923 %925
+ %926 = OpLoad %v2float %uv
+ OpStore %uv %162
+ OpStore %uv %926
+ %927 = OpLoad %v2float %uv
+ OpStore %uv %162
+ OpStore %uv %927
+ %928 = OpCompositeExtract %float %864 1
+ %929 = OpCompositeExtract %float %864 1
+ %930 = OpCompositeConstruct %v2float %928 %929
+ %931 = OpAccessChain %_ptr_Function_float %uv %uint_0
+ %932 = OpLoad %float %931
+ %933 = OpCompositeExtract %float %884 1
+ %934 = OpCompositeExtract %float %884 0
+ %935 = OpCompositeConstruct %v2float %933 %934
+ %936 = OpAccessChain %_ptr_Function_float %uv %uint_0
+ %937 = OpLoad %float %936
+ %938 = OpAccessChain %_ptr_Function_float %uv %uint_0
+ OpStore %938 %914
+ %939 = OpAccessChain %_ptr_Function_float %uv %uint_0
+ OpStore %939 %937
+ %940 = OpLoad %QuicksortObject %obj
+ OpStore %obj %97
+ OpStore %obj %940
+ %942 = OpFOrdGreaterThan %bool %932 %float_0_25
+ OpSelectionMerge %943 None
+ OpBranchConditional %942 %944 %943
+ %944 = OpLabel
+ %945 = OpLoad %int %i_2
OpStore %i_2 %31
- OpStore %i_2 %954
- %955 = OpLoad %QuicksortObject %obj
- OpStore %obj %102
- OpStore %obj %955
- %956 = OpCompositeExtract %float %931 0
- %957 = OpCompositeExtract %float %924 0
- %958 = OpCompositeExtract %float %924 1
- %959 = OpCompositeConstruct %v3float %956 %957 %958
- %960 = OpAccessChain %_ptr_Function_float %color %uint_0
- %961 = OpConvertSToF %float %938
- %962 = OpFAdd %float %945 %961
- OpStore %960 %962
+ OpStore %i_2 %945
+ %946 = OpAccessChain %_ptr_Private_int %obj %uint_0 %500
+ %947 = OpLoad %int %946
+ %948 = OpAccessChain %_ptr_Private_int %obj %uint_0 %500
+ OpStore %948 %31
+ %949 = OpAccessChain %_ptr_Private_int %obj %uint_0 %500
+ OpStore %949 %947
+ %950 = OpCompositeExtract %float %873 1
+ %951 = OpCompositeExtract %float %873 1
+ %952 = OpCompositeConstruct %v3float %914 %950 %951
+ %953 = OpAccessChain %_ptr_Function_float %uv %uint_0
+ %954 = OpLoad %float %953
+ %955 = OpAccessChain %_ptr_Function_float %uv %uint_0
+ OpStore %955 %914
+ %956 = OpAccessChain %_ptr_Function_float %uv %uint_0
+ OpStore %956 %954
+ %957 = OpAccessChain %_ptr_Private_int %obj %uint_0 %int_1
+ %958 = OpLoad %int %957
+ %959 = OpLoad %QuicksortObject %obj
+ OpStore %obj %97
+ OpStore %obj %959
+ %960 = OpCompositeExtract %float %930 0
+ %961 = OpCompositeExtract %float %930 0
+ %962 = OpCompositeConstruct %v2float %960 %961
%963 = OpLoad %v2float %uv
- OpStore %uv %167
+ OpStore %uv %162
OpStore %uv %963
- %964 = OpLoad %v2float %uv
- OpStore %uv %167
- OpStore %uv %964
- %965 = OpCompositeExtract %float %896 1
- %966 = OpCompositeExtract %float %896 1
- %967 = OpCompositeConstruct %v2float %965 %966
- %968 = OpAccessChain %_ptr_Function_float %uv %uint_0
- %969 = OpLoad %float %968
- %970 = OpCompositeExtract %float %920 1
- %971 = OpCompositeExtract %float %920 0
- %972 = OpCompositeConstruct %v2float %970 %971
- %973 = OpAccessChain %_ptr_Function_float %uv %uint_0
- %974 = OpLoad %float %973
- %975 = OpAccessChain %_ptr_Function_float %uv %uint_0
- OpStore %975 %949
- %976 = OpAccessChain %_ptr_Function_float %uv %uint_0
- OpStore %976 %974
- %977 = OpLoad %QuicksortObject %obj
- OpStore %obj %102
- OpStore %obj %977
- %979 = OpFOrdGreaterThan %bool %969 %float_0_25
- OpSelectionMerge %980 None
- OpBranchConditional %979 %981 %980
- %981 = OpLabel
- %982 = OpLoad %int %i_2
+ %964 = OpLoad %QuicksortObject %obj
+ OpStore %obj %97
+ OpStore %obj %964
+ %966 = OpLoad %int %i_2
OpStore %i_2 %31
- OpStore %i_2 %982
- %983 = OpAccessChain %_ptr_Private_int %obj %uint_0 %520
- %984 = OpLoad %int %983
- %985 = OpAccessChain %_ptr_Private_int %obj %uint_0 %520
- OpStore %985 %31
- %986 = OpAccessChain %_ptr_Private_int %obj %uint_0 %520
- OpStore %986 %984
- %987 = OpCompositeExtract %float %167 1
- %988 = OpCompositeExtract %float %908 1
- %989 = OpCompositeExtract %float %908 1
- %990 = OpCompositeConstruct %v3float %987 %988 %989
- %991 = OpAccessChain %_ptr_Function_float %uv %uint_0
- %992 = OpLoad %float %991
+ OpStore %i_2 %966
+ %967 = OpAccessChain %_ptr_Function_float %color %31
+ %968 = OpLoad %float %967
+ %969 = OpAccessChain %_ptr_Function_float %color %31
+ %970 = OpLoad %float %969
+ %971 = OpAccessChain %_ptr_Function_float %color %31
+ OpStore %971 %914
+ %972 = OpAccessChain %_ptr_Function_float %color %31
+ OpStore %972 %970
+ %973 = OpLoad %v3float %color
+ OpStore %color %165
+ OpStore %color %973
+ %974 = OpLoad %v3float %color
+ OpStore %color %165
+ OpStore %color %974
+ %975 = OpCompositeExtract %float %930 1
+ %976 = OpCompositeExtract %float %930 1
+ %977 = OpCompositeExtract %float %162 1
+ %978 = OpCompositeConstruct %v3float %975 %976 %977
+ %979 = OpAccessChain %_ptr_Function_float %color %31
+ %980 = OpLoad %float %979
+ %981 = OpAccessChain %_ptr_Function_float %color %31
+ OpStore %981 %914
+ %982 = OpAccessChain %_ptr_Function_float %color %31
+ OpStore %982 %980
+ %983 = OpAccessChain %_ptr_Function_float %color %uint_0
+ %984 = OpConvertSToF %float %958
+ %985 = OpFAdd %float %984 %968
+ OpStore %983 %985
+ %986 = OpAccessChain %_ptr_Private_int %obj %uint_0 %500
+ %987 = OpLoad %int %986
+ %988 = OpAccessChain %_ptr_Private_int %obj %uint_0 %500
+ OpStore %988 %31
+ %989 = OpAccessChain %_ptr_Private_int %obj %uint_0 %500
+ OpStore %989 %987
+ OpBranch %943
+ %943 = OpLabel
+ %990 = OpAccessChain %_ptr_Function_float %uv %uint_0
+ %991 = OpLoad %float %990
+ %992 = OpAccessChain %_ptr_Function_float %uv %uint_0
+ OpStore %992 %914
%993 = OpAccessChain %_ptr_Function_float %uv %uint_0
- OpStore %993 %949
+ OpStore %993 %991
%994 = OpAccessChain %_ptr_Function_float %uv %uint_0
- OpStore %994 %992
- %995 = OpAccessChain %_ptr_Private_int %obj %uint_0 %int_1
- %996 = OpLoad %int %995
- %997 = OpLoad %QuicksortObject %obj
- OpStore %obj %102
- OpStore %obj %997
- %998 = OpCompositeExtract %float %967 0
- %999 = OpCompositeExtract %float %967 0
- %1000 = OpCompositeConstruct %v2float %998 %999
- %1001 = OpLoad %v2float %uv
- OpStore %uv %167
- OpStore %uv %1001
- %1002 = OpLoad %QuicksortObject %obj
- OpStore %obj %102
- OpStore %obj %1002
- %1003 = OpCompositeExtract %float %37 2
- %1004 = OpCompositeExtract %float %167 1
- %1005 = OpCompositeConstruct %v2float %1003 %1004
- %1006 = OpLoad %int %i_2
- OpStore %i_2 %31
- OpStore %i_2 %1006
- %1007 = OpAccessChain %_ptr_Function_float %color %31
- %1008 = OpLoad %float %1007
- %1009 = OpAccessChain %_ptr_Function_float %color %31
+ %995 = OpLoad %float %994
+ %996 = OpAccessChain %_ptr_Function_float %uv %uint_0
+ OpStore %996 %914
+ %997 = OpAccessChain %_ptr_Function_float %uv %uint_0
+ OpStore %997 %995
+ %998 = OpAccessChain %_ptr_Function_float %uv %uint_0
+ %999 = OpLoad %float %998
+ %1000 = OpAccessChain %_ptr_Function_float %uv %uint_0
+ %1001 = OpLoad %float %1000
+ %1002 = OpAccessChain %_ptr_Function_float %uv %uint_0
+ OpStore %1002 %914
+ %1003 = OpAccessChain %_ptr_Function_float %uv %uint_0
+ OpStore %1003 %1001
+ %1004 = OpCompositeExtract %float %922 2
+ %1005 = OpCompositeExtract %float %922 1
+ %1006 = OpCompositeExtract %float %922 1
+ %1007 = OpCompositeConstruct %v3float %1004 %1005 %1006
+ %1008 = OpLoad %v2float %uv
+ OpStore %uv %162
+ OpStore %uv %1008
+ %1009 = OpAccessChain %_ptr_Function_float %uv %uint_0
%1010 = OpLoad %float %1009
- %1011 = OpAccessChain %_ptr_Function_float %color %31
- OpStore %1011 %949
- %1012 = OpAccessChain %_ptr_Function_float %color %31
+ %1011 = OpAccessChain %_ptr_Function_float %uv %uint_0
+ OpStore %1011 %914
+ %1012 = OpAccessChain %_ptr_Function_float %uv %uint_0
OpStore %1012 %1010
- %1013 = OpLoad %v3float %color
- OpStore %color %170
- OpStore %color %1013
- %1014 = OpLoad %v3float %color
- OpStore %color %170
- OpStore %color %1014
- %1015 = OpCompositeExtract %float %967 1
- %1016 = OpCompositeExtract %float %967 1
- %1017 = OpCompositeExtract %float %900 1
- %1018 = OpCompositeConstruct %v3float %1015 %1016 %1017
- %1019 = OpAccessChain %_ptr_Function_float %color %31
- %1020 = OpLoad %float %1019
- %1021 = OpAccessChain %_ptr_Function_float %color %31
- OpStore %1021 %949
- %1022 = OpAccessChain %_ptr_Function_float %color %31
- OpStore %1022 %1020
- %1023 = OpAccessChain %_ptr_Function_float %color %uint_0
- %1024 = OpConvertSToF %float %996
- %1025 = OpFAdd %float %1024 %1008
- OpStore %1023 %1025
- %1026 = OpAccessChain %_ptr_Private_int %obj %uint_0 %520
- %1027 = OpLoad %int %1026
- %1028 = OpAccessChain %_ptr_Private_int %obj %uint_0 %520
- OpStore %1028 %31
- %1029 = OpAccessChain %_ptr_Private_int %obj %uint_0 %520
- OpStore %1029 %1027
- OpBranch %980
- %980 = OpLabel
- %1030 = OpAccessChain %_ptr_Function_float %uv %uint_0
- %1031 = OpLoad %float %1030
- %1032 = OpAccessChain %_ptr_Function_float %uv %uint_0
- OpStore %1032 %949
- %1033 = OpAccessChain %_ptr_Function_float %uv %uint_0
- OpStore %1033 %1031
- %1034 = OpAccessChain %_ptr_Function_float %uv %uint_0
- %1035 = OpLoad %float %1034
- %1036 = OpAccessChain %_ptr_Function_float %uv %uint_0
- OpStore %1036 %949
- %1037 = OpAccessChain %_ptr_Function_float %uv %uint_0
- OpStore %1037 %1035
- %1038 = OpAccessChain %_ptr_Function_float %uv %uint_0
- %1039 = OpLoad %float %1038
- %1040 = OpAccessChain %_ptr_Function_float %uv %uint_0
+ %1013 = OpAccessChain %_ptr_Function_float %uv %uint_0
+ %1014 = OpLoad %float %1013
+ %1015 = OpAccessChain %_ptr_Function_float %uv %uint_0
+ OpStore %1015 %914
+ %1016 = OpAccessChain %_ptr_Function_float %uv %uint_0
+ OpStore %1016 %1014
+ %1018 = OpFOrdGreaterThan %bool %999 %float_0_5
+ OpSelectionMerge %1019 None
+ OpBranchConditional %1018 %1020 %1019
+ %1020 = OpLabel
+ %1021 = OpAccessChain %_ptr_Function_float %uv %uint_0
+ %1022 = OpLoad %float %1021
+ %1023 = OpAccessChain %_ptr_Function_float %uv %uint_0
+ OpStore %1023 %914
+ %1024 = OpAccessChain %_ptr_Function_float %uv %uint_0
+ OpStore %1024 %1022
+ %1025 = OpCompositeExtract %float %162 0
+ %1026 = OpCompositeExtract %float %162 0
+ %1027 = OpCompositeConstruct %v2float %1025 %1026
+ %1028 = OpAccessChain %_ptr_Function_float %color %uint_0
+ %1029 = OpLoad %float %1028
+ %1030 = OpAccessChain %_ptr_Function_float %color %uint_0
+ OpStore %1030 %914
+ %1031 = OpAccessChain %_ptr_Function_float %color %uint_0
+ OpStore %1031 %1029
+ %1032 = OpAccessChain %_ptr_Function_float %color %uint_0
+ %1033 = OpLoad %float %1032
+ %1034 = OpAccessChain %_ptr_Function_float %color %uint_0
+ OpStore %1034 %914
+ %1035 = OpAccessChain %_ptr_Function_float %color %uint_0
+ OpStore %1035 %1033
+ %1036 = OpCompositeExtract %float %922 0
+ %1037 = OpCompositeExtract %float %922 2
+ %1038 = OpCompositeExtract %float %162 1
+ %1039 = OpCompositeConstruct %v3float %1036 %1037 %1038
+ %1040 = OpAccessChain %_ptr_Function_float %color %uint_0
%1041 = OpLoad %float %1040
- %1042 = OpAccessChain %_ptr_Function_float %uv %uint_0
- OpStore %1042 %949
- %1043 = OpAccessChain %_ptr_Function_float %uv %uint_0
+ %1042 = OpAccessChain %_ptr_Function_float %color %uint_0
+ OpStore %1042 %914
+ %1043 = OpAccessChain %_ptr_Function_float %color %uint_0
OpStore %1043 %1041
- %1044 = OpCompositeExtract %float %959 2
- %1045 = OpCompositeExtract %float %959 1
- %1046 = OpCompositeExtract %float %959 1
- %1047 = OpCompositeConstruct %v3float %1044 %1045 %1046
- %1048 = OpLoad %v2float %uv
- OpStore %uv %167
- OpStore %uv %1048
+ %1045 = OpAccessChain %_ptr_Private_int %obj %uint_0 %uint_2
+ %1046 = OpLoad %int %1045
+ %1047 = OpAccessChain %_ptr_Function_float %uv %uint_0
+ %1048 = OpLoad %float %1047
%1049 = OpAccessChain %_ptr_Function_float %uv %uint_0
- %1050 = OpLoad %float %1049
- %1051 = OpAccessChain %_ptr_Function_float %uv %uint_0
- OpStore %1051 %949
- %1052 = OpAccessChain %_ptr_Function_float %uv %uint_0
- OpStore %1052 %1050
- %1053 = OpCompositeExtract %float %167 1
- %1054 = OpCompositeExtract %float %167 1
- %1055 = OpCompositeConstruct %v2float %1053 %1054
- %1056 = OpAccessChain %_ptr_Function_float %uv %uint_0
- %1057 = OpLoad %float %1056
- %1058 = OpAccessChain %_ptr_Function_float %uv %uint_0
- OpStore %1058 %949
- %1059 = OpAccessChain %_ptr_Function_float %uv %uint_0
- OpStore %1059 %1057
- %1061 = OpFOrdGreaterThan %bool %1039 %float_0_5
- OpSelectionMerge %1062 None
- OpBranchConditional %1061 %1063 %1062
- %1063 = OpLabel
- %1064 = OpAccessChain %_ptr_Function_float %uv %uint_0
- %1065 = OpLoad %float %1064
- %1066 = OpAccessChain %_ptr_Function_float %uv %uint_0
- OpStore %1066 %949
- %1067 = OpAccessChain %_ptr_Function_float %uv %uint_0
- OpStore %1067 %1065
- %1068 = OpCompositeExtract %float %892 0
- %1069 = OpCompositeExtract %float %892 0
- %1070 = OpCompositeConstruct %v2float %1068 %1069
- %1071 = OpAccessChain %_ptr_Function_float %color %uint_0
- %1072 = OpLoad %float %1071
- %1073 = OpAccessChain %_ptr_Function_float %color %uint_0
- OpStore %1073 %949
- %1074 = OpAccessChain %_ptr_Function_float %color %uint_0
- OpStore %1074 %1072
+ OpStore %1049 %914
+ %1050 = OpAccessChain %_ptr_Function_float %uv %uint_0
+ OpStore %1050 %1048
+ %1051 = OpAccessChain %_ptr_Function_float %color %uint_0
+ %1052 = OpLoad %float %1051
+ %1053 = OpAccessChain %_ptr_Function_float %color %uint_0
+ OpStore %1053 %914
+ %1054 = OpAccessChain %_ptr_Function_float %color %uint_0
+ OpStore %1054 %1052
+ %1055 = OpAccessChain %_ptr_Private_int %obj %uint_0 %uint_2
+ %1056 = OpLoad %int %1055
+ %1057 = OpAccessChain %_ptr_Private_int %obj %uint_0 %uint_2
+ OpStore %1057 %31
+ %1058 = OpAccessChain %_ptr_Private_int %obj %uint_0 %uint_2
+ OpStore %1058 %1056
+ %1059 = OpCompositeExtract %float %888 1
+ %1060 = OpCompositeExtract %float %878 0
+ %1061 = OpCompositeConstruct %v2float %1059 %1060
+ %1062 = OpAccessChain %_ptr_Function_float %color %uint_1
+ %1063 = OpLoad %float %1062
+ %1064 = OpAccessChain %_ptr_Function_float %color %uint_1
+ OpStore %1064 %914
+ %1065 = OpAccessChain %_ptr_Function_float %color %uint_1
+ OpStore %1065 %1063
+ %1066 = OpAccessChain %_ptr_Function_float %color %uint_1
+ %1067 = OpLoad %float %1066
+ %1068 = OpAccessChain %_ptr_Private_int %obj %uint_0 %uint_2
+ %1069 = OpLoad %int %1068
+ %1070 = OpAccessChain %_ptr_Private_int %obj %uint_0 %uint_2
+ OpStore %1070 %31
+ %1071 = OpAccessChain %_ptr_Private_int %obj %uint_0 %uint_2
+ OpStore %1071 %1069
+ %1072 = OpCompositeExtract %float %1039 0
+ %1073 = OpCompositeExtract %float %869 0
+ %1074 = OpCompositeConstruct %v2float %1072 %1073
%1075 = OpAccessChain %_ptr_Function_float %color %uint_0
%1076 = OpLoad %float %1075
%1077 = OpAccessChain %_ptr_Function_float %color %uint_0
- OpStore %1077 %949
+ OpStore %1077 %914
%1078 = OpAccessChain %_ptr_Function_float %color %uint_0
OpStore %1078 %1076
- %1079 = OpCompositeExtract %float %959 0
- %1080 = OpCompositeExtract %float %959 2
- %1081 = OpCompositeExtract %float %1055 1
- %1082 = OpCompositeConstruct %v3float %1079 %1080 %1081
- %1083 = OpAccessChain %_ptr_Function_float %color %uint_0
- %1084 = OpLoad %float %1083
- %1085 = OpAccessChain %_ptr_Function_float %color %uint_0
- OpStore %1085 %949
- %1086 = OpAccessChain %_ptr_Function_float %color %uint_0
- OpStore %1086 %1084
- %1088 = OpAccessChain %_ptr_Private_int %obj %uint_0 %uint_2
- %1089 = OpLoad %int %1088
- %1090 = OpAccessChain %_ptr_Function_float %uv %uint_0
- %1091 = OpLoad %float %1090
- %1092 = OpAccessChain %_ptr_Function_float %uv %uint_0
- OpStore %1092 %949
- %1093 = OpAccessChain %_ptr_Function_float %uv %uint_0
- OpStore %1093 %1091
- %1094 = OpAccessChain %_ptr_Function_float %color %uint_0
+ %1079 = OpLoad %int %i_2
+ OpStore %i_2 %31
+ OpStore %i_2 %1079
+ %1080 = OpCompositeExtract %float %935 1
+ %1081 = OpCompositeConstruct %v2float %1080 %914
+ %1082 = OpLoad %int %i_2
+ OpStore %i_2 %31
+ OpStore %i_2 %1082
+ %1083 = OpAccessChain %_ptr_Function_float %color %uint_1
+ %1084 = OpConvertSToF %float %1046
+ %1085 = OpFAdd %float %1084 %1067
+ OpStore %1083 %1085
+ %1086 = OpAccessChain %_ptr_Function_float %uv %uint_0
+ %1087 = OpLoad %float %1086
+ %1088 = OpAccessChain %_ptr_Function_float %uv %uint_0
+ OpStore %1088 %914
+ %1089 = OpAccessChain %_ptr_Function_float %uv %uint_0
+ OpStore %1089 %1087
+ OpBranch %1019
+ %1019 = OpLabel
+ %1090 = OpLoad %int %i_2
+ OpStore %i_2 %31
+ OpStore %i_2 %1090
+ %1091 = OpCompositeExtract %float %878 0
+ %1092 = OpCompositeExtract %float %878 0
+ %1093 = OpCompositeConstruct %v2float %1091 %1092
+ %1094 = OpAccessChain %_ptr_Function_float %uv %uint_0
%1095 = OpLoad %float %1094
- %1096 = OpAccessChain %_ptr_Function_float %color %uint_0
- OpStore %1096 %949
- %1097 = OpAccessChain %_ptr_Function_float %color %uint_0
+ %1096 = OpAccessChain %_ptr_Function_float %uv %uint_0
+ OpStore %1096 %914
+ %1097 = OpAccessChain %_ptr_Function_float %uv %uint_0
OpStore %1097 %1095
- %1098 = OpAccessChain %_ptr_Private_int %obj %uint_0 %uint_2
- %1099 = OpLoad %int %1098
- %1100 = OpAccessChain %_ptr_Private_int %obj %uint_0 %uint_2
- OpStore %1100 %31
- %1101 = OpAccessChain %_ptr_Private_int %obj %uint_0 %uint_2
- OpStore %1101 %1099
- %1102 = OpCompositeExtract %float %924 1
- %1103 = OpCompositeExtract %float %913 0
- %1104 = OpCompositeConstruct %v2float %1102 %1103
- %1105 = OpAccessChain %_ptr_Function_float %color %uint_1
- %1106 = OpLoad %float %1105
- %1107 = OpAccessChain %_ptr_Function_float %color %uint_1
- OpStore %1107 %949
- %1108 = OpAccessChain %_ptr_Function_float %color %uint_1
- OpStore %1108 %1106
- %1109 = OpAccessChain %_ptr_Function_float %color %uint_1
+ %1098 = OpAccessChain %_ptr_Function_float %uv %31
+ %1099 = OpLoad %float %1098
+ %1100 = OpLoad %v3float %color
+ OpStore %color %165
+ OpStore %color %1100
+ %1101 = OpAccessChain %_ptr_Function_float %color %uint_0
+ %1102 = OpLoad %float %1101
+ %1103 = OpAccessChain %_ptr_Function_float %color %uint_0
+ OpStore %1103 %914
+ %1104 = OpAccessChain %_ptr_Function_float %color %uint_0
+ OpStore %1104 %1102
+ %1106 = OpFOrdGreaterThan %bool %1099 %float_0_75
+ OpSelectionMerge %1107 None
+ OpBranchConditional %1106 %1108 %1107
+ %1108 = OpLabel
+ %1109 = OpAccessChain %_ptr_Function_float %color %uint_0
%1110 = OpLoad %float %1109
- %1111 = OpAccessChain %_ptr_Private_int %obj %uint_0 %uint_2
- %1112 = OpLoad %int %1111
- %1113 = OpAccessChain %_ptr_Private_int %obj %uint_0 %uint_2
- OpStore %1113 %31
- %1114 = OpAccessChain %_ptr_Private_int %obj %uint_0 %uint_2
- OpStore %1114 %1112
- %1115 = OpCompositeExtract %float %1082 0
- %1116 = OpCompositeExtract %float %904 0
- %1117 = OpCompositeConstruct %v2float %1115 %1116
+ %1111 = OpAccessChain %_ptr_Function_float %color %uint_0
+ OpStore %1111 %914
+ %1112 = OpAccessChain %_ptr_Function_float %color %uint_0
+ OpStore %1112 %1110
+ %1114 = OpAccessChain %_ptr_Private_int %obj %uint_0 %int_3
+ %1115 = OpLoad %int %1114
+ %1116 = OpAccessChain %_ptr_Function_float %color %uint_0
+ %1117 = OpLoad %float %1116
%1118 = OpAccessChain %_ptr_Function_float %color %uint_0
- %1119 = OpLoad %float %1118
- %1120 = OpAccessChain %_ptr_Function_float %color %uint_0
- OpStore %1120 %949
- %1121 = OpAccessChain %_ptr_Function_float %color %uint_0
- OpStore %1121 %1119
- %1122 = OpLoad %int %i_2
- OpStore %i_2 %31
- OpStore %i_2 %1122
- %1123 = OpCompositeExtract %float %972 1
- %1124 = OpCompositeExtract %float %167 1
- %1125 = OpCompositeConstruct %v2float %1123 %1124
- %1126 = OpLoad %int %i_2
- OpStore %i_2 %31
- OpStore %i_2 %1126
- %1127 = OpAccessChain %_ptr_Function_float %color %uint_1
- %1128 = OpConvertSToF %float %1089
- %1129 = OpFAdd %float %1128 %1110
- OpStore %1127 %1129
- %1130 = OpAccessChain %_ptr_Function_float %uv %uint_0
- %1131 = OpLoad %float %1130
+ OpStore %1118 %914
+ %1119 = OpAccessChain %_ptr_Function_float %color %uint_0
+ OpStore %1119 %1117
+ %1120 = OpLoad %QuicksortObject %obj
+ OpStore %obj %97
+ OpStore %obj %1120
+ %1121 = OpCompositeExtract %float %1093 0
+ %1122 = OpCompositeExtract %float %1093 0
+ %1123 = OpCompositeExtract %float %1093 0
+ %1124 = OpCompositeConstruct %v3float %1121 %1122 %1123
+ %1125 = OpAccessChain %_ptr_Function_float %uv %31
+ %1126 = OpLoad %float %1125
+ %1127 = OpAccessChain %_ptr_Function_float %uv %31
+ OpStore %1127 %914
+ %1128 = OpAccessChain %_ptr_Function_float %uv %31
+ OpStore %1128 %1126
+ %1129 = OpAccessChain %_ptr_Function_float %uv %uint_0
+ %1130 = OpLoad %float %1129
+ %1131 = OpAccessChain %_ptr_Function_float %uv %uint_0
+ OpStore %1131 %914
%1132 = OpAccessChain %_ptr_Function_float %uv %uint_0
- OpStore %1132 %949
- %1133 = OpAccessChain %_ptr_Function_float %uv %uint_0
- OpStore %1133 %1131
- OpBranch %1062
- %1062 = OpLabel
- %1134 = OpLoad %int %i_2
- OpStore %i_2 %31
- OpStore %i_2 %1134
- %1135 = OpCompositeExtract %float %913 0
- %1136 = OpCompositeExtract %float %913 0
- %1137 = OpCompositeConstruct %v2float %1135 %1136
- %1138 = OpAccessChain %_ptr_Function_float %uv %uint_0
- %1139 = OpLoad %float %1138
- %1140 = OpAccessChain %_ptr_Function_float %uv %uint_0
- OpStore %1140 %949
- %1141 = OpAccessChain %_ptr_Function_float %uv %uint_0
- OpStore %1141 %1139
- %1142 = OpAccessChain %_ptr_Function_float %uv %31
- %1143 = OpLoad %float %1142
- %1144 = OpLoad %v3float %color
- OpStore %color %170
- OpStore %color %1144
- %1145 = OpAccessChain %_ptr_Function_float %color %uint_0
- %1146 = OpLoad %float %1145
- %1147 = OpAccessChain %_ptr_Function_float %color %uint_0
- OpStore %1147 %949
- %1148 = OpAccessChain %_ptr_Function_float %color %uint_0
- OpStore %1148 %1146
- %1150 = OpFOrdGreaterThan %bool %1143 %float_0_75
- OpSelectionMerge %1151 None
- OpBranchConditional %1150 %1152 %1151
- %1152 = OpLabel
- %1153 = OpAccessChain %_ptr_Function_float %color %uint_0
- %1154 = OpLoad %float %1153
- %1155 = OpAccessChain %_ptr_Function_float %color %uint_0
- OpStore %1155 %949
- %1156 = OpAccessChain %_ptr_Function_float %color %uint_0
- OpStore %1156 %1154
- %1158 = OpAccessChain %_ptr_Private_int %obj %uint_0 %int_3
- %1159 = OpLoad %int %1158
- %1160 = OpAccessChain %_ptr_Function_float %color %uint_0
- %1161 = OpLoad %float %1160
- %1162 = OpAccessChain %_ptr_Function_float %color %uint_0
- OpStore %1162 %949
- %1163 = OpAccessChain %_ptr_Function_float %color %uint_0
- OpStore %1163 %1161
- %1164 = OpLoad %QuicksortObject %obj
- OpStore %obj %102
- OpStore %obj %1164
- %1165 = OpCompositeExtract %float %1137 0
- %1166 = OpCompositeExtract %float %1137 0
- %1167 = OpCompositeExtract %float %1137 0
- %1168 = OpCompositeConstruct %v3float %1165 %1166 %1167
- %1169 = OpAccessChain %_ptr_Function_float %uv %31
- %1170 = OpLoad %float %1169
- %1171 = OpAccessChain %_ptr_Function_float %uv %31
- OpStore %1171 %949
+ OpStore %1132 %1130
+ %1133 = OpAccessChain %_ptr_Function_float %color %uint_2
+ %1134 = OpLoad %float %1133
+ %1135 = OpLoad %v3float %color
+ OpStore %color %165
+ OpStore %color %1135
+ %1136 = OpCompositeExtract %float %1093 0
+ %1137 = OpCompositeExtract %float %878 1
+ %1138 = OpCompositeExtract %float %1093 1
+ %1139 = OpCompositeConstruct %v3float %1136 %1137 %1138
+ %1140 = OpAccessChain %_ptr_Function_float %color %uint_2
+ %1141 = OpLoad %float %1140
+ %1142 = OpAccessChain %_ptr_Function_float %color %uint_2
+ OpStore %1142 %914
+ %1143 = OpAccessChain %_ptr_Function_float %color %uint_2
+ OpStore %1143 %1141
+ %1144 = OpAccessChain %_ptr_Private_int %obj %uint_0 %500
+ %1145 = OpLoad %int %1144
+ %1146 = OpAccessChain %_ptr_Private_int %obj %uint_0 %500
+ OpStore %1146 %31
+ %1147 = OpAccessChain %_ptr_Private_int %obj %uint_0 %500
+ OpStore %1147 %1145
+ %1148 = OpAccessChain %_ptr_Function_float %color %uint_2
+ %1149 = OpLoad %float %1148
+ %1150 = OpAccessChain %_ptr_Function_float %color %uint_2
+ OpStore %1150 %914
+ %1151 = OpAccessChain %_ptr_Function_float %color %uint_2
+ OpStore %1151 %1149
+ %1152 = OpAccessChain %_ptr_Function_float %color %uint_2
+ %1153 = OpConvertSToF %float %1115
+ %1154 = OpFAdd %float %1134 %1153
+ OpStore %1152 %1154
+ %1155 = OpLoad %v2float %uv
+ OpStore %uv %162
+ OpStore %uv %1155
+ %1156 = OpCompositeExtract %float %162 1
+ %1157 = OpCompositeExtract %float %162 1
+ %1158 = OpCompositeConstruct %v2float %1156 %1157
+ OpBranch %1107
+ %1107 = OpLabel
+ %1159 = OpAccessChain %_ptr_Function_float %uv %31
+ %1160 = OpLoad %float %1159
+ %1161 = OpAccessChain %_ptr_Function_float %uv %31
+ OpStore %1161 %914
+ %1162 = OpAccessChain %_ptr_Function_float %uv %31
+ OpStore %1162 %1160
+ %1163 = OpCompositeExtract %float %930 0
+ %1164 = OpCompositeExtract %float %930 1
+ %1165 = OpCompositeExtract %float %930 1
+ %1166 = OpCompositeConstruct %v3float %1163 %1164 %1165
+ %1168 = OpAccessChain %_ptr_Private_int %obj %uint_0 %int_4
+ %1169 = OpLoad %int %1168
+ %1170 = OpAccessChain %_ptr_Function_float %uv %31
+ %1171 = OpLoad %float %1170
%1172 = OpAccessChain %_ptr_Function_float %uv %31
- OpStore %1172 %1170
- %1173 = OpAccessChain %_ptr_Function_float %uv %uint_0
- %1174 = OpLoad %float %1173
- %1175 = OpAccessChain %_ptr_Function_float %uv %uint_0
- OpStore %1175 %949
- %1176 = OpAccessChain %_ptr_Function_float %uv %uint_0
- OpStore %1176 %1174
- %1177 = OpAccessChain %_ptr_Function_float %color %uint_2
- %1178 = OpLoad %float %1177
- %1179 = OpLoad %v3float %color
- OpStore %color %170
- OpStore %color %1179
- %1180 = OpCompositeExtract %float %1137 0
- %1181 = OpCompositeExtract %float %913 1
- %1182 = OpCompositeExtract %float %1137 1
- %1183 = OpCompositeConstruct %v3float %1180 %1181 %1182
- %1184 = OpAccessChain %_ptr_Function_float %color %uint_2
- %1185 = OpLoad %float %1184
- %1186 = OpAccessChain %_ptr_Function_float %color %uint_2
- OpStore %1186 %949
- %1187 = OpAccessChain %_ptr_Function_float %color %uint_2
- OpStore %1187 %1185
- %1188 = OpAccessChain %_ptr_Private_int %obj %uint_0 %520
- %1189 = OpLoad %int %1188
- %1190 = OpAccessChain %_ptr_Private_int %obj %uint_0 %520
- OpStore %1190 %31
- %1191 = OpAccessChain %_ptr_Private_int %obj %uint_0 %520
- OpStore %1191 %1189
- %1192 = OpCompositeExtract %float %167 0
- %1193 = OpCompositeExtract %float %167 1
- %1194 = OpCompositeConstruct %v2float %1192 %1193
- %1195 = OpAccessChain %_ptr_Function_float %color %uint_2
- %1196 = OpLoad %float %1195
- %1197 = OpAccessChain %_ptr_Function_float %color %uint_2
- OpStore %1197 %949
- %1198 = OpAccessChain %_ptr_Function_float %color %uint_2
- OpStore %1198 %1196
- %1199 = OpAccessChain %_ptr_Function_float %color %uint_2
- %1200 = OpConvertSToF %float %1159
- %1201 = OpFAdd %float %1178 %1200
- OpStore %1199 %1201
- %1202 = OpLoad %v2float %uv
- OpStore %uv %167
- OpStore %uv %1202
- %1203 = OpCompositeExtract %float %1194 1
- %1204 = OpCompositeExtract %float %1194 1
- %1205 = OpCompositeConstruct %v2float %1203 %1204
- OpBranch %1151
- %1151 = OpLabel
- %1206 = OpAccessChain %_ptr_Function_float %uv %31
- %1207 = OpLoad %float %1206
- %1208 = OpAccessChain %_ptr_Function_float %uv %31
- OpStore %1208 %949
- %1209 = OpAccessChain %_ptr_Function_float %uv %31
- OpStore %1209 %1207
- %1210 = OpCompositeExtract %float %967 0
- %1211 = OpCompositeExtract %float %967 1
- %1212 = OpCompositeExtract %float %967 1
- %1213 = OpCompositeConstruct %v3float %1210 %1211 %1212
- %1215 = OpAccessChain %_ptr_Private_int %obj %uint_0 %int_4
- %1216 = OpLoad %int %1215
- %1217 = OpAccessChain %_ptr_Function_float %uv %31
- %1218 = OpLoad %float %1217
- %1219 = OpAccessChain %_ptr_Function_float %uv %31
- OpStore %1219 %949
- %1220 = OpAccessChain %_ptr_Function_float %uv %31
- OpStore %1220 %1218
- %1221 = OpLoad %v3float %color
- OpStore %color %170
- OpStore %color %1221
- %1222 = OpCompositeExtract %float %892 1
- %1223 = OpCompositeExtract %float %959 0
- %1224 = OpCompositeExtract %float %959 0
- %1225 = OpCompositeConstruct %v3float %1222 %1223 %1224
- %1226 = OpAccessChain %_ptr_Private_int %obj %uint_0 %int_4
- %1227 = OpLoad %int %1226
- %1228 = OpAccessChain %_ptr_Private_int %obj %uint_0 %int_4
- OpStore %1228 %31
- %1229 = OpAccessChain %_ptr_Private_int %obj %uint_0 %int_4
+ OpStore %1172 %914
+ %1173 = OpAccessChain %_ptr_Function_float %uv %31
+ OpStore %1173 %1171
+ %1174 = OpLoad %v3float %color
+ OpStore %color %165
+ OpStore %color %1174
+ %1175 = OpCompositeExtract %float %162 1
+ %1176 = OpCompositeExtract %float %922 0
+ %1177 = OpCompositeExtract %float %922 0
+ %1178 = OpCompositeConstruct %v3float %1175 %1176 %1177
+ %1179 = OpAccessChain %_ptr_Private_int %obj %uint_0 %int_4
+ %1180 = OpLoad %int %1179
+ %1181 = OpAccessChain %_ptr_Private_int %obj %uint_0 %int_4
+ OpStore %1181 %31
+ %1182 = OpAccessChain %_ptr_Private_int %obj %uint_0 %int_4
+ OpStore %1182 %1180
+ %1183 = OpCompositeExtract %float %878 0
+ %1184 = OpCompositeExtract %float %864 2
+ %1185 = OpCompositeConstruct %v2float %1183 %1184
+ %1186 = OpAccessChain %_ptr_Function_float %uv %uint_0
+ %1187 = OpLoad %float %1186
+ %1188 = OpAccessChain %_ptr_Function_float %uv %uint_0
+ OpStore %1188 %914
+ %1189 = OpAccessChain %_ptr_Function_float %uv %uint_0
+ OpStore %1189 %1187
+ %1190 = OpAccessChain %_ptr_Function_float %color %uint_1
+ %1191 = OpLoad %float %1190
+ %1192 = OpAccessChain %_ptr_Function_float %color %uint_1
+ %1193 = OpLoad %float %1192
+ %1194 = OpAccessChain %_ptr_Function_float %color %uint_1
+ OpStore %1194 %914
+ %1195 = OpAccessChain %_ptr_Function_float %color %uint_1
+ OpStore %1195 %1193
+ %1196 = OpCompositeExtract %float %1093 0
+ %1197 = OpCompositeExtract %float %888 0
+ %1198 = OpCompositeConstruct %v2float %1196 %1197
+ %1199 = OpAccessChain %_ptr_Function_float %uv %uint_0
+ %1200 = OpLoad %float %1199
+ %1201 = OpAccessChain %_ptr_Function_float %uv %uint_0
+ OpStore %1201 %914
+ %1202 = OpAccessChain %_ptr_Function_float %uv %uint_0
+ OpStore %1202 %1200
+ %1203 = OpAccessChain %_ptr_Function_float %color %uint_0
+ %1204 = OpLoad %float %1203
+ %1205 = OpAccessChain %_ptr_Function_float %color %uint_0
+ OpStore %1205 %914
+ %1206 = OpAccessChain %_ptr_Function_float %color %uint_0
+ OpStore %1206 %1204
+ %1207 = OpCompositeExtract %float %896 2
+ %1208 = OpCompositeExtract %float %1007 1
+ %1209 = OpCompositeConstruct %v2float %1207 %1208
+ %1210 = OpAccessChain %_ptr_Function_float %color %uint_1
+ %1211 = OpConvertSToF %float %1169
+ %1212 = OpFAdd %float %1191 %1211
+ OpStore %1210 %1212
+ %1213 = OpCompositeExtract %float %1166 0
+ %1214 = OpCompositeConstruct %v3float %914 %1213 %914
+ %1215 = OpAccessChain %_ptr_Function_float %uv %uint_0
+ %1216 = OpLoad %float %1215
+ %1217 = OpAccessChain %_ptr_Function_float %uv %uint_0
+ OpStore %1217 %914
+ %1218 = OpAccessChain %_ptr_Function_float %uv %uint_0
+ OpStore %1218 %1216
+ %1219 = OpAccessChain %_ptr_Function_float %color %uint_0
+ %1220 = OpLoad %float %1219
+ %1221 = OpAccessChain %_ptr_Function_float %color %uint_0
+ OpStore %1221 %914
+ %1222 = OpAccessChain %_ptr_Function_float %color %uint_0
+ OpStore %1222 %1220
+ %1223 = OpCompositeExtract %float %1166 0
+ %1224 = OpCompositeExtract %float %1166 1
+ %1225 = OpCompositeConstruct %v2float %1223 %1224
+ %1226 = OpAccessChain %_ptr_Function_float %uv %uint_1
+ %1227 = OpLoad %float %1226
+ %1228 = OpAccessChain %_ptr_Function_float %uv %uint_1
+ OpStore %1228 %914
+ %1229 = OpAccessChain %_ptr_Function_float %uv %uint_1
OpStore %1229 %1227
- %1230 = OpCompositeExtract %float %913 0
- %1231 = OpCompositeExtract %float %896 2
- %1232 = OpCompositeConstruct %v2float %1230 %1231
- %1233 = OpAccessChain %_ptr_Function_float %uv %uint_0
- %1234 = OpLoad %float %1233
- %1235 = OpAccessChain %_ptr_Function_float %uv %uint_0
- OpStore %1235 %949
- %1236 = OpAccessChain %_ptr_Function_float %uv %uint_0
- OpStore %1236 %1234
- %1237 = OpAccessChain %_ptr_Function_float %color %uint_1
- %1238 = OpLoad %float %1237
+ %1230 = OpAccessChain %_ptr_Function_float %uv %uint_1
+ %1231 = OpLoad %float %1230
+ %1232 = OpLoad %int %i_2
+ OpStore %i_2 %31
+ OpStore %i_2 %1232
+ %1233 = OpCompositeExtract %float %930 1
+ %1234 = OpCompositeConstruct %v3float %914 %1233 %914
+ %1235 = OpAccessChain %_ptr_Private_int %obj %uint_0 %500
+ %1236 = OpLoad %int %1235
+ %1237 = OpAccessChain %_ptr_Private_int %obj %uint_0 %500
+ OpStore %1237 %31
+ %1238 = OpAccessChain %_ptr_Private_int %obj %uint_0 %500
+ OpStore %1238 %1236
%1239 = OpAccessChain %_ptr_Function_float %color %uint_1
%1240 = OpLoad %float %1239
%1241 = OpAccessChain %_ptr_Function_float %color %uint_1
- OpStore %1241 %949
+ OpStore %1241 %914
%1242 = OpAccessChain %_ptr_Function_float %color %uint_1
OpStore %1242 %1240
- %1243 = OpCompositeExtract %float %1137 0
- %1244 = OpCompositeExtract %float %924 0
- %1245 = OpCompositeConstruct %v2float %1243 %1244
+ %1243 = OpCompositeExtract %float %162 0
+ %1244 = OpCompositeExtract %float %162 0
+ %1245 = OpCompositeConstruct %v3float %1243 %1244 %914
%1246 = OpAccessChain %_ptr_Function_float %uv %uint_0
%1247 = OpLoad %float %1246
%1248 = OpAccessChain %_ptr_Function_float %uv %uint_0
- OpStore %1248 %949
+ OpStore %1248 %914
%1249 = OpAccessChain %_ptr_Function_float %uv %uint_0
OpStore %1249 %1247
- %1250 = OpAccessChain %_ptr_Function_float %color %uint_0
- %1251 = OpLoad %float %1250
- %1252 = OpAccessChain %_ptr_Function_float %color %uint_0
- OpStore %1252 %949
- %1253 = OpAccessChain %_ptr_Function_float %color %uint_0
- OpStore %1253 %1251
- %1254 = OpCompositeExtract %float %931 2
- %1255 = OpCompositeExtract %float %1047 1
- %1256 = OpCompositeConstruct %v2float %1254 %1255
- %1257 = OpAccessChain %_ptr_Function_float %color %uint_1
- %1258 = OpConvertSToF %float %1216
- %1259 = OpFAdd %float %1238 %1258
- OpStore %1257 %1259
- %1260 = OpCompositeExtract %float %167 0
- %1261 = OpCompositeExtract %float %1213 0
- %1262 = OpCompositeExtract %float %167 1
- %1263 = OpCompositeConstruct %v3float %1260 %1261 %1262
- %1264 = OpAccessChain %_ptr_Function_float %uv %uint_0
- %1265 = OpLoad %float %1264
- %1266 = OpAccessChain %_ptr_Function_float %uv %uint_0
- OpStore %1266 %949
- %1267 = OpAccessChain %_ptr_Function_float %uv %uint_0
- OpStore %1267 %1265
- %1268 = OpAccessChain %_ptr_Function_float %color %uint_0
+ %1250 = OpFOrdGreaterThan %bool %1231 %float_0_25
+ OpSelectionMerge %1251 None
+ OpBranchConditional %1250 %1252 %1251
+ %1252 = OpLabel
+ %1253 = OpCompositeExtract %float %162 0
+ %1254 = OpCompositeExtract %float %1245 2
+ %1255 = OpCompositeConstruct %v2float %1253 %1254
+ %1256 = OpLoad %v3float %color
+ OpStore %color %165
+ OpStore %color %1256
+ %1258 = OpAccessChain %_ptr_Private_int %obj %uint_0 %uint_5
+ %1259 = OpLoad %int %1258
+ %1260 = OpAccessChain %_ptr_Function_float %color %uint_0
+ %1261 = OpLoad %float %1260
+ %1262 = OpAccessChain %_ptr_Function_float %color %uint_0
+ OpStore %1262 %914
+ %1263 = OpAccessChain %_ptr_Function_float %color %uint_0
+ OpStore %1263 %1261
+ %1264 = OpLoad %int %i_2
+ OpStore %i_2 %31
+ OpStore %i_2 %1264
+ %1265 = OpLoad %int %i_2
+ OpStore %i_2 %31
+ OpStore %i_2 %1265
+ %1266 = OpAccessChain %_ptr_Function_float %color %uint_0
+ %1267 = OpLoad %float %1266
+ %1268 = OpAccessChain %_ptr_Function_float %uv %31
%1269 = OpLoad %float %1268
- %1270 = OpAccessChain %_ptr_Function_float %color %uint_0
- OpStore %1270 %949
- %1271 = OpAccessChain %_ptr_Function_float %color %uint_0
+ %1270 = OpAccessChain %_ptr_Function_float %uv %31
+ OpStore %1270 %914
+ %1271 = OpAccessChain %_ptr_Function_float %uv %31
OpStore %1271 %1269
- %1272 = OpCompositeExtract %float %1213 0
- %1273 = OpCompositeExtract %float %1213 1
- %1274 = OpCompositeConstruct %v2float %1272 %1273
- %1275 = OpAccessChain %_ptr_Function_float %uv %uint_1
- %1276 = OpLoad %float %1275
+ %1272 = OpCompositeExtract %float %935 0
+ %1273 = OpCompositeExtract %float %1198 1
+ %1274 = OpCompositeExtract %float %935 1
+ %1275 = OpCompositeConstruct %v3float %1272 %1273 %1274
+ %1276 = OpLoad %QuicksortObject %obj
+ OpStore %obj %97
+ OpStore %obj %1276
%1277 = OpAccessChain %_ptr_Function_float %uv %uint_1
- OpStore %1277 %949
- %1278 = OpAccessChain %_ptr_Function_float %uv %uint_1
- OpStore %1278 %1276
+ %1278 = OpLoad %float %1277
%1279 = OpAccessChain %_ptr_Function_float %uv %uint_1
- %1280 = OpLoad %float %1279
+ OpStore %1279 %914
+ %1280 = OpAccessChain %_ptr_Function_float %uv %uint_1
+ OpStore %1280 %1278
%1281 = OpLoad %int %i_2
OpStore %i_2 %31
OpStore %i_2 %1281
- %1282 = OpCompositeExtract %float %167 1
- %1283 = OpCompositeExtract %float %967 1
- %1284 = OpCompositeExtract %float %167 0
+ %1282 = OpCompositeExtract %float %864 3
+ %1283 = OpCompositeExtract %float %864 3
+ %1284 = OpCompositeExtract %float %884 0
%1285 = OpCompositeConstruct %v3float %1282 %1283 %1284
- %1286 = OpAccessChain %_ptr_Private_int %obj %uint_0 %520
- %1287 = OpLoad %int %1286
- %1288 = OpAccessChain %_ptr_Private_int %obj %uint_0 %520
- OpStore %1288 %31
- %1289 = OpAccessChain %_ptr_Private_int %obj %uint_0 %520
+ %1286 = OpAccessChain %_ptr_Function_float %uv %uint_0
+ %1287 = OpLoad %float %1286
+ %1288 = OpAccessChain %_ptr_Function_float %uv %uint_0
+ OpStore %1288 %914
+ %1289 = OpAccessChain %_ptr_Function_float %uv %uint_0
OpStore %1289 %1287
- %1290 = OpAccessChain %_ptr_Function_float %color %uint_1
- %1291 = OpLoad %float %1290
- %1292 = OpAccessChain %_ptr_Function_float %color %uint_1
- OpStore %1292 %949
- %1293 = OpAccessChain %_ptr_Function_float %color %uint_1
- OpStore %1293 %1291
- %1294 = OpCompositeExtract %float %892 0
- %1295 = OpCompositeExtract %float %892 0
- %1296 = OpCompositeExtract %float %167 1
- %1297 = OpCompositeConstruct %v3float %1294 %1295 %1296
- %1298 = OpAccessChain %_ptr_Function_float %uv %uint_0
- %1299 = OpLoad %float %1298
+ %1290 = OpAccessChain %_ptr_Function_float %color %uint_0
+ %1291 = OpConvertSToF %float %1259
+ %1292 = OpFAdd %float %1291 %1267
+ OpStore %1290 %1292
+ %1293 = OpCompositeExtract %float %930 1
+ %1294 = OpCompositeExtract %float %888 0
+ %1295 = OpCompositeExtract %float %930 1
+ %1296 = OpCompositeConstruct %v3float %1293 %1294 %1295
+ %1297 = OpAccessChain %_ptr_Function_float %uv %uint_0
+ %1298 = OpLoad %float %1297
+ %1299 = OpAccessChain %_ptr_Function_float %uv %uint_0
+ OpStore %1299 %914
%1300 = OpAccessChain %_ptr_Function_float %uv %uint_0
- OpStore %1300 %949
- %1301 = OpAccessChain %_ptr_Function_float %uv %uint_0
- OpStore %1301 %1299
- %1302 = OpFOrdGreaterThan %bool %1280 %float_0_25
- OpSelectionMerge %1303 None
- OpBranchConditional %1302 %1304 %1303
- %1304 = OpLabel
- %1305 = OpCompositeExtract %float %900 0
- %1306 = OpCompositeExtract %float %1297 2
- %1307 = OpCompositeConstruct %v2float %1305 %1306
- %1308 = OpLoad %v3float %color
- OpStore %color %170
- OpStore %color %1308
- %1310 = OpAccessChain %_ptr_Private_int %obj %uint_0 %uint_5
- %1311 = OpLoad %int %1310
- %1312 = OpAccessChain %_ptr_Function_float %color %uint_0
- %1313 = OpLoad %float %1312
- %1314 = OpAccessChain %_ptr_Function_float %color %uint_0
- OpStore %1314 %949
- %1315 = OpAccessChain %_ptr_Function_float %color %uint_0
- OpStore %1315 %1313
- %1316 = OpLoad %int %i_2
+ OpStore %1300 %1298
+ OpBranch %1251
+ %1251 = OpLabel
+ %1301 = OpAccessChain %_ptr_Function_float %color %uint_0
+ %1302 = OpLoad %float %1301
+ %1303 = OpAccessChain %_ptr_Function_float %color %uint_0
+ OpStore %1303 %914
+ %1304 = OpAccessChain %_ptr_Function_float %color %uint_0
+ OpStore %1304 %1302
+ %1305 = OpCompositeExtract %float %1093 0
+ %1306 = OpCompositeExtract %float %888 1
+ %1307 = OpCompositeExtract %float %888 0
+ %1308 = OpCompositeConstruct %v3float %1305 %1306 %1307
+ %1309 = OpAccessChain %_ptr_Function_float %uv %uint_1
+ %1310 = OpLoad %float %1309
+ %1311 = OpAccessChain %_ptr_Function_float %uv %uint_1
+ OpStore %1311 %914
+ %1312 = OpAccessChain %_ptr_Function_float %uv %uint_1
+ OpStore %1312 %1310
+ %1313 = OpAccessChain %_ptr_Private_int %obj %uint_0 %int_4
+ %1314 = OpLoad %int %1313
+ %1315 = OpAccessChain %_ptr_Private_int %obj %uint_0 %int_4
+ OpStore %1315 %31
+ %1316 = OpAccessChain %_ptr_Private_int %obj %uint_0 %int_4
+ OpStore %1316 %1314
+ %1317 = OpAccessChain %_ptr_Function_float %uv %uint_1
+ %1318 = OpLoad %float %1317
+ %1319 = OpAccessChain %_ptr_Private_int %obj %uint_0 %500
+ %1320 = OpLoad %int %1319
+ %1321 = OpAccessChain %_ptr_Private_int %obj %uint_0 %500
+ OpStore %1321 %31
+ %1322 = OpAccessChain %_ptr_Private_int %obj %uint_0 %500
+ OpStore %1322 %1320
+ %1323 = OpFOrdGreaterThan %bool %1318 %float_0_5
+ OpSelectionMerge %1324 None
+ OpBranchConditional %1323 %1325 %1324
+ %1325 = OpLabel
+ %1326 = OpAccessChain %_ptr_Function_float %uv %uint_0
+ %1327 = OpLoad %float %1326
+ %1328 = OpAccessChain %_ptr_Function_float %uv %uint_0
+ OpStore %1328 %914
+ %1329 = OpAccessChain %_ptr_Function_float %uv %uint_0
+ OpStore %1329 %1327
+ %1330 = OpCompositeExtract %float %1245 1
+ %1331 = OpCompositeExtract %float %935 1
+ %1332 = OpCompositeConstruct %v2float %1330 %1331
+ %1333 = OpAccessChain %_ptr_Function_float %color %uint_1
+ %1334 = OpLoad %float %1333
+ %1335 = OpAccessChain %_ptr_Function_float %color %uint_1
+ OpStore %1335 %914
+ %1336 = OpAccessChain %_ptr_Function_float %color %uint_1
+ OpStore %1336 %1334
+ %1337 = OpCompositeExtract %float %882 2
+ %1338 = OpCompositeExtract %float %882 1
+ %1339 = OpCompositeConstruct %v2float %1337 %1338
+ %1340 = OpAccessChain %_ptr_Function_float %uv %uint_1
+ %1341 = OpLoad %float %1340
+ %1342 = OpAccessChain %_ptr_Function_float %uv %uint_1
+ OpStore %1342 %914
+ %1343 = OpAccessChain %_ptr_Function_float %uv %uint_1
+ OpStore %1343 %1341
+ %1345 = OpAccessChain %_ptr_Private_int %obj %uint_0 %uint_6
+ %1346 = OpLoad %int %1345
+ %1347 = OpAccessChain %_ptr_Function_float %uv %uint_1
+ %1348 = OpLoad %float %1347
+ %1349 = OpAccessChain %_ptr_Function_float %uv %uint_1
+ OpStore %1349 %914
+ %1350 = OpAccessChain %_ptr_Function_float %uv %uint_1
+ OpStore %1350 %1348
+ %1351 = OpLoad %int %i_2
OpStore %i_2 %31
- OpStore %i_2 %1316
- %1317 = OpLoad %int %i_2
- OpStore %i_2 %31
- OpStore %i_2 %1317
- %1318 = OpAccessChain %_ptr_Function_float %color %uint_0
- %1319 = OpLoad %float %1318
- %1320 = OpAccessChain %_ptr_Function_float %uv %31
- %1321 = OpLoad %float %1320
- %1322 = OpAccessChain %_ptr_Function_float %uv %31
- OpStore %1322 %949
- %1323 = OpAccessChain %_ptr_Function_float %uv %31
- OpStore %1323 %1321
- %1324 = OpCompositeExtract %float %972 0
- %1325 = OpCompositeExtract %float %1245 1
- %1326 = OpCompositeExtract %float %972 1
- %1327 = OpCompositeConstruct %v3float %1324 %1325 %1326
- %1328 = OpLoad %QuicksortObject %obj
- OpStore %obj %102
- OpStore %obj %1328
- %1329 = OpAccessChain %_ptr_Function_float %uv %uint_1
- %1330 = OpLoad %float %1329
- %1331 = OpAccessChain %_ptr_Function_float %uv %uint_1
- OpStore %1331 %949
- %1332 = OpAccessChain %_ptr_Function_float %uv %uint_1
- OpStore %1332 %1330
- %1333 = OpLoad %int %i_2
- OpStore %i_2 %31
- OpStore %i_2 %1333
- %1334 = OpCompositeExtract %float %896 3
- %1335 = OpCompositeExtract %float %896 3
- %1336 = OpCompositeExtract %float %920 0
- %1337 = OpCompositeConstruct %v3float %1334 %1335 %1336
- %1338 = OpAccessChain %_ptr_Function_float %uv %uint_0
- %1339 = OpLoad %float %1338
- %1340 = OpAccessChain %_ptr_Function_float %uv %uint_0
- OpStore %1340 %949
- %1341 = OpAccessChain %_ptr_Function_float %uv %uint_0
- OpStore %1341 %1339
- %1342 = OpAccessChain %_ptr_Function_float %color %uint_0
- %1343 = OpConvertSToF %float %1311
- %1344 = OpFAdd %float %1343 %1319
- OpStore %1342 %1344
- %1345 = OpCompositeExtract %float %967 1
- %1346 = OpCompositeExtract %float %924 0
- %1347 = OpCompositeExtract %float %967 1
- %1348 = OpCompositeConstruct %v3float %1345 %1346 %1347
- %1349 = OpAccessChain %_ptr_Function_float %uv %uint_0
- %1350 = OpLoad %float %1349
- %1351 = OpAccessChain %_ptr_Function_float %uv %uint_0
- OpStore %1351 %949
- %1352 = OpAccessChain %_ptr_Function_float %uv %uint_0
- OpStore %1352 %1350
- OpBranch %1303
- %1303 = OpLabel
- %1353 = OpAccessChain %_ptr_Function_float %color %uint_0
- %1354 = OpLoad %float %1353
- %1355 = OpAccessChain %_ptr_Function_float %color %uint_0
- OpStore %1355 %949
- %1356 = OpAccessChain %_ptr_Function_float %color %uint_0
- OpStore %1356 %1354
- %1357 = OpCompositeExtract %float %1137 0
- %1358 = OpCompositeExtract %float %924 1
- %1359 = OpCompositeExtract %float %924 0
- %1360 = OpCompositeConstruct %v3float %1357 %1358 %1359
- %1361 = OpAccessChain %_ptr_Function_float %uv %uint_1
- %1362 = OpLoad %float %1361
- %1363 = OpAccessChain %_ptr_Function_float %uv %uint_1
- OpStore %1363 %949
- %1364 = OpAccessChain %_ptr_Function_float %uv %uint_1
- OpStore %1364 %1362
- %1365 = OpAccessChain %_ptr_Private_int %obj %uint_0 %int_4
- %1366 = OpLoad %int %1365
- %1367 = OpAccessChain %_ptr_Private_int %obj %uint_0 %int_4
- OpStore %1367 %31
- %1368 = OpAccessChain %_ptr_Private_int %obj %uint_0 %int_4
- OpStore %1368 %1366
- %1369 = OpAccessChain %_ptr_Function_float %uv %uint_1
- %1370 = OpLoad %float %1369
- %1371 = OpAccessChain %_ptr_Private_int %obj %uint_0 %520
- %1372 = OpLoad %int %1371
- %1373 = OpAccessChain %_ptr_Private_int %obj %uint_0 %520
- OpStore %1373 %31
- %1374 = OpAccessChain %_ptr_Private_int %obj %uint_0 %520
- OpStore %1374 %1372
- %1375 = OpFOrdGreaterThan %bool %1370 %float_0_5
- OpSelectionMerge %1376 None
- OpBranchConditional %1375 %1377 %1376
- %1377 = OpLabel
- %1378 = OpAccessChain %_ptr_Function_float %uv %uint_0
- %1379 = OpLoad %float %1378
- %1380 = OpAccessChain %_ptr_Function_float %uv %uint_0
- OpStore %1380 %949
- %1381 = OpAccessChain %_ptr_Function_float %uv %uint_0
- OpStore %1381 %1379
- %1382 = OpCompositeExtract %float %1297 1
- %1383 = OpCompositeExtract %float %972 1
- %1384 = OpCompositeConstruct %v2float %1382 %1383
- %1385 = OpAccessChain %_ptr_Function_float %color %uint_1
- %1386 = OpLoad %float %1385
- %1387 = OpAccessChain %_ptr_Function_float %color %uint_1
- OpStore %1387 %949
- %1388 = OpAccessChain %_ptr_Function_float %color %uint_1
- OpStore %1388 %1386
- %1389 = OpCompositeExtract %float %918 2
- %1390 = OpCompositeExtract %float %918 1
- %1391 = OpCompositeConstruct %v2float %1389 %1390
- %1392 = OpAccessChain %_ptr_Function_float %uv %uint_1
- %1393 = OpLoad %float %1392
- %1394 = OpAccessChain %_ptr_Function_float %uv %uint_1
- OpStore %1394 %949
- %1395 = OpAccessChain %_ptr_Function_float %uv %uint_1
- OpStore %1395 %1393
- %1397 = OpAccessChain %_ptr_Private_int %obj %uint_0 %uint_6
- %1398 = OpLoad %int %1397
- %1399 = OpAccessChain %_ptr_Function_float %uv %uint_1
- %1400 = OpLoad %float %1399
+ OpStore %i_2 %1351
+ %1352 = OpAccessChain %_ptr_Private_int %obj %uint_0 %int_4
+ %1353 = OpLoad %int %1352
+ %1354 = OpAccessChain %_ptr_Private_int %obj %uint_0 %int_4
+ OpStore %1354 %31
+ %1355 = OpAccessChain %_ptr_Private_int %obj %uint_0 %int_4
+ OpStore %1355 %1353
+ %1356 = OpCompositeExtract %float %1178 2
+ %1357 = OpCompositeExtract %float %1178 1
+ %1358 = OpCompositeConstruct %v2float %1356 %1357
+ %1359 = OpAccessChain %_ptr_Function_float %color %uint_1
+ %1360 = OpLoad %float %1359
+ %1361 = OpLoad %v2float %uv
+ OpStore %uv %162
+ OpStore %uv %1361
+ %1362 = OpAccessChain %_ptr_Function_float %color %uint_0
+ %1363 = OpLoad %float %1362
+ %1364 = OpAccessChain %_ptr_Function_float %color %uint_0
+ OpStore %1364 %914
+ %1365 = OpAccessChain %_ptr_Function_float %color %uint_0
+ OpStore %1365 %1363
+ %1366 = OpCompositeExtract %float %1198 1
+ %1367 = OpCompositeExtract %float %1198 0
+ %1368 = OpCompositeConstruct %v2float %1366 %1367
+ %1369 = OpAccessChain %_ptr_Private_int %obj %uint_0 %uint_6
+ %1370 = OpLoad %int %1369
+ %1371 = OpAccessChain %_ptr_Private_int %obj %uint_0 %uint_6
+ OpStore %1371 %31
+ %1372 = OpAccessChain %_ptr_Private_int %obj %uint_0 %uint_6
+ OpStore %1372 %1370
+ %1373 = OpAccessChain %_ptr_Private_int %obj %uint_0 %uint_6
+ %1374 = OpLoad %int %1373
+ %1375 = OpAccessChain %_ptr_Private_int %obj %uint_0 %uint_6
+ OpStore %1375 %31
+ %1376 = OpAccessChain %_ptr_Private_int %obj %uint_0 %uint_6
+ OpStore %1376 %1374
+ %1377 = OpCompositeExtract %float %1245 2
+ %1378 = OpCompositeExtract %float %1245 2
+ %1379 = OpCompositeConstruct %v2float %1377 %1378
+ %1380 = OpLoad %QuicksortObject %obj
+ OpStore %obj %97
+ OpStore %obj %1380
+ %1381 = OpAccessChain %_ptr_Function_float %color %uint_1
+ %1382 = OpConvertSToF %float %1346
+ %1383 = OpFAdd %float %1382 %1360
+ OpStore %1381 %1383
+ %1384 = OpAccessChain %_ptr_Function_float %color %uint_0
+ %1385 = OpLoad %float %1384
+ %1386 = OpAccessChain %_ptr_Function_float %color %uint_0
+ OpStore %1386 %914
+ %1387 = OpAccessChain %_ptr_Function_float %color %uint_0
+ OpStore %1387 %1385
+ %1388 = OpCompositeExtract %float %930 0
+ %1389 = OpCompositeConstruct %v2float %float_2 %1388
+ %1390 = OpAccessChain %_ptr_Function_float %color %uint_1
+ %1391 = OpLoad %float %1390
+ %1392 = OpAccessChain %_ptr_Function_float %color %uint_1
+ OpStore %1392 %914
+ %1393 = OpAccessChain %_ptr_Function_float %color %uint_1
+ OpStore %1393 %1391
+ OpBranch %1324
+ %1324 = OpLabel
+ %1394 = OpCompositeExtract %float %935 1
+ %1395 = OpCompositeExtract %float %935 1
+ %1396 = OpCompositeConstruct %v2float %1394 %1395
+ %1397 = OpAccessChain %_ptr_Function_float %color %uint_0
+ %1398 = OpLoad %float %1397
+ %1399 = OpAccessChain %_ptr_Function_float %color %uint_0
+ OpStore %1399 %914
+ %1400 = OpAccessChain %_ptr_Function_float %color %uint_0
+ OpStore %1400 %1398
%1401 = OpAccessChain %_ptr_Function_float %uv %uint_1
- OpStore %1401 %949
- %1402 = OpAccessChain %_ptr_Function_float %uv %uint_1
- OpStore %1402 %1400
- %1403 = OpLoad %int %i_2
- OpStore %i_2 %31
- OpStore %i_2 %1403
- %1404 = OpAccessChain %_ptr_Private_int %obj %uint_0 %int_4
- %1405 = OpLoad %int %1404
- %1406 = OpAccessChain %_ptr_Private_int %obj %uint_0 %int_4
- OpStore %1406 %31
- %1407 = OpAccessChain %_ptr_Private_int %obj %uint_0 %int_4
- OpStore %1407 %1405
- %1408 = OpCompositeExtract %float %1225 2
- %1409 = OpCompositeExtract %float %1225 1
- %1410 = OpCompositeConstruct %v2float %1408 %1409
+ %1402 = OpLoad %float %1401
+ %1403 = OpLoad %QuicksortObject %obj
+ OpStore %obj %97
+ OpStore %obj %1403
+ %1404 = OpCompositeExtract %float %1198 0
+ %1405 = OpCompositeExtract %float %1198 1
+ %1406 = OpCompositeConstruct %v2float %1404 %1405
+ %1407 = OpAccessChain %_ptr_Function_float %uv %31
+ %1408 = OpLoad %float %1407
+ %1409 = OpAccessChain %_ptr_Function_float %uv %31
+ OpStore %1409 %914
+ %1410 = OpAccessChain %_ptr_Function_float %uv %31
+ OpStore %1410 %1408
%1411 = OpAccessChain %_ptr_Function_float %color %uint_1
%1412 = OpLoad %float %1411
- %1413 = OpLoad %v2float %uv
- OpStore %uv %167
- OpStore %uv %1413
- %1414 = OpAccessChain %_ptr_Function_float %color %uint_0
- %1415 = OpLoad %float %1414
- %1416 = OpAccessChain %_ptr_Function_float %color %uint_0
- OpStore %1416 %949
- %1417 = OpAccessChain %_ptr_Function_float %color %uint_0
- OpStore %1417 %1415
- %1418 = OpCompositeExtract %float %1245 1
- %1419 = OpCompositeExtract %float %1245 0
- %1420 = OpCompositeConstruct %v2float %1418 %1419
- %1421 = OpAccessChain %_ptr_Private_int %obj %uint_0 %uint_6
- %1422 = OpLoad %int %1421
- %1423 = OpAccessChain %_ptr_Private_int %obj %uint_0 %uint_6
- OpStore %1423 %31
- %1424 = OpAccessChain %_ptr_Private_int %obj %uint_0 %uint_6
- OpStore %1424 %1422
- %1425 = OpAccessChain %_ptr_Private_int %obj %uint_0 %uint_6
- %1426 = OpLoad %int %1425
- %1427 = OpAccessChain %_ptr_Private_int %obj %uint_0 %uint_6
- OpStore %1427 %31
- %1428 = OpAccessChain %_ptr_Private_int %obj %uint_0 %uint_6
- OpStore %1428 %1426
- %1429 = OpCompositeExtract %float %1297 2
- %1430 = OpCompositeExtract %float %1297 2
- %1431 = OpCompositeConstruct %v2float %1429 %1430
- %1432 = OpLoad %QuicksortObject %obj
- OpStore %obj %102
- OpStore %obj %1432
- %1433 = OpAccessChain %_ptr_Function_float %color %uint_1
- %1434 = OpConvertSToF %float %1398
- %1435 = OpFAdd %float %1434 %1412
- OpStore %1433 %1435
- %1436 = OpAccessChain %_ptr_Function_float %color %uint_0
- %1437 = OpLoad %float %1436
- %1438 = OpAccessChain %_ptr_Function_float %color %uint_0
- OpStore %1438 %949
- %1439 = OpAccessChain %_ptr_Function_float %color %uint_0
- OpStore %1439 %1437
- %1440 = OpCompositeExtract %float %37 1
- %1441 = OpCompositeExtract %float %967 0
- %1442 = OpCompositeConstruct %v2float %1440 %1441
- %1443 = OpAccessChain %_ptr_Function_float %color %uint_1
- %1444 = OpLoad %float %1443
- %1445 = OpAccessChain %_ptr_Function_float %color %uint_1
- OpStore %1445 %949
- %1446 = OpAccessChain %_ptr_Function_float %color %uint_1
- OpStore %1446 %1444
- OpBranch %1376
- %1376 = OpLabel
- %1447 = OpCompositeExtract %float %972 1
- %1448 = OpCompositeExtract %float %972 1
- %1449 = OpCompositeConstruct %v2float %1447 %1448
- %1450 = OpAccessChain %_ptr_Function_float %color %uint_0
- %1451 = OpLoad %float %1450
- %1452 = OpAccessChain %_ptr_Function_float %color %uint_0
- OpStore %1452 %949
- %1453 = OpAccessChain %_ptr_Function_float %color %uint_0
- OpStore %1453 %1451
- %1454 = OpAccessChain %_ptr_Function_float %uv %uint_1
- %1455 = OpLoad %float %1454
- %1456 = OpLoad %QuicksortObject %obj
- OpStore %obj %102
- OpStore %obj %1456
- %1457 = OpCompositeExtract %float %1245 0
- %1458 = OpCompositeExtract %float %1245 1
- %1459 = OpCompositeConstruct %v2float %1457 %1458
- %1460 = OpAccessChain %_ptr_Function_float %uv %31
- %1461 = OpLoad %float %1460
- %1462 = OpAccessChain %_ptr_Function_float %uv %31
- OpStore %1462 %949
- %1463 = OpAccessChain %_ptr_Function_float %uv %31
- OpStore %1463 %1461
- %1464 = OpAccessChain %_ptr_Function_float %color %uint_1
- %1465 = OpLoad %float %1464
- %1466 = OpAccessChain %_ptr_Function_float %color %uint_1
- OpStore %1466 %949
- %1467 = OpAccessChain %_ptr_Function_float %color %uint_1
- OpStore %1467 %1465
- %1468 = OpCompositeExtract %float %913 0
- %1469 = OpCompositeExtract %float %913 1
- %1470 = OpCompositeExtract %float %913 1
- %1471 = OpCompositeConstruct %v3float %1468 %1469 %1470
- %1472 = OpAccessChain %_ptr_Private_int %obj %uint_0 %int_4
- %1473 = OpLoad %int %1472
- %1474 = OpAccessChain %_ptr_Private_int %obj %uint_0 %int_4
- OpStore %1474 %31
- %1475 = OpAccessChain %_ptr_Private_int %obj %uint_0 %int_4
+ %1413 = OpAccessChain %_ptr_Function_float %color %uint_1
+ OpStore %1413 %914
+ %1414 = OpAccessChain %_ptr_Function_float %color %uint_1
+ OpStore %1414 %1412
+ %1415 = OpCompositeExtract %float %878 0
+ %1416 = OpCompositeExtract %float %878 1
+ %1417 = OpCompositeExtract %float %878 1
+ %1418 = OpCompositeConstruct %v3float %1415 %1416 %1417
+ %1419 = OpAccessChain %_ptr_Private_int %obj %uint_0 %int_4
+ %1420 = OpLoad %int %1419
+ %1421 = OpAccessChain %_ptr_Private_int %obj %uint_0 %int_4
+ OpStore %1421 %31
+ %1422 = OpAccessChain %_ptr_Private_int %obj %uint_0 %int_4
+ OpStore %1422 %1420
+ %1423 = OpFOrdGreaterThan %bool %1402 %float_0_75
+ OpSelectionMerge %1424 None
+ OpBranchConditional %1423 %1425 %1424
+ %1425 = OpLabel
+ %1426 = OpLoad %v3float %color
+ OpStore %color %165
+ OpStore %color %1426
+ %1427 = OpAccessChain %_ptr_Function_float %color %uint_0
+ %1428 = OpLoad %float %1427
+ %1429 = OpAccessChain %_ptr_Function_float %color %uint_0
+ OpStore %1429 %914
+ %1430 = OpAccessChain %_ptr_Function_float %color %uint_0
+ OpStore %1430 %1428
+ %1431 = OpCompositeExtract %float %884 1
+ %1432 = OpCompositeExtract %float %884 0
+ %1433 = OpCompositeExtract %float %884 1
+ %1434 = OpCompositeConstruct %v3float %1431 %1432 %1433
+ %1435 = OpLoad %v3float %color
+ OpStore %color %165
+ OpStore %color %1435
+ %1437 = OpAccessChain %_ptr_Private_int %obj %uint_0 %int_7
+ %1438 = OpLoad %int %1437
+ %1439 = OpAccessChain %_ptr_Function_float %uv %uint_0
+ %1440 = OpLoad %float %1439
+ %1441 = OpAccessChain %_ptr_Function_float %uv %uint_0
+ OpStore %1441 %914
+ %1442 = OpAccessChain %_ptr_Function_float %uv %uint_0
+ OpStore %1442 %1440
+ %1443 = OpCompositeExtract %float %1198 0
+ %1444 = OpCompositeExtract %float %1093 1
+ %1445 = OpCompositeExtract %float %1093 0
+ %1446 = OpCompositeConstruct %v3float %1443 %1444 %1445
+ %1447 = OpAccessChain %_ptr_Function_float %color %uint_1
+ %1448 = OpLoad %float %1447
+ %1449 = OpAccessChain %_ptr_Function_float %color %uint_1
+ OpStore %1449 %914
+ %1450 = OpAccessChain %_ptr_Function_float %color %uint_1
+ OpStore %1450 %1448
+ %1451 = OpCompositeExtract %float %1214 0
+ %1452 = OpCompositeExtract %float %162 1
+ %1453 = OpCompositeConstruct %v2float %1451 %1452
+ %1454 = OpAccessChain %_ptr_Private_int %obj %uint_0 %500
+ %1455 = OpLoad %int %1454
+ %1456 = OpAccessChain %_ptr_Private_int %obj %uint_0 %500
+ OpStore %1456 %31
+ %1457 = OpAccessChain %_ptr_Private_int %obj %uint_0 %500
+ OpStore %1457 %1455
+ %1458 = OpAccessChain %_ptr_Function_float %color %uint_1
+ %1459 = OpLoad %float %1458
+ %1460 = OpAccessChain %_ptr_Function_float %color %uint_1
+ OpStore %1460 %914
+ %1461 = OpAccessChain %_ptr_Function_float %color %uint_1
+ OpStore %1461 %1459
+ %1462 = OpCompositeExtract %float %1225 0
+ %1463 = OpCompositeExtract %float %1225 1
+ %1464 = OpCompositeExtract %float %1225 0
+ %1465 = OpCompositeConstruct %v3float %1462 %1463 %1464
+ %1466 = OpAccessChain %_ptr_Function_float %color %uint_0
+ %1467 = OpLoad %float %1466
+ %1468 = OpAccessChain %_ptr_Function_float %color %uint_0
+ OpStore %1468 %914
+ %1469 = OpAccessChain %_ptr_Function_float %color %uint_0
+ OpStore %1469 %1467
+ %1470 = OpAccessChain %_ptr_Function_float %color %uint_2
+ %1471 = OpLoad %float %1470
+ %1472 = OpAccessChain %_ptr_Function_float %uv %uint_1
+ %1473 = OpLoad %float %1472
+ %1474 = OpAccessChain %_ptr_Function_float %uv %uint_1
+ OpStore %1474 %914
+ %1475 = OpAccessChain %_ptr_Function_float %uv %uint_1
OpStore %1475 %1473
- %1476 = OpFOrdGreaterThan %bool %1455 %float_0_75
- OpSelectionMerge %1477 None
- OpBranchConditional %1476 %1478 %1477
- %1478 = OpLabel
- %1479 = OpLoad %v3float %color
- OpStore %color %170
- OpStore %color %1479
- %1480 = OpAccessChain %_ptr_Function_float %color %uint_0
- %1481 = OpLoad %float %1480
- %1482 = OpAccessChain %_ptr_Function_float %color %uint_0
- OpStore %1482 %949
- %1483 = OpAccessChain %_ptr_Function_float %color %uint_0
- OpStore %1483 %1481
- %1484 = OpCompositeExtract %float %920 1
- %1485 = OpCompositeExtract %float %920 0
- %1486 = OpCompositeExtract %float %920 1
- %1487 = OpCompositeConstruct %v3float %1484 %1485 %1486
- %1488 = OpLoad %v3float %color
- OpStore %color %170
- OpStore %color %1488
- %1490 = OpAccessChain %_ptr_Private_int %obj %uint_0 %int_7
- %1491 = OpLoad %int %1490
- %1492 = OpAccessChain %_ptr_Function_float %uv %uint_0
- %1493 = OpLoad %float %1492
- %1494 = OpAccessChain %_ptr_Function_float %uv %uint_0
- OpStore %1494 %949
- %1495 = OpAccessChain %_ptr_Function_float %uv %uint_0
- OpStore %1495 %1493
- %1496 = OpCompositeExtract %float %1245 0
- %1497 = OpCompositeExtract %float %1137 1
- %1498 = OpCompositeExtract %float %1137 0
- %1499 = OpCompositeConstruct %v3float %1496 %1497 %1498
- %1500 = OpAccessChain %_ptr_Function_float %color %uint_1
- %1501 = OpLoad %float %1500
+ %1476 = OpCompositeExtract %float %864 0
+ %1477 = OpCompositeExtract %float %864 1
+ %1478 = OpCompositeConstruct %v2float %1476 %1477
+ %1479 = OpAccessChain %_ptr_Function_float %uv %uint_0
+ %1480 = OpLoad %float %1479
+ %1481 = OpAccessChain %_ptr_Function_float %uv %uint_0
+ OpStore %1481 %914
+ %1482 = OpAccessChain %_ptr_Function_float %uv %uint_0
+ OpStore %1482 %1480
+ %1483 = OpAccessChain %_ptr_Function_float %uv %uint_1
+ %1484 = OpLoad %float %1483
+ %1485 = OpAccessChain %_ptr_Function_float %uv %uint_1
+ OpStore %1485 %914
+ %1486 = OpAccessChain %_ptr_Function_float %uv %uint_1
+ OpStore %1486 %1484
+ %1487 = OpAccessChain %_ptr_Function_float %uv %uint_1
+ %1488 = OpLoad %float %1487
+ %1489 = OpAccessChain %_ptr_Function_float %uv %uint_1
+ OpStore %1489 %914
+ %1490 = OpAccessChain %_ptr_Function_float %uv %uint_1
+ OpStore %1490 %1488
+ %1491 = OpCompositeExtract %float %1478 1
+ %1492 = OpCompositeExtract %float %1478 1
+ %1493 = OpCompositeExtract %float %1418 2
+ %1494 = OpCompositeConstruct %v3float %1491 %1492 %1493
+ %1495 = OpAccessChain %_ptr_Function_float %color %uint_2
+ %1496 = OpLoad %float %1495
+ %1497 = OpAccessChain %_ptr_Function_float %color %uint_2
+ OpStore %1497 %914
+ %1498 = OpAccessChain %_ptr_Function_float %color %uint_2
+ OpStore %1498 %1496
+ %1499 = OpAccessChain %_ptr_Function_float %color %uint_2
+ %1500 = OpConvertSToF %float %1438
+ %1501 = OpFAdd %float %1500 %1471
+ OpStore %1499 %1501
%1502 = OpAccessChain %_ptr_Function_float %color %uint_1
- OpStore %1502 %949
- %1503 = OpAccessChain %_ptr_Function_float %color %uint_1
- OpStore %1503 %1501
- %1504 = OpCompositeExtract %float %1263 0
- %1505 = OpCompositeExtract %float %1055 1
- %1506 = OpCompositeConstruct %v2float %1504 %1505
- %1507 = OpAccessChain %_ptr_Private_int %obj %uint_0 %520
- %1508 = OpLoad %int %1507
- %1509 = OpAccessChain %_ptr_Private_int %obj %uint_0 %520
- OpStore %1509 %31
- %1510 = OpAccessChain %_ptr_Private_int %obj %uint_0 %520
- OpStore %1510 %1508
- %1511 = OpAccessChain %_ptr_Function_float %color %uint_1
- %1512 = OpLoad %float %1511
- %1513 = OpAccessChain %_ptr_Function_float %color %uint_1
- OpStore %1513 %949
- %1514 = OpAccessChain %_ptr_Function_float %color %uint_1
- OpStore %1514 %1512
- %1515 = OpCompositeExtract %float %1274 0
- %1516 = OpCompositeExtract %float %1274 1
- %1517 = OpCompositeExtract %float %1274 0
- %1518 = OpCompositeConstruct %v3float %1515 %1516 %1517
- %1519 = OpAccessChain %_ptr_Function_float %color %uint_0
- %1520 = OpLoad %float %1519
- %1521 = OpAccessChain %_ptr_Function_float %color %uint_0
- OpStore %1521 %949
- %1522 = OpAccessChain %_ptr_Function_float %color %uint_0
- OpStore %1522 %1520
- %1523 = OpAccessChain %_ptr_Function_float %color %uint_2
- %1524 = OpLoad %float %1523
- %1525 = OpAccessChain %_ptr_Function_float %uv %uint_1
- %1526 = OpLoad %float %1525
- %1527 = OpAccessChain %_ptr_Function_float %uv %uint_1
- OpStore %1527 %949
- %1528 = OpAccessChain %_ptr_Function_float %uv %uint_1
+ %1503 = OpLoad %float %1502
+ %1504 = OpAccessChain %_ptr_Function_float %color %uint_1
+ OpStore %1504 %914
+ %1505 = OpAccessChain %_ptr_Function_float %color %uint_1
+ OpStore %1505 %1503
+ %1506 = OpCompositeExtract %float %922 0
+ %1507 = OpCompositeExtract %float %922 2
+ %1508 = OpCompositeConstruct %v2float %1506 %1507
+ %1509 = OpAccessChain %_ptr_Function_float %color %uint_0
+ %1510 = OpLoad %float %1509
+ %1511 = OpAccessChain %_ptr_Function_float %color %uint_0
+ OpStore %1511 %914
+ %1512 = OpAccessChain %_ptr_Function_float %color %uint_0
+ OpStore %1512 %1510
+ OpBranch %1424
+ %1424 = OpLabel
+ %1513 = OpLoad %int %i_2
+ OpStore %i_2 %31
+ OpStore %i_2 %1513
+ %1514 = OpCompositeExtract %float %896 1
+ %1515 = OpCompositeExtract %float %884 1
+ %1516 = OpCompositeConstruct %v2float %1514 %1515
+ %1517 = OpLoad %v2float %uv
+ OpStore %uv %162
+ OpStore %uv %1517
+ %1519 = OpAccessChain %_ptr_Private_int %obj %uint_0 %int_8
+ %1520 = OpLoad %int %1519
+ %1521 = OpLoad %int %i_2
+ OpStore %i_2 %31
+ OpStore %i_2 %1521
+ %1522 = OpCompositeExtract %float %869 0
+ %1523 = OpCompositeExtract %float %896 2
+ %1524 = OpCompositeConstruct %v2float %1522 %1523
+ %1525 = OpAccessChain %_ptr_Private_int %obj %uint_0 %int_8
+ %1526 = OpLoad %int %1525
+ %1527 = OpAccessChain %_ptr_Private_int %obj %uint_0 %int_8
+ OpStore %1527 %31
+ %1528 = OpAccessChain %_ptr_Private_int %obj %uint_0 %int_8
OpStore %1528 %1526
- %1529 = OpCompositeExtract %float %896 0
- %1530 = OpCompositeExtract %float %896 1
- %1531 = OpCompositeConstruct %v2float %1529 %1530
- %1532 = OpAccessChain %_ptr_Function_float %uv %uint_0
- %1533 = OpLoad %float %1532
- %1534 = OpAccessChain %_ptr_Function_float %uv %uint_0
- OpStore %1534 %949
- %1535 = OpAccessChain %_ptr_Function_float %uv %uint_0
- OpStore %1535 %1533
- %1536 = OpAccessChain %_ptr_Function_float %uv %uint_1
- %1537 = OpLoad %float %1536
- %1538 = OpAccessChain %_ptr_Function_float %uv %uint_1
- OpStore %1538 %949
- %1539 = OpAccessChain %_ptr_Function_float %uv %uint_1
- OpStore %1539 %1537
- %1540 = OpAccessChain %_ptr_Function_float %uv %uint_1
- %1541 = OpLoad %float %1540
- %1542 = OpAccessChain %_ptr_Function_float %uv %uint_1
- OpStore %1542 %949
- %1543 = OpAccessChain %_ptr_Function_float %uv %uint_1
- OpStore %1543 %1541
- %1544 = OpCompositeExtract %float %1531 1
- %1545 = OpCompositeExtract %float %1531 1
- %1546 = OpCompositeExtract %float %1471 2
- %1547 = OpCompositeConstruct %v3float %1544 %1545 %1546
- %1548 = OpAccessChain %_ptr_Function_float %color %uint_2
- %1549 = OpLoad %float %1548
- %1550 = OpAccessChain %_ptr_Function_float %color %uint_2
- OpStore %1550 %949
- %1551 = OpAccessChain %_ptr_Function_float %color %uint_2
- OpStore %1551 %1549
- %1552 = OpAccessChain %_ptr_Function_float %color %uint_2
- %1553 = OpConvertSToF %float %1491
- %1554 = OpFAdd %float %1553 %1524
- OpStore %1552 %1554
- %1555 = OpAccessChain %_ptr_Function_float %color %uint_1
- %1556 = OpLoad %float %1555
- %1557 = OpAccessChain %_ptr_Function_float %color %uint_1
- OpStore %1557 %949
- %1558 = OpAccessChain %_ptr_Function_float %color %uint_1
- OpStore %1558 %1556
- %1559 = OpCompositeExtract %float %959 0
- %1560 = OpCompositeExtract %float %959 2
- %1561 = OpCompositeConstruct %v2float %1559 %1560
- %1562 = OpAccessChain %_ptr_Function_float %color %uint_0
- %1563 = OpLoad %float %1562
- %1564 = OpAccessChain %_ptr_Function_float %color %uint_0
- OpStore %1564 %949
- %1565 = OpAccessChain %_ptr_Function_float %color %uint_0
- OpStore %1565 %1563
- OpBranch %1477
- %1477 = OpLabel
- %1566 = OpLoad %int %i_2
- OpStore %i_2 %31
- OpStore %i_2 %1566
- %1567 = OpCompositeExtract %float %931 1
- %1568 = OpCompositeExtract %float %920 1
- %1569 = OpCompositeConstruct %v2float %1567 %1568
- %1570 = OpLoad %v2float %uv
- OpStore %uv %167
- OpStore %uv %1570
- %1572 = OpAccessChain %_ptr_Private_int %obj %uint_0 %int_8
- %1573 = OpLoad %int %1572
- %1574 = OpLoad %int %i_2
- OpStore %i_2 %31
- OpStore %i_2 %1574
- %1575 = OpCompositeExtract %float %904 0
- %1576 = OpCompositeExtract %float %931 2
- %1577 = OpCompositeConstruct %v2float %1575 %1576
- %1578 = OpAccessChain %_ptr_Private_int %obj %uint_0 %int_8
- %1579 = OpLoad %int %1578
- %1580 = OpAccessChain %_ptr_Private_int %obj %uint_0 %int_8
- OpStore %1580 %31
- %1581 = OpAccessChain %_ptr_Private_int %obj %uint_0 %int_8
- OpStore %1581 %1579
- %1582 = OpAccessChain %_ptr_Function_float %color %uint_1
- %1583 = OpLoad %float %1582
- %1584 = OpAccessChain %_ptr_Function_float %color %uint_1
- OpStore %1584 %949
- %1585 = OpAccessChain %_ptr_Function_float %color %uint_1
- OpStore %1585 %1583
- %1586 = OpCompositeExtract %float %959 1
- %1587 = OpCompositeExtract %float %167 0
- %1588 = OpCompositeConstruct %v2float %1586 %1587
- %1589 = OpAccessChain %_ptr_Function_float %color %uint_0
+ %1529 = OpAccessChain %_ptr_Function_float %color %uint_1
+ %1530 = OpLoad %float %1529
+ %1531 = OpAccessChain %_ptr_Function_float %color %uint_1
+ OpStore %1531 %914
+ %1532 = OpAccessChain %_ptr_Function_float %color %uint_1
+ OpStore %1532 %1530
+ %1533 = OpCompositeExtract %float %922 1
+ %1534 = OpCompositeConstruct %v2float %1533 %914
+ %1535 = OpAccessChain %_ptr_Function_float %color %uint_0
+ %1536 = OpLoad %float %1535
+ %1537 = OpAccessChain %_ptr_Function_float %color %uint_0
+ OpStore %1537 %914
+ %1538 = OpAccessChain %_ptr_Function_float %color %uint_0
+ OpStore %1538 %1536
+ %1539 = OpCompositeExtract %float %1534 0
+ %1540 = OpCompositeExtract %float %1534 1
+ %1541 = OpCompositeExtract %float %1534 0
+ %1542 = OpCompositeConstruct %v3float %1539 %1540 %1541
+ %1543 = OpAccessChain %_ptr_Function_float %color %uint_2
+ %1544 = OpLoad %float %1543
+ %1545 = OpAccessChain %_ptr_Function_float %color %uint_2
+ OpStore %1545 %914
+ %1546 = OpAccessChain %_ptr_Function_float %color %uint_2
+ OpStore %1546 %1544
+ %1547 = OpAccessChain %_ptr_Function_float %color %uint_2
+ %1548 = OpLoad %float %1547
+ %1549 = OpAccessChain %_ptr_Function_float %color %uint_0
+ %1550 = OpLoad %float %1549
+ %1551 = OpAccessChain %_ptr_Function_float %color %uint_0
+ OpStore %1551 %914
+ %1552 = OpAccessChain %_ptr_Function_float %color %uint_0
+ OpStore %1552 %1550
+ %1553 = OpCompositeExtract %float %1406 0
+ %1554 = OpCompositeExtract %float %1396 0
+ %1555 = OpCompositeConstruct %v2float %1553 %1554
+ %1556 = OpAccessChain %_ptr_Private_int %obj %uint_0 %int_4
+ %1557 = OpLoad %int %1556
+ %1558 = OpAccessChain %_ptr_Private_int %obj %uint_0 %int_4
+ OpStore %1558 %31
+ %1559 = OpAccessChain %_ptr_Private_int %obj %uint_0 %int_4
+ OpStore %1559 %1557
+ %1560 = OpAccessChain %_ptr_Function_float %uv %uint_1
+ %1561 = OpLoad %float %1560
+ %1562 = OpAccessChain %_ptr_Function_float %uv %uint_1
+ OpStore %1562 %914
+ %1563 = OpAccessChain %_ptr_Function_float %uv %uint_1
+ OpStore %1563 %1561
+ %1564 = OpCompositeExtract %float %162 0
+ %1565 = OpCompositeExtract %float %162 0
+ %1566 = OpCompositeConstruct %v2float %1564 %1565
+ %1567 = OpAccessChain %_ptr_Function_float %color %uint_1
+ %1568 = OpLoad %float %1567
+ %1569 = OpAccessChain %_ptr_Function_float %color %uint_1
+ OpStore %1569 %914
+ %1570 = OpAccessChain %_ptr_Function_float %color %uint_1
+ OpStore %1570 %1568
+ %1571 = OpAccessChain %_ptr_Function_float %color %uint_2
+ %1572 = OpConvertSToF %float %1520
+ %1573 = OpFAdd %float %1548 %1572
+ OpStore %1571 %1573
+ %1574 = OpLoad %v2float %uv
+ OpStore %uv %162
+ OpStore %uv %1574
+ %1575 = OpAccessChain %_ptr_Function_float %uv %uint_0
+ %1576 = OpLoad %float %1575
+ %1577 = OpAccessChain %_ptr_Function_float %uv %uint_0
+ OpStore %1577 %914
+ %1578 = OpAccessChain %_ptr_Function_float %uv %uint_0
+ OpStore %1578 %1576
+ %1579 = OpCompositeExtract %float %162 1
+ %1580 = OpCompositeExtract %float %162 0
+ %1581 = OpCompositeExtract %float %1555 1
+ %1582 = OpCompositeConstruct %v3float %1579 %1580 %1581
+ %1583 = OpAccessChain %_ptr_Function_float %uv %uint_0
+ %1584 = OpLoad %float %1583
+ %1585 = OpAccessChain %_ptr_Function_float %uv %uint_0
+ OpStore %1585 %914
+ %1586 = OpAccessChain %_ptr_Function_float %uv %uint_0
+ OpStore %1586 %1584
+ %1587 = OpAccessChain %_ptr_Function_float %uv %uint_0
+ %1588 = OpLoad %float %1587
+ %1589 = OpAccessChain %_ptr_Function_float %color %uint_1
%1590 = OpLoad %float %1589
- %1591 = OpAccessChain %_ptr_Function_float %color %uint_0
- OpStore %1591 %949
- %1592 = OpAccessChain %_ptr_Function_float %color %uint_0
+ %1591 = OpAccessChain %_ptr_Function_float %color %uint_1
+ OpStore %1591 %914
+ %1592 = OpAccessChain %_ptr_Function_float %color %uint_1
OpStore %1592 %1590
- %1593 = OpCompositeExtract %float %1588 0
- %1594 = OpCompositeExtract %float %1588 1
- %1595 = OpCompositeExtract %float %1588 0
+ %1593 = OpCompositeExtract %float %1524 1
+ %1594 = OpCompositeExtract %float %1524 0
+ %1595 = OpCompositeExtract %float %873 2
%1596 = OpCompositeConstruct %v3float %1593 %1594 %1595
- %1597 = OpAccessChain %_ptr_Function_float %color %uint_2
+ %1597 = OpAccessChain %_ptr_Function_float %uv %uint_1
%1598 = OpLoad %float %1597
- %1599 = OpAccessChain %_ptr_Function_float %color %uint_2
- OpStore %1599 %949
- %1600 = OpAccessChain %_ptr_Function_float %color %uint_2
+ %1599 = OpAccessChain %_ptr_Function_float %uv %uint_1
+ OpStore %1599 %914
+ %1600 = OpAccessChain %_ptr_Function_float %uv %uint_1
OpStore %1600 %1598
- %1601 = OpAccessChain %_ptr_Function_float %color %uint_2
+ %1601 = OpAccessChain %_ptr_Function_float %uv %uint_1
%1602 = OpLoad %float %1601
- %1603 = OpAccessChain %_ptr_Function_float %color %uint_0
+ %1603 = OpAccessChain %_ptr_Function_float %uv %uint_1
%1604 = OpLoad %float %1603
- %1605 = OpAccessChain %_ptr_Function_float %color %uint_0
- OpStore %1605 %949
- %1606 = OpAccessChain %_ptr_Function_float %color %uint_0
+ %1605 = OpAccessChain %_ptr_Function_float %uv %uint_1
+ OpStore %1605 %914
+ %1606 = OpAccessChain %_ptr_Function_float %uv %uint_1
OpStore %1606 %1604
- %1607 = OpCompositeExtract %float %1459 0
- %1608 = OpCompositeExtract %float %1449 0
- %1609 = OpCompositeConstruct %v2float %1607 %1608
- %1610 = OpAccessChain %_ptr_Private_int %obj %uint_0 %int_4
- %1611 = OpLoad %int %1610
- %1612 = OpAccessChain %_ptr_Private_int %obj %uint_0 %int_4
- OpStore %1612 %31
- %1613 = OpAccessChain %_ptr_Private_int %obj %uint_0 %int_4
- OpStore %1613 %1611
- %1614 = OpAccessChain %_ptr_Function_float %uv %uint_1
+ %1607 = OpAccessChain %_ptr_Function_float %color %uint_2
+ %1608 = OpLoad %float %1607
+ %1609 = OpAccessChain %_ptr_Function_float %color %uint_2
+ OpStore %1609 %914
+ %1610 = OpAccessChain %_ptr_Function_float %color %uint_2
+ OpStore %1610 %1608
+ %1611 = OpCompositeExtract %float %1308 1
+ %1612 = OpCompositeExtract %float %1308 2
+ %1613 = OpCompositeConstruct %v3float %float_2 %1611 %1612
+ %1614 = OpAccessChain %_ptr_Function_float %color %uint_2
%1615 = OpLoad %float %1614
- %1616 = OpAccessChain %_ptr_Function_float %uv %uint_1
- OpStore %1616 %949
- %1617 = OpAccessChain %_ptr_Function_float %uv %uint_1
+ %1616 = OpAccessChain %_ptr_Function_float %color %uint_2
+ OpStore %1616 %914
+ %1617 = OpAccessChain %_ptr_Function_float %color %uint_2
OpStore %1617 %1615
- %1618 = OpCompositeExtract %float %1055 0
- %1619 = OpCompositeExtract %float %900 0
- %1620 = OpCompositeConstruct %v2float %1618 %1619
- %1621 = OpAccessChain %_ptr_Function_float %color %uint_1
- %1622 = OpLoad %float %1621
- %1623 = OpAccessChain %_ptr_Function_float %color %uint_1
- OpStore %1623 %949
- %1624 = OpAccessChain %_ptr_Function_float %color %uint_1
- OpStore %1624 %1622
- %1625 = OpAccessChain %_ptr_Function_float %color %uint_2
- %1626 = OpConvertSToF %float %1573
- %1627 = OpFAdd %float %1602 %1626
- OpStore %1625 %1627
- %1628 = OpLoad %v2float %uv
- OpStore %uv %167
- OpStore %uv %1628
- %1629 = OpAccessChain %_ptr_Function_float %uv %uint_0
- %1630 = OpLoad %float %1629
- %1631 = OpAccessChain %_ptr_Function_float %uv %uint_0
- OpStore %1631 %949
- %1632 = OpAccessChain %_ptr_Function_float %uv %uint_0
- OpStore %1632 %1630
- %1633 = OpCompositeExtract %float %1055 1
- %1634 = OpCompositeExtract %float %1055 0
- %1635 = OpCompositeExtract %float %1609 1
- %1636 = OpCompositeConstruct %v3float %1633 %1634 %1635
- %1637 = OpAccessChain %_ptr_Function_float %uv %uint_0
- %1638 = OpLoad %float %1637
- %1639 = OpAccessChain %_ptr_Function_float %uv %uint_0
- OpStore %1639 %949
- %1640 = OpAccessChain %_ptr_Function_float %uv %uint_0
- OpStore %1640 %1638
+ %1618 = OpLoad %int %i_2
+ OpStore %i_2 %31
+ OpStore %i_2 %1618
+ %1619 = OpCompositeExtract %float %1308 2
+ %1620 = OpCompositeExtract %float %1308 1
+ %1621 = OpCompositeConstruct %v2float %1619 %1620
+ %1622 = OpLoad %v3float %color
+ OpStore %color %165
+ OpStore %color %1622
+ %1623 = OpAccessChain %_ptr_Function_float %uv %uint_1
+ %1624 = OpLoad %float %1623
+ %1625 = OpAccessChain %_ptr_Function_float %uv %uint_1
+ OpStore %1625 %914
+ %1626 = OpAccessChain %_ptr_Function_float %uv %uint_1
+ OpStore %1626 %1624
+ %1627 = OpCompositeExtract %float %935 1
+ %1628 = OpCompositeExtract %float %935 1
+ %1629 = OpCompositeExtract %float %935 1
+ %1630 = OpCompositeConstruct %v3float %1627 %1628 %1629
+ %1631 = OpAccessChain %_ptr_Private_int %obj %uint_0 %int_4
+ %1632 = OpLoad %int %1631
+ %1633 = OpAccessChain %_ptr_Private_int %obj %uint_0 %int_4
+ OpStore %1633 %31
+ %1634 = OpAccessChain %_ptr_Private_int %obj %uint_0 %int_4
+ OpStore %1634 %1632
+ %1637 = OpFSub %float %1588 %1602
+ %1635 = OpExtInst %float %1636 FAbs %1637
+ %1638 = OpFOrdLessThan %bool %1635 %float_0_25
+ OpSelectionMerge %1639 None
+ OpBranchConditional %1638 %1640 %1639
+ %1640 = OpLabel
%1641 = OpAccessChain %_ptr_Function_float %uv %uint_0
%1642 = OpLoad %float %1641
- %1643 = OpAccessChain %_ptr_Function_float %color %uint_1
- %1644 = OpLoad %float %1643
- %1645 = OpAccessChain %_ptr_Function_float %color %uint_1
- OpStore %1645 %949
- %1646 = OpAccessChain %_ptr_Function_float %color %uint_1
- OpStore %1646 %1644
- %1647 = OpCompositeExtract %float %1577 1
- %1648 = OpCompositeExtract %float %1577 0
- %1649 = OpCompositeExtract %float %908 2
- %1650 = OpCompositeConstruct %v3float %1647 %1648 %1649
- %1651 = OpAccessChain %_ptr_Function_float %uv %uint_1
- %1652 = OpLoad %float %1651
- %1653 = OpAccessChain %_ptr_Function_float %uv %uint_1
- OpStore %1653 %949
- %1654 = OpAccessChain %_ptr_Function_float %uv %uint_1
- OpStore %1654 %1652
- %1655 = OpAccessChain %_ptr_Function_float %uv %uint_1
- %1656 = OpLoad %float %1655
- %1657 = OpAccessChain %_ptr_Function_float %uv %uint_1
- %1658 = OpLoad %float %1657
- %1659 = OpAccessChain %_ptr_Function_float %uv %uint_1
- OpStore %1659 %949
- %1660 = OpAccessChain %_ptr_Function_float %uv %uint_1
- OpStore %1660 %1658
- %1661 = OpAccessChain %_ptr_Function_float %color %uint_2
+ %1643 = OpAccessChain %_ptr_Function_float %uv %uint_0
+ OpStore %1643 %914
+ %1644 = OpAccessChain %_ptr_Function_float %uv %uint_0
+ OpStore %1644 %1642
+ %1645 = OpLoad %QuicksortObject %obj
+ OpStore %obj %97
+ OpStore %obj %1645
+ %1646 = OpCompositeExtract %float %1542 2
+ %1647 = OpCompositeExtract %float %1542 0
+ %1648 = OpCompositeExtract %float %873 0
+ %1649 = OpCompositeConstruct %v3float %1646 %1647 %1648
+ %1650 = OpAccessChain %_ptr_Private_int %obj %uint_0 %int_8
+ %1651 = OpLoad %int %1650
+ %1652 = OpAccessChain %_ptr_Private_int %obj %uint_0 %int_8
+ OpStore %1652 %31
+ %1653 = OpAccessChain %_ptr_Private_int %obj %uint_0 %int_8
+ OpStore %1653 %1651
+ %1655 = OpAccessChain %_ptr_Private_int %obj %uint_0 %uint_9
+ %1656 = OpLoad %int %1655
+ %1657 = OpCompositeExtract %float %1185 1
+ %1658 = OpCompositeExtract %float %1185 1
+ %1659 = OpCompositeExtract %float %1185 1
+ %1660 = OpCompositeConstruct %v3float %1657 %1658 %1659
+ %1661 = OpAccessChain %_ptr_Function_float %uv %uint_1
%1662 = OpLoad %float %1661
- %1663 = OpAccessChain %_ptr_Function_float %color %uint_2
- OpStore %1663 %949
- %1664 = OpAccessChain %_ptr_Function_float %color %uint_2
+ %1663 = OpAccessChain %_ptr_Function_float %uv %uint_1
+ OpStore %1663 %914
+ %1664 = OpAccessChain %_ptr_Function_float %uv %uint_1
OpStore %1664 %1662
- %1665 = OpCompositeExtract %float %37 1
- %1666 = OpCompositeExtract %float %1360 1
- %1667 = OpCompositeExtract %float %1360 2
- %1668 = OpCompositeConstruct %v3float %1665 %1666 %1667
- %1669 = OpAccessChain %_ptr_Function_float %color %uint_2
- %1670 = OpLoad %float %1669
- %1671 = OpAccessChain %_ptr_Function_float %color %uint_2
- OpStore %1671 %949
- %1672 = OpAccessChain %_ptr_Function_float %color %uint_2
- OpStore %1672 %1670
- %1673 = OpLoad %int %i_2
- OpStore %i_2 %31
- OpStore %i_2 %1673
- %1674 = OpCompositeExtract %float %1360 2
- %1675 = OpCompositeExtract %float %1360 1
- %1676 = OpCompositeConstruct %v2float %1674 %1675
- %1677 = OpLoad %v3float %color
- OpStore %color %170
- OpStore %color %1677
- %1678 = OpAccessChain %_ptr_Function_float %uv %uint_1
- %1679 = OpLoad %float %1678
- %1680 = OpAccessChain %_ptr_Function_float %uv %uint_1
- OpStore %1680 %949
- %1681 = OpAccessChain %_ptr_Function_float %uv %uint_1
- OpStore %1681 %1679
- %1682 = OpCompositeExtract %float %972 1
- %1683 = OpCompositeExtract %float %972 1
- %1684 = OpCompositeExtract %float %972 1
- %1685 = OpCompositeConstruct %v3float %1682 %1683 %1684
- %1686 = OpAccessChain %_ptr_Private_int %obj %uint_0 %int_4
- %1687 = OpLoad %int %1686
- %1688 = OpAccessChain %_ptr_Private_int %obj %uint_0 %int_4
- OpStore %1688 %31
- %1689 = OpAccessChain %_ptr_Private_int %obj %uint_0 %int_4
- OpStore %1689 %1687
- %1692 = OpFSub %float %1642 %1656
- %1690 = OpExtInst %float %1691 FAbs %1692
- %1693 = OpFOrdLessThan %bool %1690 %float_0_25
- OpSelectionMerge %1694 None
- OpBranchConditional %1693 %1695 %1694
- %1695 = OpLabel
- %1696 = OpAccessChain %_ptr_Function_float %uv %uint_0
- %1697 = OpLoad %float %1696
- %1698 = OpAccessChain %_ptr_Function_float %uv %uint_0
- OpStore %1698 %949
- %1699 = OpAccessChain %_ptr_Function_float %uv %uint_0
- OpStore %1699 %1697
- %1700 = OpLoad %QuicksortObject %obj
- OpStore %obj %102
- OpStore %obj %1700
- %1701 = OpCompositeExtract %float %1596 2
- %1702 = OpCompositeExtract %float %1596 0
- %1703 = OpCompositeExtract %float %908 0
- %1704 = OpCompositeConstruct %v3float %1701 %1702 %1703
- %1705 = OpAccessChain %_ptr_Private_int %obj %uint_0 %int_8
- %1706 = OpLoad %int %1705
- %1707 = OpAccessChain %_ptr_Private_int %obj %uint_0 %int_8
- OpStore %1707 %31
- %1708 = OpAccessChain %_ptr_Private_int %obj %uint_0 %int_8
- OpStore %1708 %1706
- %1710 = OpAccessChain %_ptr_Private_int %obj %uint_0 %uint_9
- %1711 = OpLoad %int %1710
- %1712 = OpCompositeExtract %float %1232 1
- %1713 = OpCompositeExtract %float %1232 1
- %1714 = OpCompositeExtract %float %1232 1
- %1715 = OpCompositeConstruct %v3float %1712 %1713 %1714
- %1716 = OpAccessChain %_ptr_Function_float %uv %uint_1
+ %1665 = OpAccessChain %_ptr_Function_float %color %uint_0
+ %1666 = OpLoad %float %1665
+ %1667 = OpAccessChain %_ptr_Function_float %uv %uint_1
+ %1668 = OpLoad %float %1667
+ %1669 = OpAccessChain %_ptr_Function_float %uv %uint_1
+ OpStore %1669 %914
+ %1670 = OpAccessChain %_ptr_Function_float %uv %uint_1
+ OpStore %1670 %1668
+ %1671 = OpCompositeExtract %float %1516 0
+ %1672 = OpCompositeExtract %float %1516 1
+ %1673 = OpCompositeConstruct %v2float %1671 %1672
+ %1674 = OpAccessChain %_ptr_Function_float %color %uint_0
+ %1675 = OpLoad %float %1674
+ %1676 = OpAccessChain %_ptr_Function_float %color %uint_0
+ OpStore %1676 %914
+ %1677 = OpAccessChain %_ptr_Function_float %color %uint_0
+ OpStore %1677 %1675
+ %1678 = OpLoad %v3float %color
+ OpStore %color %165
+ OpStore %color %1678
+ %1679 = OpCompositeExtract %float %916 0
+ %1680 = OpCompositeExtract %float %916 0
+ %1681 = OpCompositeConstruct %v2float %1679 %1680
+ %1682 = OpLoad %v2float %uv
+ OpStore %uv %162
+ OpStore %uv %1682
+ %1683 = OpAccessChain %_ptr_Function_float %uv %uint_0
+ %1684 = OpLoad %float %1683
+ %1685 = OpAccessChain %_ptr_Function_float %uv %uint_0
+ OpStore %1685 %914
+ %1686 = OpAccessChain %_ptr_Function_float %uv %uint_0
+ OpStore %1686 %1684
+ %1687 = OpAccessChain %_ptr_Function_float %color %uint_0
+ %1688 = OpConvertSToF %float %1656
+ %1689 = OpFAdd %float %1688 %1666
+ OpStore %1687 %1689
+ %1690 = OpAccessChain %_ptr_Function_float %color %uint_0
+ %1691 = OpLoad %float %1690
+ %1692 = OpAccessChain %_ptr_Function_float %color %uint_0
+ OpStore %1692 %914
+ %1693 = OpAccessChain %_ptr_Function_float %color %uint_0
+ OpStore %1693 %1691
+ %1694 = OpCompositeExtract %float %1245 1
+ %1695 = OpCompositeExtract %float %1582 0
+ %1696 = OpCompositeExtract %float %1245 0
+ %1697 = OpCompositeConstruct %v3float %1694 %1695 %1696
+ %1698 = OpAccessChain %_ptr_Function_float %color %uint_0
+ %1699 = OpLoad %float %1698
+ %1700 = OpAccessChain %_ptr_Function_float %color %uint_0
+ OpStore %1700 %914
+ %1701 = OpAccessChain %_ptr_Function_float %color %uint_0
+ OpStore %1701 %1699
+ OpBranch %1639
+ %1639 = OpLabel
+ %1702 = OpAccessChain %_ptr_Function_float %uv %uint_1
+ %1703 = OpLoad %float %1702
+ %1704 = OpAccessChain %_ptr_Function_float %uv %uint_1
+ OpStore %1704 %914
+ %1705 = OpAccessChain %_ptr_Function_float %uv %uint_1
+ OpStore %1705 %1703
+ %1706 = OpLoad %v3float %color
+ %1707 = OpAccessChain %_ptr_Function_float %uv %31
+ %1708 = OpLoad %float %1707
+ %1709 = OpAccessChain %_ptr_Function_float %uv %31
+ OpStore %1709 %914
+ %1710 = OpAccessChain %_ptr_Function_float %uv %31
+ OpStore %1710 %1708
+ %1711 = OpCompositeExtract %float %162 0
+ %1712 = OpCompositeExtract %float %162 0
+ %1713 = OpCompositeExtract %float %162 1
+ %1714 = OpCompositeConstruct %v3float %1711 %1712 %1713
+ %1715 = OpExtInst %v3float %1636 Normalize %1706
+ %1716 = OpAccessChain %_ptr_Function_float %uv %uint_0
%1717 = OpLoad %float %1716
- %1718 = OpAccessChain %_ptr_Function_float %uv %uint_1
- OpStore %1718 %949
- %1719 = OpAccessChain %_ptr_Function_float %uv %uint_1
+ %1718 = OpAccessChain %_ptr_Function_float %uv %uint_0
+ OpStore %1718 %914
+ %1719 = OpAccessChain %_ptr_Function_float %uv %uint_0
OpStore %1719 %1717
- %1720 = OpAccessChain %_ptr_Function_float %color %uint_0
- %1721 = OpLoad %float %1720
- %1722 = OpAccessChain %_ptr_Function_float %uv %uint_1
+ %1720 = OpLoad %QuicksortObject %obj
+ OpStore %obj %97
+ OpStore %obj %1720
+ %1721 = OpLoad %QuicksortObject %obj
+ OpStore %obj %97
+ OpStore %obj %1721
+ %1722 = OpAccessChain %_ptr_Function_float %color %uint_1
%1723 = OpLoad %float %1722
- %1724 = OpAccessChain %_ptr_Function_float %uv %uint_1
- OpStore %1724 %949
- %1725 = OpAccessChain %_ptr_Function_float %uv %uint_1
+ %1724 = OpAccessChain %_ptr_Function_float %color %uint_1
+ OpStore %1724 %914
+ %1725 = OpAccessChain %_ptr_Function_float %color %uint_1
OpStore %1725 %1723
- %1726 = OpCompositeExtract %float %1569 0
- %1727 = OpCompositeExtract %float %1569 1
+ %1726 = OpCompositeExtract %float %1555 1
+ %1727 = OpCompositeExtract %float %1714 1
%1728 = OpCompositeConstruct %v2float %1726 %1727
- %1729 = OpAccessChain %_ptr_Function_float %color %uint_0
+ %1729 = OpAccessChain %_ptr_Function_float %color %uint_1
%1730 = OpLoad %float %1729
- %1731 = OpAccessChain %_ptr_Function_float %color %uint_0
- OpStore %1731 %949
- %1732 = OpAccessChain %_ptr_Function_float %color %uint_0
+ %1731 = OpAccessChain %_ptr_Function_float %color %uint_1
+ OpStore %1731 %914
+ %1732 = OpAccessChain %_ptr_Function_float %color %uint_1
OpStore %1732 %1730
- %1733 = OpLoad %v3float %color
- OpStore %color %170
- OpStore %color %1733
- %1734 = OpCompositeExtract %float %953 0
- %1735 = OpCompositeExtract %float %953 0
- %1736 = OpCompositeConstruct %v2float %1734 %1735
- %1737 = OpLoad %v2float %uv
- OpStore %uv %167
- OpStore %uv %1737
- %1738 = OpAccessChain %_ptr_Function_float %uv %uint_0
- %1739 = OpLoad %float %1738
- %1740 = OpAccessChain %_ptr_Function_float %uv %uint_0
- OpStore %1740 %949
- %1741 = OpAccessChain %_ptr_Function_float %uv %uint_0
- OpStore %1741 %1739
- %1742 = OpCompositeExtract %float %167 0
- %1743 = OpCompositeExtract %float %167 0
- %1744 = OpCompositeExtract %float %167 1
- %1745 = OpCompositeConstruct %v3float %1742 %1743 %1744
- %1746 = OpAccessChain %_ptr_Function_float %color %uint_0
- %1747 = OpConvertSToF %float %1711
- %1748 = OpFAdd %float %1747 %1721
- OpStore %1746 %1748
- %1749 = OpAccessChain %_ptr_Function_float %color %uint_0
- %1750 = OpLoad %float %1749
- %1751 = OpAccessChain %_ptr_Function_float %color %uint_0
- OpStore %1751 %949
+ %1733 = OpCompositeExtract %float %1715 0
+ %1734 = OpCompositeExtract %float %1715 1
+ %1735 = OpCompositeExtract %float %1715 2
+ %1736 = OpCompositeConstruct %v4float %1733 %1734 %1735 %float_1
+ %1737 = OpAccessChain %_ptr_Function_float %uv %uint_1
+ %1738 = OpLoad %float %1737
+ %1739 = OpAccessChain %_ptr_Function_float %uv %uint_1
+ OpStore %1739 %914
+ %1740 = OpAccessChain %_ptr_Function_float %uv %uint_1
+ OpStore %1740 %1738
+ %1741 = OpCompositeExtract %float %1728 1
+ %1742 = OpCompositeConstruct %v3float %float_2 %float_2 %1741
+ %1743 = OpAccessChain %_ptr_Function_float %uv %uint_0
+ %1744 = OpLoad %float %1743
+ %1745 = OpAccessChain %_ptr_Function_float %uv %uint_0
+ OpStore %1745 %914
+ %1746 = OpAccessChain %_ptr_Function_float %uv %uint_0
+ OpStore %1746 %1744
+ OpStore %x_GLF_color %1736
+ %1747 = OpLoad %QuicksortObject %obj
+ OpStore %obj %97
+ OpStore %obj %1747
+ %1748 = OpCompositeExtract %float %1736 3
+ %1749 = OpCompositeExtract %float %1736 1
+ %1750 = OpCompositeExtract %float %1406 0
+ %1751 = OpCompositeConstruct %v3float %1748 %1749 %1750
%1752 = OpAccessChain %_ptr_Function_float %color %uint_0
- OpStore %1752 %1750
- %1753 = OpCompositeExtract %float %1297 1
- %1754 = OpCompositeExtract %float %1636 0
- %1755 = OpCompositeExtract %float %1297 0
- %1756 = OpCompositeConstruct %v3float %1753 %1754 %1755
- %1757 = OpAccessChain %_ptr_Function_float %color %uint_0
- %1758 = OpLoad %float %1757
- %1759 = OpAccessChain %_ptr_Function_float %color %uint_0
- OpStore %1759 %949
- %1760 = OpAccessChain %_ptr_Function_float %color %uint_0
- OpStore %1760 %1758
- OpBranch %1694
- %1694 = OpLabel
- %1761 = OpAccessChain %_ptr_Function_float %uv %uint_1
- %1762 = OpLoad %float %1761
- %1763 = OpAccessChain %_ptr_Function_float %uv %uint_1
- OpStore %1763 %949
- %1764 = OpAccessChain %_ptr_Function_float %uv %uint_1
- OpStore %1764 %1762
- %1765 = OpLoad %v3float %color
- %1766 = OpAccessChain %_ptr_Function_float %uv %31
- %1767 = OpLoad %float %1766
- %1768 = OpAccessChain %_ptr_Function_float %uv %31
- OpStore %1768 %949
- %1769 = OpAccessChain %_ptr_Function_float %uv %31
- OpStore %1769 %1767
- %1770 = OpCompositeExtract %float %900 0
- %1771 = OpCompositeExtract %float %892 0
- %1772 = OpCompositeExtract %float %892 1
- %1773 = OpCompositeConstruct %v3float %1770 %1771 %1772
- %1774 = OpExtInst %v3float %1691 Normalize %1765
- %1775 = OpAccessChain %_ptr_Function_float %uv %uint_0
- %1776 = OpLoad %float %1775
- %1777 = OpAccessChain %_ptr_Function_float %uv %uint_0
- OpStore %1777 %949
- %1778 = OpAccessChain %_ptr_Function_float %uv %uint_0
- OpStore %1778 %1776
- %1779 = OpLoad %QuicksortObject %obj
- OpStore %obj %102
- OpStore %obj %1779
- %1780 = OpLoad %QuicksortObject %obj
- OpStore %obj %102
- OpStore %obj %1780
- %1781 = OpAccessChain %_ptr_Function_float %color %uint_1
- %1782 = OpLoad %float %1781
- %1783 = OpAccessChain %_ptr_Function_float %color %uint_1
- OpStore %1783 %949
- %1784 = OpAccessChain %_ptr_Function_float %color %uint_1
- OpStore %1784 %1782
- %1785 = OpCompositeExtract %float %1609 1
- %1786 = OpCompositeExtract %float %1773 1
- %1787 = OpCompositeConstruct %v2float %1785 %1786
- %1788 = OpAccessChain %_ptr_Function_float %color %uint_1
- %1789 = OpLoad %float %1788
- %1790 = OpAccessChain %_ptr_Function_float %color %uint_1
- OpStore %1790 %949
- %1791 = OpAccessChain %_ptr_Function_float %color %uint_1
- OpStore %1791 %1789
- %1792 = OpCompositeExtract %float %1774 0
- %1793 = OpCompositeExtract %float %1774 1
- %1794 = OpCompositeExtract %float %1774 2
- %1795 = OpCompositeConstruct %v4float %1792 %1793 %1794 %float_1
- %1796 = OpAccessChain %_ptr_Function_float %uv %uint_1
- %1797 = OpLoad %float %1796
- %1798 = OpAccessChain %_ptr_Function_float %uv %uint_1
- OpStore %1798 %949
- %1799 = OpAccessChain %_ptr_Function_float %uv %uint_1
- OpStore %1799 %1797
- %1800 = OpCompositeExtract %float %37 1
- %1801 = OpCompositeExtract %float %37 1
- %1802 = OpCompositeExtract %float %1787 1
- %1803 = OpCompositeConstruct %v3float %1800 %1801 %1802
- %1804 = OpAccessChain %_ptr_Function_float %uv %uint_0
- %1805 = OpLoad %float %1804
- %1806 = OpAccessChain %_ptr_Function_float %uv %uint_0
- OpStore %1806 %949
- %1807 = OpAccessChain %_ptr_Function_float %uv %uint_0
- OpStore %1807 %1805
- OpStore %x_GLF_color %1795
- %1808 = OpLoad %QuicksortObject %obj
- OpStore %obj %102
- OpStore %obj %1808
- %1809 = OpCompositeExtract %float %1795 3
- %1810 = OpCompositeExtract %float %1795 1
- %1811 = OpCompositeExtract %float %1459 0
- %1812 = OpCompositeConstruct %v3float %1809 %1810 %1811
- %1813 = OpAccessChain %_ptr_Function_float %color %uint_0
- %1814 = OpLoad %float %1813
- %1815 = OpAccessChain %_ptr_Function_float %color %uint_0
- OpStore %1815 %949
- %1816 = OpAccessChain %_ptr_Function_float %color %uint_0
- OpStore %1816 %1814
+ %1753 = OpLoad %float %1752
+ %1754 = OpAccessChain %_ptr_Function_float %color %uint_0
+ OpStore %1754 %914
+ %1755 = OpAccessChain %_ptr_Function_float %color %uint_0
+ OpStore %1755 %1753
OpReturn
OpFunctionEnd
- %main_inner = OpFunction %main_out None %1817
+ %main_inner = OpFunction %main_out None %1756
%gl_FragCoord_param = OpFunctionParameter %v4float
- %1821 = OpLabel
+ %1760 = OpLabel
OpStore %gl_FragCoord %gl_FragCoord_param
- %1822 = OpFunctionCall %void %main_1
- %1823 = OpLoad %v4float %x_GLF_color
- %1824 = OpCompositeConstruct %main_out %1823
- OpReturnValue %1824
+ %1761 = OpFunctionCall %void %main_1
+ %1762 = OpLoad %v4float %x_GLF_color
+ %1763 = OpCompositeConstruct %main_out %1762
+ OpReturnValue %1763
OpFunctionEnd
- %main = OpFunction %void None %418
- %1826 = OpLabel
- %1828 = OpLoad %v4float %gl_FragCoord_param_1
- %1827 = OpFunctionCall %main_out %main_inner %1828
- %1829 = OpCompositeExtract %v4float %1827 0
- OpStore %x_GLF_color_1_1 %1829
+ %main = OpFunction %void None %404
+ %1765 = OpLabel
+ %1767 = OpLoad %v4float %gl_FragCoord_param_1
+ %1766 = OpFunctionCall %main_out %main_inner %1767
+ %1768 = OpCompositeExtract %v4float %1766 0
+ OpStore %x_GLF_color_1_1 %1768
OpReturn
OpFunctionEnd
diff --git a/test/tint/bug/tint/948.wgsl.expected.glsl b/test/tint/bug/tint/948.wgsl.expected.glsl
index c4742f4..bdeba4b 100644
--- a/test/tint/bug/tint/948.wgsl.expected.glsl
+++ b/test/tint/bug/tint/948.wgsl.expected.glsl
@@ -67,7 +67,7 @@
vec4 x_40 = texture(frameMapTexture_frameMapSampler, vec2(fX, 0.0f), 0.0f);
vec4 x_47 = texture(frameMapTexture_frameMapSampler, vec2(fX, 0.25f), 0.0f);
vec4 x_54 = texture(frameMapTexture_frameMapSampler, vec2(fX, 0.5f), 0.0f);
- return mat4(vec4(x_40.x, x_40.y, x_40.z, x_40.w), vec4(x_47.x, x_47.y, x_47.z, x_47.w), vec4(x_54.x, x_54.y, x_54.z, x_54.w), vec4(vec4(0.0f).x, vec4(0.0f).y, vec4(0.0f).z, vec4(0.0f).w));
+ return mat4(vec4(x_40.x, x_40.y, x_40.z, x_40.w), vec4(x_47.x, x_47.y, x_47.z, x_47.w), vec4(x_54.x, x_54.y, x_54.z, x_54.w), vec4(0.0f));
}
uniform highp sampler2D tileMapsTexture1_tileMapsSampler;
diff --git a/test/tint/bug/tint/948.wgsl.expected.hlsl b/test/tint/bug/tint/948.wgsl.expected.hlsl
index 02a6716..1864ff1 100644
--- a/test/tint/bug/tint/948.wgsl.expected.hlsl
+++ b/test/tint/bug/tint/948.wgsl.expected.hlsl
@@ -39,7 +39,7 @@
const float4 x_40 = frameMapTexture.SampleBias(frameMapSampler, float2(fX, 0.0f), 0.0f);
const float4 x_47 = frameMapTexture.SampleBias(frameMapSampler, float2(fX, 0.25f), 0.0f);
const float4 x_54 = frameMapTexture.SampleBias(frameMapSampler, float2(fX, 0.5f), 0.0f);
- return float4x4(float4(x_40.x, x_40.y, x_40.z, x_40.w), float4(x_47.x, x_47.y, x_47.z, x_47.w), float4(x_54.x, x_54.y, x_54.z, x_54.w), float4((0.0f).xxxx.x, (0.0f).xxxx.y, (0.0f).xxxx.z, (0.0f).xxxx.w));
+ return float4x4(float4(x_40.x, x_40.y, x_40.z, x_40.w), float4(x_47.x, x_47.y, x_47.z, x_47.w), float4(x_54.x, x_54.y, x_54.z, x_54.w), (0.0f).xxxx);
}
void main_1() {
diff --git a/test/tint/bug/tint/948.wgsl.expected.msl b/test/tint/bug/tint/948.wgsl.expected.msl
index b36650f..ad55625 100644
--- a/test/tint/bug/tint/948.wgsl.expected.msl
+++ b/test/tint/bug/tint/948.wgsl.expected.msl
@@ -61,7 +61,7 @@
float4 const x_47 = tint_symbol_6.sample(tint_symbol_7, float2(x_44, 0.25f), bias(0.0f));
float const x_51 = fX;
float4 const x_54 = tint_symbol_6.sample(tint_symbol_7, float2(x_51, 0.5f), bias(0.0f));
- return float4x4(float4(x_40[0], x_40[1], x_40[2], x_40[3]), float4(x_47[0], x_47[1], x_47[2], x_47[3]), float4(x_54[0], x_54[1], x_54[2], x_54[3]), float4(float4(0.0f)[0], float4(0.0f)[1], float4(0.0f)[2], float4(0.0f)[3]));
+ return float4x4(float4(x_40[0], x_40[1], x_40[2], x_40[3]), float4(x_47[0], x_47[1], x_47[2], x_47[3]), float4(x_54[0], x_54[1], x_54[2], x_54[3]), float4(0.0f));
}
void main_1(thread float2* const tint_symbol_8, const constant LeftOver* const tint_symbol_9, texture2d<float, access::sample> tint_symbol_10, sampler tint_symbol_11, texture2d<float, access::sample> tint_symbol_12, texture2d<float, access::sample> tint_symbol_13, sampler tint_symbol_14, texture2d<float, access::sample> tint_symbol_16, sampler tint_symbol_17, texture2d<float, access::sample> tint_symbol_18, sampler tint_symbol_19, thread float4* const tint_symbol_20) {
diff --git a/test/tint/bug/tint/948.wgsl.expected.spvasm b/test/tint/bug/tint/948.wgsl.expected.spvasm
index a3e66de..91c81d8 100644
--- a/test/tint/bug/tint/948.wgsl.expected.spvasm
+++ b/test/tint/bug/tint/948.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
; SPIR-V
; Version: 1.3
; Generator: Google Tint Compiler; 0
-; Bound: 383
+; Bound: 378
; Schema: 0
OpCapability Shader
- %136 = OpExtInstImport "GLSL.std.450"
+ %131 = OpExtInstImport "GLSL.std.450"
OpMemoryModel Logical GLSL450
OpEntryPoint Fragment %main "main" %tUV_param_1 %tileID_1_param_1 %levelUnits_param_1 %stageUnits_1_param_1 %vPosition_param_1 %vUV_param_1 %glFragColor_1_1
OpExecutionMode %main OriginUpperLeft
@@ -184,24 +184,24 @@
%float_0_25 = OpConstant %float 0.25
%float_0_5 = OpConstant %float 0.5
%void = OpTypeVoid
- %104 = OpTypeFunction %void
+ %99 = OpTypeFunction %void
%_ptr_Function_v4float = OpTypePointer Function %v4float
%_ptr_Function_v2float = OpTypePointer Function %v2float
%int = OpTypeInt 32 1
%_ptr_Function_int = OpTypePointer Function %int
- %119 = OpConstantNull %int
+ %114 = OpConstantNull %int
%_ptr_Function_mat4v4float = OpTypePointer Function %mat4v4float
- %125 = OpConstantNull %mat4v4float
+ %120 = OpConstantNull %mat4v4float
%_ptr_Function_v3float = OpTypePointer Function %v3float
%uint_1 = OpConstant %uint 1
%float_1 = OpConstant %float 1
%uint_5 = OpConstant %uint 5
%_ptr_Uniform_v2float = OpTypePointer Uniform %v2float
- %149 = OpConstantComposite %v2float %float_1 %float_1
+ %144 = OpConstantComposite %v2float %float_1 %float_1
%uint_4 = OpConstant %uint 4
%int_2 = OpConstant %int 2
%bool = OpTypeBool
- %181 = OpConstantComposite %v2float %float_0_5 %float_0_5
+ %176 = OpConstantComposite %v2float %float_0_5 %float_0_5
%uint_0 = OpConstant %uint 0
%uint_2 = OpConstant %uint 2
%float_8 = OpConstant %float 8
@@ -211,7 +211,7 @@
%uint_8 = OpConstant %uint 8
%_ptr_Uniform_v3float = OpTypePointer Uniform %v3float
%main_out = OpTypeStruct %v4float
- %360 = OpTypeFunction %main_out %v2float %v2float %v2float %v2float %v3float %v2float
+ %355 = OpTypeFunction %main_out %v2float %v2float %v2float %v2float %v3float %v2float
%getFrameData_f1_ = OpFunction %mat4v4float None %49
%frameID = OpFunctionParameter %_ptr_Function_float
%53 = OpLabel
@@ -254,27 +254,22 @@
%95 = OpCompositeExtract %float %77 2
%96 = OpCompositeExtract %float %77 3
%97 = OpCompositeConstruct %v4float %93 %94 %95 %96
- %98 = OpCompositeExtract %float %15 0
- %99 = OpCompositeExtract %float %15 1
- %100 = OpCompositeExtract %float %15 2
- %101 = OpCompositeExtract %float %15 3
- %102 = OpCompositeConstruct %v4float %98 %99 %100 %101
- %103 = OpCompositeConstruct %mat4v4float %87 %92 %97 %102
- OpReturnValue %103
+ %98 = OpCompositeConstruct %mat4v4float %87 %92 %97 %15
+ OpReturnValue %98
OpFunctionEnd
- %main_1 = OpFunction %void None %104
- %107 = OpLabel
+ %main_1 = OpFunction %void None %99
+ %102 = OpLabel
%color = OpVariable %_ptr_Function_v4float Function %15
%tileUV = OpVariable %_ptr_Function_v2float Function %29
%tileID = OpVariable %_ptr_Function_v2float Function %29
%sheetUnits = OpVariable %_ptr_Function_v2float Function %29
%spriteUnits = OpVariable %_ptr_Function_float Function %37
%stageUnits = OpVariable %_ptr_Function_v2float Function %29
- %i = OpVariable %_ptr_Function_int Function %119
+ %i = OpVariable %_ptr_Function_int Function %114
%frameID_1 = OpVariable %_ptr_Function_float Function %37
%animationData = OpVariable %_ptr_Function_v4float Function %15
%f = OpVariable %_ptr_Function_float Function %37
- %frameData = OpVariable %_ptr_Function_mat4v4float Function %125
+ %frameData = OpVariable %_ptr_Function_mat4v4float Function %120
%param = OpVariable %_ptr_Function_float Function %37
%frameSize = OpVariable %_ptr_Function_v2float Function %29
%offset_1 = OpVariable %_ptr_Function_v2float Function %29
@@ -283,309 +278,309 @@
%alpha = OpVariable %_ptr_Function_float Function %37
%mixed = OpVariable %_ptr_Function_v3float Function %47
OpStore %color %15
- %134 = OpLoad %v2float %tUV
- %135 = OpExtInst %v2float %136 Fract %134
- OpStore %tileUV %135
- %138 = OpAccessChain %_ptr_Function_float %tileUV %uint_1
- %139 = OpLoad %float %138
- %140 = OpAccessChain %_ptr_Function_float %tileUV %uint_1
- %142 = OpFSub %float %float_1 %139
- OpStore %140 %142
- %143 = OpLoad %v2float %tUV
- %144 = OpExtInst %v2float %136 Floor %143
- OpStore %tileID %144
- %147 = OpAccessChain %_ptr_Uniform_v2float %x_20 %uint_5
- %148 = OpLoad %v2float %147
- %150 = OpFDiv %v2float %149 %148
- OpStore %sheetUnits %150
- %151 = OpAccessChain %_ptr_Uniform_float %x_20 %uint_7
- %152 = OpLoad %float %151
- %153 = OpFDiv %float %float_1 %152
- OpStore %spriteUnits %153
- %155 = OpAccessChain %_ptr_Uniform_v2float %x_20 %uint_4
- %156 = OpLoad %v2float %155
- %157 = OpFDiv %v2float %149 %156
- OpStore %stageUnits %157
- OpStore %i %119
- OpBranch %158
- %158 = OpLabel
- OpLoopMerge %159 %160 None
+ %129 = OpLoad %v2float %tUV
+ %130 = OpExtInst %v2float %131 Fract %129
+ OpStore %tileUV %130
+ %133 = OpAccessChain %_ptr_Function_float %tileUV %uint_1
+ %134 = OpLoad %float %133
+ %135 = OpAccessChain %_ptr_Function_float %tileUV %uint_1
+ %137 = OpFSub %float %float_1 %134
+ OpStore %135 %137
+ %138 = OpLoad %v2float %tUV
+ %139 = OpExtInst %v2float %131 Floor %138
+ OpStore %tileID %139
+ %142 = OpAccessChain %_ptr_Uniform_v2float %x_20 %uint_5
+ %143 = OpLoad %v2float %142
+ %145 = OpFDiv %v2float %144 %143
+ OpStore %sheetUnits %145
+ %146 = OpAccessChain %_ptr_Uniform_float %x_20 %uint_7
+ %147 = OpLoad %float %146
+ %148 = OpFDiv %float %float_1 %147
+ OpStore %spriteUnits %148
+ %150 = OpAccessChain %_ptr_Uniform_v2float %x_20 %uint_4
+ %151 = OpLoad %v2float %150
+ %152 = OpFDiv %v2float %144 %151
+ OpStore %stageUnits %152
+ OpStore %i %114
+ OpBranch %153
+ %153 = OpLabel
+ OpLoopMerge %154 %155 None
+ OpBranch %156
+ %156 = OpLabel
+ %157 = OpLoad %int %i
+ %159 = OpSLessThan %bool %157 %int_2
+ OpSelectionMerge %161 None
+ OpBranchConditional %159 %162 %163
+ %162 = OpLabel
OpBranch %161
+ %163 = OpLabel
+ OpBranch %154
%161 = OpLabel
- %162 = OpLoad %int %i
- %164 = OpSLessThan %bool %162 %int_2
- OpSelectionMerge %166 None
- OpBranchConditional %164 %167 %168
+ %164 = OpLoad %int %i
+ OpSelectionMerge %165 None
+ OpSwitch %164 %166 1 %167 0 %168
%167 = OpLabel
- OpBranch %166
+ %169 = OpLoad %v2float %tileID
+ %170 = OpAccessChain %_ptr_Uniform_v2float %x_20 %uint_4
+ %171 = OpLoad %v2float %170
+ %173 = OpLoad %26 %tileMapsSampler
+ %174 = OpLoad %23 %tileMapsTexture1
+ %175 = OpSampledImage %66 %174 %173
+ %177 = OpFAdd %v2float %169 %176
+ %178 = OpFDiv %v2float %177 %171
+ %172 = OpImageSampleImplicitLod %v4float %175 %178 Bias %37
+ %179 = OpCompositeExtract %float %172 0
+ OpStore %frameID_1 %179
+ OpBranch %165
%168 = OpLabel
- OpBranch %159
+ %180 = OpLoad %v2float %tileID
+ %181 = OpAccessChain %_ptr_Uniform_v2float %x_20 %uint_4
+ %182 = OpLoad %v2float %181
+ %184 = OpLoad %26 %tileMapsSampler
+ %185 = OpLoad %23 %tileMapsTexture0
+ %186 = OpSampledImage %66 %185 %184
+ %187 = OpFAdd %v2float %180 %176
+ %188 = OpFDiv %v2float %187 %182
+ %183 = OpImageSampleImplicitLod %v4float %186 %188 Bias %37
+ %189 = OpCompositeExtract %float %183 0
+ OpStore %frameID_1 %189
+ OpBranch %165
%166 = OpLabel
- %169 = OpLoad %int %i
- OpSelectionMerge %170 None
- OpSwitch %169 %171 1 %172 0 %173
- %172 = OpLabel
- %174 = OpLoad %v2float %tileID
- %175 = OpAccessChain %_ptr_Uniform_v2float %x_20 %uint_4
- %176 = OpLoad %v2float %175
- %178 = OpLoad %26 %tileMapsSampler
- %179 = OpLoad %23 %tileMapsTexture1
- %180 = OpSampledImage %66 %179 %178
- %182 = OpFAdd %v2float %174 %181
- %183 = OpFDiv %v2float %182 %176
- %177 = OpImageSampleImplicitLod %v4float %180 %183 Bias %37
- %184 = OpCompositeExtract %float %177 0
- OpStore %frameID_1 %184
- OpBranch %170
- %173 = OpLabel
- %185 = OpLoad %v2float %tileID
- %186 = OpAccessChain %_ptr_Uniform_v2float %x_20 %uint_4
- %187 = OpLoad %v2float %186
- %189 = OpLoad %26 %tileMapsSampler
- %190 = OpLoad %23 %tileMapsTexture0
- %191 = OpSampledImage %66 %190 %189
- %192 = OpFAdd %v2float %185 %181
- %193 = OpFDiv %v2float %192 %187
- %188 = OpImageSampleImplicitLod %v4float %191 %193 Bias %37
- %194 = OpCompositeExtract %float %188 0
- OpStore %frameID_1 %194
- OpBranch %170
- %171 = OpLabel
- OpBranch %170
- %170 = OpLabel
- %195 = OpLoad %float %frameID_1
- %196 = OpAccessChain %_ptr_Uniform_float %x_20 %uint_7
- %197 = OpLoad %float %196
- %199 = OpLoad %26 %animationMapSampler
- %200 = OpLoad %23 %animationMapTexture
- %201 = OpSampledImage %66 %200 %199
- %202 = OpFAdd %float %195 %float_0_5
- %203 = OpFDiv %float %202 %197
- %204 = OpCompositeConstruct %v2float %203 %37
- %198 = OpImageSampleImplicitLod %v4float %201 %204 Bias %37
- OpStore %animationData %198
- %205 = OpAccessChain %_ptr_Function_float %animationData %uint_1
- %206 = OpLoad %float %205
- %207 = OpFOrdGreaterThan %bool %206 %37
- OpSelectionMerge %208 None
- OpBranchConditional %207 %209 %208
- %209 = OpLabel
- %211 = OpAccessChain %_ptr_Uniform_float %x_20 %uint_0
- %212 = OpLoad %float %211
- %214 = OpAccessChain %_ptr_Function_float %animationData %uint_2
- %215 = OpLoad %float %214
- %216 = OpFMul %float %212 %215
- %217 = OpFRem %float %216 %float_1
- OpStore %mt %217
+ OpBranch %165
+ %165 = OpLabel
+ %190 = OpLoad %float %frameID_1
+ %191 = OpAccessChain %_ptr_Uniform_float %x_20 %uint_7
+ %192 = OpLoad %float %191
+ %194 = OpLoad %26 %animationMapSampler
+ %195 = OpLoad %23 %animationMapTexture
+ %196 = OpSampledImage %66 %195 %194
+ %197 = OpFAdd %float %190 %float_0_5
+ %198 = OpFDiv %float %197 %192
+ %199 = OpCompositeConstruct %v2float %198 %37
+ %193 = OpImageSampleImplicitLod %v4float %196 %199 Bias %37
+ OpStore %animationData %193
+ %200 = OpAccessChain %_ptr_Function_float %animationData %uint_1
+ %201 = OpLoad %float %200
+ %202 = OpFOrdGreaterThan %bool %201 %37
+ OpSelectionMerge %203 None
+ OpBranchConditional %202 %204 %203
+ %204 = OpLabel
+ %206 = OpAccessChain %_ptr_Uniform_float %x_20 %uint_0
+ %207 = OpLoad %float %206
+ %209 = OpAccessChain %_ptr_Function_float %animationData %uint_2
+ %210 = OpLoad %float %209
+ %211 = OpFMul %float %207 %210
+ %212 = OpFRem %float %211 %float_1
+ OpStore %mt %212
OpStore %f %37
- OpBranch %218
- %218 = OpLabel
- OpLoopMerge %219 %220 None
- OpBranch %221
+ OpBranch %213
+ %213 = OpLabel
+ OpLoopMerge %214 %215 None
+ OpBranch %216
+ %216 = OpLabel
+ %217 = OpLoad %float %f
+ %219 = OpFOrdLessThan %bool %217 %float_8
+ OpSelectionMerge %220 None
+ OpBranchConditional %219 %221 %222
%221 = OpLabel
- %222 = OpLoad %float %f
- %224 = OpFOrdLessThan %bool %222 %float_8
- OpSelectionMerge %225 None
- OpBranchConditional %224 %226 %227
- %226 = OpLabel
- OpBranch %225
- %227 = OpLabel
- OpBranch %219
- %225 = OpLabel
- %228 = OpAccessChain %_ptr_Function_float %animationData %uint_1
- %229 = OpLoad %float %228
- %230 = OpLoad %float %mt
- %231 = OpFOrdGreaterThan %bool %229 %230
- OpSelectionMerge %232 None
- OpBranchConditional %231 %233 %232
- %233 = OpLabel
- %234 = OpAccessChain %_ptr_Function_float %animationData %uint_0
- %235 = OpLoad %float %234
- OpStore %frameID_1 %235
- OpBranch %219
- %232 = OpLabel
- %236 = OpLoad %float %frameID_1
- %237 = OpAccessChain %_ptr_Uniform_float %x_20 %uint_7
- %238 = OpLoad %float %237
- %239 = OpLoad %float %f
- %241 = OpLoad %26 %animationMapSampler
- %242 = OpLoad %23 %animationMapTexture
- %243 = OpSampledImage %66 %242 %241
- %244 = OpFAdd %float %236 %float_0_5
- %245 = OpFDiv %float %244 %238
- %247 = OpFMul %float %float_0_125 %239
- %248 = OpCompositeConstruct %v2float %245 %247
- %240 = OpImageSampleImplicitLod %v4float %243 %248 Bias %37
- OpStore %animationData %240
OpBranch %220
+ %222 = OpLabel
+ OpBranch %214
%220 = OpLabel
- %249 = OpLoad %float %f
- %250 = OpFAdd %float %249 %float_1
- OpStore %f %250
- OpBranch %218
- %219 = OpLabel
- OpBranch %208
- %208 = OpLabel
- %251 = OpLoad %float %frameID_1
- %252 = OpFAdd %float %251 %float_0_5
- OpStore %param %252
- %253 = OpFunctionCall %mat4v4float %getFrameData_f1_ %param
- OpStore %frameData %253
- %255 = OpAccessChain %_ptr_Function_v4float %frameData %119
- %256 = OpLoad %v4float %255
- %257 = OpAccessChain %_ptr_Uniform_v2float %x_20 %uint_5
- %258 = OpLoad %v2float %257
- %259 = OpCompositeExtract %float %256 3
- %260 = OpCompositeExtract %float %256 2
- %261 = OpCompositeConstruct %v2float %259 %260
- %262 = OpFDiv %v2float %261 %258
- OpStore %frameSize %262
- %263 = OpAccessChain %_ptr_Function_v4float %frameData %119
- %264 = OpLoad %v4float %263
- %265 = OpLoad %v2float %sheetUnits
- %266 = OpCompositeExtract %float %264 0
- %267 = OpCompositeExtract %float %264 1
- %268 = OpCompositeConstruct %v2float %266 %267
- %269 = OpFMul %v2float %268 %265
- OpStore %offset_1 %269
- %270 = OpAccessChain %_ptr_Function_v4float %frameData %int_2
- %271 = OpLoad %v4float %270
- %272 = OpAccessChain %_ptr_Function_v4float %frameData %119
- %273 = OpLoad %v4float %272
- %274 = OpCompositeExtract %float %271 0
- %275 = OpCompositeExtract %float %271 1
- %276 = OpCompositeConstruct %v2float %274 %275
- %277 = OpCompositeExtract %float %273 3
- %278 = OpCompositeExtract %float %273 2
- %279 = OpCompositeConstruct %v2float %277 %278
- %280 = OpFDiv %v2float %276 %279
- OpStore %ratio %280
- %281 = OpAccessChain %_ptr_Function_float %frameData %int_2 %uint_2
- %282 = OpLoad %float %281
- %283 = OpFOrdEqual %bool %282 %float_1
- OpSelectionMerge %284 None
- OpBranchConditional %283 %285 %284
- %285 = OpLabel
- %286 = OpLoad %v2float %tileUV
- %287 = OpCompositeExtract %float %286 1
- %288 = OpCompositeExtract %float %286 0
- %289 = OpCompositeConstruct %v2float %287 %288
- OpStore %tileUV %289
- OpBranch %284
- %284 = OpLabel
- %290 = OpLoad %int %i
- %291 = OpIEqual %bool %290 %119
- OpSelectionMerge %292 None
- OpBranchConditional %291 %293 %294
- %293 = OpLabel
- %295 = OpLoad %v2float %tileUV
- %296 = OpLoad %v2float %frameSize
- %297 = OpLoad %v2float %offset_1
- %299 = OpLoad %26 %spriteSheetSampler
- %300 = OpLoad %23 %spriteSheetTexture
- %301 = OpSampledImage %66 %300 %299
- %302 = OpFMul %v2float %295 %296
- %303 = OpFAdd %v2float %302 %297
- %298 = OpImageSampleImplicitLod %v4float %301 %303
- OpStore %color %298
- OpBranch %292
- %294 = OpLabel
- %304 = OpLoad %v2float %tileUV
- %305 = OpLoad %v2float %frameSize
- %306 = OpLoad %v2float %offset_1
- %308 = OpLoad %26 %spriteSheetSampler
- %309 = OpLoad %23 %spriteSheetTexture
- %310 = OpSampledImage %66 %309 %308
- %311 = OpFMul %v2float %304 %305
- %312 = OpFAdd %v2float %311 %306
- %307 = OpImageSampleImplicitLod %v4float %310 %312
- OpStore %nc %307
- %314 = OpAccessChain %_ptr_Function_float %color %uint_3
- %315 = OpLoad %float %314
- %316 = OpAccessChain %_ptr_Function_float %nc %uint_3
- %317 = OpLoad %float %316
- %319 = OpFAdd %float %315 %317
- %318 = OpExtInst %float %136 NMin %319 %float_1
- OpStore %alpha %318
- %320 = OpLoad %v4float %color
- %321 = OpLoad %v4float %nc
- %322 = OpAccessChain %_ptr_Function_float %nc %uint_3
- %323 = OpLoad %float %322
- %325 = OpCompositeExtract %float %320 0
- %326 = OpCompositeExtract %float %320 1
- %327 = OpCompositeExtract %float %320 2
- %328 = OpCompositeConstruct %v3float %325 %326 %327
- %329 = OpCompositeExtract %float %321 0
- %330 = OpCompositeExtract %float %321 1
- %331 = OpCompositeExtract %float %321 2
- %332 = OpCompositeConstruct %v3float %329 %330 %331
- %333 = OpCompositeConstruct %v3float %323 %323 %323
- %324 = OpExtInst %v3float %136 FMix %328 %332 %333
- OpStore %mixed %324
- %334 = OpLoad %v3float %mixed
- %335 = OpLoad %float %alpha
- %336 = OpCompositeExtract %float %334 0
- %337 = OpCompositeExtract %float %334 1
- %338 = OpCompositeExtract %float %334 2
- %339 = OpCompositeConstruct %v4float %336 %337 %338 %335
- OpStore %color %339
- OpBranch %292
- %292 = OpLabel
- OpBranch %160
- %160 = OpLabel
- %340 = OpLoad %int %i
- %342 = OpIAdd %int %340 %int_1
- OpStore %i %342
- OpBranch %158
- %159 = OpLabel
- %345 = OpAccessChain %_ptr_Uniform_v3float %x_20 %uint_8
- %346 = OpLoad %v3float %345
- %347 = OpLoad %v4float %color
- %348 = OpCompositeExtract %float %347 0
- %349 = OpCompositeExtract %float %347 1
- %350 = OpCompositeExtract %float %347 2
- %351 = OpCompositeConstruct %v3float %348 %349 %350
- %352 = OpFMul %v3float %351 %346
- %353 = OpLoad %v4float %color
- %354 = OpCompositeExtract %float %352 0
- %355 = OpCompositeExtract %float %352 1
- %356 = OpCompositeExtract %float %352 2
- %357 = OpCompositeExtract %float %353 3
- %358 = OpCompositeConstruct %v4float %354 %355 %356 %357
- OpStore %color %358
- %359 = OpLoad %v4float %color
- OpStore %glFragColor %359
+ %223 = OpAccessChain %_ptr_Function_float %animationData %uint_1
+ %224 = OpLoad %float %223
+ %225 = OpLoad %float %mt
+ %226 = OpFOrdGreaterThan %bool %224 %225
+ OpSelectionMerge %227 None
+ OpBranchConditional %226 %228 %227
+ %228 = OpLabel
+ %229 = OpAccessChain %_ptr_Function_float %animationData %uint_0
+ %230 = OpLoad %float %229
+ OpStore %frameID_1 %230
+ OpBranch %214
+ %227 = OpLabel
+ %231 = OpLoad %float %frameID_1
+ %232 = OpAccessChain %_ptr_Uniform_float %x_20 %uint_7
+ %233 = OpLoad %float %232
+ %234 = OpLoad %float %f
+ %236 = OpLoad %26 %animationMapSampler
+ %237 = OpLoad %23 %animationMapTexture
+ %238 = OpSampledImage %66 %237 %236
+ %239 = OpFAdd %float %231 %float_0_5
+ %240 = OpFDiv %float %239 %233
+ %242 = OpFMul %float %float_0_125 %234
+ %243 = OpCompositeConstruct %v2float %240 %242
+ %235 = OpImageSampleImplicitLod %v4float %238 %243 Bias %37
+ OpStore %animationData %235
+ OpBranch %215
+ %215 = OpLabel
+ %244 = OpLoad %float %f
+ %245 = OpFAdd %float %244 %float_1
+ OpStore %f %245
+ OpBranch %213
+ %214 = OpLabel
+ OpBranch %203
+ %203 = OpLabel
+ %246 = OpLoad %float %frameID_1
+ %247 = OpFAdd %float %246 %float_0_5
+ OpStore %param %247
+ %248 = OpFunctionCall %mat4v4float %getFrameData_f1_ %param
+ OpStore %frameData %248
+ %250 = OpAccessChain %_ptr_Function_v4float %frameData %114
+ %251 = OpLoad %v4float %250
+ %252 = OpAccessChain %_ptr_Uniform_v2float %x_20 %uint_5
+ %253 = OpLoad %v2float %252
+ %254 = OpCompositeExtract %float %251 3
+ %255 = OpCompositeExtract %float %251 2
+ %256 = OpCompositeConstruct %v2float %254 %255
+ %257 = OpFDiv %v2float %256 %253
+ OpStore %frameSize %257
+ %258 = OpAccessChain %_ptr_Function_v4float %frameData %114
+ %259 = OpLoad %v4float %258
+ %260 = OpLoad %v2float %sheetUnits
+ %261 = OpCompositeExtract %float %259 0
+ %262 = OpCompositeExtract %float %259 1
+ %263 = OpCompositeConstruct %v2float %261 %262
+ %264 = OpFMul %v2float %263 %260
+ OpStore %offset_1 %264
+ %265 = OpAccessChain %_ptr_Function_v4float %frameData %int_2
+ %266 = OpLoad %v4float %265
+ %267 = OpAccessChain %_ptr_Function_v4float %frameData %114
+ %268 = OpLoad %v4float %267
+ %269 = OpCompositeExtract %float %266 0
+ %270 = OpCompositeExtract %float %266 1
+ %271 = OpCompositeConstruct %v2float %269 %270
+ %272 = OpCompositeExtract %float %268 3
+ %273 = OpCompositeExtract %float %268 2
+ %274 = OpCompositeConstruct %v2float %272 %273
+ %275 = OpFDiv %v2float %271 %274
+ OpStore %ratio %275
+ %276 = OpAccessChain %_ptr_Function_float %frameData %int_2 %uint_2
+ %277 = OpLoad %float %276
+ %278 = OpFOrdEqual %bool %277 %float_1
+ OpSelectionMerge %279 None
+ OpBranchConditional %278 %280 %279
+ %280 = OpLabel
+ %281 = OpLoad %v2float %tileUV
+ %282 = OpCompositeExtract %float %281 1
+ %283 = OpCompositeExtract %float %281 0
+ %284 = OpCompositeConstruct %v2float %282 %283
+ OpStore %tileUV %284
+ OpBranch %279
+ %279 = OpLabel
+ %285 = OpLoad %int %i
+ %286 = OpIEqual %bool %285 %114
+ OpSelectionMerge %287 None
+ OpBranchConditional %286 %288 %289
+ %288 = OpLabel
+ %290 = OpLoad %v2float %tileUV
+ %291 = OpLoad %v2float %frameSize
+ %292 = OpLoad %v2float %offset_1
+ %294 = OpLoad %26 %spriteSheetSampler
+ %295 = OpLoad %23 %spriteSheetTexture
+ %296 = OpSampledImage %66 %295 %294
+ %297 = OpFMul %v2float %290 %291
+ %298 = OpFAdd %v2float %297 %292
+ %293 = OpImageSampleImplicitLod %v4float %296 %298
+ OpStore %color %293
+ OpBranch %287
+ %289 = OpLabel
+ %299 = OpLoad %v2float %tileUV
+ %300 = OpLoad %v2float %frameSize
+ %301 = OpLoad %v2float %offset_1
+ %303 = OpLoad %26 %spriteSheetSampler
+ %304 = OpLoad %23 %spriteSheetTexture
+ %305 = OpSampledImage %66 %304 %303
+ %306 = OpFMul %v2float %299 %300
+ %307 = OpFAdd %v2float %306 %301
+ %302 = OpImageSampleImplicitLod %v4float %305 %307
+ OpStore %nc %302
+ %309 = OpAccessChain %_ptr_Function_float %color %uint_3
+ %310 = OpLoad %float %309
+ %311 = OpAccessChain %_ptr_Function_float %nc %uint_3
+ %312 = OpLoad %float %311
+ %314 = OpFAdd %float %310 %312
+ %313 = OpExtInst %float %131 NMin %314 %float_1
+ OpStore %alpha %313
+ %315 = OpLoad %v4float %color
+ %316 = OpLoad %v4float %nc
+ %317 = OpAccessChain %_ptr_Function_float %nc %uint_3
+ %318 = OpLoad %float %317
+ %320 = OpCompositeExtract %float %315 0
+ %321 = OpCompositeExtract %float %315 1
+ %322 = OpCompositeExtract %float %315 2
+ %323 = OpCompositeConstruct %v3float %320 %321 %322
+ %324 = OpCompositeExtract %float %316 0
+ %325 = OpCompositeExtract %float %316 1
+ %326 = OpCompositeExtract %float %316 2
+ %327 = OpCompositeConstruct %v3float %324 %325 %326
+ %328 = OpCompositeConstruct %v3float %318 %318 %318
+ %319 = OpExtInst %v3float %131 FMix %323 %327 %328
+ OpStore %mixed %319
+ %329 = OpLoad %v3float %mixed
+ %330 = OpLoad %float %alpha
+ %331 = OpCompositeExtract %float %329 0
+ %332 = OpCompositeExtract %float %329 1
+ %333 = OpCompositeExtract %float %329 2
+ %334 = OpCompositeConstruct %v4float %331 %332 %333 %330
+ OpStore %color %334
+ OpBranch %287
+ %287 = OpLabel
+ OpBranch %155
+ %155 = OpLabel
+ %335 = OpLoad %int %i
+ %337 = OpIAdd %int %335 %int_1
+ OpStore %i %337
+ OpBranch %153
+ %154 = OpLabel
+ %340 = OpAccessChain %_ptr_Uniform_v3float %x_20 %uint_8
+ %341 = OpLoad %v3float %340
+ %342 = OpLoad %v4float %color
+ %343 = OpCompositeExtract %float %342 0
+ %344 = OpCompositeExtract %float %342 1
+ %345 = OpCompositeExtract %float %342 2
+ %346 = OpCompositeConstruct %v3float %343 %344 %345
+ %347 = OpFMul %v3float %346 %341
+ %348 = OpLoad %v4float %color
+ %349 = OpCompositeExtract %float %347 0
+ %350 = OpCompositeExtract %float %347 1
+ %351 = OpCompositeExtract %float %347 2
+ %352 = OpCompositeExtract %float %348 3
+ %353 = OpCompositeConstruct %v4float %349 %350 %351 %352
+ OpStore %color %353
+ %354 = OpLoad %v4float %color
+ OpStore %glFragColor %354
OpReturn
OpFunctionEnd
- %main_inner = OpFunction %main_out None %360
+ %main_inner = OpFunction %main_out None %355
%tUV_param = OpFunctionParameter %v2float
%tileID_1_param = OpFunctionParameter %v2float
%levelUnits_param = OpFunctionParameter %v2float
%stageUnits_1_param = OpFunctionParameter %v2float
%vPosition_param = OpFunctionParameter %v3float
%vUV_param = OpFunctionParameter %v2float
- %369 = OpLabel
+ %364 = OpLabel
OpStore %tUV %tUV_param
OpStore %tileID_1 %tileID_1_param
OpStore %levelUnits %levelUnits_param
OpStore %stageUnits_1 %stageUnits_1_param
OpStore %vPosition %vPosition_param
OpStore %vUV %vUV_param
- %370 = OpFunctionCall %void %main_1
- %371 = OpLoad %v4float %glFragColor
- %372 = OpCompositeConstruct %main_out %371
- OpReturnValue %372
+ %365 = OpFunctionCall %void %main_1
+ %366 = OpLoad %v4float %glFragColor
+ %367 = OpCompositeConstruct %main_out %366
+ OpReturnValue %367
OpFunctionEnd
- %main = OpFunction %void None %104
- %374 = OpLabel
- %376 = OpLoad %v2float %tUV_param_1
- %377 = OpLoad %v2float %tileID_1_param_1
- %378 = OpLoad %v2float %levelUnits_param_1
- %379 = OpLoad %v2float %stageUnits_1_param_1
- %380 = OpLoad %v3float %vPosition_param_1
- %381 = OpLoad %v2float %vUV_param_1
- %375 = OpFunctionCall %main_out %main_inner %376 %377 %378 %379 %380 %381
- %382 = OpCompositeExtract %v4float %375 0
- OpStore %glFragColor_1_1 %382
+ %main = OpFunction %void None %99
+ %369 = OpLabel
+ %371 = OpLoad %v2float %tUV_param_1
+ %372 = OpLoad %v2float %tileID_1_param_1
+ %373 = OpLoad %v2float %levelUnits_param_1
+ %374 = OpLoad %v2float %stageUnits_1_param_1
+ %375 = OpLoad %v3float %vPosition_param_1
+ %376 = OpLoad %v2float %vUV_param_1
+ %370 = OpFunctionCall %main_out %main_inner %371 %372 %373 %374 %375 %376
+ %377 = OpCompositeExtract %v4float %370 0
+ OpStore %glFragColor_1_1 %377
OpReturn
OpFunctionEnd
diff --git a/test/tint/expressions/splat/with_swizzle/f32.wgsl.expected.glsl b/test/tint/expressions/splat/with_swizzle/f32.wgsl.expected.glsl
index 3493354..b00eb09 100644
--- a/test/tint/expressions/splat/with_swizzle/f32.wgsl.expected.glsl
+++ b/test/tint/expressions/splat/with_swizzle/f32.wgsl.expected.glsl
@@ -5,8 +5,8 @@
return;
}
void f() {
- float a = vec2(1.0f).y;
- float b = vec3(1.0f).z;
- float c = vec4(1.0f).w;
+ float a = 1.0f;
+ float b = 1.0f;
+ float c = 1.0f;
}
diff --git a/test/tint/expressions/splat/with_swizzle/f32.wgsl.expected.hlsl b/test/tint/expressions/splat/with_swizzle/f32.wgsl.expected.hlsl
index 3803af8..bc8913a 100644
--- a/test/tint/expressions/splat/with_swizzle/f32.wgsl.expected.hlsl
+++ b/test/tint/expressions/splat/with_swizzle/f32.wgsl.expected.hlsl
@@ -4,7 +4,7 @@
}
void f() {
- float a = (1.0f).xx.y;
- float b = (1.0f).xxx.z;
- float c = (1.0f).xxxx.w;
+ float a = 1.0f;
+ float b = 1.0f;
+ float c = 1.0f;
}
diff --git a/test/tint/expressions/splat/with_swizzle/f32.wgsl.expected.msl b/test/tint/expressions/splat/with_swizzle/f32.wgsl.expected.msl
index 2f9ac2a..d7d4949 100644
--- a/test/tint/expressions/splat/with_swizzle/f32.wgsl.expected.msl
+++ b/test/tint/expressions/splat/with_swizzle/f32.wgsl.expected.msl
@@ -2,8 +2,8 @@
using namespace metal;
void f() {
- float a = float2(1.0f)[1];
- float b = float3(1.0f)[2];
- float c = float4(1.0f)[3];
+ float a = 1.0f;
+ float b = 1.0f;
+ float c = 1.0f;
}
diff --git a/test/tint/expressions/splat/with_swizzle/f32.wgsl.expected.spvasm b/test/tint/expressions/splat/with_swizzle/f32.wgsl.expected.spvasm
index fe1995c..1fa9baf 100644
--- a/test/tint/expressions/splat/with_swizzle/f32.wgsl.expected.spvasm
+++ b/test/tint/expressions/splat/with_swizzle/f32.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
; SPIR-V
; Version: 1.3
; Generator: Google Tint Compiler; 0
-; Bound: 23
+; Bound: 14
; Schema: 0
OpCapability Shader
OpMemoryModel Logical GLSL450
@@ -15,29 +15,20 @@
%void = OpTypeVoid
%1 = OpTypeFunction %void
%float = OpTypeFloat 32
- %v2float = OpTypeVector %float 2
%float_1 = OpConstant %float 1
- %10 = OpConstantComposite %v2float %float_1 %float_1
%_ptr_Function_float = OpTypePointer Function %float
- %14 = OpConstantNull %float
- %v3float = OpTypeVector %float 3
- %16 = OpConstantComposite %v3float %float_1 %float_1 %float_1
- %v4float = OpTypeVector %float 4
- %20 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+ %11 = OpConstantNull %float
%unused_entry_point = OpFunction %void None %1
%4 = OpLabel
OpReturn
OpFunctionEnd
%f = OpFunction %void None %1
%6 = OpLabel
- %a = OpVariable %_ptr_Function_float Function %14
- %b = OpVariable %_ptr_Function_float Function %14
- %c = OpVariable %_ptr_Function_float Function %14
- %11 = OpCompositeExtract %float %10 1
- OpStore %a %11
- %17 = OpCompositeExtract %float %16 2
- OpStore %b %17
- %21 = OpCompositeExtract %float %20 3
- OpStore %c %21
+ %a = OpVariable %_ptr_Function_float Function %11
+ %b = OpVariable %_ptr_Function_float Function %11
+ %c = OpVariable %_ptr_Function_float Function %11
+ OpStore %a %float_1
+ OpStore %b %float_1
+ OpStore %c %float_1
OpReturn
OpFunctionEnd