Replace composite vectors of literals with OpConstantComposite.
Some GPUs (Adrenos in particular) perform noticeably better when we use OpConstantComposite instead of OpCompositeConstruct. This also gives us some deduplication of redundant ops. Change-Id: I53b7a3e1cf61e51647a661a08ff4c7b53ee60f10 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/528636 Auto-Submit: John Stiles <johnstiles@google.com> Reviewed-by: Brian Osman <brianosman@google.com> Commit-Queue: Brian Osman <brianosman@google.com>
This commit is contained in:
parent
c002866c71
commit
699dd5ae4a
@ -1280,6 +1280,10 @@ SpvId SPIRVCodeGenerator::writeConstantVector(const AnyConstructor& c) {
|
||||
key.fValueId[n] = this->writeLiteral(*slotVal, scalarType);
|
||||
}
|
||||
|
||||
return this->writeConstantVector(type, key);
|
||||
}
|
||||
|
||||
SpvId SPIRVCodeGenerator::writeConstantVector(const Type& type, const SPIRVVectorConstant& key) {
|
||||
// Check to see if we've already synthesized this vector constant.
|
||||
if (SpvId* entry = fVectorConstants.find(key)) {
|
||||
return *entry;
|
||||
@ -1689,12 +1693,48 @@ SpvId SPIRVCodeGenerator::writeVectorConstructor(const ConstructorCompound& c, O
|
||||
return this->writeComposite(arguments, type, out);
|
||||
}
|
||||
|
||||
SpvId SPIRVCodeGenerator::writeCompositeAsConstant(const std::vector<SpvId>& arguments,
|
||||
const Type& type,
|
||||
OutputStream& out) {
|
||||
if (!type.isVector()) {
|
||||
// Only vectors are allowed.
|
||||
return (SpvId)-1;
|
||||
}
|
||||
SPIRVVectorConstant key = {/*fTypeId=*/(SpvId)-1,
|
||||
/*fValueId=*/{(SpvId)-1, (SpvId)-1, (SpvId)-1, (SpvId)-1}};
|
||||
for (size_t index = 0; index < arguments.size(); ++index) {
|
||||
// See if this argument is a numeric constant by scanning fNumberConstants.
|
||||
SpvId arg = arguments[index];
|
||||
bool found = false;
|
||||
for (const auto& [k, v] : fNumberConstants) {
|
||||
if (v == arg) {
|
||||
found = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (!found) {
|
||||
// This argument isn't a literal.
|
||||
return (SpvId)-1;
|
||||
}
|
||||
key.fValueId[index] = arg;
|
||||
}
|
||||
// We found a composite that's composed entirely of literals. Write an OpConstantComposite.
|
||||
key.fTypeId = this->getType(type);
|
||||
return this->writeConstantVector(type, key);
|
||||
}
|
||||
|
||||
SpvId SPIRVCodeGenerator::writeComposite(const std::vector<SpvId>& arguments,
|
||||
const Type& type,
|
||||
OutputStream& out) {
|
||||
// If this is a vector composed entirely of literals, write a constant.
|
||||
SpvId result = this->writeCompositeAsConstant(arguments, type, out);
|
||||
if (result != (SpvId)-1) {
|
||||
return result;
|
||||
}
|
||||
|
||||
SkASSERT(arguments.size() == (type.isStruct() ? type.fields().size() : (size_t)type.columns()));
|
||||
|
||||
SpvId result = this->nextId(&type);
|
||||
result = this->nextId(&type);
|
||||
this->writeOpCode(SpvOpCompositeConstruct, 3 + (int32_t) arguments.size(), out);
|
||||
this->writeWord(this->getType(type), out);
|
||||
this->writeWord(result, out);
|
||||
|
@ -268,6 +268,8 @@ private:
|
||||
|
||||
SpvId writeConstantVector(const AnyConstructor& c);
|
||||
|
||||
SpvId writeConstantVector(const Type& type, const SPIRVVectorConstant& key);
|
||||
|
||||
SpvId writeScalarToMatrixSplat(const Type& matrixType, SpvId scalarId, OutputStream& out);
|
||||
|
||||
SpvId writeFloatConstructor(const AnyConstructor& c, OutputStream& out);
|
||||
@ -327,6 +329,10 @@ private:
|
||||
|
||||
SpvId writeConstructorCompoundCast(const ConstructorCompoundCast& c, OutputStream& out);
|
||||
|
||||
SpvId writeCompositeAsConstant(const std::vector<SpvId>& arguments,
|
||||
const Type& type,
|
||||
OutputStream& out);
|
||||
|
||||
SpvId writeComposite(const std::vector<SpvId>& arguments, const Type& type, OutputStream& out);
|
||||
|
||||
SpvId writeFieldAccess(const FieldAccess& f, OutputStream& out);
|
||||
|
@ -41,28 +41,19 @@ OpDecorate %63 RelaxedPrecision
|
||||
OpDecorate %64 RelaxedPrecision
|
||||
OpDecorate %66 RelaxedPrecision
|
||||
OpDecorate %67 RelaxedPrecision
|
||||
OpDecorate %68 RelaxedPrecision
|
||||
OpDecorate %69 RelaxedPrecision
|
||||
OpDecorate %82 RelaxedPrecision
|
||||
OpDecorate %83 RelaxedPrecision
|
||||
OpDecorate %84 RelaxedPrecision
|
||||
OpDecorate %85 RelaxedPrecision
|
||||
OpDecorate %86 RelaxedPrecision
|
||||
OpDecorate %105 RelaxedPrecision
|
||||
OpDecorate %106 RelaxedPrecision
|
||||
OpDecorate %107 RelaxedPrecision
|
||||
OpDecorate %108 RelaxedPrecision
|
||||
OpDecorate %109 RelaxedPrecision
|
||||
OpDecorate %110 RelaxedPrecision
|
||||
OpDecorate %80 RelaxedPrecision
|
||||
OpDecorate %81 RelaxedPrecision
|
||||
OpDecorate %100 RelaxedPrecision
|
||||
OpDecorate %101 RelaxedPrecision
|
||||
OpDecorate %125 RelaxedPrecision
|
||||
OpDecorate %130 RelaxedPrecision
|
||||
OpDecorate %131 RelaxedPrecision
|
||||
OpDecorate %132 RelaxedPrecision
|
||||
OpDecorate %133 RelaxedPrecision
|
||||
OpDecorate %134 RelaxedPrecision
|
||||
OpDecorate %139 RelaxedPrecision
|
||||
OpDecorate %140 RelaxedPrecision
|
||||
OpDecorate %141 RelaxedPrecision
|
||||
OpDecorate %142 RelaxedPrecision
|
||||
OpDecorate %143 RelaxedPrecision
|
||||
OpDecorate %168 RelaxedPrecision
|
||||
OpDecorate %171 RelaxedPrecision
|
||||
OpDecorate %172 RelaxedPrecision
|
||||
OpDecorate %159 RelaxedPrecision
|
||||
OpDecorate %162 RelaxedPrecision
|
||||
OpDecorate %163 RelaxedPrecision
|
||||
%float = OpTypeFloat 32
|
||||
%v4float = OpTypeVector %float 4
|
||||
%_ptr_Output_v4float = OpTypePointer Output %v4float
|
||||
@ -86,6 +77,8 @@ OpDecorate %172 RelaxedPrecision
|
||||
%float_1 = OpConstant %float 1
|
||||
%float_1_5 = OpConstant %float 1.5
|
||||
%float_n0_5 = OpConstant %float -0.5
|
||||
%33 = OpConstantComposite %v2float %float_n2 %float_1
|
||||
%34 = OpConstantComposite %v2float %float_1_5 %float_n0_5
|
||||
%v3float = OpTypeVector %float 3
|
||||
%mat3v3float = OpTypeMatrix %v3float 3
|
||||
%_ptr_Function_mat3v3float = OpTypePointer Function %mat3v3float
|
||||
@ -97,6 +90,9 @@ OpDecorate %172 RelaxedPrecision
|
||||
%float_n4 = OpConstant %float -4
|
||||
%float_n5 = OpConstant %float -5
|
||||
%float_4 = OpConstant %float 4
|
||||
%48 = OpConstantComposite %v3float %float_n24 %float_18 %float_5
|
||||
%49 = OpConstantComposite %v3float %float_20 %float_n15 %float_n4
|
||||
%50 = OpConstantComposite %v3float %float_n5 %float_4 %float_1
|
||||
%mat4v4float = OpTypeMatrix %v4float 4
|
||||
%_ptr_Function_mat4v4float = OpTypePointer Function %mat4v4float
|
||||
%float_0_5 = OpConstant %float 0.5
|
||||
@ -104,6 +100,10 @@ OpDecorate %172 RelaxedPrecision
|
||||
%float_n1 = OpConstant %float -1
|
||||
%float_2 = OpConstant %float 2
|
||||
%float_3 = OpConstant %float 3
|
||||
%60 = OpConstantComposite %v4float %float_n2 %float_n0_5 %float_1 %float_0_5
|
||||
%61 = OpConstantComposite %v4float %float_1 %float_0_5 %float_0 %float_n0_5
|
||||
%62 = OpConstantComposite %v4float %float_n8 %float_n1 %float_2 %float_2
|
||||
%63 = OpConstantComposite %v4float %float_3 %float_0_5 %float_n1 %float_n0_5
|
||||
%false = OpConstantFalse %bool
|
||||
%v2bool = OpTypeVector %bool 2
|
||||
%v3bool = OpTypeVector %bool 3
|
||||
@ -112,6 +112,9 @@ OpDecorate %172 RelaxedPrecision
|
||||
%float_7 = OpConstant %float 7
|
||||
%float_8 = OpConstant %float 8
|
||||
%float_9 = OpConstant %float 9
|
||||
%130 = OpConstantComposite %v3float %float_1 %float_2 %float_3
|
||||
%131 = OpConstantComposite %v3float %float_4 %float_5 %float_6
|
||||
%132 = OpConstantComposite %v3float %float_7 %float_8 %float_9
|
||||
%_ptr_Function_v4float = OpTypePointer Function %v4float
|
||||
%_ptr_Uniform_v4float = OpTypePointer Uniform %v4float
|
||||
%int = OpTypeInt 32 1
|
||||
@ -131,130 +134,109 @@ OpFunctionEnd
|
||||
%inv2x2 = OpVariable %_ptr_Function_mat2v2float Function
|
||||
%inv3x3 = OpVariable %_ptr_Function_mat3v3float Function
|
||||
%inv4x4 = OpVariable %_ptr_Function_mat4v4float Function
|
||||
%159 = OpVariable %_ptr_Function_v4float Function
|
||||
%33 = OpCompositeConstruct %v2float %float_n2 %float_1
|
||||
%34 = OpCompositeConstruct %v2float %float_1_5 %float_n0_5
|
||||
%150 = OpVariable %_ptr_Function_v4float Function
|
||||
%35 = OpCompositeConstruct %mat2v2float %33 %34
|
||||
OpStore %inv2x2 %35
|
||||
%48 = OpCompositeConstruct %v3float %float_n24 %float_18 %float_5
|
||||
%49 = OpCompositeConstruct %v3float %float_20 %float_n15 %float_n4
|
||||
%50 = OpCompositeConstruct %v3float %float_n5 %float_4 %float_1
|
||||
%51 = OpCompositeConstruct %mat3v3float %48 %49 %50
|
||||
OpStore %inv3x3 %51
|
||||
%60 = OpCompositeConstruct %v4float %float_n2 %float_n0_5 %float_1 %float_0_5
|
||||
%61 = OpCompositeConstruct %v4float %float_1 %float_0_5 %float_0 %float_n0_5
|
||||
%62 = OpCompositeConstruct %v4float %float_n8 %float_n1 %float_2 %float_2
|
||||
%63 = OpCompositeConstruct %v4float %float_3 %float_0_5 %float_n1 %float_n0_5
|
||||
%64 = OpCompositeConstruct %mat4v4float %60 %61 %62 %63
|
||||
OpStore %inv4x4 %64
|
||||
%66 = OpCompositeConstruct %v2float %float_n2 %float_1
|
||||
%67 = OpCompositeConstruct %v2float %float_1_5 %float_n0_5
|
||||
%68 = OpCompositeConstruct %mat2v2float %66 %67
|
||||
%69 = OpLoad %mat2v2float %inv2x2
|
||||
%71 = OpCompositeExtract %v2float %68 0
|
||||
%72 = OpCompositeExtract %v2float %69 0
|
||||
%73 = OpFOrdEqual %v2bool %71 %72
|
||||
%74 = OpAll %bool %73
|
||||
%75 = OpCompositeExtract %v2float %68 1
|
||||
%76 = OpCompositeExtract %v2float %69 1
|
||||
%77 = OpFOrdEqual %v2bool %75 %76
|
||||
%78 = OpAll %bool %77
|
||||
%79 = OpLogicalAnd %bool %74 %78
|
||||
OpSelectionMerge %81 None
|
||||
OpBranchConditional %79 %80 %81
|
||||
%80 = OpLabel
|
||||
%82 = OpCompositeConstruct %v3float %float_n24 %float_18 %float_5
|
||||
%83 = OpCompositeConstruct %v3float %float_20 %float_n15 %float_n4
|
||||
%84 = OpCompositeConstruct %v3float %float_n5 %float_4 %float_1
|
||||
%85 = OpCompositeConstruct %mat3v3float %82 %83 %84
|
||||
%86 = OpLoad %mat3v3float %inv3x3
|
||||
%88 = OpCompositeExtract %v3float %85 0
|
||||
%89 = OpCompositeExtract %v3float %86 0
|
||||
%90 = OpFOrdEqual %v3bool %88 %89
|
||||
%91 = OpAll %bool %90
|
||||
%92 = OpCompositeExtract %v3float %85 1
|
||||
%93 = OpCompositeExtract %v3float %86 1
|
||||
%66 = OpCompositeConstruct %mat2v2float %33 %34
|
||||
%67 = OpLoad %mat2v2float %inv2x2
|
||||
%69 = OpCompositeExtract %v2float %66 0
|
||||
%70 = OpCompositeExtract %v2float %67 0
|
||||
%71 = OpFOrdEqual %v2bool %69 %70
|
||||
%72 = OpAll %bool %71
|
||||
%73 = OpCompositeExtract %v2float %66 1
|
||||
%74 = OpCompositeExtract %v2float %67 1
|
||||
%75 = OpFOrdEqual %v2bool %73 %74
|
||||
%76 = OpAll %bool %75
|
||||
%77 = OpLogicalAnd %bool %72 %76
|
||||
OpSelectionMerge %79 None
|
||||
OpBranchConditional %77 %78 %79
|
||||
%78 = OpLabel
|
||||
%80 = OpCompositeConstruct %mat3v3float %48 %49 %50
|
||||
%81 = OpLoad %mat3v3float %inv3x3
|
||||
%83 = OpCompositeExtract %v3float %80 0
|
||||
%84 = OpCompositeExtract %v3float %81 0
|
||||
%85 = OpFOrdEqual %v3bool %83 %84
|
||||
%86 = OpAll %bool %85
|
||||
%87 = OpCompositeExtract %v3float %80 1
|
||||
%88 = OpCompositeExtract %v3float %81 1
|
||||
%89 = OpFOrdEqual %v3bool %87 %88
|
||||
%90 = OpAll %bool %89
|
||||
%91 = OpLogicalAnd %bool %86 %90
|
||||
%92 = OpCompositeExtract %v3float %80 2
|
||||
%93 = OpCompositeExtract %v3float %81 2
|
||||
%94 = OpFOrdEqual %v3bool %92 %93
|
||||
%95 = OpAll %bool %94
|
||||
%96 = OpLogicalAnd %bool %91 %95
|
||||
%97 = OpCompositeExtract %v3float %85 2
|
||||
%98 = OpCompositeExtract %v3float %86 2
|
||||
%99 = OpFOrdEqual %v3bool %97 %98
|
||||
%100 = OpAll %bool %99
|
||||
%101 = OpLogicalAnd %bool %96 %100
|
||||
OpBranch %81
|
||||
%81 = OpLabel
|
||||
%102 = OpPhi %bool %false %25 %101 %80
|
||||
OpSelectionMerge %104 None
|
||||
OpBranchConditional %102 %103 %104
|
||||
%103 = OpLabel
|
||||
%105 = OpCompositeConstruct %v4float %float_n2 %float_n0_5 %float_1 %float_0_5
|
||||
%106 = OpCompositeConstruct %v4float %float_1 %float_0_5 %float_0 %float_n0_5
|
||||
%107 = OpCompositeConstruct %v4float %float_n8 %float_n1 %float_2 %float_2
|
||||
%108 = OpCompositeConstruct %v4float %float_3 %float_0_5 %float_n1 %float_n0_5
|
||||
%109 = OpCompositeConstruct %mat4v4float %105 %106 %107 %108
|
||||
%110 = OpLoad %mat4v4float %inv4x4
|
||||
%112 = OpCompositeExtract %v4float %109 0
|
||||
%113 = OpCompositeExtract %v4float %110 0
|
||||
OpBranch %79
|
||||
%79 = OpLabel
|
||||
%97 = OpPhi %bool %false %25 %96 %78
|
||||
OpSelectionMerge %99 None
|
||||
OpBranchConditional %97 %98 %99
|
||||
%98 = OpLabel
|
||||
%100 = OpCompositeConstruct %mat4v4float %60 %61 %62 %63
|
||||
%101 = OpLoad %mat4v4float %inv4x4
|
||||
%103 = OpCompositeExtract %v4float %100 0
|
||||
%104 = OpCompositeExtract %v4float %101 0
|
||||
%105 = OpFOrdEqual %v4bool %103 %104
|
||||
%106 = OpAll %bool %105
|
||||
%107 = OpCompositeExtract %v4float %100 1
|
||||
%108 = OpCompositeExtract %v4float %101 1
|
||||
%109 = OpFOrdEqual %v4bool %107 %108
|
||||
%110 = OpAll %bool %109
|
||||
%111 = OpLogicalAnd %bool %106 %110
|
||||
%112 = OpCompositeExtract %v4float %100 2
|
||||
%113 = OpCompositeExtract %v4float %101 2
|
||||
%114 = OpFOrdEqual %v4bool %112 %113
|
||||
%115 = OpAll %bool %114
|
||||
%116 = OpCompositeExtract %v4float %109 1
|
||||
%117 = OpCompositeExtract %v4float %110 1
|
||||
%118 = OpFOrdEqual %v4bool %116 %117
|
||||
%119 = OpAll %bool %118
|
||||
%120 = OpLogicalAnd %bool %115 %119
|
||||
%121 = OpCompositeExtract %v4float %109 2
|
||||
%122 = OpCompositeExtract %v4float %110 2
|
||||
%123 = OpFOrdEqual %v4bool %121 %122
|
||||
%124 = OpAll %bool %123
|
||||
%125 = OpLogicalAnd %bool %120 %124
|
||||
%126 = OpCompositeExtract %v4float %109 3
|
||||
%127 = OpCompositeExtract %v4float %110 3
|
||||
%128 = OpFOrdEqual %v4bool %126 %127
|
||||
%129 = OpAll %bool %128
|
||||
%130 = OpLogicalAnd %bool %125 %129
|
||||
OpBranch %104
|
||||
%104 = OpLabel
|
||||
%131 = OpPhi %bool %false %81 %130 %103
|
||||
OpSelectionMerge %133 None
|
||||
OpBranchConditional %131 %132 %133
|
||||
%132 = OpLabel
|
||||
%139 = OpCompositeConstruct %v3float %float_1 %float_2 %float_3
|
||||
%140 = OpCompositeConstruct %v3float %float_4 %float_5 %float_6
|
||||
%141 = OpCompositeConstruct %v3float %float_7 %float_8 %float_9
|
||||
%142 = OpCompositeConstruct %mat3v3float %139 %140 %141
|
||||
%134 = OpExtInst %mat3v3float %1 MatrixInverse %142
|
||||
%143 = OpLoad %mat3v3float %inv3x3
|
||||
%144 = OpCompositeExtract %v3float %134 0
|
||||
%145 = OpCompositeExtract %v3float %143 0
|
||||
%116 = OpLogicalAnd %bool %111 %115
|
||||
%117 = OpCompositeExtract %v4float %100 3
|
||||
%118 = OpCompositeExtract %v4float %101 3
|
||||
%119 = OpFOrdEqual %v4bool %117 %118
|
||||
%120 = OpAll %bool %119
|
||||
%121 = OpLogicalAnd %bool %116 %120
|
||||
OpBranch %99
|
||||
%99 = OpLabel
|
||||
%122 = OpPhi %bool %false %79 %121 %98
|
||||
OpSelectionMerge %124 None
|
||||
OpBranchConditional %122 %123 %124
|
||||
%123 = OpLabel
|
||||
%133 = OpCompositeConstruct %mat3v3float %130 %131 %132
|
||||
%125 = OpExtInst %mat3v3float %1 MatrixInverse %133
|
||||
%134 = OpLoad %mat3v3float %inv3x3
|
||||
%135 = OpCompositeExtract %v3float %125 0
|
||||
%136 = OpCompositeExtract %v3float %134 0
|
||||
%137 = OpFUnordNotEqual %v3bool %135 %136
|
||||
%138 = OpAny %bool %137
|
||||
%139 = OpCompositeExtract %v3float %125 1
|
||||
%140 = OpCompositeExtract %v3float %134 1
|
||||
%141 = OpFUnordNotEqual %v3bool %139 %140
|
||||
%142 = OpAny %bool %141
|
||||
%143 = OpLogicalOr %bool %138 %142
|
||||
%144 = OpCompositeExtract %v3float %125 2
|
||||
%145 = OpCompositeExtract %v3float %134 2
|
||||
%146 = OpFUnordNotEqual %v3bool %144 %145
|
||||
%147 = OpAny %bool %146
|
||||
%148 = OpCompositeExtract %v3float %134 1
|
||||
%149 = OpCompositeExtract %v3float %143 1
|
||||
%150 = OpFUnordNotEqual %v3bool %148 %149
|
||||
%151 = OpAny %bool %150
|
||||
%152 = OpLogicalOr %bool %147 %151
|
||||
%153 = OpCompositeExtract %v3float %134 2
|
||||
%154 = OpCompositeExtract %v3float %143 2
|
||||
%155 = OpFUnordNotEqual %v3bool %153 %154
|
||||
%156 = OpAny %bool %155
|
||||
%157 = OpLogicalOr %bool %152 %156
|
||||
OpBranch %133
|
||||
%133 = OpLabel
|
||||
%158 = OpPhi %bool %false %104 %157 %132
|
||||
OpSelectionMerge %163 None
|
||||
OpBranchConditional %158 %161 %162
|
||||
%161 = OpLabel
|
||||
%164 = OpAccessChain %_ptr_Uniform_v4float %10 %int_0
|
||||
%168 = OpLoad %v4float %164
|
||||
OpStore %159 %168
|
||||
OpBranch %163
|
||||
%162 = OpLabel
|
||||
%169 = OpAccessChain %_ptr_Uniform_v4float %10 %int_1
|
||||
%171 = OpLoad %v4float %169
|
||||
OpStore %159 %171
|
||||
OpBranch %163
|
||||
%163 = OpLabel
|
||||
%172 = OpLoad %v4float %159
|
||||
OpReturnValue %172
|
||||
%148 = OpLogicalOr %bool %143 %147
|
||||
OpBranch %124
|
||||
%124 = OpLabel
|
||||
%149 = OpPhi %bool %false %99 %148 %123
|
||||
OpSelectionMerge %154 None
|
||||
OpBranchConditional %149 %152 %153
|
||||
%152 = OpLabel
|
||||
%155 = OpAccessChain %_ptr_Uniform_v4float %10 %int_0
|
||||
%159 = OpLoad %v4float %155
|
||||
OpStore %150 %159
|
||||
OpBranch %154
|
||||
%153 = OpLabel
|
||||
%160 = OpAccessChain %_ptr_Uniform_v4float %10 %int_1
|
||||
%162 = OpLoad %v4float %160
|
||||
OpStore %150 %162
|
||||
OpBranch %154
|
||||
%154 = OpLabel
|
||||
%163 = OpLoad %v4float %150
|
||||
OpReturnValue %163
|
||||
OpFunctionEnd
|
||||
|
@ -51,20 +51,16 @@ OpDecorate %71 RelaxedPrecision
|
||||
OpDecorate %72 RelaxedPrecision
|
||||
OpDecorate %73 RelaxedPrecision
|
||||
OpDecorate %74 RelaxedPrecision
|
||||
OpDecorate %75 RelaxedPrecision
|
||||
OpDecorate %76 RelaxedPrecision
|
||||
OpDecorate %78 RelaxedPrecision
|
||||
OpDecorate %79 RelaxedPrecision
|
||||
OpDecorate %80 RelaxedPrecision
|
||||
OpDecorate %81 RelaxedPrecision
|
||||
OpDecorate %111 RelaxedPrecision
|
||||
OpDecorate %118 RelaxedPrecision
|
||||
OpDecorate %119 RelaxedPrecision
|
||||
OpDecorate %120 RelaxedPrecision
|
||||
OpDecorate %121 RelaxedPrecision
|
||||
OpDecorate %77 RelaxedPrecision
|
||||
OpDecorate %107 RelaxedPrecision
|
||||
OpDecorate %114 RelaxedPrecision
|
||||
OpDecorate %115 RelaxedPrecision
|
||||
OpDecorate %116 RelaxedPrecision
|
||||
OpDecorate %117 RelaxedPrecision
|
||||
OpDecorate %142 RelaxedPrecision
|
||||
OpDecorate %145 RelaxedPrecision
|
||||
OpDecorate %146 RelaxedPrecision
|
||||
OpDecorate %149 RelaxedPrecision
|
||||
OpDecorate %150 RelaxedPrecision
|
||||
%float = OpTypeFloat 32
|
||||
%v4float = OpTypeVector %float 4
|
||||
%_ptr_Output_v4float = OpTypePointer Output %v4float
|
||||
@ -89,6 +85,8 @@ OpDecorate %150 RelaxedPrecision
|
||||
%float_5 = OpConstant %float 5
|
||||
%float_10 = OpConstant %float 10
|
||||
%float_15 = OpConstant %float 15
|
||||
%34 = OpConstantComposite %v2float %float_0 %float_5
|
||||
%35 = OpConstantComposite %v2float %float_10 %float_15
|
||||
%_ptr_Uniform_mat2v2float = OpTypePointer Uniform %mat2v2float
|
||||
%int = OpTypeInt 32 1
|
||||
%int_2 = OpConstant %int 2
|
||||
@ -97,15 +95,21 @@ OpDecorate %150 RelaxedPrecision
|
||||
%_ptr_Uniform_mat3v3float = OpTypePointer Uniform %mat3v3float
|
||||
%int_3 = OpConstant %int 3
|
||||
%float_2 = OpConstant %float 2
|
||||
%63 = OpConstantComposite %v3float %float_2 %float_2 %float_2
|
||||
%false = OpConstantFalse %bool
|
||||
%v2bool = OpTypeVector %bool 2
|
||||
%float_4 = OpConstant %float 4
|
||||
%92 = OpConstantComposite %v2float %float_1 %float_0
|
||||
%93 = OpConstantComposite %v2float %float_0 %float_4
|
||||
%float_6 = OpConstant %float 6
|
||||
%float_8 = OpConstant %float 8
|
||||
%float_12 = OpConstant %float 12
|
||||
%float_14 = OpConstant %float 14
|
||||
%float_16 = OpConstant %float 16
|
||||
%float_18 = OpConstant %float 18
|
||||
%114 = OpConstantComposite %v3float %float_2 %float_4 %float_6
|
||||
%115 = OpConstantComposite %v3float %float_8 %float_10 %float_12
|
||||
%116 = OpConstantComposite %v3float %float_14 %float_16 %float_18
|
||||
%v3bool = OpTypeVector %bool 3
|
||||
%_ptr_Function_v4float = OpTypePointer Function %v4float
|
||||
%_ptr_Uniform_v4float = OpTypePointer Uniform %v4float
|
||||
@ -125,9 +129,7 @@ OpFunctionEnd
|
||||
%h22 = OpVariable %_ptr_Function_mat2v2float Function
|
||||
%f22 = OpVariable %_ptr_Function_mat2v2float Function
|
||||
%h33 = OpVariable %_ptr_Function_mat3v3float Function
|
||||
%138 = OpVariable %_ptr_Function_v4float Function
|
||||
%34 = OpCompositeConstruct %v2float %float_0 %float_5
|
||||
%35 = OpCompositeConstruct %v2float %float_10 %float_15
|
||||
%134 = OpVariable %_ptr_Function_v4float Function
|
||||
%36 = OpCompositeConstruct %mat2v2float %34 %35
|
||||
OpStore %h22 %36
|
||||
%39 = OpAccessChain %_ptr_Uniform_mat2v2float %10 %int_2
|
||||
@ -145,91 +147,81 @@ OpStore %h22 %36
|
||||
OpStore %f22 %54
|
||||
%58 = OpAccessChain %_ptr_Uniform_mat3v3float %10 %int_3
|
||||
%61 = OpLoad %mat3v3float %58
|
||||
%63 = OpCompositeConstruct %v3float %float_2 %float_2 %float_2
|
||||
%64 = OpCompositeConstruct %v3float %float_2 %float_2 %float_2
|
||||
%65 = OpCompositeConstruct %v3float %float_2 %float_2 %float_2
|
||||
%66 = OpCompositeConstruct %mat3v3float %63 %64 %65
|
||||
%67 = OpCompositeExtract %v3float %61 0
|
||||
%68 = OpCompositeExtract %v3float %66 0
|
||||
%69 = OpFMul %v3float %67 %68
|
||||
%70 = OpCompositeExtract %v3float %61 1
|
||||
%71 = OpCompositeExtract %v3float %66 1
|
||||
%72 = OpFMul %v3float %70 %71
|
||||
%73 = OpCompositeExtract %v3float %61 2
|
||||
%74 = OpCompositeExtract %v3float %66 2
|
||||
%75 = OpFMul %v3float %73 %74
|
||||
%76 = OpCompositeConstruct %mat3v3float %69 %72 %75
|
||||
OpStore %h33 %76
|
||||
%78 = OpLoad %mat2v2float %h22
|
||||
%79 = OpCompositeConstruct %v2float %float_0 %float_5
|
||||
%80 = OpCompositeConstruct %v2float %float_10 %float_15
|
||||
%81 = OpCompositeConstruct %mat2v2float %79 %80
|
||||
%83 = OpCompositeExtract %v2float %78 0
|
||||
%84 = OpCompositeExtract %v2float %81 0
|
||||
%64 = OpCompositeConstruct %mat3v3float %63 %63 %63
|
||||
%65 = OpCompositeExtract %v3float %61 0
|
||||
%66 = OpCompositeExtract %v3float %64 0
|
||||
%67 = OpFMul %v3float %65 %66
|
||||
%68 = OpCompositeExtract %v3float %61 1
|
||||
%69 = OpCompositeExtract %v3float %64 1
|
||||
%70 = OpFMul %v3float %68 %69
|
||||
%71 = OpCompositeExtract %v3float %61 2
|
||||
%72 = OpCompositeExtract %v3float %64 2
|
||||
%73 = OpFMul %v3float %71 %72
|
||||
%74 = OpCompositeConstruct %mat3v3float %67 %70 %73
|
||||
OpStore %h33 %74
|
||||
%76 = OpLoad %mat2v2float %h22
|
||||
%77 = OpCompositeConstruct %mat2v2float %34 %35
|
||||
%79 = OpCompositeExtract %v2float %76 0
|
||||
%80 = OpCompositeExtract %v2float %77 0
|
||||
%81 = OpFOrdEqual %v2bool %79 %80
|
||||
%82 = OpAll %bool %81
|
||||
%83 = OpCompositeExtract %v2float %76 1
|
||||
%84 = OpCompositeExtract %v2float %77 1
|
||||
%85 = OpFOrdEqual %v2bool %83 %84
|
||||
%86 = OpAll %bool %85
|
||||
%87 = OpCompositeExtract %v2float %78 1
|
||||
%88 = OpCompositeExtract %v2float %81 1
|
||||
%89 = OpFOrdEqual %v2bool %87 %88
|
||||
%90 = OpAll %bool %89
|
||||
%91 = OpLogicalAnd %bool %86 %90
|
||||
OpSelectionMerge %93 None
|
||||
OpBranchConditional %91 %92 %93
|
||||
%92 = OpLabel
|
||||
%94 = OpLoad %mat2v2float %f22
|
||||
%96 = OpCompositeConstruct %v2float %float_1 %float_0
|
||||
%97 = OpCompositeConstruct %v2float %float_0 %float_4
|
||||
%98 = OpCompositeConstruct %mat2v2float %96 %97
|
||||
%99 = OpCompositeExtract %v2float %94 0
|
||||
%100 = OpCompositeExtract %v2float %98 0
|
||||
%87 = OpLogicalAnd %bool %82 %86
|
||||
OpSelectionMerge %89 None
|
||||
OpBranchConditional %87 %88 %89
|
||||
%88 = OpLabel
|
||||
%90 = OpLoad %mat2v2float %f22
|
||||
%94 = OpCompositeConstruct %mat2v2float %92 %93
|
||||
%95 = OpCompositeExtract %v2float %90 0
|
||||
%96 = OpCompositeExtract %v2float %94 0
|
||||
%97 = OpFOrdEqual %v2bool %95 %96
|
||||
%98 = OpAll %bool %97
|
||||
%99 = OpCompositeExtract %v2float %90 1
|
||||
%100 = OpCompositeExtract %v2float %94 1
|
||||
%101 = OpFOrdEqual %v2bool %99 %100
|
||||
%102 = OpAll %bool %101
|
||||
%103 = OpCompositeExtract %v2float %94 1
|
||||
%104 = OpCompositeExtract %v2float %98 1
|
||||
%105 = OpFOrdEqual %v2bool %103 %104
|
||||
%106 = OpAll %bool %105
|
||||
%107 = OpLogicalAnd %bool %102 %106
|
||||
OpBranch %93
|
||||
%93 = OpLabel
|
||||
%108 = OpPhi %bool %false %28 %107 %92
|
||||
OpSelectionMerge %110 None
|
||||
OpBranchConditional %108 %109 %110
|
||||
%109 = OpLabel
|
||||
%111 = OpLoad %mat3v3float %h33
|
||||
%118 = OpCompositeConstruct %v3float %float_2 %float_4 %float_6
|
||||
%119 = OpCompositeConstruct %v3float %float_8 %float_10 %float_12
|
||||
%120 = OpCompositeConstruct %v3float %float_14 %float_16 %float_18
|
||||
%121 = OpCompositeConstruct %mat3v3float %118 %119 %120
|
||||
%123 = OpCompositeExtract %v3float %111 0
|
||||
%124 = OpCompositeExtract %v3float %121 0
|
||||
%103 = OpLogicalAnd %bool %98 %102
|
||||
OpBranch %89
|
||||
%89 = OpLabel
|
||||
%104 = OpPhi %bool %false %28 %103 %88
|
||||
OpSelectionMerge %106 None
|
||||
OpBranchConditional %104 %105 %106
|
||||
%105 = OpLabel
|
||||
%107 = OpLoad %mat3v3float %h33
|
||||
%117 = OpCompositeConstruct %mat3v3float %114 %115 %116
|
||||
%119 = OpCompositeExtract %v3float %107 0
|
||||
%120 = OpCompositeExtract %v3float %117 0
|
||||
%121 = OpFOrdEqual %v3bool %119 %120
|
||||
%122 = OpAll %bool %121
|
||||
%123 = OpCompositeExtract %v3float %107 1
|
||||
%124 = OpCompositeExtract %v3float %117 1
|
||||
%125 = OpFOrdEqual %v3bool %123 %124
|
||||
%126 = OpAll %bool %125
|
||||
%127 = OpCompositeExtract %v3float %111 1
|
||||
%128 = OpCompositeExtract %v3float %121 1
|
||||
%129 = OpFOrdEqual %v3bool %127 %128
|
||||
%130 = OpAll %bool %129
|
||||
%131 = OpLogicalAnd %bool %126 %130
|
||||
%132 = OpCompositeExtract %v3float %111 2
|
||||
%133 = OpCompositeExtract %v3float %121 2
|
||||
%134 = OpFOrdEqual %v3bool %132 %133
|
||||
%135 = OpAll %bool %134
|
||||
%136 = OpLogicalAnd %bool %131 %135
|
||||
OpBranch %110
|
||||
%110 = OpLabel
|
||||
%137 = OpPhi %bool %false %93 %136 %109
|
||||
OpSelectionMerge %142 None
|
||||
OpBranchConditional %137 %140 %141
|
||||
%140 = OpLabel
|
||||
%143 = OpAccessChain %_ptr_Uniform_v4float %10 %int_0
|
||||
%146 = OpLoad %v4float %143
|
||||
OpStore %138 %146
|
||||
OpBranch %142
|
||||
%141 = OpLabel
|
||||
%147 = OpAccessChain %_ptr_Uniform_v4float %10 %int_1
|
||||
%149 = OpLoad %v4float %147
|
||||
OpStore %138 %149
|
||||
OpBranch %142
|
||||
%142 = OpLabel
|
||||
%150 = OpLoad %v4float %138
|
||||
OpReturnValue %150
|
||||
%127 = OpLogicalAnd %bool %122 %126
|
||||
%128 = OpCompositeExtract %v3float %107 2
|
||||
%129 = OpCompositeExtract %v3float %117 2
|
||||
%130 = OpFOrdEqual %v3bool %128 %129
|
||||
%131 = OpAll %bool %130
|
||||
%132 = OpLogicalAnd %bool %127 %131
|
||||
OpBranch %106
|
||||
%106 = OpLabel
|
||||
%133 = OpPhi %bool %false %89 %132 %105
|
||||
OpSelectionMerge %138 None
|
||||
OpBranchConditional %133 %136 %137
|
||||
%136 = OpLabel
|
||||
%139 = OpAccessChain %_ptr_Uniform_v4float %10 %int_0
|
||||
%142 = OpLoad %v4float %139
|
||||
OpStore %134 %142
|
||||
OpBranch %138
|
||||
%137 = OpLabel
|
||||
%143 = OpAccessChain %_ptr_Uniform_v4float %10 %int_1
|
||||
%145 = OpLoad %v4float %143
|
||||
OpStore %134 %145
|
||||
OpBranch %138
|
||||
%138 = OpLabel
|
||||
%146 = OpLoad %v4float %134
|
||||
OpReturnValue %146
|
||||
OpFunctionEnd
|
||||
|
@ -27,8 +27,8 @@ OpDecorate %10 DescriptorSet 0
|
||||
OpDecorate %h24 RelaxedPrecision
|
||||
OpDecorate %31 RelaxedPrecision
|
||||
OpDecorate %32 RelaxedPrecision
|
||||
OpDecorate %33 RelaxedPrecision
|
||||
OpDecorate %38 RelaxedPrecision
|
||||
OpDecorate %37 RelaxedPrecision
|
||||
OpDecorate %40 RelaxedPrecision
|
||||
OpDecorate %41 RelaxedPrecision
|
||||
OpDecorate %42 RelaxedPrecision
|
||||
OpDecorate %43 RelaxedPrecision
|
||||
@ -37,14 +37,14 @@ OpDecorate %45 RelaxedPrecision
|
||||
OpDecorate %46 RelaxedPrecision
|
||||
OpDecorate %47 RelaxedPrecision
|
||||
OpDecorate %48 RelaxedPrecision
|
||||
OpDecorate %49 RelaxedPrecision
|
||||
OpDecorate %h42 RelaxedPrecision
|
||||
OpDecorate %61 RelaxedPrecision
|
||||
OpDecorate %62 RelaxedPrecision
|
||||
OpDecorate %63 RelaxedPrecision
|
||||
OpDecorate %64 RelaxedPrecision
|
||||
OpDecorate %65 RelaxedPrecision
|
||||
OpDecorate %66 RelaxedPrecision
|
||||
OpDecorate %68 RelaxedPrecision
|
||||
OpDecorate %67 RelaxedPrecision
|
||||
OpDecorate %69 RelaxedPrecision
|
||||
OpDecorate %70 RelaxedPrecision
|
||||
OpDecorate %71 RelaxedPrecision
|
||||
OpDecorate %72 RelaxedPrecision
|
||||
@ -71,20 +71,19 @@ OpDecorate %92 RelaxedPrecision
|
||||
OpDecorate %93 RelaxedPrecision
|
||||
OpDecorate %94 RelaxedPrecision
|
||||
OpDecorate %95 RelaxedPrecision
|
||||
OpDecorate %96 RelaxedPrecision
|
||||
OpDecorate %112 RelaxedPrecision
|
||||
OpDecorate %113 RelaxedPrecision
|
||||
OpDecorate %114 RelaxedPrecision
|
||||
OpDecorate %115 RelaxedPrecision
|
||||
OpDecorate %116 RelaxedPrecision
|
||||
OpDecorate %128 RelaxedPrecision
|
||||
OpDecorate %129 RelaxedPrecision
|
||||
OpDecorate %130 RelaxedPrecision
|
||||
OpDecorate %131 RelaxedPrecision
|
||||
OpDecorate %132 RelaxedPrecision
|
||||
OpDecorate %133 RelaxedPrecision
|
||||
OpDecorate %134 RelaxedPrecision
|
||||
OpDecorate %191 RelaxedPrecision
|
||||
OpDecorate %193 RelaxedPrecision
|
||||
OpDecorate %194 RelaxedPrecision
|
||||
OpDecorate %186 RelaxedPrecision
|
||||
OpDecorate %188 RelaxedPrecision
|
||||
OpDecorate %189 RelaxedPrecision
|
||||
%float = OpTypeFloat 32
|
||||
%v4float = OpTypeVector %float 4
|
||||
%_ptr_Output_v4float = OpTypePointer Output %v4float
|
||||
@ -105,6 +104,7 @@ OpDecorate %194 RelaxedPrecision
|
||||
%mat2v4float = OpTypeMatrix %v4float 2
|
||||
%_ptr_Function_mat2v4float = OpTypePointer Function %mat2v4float
|
||||
%float_9 = OpConstant %float 9
|
||||
%31 = OpConstantComposite %v4float %float_9 %float_9 %float_9 %float_9
|
||||
%_ptr_Uniform_v4float = OpTypePointer Uniform %v4float
|
||||
%int = OpTypeInt 32 1
|
||||
%int_1 = OpConstant %int 1
|
||||
@ -119,6 +119,10 @@ OpDecorate %194 RelaxedPrecision
|
||||
%float_6 = OpConstant %float 6
|
||||
%float_7 = OpConstant %float 7
|
||||
%float_8 = OpConstant %float 8
|
||||
%61 = OpConstantComposite %v2float %float_1 %float_2
|
||||
%62 = OpConstantComposite %v2float %float_3 %float_4
|
||||
%63 = OpConstantComposite %v2float %float_5 %float_6
|
||||
%64 = OpConstantComposite %v2float %float_7 %float_8
|
||||
%v3float = OpTypeVector %float 3
|
||||
%mat4v3float = OpTypeMatrix %v3float 4
|
||||
%_ptr_Function_mat4v3float = OpTypePointer Function %mat4v3float
|
||||
@ -128,8 +132,18 @@ OpDecorate %194 RelaxedPrecision
|
||||
%float_36 = OpConstant %float 36
|
||||
%float_40 = OpConstant %float 40
|
||||
%float_42 = OpConstant %float 42
|
||||
%106 = OpConstantComposite %v3float %float_12 %float_22 %float_30
|
||||
%107 = OpConstantComposite %v3float %float_36 %float_40 %float_42
|
||||
%108 = OpConstantComposite %v3float %float_42 %float_40 %float_36
|
||||
%109 = OpConstantComposite %v3float %float_30 %float_22 %float_12
|
||||
%false = OpConstantFalse %bool
|
||||
%113 = OpConstantComposite %v4float %float_9 %float_0 %float_0 %float_9
|
||||
%114 = OpConstantComposite %v4float %float_0 %float_9 %float_0 %float_9
|
||||
%v4bool = OpTypeVector %bool 4
|
||||
%129 = OpConstantComposite %v2float %float_1 %float_0
|
||||
%130 = OpConstantComposite %v2float %float_0 %float_4
|
||||
%131 = OpConstantComposite %v2float %float_0 %float_6
|
||||
%132 = OpConstantComposite %v2float %float_0 %float_8
|
||||
%v2bool = OpTypeVector %bool 2
|
||||
%v3bool = OpTypeVector %bool 3
|
||||
%_ptr_Function_v4float = OpTypePointer Function %v4float
|
||||
@ -147,153 +161,133 @@ OpFunctionEnd
|
||||
%h24 = OpVariable %_ptr_Function_mat2v4float Function
|
||||
%h42 = OpVariable %_ptr_Function_mat4v2float Function
|
||||
%f43 = OpVariable %_ptr_Function_mat4v3float Function
|
||||
%185 = OpVariable %_ptr_Function_v4float Function
|
||||
%31 = OpCompositeConstruct %v4float %float_9 %float_9 %float_9 %float_9
|
||||
%32 = OpCompositeConstruct %v4float %float_9 %float_9 %float_9 %float_9
|
||||
%33 = OpCompositeConstruct %mat2v4float %31 %32
|
||||
%34 = OpAccessChain %_ptr_Uniform_v4float %10 %int_1
|
||||
%38 = OpLoad %v4float %34
|
||||
%39 = OpAccessChain %_ptr_Uniform_v4float %10 %int_0
|
||||
%41 = OpLoad %v4float %39
|
||||
%42 = OpCompositeConstruct %mat2v4float %38 %41
|
||||
%43 = OpCompositeExtract %v4float %33 0
|
||||
%44 = OpCompositeExtract %v4float %42 0
|
||||
%45 = OpFMul %v4float %43 %44
|
||||
%46 = OpCompositeExtract %v4float %33 1
|
||||
%47 = OpCompositeExtract %v4float %42 1
|
||||
%48 = OpFMul %v4float %46 %47
|
||||
%49 = OpCompositeConstruct %mat2v4float %45 %48
|
||||
OpStore %h24 %49
|
||||
%62 = OpCompositeConstruct %v2float %float_1 %float_2
|
||||
%63 = OpCompositeConstruct %v2float %float_3 %float_4
|
||||
%64 = OpCompositeConstruct %v2float %float_5 %float_6
|
||||
%65 = OpCompositeConstruct %v2float %float_7 %float_8
|
||||
%66 = OpCompositeConstruct %mat4v2float %62 %63 %64 %65
|
||||
%67 = OpAccessChain %_ptr_Uniform_v4float %10 %int_1
|
||||
%68 = OpLoad %v4float %67
|
||||
%69 = OpAccessChain %_ptr_Uniform_v4float %10 %int_0
|
||||
%70 = OpLoad %v4float %69
|
||||
%71 = OpCompositeExtract %float %68 0
|
||||
%72 = OpCompositeExtract %float %68 1
|
||||
%73 = OpCompositeConstruct %v2float %71 %72
|
||||
%74 = OpCompositeExtract %float %68 2
|
||||
%75 = OpCompositeExtract %float %68 3
|
||||
%76 = OpCompositeConstruct %v2float %74 %75
|
||||
%77 = OpCompositeExtract %float %70 0
|
||||
%78 = OpCompositeExtract %float %70 1
|
||||
%79 = OpCompositeConstruct %v2float %77 %78
|
||||
%80 = OpCompositeExtract %float %70 2
|
||||
%81 = OpCompositeExtract %float %70 3
|
||||
%82 = OpCompositeConstruct %v2float %80 %81
|
||||
%83 = OpCompositeConstruct %mat4v2float %73 %76 %79 %82
|
||||
%84 = OpCompositeExtract %v2float %66 0
|
||||
%85 = OpCompositeExtract %v2float %83 0
|
||||
%86 = OpFMul %v2float %84 %85
|
||||
%87 = OpCompositeExtract %v2float %66 1
|
||||
%88 = OpCompositeExtract %v2float %83 1
|
||||
%89 = OpFMul %v2float %87 %88
|
||||
%90 = OpCompositeExtract %v2float %66 2
|
||||
%91 = OpCompositeExtract %v2float %83 2
|
||||
%92 = OpFMul %v2float %90 %91
|
||||
%93 = OpCompositeExtract %v2float %66 3
|
||||
%94 = OpCompositeExtract %v2float %83 3
|
||||
%95 = OpFMul %v2float %93 %94
|
||||
%96 = OpCompositeConstruct %mat4v2float %86 %89 %92 %95
|
||||
OpStore %h42 %96
|
||||
%107 = OpCompositeConstruct %v3float %float_12 %float_22 %float_30
|
||||
%108 = OpCompositeConstruct %v3float %float_36 %float_40 %float_42
|
||||
%109 = OpCompositeConstruct %v3float %float_42 %float_40 %float_36
|
||||
%110 = OpCompositeConstruct %v3float %float_30 %float_22 %float_12
|
||||
%111 = OpCompositeConstruct %mat4v3float %107 %108 %109 %110
|
||||
OpStore %f43 %111
|
||||
%113 = OpLoad %mat2v4float %h24
|
||||
%114 = OpCompositeConstruct %v4float %float_9 %float_0 %float_0 %float_9
|
||||
%115 = OpCompositeConstruct %v4float %float_0 %float_9 %float_0 %float_9
|
||||
%116 = OpCompositeConstruct %mat2v4float %114 %115
|
||||
%118 = OpCompositeExtract %v4float %113 0
|
||||
%119 = OpCompositeExtract %v4float %116 0
|
||||
%120 = OpFOrdEqual %v4bool %118 %119
|
||||
%121 = OpAll %bool %120
|
||||
%122 = OpCompositeExtract %v4float %113 1
|
||||
%123 = OpCompositeExtract %v4float %116 1
|
||||
%124 = OpFOrdEqual %v4bool %122 %123
|
||||
%125 = OpAll %bool %124
|
||||
%126 = OpLogicalAnd %bool %121 %125
|
||||
OpSelectionMerge %128 None
|
||||
OpBranchConditional %126 %127 %128
|
||||
%180 = OpVariable %_ptr_Function_v4float Function
|
||||
%32 = OpCompositeConstruct %mat2v4float %31 %31
|
||||
%33 = OpAccessChain %_ptr_Uniform_v4float %10 %int_1
|
||||
%37 = OpLoad %v4float %33
|
||||
%38 = OpAccessChain %_ptr_Uniform_v4float %10 %int_0
|
||||
%40 = OpLoad %v4float %38
|
||||
%41 = OpCompositeConstruct %mat2v4float %37 %40
|
||||
%42 = OpCompositeExtract %v4float %32 0
|
||||
%43 = OpCompositeExtract %v4float %41 0
|
||||
%44 = OpFMul %v4float %42 %43
|
||||
%45 = OpCompositeExtract %v4float %32 1
|
||||
%46 = OpCompositeExtract %v4float %41 1
|
||||
%47 = OpFMul %v4float %45 %46
|
||||
%48 = OpCompositeConstruct %mat2v4float %44 %47
|
||||
OpStore %h24 %48
|
||||
%65 = OpCompositeConstruct %mat4v2float %61 %62 %63 %64
|
||||
%66 = OpAccessChain %_ptr_Uniform_v4float %10 %int_1
|
||||
%67 = OpLoad %v4float %66
|
||||
%68 = OpAccessChain %_ptr_Uniform_v4float %10 %int_0
|
||||
%69 = OpLoad %v4float %68
|
||||
%70 = OpCompositeExtract %float %67 0
|
||||
%71 = OpCompositeExtract %float %67 1
|
||||
%72 = OpCompositeConstruct %v2float %70 %71
|
||||
%73 = OpCompositeExtract %float %67 2
|
||||
%74 = OpCompositeExtract %float %67 3
|
||||
%75 = OpCompositeConstruct %v2float %73 %74
|
||||
%76 = OpCompositeExtract %float %69 0
|
||||
%77 = OpCompositeExtract %float %69 1
|
||||
%78 = OpCompositeConstruct %v2float %76 %77
|
||||
%79 = OpCompositeExtract %float %69 2
|
||||
%80 = OpCompositeExtract %float %69 3
|
||||
%81 = OpCompositeConstruct %v2float %79 %80
|
||||
%82 = OpCompositeConstruct %mat4v2float %72 %75 %78 %81
|
||||
%83 = OpCompositeExtract %v2float %65 0
|
||||
%84 = OpCompositeExtract %v2float %82 0
|
||||
%85 = OpFMul %v2float %83 %84
|
||||
%86 = OpCompositeExtract %v2float %65 1
|
||||
%87 = OpCompositeExtract %v2float %82 1
|
||||
%88 = OpFMul %v2float %86 %87
|
||||
%89 = OpCompositeExtract %v2float %65 2
|
||||
%90 = OpCompositeExtract %v2float %82 2
|
||||
%91 = OpFMul %v2float %89 %90
|
||||
%92 = OpCompositeExtract %v2float %65 3
|
||||
%93 = OpCompositeExtract %v2float %82 3
|
||||
%94 = OpFMul %v2float %92 %93
|
||||
%95 = OpCompositeConstruct %mat4v2float %85 %88 %91 %94
|
||||
OpStore %h42 %95
|
||||
%110 = OpCompositeConstruct %mat4v3float %106 %107 %108 %109
|
||||
OpStore %f43 %110
|
||||
%112 = OpLoad %mat2v4float %h24
|
||||
%115 = OpCompositeConstruct %mat2v4float %113 %114
|
||||
%117 = OpCompositeExtract %v4float %112 0
|
||||
%118 = OpCompositeExtract %v4float %115 0
|
||||
%119 = OpFOrdEqual %v4bool %117 %118
|
||||
%120 = OpAll %bool %119
|
||||
%121 = OpCompositeExtract %v4float %112 1
|
||||
%122 = OpCompositeExtract %v4float %115 1
|
||||
%123 = OpFOrdEqual %v4bool %121 %122
|
||||
%124 = OpAll %bool %123
|
||||
%125 = OpLogicalAnd %bool %120 %124
|
||||
OpSelectionMerge %127 None
|
||||
OpBranchConditional %125 %126 %127
|
||||
%126 = OpLabel
|
||||
%128 = OpLoad %mat4v2float %h42
|
||||
%133 = OpCompositeConstruct %mat4v2float %129 %130 %131 %132
|
||||
%135 = OpCompositeExtract %v2float %128 0
|
||||
%136 = OpCompositeExtract %v2float %133 0
|
||||
%137 = OpFOrdEqual %v2bool %135 %136
|
||||
%138 = OpAll %bool %137
|
||||
%139 = OpCompositeExtract %v2float %128 1
|
||||
%140 = OpCompositeExtract %v2float %133 1
|
||||
%141 = OpFOrdEqual %v2bool %139 %140
|
||||
%142 = OpAll %bool %141
|
||||
%143 = OpLogicalAnd %bool %138 %142
|
||||
%144 = OpCompositeExtract %v2float %128 2
|
||||
%145 = OpCompositeExtract %v2float %133 2
|
||||
%146 = OpFOrdEqual %v2bool %144 %145
|
||||
%147 = OpAll %bool %146
|
||||
%148 = OpLogicalAnd %bool %143 %147
|
||||
%149 = OpCompositeExtract %v2float %128 3
|
||||
%150 = OpCompositeExtract %v2float %133 3
|
||||
%151 = OpFOrdEqual %v2bool %149 %150
|
||||
%152 = OpAll %bool %151
|
||||
%153 = OpLogicalAnd %bool %148 %152
|
||||
OpBranch %127
|
||||
%127 = OpLabel
|
||||
%129 = OpLoad %mat4v2float %h42
|
||||
%130 = OpCompositeConstruct %v2float %float_1 %float_0
|
||||
%131 = OpCompositeConstruct %v2float %float_0 %float_4
|
||||
%132 = OpCompositeConstruct %v2float %float_0 %float_6
|
||||
%133 = OpCompositeConstruct %v2float %float_0 %float_8
|
||||
%134 = OpCompositeConstruct %mat4v2float %130 %131 %132 %133
|
||||
%136 = OpCompositeExtract %v2float %129 0
|
||||
%137 = OpCompositeExtract %v2float %134 0
|
||||
%138 = OpFOrdEqual %v2bool %136 %137
|
||||
%139 = OpAll %bool %138
|
||||
%140 = OpCompositeExtract %v2float %129 1
|
||||
%141 = OpCompositeExtract %v2float %134 1
|
||||
%142 = OpFOrdEqual %v2bool %140 %141
|
||||
%143 = OpAll %bool %142
|
||||
%144 = OpLogicalAnd %bool %139 %143
|
||||
%145 = OpCompositeExtract %v2float %129 2
|
||||
%146 = OpCompositeExtract %v2float %134 2
|
||||
%147 = OpFOrdEqual %v2bool %145 %146
|
||||
%148 = OpAll %bool %147
|
||||
%149 = OpLogicalAnd %bool %144 %148
|
||||
%150 = OpCompositeExtract %v2float %129 3
|
||||
%151 = OpCompositeExtract %v2float %134 3
|
||||
%152 = OpFOrdEqual %v2bool %150 %151
|
||||
%153 = OpAll %bool %152
|
||||
%154 = OpLogicalAnd %bool %149 %153
|
||||
OpBranch %128
|
||||
%128 = OpLabel
|
||||
%155 = OpPhi %bool %false %25 %154 %127
|
||||
OpSelectionMerge %157 None
|
||||
OpBranchConditional %155 %156 %157
|
||||
%156 = OpLabel
|
||||
%158 = OpLoad %mat4v3float %f43
|
||||
%159 = OpCompositeConstruct %v3float %float_12 %float_22 %float_30
|
||||
%160 = OpCompositeConstruct %v3float %float_36 %float_40 %float_42
|
||||
%161 = OpCompositeConstruct %v3float %float_42 %float_40 %float_36
|
||||
%162 = OpCompositeConstruct %v3float %float_30 %float_22 %float_12
|
||||
%163 = OpCompositeConstruct %mat4v3float %159 %160 %161 %162
|
||||
%165 = OpCompositeExtract %v3float %158 0
|
||||
%166 = OpCompositeExtract %v3float %163 0
|
||||
%167 = OpFOrdEqual %v3bool %165 %166
|
||||
%168 = OpAll %bool %167
|
||||
%169 = OpCompositeExtract %v3float %158 1
|
||||
%170 = OpCompositeExtract %v3float %163 1
|
||||
%154 = OpPhi %bool %false %25 %153 %126
|
||||
OpSelectionMerge %156 None
|
||||
OpBranchConditional %154 %155 %156
|
||||
%155 = OpLabel
|
||||
%157 = OpLoad %mat4v3float %f43
|
||||
%158 = OpCompositeConstruct %mat4v3float %106 %107 %108 %109
|
||||
%160 = OpCompositeExtract %v3float %157 0
|
||||
%161 = OpCompositeExtract %v3float %158 0
|
||||
%162 = OpFOrdEqual %v3bool %160 %161
|
||||
%163 = OpAll %bool %162
|
||||
%164 = OpCompositeExtract %v3float %157 1
|
||||
%165 = OpCompositeExtract %v3float %158 1
|
||||
%166 = OpFOrdEqual %v3bool %164 %165
|
||||
%167 = OpAll %bool %166
|
||||
%168 = OpLogicalAnd %bool %163 %167
|
||||
%169 = OpCompositeExtract %v3float %157 2
|
||||
%170 = OpCompositeExtract %v3float %158 2
|
||||
%171 = OpFOrdEqual %v3bool %169 %170
|
||||
%172 = OpAll %bool %171
|
||||
%173 = OpLogicalAnd %bool %168 %172
|
||||
%174 = OpCompositeExtract %v3float %158 2
|
||||
%175 = OpCompositeExtract %v3float %163 2
|
||||
%174 = OpCompositeExtract %v3float %157 3
|
||||
%175 = OpCompositeExtract %v3float %158 3
|
||||
%176 = OpFOrdEqual %v3bool %174 %175
|
||||
%177 = OpAll %bool %176
|
||||
%178 = OpLogicalAnd %bool %173 %177
|
||||
%179 = OpCompositeExtract %v3float %158 3
|
||||
%180 = OpCompositeExtract %v3float %163 3
|
||||
%181 = OpFOrdEqual %v3bool %179 %180
|
||||
%182 = OpAll %bool %181
|
||||
%183 = OpLogicalAnd %bool %178 %182
|
||||
OpBranch %157
|
||||
%157 = OpLabel
|
||||
%184 = OpPhi %bool %false %128 %183 %156
|
||||
OpSelectionMerge %189 None
|
||||
OpBranchConditional %184 %187 %188
|
||||
%187 = OpLabel
|
||||
%190 = OpAccessChain %_ptr_Uniform_v4float %10 %int_0
|
||||
%191 = OpLoad %v4float %190
|
||||
OpStore %185 %191
|
||||
OpBranch %189
|
||||
%188 = OpLabel
|
||||
%192 = OpAccessChain %_ptr_Uniform_v4float %10 %int_1
|
||||
%193 = OpLoad %v4float %192
|
||||
OpStore %185 %193
|
||||
OpBranch %189
|
||||
%189 = OpLabel
|
||||
%194 = OpLoad %v4float %185
|
||||
OpReturnValue %194
|
||||
OpBranch %156
|
||||
%156 = OpLabel
|
||||
%179 = OpPhi %bool %false %127 %178 %155
|
||||
OpSelectionMerge %184 None
|
||||
OpBranchConditional %179 %182 %183
|
||||
%182 = OpLabel
|
||||
%185 = OpAccessChain %_ptr_Uniform_v4float %10 %int_0
|
||||
%186 = OpLoad %v4float %185
|
||||
OpStore %180 %186
|
||||
OpBranch %184
|
||||
%183 = OpLabel
|
||||
%187 = OpAccessChain %_ptr_Uniform_v4float %10 %int_1
|
||||
%188 = OpLoad %v4float %187
|
||||
OpStore %180 %188
|
||||
OpBranch %184
|
||||
%184 = OpLabel
|
||||
%189 = OpLoad %v4float %180
|
||||
OpReturnValue %189
|
||||
OpFunctionEnd
|
||||
|
@ -33,14 +33,14 @@ OpMemberDecorate %_UniformBuffer 4 RelaxedPrecision
|
||||
OpDecorate %_UniformBuffer Block
|
||||
OpDecorate %10 Binding 0
|
||||
OpDecorate %10 DescriptorSet 0
|
||||
OpDecorate %132 RelaxedPrecision
|
||||
OpDecorate %131 RelaxedPrecision
|
||||
OpDecorate %135 RelaxedPrecision
|
||||
OpDecorate %136 RelaxedPrecision
|
||||
OpDecorate %137 RelaxedPrecision
|
||||
OpDecorate %175 RelaxedPrecision
|
||||
OpDecorate %196 RelaxedPrecision
|
||||
OpDecorate %229 RelaxedPrecision
|
||||
OpDecorate %231 RelaxedPrecision
|
||||
OpDecorate %232 RelaxedPrecision
|
||||
OpDecorate %173 RelaxedPrecision
|
||||
OpDecorate %192 RelaxedPrecision
|
||||
OpDecorate %224 RelaxedPrecision
|
||||
OpDecorate %226 RelaxedPrecision
|
||||
OpDecorate %227 RelaxedPrecision
|
||||
%float = OpTypeFloat 32
|
||||
%v4float = OpTypeVector %float 4
|
||||
%_ptr_Output_v4float = OpTypePointer Output %v4float
|
||||
@ -75,6 +75,8 @@ OpDecorate %232 RelaxedPrecision
|
||||
%float_6 = OpConstant %float 6
|
||||
%float_4 = OpConstant %float 4
|
||||
%float_8 = OpConstant %float 8
|
||||
%51 = OpConstantComposite %v2float %float_3 %float_6
|
||||
%52 = OpConstantComposite %v2float %float_4 %float_8
|
||||
%v2bool = OpTypeVector %bool 2
|
||||
%_ptr_Uniform_mat3v3float = OpTypePointer Uniform %mat3v3float
|
||||
%int_3 = OpConstant %int 3
|
||||
@ -84,11 +86,16 @@ OpDecorate %232 RelaxedPrecision
|
||||
%float_10 = OpConstant %float 10
|
||||
%float_15 = OpConstant %float 15
|
||||
%float_18 = OpConstant %float 18
|
||||
%81 = OpConstantComposite %v3float %float_4 %float_8 %float_12
|
||||
%82 = OpConstantComposite %v3float %float_5 %float_10 %float_15
|
||||
%83 = OpConstantComposite %v3float %float_6 %float_12 %float_18
|
||||
%v3bool = OpTypeVector %bool 3
|
||||
%mat3v2float = OpTypeMatrix %v2float 3
|
||||
%111 = OpConstantComposite %v2float %float_5 %float_10
|
||||
%112 = OpConstantComposite %v2float %float_6 %float_12
|
||||
%_ptr_Uniform_v4float = OpTypePointer Uniform %v4float
|
||||
%int_4 = OpConstant %int 4
|
||||
%137 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_2
|
||||
%136 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_2
|
||||
%mat4v4float = OpTypeMatrix %v4float 4
|
||||
%float_n1_25 = OpConstant %float -1.25
|
||||
%float_0_75 = OpConstant %float 0.75
|
||||
@ -96,9 +103,15 @@ OpDecorate %232 RelaxedPrecision
|
||||
%float_n2_5 = OpConstant %float -2.5
|
||||
%float_1_5 = OpConstant %float 1.5
|
||||
%float_4_5 = OpConstant %float 4.5
|
||||
%144 = OpConstantComposite %v4float %float_n1_25 %float_0 %float_0_75 %float_2_25
|
||||
%145 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0
|
||||
%146 = OpConstantComposite %v4float %float_n2_5 %float_0 %float_1_5 %float_4_5
|
||||
%v4bool = OpTypeVector %bool 4
|
||||
%mat2v4float = OpTypeMatrix %v4float 2
|
||||
%mat4v2float = OpTypeMatrix %v2float 4
|
||||
%194 = OpConstantComposite %v2float %float_n1_25 %float_n2_5
|
||||
%195 = OpConstantComposite %v2float %float_0_75 %float_1_5
|
||||
%196 = OpConstantComposite %v2float %float_2_25 %float_4_5
|
||||
%_ptr_Function_v4float = OpTypePointer Function %v4float
|
||||
%_entrypoint_v = OpFunction %void None %19
|
||||
%20 = OpLabel
|
||||
@ -112,7 +125,7 @@ OpFunctionEnd
|
||||
%27 = OpFunctionParameter %_ptr_Function_v2float
|
||||
%28 = OpLabel
|
||||
%c12 = OpVariable %_ptr_Function_v2float Function
|
||||
%223 = OpVariable %_ptr_Function_v4float Function
|
||||
%218 = OpVariable %_ptr_Function_v4float Function
|
||||
OpStore %c12 %32
|
||||
%35 = OpAccessChain %_ptr_Uniform_mat2v2float %10 %int_2
|
||||
%40 = OpAccessChain %_ptr_Uniform_v2float %35 %int_0
|
||||
@ -121,8 +134,6 @@ OpStore %c12 %32
|
||||
%45 = OpAccessChain %_ptr_Uniform_v2float %43 %int_1
|
||||
%46 = OpLoad %v2float %45
|
||||
%34 = OpOuterProduct %mat2v2float %42 %46
|
||||
%51 = OpCompositeConstruct %v2float %float_3 %float_6
|
||||
%52 = OpCompositeConstruct %v2float %float_4 %float_8
|
||||
%53 = OpCompositeConstruct %mat2v2float %51 %52
|
||||
%55 = OpCompositeExtract %v2float %34 0
|
||||
%56 = OpCompositeExtract %v2float %53 0
|
||||
@ -143,9 +154,6 @@ OpBranchConditional %63 %64 %65
|
||||
%74 = OpAccessChain %_ptr_Uniform_v3float %73 %int_1
|
||||
%75 = OpLoad %v3float %74
|
||||
%66 = OpOuterProduct %mat3v3float %72 %75
|
||||
%81 = OpCompositeConstruct %v3float %float_4 %float_8 %float_12
|
||||
%82 = OpCompositeConstruct %v3float %float_5 %float_10 %float_15
|
||||
%83 = OpCompositeConstruct %v3float %float_6 %float_12 %float_18
|
||||
%84 = OpCompositeConstruct %mat3v3float %81 %82 %83
|
||||
%86 = OpCompositeExtract %v3float %66 0
|
||||
%87 = OpCompositeExtract %v3float %84 0
|
||||
@ -174,129 +182,116 @@ OpBranchConditional %100 %101 %102
|
||||
%108 = OpAccessChain %_ptr_Uniform_v3float %107 %int_1
|
||||
%109 = OpLoad %v3float %108
|
||||
%103 = OpOuterProduct %mat3v2float %106 %109
|
||||
%111 = OpCompositeConstruct %v2float %float_4 %float_8
|
||||
%112 = OpCompositeConstruct %v2float %float_5 %float_10
|
||||
%113 = OpCompositeConstruct %v2float %float_6 %float_12
|
||||
%114 = OpCompositeConstruct %mat3v2float %111 %112 %113
|
||||
%115 = OpCompositeExtract %v2float %103 0
|
||||
%116 = OpCompositeExtract %v2float %114 0
|
||||
%117 = OpFOrdEqual %v2bool %115 %116
|
||||
%118 = OpAll %bool %117
|
||||
%119 = OpCompositeExtract %v2float %103 1
|
||||
%120 = OpCompositeExtract %v2float %114 1
|
||||
%121 = OpFOrdEqual %v2bool %119 %120
|
||||
%122 = OpAll %bool %121
|
||||
%123 = OpLogicalAnd %bool %118 %122
|
||||
%124 = OpCompositeExtract %v2float %103 2
|
||||
%125 = OpCompositeExtract %v2float %114 2
|
||||
%126 = OpFOrdEqual %v2bool %124 %125
|
||||
%127 = OpAll %bool %126
|
||||
%128 = OpLogicalAnd %bool %123 %127
|
||||
%113 = OpCompositeConstruct %mat3v2float %52 %111 %112
|
||||
%114 = OpCompositeExtract %v2float %103 0
|
||||
%115 = OpCompositeExtract %v2float %113 0
|
||||
%116 = OpFOrdEqual %v2bool %114 %115
|
||||
%117 = OpAll %bool %116
|
||||
%118 = OpCompositeExtract %v2float %103 1
|
||||
%119 = OpCompositeExtract %v2float %113 1
|
||||
%120 = OpFOrdEqual %v2bool %118 %119
|
||||
%121 = OpAll %bool %120
|
||||
%122 = OpLogicalAnd %bool %117 %121
|
||||
%123 = OpCompositeExtract %v2float %103 2
|
||||
%124 = OpCompositeExtract %v2float %113 2
|
||||
%125 = OpFOrdEqual %v2bool %123 %124
|
||||
%126 = OpAll %bool %125
|
||||
%127 = OpLogicalAnd %bool %122 %126
|
||||
OpBranch %102
|
||||
%102 = OpLabel
|
||||
%129 = OpPhi %bool %false %65 %128 %101
|
||||
OpSelectionMerge %131 None
|
||||
OpBranchConditional %129 %130 %131
|
||||
%128 = OpPhi %bool %false %65 %127 %101
|
||||
OpSelectionMerge %130 None
|
||||
OpBranchConditional %128 %129 %130
|
||||
%129 = OpLabel
|
||||
%132 = OpAccessChain %_ptr_Uniform_v4float %10 %int_4
|
||||
%135 = OpLoad %v4float %132
|
||||
%131 = OpOuterProduct %mat4v4float %135 %136
|
||||
%147 = OpCompositeConstruct %mat4v4float %144 %145 %145 %146
|
||||
%149 = OpCompositeExtract %v4float %131 0
|
||||
%150 = OpCompositeExtract %v4float %147 0
|
||||
%151 = OpFOrdEqual %v4bool %149 %150
|
||||
%152 = OpAll %bool %151
|
||||
%153 = OpCompositeExtract %v4float %131 1
|
||||
%154 = OpCompositeExtract %v4float %147 1
|
||||
%155 = OpFOrdEqual %v4bool %153 %154
|
||||
%156 = OpAll %bool %155
|
||||
%157 = OpLogicalAnd %bool %152 %156
|
||||
%158 = OpCompositeExtract %v4float %131 2
|
||||
%159 = OpCompositeExtract %v4float %147 2
|
||||
%160 = OpFOrdEqual %v4bool %158 %159
|
||||
%161 = OpAll %bool %160
|
||||
%162 = OpLogicalAnd %bool %157 %161
|
||||
%163 = OpCompositeExtract %v4float %131 3
|
||||
%164 = OpCompositeExtract %v4float %147 3
|
||||
%165 = OpFOrdEqual %v4bool %163 %164
|
||||
%166 = OpAll %bool %165
|
||||
%167 = OpLogicalAnd %bool %162 %166
|
||||
OpBranch %130
|
||||
%130 = OpLabel
|
||||
%133 = OpAccessChain %_ptr_Uniform_v4float %10 %int_4
|
||||
%136 = OpLoad %v4float %133
|
||||
%132 = OpOuterProduct %mat4v4float %136 %137
|
||||
%145 = OpCompositeConstruct %v4float %float_n1_25 %float_0 %float_0_75 %float_2_25
|
||||
%146 = OpCompositeConstruct %v4float %float_0 %float_0 %float_0 %float_0
|
||||
%147 = OpCompositeConstruct %v4float %float_0 %float_0 %float_0 %float_0
|
||||
%148 = OpCompositeConstruct %v4float %float_n2_5 %float_0 %float_1_5 %float_4_5
|
||||
%149 = OpCompositeConstruct %mat4v4float %145 %146 %147 %148
|
||||
%151 = OpCompositeExtract %v4float %132 0
|
||||
%152 = OpCompositeExtract %v4float %149 0
|
||||
%153 = OpFOrdEqual %v4bool %151 %152
|
||||
%154 = OpAll %bool %153
|
||||
%155 = OpCompositeExtract %v4float %132 1
|
||||
%156 = OpCompositeExtract %v4float %149 1
|
||||
%157 = OpFOrdEqual %v4bool %155 %156
|
||||
%158 = OpAll %bool %157
|
||||
%159 = OpLogicalAnd %bool %154 %158
|
||||
%160 = OpCompositeExtract %v4float %132 2
|
||||
%161 = OpCompositeExtract %v4float %149 2
|
||||
%162 = OpFOrdEqual %v4bool %160 %161
|
||||
%163 = OpAll %bool %162
|
||||
%164 = OpLogicalAnd %bool %159 %163
|
||||
%165 = OpCompositeExtract %v4float %132 3
|
||||
%166 = OpCompositeExtract %v4float %149 3
|
||||
%167 = OpFOrdEqual %v4bool %165 %166
|
||||
%168 = OpAll %bool %167
|
||||
%169 = OpLogicalAnd %bool %164 %168
|
||||
OpBranch %131
|
||||
%131 = OpLabel
|
||||
%170 = OpPhi %bool %false %102 %169 %130
|
||||
OpSelectionMerge %172 None
|
||||
OpBranchConditional %170 %171 %172
|
||||
%171 = OpLabel
|
||||
%174 = OpAccessChain %_ptr_Uniform_v4float %10 %int_4
|
||||
%175 = OpLoad %v4float %174
|
||||
%176 = OpLoad %v2float %c12
|
||||
%173 = OpOuterProduct %mat2v4float %175 %176
|
||||
%178 = OpCompositeConstruct %v4float %float_n1_25 %float_0 %float_0_75 %float_2_25
|
||||
%179 = OpCompositeConstruct %v4float %float_n2_5 %float_0 %float_1_5 %float_4_5
|
||||
%180 = OpCompositeConstruct %mat2v4float %178 %179
|
||||
%181 = OpCompositeExtract %v4float %173 0
|
||||
%182 = OpCompositeExtract %v4float %180 0
|
||||
%168 = OpPhi %bool %false %102 %167 %129
|
||||
OpSelectionMerge %170 None
|
||||
OpBranchConditional %168 %169 %170
|
||||
%169 = OpLabel
|
||||
%172 = OpAccessChain %_ptr_Uniform_v4float %10 %int_4
|
||||
%173 = OpLoad %v4float %172
|
||||
%174 = OpLoad %v2float %c12
|
||||
%171 = OpOuterProduct %mat2v4float %173 %174
|
||||
%176 = OpCompositeConstruct %mat2v4float %144 %146
|
||||
%177 = OpCompositeExtract %v4float %171 0
|
||||
%178 = OpCompositeExtract %v4float %176 0
|
||||
%179 = OpFOrdEqual %v4bool %177 %178
|
||||
%180 = OpAll %bool %179
|
||||
%181 = OpCompositeExtract %v4float %171 1
|
||||
%182 = OpCompositeExtract %v4float %176 1
|
||||
%183 = OpFOrdEqual %v4bool %181 %182
|
||||
%184 = OpAll %bool %183
|
||||
%185 = OpCompositeExtract %v4float %173 1
|
||||
%186 = OpCompositeExtract %v4float %180 1
|
||||
%187 = OpFOrdEqual %v4bool %185 %186
|
||||
%188 = OpAll %bool %187
|
||||
%189 = OpLogicalAnd %bool %184 %188
|
||||
OpBranch %172
|
||||
%172 = OpLabel
|
||||
%190 = OpPhi %bool %false %131 %189 %171
|
||||
OpSelectionMerge %192 None
|
||||
OpBranchConditional %190 %191 %192
|
||||
%191 = OpLabel
|
||||
%194 = OpLoad %v2float %c12
|
||||
%195 = OpAccessChain %_ptr_Uniform_v4float %10 %int_4
|
||||
%196 = OpLoad %v4float %195
|
||||
%193 = OpOuterProduct %mat4v2float %194 %196
|
||||
%198 = OpCompositeConstruct %v2float %float_n1_25 %float_n2_5
|
||||
%199 = OpCompositeConstruct %v2float %float_0 %float_0
|
||||
%200 = OpCompositeConstruct %v2float %float_0_75 %float_1_5
|
||||
%201 = OpCompositeConstruct %v2float %float_2_25 %float_4_5
|
||||
%202 = OpCompositeConstruct %mat4v2float %198 %199 %200 %201
|
||||
%203 = OpCompositeExtract %v2float %193 0
|
||||
%204 = OpCompositeExtract %v2float %202 0
|
||||
%205 = OpFOrdEqual %v2bool %203 %204
|
||||
%206 = OpAll %bool %205
|
||||
%207 = OpCompositeExtract %v2float %193 1
|
||||
%208 = OpCompositeExtract %v2float %202 1
|
||||
%185 = OpLogicalAnd %bool %180 %184
|
||||
OpBranch %170
|
||||
%170 = OpLabel
|
||||
%186 = OpPhi %bool %false %130 %185 %169
|
||||
OpSelectionMerge %188 None
|
||||
OpBranchConditional %186 %187 %188
|
||||
%187 = OpLabel
|
||||
%190 = OpLoad %v2float %c12
|
||||
%191 = OpAccessChain %_ptr_Uniform_v4float %10 %int_4
|
||||
%192 = OpLoad %v4float %191
|
||||
%189 = OpOuterProduct %mat4v2float %190 %192
|
||||
%197 = OpCompositeConstruct %mat4v2float %194 %22 %195 %196
|
||||
%198 = OpCompositeExtract %v2float %189 0
|
||||
%199 = OpCompositeExtract %v2float %197 0
|
||||
%200 = OpFOrdEqual %v2bool %198 %199
|
||||
%201 = OpAll %bool %200
|
||||
%202 = OpCompositeExtract %v2float %189 1
|
||||
%203 = OpCompositeExtract %v2float %197 1
|
||||
%204 = OpFOrdEqual %v2bool %202 %203
|
||||
%205 = OpAll %bool %204
|
||||
%206 = OpLogicalAnd %bool %201 %205
|
||||
%207 = OpCompositeExtract %v2float %189 2
|
||||
%208 = OpCompositeExtract %v2float %197 2
|
||||
%209 = OpFOrdEqual %v2bool %207 %208
|
||||
%210 = OpAll %bool %209
|
||||
%211 = OpLogicalAnd %bool %206 %210
|
||||
%212 = OpCompositeExtract %v2float %193 2
|
||||
%213 = OpCompositeExtract %v2float %202 2
|
||||
%212 = OpCompositeExtract %v2float %189 3
|
||||
%213 = OpCompositeExtract %v2float %197 3
|
||||
%214 = OpFOrdEqual %v2bool %212 %213
|
||||
%215 = OpAll %bool %214
|
||||
%216 = OpLogicalAnd %bool %211 %215
|
||||
%217 = OpCompositeExtract %v2float %193 3
|
||||
%218 = OpCompositeExtract %v2float %202 3
|
||||
%219 = OpFOrdEqual %v2bool %217 %218
|
||||
%220 = OpAll %bool %219
|
||||
%221 = OpLogicalAnd %bool %216 %220
|
||||
OpBranch %192
|
||||
%192 = OpLabel
|
||||
%222 = OpPhi %bool %false %172 %221 %191
|
||||
OpSelectionMerge %227 None
|
||||
OpBranchConditional %222 %225 %226
|
||||
%225 = OpLabel
|
||||
%228 = OpAccessChain %_ptr_Uniform_v4float %10 %int_0
|
||||
%229 = OpLoad %v4float %228
|
||||
OpStore %223 %229
|
||||
OpBranch %227
|
||||
%226 = OpLabel
|
||||
%230 = OpAccessChain %_ptr_Uniform_v4float %10 %int_1
|
||||
%231 = OpLoad %v4float %230
|
||||
OpStore %223 %231
|
||||
OpBranch %227
|
||||
%227 = OpLabel
|
||||
%232 = OpLoad %v4float %223
|
||||
OpReturnValue %232
|
||||
OpBranch %188
|
||||
%188 = OpLabel
|
||||
%217 = OpPhi %bool %false %170 %216 %187
|
||||
OpSelectionMerge %222 None
|
||||
OpBranchConditional %217 %220 %221
|
||||
%220 = OpLabel
|
||||
%223 = OpAccessChain %_ptr_Uniform_v4float %10 %int_0
|
||||
%224 = OpLoad %v4float %223
|
||||
OpStore %218 %224
|
||||
OpBranch %222
|
||||
%221 = OpLabel
|
||||
%225 = OpAccessChain %_ptr_Uniform_v4float %10 %int_1
|
||||
%226 = OpLoad %v4float %225
|
||||
OpStore %218 %226
|
||||
OpBranch %222
|
||||
%222 = OpLabel
|
||||
%227 = OpLoad %v4float %218
|
||||
OpReturnValue %227
|
||||
OpFunctionEnd
|
||||
|
@ -61,17 +61,27 @@ OpDecorate %127 RelaxedPrecision
|
||||
%float_4 = OpConstant %float 4
|
||||
%float_5 = OpConstant %float 5
|
||||
%float_6 = OpConstant %float 6
|
||||
%38 = OpConstantComposite %v3float %float_1 %float_2 %float_3
|
||||
%39 = OpConstantComposite %v3float %float_4 %float_5 %float_6
|
||||
%false = OpConstantFalse %bool
|
||||
%_ptr_Uniform_mat2v2float = OpTypePointer Uniform %mat2v2float
|
||||
%int = OpTypeInt 32 1
|
||||
%int_0 = OpConstant %int 0
|
||||
%48 = OpConstantComposite %v2float %float_1 %float_3
|
||||
%49 = OpConstantComposite %v2float %float_2 %float_4
|
||||
%v2bool = OpTypeVector %bool 2
|
||||
%mat3v2float = OpTypeMatrix %v2float 3
|
||||
%66 = OpConstantComposite %v2float %float_1 %float_4
|
||||
%67 = OpConstantComposite %v2float %float_2 %float_5
|
||||
%68 = OpConstantComposite %v2float %float_3 %float_6
|
||||
%_ptr_Uniform_mat3v3float = OpTypePointer Uniform %mat3v3float
|
||||
%int_1 = OpConstant %int 1
|
||||
%float_7 = OpConstant %float 7
|
||||
%float_8 = OpConstant %float 8
|
||||
%float_9 = OpConstant %float 9
|
||||
%95 = OpConstantComposite %v3float %float_1 %float_4 %float_7
|
||||
%96 = OpConstantComposite %v3float %float_2 %float_5 %float_8
|
||||
%97 = OpConstantComposite %v3float %float_3 %float_6 %float_9
|
||||
%v3bool = OpTypeVector %bool 3
|
||||
%_ptr_Function_v4float = OpTypePointer Function %v4float
|
||||
%_ptr_Uniform_v4float = OpTypePointer Uniform %v4float
|
||||
@ -90,15 +100,11 @@ OpFunctionEnd
|
||||
%28 = OpLabel
|
||||
%testMatrix2x3 = OpVariable %_ptr_Function_mat2v3float Function
|
||||
%115 = OpVariable %_ptr_Function_v4float Function
|
||||
%38 = OpCompositeConstruct %v3float %float_1 %float_2 %float_3
|
||||
%39 = OpCompositeConstruct %v3float %float_4 %float_5 %float_6
|
||||
%40 = OpCompositeConstruct %mat2v3float %38 %39
|
||||
OpStore %testMatrix2x3 %40
|
||||
%43 = OpAccessChain %_ptr_Uniform_mat2v2float %10 %int_0
|
||||
%47 = OpLoad %mat2v2float %43
|
||||
%42 = OpTranspose %mat2v2float %47
|
||||
%48 = OpCompositeConstruct %v2float %float_1 %float_3
|
||||
%49 = OpCompositeConstruct %v2float %float_2 %float_4
|
||||
%50 = OpCompositeConstruct %mat2v2float %48 %49
|
||||
%52 = OpCompositeExtract %v2float %42 0
|
||||
%53 = OpCompositeExtract %v2float %50 0
|
||||
@ -114,9 +120,6 @@ OpBranchConditional %60 %61 %62
|
||||
%61 = OpLabel
|
||||
%64 = OpLoad %mat2v3float %testMatrix2x3
|
||||
%63 = OpTranspose %mat3v2float %64
|
||||
%66 = OpCompositeConstruct %v2float %float_1 %float_4
|
||||
%67 = OpCompositeConstruct %v2float %float_2 %float_5
|
||||
%68 = OpCompositeConstruct %v2float %float_3 %float_6
|
||||
%69 = OpCompositeConstruct %mat3v2float %66 %67 %68
|
||||
%70 = OpCompositeExtract %v2float %63 0
|
||||
%71 = OpCompositeExtract %v2float %69 0
|
||||
@ -141,9 +144,6 @@ OpBranchConditional %84 %85 %86
|
||||
%88 = OpAccessChain %_ptr_Uniform_mat3v3float %10 %int_1
|
||||
%91 = OpLoad %mat3v3float %88
|
||||
%87 = OpTranspose %mat3v3float %91
|
||||
%95 = OpCompositeConstruct %v3float %float_1 %float_4 %float_7
|
||||
%96 = OpCompositeConstruct %v3float %float_2 %float_5 %float_8
|
||||
%97 = OpCompositeConstruct %v3float %float_3 %float_6 %float_9
|
||||
%98 = OpCompositeConstruct %mat3v3float %95 %96 %97
|
||||
%100 = OpCompositeExtract %v3float %87 0
|
||||
%101 = OpCompositeExtract %v3float %98 0
|
||||
|
@ -86,10 +86,14 @@ OpDecorate %155 RelaxedPrecision
|
||||
%mat2v2float = OpTypeMatrix %v2float 2
|
||||
%_arr_mat2v2float_int_2 = OpTypeArray %mat2v2float %int_2
|
||||
%_ptr_Function__arr_mat2v2float_int_2 = OpTypePointer Function %_arr_mat2v2float_int_2
|
||||
%61 = OpConstantComposite %v2float %float_1 %float_2
|
||||
%62 = OpConstantComposite %v2float %float_3 %float_4
|
||||
%float_5 = OpConstant %float 5
|
||||
%float_6 = OpConstant %float 6
|
||||
%float_7 = OpConstant %float 7
|
||||
%float_8 = OpConstant %float 8
|
||||
%68 = OpConstantComposite %v2float %float_5 %float_6
|
||||
%69 = OpConstantComposite %v2float %float_7 %float_8
|
||||
%_ptr_Function__arr_mat2v2float_int_2_0 = OpTypePointer Function %_arr_mat2v2float_int_2
|
||||
%false = OpConstantFalse %bool
|
||||
%v3bool = OpTypeVector %bool 3
|
||||
@ -131,11 +135,7 @@ OpStore %s3 %54
|
||||
OpStore %i3 %55
|
||||
%56 = OpLoad %_arr_v3int_int_3 %i3
|
||||
OpStore %s3 %56
|
||||
%61 = OpCompositeConstruct %v2float %float_1 %float_2
|
||||
%62 = OpCompositeConstruct %v2float %float_3 %float_4
|
||||
%63 = OpCompositeConstruct %mat2v2float %61 %62
|
||||
%68 = OpCompositeConstruct %v2float %float_5 %float_6
|
||||
%69 = OpCompositeConstruct %v2float %float_7 %float_8
|
||||
%70 = OpCompositeConstruct %mat2v2float %68 %69
|
||||
%71 = OpCompositeConstruct %_arr_mat2v2float_int_2 %63 %70
|
||||
OpStore %h2x2 %71
|
||||
|
@ -55,8 +55,8 @@ OpDecorate %79 RelaxedPrecision
|
||||
OpDecorate %80 RelaxedPrecision
|
||||
OpDecorate %81 RelaxedPrecision
|
||||
OpDecorate %82 RelaxedPrecision
|
||||
OpDecorate %83 RelaxedPrecision
|
||||
OpDecorate %84 RelaxedPrecision
|
||||
OpDecorate %85 RelaxedPrecision
|
||||
OpDecorate %86 RelaxedPrecision
|
||||
OpDecorate %87 RelaxedPrecision
|
||||
OpDecorate %88 RelaxedPrecision
|
||||
OpDecorate %89 RelaxedPrecision
|
||||
@ -64,34 +64,32 @@ OpDecorate %90 RelaxedPrecision
|
||||
OpDecorate %91 RelaxedPrecision
|
||||
OpDecorate %92 RelaxedPrecision
|
||||
OpDecorate %93 RelaxedPrecision
|
||||
OpDecorate %94 RelaxedPrecision
|
||||
OpDecorate %95 RelaxedPrecision
|
||||
OpMemberDecorate %S 0 Offset 0
|
||||
OpMemberDecorate %S 1 Offset 4
|
||||
OpDecorate %_arr_S_int_3 ArrayStride 16
|
||||
OpDecorate %183 RelaxedPrecision
|
||||
OpDecorate %184 RelaxedPrecision
|
||||
OpDecorate %185 RelaxedPrecision
|
||||
OpDecorate %186 RelaxedPrecision
|
||||
OpDecorate %187 RelaxedPrecision
|
||||
OpDecorate %188 RelaxedPrecision
|
||||
OpDecorate %199 RelaxedPrecision
|
||||
OpDecorate %200 RelaxedPrecision
|
||||
OpDecorate %211 RelaxedPrecision
|
||||
OpDecorate %212 RelaxedPrecision
|
||||
OpDecorate %197 RelaxedPrecision
|
||||
OpDecorate %198 RelaxedPrecision
|
||||
OpDecorate %209 RelaxedPrecision
|
||||
OpDecorate %210 RelaxedPrecision
|
||||
OpDecorate %224 RelaxedPrecision
|
||||
OpDecorate %225 RelaxedPrecision
|
||||
OpDecorate %226 RelaxedPrecision
|
||||
OpDecorate %227 RelaxedPrecision
|
||||
OpDecorate %228 RelaxedPrecision
|
||||
OpDecorate %229 RelaxedPrecision
|
||||
OpDecorate %239 RelaxedPrecision
|
||||
OpDecorate %240 RelaxedPrecision
|
||||
OpDecorate %251 RelaxedPrecision
|
||||
OpDecorate %252 RelaxedPrecision
|
||||
OpDecorate %266 RelaxedPrecision
|
||||
OpDecorate %267 RelaxedPrecision
|
||||
OpDecorate %300 RelaxedPrecision
|
||||
OpDecorate %301 RelaxedPrecision
|
||||
OpDecorate %237 RelaxedPrecision
|
||||
OpDecorate %238 RelaxedPrecision
|
||||
OpDecorate %249 RelaxedPrecision
|
||||
OpDecorate %250 RelaxedPrecision
|
||||
OpDecorate %264 RelaxedPrecision
|
||||
OpDecorate %265 RelaxedPrecision
|
||||
OpDecorate %298 RelaxedPrecision
|
||||
OpDecorate %299 RelaxedPrecision
|
||||
OpDecorate %337 RelaxedPrecision
|
||||
OpDecorate %339 RelaxedPrecision
|
||||
OpDecorate %341 RelaxedPrecision
|
||||
OpDecorate %342 RelaxedPrecision
|
||||
OpDecorate %340 RelaxedPrecision
|
||||
%float = OpTypeFloat 32
|
||||
%v4float = OpTypeVector %float 4
|
||||
%_ptr_Output_v4float = OpTypePointer Output %v4float
|
||||
@ -135,6 +133,10 @@ OpDecorate %342 RelaxedPrecision
|
||||
%_ptr_Function__arr_mat2v2float_int_3 = OpTypePointer Function %_arr_mat2v2float_int_3
|
||||
%float_5 = OpConstant %float 5
|
||||
%float_6 = OpConstant %float 6
|
||||
%71 = OpConstantComposite %v2float %float_3 %float_4
|
||||
%72 = OpConstantComposite %v2float %float_5 %float_6
|
||||
%88 = OpConstantComposite %v2float %float_2 %float_3
|
||||
%89 = OpConstantComposite %v2float %float_4 %float_5
|
||||
%S = OpTypeStruct %int %int
|
||||
%_arr_S_int_3 = OpTypeArray %S %int_3
|
||||
%_ptr_Function__arr_S_int_3 = OpTypePointer Function %_arr_S_int_3
|
||||
@ -167,7 +169,7 @@ OpFunctionEnd
|
||||
%s1 = OpVariable %_ptr_Function__arr_S_int_3 Function
|
||||
%s2 = OpVariable %_ptr_Function__arr_S_int_3 Function
|
||||
%s3 = OpVariable %_ptr_Function__arr_S_int_3 Function
|
||||
%332 = OpVariable %_ptr_Function_v4float Function
|
||||
%330 = OpVariable %_ptr_Function_v4float Function
|
||||
%35 = OpCompositeConstruct %_arr_float_int_4 %float_1 %float_2 %float_3 %float_4
|
||||
OpStore %f1 %35
|
||||
%37 = OpCompositeConstruct %_arr_float_int_4 %float_1 %float_2 %float_3 %float_4
|
||||
@ -186,8 +188,6 @@ OpStore %v3 %58
|
||||
%67 = OpCompositeConstruct %v2float %float_2 %float_0
|
||||
%68 = OpCompositeConstruct %v2float %float_0 %float_2
|
||||
%66 = OpCompositeConstruct %mat2v2float %67 %68
|
||||
%71 = OpCompositeConstruct %v2float %float_3 %float_4
|
||||
%72 = OpCompositeConstruct %v2float %float_5 %float_6
|
||||
%73 = OpCompositeConstruct %mat2v2float %71 %72
|
||||
%74 = OpCompositeConstruct %_arr_mat2v2float_int_3 %63 %66 %73
|
||||
OpStore %m1 %74
|
||||
@ -197,284 +197,280 @@ OpStore %m1 %74
|
||||
%80 = OpCompositeConstruct %v2float %float_2 %float_0
|
||||
%81 = OpCompositeConstruct %v2float %float_0 %float_2
|
||||
%79 = OpCompositeConstruct %mat2v2float %80 %81
|
||||
%82 = OpCompositeConstruct %v2float %float_3 %float_4
|
||||
%83 = OpCompositeConstruct %v2float %float_5 %float_6
|
||||
%84 = OpCompositeConstruct %mat2v2float %82 %83
|
||||
%85 = OpCompositeConstruct %_arr_mat2v2float_int_3 %76 %79 %84
|
||||
OpStore %m2 %85
|
||||
%88 = OpCompositeConstruct %v2float %float_1 %float_0
|
||||
%89 = OpCompositeConstruct %v2float %float_0 %float_1
|
||||
%87 = OpCompositeConstruct %mat2v2float %88 %89
|
||||
%90 = OpCompositeConstruct %v2float %float_2 %float_3
|
||||
%91 = OpCompositeConstruct %v2float %float_4 %float_5
|
||||
%92 = OpCompositeConstruct %mat2v2float %90 %91
|
||||
%94 = OpCompositeConstruct %v2float %float_6 %float_0
|
||||
%95 = OpCompositeConstruct %v2float %float_0 %float_6
|
||||
%93 = OpCompositeConstruct %mat2v2float %94 %95
|
||||
%96 = OpCompositeConstruct %_arr_mat2v2float_int_3 %87 %92 %93
|
||||
OpStore %m3 %96
|
||||
%101 = OpCompositeConstruct %S %int_1 %int_2
|
||||
%102 = OpCompositeConstruct %S %int_3 %int_4
|
||||
%103 = OpCompositeConstruct %S %int_5 %int_6
|
||||
%104 = OpCompositeConstruct %_arr_S_int_3 %101 %102 %103
|
||||
OpStore %s1 %104
|
||||
%106 = OpCompositeConstruct %S %int_1 %int_2
|
||||
%108 = OpCompositeConstruct %S %int_0 %int_0
|
||||
%109 = OpCompositeConstruct %S %int_5 %int_6
|
||||
%110 = OpCompositeConstruct %_arr_S_int_3 %106 %108 %109
|
||||
OpStore %s2 %110
|
||||
%112 = OpCompositeConstruct %S %int_1 %int_2
|
||||
%113 = OpCompositeConstruct %S %int_3 %int_4
|
||||
%114 = OpCompositeConstruct %S %int_5 %int_6
|
||||
%115 = OpCompositeConstruct %_arr_S_int_3 %112 %113 %114
|
||||
OpStore %s3 %115
|
||||
%117 = OpLoad %_arr_float_int_4 %f1
|
||||
%118 = OpLoad %_arr_float_int_4 %f2
|
||||
%119 = OpCompositeExtract %float %117 0
|
||||
%120 = OpCompositeExtract %float %118 0
|
||||
%121 = OpFOrdEqual %bool %119 %120
|
||||
%122 = OpCompositeExtract %float %117 1
|
||||
%123 = OpCompositeExtract %float %118 1
|
||||
%124 = OpFOrdEqual %bool %122 %123
|
||||
%125 = OpLogicalAnd %bool %124 %121
|
||||
%126 = OpCompositeExtract %float %117 2
|
||||
%127 = OpCompositeExtract %float %118 2
|
||||
%128 = OpFOrdEqual %bool %126 %127
|
||||
%129 = OpLogicalAnd %bool %128 %125
|
||||
%130 = OpCompositeExtract %float %117 3
|
||||
%131 = OpCompositeExtract %float %118 3
|
||||
%132 = OpFOrdEqual %bool %130 %131
|
||||
%133 = OpLogicalAnd %bool %132 %129
|
||||
OpSelectionMerge %135 None
|
||||
OpBranchConditional %133 %134 %135
|
||||
%134 = OpLabel
|
||||
%136 = OpLoad %_arr_float_int_4 %f1
|
||||
%137 = OpLoad %_arr_float_int_4 %f3
|
||||
%138 = OpCompositeExtract %float %136 0
|
||||
%139 = OpCompositeExtract %float %137 0
|
||||
%140 = OpFUnordNotEqual %bool %138 %139
|
||||
%141 = OpCompositeExtract %float %136 1
|
||||
%142 = OpCompositeExtract %float %137 1
|
||||
%143 = OpFUnordNotEqual %bool %141 %142
|
||||
%144 = OpLogicalOr %bool %143 %140
|
||||
%145 = OpCompositeExtract %float %136 2
|
||||
%146 = OpCompositeExtract %float %137 2
|
||||
%147 = OpFUnordNotEqual %bool %145 %146
|
||||
%148 = OpLogicalOr %bool %147 %144
|
||||
%149 = OpCompositeExtract %float %136 3
|
||||
%150 = OpCompositeExtract %float %137 3
|
||||
%151 = OpFUnordNotEqual %bool %149 %150
|
||||
%152 = OpLogicalOr %bool %151 %148
|
||||
OpBranch %135
|
||||
%135 = OpLabel
|
||||
%153 = OpPhi %bool %false %25 %152 %134
|
||||
OpSelectionMerge %155 None
|
||||
OpBranchConditional %153 %154 %155
|
||||
%154 = OpLabel
|
||||
%156 = OpLoad %_arr_v3int_int_2 %v1
|
||||
%157 = OpLoad %_arr_v3int_int_2 %v2
|
||||
%158 = OpCompositeExtract %v3int %156 0
|
||||
%159 = OpCompositeExtract %v3int %157 0
|
||||
%160 = OpIEqual %v3bool %158 %159
|
||||
%162 = OpAll %bool %160
|
||||
%163 = OpCompositeExtract %v3int %156 1
|
||||
%164 = OpCompositeExtract %v3int %157 1
|
||||
%165 = OpIEqual %v3bool %163 %164
|
||||
%166 = OpAll %bool %165
|
||||
%167 = OpLogicalAnd %bool %166 %162
|
||||
OpBranch %155
|
||||
%155 = OpLabel
|
||||
%168 = OpPhi %bool %false %135 %167 %154
|
||||
OpSelectionMerge %170 None
|
||||
OpBranchConditional %168 %169 %170
|
||||
%169 = OpLabel
|
||||
%171 = OpLoad %_arr_v3int_int_2 %v1
|
||||
%172 = OpLoad %_arr_v3int_int_2 %v3
|
||||
%173 = OpCompositeExtract %v3int %171 0
|
||||
%174 = OpCompositeExtract %v3int %172 0
|
||||
%175 = OpINotEqual %v3bool %173 %174
|
||||
%176 = OpAny %bool %175
|
||||
%177 = OpCompositeExtract %v3int %171 1
|
||||
%178 = OpCompositeExtract %v3int %172 1
|
||||
%179 = OpINotEqual %v3bool %177 %178
|
||||
%180 = OpAny %bool %179
|
||||
%181 = OpLogicalOr %bool %180 %176
|
||||
OpBranch %170
|
||||
%170 = OpLabel
|
||||
%182 = OpPhi %bool %false %155 %181 %169
|
||||
OpSelectionMerge %184 None
|
||||
OpBranchConditional %182 %183 %184
|
||||
%183 = OpLabel
|
||||
%185 = OpLoad %_arr_mat2v2float_int_3 %m1
|
||||
%186 = OpLoad %_arr_mat2v2float_int_3 %m2
|
||||
%187 = OpCompositeExtract %mat2v2float %185 0
|
||||
%188 = OpCompositeExtract %mat2v2float %186 0
|
||||
%190 = OpCompositeExtract %v2float %187 0
|
||||
%191 = OpCompositeExtract %v2float %188 0
|
||||
%192 = OpFOrdEqual %v2bool %190 %191
|
||||
%193 = OpAll %bool %192
|
||||
%194 = OpCompositeExtract %v2float %187 1
|
||||
%195 = OpCompositeExtract %v2float %188 1
|
||||
%196 = OpFOrdEqual %v2bool %194 %195
|
||||
%197 = OpAll %bool %196
|
||||
%198 = OpLogicalAnd %bool %193 %197
|
||||
%199 = OpCompositeExtract %mat2v2float %185 1
|
||||
%200 = OpCompositeExtract %mat2v2float %186 1
|
||||
%201 = OpCompositeExtract %v2float %199 0
|
||||
%202 = OpCompositeExtract %v2float %200 0
|
||||
%203 = OpFOrdEqual %v2bool %201 %202
|
||||
%204 = OpAll %bool %203
|
||||
%205 = OpCompositeExtract %v2float %199 1
|
||||
%206 = OpCompositeExtract %v2float %200 1
|
||||
%207 = OpFOrdEqual %v2bool %205 %206
|
||||
%208 = OpAll %bool %207
|
||||
%209 = OpLogicalAnd %bool %204 %208
|
||||
%210 = OpLogicalAnd %bool %209 %198
|
||||
%211 = OpCompositeExtract %mat2v2float %185 2
|
||||
%212 = OpCompositeExtract %mat2v2float %186 2
|
||||
%213 = OpCompositeExtract %v2float %211 0
|
||||
%214 = OpCompositeExtract %v2float %212 0
|
||||
%215 = OpFOrdEqual %v2bool %213 %214
|
||||
%216 = OpAll %bool %215
|
||||
%217 = OpCompositeExtract %v2float %211 1
|
||||
%218 = OpCompositeExtract %v2float %212 1
|
||||
%219 = OpFOrdEqual %v2bool %217 %218
|
||||
%220 = OpAll %bool %219
|
||||
%221 = OpLogicalAnd %bool %216 %220
|
||||
%222 = OpLogicalAnd %bool %221 %210
|
||||
OpBranch %184
|
||||
%184 = OpLabel
|
||||
%223 = OpPhi %bool %false %170 %222 %183
|
||||
OpSelectionMerge %225 None
|
||||
OpBranchConditional %223 %224 %225
|
||||
%224 = OpLabel
|
||||
%226 = OpLoad %_arr_mat2v2float_int_3 %m1
|
||||
%227 = OpLoad %_arr_mat2v2float_int_3 %m3
|
||||
%228 = OpCompositeExtract %mat2v2float %226 0
|
||||
%229 = OpCompositeExtract %mat2v2float %227 0
|
||||
%230 = OpCompositeExtract %v2float %228 0
|
||||
%231 = OpCompositeExtract %v2float %229 0
|
||||
%232 = OpFUnordNotEqual %v2bool %230 %231
|
||||
%233 = OpAny %bool %232
|
||||
%234 = OpCompositeExtract %v2float %228 1
|
||||
%235 = OpCompositeExtract %v2float %229 1
|
||||
%236 = OpFUnordNotEqual %v2bool %234 %235
|
||||
%237 = OpAny %bool %236
|
||||
%238 = OpLogicalOr %bool %233 %237
|
||||
%239 = OpCompositeExtract %mat2v2float %226 1
|
||||
%240 = OpCompositeExtract %mat2v2float %227 1
|
||||
%241 = OpCompositeExtract %v2float %239 0
|
||||
%242 = OpCompositeExtract %v2float %240 0
|
||||
%243 = OpFUnordNotEqual %v2bool %241 %242
|
||||
%244 = OpAny %bool %243
|
||||
%245 = OpCompositeExtract %v2float %239 1
|
||||
%246 = OpCompositeExtract %v2float %240 1
|
||||
%247 = OpFUnordNotEqual %v2bool %245 %246
|
||||
%248 = OpAny %bool %247
|
||||
%249 = OpLogicalOr %bool %244 %248
|
||||
%250 = OpLogicalOr %bool %249 %238
|
||||
%251 = OpCompositeExtract %mat2v2float %226 2
|
||||
%252 = OpCompositeExtract %mat2v2float %227 2
|
||||
%253 = OpCompositeExtract %v2float %251 0
|
||||
%254 = OpCompositeExtract %v2float %252 0
|
||||
%255 = OpFUnordNotEqual %v2bool %253 %254
|
||||
%256 = OpAny %bool %255
|
||||
%257 = OpCompositeExtract %v2float %251 1
|
||||
%258 = OpCompositeExtract %v2float %252 1
|
||||
%259 = OpFUnordNotEqual %v2bool %257 %258
|
||||
%260 = OpAny %bool %259
|
||||
%261 = OpLogicalOr %bool %256 %260
|
||||
%262 = OpLogicalOr %bool %261 %250
|
||||
OpBranch %225
|
||||
%225 = OpLabel
|
||||
%263 = OpPhi %bool %false %184 %262 %224
|
||||
OpSelectionMerge %265 None
|
||||
OpBranchConditional %263 %264 %265
|
||||
%264 = OpLabel
|
||||
%266 = OpLoad %_arr_S_int_3 %s1
|
||||
%267 = OpLoad %_arr_S_int_3 %s2
|
||||
%268 = OpCompositeExtract %S %266 0
|
||||
%269 = OpCompositeExtract %S %267 0
|
||||
%270 = OpCompositeExtract %int %268 0
|
||||
%271 = OpCompositeExtract %int %269 0
|
||||
%272 = OpINotEqual %bool %270 %271
|
||||
%273 = OpCompositeExtract %int %268 1
|
||||
%274 = OpCompositeExtract %int %269 1
|
||||
%275 = OpINotEqual %bool %273 %274
|
||||
%276 = OpLogicalOr %bool %275 %272
|
||||
%277 = OpCompositeExtract %S %266 1
|
||||
%278 = OpCompositeExtract %S %267 1
|
||||
%279 = OpCompositeExtract %int %277 0
|
||||
%280 = OpCompositeExtract %int %278 0
|
||||
%281 = OpINotEqual %bool %279 %280
|
||||
%282 = OpCompositeExtract %int %277 1
|
||||
%283 = OpCompositeExtract %int %278 1
|
||||
%284 = OpINotEqual %bool %282 %283
|
||||
%285 = OpLogicalOr %bool %284 %281
|
||||
%286 = OpLogicalOr %bool %285 %276
|
||||
%287 = OpCompositeExtract %S %266 2
|
||||
%288 = OpCompositeExtract %S %267 2
|
||||
%289 = OpCompositeExtract %int %287 0
|
||||
%290 = OpCompositeExtract %int %288 0
|
||||
%291 = OpINotEqual %bool %289 %290
|
||||
%292 = OpCompositeExtract %int %287 1
|
||||
%293 = OpCompositeExtract %int %288 1
|
||||
%294 = OpINotEqual %bool %292 %293
|
||||
%295 = OpLogicalOr %bool %294 %291
|
||||
%296 = OpLogicalOr %bool %295 %286
|
||||
OpBranch %265
|
||||
%265 = OpLabel
|
||||
%297 = OpPhi %bool %false %225 %296 %264
|
||||
OpSelectionMerge %299 None
|
||||
OpBranchConditional %297 %298 %299
|
||||
%298 = OpLabel
|
||||
%300 = OpLoad %_arr_S_int_3 %s3
|
||||
%301 = OpLoad %_arr_S_int_3 %s1
|
||||
%302 = OpCompositeExtract %S %300 0
|
||||
%303 = OpCompositeExtract %S %301 0
|
||||
%304 = OpCompositeExtract %int %302 0
|
||||
%305 = OpCompositeExtract %int %303 0
|
||||
%306 = OpIEqual %bool %304 %305
|
||||
%307 = OpCompositeExtract %int %302 1
|
||||
%308 = OpCompositeExtract %int %303 1
|
||||
%309 = OpIEqual %bool %307 %308
|
||||
%310 = OpLogicalAnd %bool %309 %306
|
||||
%311 = OpCompositeExtract %S %300 1
|
||||
%312 = OpCompositeExtract %S %301 1
|
||||
%313 = OpCompositeExtract %int %311 0
|
||||
%314 = OpCompositeExtract %int %312 0
|
||||
%315 = OpIEqual %bool %313 %314
|
||||
%316 = OpCompositeExtract %int %311 1
|
||||
%317 = OpCompositeExtract %int %312 1
|
||||
%318 = OpIEqual %bool %316 %317
|
||||
%319 = OpLogicalAnd %bool %318 %315
|
||||
%320 = OpLogicalAnd %bool %319 %310
|
||||
%321 = OpCompositeExtract %S %300 2
|
||||
%322 = OpCompositeExtract %S %301 2
|
||||
%323 = OpCompositeExtract %int %321 0
|
||||
%324 = OpCompositeExtract %int %322 0
|
||||
%325 = OpIEqual %bool %323 %324
|
||||
%326 = OpCompositeExtract %int %321 1
|
||||
%327 = OpCompositeExtract %int %322 1
|
||||
%328 = OpIEqual %bool %326 %327
|
||||
%329 = OpLogicalAnd %bool %328 %325
|
||||
%330 = OpLogicalAnd %bool %329 %320
|
||||
OpBranch %299
|
||||
%299 = OpLabel
|
||||
%331 = OpPhi %bool %false %265 %330 %298
|
||||
OpSelectionMerge %336 None
|
||||
OpBranchConditional %331 %334 %335
|
||||
%82 = OpCompositeConstruct %mat2v2float %71 %72
|
||||
%83 = OpCompositeConstruct %_arr_mat2v2float_int_3 %76 %79 %82
|
||||
OpStore %m2 %83
|
||||
%86 = OpCompositeConstruct %v2float %float_1 %float_0
|
||||
%87 = OpCompositeConstruct %v2float %float_0 %float_1
|
||||
%85 = OpCompositeConstruct %mat2v2float %86 %87
|
||||
%90 = OpCompositeConstruct %mat2v2float %88 %89
|
||||
%92 = OpCompositeConstruct %v2float %float_6 %float_0
|
||||
%93 = OpCompositeConstruct %v2float %float_0 %float_6
|
||||
%91 = OpCompositeConstruct %mat2v2float %92 %93
|
||||
%94 = OpCompositeConstruct %_arr_mat2v2float_int_3 %85 %90 %91
|
||||
OpStore %m3 %94
|
||||
%99 = OpCompositeConstruct %S %int_1 %int_2
|
||||
%100 = OpCompositeConstruct %S %int_3 %int_4
|
||||
%101 = OpCompositeConstruct %S %int_5 %int_6
|
||||
%102 = OpCompositeConstruct %_arr_S_int_3 %99 %100 %101
|
||||
OpStore %s1 %102
|
||||
%104 = OpCompositeConstruct %S %int_1 %int_2
|
||||
%106 = OpCompositeConstruct %S %int_0 %int_0
|
||||
%107 = OpCompositeConstruct %S %int_5 %int_6
|
||||
%108 = OpCompositeConstruct %_arr_S_int_3 %104 %106 %107
|
||||
OpStore %s2 %108
|
||||
%110 = OpCompositeConstruct %S %int_1 %int_2
|
||||
%111 = OpCompositeConstruct %S %int_3 %int_4
|
||||
%112 = OpCompositeConstruct %S %int_5 %int_6
|
||||
%113 = OpCompositeConstruct %_arr_S_int_3 %110 %111 %112
|
||||
OpStore %s3 %113
|
||||
%115 = OpLoad %_arr_float_int_4 %f1
|
||||
%116 = OpLoad %_arr_float_int_4 %f2
|
||||
%117 = OpCompositeExtract %float %115 0
|
||||
%118 = OpCompositeExtract %float %116 0
|
||||
%119 = OpFOrdEqual %bool %117 %118
|
||||
%120 = OpCompositeExtract %float %115 1
|
||||
%121 = OpCompositeExtract %float %116 1
|
||||
%122 = OpFOrdEqual %bool %120 %121
|
||||
%123 = OpLogicalAnd %bool %122 %119
|
||||
%124 = OpCompositeExtract %float %115 2
|
||||
%125 = OpCompositeExtract %float %116 2
|
||||
%126 = OpFOrdEqual %bool %124 %125
|
||||
%127 = OpLogicalAnd %bool %126 %123
|
||||
%128 = OpCompositeExtract %float %115 3
|
||||
%129 = OpCompositeExtract %float %116 3
|
||||
%130 = OpFOrdEqual %bool %128 %129
|
||||
%131 = OpLogicalAnd %bool %130 %127
|
||||
OpSelectionMerge %133 None
|
||||
OpBranchConditional %131 %132 %133
|
||||
%132 = OpLabel
|
||||
%134 = OpLoad %_arr_float_int_4 %f1
|
||||
%135 = OpLoad %_arr_float_int_4 %f3
|
||||
%136 = OpCompositeExtract %float %134 0
|
||||
%137 = OpCompositeExtract %float %135 0
|
||||
%138 = OpFUnordNotEqual %bool %136 %137
|
||||
%139 = OpCompositeExtract %float %134 1
|
||||
%140 = OpCompositeExtract %float %135 1
|
||||
%141 = OpFUnordNotEqual %bool %139 %140
|
||||
%142 = OpLogicalOr %bool %141 %138
|
||||
%143 = OpCompositeExtract %float %134 2
|
||||
%144 = OpCompositeExtract %float %135 2
|
||||
%145 = OpFUnordNotEqual %bool %143 %144
|
||||
%146 = OpLogicalOr %bool %145 %142
|
||||
%147 = OpCompositeExtract %float %134 3
|
||||
%148 = OpCompositeExtract %float %135 3
|
||||
%149 = OpFUnordNotEqual %bool %147 %148
|
||||
%150 = OpLogicalOr %bool %149 %146
|
||||
OpBranch %133
|
||||
%133 = OpLabel
|
||||
%151 = OpPhi %bool %false %25 %150 %132
|
||||
OpSelectionMerge %153 None
|
||||
OpBranchConditional %151 %152 %153
|
||||
%152 = OpLabel
|
||||
%154 = OpLoad %_arr_v3int_int_2 %v1
|
||||
%155 = OpLoad %_arr_v3int_int_2 %v2
|
||||
%156 = OpCompositeExtract %v3int %154 0
|
||||
%157 = OpCompositeExtract %v3int %155 0
|
||||
%158 = OpIEqual %v3bool %156 %157
|
||||
%160 = OpAll %bool %158
|
||||
%161 = OpCompositeExtract %v3int %154 1
|
||||
%162 = OpCompositeExtract %v3int %155 1
|
||||
%163 = OpIEqual %v3bool %161 %162
|
||||
%164 = OpAll %bool %163
|
||||
%165 = OpLogicalAnd %bool %164 %160
|
||||
OpBranch %153
|
||||
%153 = OpLabel
|
||||
%166 = OpPhi %bool %false %133 %165 %152
|
||||
OpSelectionMerge %168 None
|
||||
OpBranchConditional %166 %167 %168
|
||||
%167 = OpLabel
|
||||
%169 = OpLoad %_arr_v3int_int_2 %v1
|
||||
%170 = OpLoad %_arr_v3int_int_2 %v3
|
||||
%171 = OpCompositeExtract %v3int %169 0
|
||||
%172 = OpCompositeExtract %v3int %170 0
|
||||
%173 = OpINotEqual %v3bool %171 %172
|
||||
%174 = OpAny %bool %173
|
||||
%175 = OpCompositeExtract %v3int %169 1
|
||||
%176 = OpCompositeExtract %v3int %170 1
|
||||
%177 = OpINotEqual %v3bool %175 %176
|
||||
%178 = OpAny %bool %177
|
||||
%179 = OpLogicalOr %bool %178 %174
|
||||
OpBranch %168
|
||||
%168 = OpLabel
|
||||
%180 = OpPhi %bool %false %153 %179 %167
|
||||
OpSelectionMerge %182 None
|
||||
OpBranchConditional %180 %181 %182
|
||||
%181 = OpLabel
|
||||
%183 = OpLoad %_arr_mat2v2float_int_3 %m1
|
||||
%184 = OpLoad %_arr_mat2v2float_int_3 %m2
|
||||
%185 = OpCompositeExtract %mat2v2float %183 0
|
||||
%186 = OpCompositeExtract %mat2v2float %184 0
|
||||
%188 = OpCompositeExtract %v2float %185 0
|
||||
%189 = OpCompositeExtract %v2float %186 0
|
||||
%190 = OpFOrdEqual %v2bool %188 %189
|
||||
%191 = OpAll %bool %190
|
||||
%192 = OpCompositeExtract %v2float %185 1
|
||||
%193 = OpCompositeExtract %v2float %186 1
|
||||
%194 = OpFOrdEqual %v2bool %192 %193
|
||||
%195 = OpAll %bool %194
|
||||
%196 = OpLogicalAnd %bool %191 %195
|
||||
%197 = OpCompositeExtract %mat2v2float %183 1
|
||||
%198 = OpCompositeExtract %mat2v2float %184 1
|
||||
%199 = OpCompositeExtract %v2float %197 0
|
||||
%200 = OpCompositeExtract %v2float %198 0
|
||||
%201 = OpFOrdEqual %v2bool %199 %200
|
||||
%202 = OpAll %bool %201
|
||||
%203 = OpCompositeExtract %v2float %197 1
|
||||
%204 = OpCompositeExtract %v2float %198 1
|
||||
%205 = OpFOrdEqual %v2bool %203 %204
|
||||
%206 = OpAll %bool %205
|
||||
%207 = OpLogicalAnd %bool %202 %206
|
||||
%208 = OpLogicalAnd %bool %207 %196
|
||||
%209 = OpCompositeExtract %mat2v2float %183 2
|
||||
%210 = OpCompositeExtract %mat2v2float %184 2
|
||||
%211 = OpCompositeExtract %v2float %209 0
|
||||
%212 = OpCompositeExtract %v2float %210 0
|
||||
%213 = OpFOrdEqual %v2bool %211 %212
|
||||
%214 = OpAll %bool %213
|
||||
%215 = OpCompositeExtract %v2float %209 1
|
||||
%216 = OpCompositeExtract %v2float %210 1
|
||||
%217 = OpFOrdEqual %v2bool %215 %216
|
||||
%218 = OpAll %bool %217
|
||||
%219 = OpLogicalAnd %bool %214 %218
|
||||
%220 = OpLogicalAnd %bool %219 %208
|
||||
OpBranch %182
|
||||
%182 = OpLabel
|
||||
%221 = OpPhi %bool %false %168 %220 %181
|
||||
OpSelectionMerge %223 None
|
||||
OpBranchConditional %221 %222 %223
|
||||
%222 = OpLabel
|
||||
%224 = OpLoad %_arr_mat2v2float_int_3 %m1
|
||||
%225 = OpLoad %_arr_mat2v2float_int_3 %m3
|
||||
%226 = OpCompositeExtract %mat2v2float %224 0
|
||||
%227 = OpCompositeExtract %mat2v2float %225 0
|
||||
%228 = OpCompositeExtract %v2float %226 0
|
||||
%229 = OpCompositeExtract %v2float %227 0
|
||||
%230 = OpFUnordNotEqual %v2bool %228 %229
|
||||
%231 = OpAny %bool %230
|
||||
%232 = OpCompositeExtract %v2float %226 1
|
||||
%233 = OpCompositeExtract %v2float %227 1
|
||||
%234 = OpFUnordNotEqual %v2bool %232 %233
|
||||
%235 = OpAny %bool %234
|
||||
%236 = OpLogicalOr %bool %231 %235
|
||||
%237 = OpCompositeExtract %mat2v2float %224 1
|
||||
%238 = OpCompositeExtract %mat2v2float %225 1
|
||||
%239 = OpCompositeExtract %v2float %237 0
|
||||
%240 = OpCompositeExtract %v2float %238 0
|
||||
%241 = OpFUnordNotEqual %v2bool %239 %240
|
||||
%242 = OpAny %bool %241
|
||||
%243 = OpCompositeExtract %v2float %237 1
|
||||
%244 = OpCompositeExtract %v2float %238 1
|
||||
%245 = OpFUnordNotEqual %v2bool %243 %244
|
||||
%246 = OpAny %bool %245
|
||||
%247 = OpLogicalOr %bool %242 %246
|
||||
%248 = OpLogicalOr %bool %247 %236
|
||||
%249 = OpCompositeExtract %mat2v2float %224 2
|
||||
%250 = OpCompositeExtract %mat2v2float %225 2
|
||||
%251 = OpCompositeExtract %v2float %249 0
|
||||
%252 = OpCompositeExtract %v2float %250 0
|
||||
%253 = OpFUnordNotEqual %v2bool %251 %252
|
||||
%254 = OpAny %bool %253
|
||||
%255 = OpCompositeExtract %v2float %249 1
|
||||
%256 = OpCompositeExtract %v2float %250 1
|
||||
%257 = OpFUnordNotEqual %v2bool %255 %256
|
||||
%258 = OpAny %bool %257
|
||||
%259 = OpLogicalOr %bool %254 %258
|
||||
%260 = OpLogicalOr %bool %259 %248
|
||||
OpBranch %223
|
||||
%223 = OpLabel
|
||||
%261 = OpPhi %bool %false %182 %260 %222
|
||||
OpSelectionMerge %263 None
|
||||
OpBranchConditional %261 %262 %263
|
||||
%262 = OpLabel
|
||||
%264 = OpLoad %_arr_S_int_3 %s1
|
||||
%265 = OpLoad %_arr_S_int_3 %s2
|
||||
%266 = OpCompositeExtract %S %264 0
|
||||
%267 = OpCompositeExtract %S %265 0
|
||||
%268 = OpCompositeExtract %int %266 0
|
||||
%269 = OpCompositeExtract %int %267 0
|
||||
%270 = OpINotEqual %bool %268 %269
|
||||
%271 = OpCompositeExtract %int %266 1
|
||||
%272 = OpCompositeExtract %int %267 1
|
||||
%273 = OpINotEqual %bool %271 %272
|
||||
%274 = OpLogicalOr %bool %273 %270
|
||||
%275 = OpCompositeExtract %S %264 1
|
||||
%276 = OpCompositeExtract %S %265 1
|
||||
%277 = OpCompositeExtract %int %275 0
|
||||
%278 = OpCompositeExtract %int %276 0
|
||||
%279 = OpINotEqual %bool %277 %278
|
||||
%280 = OpCompositeExtract %int %275 1
|
||||
%281 = OpCompositeExtract %int %276 1
|
||||
%282 = OpINotEqual %bool %280 %281
|
||||
%283 = OpLogicalOr %bool %282 %279
|
||||
%284 = OpLogicalOr %bool %283 %274
|
||||
%285 = OpCompositeExtract %S %264 2
|
||||
%286 = OpCompositeExtract %S %265 2
|
||||
%287 = OpCompositeExtract %int %285 0
|
||||
%288 = OpCompositeExtract %int %286 0
|
||||
%289 = OpINotEqual %bool %287 %288
|
||||
%290 = OpCompositeExtract %int %285 1
|
||||
%291 = OpCompositeExtract %int %286 1
|
||||
%292 = OpINotEqual %bool %290 %291
|
||||
%293 = OpLogicalOr %bool %292 %289
|
||||
%294 = OpLogicalOr %bool %293 %284
|
||||
OpBranch %263
|
||||
%263 = OpLabel
|
||||
%295 = OpPhi %bool %false %223 %294 %262
|
||||
OpSelectionMerge %297 None
|
||||
OpBranchConditional %295 %296 %297
|
||||
%296 = OpLabel
|
||||
%298 = OpLoad %_arr_S_int_3 %s3
|
||||
%299 = OpLoad %_arr_S_int_3 %s1
|
||||
%300 = OpCompositeExtract %S %298 0
|
||||
%301 = OpCompositeExtract %S %299 0
|
||||
%302 = OpCompositeExtract %int %300 0
|
||||
%303 = OpCompositeExtract %int %301 0
|
||||
%304 = OpIEqual %bool %302 %303
|
||||
%305 = OpCompositeExtract %int %300 1
|
||||
%306 = OpCompositeExtract %int %301 1
|
||||
%307 = OpIEqual %bool %305 %306
|
||||
%308 = OpLogicalAnd %bool %307 %304
|
||||
%309 = OpCompositeExtract %S %298 1
|
||||
%310 = OpCompositeExtract %S %299 1
|
||||
%311 = OpCompositeExtract %int %309 0
|
||||
%312 = OpCompositeExtract %int %310 0
|
||||
%313 = OpIEqual %bool %311 %312
|
||||
%314 = OpCompositeExtract %int %309 1
|
||||
%315 = OpCompositeExtract %int %310 1
|
||||
%316 = OpIEqual %bool %314 %315
|
||||
%317 = OpLogicalAnd %bool %316 %313
|
||||
%318 = OpLogicalAnd %bool %317 %308
|
||||
%319 = OpCompositeExtract %S %298 2
|
||||
%320 = OpCompositeExtract %S %299 2
|
||||
%321 = OpCompositeExtract %int %319 0
|
||||
%322 = OpCompositeExtract %int %320 0
|
||||
%323 = OpIEqual %bool %321 %322
|
||||
%324 = OpCompositeExtract %int %319 1
|
||||
%325 = OpCompositeExtract %int %320 1
|
||||
%326 = OpIEqual %bool %324 %325
|
||||
%327 = OpLogicalAnd %bool %326 %323
|
||||
%328 = OpLogicalAnd %bool %327 %318
|
||||
OpBranch %297
|
||||
%297 = OpLabel
|
||||
%329 = OpPhi %bool %false %263 %328 %296
|
||||
OpSelectionMerge %334 None
|
||||
OpBranchConditional %329 %332 %333
|
||||
%332 = OpLabel
|
||||
%335 = OpAccessChain %_ptr_Uniform_v4float %10 %int_0
|
||||
%337 = OpLoad %v4float %335
|
||||
OpStore %330 %337
|
||||
OpBranch %334
|
||||
%333 = OpLabel
|
||||
%338 = OpAccessChain %_ptr_Uniform_v4float %10 %int_1
|
||||
%339 = OpLoad %v4float %338
|
||||
OpStore %330 %339
|
||||
OpBranch %334
|
||||
%334 = OpLabel
|
||||
%337 = OpAccessChain %_ptr_Uniform_v4float %10 %int_0
|
||||
%339 = OpLoad %v4float %337
|
||||
OpStore %332 %339
|
||||
OpBranch %336
|
||||
%335 = OpLabel
|
||||
%340 = OpAccessChain %_ptr_Uniform_v4float %10 %int_1
|
||||
%341 = OpLoad %v4float %340
|
||||
OpStore %332 %341
|
||||
OpBranch %336
|
||||
%336 = OpLabel
|
||||
%342 = OpLoad %v4float %332
|
||||
OpReturnValue %342
|
||||
%340 = OpLoad %v4float %330
|
||||
OpReturnValue %340
|
||||
OpFunctionEnd
|
||||
|
@ -51,26 +51,23 @@ OpDecorate %_arr_int_int_1 ArrayStride 16
|
||||
OpDecorate %_arr_v4int_int_1 ArrayStride 16
|
||||
OpDecorate %_arr_mat3v3float_int_1 ArrayStride 48
|
||||
OpDecorate %80 RelaxedPrecision
|
||||
OpDecorate %81 RelaxedPrecision
|
||||
OpDecorate %82 RelaxedPrecision
|
||||
OpDecorate %83 RelaxedPrecision
|
||||
OpDecorate %_arr_v4float_int_1 ArrayStride 16
|
||||
OpDecorate %95 RelaxedPrecision
|
||||
OpDecorate %97 RelaxedPrecision
|
||||
OpDecorate %98 RelaxedPrecision
|
||||
OpDecorate %100 RelaxedPrecision
|
||||
OpDecorate %99 RelaxedPrecision
|
||||
OpDecorate %101 RelaxedPrecision
|
||||
OpDecorate %102 RelaxedPrecision
|
||||
OpDecorate %104 RelaxedPrecision
|
||||
OpDecorate %105 RelaxedPrecision
|
||||
OpDecorate %106 RelaxedPrecision
|
||||
OpDecorate %103 RelaxedPrecision
|
||||
OpDecorate %l RelaxedPrecision
|
||||
OpDecorate %119 RelaxedPrecision
|
||||
OpDecorate %125 RelaxedPrecision
|
||||
OpDecorate %126 RelaxedPrecision
|
||||
OpDecorate %133 RelaxedPrecision
|
||||
OpDecorate %134 RelaxedPrecision
|
||||
OpDecorate %116 RelaxedPrecision
|
||||
OpDecorate %122 RelaxedPrecision
|
||||
OpDecorate %123 RelaxedPrecision
|
||||
OpDecorate %130 RelaxedPrecision
|
||||
OpDecorate %131 RelaxedPrecision
|
||||
OpDecorate %132 RelaxedPrecision
|
||||
OpDecorate %135 RelaxedPrecision
|
||||
OpDecorate %138 RelaxedPrecision
|
||||
OpDecorate %142 RelaxedPrecision
|
||||
OpDecorate %139 RelaxedPrecision
|
||||
%float = OpTypeFloat 32
|
||||
%v4float = OpTypeVector %float 4
|
||||
%_ptr_Output_v4float = OpTypePointer Output %v4float
|
||||
@ -118,6 +115,9 @@ OpDecorate %142 RelaxedPrecision
|
||||
%float_7 = OpConstant %float 7
|
||||
%float_8 = OpConstant %float 8
|
||||
%float_9 = OpConstant %float 9
|
||||
%59 = OpConstantComposite %v3float %float_1 %float_2 %float_3
|
||||
%60 = OpConstantComposite %v3float %float_4 %float_5 %float_6
|
||||
%61 = OpConstantComposite %v3float %float_7 %float_8 %float_9
|
||||
%_ptr_Function_v4float = OpTypePointer Function %v4float
|
||||
%_ptr_Function_float = OpTypePointer Function %float
|
||||
%_arr_int_int_1 = OpTypeArray %int %int_1
|
||||
@ -128,13 +128,13 @@ OpDecorate %142 RelaxedPrecision
|
||||
%_ptr_Function__arr_mat3v3float_int_1 = OpTypePointer Function %_arr_mat3v3float_int_1
|
||||
%_arr_v4float_int_1 = OpTypeArray %v4float %int_1
|
||||
%_ptr_Function__arr_v4float_int_1 = OpTypePointer Function %_arr_v4float_int_1
|
||||
%90 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
|
||||
%87 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
|
||||
%_ptr_Function_S = OpTypePointer Function %S
|
||||
%98 = OpConstantComposite %v3float %float_9 %float_9 %float_9
|
||||
%102 = OpConstantComposite %v2float %float_5 %float_5
|
||||
%106 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0
|
||||
%95 = OpConstantComposite %v3float %float_9 %float_9 %float_9
|
||||
%99 = OpConstantComposite %v2float %float_5 %float_5
|
||||
%103 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0
|
||||
%_ptr_Private_float = OpTypePointer Private %float
|
||||
%119 = OpConstantComposite %v4float %float_2 %float_2 %float_2 %float_2
|
||||
%116 = OpConstantComposite %v4float %float_2 %float_2 %float_2 %float_2
|
||||
%_ptr_Function_v3float = OpTypePointer Function %v3float
|
||||
%_ptr_Uniform_v4float = OpTypePointer Uniform %v4float
|
||||
%_entrypoint_v = OpFunction %void None %24
|
||||
@ -160,9 +160,6 @@ OpFunctionEnd
|
||||
%l = OpVariable %_ptr_Function_float Function
|
||||
OpStore %i %int_0
|
||||
OpStore %i4 %45
|
||||
%59 = OpCompositeConstruct %v3float %float_1 %float_2 %float_3
|
||||
%60 = OpCompositeConstruct %v3float %float_4 %float_5 %float_6
|
||||
%61 = OpCompositeConstruct %v3float %float_7 %float_8 %float_9
|
||||
%62 = OpCompositeConstruct %mat3v3float %59 %60 %61
|
||||
OpStore %f3x3 %62
|
||||
%65 = OpAccessChain %_ptr_Function_float %x %int_3
|
||||
@ -174,73 +171,70 @@ OpStore %x %68
|
||||
OpStore %72 %int_0
|
||||
%76 = OpAccessChain %_ptr_Function_v4int %ai4 %int_0
|
||||
OpStore %76 %45
|
||||
%80 = OpCompositeConstruct %v3float %float_1 %float_2 %float_3
|
||||
%81 = OpCompositeConstruct %v3float %float_4 %float_5 %float_6
|
||||
%82 = OpCompositeConstruct %v3float %float_7 %float_8 %float_9
|
||||
%83 = OpCompositeConstruct %mat3v3float %80 %81 %82
|
||||
%84 = OpAccessChain %_ptr_Function_mat3v3float %ah2x4 %int_0
|
||||
OpStore %84 %83
|
||||
%80 = OpCompositeConstruct %mat3v3float %59 %60 %61
|
||||
%81 = OpAccessChain %_ptr_Function_mat3v3float %ah2x4 %int_0
|
||||
OpStore %81 %80
|
||||
%85 = OpAccessChain %_ptr_Function_v4float %af4 %int_0
|
||||
%86 = OpAccessChain %_ptr_Function_float %85 %int_0
|
||||
OpStore %86 %float_0
|
||||
%88 = OpAccessChain %_ptr_Function_v4float %af4 %int_0
|
||||
%89 = OpAccessChain %_ptr_Function_float %88 %int_0
|
||||
OpStore %89 %float_0
|
||||
%91 = OpAccessChain %_ptr_Function_v4float %af4 %int_0
|
||||
%92 = OpLoad %v4float %91
|
||||
%93 = OpVectorShuffle %v4float %92 %90 6 4 7 5
|
||||
OpStore %91 %93
|
||||
%96 = OpAccessChain %_ptr_Function_float %s %int_0
|
||||
OpStore %96 %float_0
|
||||
%97 = OpAccessChain %_ptr_Function_float %s %int_1 %int_1
|
||||
OpStore %97 %float_0
|
||||
%99 = OpAccessChain %_ptr_Function_v4float %s %int_2
|
||||
%100 = OpLoad %v4float %99
|
||||
%101 = OpVectorShuffle %v4float %100 %98 5 6 4 3
|
||||
OpStore %99 %101
|
||||
%103 = OpAccessChain %_ptr_Function_v4float %s %int_3 %int_2
|
||||
%104 = OpLoad %v4float %103
|
||||
%105 = OpVectorShuffle %v4float %104 %102 0 4 2 5
|
||||
OpStore %103 %105
|
||||
OpStore %globalVar %106
|
||||
%107 = OpAccessChain %_ptr_Private_float %globalStruct %int_0
|
||||
OpStore %107 %float_0
|
||||
%89 = OpLoad %v4float %88
|
||||
%90 = OpVectorShuffle %v4float %89 %87 6 4 7 5
|
||||
OpStore %88 %90
|
||||
%93 = OpAccessChain %_ptr_Function_float %s %int_0
|
||||
OpStore %93 %float_0
|
||||
%94 = OpAccessChain %_ptr_Function_float %s %int_1 %int_1
|
||||
OpStore %94 %float_0
|
||||
%96 = OpAccessChain %_ptr_Function_v4float %s %int_2
|
||||
%97 = OpLoad %v4float %96
|
||||
%98 = OpVectorShuffle %v4float %97 %95 5 6 4 3
|
||||
OpStore %96 %98
|
||||
%100 = OpAccessChain %_ptr_Function_v4float %s %int_3 %int_2
|
||||
%101 = OpLoad %v4float %100
|
||||
%102 = OpVectorShuffle %v4float %101 %99 0 4 2 5
|
||||
OpStore %100 %102
|
||||
OpStore %globalVar %103
|
||||
%104 = OpAccessChain %_ptr_Private_float %globalStruct %int_0
|
||||
OpStore %104 %float_0
|
||||
OpStore %l %float_0
|
||||
%110 = OpAccessChain %_ptr_Function_int %ai %int_0
|
||||
%111 = OpLoad %int %110
|
||||
%112 = OpAccessChain %_ptr_Function_v4int %ai4 %int_0
|
||||
%113 = OpLoad %v4int %112
|
||||
%114 = OpCompositeExtract %int %113 0
|
||||
%115 = OpIAdd %int %111 %114
|
||||
OpStore %110 %115
|
||||
%116 = OpAccessChain %_ptr_Function_float %s %int_0
|
||||
OpStore %116 %float_1
|
||||
%117 = OpAccessChain %_ptr_Function_float %s %int_1 %int_0
|
||||
OpStore %117 %float_2
|
||||
%118 = OpAccessChain %_ptr_Function_v4float %s %int_2
|
||||
OpStore %118 %90
|
||||
%120 = OpAccessChain %_ptr_Function_v4float %s %int_3 %int_0
|
||||
OpStore %120 %119
|
||||
%121 = OpAccessChain %_ptr_Function_v4float %af4 %int_0
|
||||
%122 = OpLoad %v4float %121
|
||||
%123 = OpAccessChain %_ptr_Function_v3float %ah2x4 %int_0 %int_0
|
||||
%125 = OpLoad %v3float %123
|
||||
%126 = OpCompositeExtract %float %125 0
|
||||
%127 = OpVectorTimesScalar %v4float %122 %126
|
||||
OpStore %121 %127
|
||||
%128 = OpAccessChain %_ptr_Function_int %i4 %int_1
|
||||
%129 = OpLoad %int %128
|
||||
%130 = OpLoad %int %i
|
||||
%131 = OpIMul %int %129 %130
|
||||
OpStore %128 %131
|
||||
%132 = OpAccessChain %_ptr_Function_float %x %int_1
|
||||
%133 = OpLoad %float %132
|
||||
%134 = OpLoad %float %l
|
||||
%135 = OpFMul %float %133 %134
|
||||
OpStore %132 %135
|
||||
%136 = OpAccessChain %_ptr_Function_float %s %int_0
|
||||
%137 = OpLoad %float %136
|
||||
%138 = OpLoad %float %l
|
||||
%139 = OpFMul %float %137 %138
|
||||
OpStore %136 %139
|
||||
%140 = OpAccessChain %_ptr_Uniform_v4float %19 %int_0
|
||||
%142 = OpLoad %v4float %140
|
||||
OpReturnValue %142
|
||||
%107 = OpAccessChain %_ptr_Function_int %ai %int_0
|
||||
%108 = OpLoad %int %107
|
||||
%109 = OpAccessChain %_ptr_Function_v4int %ai4 %int_0
|
||||
%110 = OpLoad %v4int %109
|
||||
%111 = OpCompositeExtract %int %110 0
|
||||
%112 = OpIAdd %int %108 %111
|
||||
OpStore %107 %112
|
||||
%113 = OpAccessChain %_ptr_Function_float %s %int_0
|
||||
OpStore %113 %float_1
|
||||
%114 = OpAccessChain %_ptr_Function_float %s %int_1 %int_0
|
||||
OpStore %114 %float_2
|
||||
%115 = OpAccessChain %_ptr_Function_v4float %s %int_2
|
||||
OpStore %115 %87
|
||||
%117 = OpAccessChain %_ptr_Function_v4float %s %int_3 %int_0
|
||||
OpStore %117 %116
|
||||
%118 = OpAccessChain %_ptr_Function_v4float %af4 %int_0
|
||||
%119 = OpLoad %v4float %118
|
||||
%120 = OpAccessChain %_ptr_Function_v3float %ah2x4 %int_0 %int_0
|
||||
%122 = OpLoad %v3float %120
|
||||
%123 = OpCompositeExtract %float %122 0
|
||||
%124 = OpVectorTimesScalar %v4float %119 %123
|
||||
OpStore %118 %124
|
||||
%125 = OpAccessChain %_ptr_Function_int %i4 %int_1
|
||||
%126 = OpLoad %int %125
|
||||
%127 = OpLoad %int %i
|
||||
%128 = OpIMul %int %126 %127
|
||||
OpStore %125 %128
|
||||
%129 = OpAccessChain %_ptr_Function_float %x %int_1
|
||||
%130 = OpLoad %float %129
|
||||
%131 = OpLoad %float %l
|
||||
%132 = OpFMul %float %130 %131
|
||||
OpStore %129 %132
|
||||
%133 = OpAccessChain %_ptr_Function_float %s %int_0
|
||||
%134 = OpLoad %float %133
|
||||
%135 = OpLoad %float %l
|
||||
%136 = OpFMul %float %134 %135
|
||||
OpStore %133 %136
|
||||
%137 = OpAccessChain %_ptr_Uniform_v4float %19 %int_0
|
||||
%139 = OpLoad %v4float %137
|
||||
OpReturnValue %139
|
||||
OpFunctionEnd
|
||||
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@ -29,10 +29,10 @@ OpDecorate %10 Binding 0
|
||||
OpDecorate %10 DescriptorSet 0
|
||||
OpDecorate %68 RelaxedPrecision
|
||||
OpDecorate %111 RelaxedPrecision
|
||||
OpDecorate %166 RelaxedPrecision
|
||||
OpDecorate %163 RelaxedPrecision
|
||||
OpDecorate %171 RelaxedPrecision
|
||||
OpDecorate %174 RelaxedPrecision
|
||||
OpDecorate %177 RelaxedPrecision
|
||||
OpDecorate %178 RelaxedPrecision
|
||||
OpDecorate %175 RelaxedPrecision
|
||||
%float = OpTypeFloat 32
|
||||
%v4float = OpTypeVector %float 4
|
||||
%_ptr_Output_v4float = OpTypePointer Output %v4float
|
||||
@ -61,11 +61,17 @@ OpDecorate %178 RelaxedPrecision
|
||||
%float_1 = OpConstant %float 1
|
||||
%float_2 = OpConstant %float 2
|
||||
%float_3 = OpConstant %float 3
|
||||
%54 = OpConstantComposite %v2float %float_1 %float_2
|
||||
%55 = OpConstantComposite %v2float %float_3 %float_4
|
||||
%v2bool = OpTypeVector %bool 2
|
||||
%false = OpConstantFalse %bool
|
||||
%mat3v3float = OpTypeMatrix %v3float 3
|
||||
%91 = OpConstantComposite %v3float %float_1 %float_2 %float_3
|
||||
%92 = OpConstantComposite %v3float %float_4 %float_1 %float_2
|
||||
%93 = OpConstantComposite %v3float %float_3 %float_4 %float_1
|
||||
%v3bool = OpTypeVector %bool 3
|
||||
%mat4v4float = OpTypeMatrix %v4float 4
|
||||
%140 = OpConstantComposite %v4float %float_1 %float_2 %float_3 %float_4
|
||||
%v4bool = OpTypeVector %bool 4
|
||||
%_ptr_Uniform_v4float = OpTypePointer Uniform %v4float
|
||||
%int_0 = OpConstant %int 0
|
||||
@ -83,7 +89,7 @@ OpFunctionEnd
|
||||
%26 = OpLabel
|
||||
%f4 = OpVariable %_ptr_Function_v4float Function
|
||||
%ok = OpVariable %_ptr_Function_bool Function
|
||||
%167 = OpVariable %_ptr_Function_v4float Function
|
||||
%164 = OpVariable %_ptr_Function_v4float Function
|
||||
%29 = OpAccessChain %_ptr_Uniform_mat2v2float %10 %int_2
|
||||
%33 = OpLoad %mat2v2float %29
|
||||
%34 = OpCompositeExtract %float %33 0 0
|
||||
@ -100,8 +106,6 @@ OpStore %f4 %38
|
||||
%48 = OpCompositeExtract %float %42 2
|
||||
%49 = OpCompositeConstruct %v2float %48 %float_4
|
||||
%50 = OpCompositeConstruct %mat2v2float %47 %49
|
||||
%54 = OpCompositeConstruct %v2float %float_1 %float_2
|
||||
%55 = OpCompositeConstruct %v2float %float_3 %float_4
|
||||
%56 = OpCompositeConstruct %mat2v2float %54 %55
|
||||
%58 = OpCompositeExtract %v2float %50 0
|
||||
%59 = OpCompositeExtract %v2float %56 0
|
||||
@ -136,9 +140,6 @@ OpBranchConditional %68 %69 %70
|
||||
%87 = OpCompositeExtract %float %75 3
|
||||
%88 = OpCompositeConstruct %v3float %86 %87 %77
|
||||
%89 = OpCompositeConstruct %mat3v3float %81 %85 %88
|
||||
%91 = OpCompositeConstruct %v3float %float_1 %float_2 %float_3
|
||||
%92 = OpCompositeConstruct %v3float %float_4 %float_1 %float_2
|
||||
%93 = OpCompositeConstruct %v3float %float_3 %float_4 %float_1
|
||||
%94 = OpCompositeConstruct %mat3v3float %91 %92 %93
|
||||
%96 = OpCompositeExtract %v3float %89 0
|
||||
%97 = OpCompositeExtract %v3float %94 0
|
||||
@ -187,48 +188,44 @@ OpBranchConditional %111 %112 %113
|
||||
%136 = OpCompositeExtract %float %121 1
|
||||
%137 = OpCompositeConstruct %v4float %133 %134 %135 %136
|
||||
%138 = OpCompositeConstruct %mat4v4float %127 %132 %137 %122
|
||||
%140 = OpCompositeConstruct %v4float %float_1 %float_2 %float_3 %float_4
|
||||
%141 = OpCompositeConstruct %v4float %float_1 %float_2 %float_3 %float_4
|
||||
%142 = OpCompositeConstruct %v4float %float_1 %float_2 %float_3 %float_4
|
||||
%143 = OpCompositeConstruct %v4float %float_1 %float_2 %float_3 %float_4
|
||||
%144 = OpCompositeConstruct %mat4v4float %140 %141 %142 %143
|
||||
%146 = OpCompositeExtract %v4float %138 0
|
||||
%147 = OpCompositeExtract %v4float %144 0
|
||||
%148 = OpFOrdEqual %v4bool %146 %147
|
||||
%149 = OpAll %bool %148
|
||||
%150 = OpCompositeExtract %v4float %138 1
|
||||
%151 = OpCompositeExtract %v4float %144 1
|
||||
%152 = OpFOrdEqual %v4bool %150 %151
|
||||
%153 = OpAll %bool %152
|
||||
%154 = OpLogicalAnd %bool %149 %153
|
||||
%155 = OpCompositeExtract %v4float %138 2
|
||||
%156 = OpCompositeExtract %v4float %144 2
|
||||
%157 = OpFOrdEqual %v4bool %155 %156
|
||||
%158 = OpAll %bool %157
|
||||
%159 = OpLogicalAnd %bool %154 %158
|
||||
%160 = OpCompositeExtract %v4float %138 3
|
||||
%161 = OpCompositeExtract %v4float %144 3
|
||||
%162 = OpFOrdEqual %v4bool %160 %161
|
||||
%163 = OpAll %bool %162
|
||||
%164 = OpLogicalAnd %bool %159 %163
|
||||
%141 = OpCompositeConstruct %mat4v4float %140 %140 %140 %140
|
||||
%143 = OpCompositeExtract %v4float %138 0
|
||||
%144 = OpCompositeExtract %v4float %141 0
|
||||
%145 = OpFOrdEqual %v4bool %143 %144
|
||||
%146 = OpAll %bool %145
|
||||
%147 = OpCompositeExtract %v4float %138 1
|
||||
%148 = OpCompositeExtract %v4float %141 1
|
||||
%149 = OpFOrdEqual %v4bool %147 %148
|
||||
%150 = OpAll %bool %149
|
||||
%151 = OpLogicalAnd %bool %146 %150
|
||||
%152 = OpCompositeExtract %v4float %138 2
|
||||
%153 = OpCompositeExtract %v4float %141 2
|
||||
%154 = OpFOrdEqual %v4bool %152 %153
|
||||
%155 = OpAll %bool %154
|
||||
%156 = OpLogicalAnd %bool %151 %155
|
||||
%157 = OpCompositeExtract %v4float %138 3
|
||||
%158 = OpCompositeExtract %v4float %141 3
|
||||
%159 = OpFOrdEqual %v4bool %157 %158
|
||||
%160 = OpAll %bool %159
|
||||
%161 = OpLogicalAnd %bool %156 %160
|
||||
OpBranch %113
|
||||
%113 = OpLabel
|
||||
%165 = OpPhi %bool %false %70 %164 %112
|
||||
OpStore %ok %165
|
||||
%166 = OpLoad %bool %ok
|
||||
OpSelectionMerge %170 None
|
||||
OpBranchConditional %166 %168 %169
|
||||
%168 = OpLabel
|
||||
%171 = OpAccessChain %_ptr_Uniform_v4float %10 %int_0
|
||||
%174 = OpLoad %v4float %171
|
||||
OpStore %167 %174
|
||||
OpBranch %170
|
||||
%169 = OpLabel
|
||||
%175 = OpAccessChain %_ptr_Uniform_v4float %10 %int_1
|
||||
%177 = OpLoad %v4float %175
|
||||
OpStore %167 %177
|
||||
OpBranch %170
|
||||
%170 = OpLabel
|
||||
%178 = OpLoad %v4float %167
|
||||
OpReturnValue %178
|
||||
%162 = OpPhi %bool %false %70 %161 %112
|
||||
OpStore %ok %162
|
||||
%163 = OpLoad %bool %ok
|
||||
OpSelectionMerge %167 None
|
||||
OpBranchConditional %163 %165 %166
|
||||
%165 = OpLabel
|
||||
%168 = OpAccessChain %_ptr_Uniform_v4float %10 %int_0
|
||||
%171 = OpLoad %v4float %168
|
||||
OpStore %164 %171
|
||||
OpBranch %167
|
||||
%166 = OpLabel
|
||||
%172 = OpAccessChain %_ptr_Uniform_v4float %10 %int_1
|
||||
%174 = OpLoad %v4float %172
|
||||
OpStore %164 %174
|
||||
OpBranch %167
|
||||
%167 = OpLabel
|
||||
%175 = OpLoad %v4float %164
|
||||
OpReturnValue %175
|
||||
OpFunctionEnd
|
||||
|
@ -28,13 +28,13 @@ OpDecorate %_UniformBuffer Block
|
||||
OpDecorate %10 Binding 0
|
||||
OpDecorate %10 DescriptorSet 0
|
||||
OpDecorate %73 RelaxedPrecision
|
||||
OpDecorate %107 RelaxedPrecision
|
||||
OpDecorate %149 RelaxedPrecision
|
||||
OpDecorate %197 RelaxedPrecision
|
||||
OpDecorate %106 RelaxedPrecision
|
||||
OpDecorate %146 RelaxedPrecision
|
||||
OpDecorate %192 RelaxedPrecision
|
||||
OpDecorate %238 RelaxedPrecision
|
||||
OpDecorate %246 RelaxedPrecision
|
||||
OpDecorate %254 RelaxedPrecision
|
||||
OpDecorate %257 RelaxedPrecision
|
||||
OpDecorate %258 RelaxedPrecision
|
||||
OpDecorate %249 RelaxedPrecision
|
||||
OpDecorate %250 RelaxedPrecision
|
||||
%float = OpTypeFloat 32
|
||||
%v4float = OpTypeVector %float 4
|
||||
%_ptr_Output_v4float = OpTypePointer Output %v4float
|
||||
@ -64,14 +64,21 @@ OpDecorate %258 RelaxedPrecision
|
||||
%float_2 = OpConstant %float 2
|
||||
%float_3 = OpConstant %float 3
|
||||
%float_4 = OpConstant %float 4
|
||||
%59 = OpConstantComposite %v3float %float_1 %float_2 %float_3
|
||||
%60 = OpConstantComposite %v3float %float_4 %float_1 %float_2
|
||||
%v3bool = OpTypeVector %bool 3
|
||||
%false = OpConstantFalse %bool
|
||||
%mat2v4float = OpTypeMatrix %v4float 2
|
||||
%93 = OpConstantComposite %v4float %float_1 %float_2 %float_3 %float_4
|
||||
%v4bool = OpTypeVector %bool 4
|
||||
%mat3v3float = OpTypeMatrix %v3float 3
|
||||
%129 = OpConstantComposite %v3float %float_3 %float_4 %float_1
|
||||
%mat4v2float = OpTypeMatrix %v2float 4
|
||||
%168 = OpConstantComposite %v2float %float_1 %float_2
|
||||
%169 = OpConstantComposite %v2float %float_3 %float_4
|
||||
%v2bool = OpTypeVector %bool 2
|
||||
%mat4v3float = OpTypeMatrix %v3float 4
|
||||
%216 = OpConstantComposite %v3float %float_2 %float_3 %float_4
|
||||
%_ptr_Uniform_v4float = OpTypePointer Uniform %v4float
|
||||
%int_0 = OpConstant %int 0
|
||||
%int_1 = OpConstant %int 1
|
||||
@ -88,7 +95,7 @@ OpFunctionEnd
|
||||
%26 = OpLabel
|
||||
%f4 = OpVariable %_ptr_Function_v4float Function
|
||||
%ok = OpVariable %_ptr_Function_bool Function
|
||||
%247 = OpVariable %_ptr_Function_v4float Function
|
||||
%239 = OpVariable %_ptr_Function_v4float Function
|
||||
%29 = OpAccessChain %_ptr_Uniform_mat2v2float %10 %int_2
|
||||
%33 = OpLoad %mat2v2float %29
|
||||
%34 = OpCompositeExtract %float %33 0 0
|
||||
@ -109,8 +116,6 @@ OpStore %f4 %38
|
||||
%51 = OpCompositeExtract %float %43 1
|
||||
%52 = OpCompositeConstruct %v3float %49 %50 %51
|
||||
%53 = OpCompositeConstruct %mat2v3float %47 %52
|
||||
%59 = OpCompositeConstruct %v3float %float_1 %float_2 %float_3
|
||||
%60 = OpCompositeConstruct %v3float %float_4 %float_1 %float_2
|
||||
%61 = OpCompositeConstruct %mat2v3float %59 %60
|
||||
%63 = OpCompositeExtract %v3float %53 0
|
||||
%64 = OpCompositeExtract %v3float %61 0
|
||||
@ -142,183 +147,170 @@ OpBranchConditional %73 %74 %75
|
||||
%89 = OpCompositeExtract %float %79 3
|
||||
%90 = OpCompositeConstruct %v4float %87 %88 %89 %81
|
||||
%91 = OpCompositeConstruct %mat2v4float %86 %90
|
||||
%93 = OpCompositeConstruct %v4float %float_1 %float_2 %float_3 %float_4
|
||||
%94 = OpCompositeConstruct %v4float %float_1 %float_2 %float_3 %float_4
|
||||
%95 = OpCompositeConstruct %mat2v4float %93 %94
|
||||
%97 = OpCompositeExtract %v4float %91 0
|
||||
%98 = OpCompositeExtract %v4float %95 0
|
||||
%99 = OpFOrdEqual %v4bool %97 %98
|
||||
%100 = OpAll %bool %99
|
||||
%101 = OpCompositeExtract %v4float %91 1
|
||||
%102 = OpCompositeExtract %v4float %95 1
|
||||
%103 = OpFOrdEqual %v4bool %101 %102
|
||||
%104 = OpAll %bool %103
|
||||
%105 = OpLogicalAnd %bool %100 %104
|
||||
%94 = OpCompositeConstruct %mat2v4float %93 %93
|
||||
%96 = OpCompositeExtract %v4float %91 0
|
||||
%97 = OpCompositeExtract %v4float %94 0
|
||||
%98 = OpFOrdEqual %v4bool %96 %97
|
||||
%99 = OpAll %bool %98
|
||||
%100 = OpCompositeExtract %v4float %91 1
|
||||
%101 = OpCompositeExtract %v4float %94 1
|
||||
%102 = OpFOrdEqual %v4bool %100 %101
|
||||
%103 = OpAll %bool %102
|
||||
%104 = OpLogicalAnd %bool %99 %103
|
||||
OpBranch %75
|
||||
%75 = OpLabel
|
||||
%106 = OpPhi %bool %false %26 %105 %74
|
||||
OpStore %ok %106
|
||||
%107 = OpLoad %bool %ok
|
||||
OpSelectionMerge %109 None
|
||||
OpBranchConditional %107 %108 %109
|
||||
%108 = OpLabel
|
||||
%110 = OpLoad %v4float %f4
|
||||
%111 = OpVectorShuffle %v2float %110 %110 0 1
|
||||
%112 = OpLoad %v4float %f4
|
||||
%113 = OpVectorShuffle %v2float %112 %112 2 3
|
||||
%105 = OpPhi %bool %false %26 %104 %74
|
||||
OpStore %ok %105
|
||||
%106 = OpLoad %bool %ok
|
||||
OpSelectionMerge %108 None
|
||||
OpBranchConditional %106 %107 %108
|
||||
%107 = OpLabel
|
||||
%109 = OpLoad %v4float %f4
|
||||
%110 = OpVectorShuffle %v2float %109 %109 0 1
|
||||
%111 = OpLoad %v4float %f4
|
||||
%112 = OpVectorShuffle %v2float %111 %111 2 3
|
||||
%113 = OpLoad %v4float %f4
|
||||
%114 = OpLoad %v4float %f4
|
||||
%115 = OpLoad %v4float %f4
|
||||
%116 = OpCompositeExtract %float %115 0
|
||||
%117 = OpCompositeExtract %float %111 0
|
||||
%118 = OpCompositeExtract %float %111 1
|
||||
%119 = OpCompositeExtract %float %113 0
|
||||
%120 = OpCompositeConstruct %v3float %117 %118 %119
|
||||
%121 = OpCompositeExtract %float %113 1
|
||||
%122 = OpCompositeExtract %float %114 0
|
||||
%123 = OpCompositeExtract %float %114 1
|
||||
%124 = OpCompositeConstruct %v3float %121 %122 %123
|
||||
%125 = OpCompositeExtract %float %114 2
|
||||
%126 = OpCompositeExtract %float %114 3
|
||||
%127 = OpCompositeConstruct %v3float %125 %126 %116
|
||||
%128 = OpCompositeConstruct %mat3v3float %120 %124 %127
|
||||
%130 = OpCompositeConstruct %v3float %float_1 %float_2 %float_3
|
||||
%131 = OpCompositeConstruct %v3float %float_4 %float_1 %float_2
|
||||
%132 = OpCompositeConstruct %v3float %float_3 %float_4 %float_1
|
||||
%133 = OpCompositeConstruct %mat3v3float %130 %131 %132
|
||||
%134 = OpCompositeExtract %v3float %128 0
|
||||
%135 = OpCompositeExtract %v3float %133 0
|
||||
%136 = OpFOrdEqual %v3bool %134 %135
|
||||
%137 = OpAll %bool %136
|
||||
%138 = OpCompositeExtract %v3float %128 1
|
||||
%139 = OpCompositeExtract %v3float %133 1
|
||||
%140 = OpFOrdEqual %v3bool %138 %139
|
||||
%141 = OpAll %bool %140
|
||||
%142 = OpLogicalAnd %bool %137 %141
|
||||
%143 = OpCompositeExtract %v3float %128 2
|
||||
%144 = OpCompositeExtract %v3float %133 2
|
||||
%145 = OpFOrdEqual %v3bool %143 %144
|
||||
%146 = OpAll %bool %145
|
||||
%147 = OpLogicalAnd %bool %142 %146
|
||||
OpBranch %109
|
||||
%109 = OpLabel
|
||||
%148 = OpPhi %bool %false %75 %147 %108
|
||||
OpStore %ok %148
|
||||
%149 = OpLoad %bool %ok
|
||||
OpSelectionMerge %151 None
|
||||
OpBranchConditional %149 %150 %151
|
||||
%150 = OpLabel
|
||||
%152 = OpLoad %v4float %f4
|
||||
%153 = OpVectorShuffle %v3float %152 %152 0 1 2
|
||||
%154 = OpLoad %v4float %f4
|
||||
%155 = OpVectorShuffle %v4float %154 %154 3 0 1 2
|
||||
%156 = OpLoad %v4float %f4
|
||||
%157 = OpCompositeExtract %float %156 3
|
||||
%158 = OpCompositeExtract %float %153 0
|
||||
%159 = OpCompositeExtract %float %153 1
|
||||
%115 = OpCompositeExtract %float %114 0
|
||||
%116 = OpCompositeExtract %float %110 0
|
||||
%117 = OpCompositeExtract %float %110 1
|
||||
%118 = OpCompositeExtract %float %112 0
|
||||
%119 = OpCompositeConstruct %v3float %116 %117 %118
|
||||
%120 = OpCompositeExtract %float %112 1
|
||||
%121 = OpCompositeExtract %float %113 0
|
||||
%122 = OpCompositeExtract %float %113 1
|
||||
%123 = OpCompositeConstruct %v3float %120 %121 %122
|
||||
%124 = OpCompositeExtract %float %113 2
|
||||
%125 = OpCompositeExtract %float %113 3
|
||||
%126 = OpCompositeConstruct %v3float %124 %125 %115
|
||||
%127 = OpCompositeConstruct %mat3v3float %119 %123 %126
|
||||
%130 = OpCompositeConstruct %mat3v3float %59 %60 %129
|
||||
%131 = OpCompositeExtract %v3float %127 0
|
||||
%132 = OpCompositeExtract %v3float %130 0
|
||||
%133 = OpFOrdEqual %v3bool %131 %132
|
||||
%134 = OpAll %bool %133
|
||||
%135 = OpCompositeExtract %v3float %127 1
|
||||
%136 = OpCompositeExtract %v3float %130 1
|
||||
%137 = OpFOrdEqual %v3bool %135 %136
|
||||
%138 = OpAll %bool %137
|
||||
%139 = OpLogicalAnd %bool %134 %138
|
||||
%140 = OpCompositeExtract %v3float %127 2
|
||||
%141 = OpCompositeExtract %v3float %130 2
|
||||
%142 = OpFOrdEqual %v3bool %140 %141
|
||||
%143 = OpAll %bool %142
|
||||
%144 = OpLogicalAnd %bool %139 %143
|
||||
OpBranch %108
|
||||
%108 = OpLabel
|
||||
%145 = OpPhi %bool %false %75 %144 %107
|
||||
OpStore %ok %145
|
||||
%146 = OpLoad %bool %ok
|
||||
OpSelectionMerge %148 None
|
||||
OpBranchConditional %146 %147 %148
|
||||
%147 = OpLabel
|
||||
%149 = OpLoad %v4float %f4
|
||||
%150 = OpVectorShuffle %v3float %149 %149 0 1 2
|
||||
%151 = OpLoad %v4float %f4
|
||||
%152 = OpVectorShuffle %v4float %151 %151 3 0 1 2
|
||||
%153 = OpLoad %v4float %f4
|
||||
%154 = OpCompositeExtract %float %153 3
|
||||
%155 = OpCompositeExtract %float %150 0
|
||||
%156 = OpCompositeExtract %float %150 1
|
||||
%157 = OpCompositeConstruct %v2float %155 %156
|
||||
%158 = OpCompositeExtract %float %150 2
|
||||
%159 = OpCompositeExtract %float %152 0
|
||||
%160 = OpCompositeConstruct %v2float %158 %159
|
||||
%161 = OpCompositeExtract %float %153 2
|
||||
%162 = OpCompositeExtract %float %155 0
|
||||
%161 = OpCompositeExtract %float %152 1
|
||||
%162 = OpCompositeExtract %float %152 2
|
||||
%163 = OpCompositeConstruct %v2float %161 %162
|
||||
%164 = OpCompositeExtract %float %155 1
|
||||
%165 = OpCompositeExtract %float %155 2
|
||||
%166 = OpCompositeConstruct %v2float %164 %165
|
||||
%167 = OpCompositeExtract %float %155 3
|
||||
%168 = OpCompositeConstruct %v2float %167 %157
|
||||
%169 = OpCompositeConstruct %mat4v2float %160 %163 %166 %168
|
||||
%171 = OpCompositeConstruct %v2float %float_1 %float_2
|
||||
%172 = OpCompositeConstruct %v2float %float_3 %float_4
|
||||
%173 = OpCompositeConstruct %v2float %float_1 %float_2
|
||||
%174 = OpCompositeConstruct %v2float %float_3 %float_4
|
||||
%175 = OpCompositeConstruct %mat4v2float %171 %172 %173 %174
|
||||
%177 = OpCompositeExtract %v2float %169 0
|
||||
%178 = OpCompositeExtract %v2float %175 0
|
||||
%179 = OpFOrdEqual %v2bool %177 %178
|
||||
%180 = OpAll %bool %179
|
||||
%181 = OpCompositeExtract %v2float %169 1
|
||||
%182 = OpCompositeExtract %v2float %175 1
|
||||
%164 = OpCompositeExtract %float %152 3
|
||||
%165 = OpCompositeConstruct %v2float %164 %154
|
||||
%166 = OpCompositeConstruct %mat4v2float %157 %160 %163 %165
|
||||
%170 = OpCompositeConstruct %mat4v2float %168 %169 %168 %169
|
||||
%172 = OpCompositeExtract %v2float %166 0
|
||||
%173 = OpCompositeExtract %v2float %170 0
|
||||
%174 = OpFOrdEqual %v2bool %172 %173
|
||||
%175 = OpAll %bool %174
|
||||
%176 = OpCompositeExtract %v2float %166 1
|
||||
%177 = OpCompositeExtract %v2float %170 1
|
||||
%178 = OpFOrdEqual %v2bool %176 %177
|
||||
%179 = OpAll %bool %178
|
||||
%180 = OpLogicalAnd %bool %175 %179
|
||||
%181 = OpCompositeExtract %v2float %166 2
|
||||
%182 = OpCompositeExtract %v2float %170 2
|
||||
%183 = OpFOrdEqual %v2bool %181 %182
|
||||
%184 = OpAll %bool %183
|
||||
%185 = OpLogicalAnd %bool %180 %184
|
||||
%186 = OpCompositeExtract %v2float %169 2
|
||||
%187 = OpCompositeExtract %v2float %175 2
|
||||
%186 = OpCompositeExtract %v2float %166 3
|
||||
%187 = OpCompositeExtract %v2float %170 3
|
||||
%188 = OpFOrdEqual %v2bool %186 %187
|
||||
%189 = OpAll %bool %188
|
||||
%190 = OpLogicalAnd %bool %185 %189
|
||||
%191 = OpCompositeExtract %v2float %169 3
|
||||
%192 = OpCompositeExtract %v2float %175 3
|
||||
%193 = OpFOrdEqual %v2bool %191 %192
|
||||
%194 = OpAll %bool %193
|
||||
%195 = OpLogicalAnd %bool %190 %194
|
||||
OpBranch %151
|
||||
%151 = OpLabel
|
||||
%196 = OpPhi %bool %false %109 %195 %150
|
||||
OpStore %ok %196
|
||||
%197 = OpLoad %bool %ok
|
||||
OpSelectionMerge %199 None
|
||||
OpBranchConditional %197 %198 %199
|
||||
%198 = OpLabel
|
||||
%200 = OpLoad %v4float %f4
|
||||
%201 = OpCompositeExtract %float %200 0
|
||||
%202 = OpLoad %v4float %f4
|
||||
%203 = OpVectorShuffle %v4float %202 %202 1 2 3 0
|
||||
%204 = OpLoad %v4float %f4
|
||||
%205 = OpVectorShuffle %v4float %204 %204 1 2 3 0
|
||||
%206 = OpLoad %v4float %f4
|
||||
%207 = OpVectorShuffle %v3float %206 %206 1 2 3
|
||||
%208 = OpCompositeExtract %float %203 0
|
||||
%209 = OpCompositeExtract %float %203 1
|
||||
%210 = OpCompositeConstruct %v3float %201 %208 %209
|
||||
%211 = OpCompositeExtract %float %203 2
|
||||
%212 = OpCompositeExtract %float %203 3
|
||||
%213 = OpCompositeExtract %float %205 0
|
||||
%214 = OpCompositeConstruct %v3float %211 %212 %213
|
||||
%215 = OpCompositeExtract %float %205 1
|
||||
%216 = OpCompositeExtract %float %205 2
|
||||
%217 = OpCompositeExtract %float %205 3
|
||||
%218 = OpCompositeConstruct %v3float %215 %216 %217
|
||||
%219 = OpCompositeConstruct %mat4v3float %210 %214 %218 %207
|
||||
%221 = OpCompositeConstruct %v3float %float_1 %float_2 %float_3
|
||||
%222 = OpCompositeConstruct %v3float %float_4 %float_1 %float_2
|
||||
%223 = OpCompositeConstruct %v3float %float_3 %float_4 %float_1
|
||||
%224 = OpCompositeConstruct %v3float %float_2 %float_3 %float_4
|
||||
%225 = OpCompositeConstruct %mat4v3float %221 %222 %223 %224
|
||||
%226 = OpCompositeExtract %v3float %219 0
|
||||
%227 = OpCompositeExtract %v3float %225 0
|
||||
%228 = OpFOrdEqual %v3bool %226 %227
|
||||
%229 = OpAll %bool %228
|
||||
%230 = OpCompositeExtract %v3float %219 1
|
||||
%231 = OpCompositeExtract %v3float %225 1
|
||||
%232 = OpFOrdEqual %v3bool %230 %231
|
||||
%233 = OpAll %bool %232
|
||||
%234 = OpLogicalAnd %bool %229 %233
|
||||
%235 = OpCompositeExtract %v3float %219 2
|
||||
%236 = OpCompositeExtract %v3float %225 2
|
||||
%237 = OpFOrdEqual %v3bool %235 %236
|
||||
%238 = OpAll %bool %237
|
||||
%239 = OpLogicalAnd %bool %234 %238
|
||||
%240 = OpCompositeExtract %v3float %219 3
|
||||
%241 = OpCompositeExtract %v3float %225 3
|
||||
%242 = OpFOrdEqual %v3bool %240 %241
|
||||
%243 = OpAll %bool %242
|
||||
%244 = OpLogicalAnd %bool %239 %243
|
||||
OpBranch %199
|
||||
%199 = OpLabel
|
||||
%245 = OpPhi %bool %false %151 %244 %198
|
||||
OpStore %ok %245
|
||||
%246 = OpLoad %bool %ok
|
||||
OpSelectionMerge %250 None
|
||||
OpBranchConditional %246 %248 %249
|
||||
%248 = OpLabel
|
||||
%251 = OpAccessChain %_ptr_Uniform_v4float %10 %int_0
|
||||
%254 = OpLoad %v4float %251
|
||||
OpStore %247 %254
|
||||
OpBranch %250
|
||||
%249 = OpLabel
|
||||
%255 = OpAccessChain %_ptr_Uniform_v4float %10 %int_1
|
||||
%257 = OpLoad %v4float %255
|
||||
OpStore %247 %257
|
||||
OpBranch %250
|
||||
%250 = OpLabel
|
||||
%258 = OpLoad %v4float %247
|
||||
OpReturnValue %258
|
||||
OpBranch %148
|
||||
%148 = OpLabel
|
||||
%191 = OpPhi %bool %false %108 %190 %147
|
||||
OpStore %ok %191
|
||||
%192 = OpLoad %bool %ok
|
||||
OpSelectionMerge %194 None
|
||||
OpBranchConditional %192 %193 %194
|
||||
%193 = OpLabel
|
||||
%195 = OpLoad %v4float %f4
|
||||
%196 = OpCompositeExtract %float %195 0
|
||||
%197 = OpLoad %v4float %f4
|
||||
%198 = OpVectorShuffle %v4float %197 %197 1 2 3 0
|
||||
%199 = OpLoad %v4float %f4
|
||||
%200 = OpVectorShuffle %v4float %199 %199 1 2 3 0
|
||||
%201 = OpLoad %v4float %f4
|
||||
%202 = OpVectorShuffle %v3float %201 %201 1 2 3
|
||||
%203 = OpCompositeExtract %float %198 0
|
||||
%204 = OpCompositeExtract %float %198 1
|
||||
%205 = OpCompositeConstruct %v3float %196 %203 %204
|
||||
%206 = OpCompositeExtract %float %198 2
|
||||
%207 = OpCompositeExtract %float %198 3
|
||||
%208 = OpCompositeExtract %float %200 0
|
||||
%209 = OpCompositeConstruct %v3float %206 %207 %208
|
||||
%210 = OpCompositeExtract %float %200 1
|
||||
%211 = OpCompositeExtract %float %200 2
|
||||
%212 = OpCompositeExtract %float %200 3
|
||||
%213 = OpCompositeConstruct %v3float %210 %211 %212
|
||||
%214 = OpCompositeConstruct %mat4v3float %205 %209 %213 %202
|
||||
%217 = OpCompositeConstruct %mat4v3float %59 %60 %129 %216
|
||||
%218 = OpCompositeExtract %v3float %214 0
|
||||
%219 = OpCompositeExtract %v3float %217 0
|
||||
%220 = OpFOrdEqual %v3bool %218 %219
|
||||
%221 = OpAll %bool %220
|
||||
%222 = OpCompositeExtract %v3float %214 1
|
||||
%223 = OpCompositeExtract %v3float %217 1
|
||||
%224 = OpFOrdEqual %v3bool %222 %223
|
||||
%225 = OpAll %bool %224
|
||||
%226 = OpLogicalAnd %bool %221 %225
|
||||
%227 = OpCompositeExtract %v3float %214 2
|
||||
%228 = OpCompositeExtract %v3float %217 2
|
||||
%229 = OpFOrdEqual %v3bool %227 %228
|
||||
%230 = OpAll %bool %229
|
||||
%231 = OpLogicalAnd %bool %226 %230
|
||||
%232 = OpCompositeExtract %v3float %214 3
|
||||
%233 = OpCompositeExtract %v3float %217 3
|
||||
%234 = OpFOrdEqual %v3bool %232 %233
|
||||
%235 = OpAll %bool %234
|
||||
%236 = OpLogicalAnd %bool %231 %235
|
||||
OpBranch %194
|
||||
%194 = OpLabel
|
||||
%237 = OpPhi %bool %false %148 %236 %193
|
||||
OpStore %ok %237
|
||||
%238 = OpLoad %bool %ok
|
||||
OpSelectionMerge %242 None
|
||||
OpBranchConditional %238 %240 %241
|
||||
%240 = OpLabel
|
||||
%243 = OpAccessChain %_ptr_Uniform_v4float %10 %int_0
|
||||
%246 = OpLoad %v4float %243
|
||||
OpStore %239 %246
|
||||
OpBranch %242
|
||||
%241 = OpLabel
|
||||
%247 = OpAccessChain %_ptr_Uniform_v4float %10 %int_1
|
||||
%249 = OpLoad %v4float %247
|
||||
OpStore %239 %249
|
||||
OpBranch %242
|
||||
%242 = OpLabel
|
||||
%250 = OpLoad %v4float %239
|
||||
OpReturnValue %250
|
||||
OpFunctionEnd
|
||||
|
@ -88,6 +88,8 @@ OpDecorate %147 RelaxedPrecision
|
||||
%float_2 = OpConstant %float 2
|
||||
%float_3 = OpConstant %float 3
|
||||
%float_4 = OpConstant %float 4
|
||||
%45 = OpConstantComposite %v2float %float_1 %float_2
|
||||
%46 = OpConstantComposite %v2float %float_3 %float_4
|
||||
%v2bool = OpTypeVector %bool 2
|
||||
%_ptr_Uniform_mat3v3float = OpTypePointer Uniform %mat3v3float
|
||||
%int_3 = OpConstant %int 3
|
||||
@ -96,8 +98,14 @@ OpDecorate %147 RelaxedPrecision
|
||||
%float_7 = OpConstant %float 7
|
||||
%float_8 = OpConstant %float 8
|
||||
%float_9 = OpConstant %float 9
|
||||
%71 = OpConstantComposite %v3float %float_1 %float_2 %float_3
|
||||
%72 = OpConstantComposite %v3float %float_4 %float_5 %float_6
|
||||
%73 = OpConstantComposite %v3float %float_7 %float_8 %float_9
|
||||
%v3bool = OpTypeVector %bool 3
|
||||
%float_100 = OpConstant %float 100
|
||||
%115 = OpConstantComposite %v3float %float_9 %float_8 %float_7
|
||||
%116 = OpConstantComposite %v3float %float_6 %float_5 %float_4
|
||||
%117 = OpConstantComposite %v3float %float_3 %float_2 %float_1
|
||||
%_ptr_Function_v4float = OpTypePointer Function %v4float
|
||||
%_ptr_Uniform_v4float = OpTypePointer Uniform %v4float
|
||||
%int_0 = OpConstant %int 0
|
||||
@ -122,8 +130,6 @@ OpBranchConditional %33 %34 %35
|
||||
%34 = OpLabel
|
||||
%36 = OpAccessChain %_ptr_Uniform_mat2v2float %10 %int_2
|
||||
%40 = OpLoad %mat2v2float %36
|
||||
%45 = OpCompositeConstruct %v2float %float_1 %float_2
|
||||
%46 = OpCompositeConstruct %v2float %float_3 %float_4
|
||||
%47 = OpCompositeConstruct %mat2v2float %45 %46
|
||||
%49 = OpCompositeExtract %v2float %40 0
|
||||
%50 = OpCompositeExtract %v2float %47 0
|
||||
@ -144,9 +150,6 @@ OpBranchConditional %59 %60 %61
|
||||
%60 = OpLabel
|
||||
%62 = OpAccessChain %_ptr_Uniform_mat3v3float %10 %int_3
|
||||
%65 = OpLoad %mat3v3float %62
|
||||
%71 = OpCompositeConstruct %v3float %float_1 %float_2 %float_3
|
||||
%72 = OpCompositeConstruct %v3float %float_4 %float_5 %float_6
|
||||
%73 = OpCompositeConstruct %v3float %float_7 %float_8 %float_9
|
||||
%74 = OpCompositeConstruct %mat3v3float %71 %72 %73
|
||||
%76 = OpCompositeExtract %v3float %65 0
|
||||
%77 = OpCompositeExtract %v3float %74 0
|
||||
@ -194,9 +197,6 @@ OpBranchConditional %110 %111 %112
|
||||
%111 = OpLabel
|
||||
%113 = OpAccessChain %_ptr_Uniform_mat3v3float %10 %int_3
|
||||
%114 = OpLoad %mat3v3float %113
|
||||
%115 = OpCompositeConstruct %v3float %float_9 %float_8 %float_7
|
||||
%116 = OpCompositeConstruct %v3float %float_6 %float_5 %float_4
|
||||
%117 = OpCompositeConstruct %v3float %float_3 %float_2 %float_1
|
||||
%118 = OpCompositeConstruct %mat3v3float %115 %116 %117
|
||||
%119 = OpCompositeExtract %v3float %114 0
|
||||
%120 = OpCompositeExtract %v3float %118 0
|
||||
|
@ -36,22 +36,22 @@ OpDecorate %19 Binding 0
|
||||
OpDecorate %19 DescriptorSet 0
|
||||
OpDecorate %48 RelaxedPrecision
|
||||
OpDecorate %49 RelaxedPrecision
|
||||
OpDecorate %149 RelaxedPrecision
|
||||
OpDecorate %150 RelaxedPrecision
|
||||
OpDecorate %151 RelaxedPrecision
|
||||
OpDecorate %153 RelaxedPrecision
|
||||
OpDecorate %154 RelaxedPrecision
|
||||
OpDecorate %155 RelaxedPrecision
|
||||
OpDecorate %156 RelaxedPrecision
|
||||
OpDecorate %159 RelaxedPrecision
|
||||
OpDecorate %160 RelaxedPrecision
|
||||
OpDecorate %161 RelaxedPrecision
|
||||
OpDecorate %162 RelaxedPrecision
|
||||
OpDecorate %165 RelaxedPrecision
|
||||
OpDecorate %166 RelaxedPrecision
|
||||
OpDecorate %167 RelaxedPrecision
|
||||
OpDecorate %168 RelaxedPrecision
|
||||
OpDecorate %182 RelaxedPrecision
|
||||
OpDecorate %183 RelaxedPrecision
|
||||
OpDecorate %184 RelaxedPrecision
|
||||
OpDecorate %331 RelaxedPrecision
|
||||
OpDecorate %333 RelaxedPrecision
|
||||
OpDecorate %335 RelaxedPrecision
|
||||
OpDecorate %336 RelaxedPrecision
|
||||
OpDecorate %334 RelaxedPrecision
|
||||
%float = OpTypeFloat 32
|
||||
%v4float = OpTypeVector %float 4
|
||||
%_ptr_Output_v4float = OpTypePointer Output %v4float
|
||||
@ -84,10 +84,12 @@ OpDecorate %336 RelaxedPrecision
|
||||
%_ptr_Uniform_v4float = OpTypePointer Uniform %v4float
|
||||
%int_1 = OpConstant %int 1
|
||||
%float_1 = OpConstant %float 1
|
||||
%74 = OpConstantComposite %v2float %float_1 %float_1
|
||||
%float_2 = OpConstant %float 2
|
||||
%96 = OpConstantComposite %v2float %float_2 %float_2
|
||||
%false = OpConstantFalse %bool
|
||||
%int_0 = OpConstant %int 0
|
||||
%145 = OpTypeFunction %v4float %_ptr_Function_v2float
|
||||
%144 = OpTypeFunction %v4float %_ptr_Function_v2float
|
||||
%float_3 = OpConstant %float 3
|
||||
%float_4 = OpConstant %float 4
|
||||
%float_0_5 = OpConstant %float 0.5
|
||||
@ -135,7 +137,6 @@ OpSelectionMerge %67 None
|
||||
OpSwitch %66 %67 1 %68 2 %69 3 %70 4 %71
|
||||
%68 = OpLabel
|
||||
%72 = OpLoad %mat2v2float %m2
|
||||
%74 = OpCompositeConstruct %v2float %float_1 %float_1
|
||||
%75 = OpCompositeConstruct %mat2v2float %74 %74
|
||||
%76 = OpCompositeExtract %v2float %72 0
|
||||
%77 = OpCompositeExtract %v2float %75 0
|
||||
@ -148,87 +149,85 @@ OpStore %m2 %82
|
||||
OpBranch %67
|
||||
%69 = OpLabel
|
||||
%83 = OpLoad %mat2v2float %m2
|
||||
%84 = OpCompositeConstruct %v2float %float_1 %float_1
|
||||
%85 = OpCompositeConstruct %mat2v2float %84 %84
|
||||
%86 = OpCompositeExtract %v2float %83 0
|
||||
%87 = OpCompositeExtract %v2float %85 0
|
||||
%88 = OpFSub %v2float %86 %87
|
||||
%89 = OpCompositeExtract %v2float %83 1
|
||||
%90 = OpCompositeExtract %v2float %85 1
|
||||
%91 = OpFSub %v2float %89 %90
|
||||
%92 = OpCompositeConstruct %mat2v2float %88 %91
|
||||
OpStore %m2 %92
|
||||
%84 = OpCompositeConstruct %mat2v2float %74 %74
|
||||
%85 = OpCompositeExtract %v2float %83 0
|
||||
%86 = OpCompositeExtract %v2float %84 0
|
||||
%87 = OpFSub %v2float %85 %86
|
||||
%88 = OpCompositeExtract %v2float %83 1
|
||||
%89 = OpCompositeExtract %v2float %84 1
|
||||
%90 = OpFSub %v2float %88 %89
|
||||
%91 = OpCompositeConstruct %mat2v2float %87 %90
|
||||
OpStore %m2 %91
|
||||
OpBranch %67
|
||||
%70 = OpLabel
|
||||
%93 = OpLoad %mat2v2float %m2
|
||||
%95 = OpMatrixTimesScalar %mat2v2float %93 %float_2
|
||||
OpStore %m2 %95
|
||||
%92 = OpLoad %mat2v2float %m2
|
||||
%94 = OpMatrixTimesScalar %mat2v2float %92 %float_2
|
||||
OpStore %m2 %94
|
||||
OpBranch %67
|
||||
%71 = OpLabel
|
||||
%96 = OpLoad %mat2v2float %m2
|
||||
%97 = OpCompositeConstruct %v2float %float_2 %float_2
|
||||
%98 = OpCompositeConstruct %mat2v2float %97 %97
|
||||
%99 = OpCompositeExtract %v2float %96 0
|
||||
%100 = OpCompositeExtract %v2float %98 0
|
||||
%101 = OpFDiv %v2float %99 %100
|
||||
%102 = OpCompositeExtract %v2float %96 1
|
||||
%103 = OpCompositeExtract %v2float %98 1
|
||||
%104 = OpFDiv %v2float %102 %103
|
||||
%105 = OpCompositeConstruct %mat2v2float %101 %104
|
||||
OpStore %m2 %105
|
||||
%95 = OpLoad %mat2v2float %m2
|
||||
%97 = OpCompositeConstruct %mat2v2float %96 %96
|
||||
%98 = OpCompositeExtract %v2float %95 0
|
||||
%99 = OpCompositeExtract %v2float %97 0
|
||||
%100 = OpFDiv %v2float %98 %99
|
||||
%101 = OpCompositeExtract %v2float %95 1
|
||||
%102 = OpCompositeExtract %v2float %97 1
|
||||
%103 = OpFDiv %v2float %101 %102
|
||||
%104 = OpCompositeConstruct %mat2v2float %100 %103
|
||||
OpStore %m2 %104
|
||||
OpBranch %67
|
||||
%67 = OpLabel
|
||||
%108 = OpAccessChain %_ptr_Function_v2float %m2 %int_0
|
||||
%109 = OpLoad %v2float %108
|
||||
%110 = OpCompositeExtract %float %109 0
|
||||
%111 = OpAccessChain %_ptr_Function_v2float %42 %int_0
|
||||
%112 = OpLoad %v2float %111
|
||||
%113 = OpCompositeExtract %float %112 0
|
||||
%114 = OpFOrdEqual %bool %110 %113
|
||||
OpSelectionMerge %116 None
|
||||
OpBranchConditional %114 %115 %116
|
||||
%107 = OpAccessChain %_ptr_Function_v2float %m2 %int_0
|
||||
%108 = OpLoad %v2float %107
|
||||
%109 = OpCompositeExtract %float %108 0
|
||||
%110 = OpAccessChain %_ptr_Function_v2float %42 %int_0
|
||||
%111 = OpLoad %v2float %110
|
||||
%112 = OpCompositeExtract %float %111 0
|
||||
%113 = OpFOrdEqual %bool %109 %112
|
||||
OpSelectionMerge %115 None
|
||||
OpBranchConditional %113 %114 %115
|
||||
%114 = OpLabel
|
||||
%116 = OpAccessChain %_ptr_Function_v2float %m2 %int_0
|
||||
%117 = OpLoad %v2float %116
|
||||
%118 = OpCompositeExtract %float %117 1
|
||||
%119 = OpAccessChain %_ptr_Function_v2float %42 %int_0
|
||||
%120 = OpLoad %v2float %119
|
||||
%121 = OpCompositeExtract %float %120 1
|
||||
%122 = OpFOrdEqual %bool %118 %121
|
||||
OpBranch %115
|
||||
%115 = OpLabel
|
||||
%117 = OpAccessChain %_ptr_Function_v2float %m2 %int_0
|
||||
%118 = OpLoad %v2float %117
|
||||
%119 = OpCompositeExtract %float %118 1
|
||||
%120 = OpAccessChain %_ptr_Function_v2float %42 %int_0
|
||||
%121 = OpLoad %v2float %120
|
||||
%122 = OpCompositeExtract %float %121 1
|
||||
%123 = OpFOrdEqual %bool %119 %122
|
||||
OpBranch %116
|
||||
%116 = OpLabel
|
||||
%124 = OpPhi %bool %false %67 %123 %115
|
||||
OpSelectionMerge %126 None
|
||||
OpBranchConditional %124 %125 %126
|
||||
%123 = OpPhi %bool %false %67 %122 %114
|
||||
OpSelectionMerge %125 None
|
||||
OpBranchConditional %123 %124 %125
|
||||
%124 = OpLabel
|
||||
%126 = OpAccessChain %_ptr_Function_v2float %m2 %int_1
|
||||
%127 = OpLoad %v2float %126
|
||||
%128 = OpCompositeExtract %float %127 0
|
||||
%129 = OpAccessChain %_ptr_Function_v2float %42 %int_1
|
||||
%130 = OpLoad %v2float %129
|
||||
%131 = OpCompositeExtract %float %130 0
|
||||
%132 = OpFOrdEqual %bool %128 %131
|
||||
OpBranch %125
|
||||
%125 = OpLabel
|
||||
%127 = OpAccessChain %_ptr_Function_v2float %m2 %int_1
|
||||
%128 = OpLoad %v2float %127
|
||||
%129 = OpCompositeExtract %float %128 0
|
||||
%130 = OpAccessChain %_ptr_Function_v2float %42 %int_1
|
||||
%131 = OpLoad %v2float %130
|
||||
%132 = OpCompositeExtract %float %131 0
|
||||
%133 = OpFOrdEqual %bool %129 %132
|
||||
OpBranch %126
|
||||
%126 = OpLabel
|
||||
%134 = OpPhi %bool %false %116 %133 %125
|
||||
OpSelectionMerge %136 None
|
||||
OpBranchConditional %134 %135 %136
|
||||
%133 = OpPhi %bool %false %115 %132 %124
|
||||
OpSelectionMerge %135 None
|
||||
OpBranchConditional %133 %134 %135
|
||||
%134 = OpLabel
|
||||
%136 = OpAccessChain %_ptr_Function_v2float %m2 %int_1
|
||||
%137 = OpLoad %v2float %136
|
||||
%138 = OpCompositeExtract %float %137 1
|
||||
%139 = OpAccessChain %_ptr_Function_v2float %42 %int_1
|
||||
%140 = OpLoad %v2float %139
|
||||
%141 = OpCompositeExtract %float %140 1
|
||||
%142 = OpFOrdEqual %bool %138 %141
|
||||
OpBranch %135
|
||||
%135 = OpLabel
|
||||
%137 = OpAccessChain %_ptr_Function_v2float %m2 %int_1
|
||||
%138 = OpLoad %v2float %137
|
||||
%139 = OpCompositeExtract %float %138 1
|
||||
%140 = OpAccessChain %_ptr_Function_v2float %42 %int_1
|
||||
%141 = OpLoad %v2float %140
|
||||
%142 = OpCompositeExtract %float %141 1
|
||||
%143 = OpFOrdEqual %bool %139 %142
|
||||
OpBranch %136
|
||||
%136 = OpLabel
|
||||
%144 = OpPhi %bool %false %126 %143 %135
|
||||
OpReturnValue %144
|
||||
%143 = OpPhi %bool %false %125 %142 %134
|
||||
OpReturnValue %143
|
||||
OpFunctionEnd
|
||||
%main = OpFunction %v4float None %145
|
||||
%146 = OpFunctionParameter %_ptr_Function_v2float
|
||||
%147 = OpLabel
|
||||
%main = OpFunction %v4float None %144
|
||||
%145 = OpFunctionParameter %_ptr_Function_v2float
|
||||
%146 = OpLabel
|
||||
%f1 = OpVariable %_ptr_Function_float Function
|
||||
%f2 = OpVariable %_ptr_Function_float Function
|
||||
%f3 = OpVariable %_ptr_Function_float Function
|
||||
@ -236,236 +235,235 @@ OpFunctionEnd
|
||||
%_0_expected = OpVariable %_ptr_Function_mat2v2float Function
|
||||
%_1_one = OpVariable %_ptr_Function_float Function
|
||||
%_2_m2 = OpVariable %_ptr_Function_mat2v2float Function
|
||||
%251 = OpVariable %_ptr_Function_int Function
|
||||
%249 = OpVariable %_ptr_Function_int Function
|
||||
%251 = OpVariable %_ptr_Function_float Function
|
||||
%253 = OpVariable %_ptr_Function_float Function
|
||||
%255 = OpVariable %_ptr_Function_float Function
|
||||
%257 = OpVariable %_ptr_Function_float Function
|
||||
%259 = OpVariable %_ptr_Function_float Function
|
||||
%271 = OpVariable %_ptr_Function_mat2v2float Function
|
||||
%277 = OpVariable %_ptr_Function_int Function
|
||||
%269 = OpVariable %_ptr_Function_mat2v2float Function
|
||||
%275 = OpVariable %_ptr_Function_int Function
|
||||
%277 = OpVariable %_ptr_Function_float Function
|
||||
%279 = OpVariable %_ptr_Function_float Function
|
||||
%281 = OpVariable %_ptr_Function_float Function
|
||||
%283 = OpVariable %_ptr_Function_float Function
|
||||
%285 = OpVariable %_ptr_Function_float Function
|
||||
%297 = OpVariable %_ptr_Function_mat2v2float Function
|
||||
%303 = OpVariable %_ptr_Function_int Function
|
||||
%295 = OpVariable %_ptr_Function_mat2v2float Function
|
||||
%301 = OpVariable %_ptr_Function_int Function
|
||||
%303 = OpVariable %_ptr_Function_float Function
|
||||
%305 = OpVariable %_ptr_Function_float Function
|
||||
%307 = OpVariable %_ptr_Function_float Function
|
||||
%309 = OpVariable %_ptr_Function_float Function
|
||||
%311 = OpVariable %_ptr_Function_float Function
|
||||
%324 = OpVariable %_ptr_Function_mat2v2float Function
|
||||
%327 = OpVariable %_ptr_Function_v4float Function
|
||||
%322 = OpVariable %_ptr_Function_mat2v2float Function
|
||||
%325 = OpVariable %_ptr_Function_v4float Function
|
||||
OpStore %minus %int_2
|
||||
OpStore %star %int_3
|
||||
OpStore %slash %int_4
|
||||
%149 = OpAccessChain %_ptr_Uniform_v4float %19 %int_0
|
||||
%150 = OpLoad %v4float %149
|
||||
%151 = OpCompositeExtract %float %150 1
|
||||
OpStore %f1 %151
|
||||
%153 = OpAccessChain %_ptr_Uniform_v4float %19 %int_0
|
||||
%154 = OpLoad %v4float %153
|
||||
%155 = OpCompositeExtract %float %154 1
|
||||
%156 = OpFMul %float %float_2 %155
|
||||
OpStore %f2 %156
|
||||
%159 = OpAccessChain %_ptr_Uniform_v4float %19 %int_0
|
||||
%160 = OpLoad %v4float %159
|
||||
%161 = OpCompositeExtract %float %160 1
|
||||
%162 = OpFMul %float %float_3 %161
|
||||
OpStore %f3 %162
|
||||
%165 = OpAccessChain %_ptr_Uniform_v4float %19 %int_0
|
||||
%166 = OpLoad %v4float %165
|
||||
%167 = OpCompositeExtract %float %166 1
|
||||
%168 = OpFMul %float %float_4 %167
|
||||
OpStore %f4 %168
|
||||
%170 = OpLoad %float %f1
|
||||
%171 = OpFAdd %float %170 %float_1
|
||||
%172 = OpLoad %float %f2
|
||||
%173 = OpFAdd %float %172 %float_1
|
||||
%174 = OpLoad %float %f3
|
||||
%175 = OpFAdd %float %174 %float_1
|
||||
%176 = OpLoad %float %f4
|
||||
%177 = OpFAdd %float %176 %float_1
|
||||
%178 = OpCompositeConstruct %v2float %171 %173
|
||||
%179 = OpCompositeConstruct %v2float %175 %177
|
||||
%180 = OpCompositeConstruct %mat2v2float %178 %179
|
||||
OpStore %_0_expected %180
|
||||
%182 = OpAccessChain %_ptr_Uniform_v4float %19 %int_1
|
||||
%183 = OpLoad %v4float %182
|
||||
%184 = OpCompositeExtract %float %183 0
|
||||
OpStore %_1_one %184
|
||||
%186 = OpLoad %float %f1
|
||||
%187 = OpLoad %float %_1_one
|
||||
%188 = OpFMul %float %186 %187
|
||||
%189 = OpLoad %float %f2
|
||||
%190 = OpLoad %float %_1_one
|
||||
%191 = OpFMul %float %189 %190
|
||||
%192 = OpLoad %float %f3
|
||||
%193 = OpLoad %float %_1_one
|
||||
%194 = OpFMul %float %192 %193
|
||||
%195 = OpLoad %float %f4
|
||||
%196 = OpLoad %float %_1_one
|
||||
%197 = OpFMul %float %195 %196
|
||||
%198 = OpCompositeConstruct %v2float %188 %191
|
||||
%199 = OpCompositeConstruct %v2float %194 %197
|
||||
%200 = OpCompositeConstruct %mat2v2float %198 %199
|
||||
OpStore %_2_m2 %200
|
||||
%201 = OpLoad %mat2v2float %_2_m2
|
||||
%202 = OpCompositeConstruct %v2float %float_1 %float_1
|
||||
%203 = OpCompositeConstruct %mat2v2float %202 %202
|
||||
%204 = OpCompositeExtract %v2float %201 0
|
||||
%205 = OpCompositeExtract %v2float %203 0
|
||||
%206 = OpFAdd %v2float %204 %205
|
||||
%207 = OpCompositeExtract %v2float %201 1
|
||||
%208 = OpCompositeExtract %v2float %203 1
|
||||
%209 = OpFAdd %v2float %207 %208
|
||||
%210 = OpCompositeConstruct %mat2v2float %206 %209
|
||||
OpStore %_2_m2 %210
|
||||
%211 = OpAccessChain %_ptr_Function_v2float %_2_m2 %int_0
|
||||
%212 = OpLoad %v2float %211
|
||||
%213 = OpCompositeExtract %float %212 0
|
||||
%214 = OpAccessChain %_ptr_Function_v2float %_0_expected %int_0
|
||||
%215 = OpLoad %v2float %214
|
||||
%216 = OpCompositeExtract %float %215 0
|
||||
%217 = OpFOrdEqual %bool %213 %216
|
||||
OpSelectionMerge %219 None
|
||||
OpBranchConditional %217 %218 %219
|
||||
%218 = OpLabel
|
||||
%220 = OpAccessChain %_ptr_Function_v2float %_2_m2 %int_0
|
||||
%221 = OpLoad %v2float %220
|
||||
%222 = OpCompositeExtract %float %221 1
|
||||
%223 = OpAccessChain %_ptr_Function_v2float %_0_expected %int_0
|
||||
%224 = OpLoad %v2float %223
|
||||
%225 = OpCompositeExtract %float %224 1
|
||||
%226 = OpFOrdEqual %bool %222 %225
|
||||
OpBranch %219
|
||||
%219 = OpLabel
|
||||
%227 = OpPhi %bool %false %147 %226 %218
|
||||
OpSelectionMerge %229 None
|
||||
OpBranchConditional %227 %228 %229
|
||||
%228 = OpLabel
|
||||
%230 = OpAccessChain %_ptr_Function_v2float %_2_m2 %int_1
|
||||
%231 = OpLoad %v2float %230
|
||||
%232 = OpCompositeExtract %float %231 0
|
||||
%233 = OpAccessChain %_ptr_Function_v2float %_0_expected %int_1
|
||||
%234 = OpLoad %v2float %233
|
||||
%235 = OpCompositeExtract %float %234 0
|
||||
%236 = OpFOrdEqual %bool %232 %235
|
||||
OpBranch %229
|
||||
%229 = OpLabel
|
||||
%237 = OpPhi %bool %false %219 %236 %228
|
||||
OpSelectionMerge %239 None
|
||||
OpBranchConditional %237 %238 %239
|
||||
%238 = OpLabel
|
||||
%240 = OpAccessChain %_ptr_Function_v2float %_2_m2 %int_1
|
||||
%241 = OpLoad %v2float %240
|
||||
%242 = OpCompositeExtract %float %241 1
|
||||
%243 = OpAccessChain %_ptr_Function_v2float %_0_expected %int_1
|
||||
%244 = OpLoad %v2float %243
|
||||
%245 = OpCompositeExtract %float %244 1
|
||||
%246 = OpFOrdEqual %bool %242 %245
|
||||
OpBranch %239
|
||||
%239 = OpLabel
|
||||
%247 = OpPhi %bool %false %229 %246 %238
|
||||
OpSelectionMerge %249 None
|
||||
OpBranchConditional %247 %248 %249
|
||||
%248 = OpLabel
|
||||
%250 = OpLoad %int %minus
|
||||
%148 = OpAccessChain %_ptr_Uniform_v4float %19 %int_0
|
||||
%149 = OpLoad %v4float %148
|
||||
%150 = OpCompositeExtract %float %149 1
|
||||
OpStore %f1 %150
|
||||
%152 = OpAccessChain %_ptr_Uniform_v4float %19 %int_0
|
||||
%153 = OpLoad %v4float %152
|
||||
%154 = OpCompositeExtract %float %153 1
|
||||
%155 = OpFMul %float %float_2 %154
|
||||
OpStore %f2 %155
|
||||
%158 = OpAccessChain %_ptr_Uniform_v4float %19 %int_0
|
||||
%159 = OpLoad %v4float %158
|
||||
%160 = OpCompositeExtract %float %159 1
|
||||
%161 = OpFMul %float %float_3 %160
|
||||
OpStore %f3 %161
|
||||
%164 = OpAccessChain %_ptr_Uniform_v4float %19 %int_0
|
||||
%165 = OpLoad %v4float %164
|
||||
%166 = OpCompositeExtract %float %165 1
|
||||
%167 = OpFMul %float %float_4 %166
|
||||
OpStore %f4 %167
|
||||
%169 = OpLoad %float %f1
|
||||
%170 = OpFAdd %float %169 %float_1
|
||||
%171 = OpLoad %float %f2
|
||||
%172 = OpFAdd %float %171 %float_1
|
||||
%173 = OpLoad %float %f3
|
||||
%174 = OpFAdd %float %173 %float_1
|
||||
%175 = OpLoad %float %f4
|
||||
%176 = OpFAdd %float %175 %float_1
|
||||
%177 = OpCompositeConstruct %v2float %170 %172
|
||||
%178 = OpCompositeConstruct %v2float %174 %176
|
||||
%179 = OpCompositeConstruct %mat2v2float %177 %178
|
||||
OpStore %_0_expected %179
|
||||
%181 = OpAccessChain %_ptr_Uniform_v4float %19 %int_1
|
||||
%182 = OpLoad %v4float %181
|
||||
%183 = OpCompositeExtract %float %182 0
|
||||
OpStore %_1_one %183
|
||||
%185 = OpLoad %float %f1
|
||||
%186 = OpLoad %float %_1_one
|
||||
%187 = OpFMul %float %185 %186
|
||||
%188 = OpLoad %float %f2
|
||||
%189 = OpLoad %float %_1_one
|
||||
%190 = OpFMul %float %188 %189
|
||||
%191 = OpLoad %float %f3
|
||||
%192 = OpLoad %float %_1_one
|
||||
%193 = OpFMul %float %191 %192
|
||||
%194 = OpLoad %float %f4
|
||||
%195 = OpLoad %float %_1_one
|
||||
%196 = OpFMul %float %194 %195
|
||||
%197 = OpCompositeConstruct %v2float %187 %190
|
||||
%198 = OpCompositeConstruct %v2float %193 %196
|
||||
%199 = OpCompositeConstruct %mat2v2float %197 %198
|
||||
OpStore %_2_m2 %199
|
||||
%200 = OpLoad %mat2v2float %_2_m2
|
||||
%201 = OpCompositeConstruct %mat2v2float %74 %74
|
||||
%202 = OpCompositeExtract %v2float %200 0
|
||||
%203 = OpCompositeExtract %v2float %201 0
|
||||
%204 = OpFAdd %v2float %202 %203
|
||||
%205 = OpCompositeExtract %v2float %200 1
|
||||
%206 = OpCompositeExtract %v2float %201 1
|
||||
%207 = OpFAdd %v2float %205 %206
|
||||
%208 = OpCompositeConstruct %mat2v2float %204 %207
|
||||
OpStore %_2_m2 %208
|
||||
%209 = OpAccessChain %_ptr_Function_v2float %_2_m2 %int_0
|
||||
%210 = OpLoad %v2float %209
|
||||
%211 = OpCompositeExtract %float %210 0
|
||||
%212 = OpAccessChain %_ptr_Function_v2float %_0_expected %int_0
|
||||
%213 = OpLoad %v2float %212
|
||||
%214 = OpCompositeExtract %float %213 0
|
||||
%215 = OpFOrdEqual %bool %211 %214
|
||||
OpSelectionMerge %217 None
|
||||
OpBranchConditional %215 %216 %217
|
||||
%216 = OpLabel
|
||||
%218 = OpAccessChain %_ptr_Function_v2float %_2_m2 %int_0
|
||||
%219 = OpLoad %v2float %218
|
||||
%220 = OpCompositeExtract %float %219 1
|
||||
%221 = OpAccessChain %_ptr_Function_v2float %_0_expected %int_0
|
||||
%222 = OpLoad %v2float %221
|
||||
%223 = OpCompositeExtract %float %222 1
|
||||
%224 = OpFOrdEqual %bool %220 %223
|
||||
OpBranch %217
|
||||
%217 = OpLabel
|
||||
%225 = OpPhi %bool %false %146 %224 %216
|
||||
OpSelectionMerge %227 None
|
||||
OpBranchConditional %225 %226 %227
|
||||
%226 = OpLabel
|
||||
%228 = OpAccessChain %_ptr_Function_v2float %_2_m2 %int_1
|
||||
%229 = OpLoad %v2float %228
|
||||
%230 = OpCompositeExtract %float %229 0
|
||||
%231 = OpAccessChain %_ptr_Function_v2float %_0_expected %int_1
|
||||
%232 = OpLoad %v2float %231
|
||||
%233 = OpCompositeExtract %float %232 0
|
||||
%234 = OpFOrdEqual %bool %230 %233
|
||||
OpBranch %227
|
||||
%227 = OpLabel
|
||||
%235 = OpPhi %bool %false %217 %234 %226
|
||||
OpSelectionMerge %237 None
|
||||
OpBranchConditional %235 %236 %237
|
||||
%236 = OpLabel
|
||||
%238 = OpAccessChain %_ptr_Function_v2float %_2_m2 %int_1
|
||||
%239 = OpLoad %v2float %238
|
||||
%240 = OpCompositeExtract %float %239 1
|
||||
%241 = OpAccessChain %_ptr_Function_v2float %_0_expected %int_1
|
||||
%242 = OpLoad %v2float %241
|
||||
%243 = OpCompositeExtract %float %242 1
|
||||
%244 = OpFOrdEqual %bool %240 %243
|
||||
OpBranch %237
|
||||
%237 = OpLabel
|
||||
%245 = OpPhi %bool %false %227 %244 %236
|
||||
OpSelectionMerge %247 None
|
||||
OpBranchConditional %245 %246 %247
|
||||
%246 = OpLabel
|
||||
%248 = OpLoad %int %minus
|
||||
OpStore %249 %248
|
||||
%250 = OpLoad %float %f1
|
||||
OpStore %251 %250
|
||||
%252 = OpLoad %float %f1
|
||||
%252 = OpLoad %float %f2
|
||||
OpStore %253 %252
|
||||
%254 = OpLoad %float %f2
|
||||
%254 = OpLoad %float %f3
|
||||
OpStore %255 %254
|
||||
%256 = OpLoad %float %f3
|
||||
%256 = OpLoad %float %f4
|
||||
OpStore %257 %256
|
||||
%258 = OpLoad %float %f4
|
||||
OpStore %259 %258
|
||||
%260 = OpLoad %float %f1
|
||||
%258 = OpLoad %float %f1
|
||||
%259 = OpFSub %float %258 %float_1
|
||||
%260 = OpLoad %float %f2
|
||||
%261 = OpFSub %float %260 %float_1
|
||||
%262 = OpLoad %float %f2
|
||||
%262 = OpLoad %float %f3
|
||||
%263 = OpFSub %float %262 %float_1
|
||||
%264 = OpLoad %float %f3
|
||||
%264 = OpLoad %float %f4
|
||||
%265 = OpFSub %float %264 %float_1
|
||||
%266 = OpLoad %float %f4
|
||||
%267 = OpFSub %float %266 %float_1
|
||||
%268 = OpCompositeConstruct %v2float %261 %263
|
||||
%269 = OpCompositeConstruct %v2float %265 %267
|
||||
%270 = OpCompositeConstruct %mat2v2float %268 %269
|
||||
OpStore %271 %270
|
||||
%272 = OpFunctionCall %bool %test_bifffff22 %251 %253 %255 %257 %259 %271
|
||||
OpBranch %249
|
||||
%249 = OpLabel
|
||||
%273 = OpPhi %bool %false %239 %272 %248
|
||||
OpSelectionMerge %275 None
|
||||
OpBranchConditional %273 %274 %275
|
||||
%274 = OpLabel
|
||||
%276 = OpLoad %int %star
|
||||
%266 = OpCompositeConstruct %v2float %259 %261
|
||||
%267 = OpCompositeConstruct %v2float %263 %265
|
||||
%268 = OpCompositeConstruct %mat2v2float %266 %267
|
||||
OpStore %269 %268
|
||||
%270 = OpFunctionCall %bool %test_bifffff22 %249 %251 %253 %255 %257 %269
|
||||
OpBranch %247
|
||||
%247 = OpLabel
|
||||
%271 = OpPhi %bool %false %237 %270 %246
|
||||
OpSelectionMerge %273 None
|
||||
OpBranchConditional %271 %272 %273
|
||||
%272 = OpLabel
|
||||
%274 = OpLoad %int %star
|
||||
OpStore %275 %274
|
||||
%276 = OpLoad %float %f1
|
||||
OpStore %277 %276
|
||||
%278 = OpLoad %float %f1
|
||||
%278 = OpLoad %float %f2
|
||||
OpStore %279 %278
|
||||
%280 = OpLoad %float %f2
|
||||
%280 = OpLoad %float %f3
|
||||
OpStore %281 %280
|
||||
%282 = OpLoad %float %f3
|
||||
%282 = OpLoad %float %f4
|
||||
OpStore %283 %282
|
||||
%284 = OpLoad %float %f4
|
||||
OpStore %285 %284
|
||||
%286 = OpLoad %float %f1
|
||||
%284 = OpLoad %float %f1
|
||||
%285 = OpFMul %float %284 %float_2
|
||||
%286 = OpLoad %float %f2
|
||||
%287 = OpFMul %float %286 %float_2
|
||||
%288 = OpLoad %float %f2
|
||||
%288 = OpLoad %float %f3
|
||||
%289 = OpFMul %float %288 %float_2
|
||||
%290 = OpLoad %float %f3
|
||||
%290 = OpLoad %float %f4
|
||||
%291 = OpFMul %float %290 %float_2
|
||||
%292 = OpLoad %float %f4
|
||||
%293 = OpFMul %float %292 %float_2
|
||||
%294 = OpCompositeConstruct %v2float %287 %289
|
||||
%295 = OpCompositeConstruct %v2float %291 %293
|
||||
%296 = OpCompositeConstruct %mat2v2float %294 %295
|
||||
OpStore %297 %296
|
||||
%298 = OpFunctionCall %bool %test_bifffff22 %277 %279 %281 %283 %285 %297
|
||||
OpBranch %275
|
||||
%275 = OpLabel
|
||||
%299 = OpPhi %bool %false %249 %298 %274
|
||||
OpSelectionMerge %301 None
|
||||
OpBranchConditional %299 %300 %301
|
||||
%300 = OpLabel
|
||||
%302 = OpLoad %int %slash
|
||||
%292 = OpCompositeConstruct %v2float %285 %287
|
||||
%293 = OpCompositeConstruct %v2float %289 %291
|
||||
%294 = OpCompositeConstruct %mat2v2float %292 %293
|
||||
OpStore %295 %294
|
||||
%296 = OpFunctionCall %bool %test_bifffff22 %275 %277 %279 %281 %283 %295
|
||||
OpBranch %273
|
||||
%273 = OpLabel
|
||||
%297 = OpPhi %bool %false %247 %296 %272
|
||||
OpSelectionMerge %299 None
|
||||
OpBranchConditional %297 %298 %299
|
||||
%298 = OpLabel
|
||||
%300 = OpLoad %int %slash
|
||||
OpStore %301 %300
|
||||
%302 = OpLoad %float %f1
|
||||
OpStore %303 %302
|
||||
%304 = OpLoad %float %f1
|
||||
%304 = OpLoad %float %f2
|
||||
OpStore %305 %304
|
||||
%306 = OpLoad %float %f2
|
||||
%306 = OpLoad %float %f3
|
||||
OpStore %307 %306
|
||||
%308 = OpLoad %float %f3
|
||||
%308 = OpLoad %float %f4
|
||||
OpStore %309 %308
|
||||
%310 = OpLoad %float %f4
|
||||
OpStore %311 %310
|
||||
%312 = OpLoad %float %f1
|
||||
%314 = OpFMul %float %312 %float_0_5
|
||||
%315 = OpLoad %float %f2
|
||||
%310 = OpLoad %float %f1
|
||||
%312 = OpFMul %float %310 %float_0_5
|
||||
%313 = OpLoad %float %f2
|
||||
%314 = OpFMul %float %313 %float_0_5
|
||||
%315 = OpLoad %float %f3
|
||||
%316 = OpFMul %float %315 %float_0_5
|
||||
%317 = OpLoad %float %f3
|
||||
%317 = OpLoad %float %f4
|
||||
%318 = OpFMul %float %317 %float_0_5
|
||||
%319 = OpLoad %float %f4
|
||||
%320 = OpFMul %float %319 %float_0_5
|
||||
%321 = OpCompositeConstruct %v2float %314 %316
|
||||
%322 = OpCompositeConstruct %v2float %318 %320
|
||||
%323 = OpCompositeConstruct %mat2v2float %321 %322
|
||||
OpStore %324 %323
|
||||
%325 = OpFunctionCall %bool %test_bifffff22 %303 %305 %307 %309 %311 %324
|
||||
OpBranch %301
|
||||
%301 = OpLabel
|
||||
%326 = OpPhi %bool %false %275 %325 %300
|
||||
OpSelectionMerge %331 None
|
||||
OpBranchConditional %326 %329 %330
|
||||
%329 = OpLabel
|
||||
%332 = OpAccessChain %_ptr_Uniform_v4float %19 %int_0
|
||||
%319 = OpCompositeConstruct %v2float %312 %314
|
||||
%320 = OpCompositeConstruct %v2float %316 %318
|
||||
%321 = OpCompositeConstruct %mat2v2float %319 %320
|
||||
OpStore %322 %321
|
||||
%323 = OpFunctionCall %bool %test_bifffff22 %301 %303 %305 %307 %309 %322
|
||||
OpBranch %299
|
||||
%299 = OpLabel
|
||||
%324 = OpPhi %bool %false %273 %323 %298
|
||||
OpSelectionMerge %329 None
|
||||
OpBranchConditional %324 %327 %328
|
||||
%327 = OpLabel
|
||||
%330 = OpAccessChain %_ptr_Uniform_v4float %19 %int_0
|
||||
%331 = OpLoad %v4float %330
|
||||
OpStore %325 %331
|
||||
OpBranch %329
|
||||
%328 = OpLabel
|
||||
%332 = OpAccessChain %_ptr_Uniform_v4float %19 %int_1
|
||||
%333 = OpLoad %v4float %332
|
||||
OpStore %327 %333
|
||||
OpBranch %331
|
||||
%330 = OpLabel
|
||||
%334 = OpAccessChain %_ptr_Uniform_v4float %19 %int_1
|
||||
%335 = OpLoad %v4float %334
|
||||
OpStore %327 %335
|
||||
OpBranch %331
|
||||
%331 = OpLabel
|
||||
%336 = OpLoad %v4float %327
|
||||
OpReturnValue %336
|
||||
OpStore %325 %333
|
||||
OpBranch %329
|
||||
%329 = OpLabel
|
||||
%334 = OpLoad %v4float %325
|
||||
OpReturnValue %334
|
||||
OpFunctionEnd
|
||||
|
@ -43,6 +43,8 @@ OpDecorate %39 RelaxedPrecision
|
||||
%float_1 = OpConstant %float 1
|
||||
%float_2 = OpConstant %float 2
|
||||
%float_3 = OpConstant %float 3
|
||||
%29 = OpConstantComposite %v2float %float_0 %float_1
|
||||
%30 = OpConstantComposite %v2float %float_2 %float_3
|
||||
%_entrypoint_v = OpFunction %void None %12
|
||||
%13 = OpLabel
|
||||
%17 = OpVariable %_ptr_Function_v2float Function
|
||||
@ -56,8 +58,6 @@ OpFunctionEnd
|
||||
%22 = OpLabel
|
||||
%x = OpVariable %_ptr_Function_mat2v2float Function
|
||||
%y = OpVariable %_ptr_Function_v2float Function
|
||||
%29 = OpCompositeConstruct %v2float %float_0 %float_1
|
||||
%30 = OpCompositeConstruct %v2float %float_2 %float_3
|
||||
%31 = OpCompositeConstruct %mat2v2float %29 %30
|
||||
OpStore %x %31
|
||||
%33 = OpLoad %mat2v2float %x
|
||||
|
@ -104,6 +104,8 @@ OpDecorate %250 RelaxedPrecision
|
||||
%float_n2 = OpConstant %float -2
|
||||
%float_n3 = OpConstant %float -3
|
||||
%float_n4 = OpConstant %float -4
|
||||
%83 = OpConstantComposite %v2float %float_n1 %float_n2
|
||||
%84 = OpConstantComposite %v2float %float_n3 %float_n4
|
||||
%_ptr_Uniform_mat2v2float = OpTypePointer Uniform %mat2v2float
|
||||
%int_3 = OpConstant %int 3
|
||||
%_ptr_Function_mat3v3float = OpTypePointer Function %mat3v3float
|
||||
@ -112,6 +114,9 @@ OpDecorate %250 RelaxedPrecision
|
||||
%float_n7 = OpConstant %float -7
|
||||
%float_n8 = OpConstant %float -8
|
||||
%float_n9 = OpConstant %float -9
|
||||
%116 = OpConstantComposite %v3float %float_n1 %float_n2 %float_n3
|
||||
%117 = OpConstantComposite %v3float %float_n4 %float_n5 %float_n6
|
||||
%118 = OpConstantComposite %v3float %float_n7 %float_n8 %float_n9
|
||||
%_ptr_Uniform_mat3v3float = OpTypePointer Uniform %mat3v3float
|
||||
%int_4 = OpConstant %int 4
|
||||
%v3bool = OpTypeVector %bool 3
|
||||
@ -123,6 +128,10 @@ OpDecorate %250 RelaxedPrecision
|
||||
%float_n14 = OpConstant %float -14
|
||||
%float_n15 = OpConstant %float -15
|
||||
%float_n16 = OpConstant %float -16
|
||||
%160 = OpConstantComposite %v4float %float_n1 %float_n2 %float_n3 %float_n4
|
||||
%161 = OpConstantComposite %v4float %float_n5 %float_n6 %float_n7 %float_n8
|
||||
%162 = OpConstantComposite %v4float %float_n9 %float_n10 %float_n11 %float_n12
|
||||
%163 = OpConstantComposite %v4float %float_n13 %float_n14 %float_n15 %float_n16
|
||||
%_ptr_Uniform_mat4v4float = OpTypePointer Uniform %mat4v4float
|
||||
%int_5 = OpConstant %int 5
|
||||
%v4bool = OpTypeVector %bool 4
|
||||
@ -191,8 +200,6 @@ OpFunctionEnd
|
||||
%77 = OpLabel
|
||||
%negated = OpVariable %_ptr_Function_mat2v2float Function
|
||||
%x_2 = OpVariable %_ptr_Function_mat2v2float Function
|
||||
%83 = OpCompositeConstruct %v2float %float_n1 %float_n2
|
||||
%84 = OpCompositeConstruct %v2float %float_n3 %float_n4
|
||||
%85 = OpCompositeConstruct %mat2v2float %83 %84
|
||||
OpStore %negated %85
|
||||
%87 = OpAccessChain %_ptr_Uniform_mat2v2float %16 %int_3
|
||||
@ -222,9 +229,6 @@ OpFunctionEnd
|
||||
%108 = OpLabel
|
||||
%negated_0 = OpVariable %_ptr_Function_mat3v3float Function
|
||||
%x_3 = OpVariable %_ptr_Function_mat3v3float Function
|
||||
%116 = OpCompositeConstruct %v3float %float_n1 %float_n2 %float_n3
|
||||
%117 = OpCompositeConstruct %v3float %float_n4 %float_n5 %float_n6
|
||||
%118 = OpCompositeConstruct %v3float %float_n7 %float_n8 %float_n9
|
||||
%119 = OpCompositeConstruct %mat3v3float %116 %117 %118
|
||||
OpStore %negated_0 %119
|
||||
%121 = OpAccessChain %_ptr_Uniform_mat3v3float %16 %int_4
|
||||
@ -261,10 +265,6 @@ OpFunctionEnd
|
||||
%150 = OpLabel
|
||||
%negated_1 = OpVariable %_ptr_Function_mat4v4float Function
|
||||
%x_4 = OpVariable %_ptr_Function_mat4v4float Function
|
||||
%160 = OpCompositeConstruct %v4float %float_n1 %float_n2 %float_n3 %float_n4
|
||||
%161 = OpCompositeConstruct %v4float %float_n5 %float_n6 %float_n7 %float_n8
|
||||
%162 = OpCompositeConstruct %v4float %float_n9 %float_n10 %float_n11 %float_n12
|
||||
%163 = OpCompositeConstruct %v4float %float_n13 %float_n14 %float_n15 %float_n16
|
||||
%164 = OpCompositeConstruct %mat4v4float %160 %161 %162 %163
|
||||
OpStore %negated_1 %164
|
||||
%166 = OpAccessChain %_ptr_Uniform_mat4v4float %16 %int_5
|
||||
|
@ -39,100 +39,89 @@ OpDecorate %50 RelaxedPrecision
|
||||
OpDecorate %51 RelaxedPrecision
|
||||
OpDecorate %63 RelaxedPrecision
|
||||
OpDecorate %67 RelaxedPrecision
|
||||
OpDecorate %88 RelaxedPrecision
|
||||
OpDecorate %86 RelaxedPrecision
|
||||
OpDecorate %91 RelaxedPrecision
|
||||
OpDecorate %92 RelaxedPrecision
|
||||
OpDecorate %93 RelaxedPrecision
|
||||
OpDecorate %94 RelaxedPrecision
|
||||
OpDecorate %95 RelaxedPrecision
|
||||
OpDecorate %96 RelaxedPrecision
|
||||
OpDecorate %97 RelaxedPrecision
|
||||
OpDecorate %98 RelaxedPrecision
|
||||
OpDecorate %99 RelaxedPrecision
|
||||
OpDecorate %100 RelaxedPrecision
|
||||
OpDecorate %102 RelaxedPrecision
|
||||
OpDecorate %103 RelaxedPrecision
|
||||
OpDecorate %104 RelaxedPrecision
|
||||
OpDecorate %115 RelaxedPrecision
|
||||
OpDecorate %101 RelaxedPrecision
|
||||
OpDecorate %112 RelaxedPrecision
|
||||
OpDecorate %116 RelaxedPrecision
|
||||
OpDecorate %117 RelaxedPrecision
|
||||
OpDecorate %118 RelaxedPrecision
|
||||
OpDecorate %119 RelaxedPrecision
|
||||
OpDecorate %120 RelaxedPrecision
|
||||
OpDecorate %121 RelaxedPrecision
|
||||
OpDecorate %122 RelaxedPrecision
|
||||
OpDecorate %123 RelaxedPrecision
|
||||
OpDecorate %124 RelaxedPrecision
|
||||
OpDecorate %125 RelaxedPrecision
|
||||
OpDecorate %126 RelaxedPrecision
|
||||
OpDecorate %127 RelaxedPrecision
|
||||
OpDecorate %128 RelaxedPrecision
|
||||
OpDecorate %129 RelaxedPrecision
|
||||
OpDecorate %135 RelaxedPrecision
|
||||
OpDecorate %139 RelaxedPrecision
|
||||
OpDecorate %140 RelaxedPrecision
|
||||
OpDecorate %142 RelaxedPrecision
|
||||
OpDecorate %144 RelaxedPrecision
|
||||
OpDecorate %145 RelaxedPrecision
|
||||
OpDecorate %147 RelaxedPrecision
|
||||
OpDecorate %149 RelaxedPrecision
|
||||
OpDecorate %146 RelaxedPrecision
|
||||
OpDecorate %151 RelaxedPrecision
|
||||
OpDecorate %156 RelaxedPrecision
|
||||
OpDecorate %153 RelaxedPrecision
|
||||
OpDecorate %155 RelaxedPrecision
|
||||
OpDecorate %157 RelaxedPrecision
|
||||
OpDecorate %158 RelaxedPrecision
|
||||
OpDecorate %159 RelaxedPrecision
|
||||
OpDecorate %160 RelaxedPrecision
|
||||
OpDecorate %161 RelaxedPrecision
|
||||
OpDecorate %162 RelaxedPrecision
|
||||
OpDecorate %163 RelaxedPrecision
|
||||
OpDecorate %164 RelaxedPrecision
|
||||
OpDecorate %165 RelaxedPrecision
|
||||
OpDecorate %166 RelaxedPrecision
|
||||
OpDecorate %167 RelaxedPrecision
|
||||
OpDecorate %168 RelaxedPrecision
|
||||
OpDecorate %169 RelaxedPrecision
|
||||
OpDecorate %170 RelaxedPrecision
|
||||
OpDecorate %171 RelaxedPrecision
|
||||
OpDecorate %172 RelaxedPrecision
|
||||
OpDecorate %173 RelaxedPrecision
|
||||
OpDecorate %177 RelaxedPrecision
|
||||
OpDecorate %181 RelaxedPrecision
|
||||
OpDecorate %182 RelaxedPrecision
|
||||
OpDecorate %183 RelaxedPrecision
|
||||
OpDecorate %184 RelaxedPrecision
|
||||
OpDecorate %185 RelaxedPrecision
|
||||
OpDecorate %186 RelaxedPrecision
|
||||
OpDecorate %187 RelaxedPrecision
|
||||
OpDecorate %188 RelaxedPrecision
|
||||
OpDecorate %189 RelaxedPrecision
|
||||
OpDecorate %190 RelaxedPrecision
|
||||
OpDecorate %191 RelaxedPrecision
|
||||
OpDecorate %192 RelaxedPrecision
|
||||
OpDecorate %193 RelaxedPrecision
|
||||
OpDecorate %194 RelaxedPrecision
|
||||
OpDecorate %195 RelaxedPrecision
|
||||
OpDecorate %196 RelaxedPrecision
|
||||
OpDecorate %197 RelaxedPrecision
|
||||
OpDecorate %198 RelaxedPrecision
|
||||
OpDecorate %200 RelaxedPrecision
|
||||
OpDecorate %204 RelaxedPrecision
|
||||
OpDecorate %205 RelaxedPrecision
|
||||
OpDecorate %206 RelaxedPrecision
|
||||
OpDecorate %207 RelaxedPrecision
|
||||
OpDecorate %208 RelaxedPrecision
|
||||
OpDecorate %209 RelaxedPrecision
|
||||
OpDecorate %213 RelaxedPrecision
|
||||
OpDecorate %214 RelaxedPrecision
|
||||
OpDecorate %215 RelaxedPrecision
|
||||
OpDecorate %216 RelaxedPrecision
|
||||
OpDecorate %217 RelaxedPrecision
|
||||
OpDecorate %218 RelaxedPrecision
|
||||
OpDecorate %219 RelaxedPrecision
|
||||
OpDecorate %220 RelaxedPrecision
|
||||
OpDecorate %221 RelaxedPrecision
|
||||
OpDecorate %222 RelaxedPrecision
|
||||
OpDecorate %210 RelaxedPrecision
|
||||
OpDecorate %211 RelaxedPrecision
|
||||
OpDecorate %212 RelaxedPrecision
|
||||
OpDecorate %223 RelaxedPrecision
|
||||
OpDecorate %227 RelaxedPrecision
|
||||
OpDecorate %228 RelaxedPrecision
|
||||
OpDecorate %230 RelaxedPrecision
|
||||
OpDecorate %232 RelaxedPrecision
|
||||
OpDecorate %234 RelaxedPrecision
|
||||
OpDecorate %238 RelaxedPrecision
|
||||
OpDecorate %239 RelaxedPrecision
|
||||
OpDecorate %241 RelaxedPrecision
|
||||
OpDecorate %243 RelaxedPrecision
|
||||
OpDecorate %245 RelaxedPrecision
|
||||
OpDecorate %246 RelaxedPrecision
|
||||
OpDecorate %247 RelaxedPrecision
|
||||
OpDecorate %248 RelaxedPrecision
|
||||
OpDecorate %249 RelaxedPrecision
|
||||
OpDecorate %250 RelaxedPrecision
|
||||
OpDecorate %251 RelaxedPrecision
|
||||
OpDecorate %252 RelaxedPrecision
|
||||
OpDecorate %253 RelaxedPrecision
|
||||
OpDecorate %254 RelaxedPrecision
|
||||
OpDecorate %256 RelaxedPrecision
|
||||
OpDecorate %257 RelaxedPrecision
|
||||
OpDecorate %258 RelaxedPrecision
|
||||
OpDecorate %259 RelaxedPrecision
|
||||
OpDecorate %260 RelaxedPrecision
|
||||
OpDecorate %261 RelaxedPrecision
|
||||
OpDecorate %262 RelaxedPrecision
|
||||
OpDecorate %263 RelaxedPrecision
|
||||
OpDecorate %264 RelaxedPrecision
|
||||
OpDecorate %265 RelaxedPrecision
|
||||
OpDecorate %266 RelaxedPrecision
|
||||
OpDecorate %267 RelaxedPrecision
|
||||
OpDecorate %278 RelaxedPrecision
|
||||
OpDecorate %285 RelaxedPrecision
|
||||
OpDecorate %288 RelaxedPrecision
|
||||
OpDecorate %289 RelaxedPrecision
|
||||
OpDecorate %272 RelaxedPrecision
|
||||
OpDecorate %275 RelaxedPrecision
|
||||
OpDecorate %276 RelaxedPrecision
|
||||
%float = OpTypeFloat 32
|
||||
%v4float = OpTypeVector %float 4
|
||||
%_ptr_Output_v4float = OpTypePointer Output %v4float
|
||||
@ -160,9 +149,12 @@ OpDecorate %289 RelaxedPrecision
|
||||
%float_n1_25 = OpConstant %float -1.25
|
||||
%float_0_75 = OpConstant %float 0.75
|
||||
%float_2_25 = OpConstant %float 2.25
|
||||
%49 = OpConstantComposite %v2float %float_n1_25 %float_0
|
||||
%50 = OpConstantComposite %v2float %float_0_75 %float_2_25
|
||||
%v2bool = OpTypeVector %bool 2
|
||||
%int_0 = OpConstant %int 0
|
||||
%float_1 = OpConstant %float 1
|
||||
%100 = OpConstantComposite %v2float %float_0 %float_1
|
||||
%v4int = OpTypeVector %int 4
|
||||
%v4bool = OpTypeVector %bool 4
|
||||
%_ptr_Function_v4float = OpTypePointer Function %v4float
|
||||
@ -179,7 +171,7 @@ OpFunctionEnd
|
||||
%24 = OpFunctionParameter %_ptr_Function_v2float
|
||||
%25 = OpLabel
|
||||
%ok = OpVariable %_ptr_Function_bool Function
|
||||
%279 = OpVariable %_ptr_Function_v4float Function
|
||||
%266 = OpVariable %_ptr_Function_v4float Function
|
||||
OpStore %ok %true
|
||||
%30 = OpLoad %bool %ok
|
||||
OpSelectionMerge %32 None
|
||||
@ -194,8 +186,6 @@ OpBranchConditional %30 %31 %32
|
||||
%42 = OpCompositeConstruct %v2float %38 %39
|
||||
%43 = OpCompositeConstruct %v2float %40 %41
|
||||
%44 = OpCompositeConstruct %mat2v2float %42 %43
|
||||
%49 = OpCompositeConstruct %v2float %float_n1_25 %float_0
|
||||
%50 = OpCompositeConstruct %v2float %float_0_75 %float_2_25
|
||||
%51 = OpCompositeConstruct %mat2v2float %49 %50
|
||||
%53 = OpCompositeExtract %v2float %44 0
|
||||
%54 = OpCompositeExtract %v2float %51 0
|
||||
@ -223,246 +213,232 @@ OpBranchConditional %63 %64 %65
|
||||
%72 = OpCompositeConstruct %v2float %68 %69
|
||||
%73 = OpCompositeConstruct %v2float %70 %71
|
||||
%74 = OpCompositeConstruct %mat2v2float %72 %73
|
||||
%75 = OpCompositeConstruct %v2float %float_n1_25 %float_0
|
||||
%76 = OpCompositeConstruct %v2float %float_0_75 %float_2_25
|
||||
%77 = OpCompositeConstruct %mat2v2float %75 %76
|
||||
%78 = OpCompositeExtract %v2float %74 0
|
||||
%79 = OpCompositeExtract %v2float %77 0
|
||||
%80 = OpFOrdEqual %v2bool %78 %79
|
||||
%81 = OpAll %bool %80
|
||||
%82 = OpCompositeExtract %v2float %74 1
|
||||
%83 = OpCompositeExtract %v2float %77 1
|
||||
%84 = OpFOrdEqual %v2bool %82 %83
|
||||
%85 = OpAll %bool %84
|
||||
%86 = OpLogicalAnd %bool %81 %85
|
||||
%75 = OpCompositeConstruct %mat2v2float %49 %50
|
||||
%76 = OpCompositeExtract %v2float %74 0
|
||||
%77 = OpCompositeExtract %v2float %75 0
|
||||
%78 = OpFOrdEqual %v2bool %76 %77
|
||||
%79 = OpAll %bool %78
|
||||
%80 = OpCompositeExtract %v2float %74 1
|
||||
%81 = OpCompositeExtract %v2float %75 1
|
||||
%82 = OpFOrdEqual %v2bool %80 %81
|
||||
%83 = OpAll %bool %82
|
||||
%84 = OpLogicalAnd %bool %79 %83
|
||||
OpBranch %65
|
||||
%65 = OpLabel
|
||||
%87 = OpPhi %bool %false %32 %86 %64
|
||||
OpStore %ok %87
|
||||
%88 = OpLoad %bool %ok
|
||||
OpSelectionMerge %90 None
|
||||
OpBranchConditional %88 %89 %90
|
||||
%89 = OpLabel
|
||||
%91 = OpAccessChain %_ptr_Uniform_v4float %10 %int_0
|
||||
%93 = OpLoad %v4float %91
|
||||
%94 = OpCompositeExtract %float %93 0
|
||||
%95 = OpCompositeExtract %float %93 1
|
||||
%96 = OpCompositeExtract %float %93 2
|
||||
%97 = OpCompositeExtract %float %93 3
|
||||
%98 = OpCompositeConstruct %v2float %94 %95
|
||||
%99 = OpCompositeConstruct %v2float %96 %97
|
||||
%100 = OpCompositeConstruct %mat2v2float %98 %99
|
||||
%102 = OpCompositeConstruct %v2float %float_0 %float_1
|
||||
%103 = OpCompositeConstruct %v2float %float_0 %float_1
|
||||
%104 = OpCompositeConstruct %mat2v2float %102 %103
|
||||
%105 = OpCompositeExtract %v2float %100 0
|
||||
%106 = OpCompositeExtract %v2float %104 0
|
||||
%107 = OpFOrdEqual %v2bool %105 %106
|
||||
%108 = OpAll %bool %107
|
||||
%109 = OpCompositeExtract %v2float %100 1
|
||||
%110 = OpCompositeExtract %v2float %104 1
|
||||
%111 = OpFOrdEqual %v2bool %109 %110
|
||||
%112 = OpAll %bool %111
|
||||
%113 = OpLogicalAnd %bool %108 %112
|
||||
OpBranch %90
|
||||
%90 = OpLabel
|
||||
%114 = OpPhi %bool %false %65 %113 %89
|
||||
OpStore %ok %114
|
||||
%115 = OpLoad %bool %ok
|
||||
OpSelectionMerge %117 None
|
||||
OpBranchConditional %115 %116 %117
|
||||
%116 = OpLabel
|
||||
%118 = OpAccessChain %_ptr_Uniform_v4float %10 %int_0
|
||||
%119 = OpLoad %v4float %118
|
||||
%120 = OpCompositeExtract %float %119 0
|
||||
%121 = OpCompositeExtract %float %119 1
|
||||
%122 = OpCompositeExtract %float %119 2
|
||||
%123 = OpCompositeExtract %float %119 3
|
||||
%124 = OpCompositeConstruct %v2float %120 %121
|
||||
%125 = OpCompositeConstruct %v2float %122 %123
|
||||
%126 = OpCompositeConstruct %mat2v2float %124 %125
|
||||
%127 = OpCompositeConstruct %v2float %float_0 %float_1
|
||||
%128 = OpCompositeConstruct %v2float %float_0 %float_1
|
||||
%129 = OpCompositeConstruct %mat2v2float %127 %128
|
||||
%130 = OpCompositeExtract %v2float %126 0
|
||||
%131 = OpCompositeExtract %v2float %129 0
|
||||
%132 = OpFOrdEqual %v2bool %130 %131
|
||||
%133 = OpAll %bool %132
|
||||
%134 = OpCompositeExtract %v2float %126 1
|
||||
%135 = OpCompositeExtract %v2float %129 1
|
||||
%136 = OpFOrdEqual %v2bool %134 %135
|
||||
%137 = OpAll %bool %136
|
||||
%138 = OpLogicalAnd %bool %133 %137
|
||||
OpBranch %117
|
||||
%117 = OpLabel
|
||||
%139 = OpPhi %bool %false %90 %138 %116
|
||||
OpStore %ok %139
|
||||
%140 = OpLoad %bool %ok
|
||||
OpSelectionMerge %142 None
|
||||
OpBranchConditional %140 %141 %142
|
||||
%141 = OpLabel
|
||||
%143 = OpAccessChain %_ptr_Uniform_v4float %10 %int_0
|
||||
%144 = OpLoad %v4float %143
|
||||
%145 = OpCompositeExtract %float %144 0
|
||||
%146 = OpConvertFToS %int %145
|
||||
%147 = OpCompositeExtract %float %144 1
|
||||
%148 = OpConvertFToS %int %147
|
||||
%149 = OpCompositeExtract %float %144 2
|
||||
%150 = OpConvertFToS %int %149
|
||||
%151 = OpCompositeExtract %float %144 3
|
||||
%152 = OpConvertFToS %int %151
|
||||
%153 = OpCompositeConstruct %v4int %146 %148 %150 %152
|
||||
%155 = OpCompositeExtract %int %153 0
|
||||
%156 = OpConvertSToF %float %155
|
||||
%157 = OpCompositeExtract %int %153 1
|
||||
%158 = OpConvertSToF %float %157
|
||||
%159 = OpCompositeExtract %int %153 2
|
||||
%160 = OpConvertSToF %float %159
|
||||
%161 = OpCompositeExtract %int %153 3
|
||||
%162 = OpConvertSToF %float %161
|
||||
%163 = OpCompositeConstruct %v4float %156 %158 %160 %162
|
||||
%164 = OpCompositeExtract %float %163 0
|
||||
%165 = OpCompositeExtract %float %163 1
|
||||
%166 = OpCompositeExtract %float %163 2
|
||||
%167 = OpCompositeExtract %float %163 3
|
||||
%168 = OpCompositeConstruct %v2float %164 %165
|
||||
%169 = OpCompositeConstruct %v2float %166 %167
|
||||
%170 = OpCompositeConstruct %mat2v2float %168 %169
|
||||
%171 = OpCompositeConstruct %v2float %float_0 %float_1
|
||||
%172 = OpCompositeConstruct %v2float %float_0 %float_1
|
||||
%173 = OpCompositeConstruct %mat2v2float %171 %172
|
||||
%174 = OpCompositeExtract %v2float %170 0
|
||||
%175 = OpCompositeExtract %v2float %173 0
|
||||
%176 = OpFOrdEqual %v2bool %174 %175
|
||||
%177 = OpAll %bool %176
|
||||
%178 = OpCompositeExtract %v2float %170 1
|
||||
%179 = OpCompositeExtract %v2float %173 1
|
||||
%180 = OpFOrdEqual %v2bool %178 %179
|
||||
%181 = OpAll %bool %180
|
||||
%182 = OpLogicalAnd %bool %177 %181
|
||||
OpBranch %142
|
||||
%142 = OpLabel
|
||||
%183 = OpPhi %bool %false %117 %182 %141
|
||||
OpStore %ok %183
|
||||
%184 = OpLoad %bool %ok
|
||||
OpSelectionMerge %186 None
|
||||
OpBranchConditional %184 %185 %186
|
||||
%185 = OpLabel
|
||||
%187 = OpAccessChain %_ptr_Uniform_v4float %10 %int_0
|
||||
%188 = OpLoad %v4float %187
|
||||
%189 = OpCompositeExtract %float %188 0
|
||||
%190 = OpCompositeExtract %float %188 1
|
||||
%191 = OpCompositeExtract %float %188 2
|
||||
%192 = OpCompositeExtract %float %188 3
|
||||
%193 = OpCompositeConstruct %v2float %189 %190
|
||||
%194 = OpCompositeConstruct %v2float %191 %192
|
||||
%195 = OpCompositeConstruct %mat2v2float %193 %194
|
||||
%196 = OpCompositeConstruct %v2float %float_0 %float_1
|
||||
%197 = OpCompositeConstruct %v2float %float_0 %float_1
|
||||
%198 = OpCompositeConstruct %mat2v2float %196 %197
|
||||
%199 = OpCompositeExtract %v2float %195 0
|
||||
%200 = OpCompositeExtract %v2float %198 0
|
||||
%201 = OpFOrdEqual %v2bool %199 %200
|
||||
%202 = OpAll %bool %201
|
||||
%203 = OpCompositeExtract %v2float %195 1
|
||||
%204 = OpCompositeExtract %v2float %198 1
|
||||
%205 = OpFOrdEqual %v2bool %203 %204
|
||||
%206 = OpAll %bool %205
|
||||
%207 = OpLogicalAnd %bool %202 %206
|
||||
OpBranch %186
|
||||
%186 = OpLabel
|
||||
%208 = OpPhi %bool %false %142 %207 %185
|
||||
OpStore %ok %208
|
||||
%209 = OpLoad %bool %ok
|
||||
OpSelectionMerge %211 None
|
||||
OpBranchConditional %209 %210 %211
|
||||
%210 = OpLabel
|
||||
%212 = OpAccessChain %_ptr_Uniform_v4float %10 %int_0
|
||||
%213 = OpLoad %v4float %212
|
||||
%214 = OpCompositeExtract %float %213 0
|
||||
%215 = OpCompositeExtract %float %213 1
|
||||
%216 = OpCompositeExtract %float %213 2
|
||||
%217 = OpCompositeExtract %float %213 3
|
||||
%218 = OpCompositeConstruct %v2float %214 %215
|
||||
%219 = OpCompositeConstruct %v2float %216 %217
|
||||
%220 = OpCompositeConstruct %mat2v2float %218 %219
|
||||
%221 = OpCompositeConstruct %v2float %float_0 %float_1
|
||||
%222 = OpCompositeConstruct %v2float %float_0 %float_1
|
||||
%223 = OpCompositeConstruct %mat2v2float %221 %222
|
||||
%224 = OpCompositeExtract %v2float %220 0
|
||||
%225 = OpCompositeExtract %v2float %223 0
|
||||
%226 = OpFOrdEqual %v2bool %224 %225
|
||||
%227 = OpAll %bool %226
|
||||
%228 = OpCompositeExtract %v2float %220 1
|
||||
%229 = OpCompositeExtract %v2float %223 1
|
||||
%230 = OpFOrdEqual %v2bool %228 %229
|
||||
%231 = OpAll %bool %230
|
||||
%232 = OpLogicalAnd %bool %227 %231
|
||||
OpBranch %211
|
||||
%211 = OpLabel
|
||||
%233 = OpPhi %bool %false %186 %232 %210
|
||||
OpStore %ok %233
|
||||
%234 = OpLoad %bool %ok
|
||||
OpSelectionMerge %236 None
|
||||
OpBranchConditional %234 %235 %236
|
||||
%235 = OpLabel
|
||||
%237 = OpAccessChain %_ptr_Uniform_v4float %10 %int_0
|
||||
%238 = OpLoad %v4float %237
|
||||
%239 = OpCompositeExtract %float %238 0
|
||||
%240 = OpFUnordNotEqual %bool %239 %float_0
|
||||
%241 = OpCompositeExtract %float %238 1
|
||||
%242 = OpFUnordNotEqual %bool %241 %float_0
|
||||
%243 = OpCompositeExtract %float %238 2
|
||||
%244 = OpFUnordNotEqual %bool %243 %float_0
|
||||
%245 = OpCompositeExtract %float %238 3
|
||||
%246 = OpFUnordNotEqual %bool %245 %float_0
|
||||
%247 = OpCompositeConstruct %v4bool %240 %242 %244 %246
|
||||
%249 = OpCompositeExtract %bool %247 0
|
||||
%250 = OpSelect %float %249 %float_1 %float_0
|
||||
%251 = OpCompositeExtract %bool %247 1
|
||||
%252 = OpSelect %float %251 %float_1 %float_0
|
||||
%253 = OpCompositeExtract %bool %247 2
|
||||
%254 = OpSelect %float %253 %float_1 %float_0
|
||||
%255 = OpCompositeExtract %bool %247 3
|
||||
%256 = OpSelect %float %255 %float_1 %float_0
|
||||
%257 = OpCompositeConstruct %v4float %250 %252 %254 %256
|
||||
%258 = OpCompositeExtract %float %257 0
|
||||
%259 = OpCompositeExtract %float %257 1
|
||||
%260 = OpCompositeExtract %float %257 2
|
||||
%261 = OpCompositeExtract %float %257 3
|
||||
%262 = OpCompositeConstruct %v2float %258 %259
|
||||
%263 = OpCompositeConstruct %v2float %260 %261
|
||||
%264 = OpCompositeConstruct %mat2v2float %262 %263
|
||||
%265 = OpCompositeConstruct %v2float %float_0 %float_1
|
||||
%266 = OpCompositeConstruct %v2float %float_0 %float_1
|
||||
%267 = OpCompositeConstruct %mat2v2float %265 %266
|
||||
%268 = OpCompositeExtract %v2float %264 0
|
||||
%269 = OpCompositeExtract %v2float %267 0
|
||||
%270 = OpFOrdEqual %v2bool %268 %269
|
||||
%271 = OpAll %bool %270
|
||||
%272 = OpCompositeExtract %v2float %264 1
|
||||
%273 = OpCompositeExtract %v2float %267 1
|
||||
%274 = OpFOrdEqual %v2bool %272 %273
|
||||
%275 = OpAll %bool %274
|
||||
%276 = OpLogicalAnd %bool %271 %275
|
||||
OpBranch %236
|
||||
%236 = OpLabel
|
||||
%277 = OpPhi %bool %false %211 %276 %235
|
||||
OpStore %ok %277
|
||||
%278 = OpLoad %bool %ok
|
||||
OpSelectionMerge %283 None
|
||||
OpBranchConditional %278 %281 %282
|
||||
%281 = OpLabel
|
||||
%284 = OpAccessChain %_ptr_Uniform_v4float %10 %int_0
|
||||
%285 = OpLoad %v4float %284
|
||||
OpStore %279 %285
|
||||
OpBranch %283
|
||||
%282 = OpLabel
|
||||
%286 = OpAccessChain %_ptr_Uniform_v4float %10 %int_1
|
||||
%288 = OpLoad %v4float %286
|
||||
OpStore %279 %288
|
||||
OpBranch %283
|
||||
%283 = OpLabel
|
||||
%289 = OpLoad %v4float %279
|
||||
OpReturnValue %289
|
||||
%85 = OpPhi %bool %false %32 %84 %64
|
||||
OpStore %ok %85
|
||||
%86 = OpLoad %bool %ok
|
||||
OpSelectionMerge %88 None
|
||||
OpBranchConditional %86 %87 %88
|
||||
%87 = OpLabel
|
||||
%89 = OpAccessChain %_ptr_Uniform_v4float %10 %int_0
|
||||
%91 = OpLoad %v4float %89
|
||||
%92 = OpCompositeExtract %float %91 0
|
||||
%93 = OpCompositeExtract %float %91 1
|
||||
%94 = OpCompositeExtract %float %91 2
|
||||
%95 = OpCompositeExtract %float %91 3
|
||||
%96 = OpCompositeConstruct %v2float %92 %93
|
||||
%97 = OpCompositeConstruct %v2float %94 %95
|
||||
%98 = OpCompositeConstruct %mat2v2float %96 %97
|
||||
%101 = OpCompositeConstruct %mat2v2float %100 %100
|
||||
%102 = OpCompositeExtract %v2float %98 0
|
||||
%103 = OpCompositeExtract %v2float %101 0
|
||||
%104 = OpFOrdEqual %v2bool %102 %103
|
||||
%105 = OpAll %bool %104
|
||||
%106 = OpCompositeExtract %v2float %98 1
|
||||
%107 = OpCompositeExtract %v2float %101 1
|
||||
%108 = OpFOrdEqual %v2bool %106 %107
|
||||
%109 = OpAll %bool %108
|
||||
%110 = OpLogicalAnd %bool %105 %109
|
||||
OpBranch %88
|
||||
%88 = OpLabel
|
||||
%111 = OpPhi %bool %false %65 %110 %87
|
||||
OpStore %ok %111
|
||||
%112 = OpLoad %bool %ok
|
||||
OpSelectionMerge %114 None
|
||||
OpBranchConditional %112 %113 %114
|
||||
%113 = OpLabel
|
||||
%115 = OpAccessChain %_ptr_Uniform_v4float %10 %int_0
|
||||
%116 = OpLoad %v4float %115
|
||||
%117 = OpCompositeExtract %float %116 0
|
||||
%118 = OpCompositeExtract %float %116 1
|
||||
%119 = OpCompositeExtract %float %116 2
|
||||
%120 = OpCompositeExtract %float %116 3
|
||||
%121 = OpCompositeConstruct %v2float %117 %118
|
||||
%122 = OpCompositeConstruct %v2float %119 %120
|
||||
%123 = OpCompositeConstruct %mat2v2float %121 %122
|
||||
%124 = OpCompositeConstruct %mat2v2float %100 %100
|
||||
%125 = OpCompositeExtract %v2float %123 0
|
||||
%126 = OpCompositeExtract %v2float %124 0
|
||||
%127 = OpFOrdEqual %v2bool %125 %126
|
||||
%128 = OpAll %bool %127
|
||||
%129 = OpCompositeExtract %v2float %123 1
|
||||
%130 = OpCompositeExtract %v2float %124 1
|
||||
%131 = OpFOrdEqual %v2bool %129 %130
|
||||
%132 = OpAll %bool %131
|
||||
%133 = OpLogicalAnd %bool %128 %132
|
||||
OpBranch %114
|
||||
%114 = OpLabel
|
||||
%134 = OpPhi %bool %false %88 %133 %113
|
||||
OpStore %ok %134
|
||||
%135 = OpLoad %bool %ok
|
||||
OpSelectionMerge %137 None
|
||||
OpBranchConditional %135 %136 %137
|
||||
%136 = OpLabel
|
||||
%138 = OpAccessChain %_ptr_Uniform_v4float %10 %int_0
|
||||
%139 = OpLoad %v4float %138
|
||||
%140 = OpCompositeExtract %float %139 0
|
||||
%141 = OpConvertFToS %int %140
|
||||
%142 = OpCompositeExtract %float %139 1
|
||||
%143 = OpConvertFToS %int %142
|
||||
%144 = OpCompositeExtract %float %139 2
|
||||
%145 = OpConvertFToS %int %144
|
||||
%146 = OpCompositeExtract %float %139 3
|
||||
%147 = OpConvertFToS %int %146
|
||||
%148 = OpCompositeConstruct %v4int %141 %143 %145 %147
|
||||
%150 = OpCompositeExtract %int %148 0
|
||||
%151 = OpConvertSToF %float %150
|
||||
%152 = OpCompositeExtract %int %148 1
|
||||
%153 = OpConvertSToF %float %152
|
||||
%154 = OpCompositeExtract %int %148 2
|
||||
%155 = OpConvertSToF %float %154
|
||||
%156 = OpCompositeExtract %int %148 3
|
||||
%157 = OpConvertSToF %float %156
|
||||
%158 = OpCompositeConstruct %v4float %151 %153 %155 %157
|
||||
%159 = OpCompositeExtract %float %158 0
|
||||
%160 = OpCompositeExtract %float %158 1
|
||||
%161 = OpCompositeExtract %float %158 2
|
||||
%162 = OpCompositeExtract %float %158 3
|
||||
%163 = OpCompositeConstruct %v2float %159 %160
|
||||
%164 = OpCompositeConstruct %v2float %161 %162
|
||||
%165 = OpCompositeConstruct %mat2v2float %163 %164
|
||||
%166 = OpCompositeConstruct %mat2v2float %100 %100
|
||||
%167 = OpCompositeExtract %v2float %165 0
|
||||
%168 = OpCompositeExtract %v2float %166 0
|
||||
%169 = OpFOrdEqual %v2bool %167 %168
|
||||
%170 = OpAll %bool %169
|
||||
%171 = OpCompositeExtract %v2float %165 1
|
||||
%172 = OpCompositeExtract %v2float %166 1
|
||||
%173 = OpFOrdEqual %v2bool %171 %172
|
||||
%174 = OpAll %bool %173
|
||||
%175 = OpLogicalAnd %bool %170 %174
|
||||
OpBranch %137
|
||||
%137 = OpLabel
|
||||
%176 = OpPhi %bool %false %114 %175 %136
|
||||
OpStore %ok %176
|
||||
%177 = OpLoad %bool %ok
|
||||
OpSelectionMerge %179 None
|
||||
OpBranchConditional %177 %178 %179
|
||||
%178 = OpLabel
|
||||
%180 = OpAccessChain %_ptr_Uniform_v4float %10 %int_0
|
||||
%181 = OpLoad %v4float %180
|
||||
%182 = OpCompositeExtract %float %181 0
|
||||
%183 = OpCompositeExtract %float %181 1
|
||||
%184 = OpCompositeExtract %float %181 2
|
||||
%185 = OpCompositeExtract %float %181 3
|
||||
%186 = OpCompositeConstruct %v2float %182 %183
|
||||
%187 = OpCompositeConstruct %v2float %184 %185
|
||||
%188 = OpCompositeConstruct %mat2v2float %186 %187
|
||||
%189 = OpCompositeConstruct %mat2v2float %100 %100
|
||||
%190 = OpCompositeExtract %v2float %188 0
|
||||
%191 = OpCompositeExtract %v2float %189 0
|
||||
%192 = OpFOrdEqual %v2bool %190 %191
|
||||
%193 = OpAll %bool %192
|
||||
%194 = OpCompositeExtract %v2float %188 1
|
||||
%195 = OpCompositeExtract %v2float %189 1
|
||||
%196 = OpFOrdEqual %v2bool %194 %195
|
||||
%197 = OpAll %bool %196
|
||||
%198 = OpLogicalAnd %bool %193 %197
|
||||
OpBranch %179
|
||||
%179 = OpLabel
|
||||
%199 = OpPhi %bool %false %137 %198 %178
|
||||
OpStore %ok %199
|
||||
%200 = OpLoad %bool %ok
|
||||
OpSelectionMerge %202 None
|
||||
OpBranchConditional %200 %201 %202
|
||||
%201 = OpLabel
|
||||
%203 = OpAccessChain %_ptr_Uniform_v4float %10 %int_0
|
||||
%204 = OpLoad %v4float %203
|
||||
%205 = OpCompositeExtract %float %204 0
|
||||
%206 = OpCompositeExtract %float %204 1
|
||||
%207 = OpCompositeExtract %float %204 2
|
||||
%208 = OpCompositeExtract %float %204 3
|
||||
%209 = OpCompositeConstruct %v2float %205 %206
|
||||
%210 = OpCompositeConstruct %v2float %207 %208
|
||||
%211 = OpCompositeConstruct %mat2v2float %209 %210
|
||||
%212 = OpCompositeConstruct %mat2v2float %100 %100
|
||||
%213 = OpCompositeExtract %v2float %211 0
|
||||
%214 = OpCompositeExtract %v2float %212 0
|
||||
%215 = OpFOrdEqual %v2bool %213 %214
|
||||
%216 = OpAll %bool %215
|
||||
%217 = OpCompositeExtract %v2float %211 1
|
||||
%218 = OpCompositeExtract %v2float %212 1
|
||||
%219 = OpFOrdEqual %v2bool %217 %218
|
||||
%220 = OpAll %bool %219
|
||||
%221 = OpLogicalAnd %bool %216 %220
|
||||
OpBranch %202
|
||||
%202 = OpLabel
|
||||
%222 = OpPhi %bool %false %179 %221 %201
|
||||
OpStore %ok %222
|
||||
%223 = OpLoad %bool %ok
|
||||
OpSelectionMerge %225 None
|
||||
OpBranchConditional %223 %224 %225
|
||||
%224 = OpLabel
|
||||
%226 = OpAccessChain %_ptr_Uniform_v4float %10 %int_0
|
||||
%227 = OpLoad %v4float %226
|
||||
%228 = OpCompositeExtract %float %227 0
|
||||
%229 = OpFUnordNotEqual %bool %228 %float_0
|
||||
%230 = OpCompositeExtract %float %227 1
|
||||
%231 = OpFUnordNotEqual %bool %230 %float_0
|
||||
%232 = OpCompositeExtract %float %227 2
|
||||
%233 = OpFUnordNotEqual %bool %232 %float_0
|
||||
%234 = OpCompositeExtract %float %227 3
|
||||
%235 = OpFUnordNotEqual %bool %234 %float_0
|
||||
%236 = OpCompositeConstruct %v4bool %229 %231 %233 %235
|
||||
%238 = OpCompositeExtract %bool %236 0
|
||||
%239 = OpSelect %float %238 %float_1 %float_0
|
||||
%240 = OpCompositeExtract %bool %236 1
|
||||
%241 = OpSelect %float %240 %float_1 %float_0
|
||||
%242 = OpCompositeExtract %bool %236 2
|
||||
%243 = OpSelect %float %242 %float_1 %float_0
|
||||
%244 = OpCompositeExtract %bool %236 3
|
||||
%245 = OpSelect %float %244 %float_1 %float_0
|
||||
%246 = OpCompositeConstruct %v4float %239 %241 %243 %245
|
||||
%247 = OpCompositeExtract %float %246 0
|
||||
%248 = OpCompositeExtract %float %246 1
|
||||
%249 = OpCompositeExtract %float %246 2
|
||||
%250 = OpCompositeExtract %float %246 3
|
||||
%251 = OpCompositeConstruct %v2float %247 %248
|
||||
%252 = OpCompositeConstruct %v2float %249 %250
|
||||
%253 = OpCompositeConstruct %mat2v2float %251 %252
|
||||
%254 = OpCompositeConstruct %mat2v2float %100 %100
|
||||
%255 = OpCompositeExtract %v2float %253 0
|
||||
%256 = OpCompositeExtract %v2float %254 0
|
||||
%257 = OpFOrdEqual %v2bool %255 %256
|
||||
%258 = OpAll %bool %257
|
||||
%259 = OpCompositeExtract %v2float %253 1
|
||||
%260 = OpCompositeExtract %v2float %254 1
|
||||
%261 = OpFOrdEqual %v2bool %259 %260
|
||||
%262 = OpAll %bool %261
|
||||
%263 = OpLogicalAnd %bool %258 %262
|
||||
OpBranch %225
|
||||
%225 = OpLabel
|
||||
%264 = OpPhi %bool %false %202 %263 %224
|
||||
OpStore %ok %264
|
||||
%265 = OpLoad %bool %ok
|
||||
OpSelectionMerge %270 None
|
||||
OpBranchConditional %265 %268 %269
|
||||
%268 = OpLabel
|
||||
%271 = OpAccessChain %_ptr_Uniform_v4float %10 %int_0
|
||||
%272 = OpLoad %v4float %271
|
||||
OpStore %266 %272
|
||||
OpBranch %270
|
||||
%269 = OpLabel
|
||||
%273 = OpAccessChain %_ptr_Uniform_v4float %10 %int_1
|
||||
%275 = OpLoad %v4float %273
|
||||
OpStore %266 %275
|
||||
OpBranch %270
|
||||
%270 = OpLabel
|
||||
%276 = OpLoad %v4float %266
|
||||
OpReturnValue %276
|
||||
OpFunctionEnd
|
||||
|
Loading…
Reference in New Issue
Block a user