Avoid emitting duplicate constant values in SPIR-V.
Previously, we had constant-value deduplication, based on the SkSL type of the constant. However, we were still generating redundant constants, because we would emit a separate constant for Float(n) and Half(n), or Int(n) and Short(n), even though we generate the exact same instruction for these constants. We now deduplicate based on the type's number-kind, separating constant literals into three categories: floats, signed ints, and unsigned ints. This better matches our type-handling in getActualType. Change-Id: I5777d4b3d567839b7aa72dc8de76908c18fc387e Reviewed-on: https://skia-review.googlesource.com/c/skia/+/350031 Reviewed-by: Ethan Nicholas <ethannicholas@google.com> Commit-Queue: Ethan Nicholas <ethannicholas@google.com> Auto-Submit: John Stiles <johnstiles@google.com>
This commit is contained in:
parent
83a60d9ac4
commit
acb091f71d
@ -2592,53 +2592,31 @@ SpvId SPIRVCodeGenerator::writeBoolLiteral(const BoolLiteral& b) {
|
||||
}
|
||||
|
||||
SpvId SPIRVCodeGenerator::writeIntLiteral(const IntLiteral& i) {
|
||||
const Type& type = i.type();
|
||||
ConstantType constantType;
|
||||
if (type == *fContext.fInt_Type || type.typeKind() == Type::TypeKind::kEnum) {
|
||||
constantType = ConstantType::kInt;
|
||||
} else if (type == *fContext.fUInt_Type) {
|
||||
constantType = ConstantType::kUInt;
|
||||
} else if (type == *fContext.fShort_Type || type == *fContext.fByte_Type) {
|
||||
constantType = ConstantType::kShort;
|
||||
} else if (type == *fContext.fUShort_Type || type == *fContext.fUByte_Type) {
|
||||
constantType = ConstantType::kUShort;
|
||||
} else {
|
||||
SkASSERT(false);
|
||||
}
|
||||
std::pair<ConstantValue, ConstantType> key(i.value(), constantType);
|
||||
auto entry = fNumberConstants.find(key);
|
||||
if (entry == fNumberConstants.end()) {
|
||||
ConstantValuePair key(i.value(), i.type().numberKind());
|
||||
auto [iter, newlyCreated] = fNumberConstants.insert({key, (SpvId)-1});
|
||||
if (newlyCreated) {
|
||||
SpvId result = this->nextId();
|
||||
this->writeInstruction(SpvOpConstant, this->getType(type), result, (SpvId) i.value(),
|
||||
this->writeInstruction(SpvOpConstant, this->getType(i.type()), result, (SpvId) i.value(),
|
||||
fConstantBuffer);
|
||||
fNumberConstants[key] = result;
|
||||
return result;
|
||||
iter->second = result;
|
||||
}
|
||||
return entry->second;
|
||||
return iter->second;
|
||||
}
|
||||
|
||||
SpvId SPIRVCodeGenerator::writeFloatLiteral(const FloatLiteral& f) {
|
||||
const Type& type = f.type();
|
||||
ConstantType constantType;
|
||||
if (type == *fContext.fHalf_Type) {
|
||||
constantType = ConstantType::kHalf;
|
||||
} else {
|
||||
constantType = ConstantType::kFloat;
|
||||
}
|
||||
float value = (float) f.value();
|
||||
std::pair<ConstantValue, ConstantType> key(f.value(), constantType);
|
||||
auto entry = fNumberConstants.find(key);
|
||||
if (entry == fNumberConstants.end()) {
|
||||
ConstantValuePair key(f.value(), f.type().numberKind());
|
||||
auto [iter, newlyCreated] = fNumberConstants.insert({key, (SpvId)-1});
|
||||
if (newlyCreated) {
|
||||
SpvId result = this->nextId();
|
||||
uint32_t bits;
|
||||
SkASSERT(sizeof(bits) == sizeof(value));
|
||||
memcpy(&bits, &value, sizeof(bits));
|
||||
this->writeInstruction(SpvOpConstant, this->getType(type), result, bits,
|
||||
float value = f.value();
|
||||
uint32_t valueBits;
|
||||
static_assert(sizeof(valueBits) == sizeof(value));
|
||||
memcpy(&valueBits, &value, sizeof(valueBits));
|
||||
this->writeInstruction(SpvOpConstant, this->getType(f.type()), result, valueBits,
|
||||
fConstantBuffer);
|
||||
fNumberConstants[key] = result;
|
||||
return result;
|
||||
iter->second = result;
|
||||
}
|
||||
return entry->second;
|
||||
return iter->second;
|
||||
}
|
||||
|
||||
SpvId SPIRVCodeGenerator::writeFunctionStart(const FunctionDeclaration& f, OutputStream& out) {
|
||||
|
@ -42,9 +42,9 @@
|
||||
#include "src/sksl/spirv.h"
|
||||
|
||||
union ConstantValue {
|
||||
ConstantValue(int64_t i)
|
||||
ConstantValue(SKSL_INT i)
|
||||
: fInt(i) {
|
||||
SkASSERT(sizeof(*this) == sizeof(int64_t));
|
||||
static_assert(sizeof(*this) == sizeof(SKSL_INT));
|
||||
}
|
||||
|
||||
ConstantValue(SKSL_FLOAT f) {
|
||||
@ -56,25 +56,17 @@ union ConstantValue {
|
||||
return fInt == other.fInt;
|
||||
}
|
||||
|
||||
int64_t fInt;
|
||||
SKSL_INT fInt;
|
||||
SKSL_FLOAT fFloat;
|
||||
};
|
||||
|
||||
enum class ConstantType {
|
||||
kInt,
|
||||
kUInt,
|
||||
kShort,
|
||||
kUShort,
|
||||
kFloat,
|
||||
kDouble,
|
||||
kHalf,
|
||||
};
|
||||
using ConstantValuePair = std::pair<ConstantValue, SkSL::Type::NumberKind>;
|
||||
|
||||
namespace std {
|
||||
|
||||
template <>
|
||||
struct hash<std::pair<ConstantValue, ConstantType>> {
|
||||
size_t operator()(const std::pair<ConstantValue, ConstantType>& key) const {
|
||||
struct hash<ConstantValuePair> {
|
||||
size_t operator()(const ConstantValuePair& key) const {
|
||||
return key.first.fInt ^ (int) key.second;
|
||||
}
|
||||
};
|
||||
@ -390,7 +382,7 @@ private:
|
||||
|
||||
SpvId fBoolTrue;
|
||||
SpvId fBoolFalse;
|
||||
std::unordered_map<std::pair<ConstantValue, ConstantType>, SpvId> fNumberConstants;
|
||||
std::unordered_map<ConstantValuePair, SpvId> fNumberConstants;
|
||||
bool fSetupFragPosition;
|
||||
// label of the current block, or 0 if we are not in a block
|
||||
SpvId fCurrentBlock;
|
||||
|
@ -38,12 +38,12 @@ OpMemberDecorate %S 2 Offset 96
|
||||
OpMemberDecorate %S 2 RelaxedPrecision
|
||||
OpMemberDecorate %S 3 Offset 112
|
||||
OpMemberDecorate %S 3 RelaxedPrecision
|
||||
OpDecorate %85 RelaxedPrecision
|
||||
OpDecorate %89 RelaxedPrecision
|
||||
OpDecorate %126 RelaxedPrecision
|
||||
OpDecorate %143 RelaxedPrecision
|
||||
OpDecorate %154 RelaxedPrecision
|
||||
OpDecorate %156 RelaxedPrecision
|
||||
OpDecorate %83 RelaxedPrecision
|
||||
OpDecorate %87 RelaxedPrecision
|
||||
OpDecorate %116 RelaxedPrecision
|
||||
OpDecorate %133 RelaxedPrecision
|
||||
OpDecorate %144 RelaxedPrecision
|
||||
OpDecorate %146 RelaxedPrecision
|
||||
%float = OpTypeFloat 32
|
||||
%v4float = OpTypeVector %float 4
|
||||
%_ptr_Output_v4float = OpTypePointer Output %v4float
|
||||
@ -86,9 +86,7 @@ OpDecorate %156 RelaxedPrecision
|
||||
%_ptr_Function_mat2v4float = OpTypePointer Function %mat2v4float
|
||||
%_arr_v4float_int_1 = OpTypeArray %v4float %int_1
|
||||
%_ptr_Function__arr_v4float_int_1 = OpTypePointer Function %_arr_v4float_int_1
|
||||
%float_0_0 = OpConstant %float 0
|
||||
%float_1_0 = OpConstant %float 1
|
||||
%67 = OpConstantComposite %v4float %float_1_0 %float_1_0 %float_1_0 %float_1_0
|
||||
%66 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
|
||||
%int_5 = OpConstant %int 5
|
||||
%_arr_float_int_5 = OpTypeArray %float %int_5
|
||||
%_arr_v4float_int_5 = OpTypeArray %v4float %int_5
|
||||
@ -96,24 +94,16 @@ OpDecorate %156 RelaxedPrecision
|
||||
%_ptr_Function_S = OpTypePointer Function %S
|
||||
%float_9 = OpConstant %float 9
|
||||
%v3float = OpTypeVector %float 3
|
||||
%80 = OpConstantComposite %v3float %float_9 %float_9 %float_9
|
||||
%86 = OpConstantComposite %v2float %float_5 %float_5
|
||||
%float_2_0 = OpConstant %float 2
|
||||
%93 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
|
||||
%95 = OpConstantComposite %v4float %float_2 %float_2 %float_2 %float_2
|
||||
%97 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0
|
||||
%98 = OpConstantComposite %v4int %int_1 %int_2 %int_3 %int_4
|
||||
%78 = OpConstantComposite %v3float %float_9 %float_9 %float_9
|
||||
%84 = OpConstantComposite %v2float %float_5 %float_5
|
||||
%90 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
|
||||
%92 = OpConstantComposite %v4float %float_2 %float_2 %float_2 %float_2
|
||||
%94 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0
|
||||
%95 = OpConstantComposite %v4int %int_1 %int_2 %int_3 %int_4
|
||||
%mat3v3float = OpTypeMatrix %v3float 3
|
||||
%_ptr_Function_mat3v3float = OpTypePointer Function %mat3v3float
|
||||
%float_3_0 = OpConstant %float 3
|
||||
%float_4_0 = OpConstant %float 4
|
||||
%float_5_0 = OpConstant %float 5
|
||||
%float_6_0 = OpConstant %float 6
|
||||
%float_7_0 = OpConstant %float 7
|
||||
%float_8_0 = OpConstant %float 8
|
||||
%float_9_0 = OpConstant %float 9
|
||||
%_ptr_Function_v3float = OpTypePointer Function %v3float
|
||||
%146 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0
|
||||
%136 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0
|
||||
%main = OpFunction %void None %11
|
||||
%12 = OpLabel
|
||||
%x = OpVariable %_ptr_Function_v4float Function
|
||||
@ -122,7 +112,7 @@ OpDecorate %156 RelaxedPrecision
|
||||
%ah2x4 = OpVariable %_ptr_Function__arr_mat2v4float_int_1 Function
|
||||
%af4 = OpVariable %_ptr_Function__arr_v4float_int_1 Function
|
||||
%s = OpVariable %_ptr_Function_S Function
|
||||
%108 = OpVariable %_ptr_Function_mat3v3float Function
|
||||
%105 = OpVariable %_ptr_Function_mat3v3float Function
|
||||
%16 = OpAccessChain %_ptr_Function_float %x %int_3
|
||||
OpStore %16 %float_0
|
||||
%22 = OpLoad %v4float %x
|
||||
@ -143,92 +133,92 @@ OpStore %57 %int_0
|
||||
%59 = OpLoad %int %58
|
||||
%60 = OpAccessChain %_ptr_Function_int %ai %59
|
||||
OpStore %60 %int_0
|
||||
%65 = OpAccessChain %_ptr_Function_v4float %af4 %int_0
|
||||
%66 = OpAccessChain %_ptr_Function_float %65 %int_0
|
||||
OpStore %66 %float_0_0
|
||||
%69 = OpAccessChain %_ptr_Function_v4float %af4 %int_0
|
||||
%70 = OpLoad %v4float %69
|
||||
%71 = OpVectorShuffle %v4float %70 %67 6 4 7 5
|
||||
OpStore %69 %71
|
||||
%78 = OpAccessChain %_ptr_Function_float %s %int_0
|
||||
OpStore %78 %float_0_0
|
||||
%79 = OpAccessChain %_ptr_Function_float %s %int_1 %int_1
|
||||
OpStore %79 %float_0_0
|
||||
%83 = OpAccessChain %_ptr_Function_v4float %s %int_2
|
||||
%84 = OpLoad %v4float %83
|
||||
%85 = OpVectorShuffle %v4float %84 %80 5 6 4 3
|
||||
OpStore %83 %85
|
||||
%87 = OpAccessChain %_ptr_Function_v4float %s %int_3 %int_2
|
||||
%88 = OpLoad %v4float %87
|
||||
%89 = OpVectorShuffle %v4float %88 %86 0 4 2 5
|
||||
OpStore %87 %89
|
||||
%90 = OpAccessChain %_ptr_Function_float %s %int_0
|
||||
OpStore %90 %float_1_0
|
||||
%92 = OpAccessChain %_ptr_Function_float %s %int_1 %int_0
|
||||
OpStore %92 %float_2_0
|
||||
%94 = OpAccessChain %_ptr_Function_v4float %s %int_2
|
||||
OpStore %94 %93
|
||||
%96 = OpAccessChain %_ptr_Function_v4float %s %int_3 %int_0
|
||||
OpStore %96 %95
|
||||
OpStore %sk_FragColor %97
|
||||
%99 = OpCompositeExtract %int %98 0
|
||||
%100 = OpConvertSToF %float %99
|
||||
%101 = OpCompositeExtract %int %98 1
|
||||
%102 = OpConvertSToF %float %101
|
||||
%103 = OpCompositeExtract %int %98 2
|
||||
%104 = OpConvertSToF %float %103
|
||||
%105 = OpCompositeExtract %int %98 3
|
||||
%106 = OpConvertSToF %float %105
|
||||
%107 = OpCompositeConstruct %v4float %100 %102 %104 %106
|
||||
OpStore %sk_FragColor %107
|
||||
%119 = OpCompositeConstruct %v3float %float_1_0 %float_2_0 %float_3_0
|
||||
%120 = OpCompositeConstruct %v3float %float_4_0 %float_5_0 %float_6_0
|
||||
%121 = OpCompositeConstruct %v3float %float_7_0 %float_8_0 %float_9_0
|
||||
%118 = OpCompositeConstruct %mat3v3float %119 %120 %121
|
||||
OpStore %108 %118
|
||||
%122 = OpAccessChain %_ptr_Function_v3float %108 %int_0
|
||||
%124 = OpLoad %v3float %122
|
||||
%125 = OpVectorShuffle %v4float %124 %124 0 0 1 2
|
||||
OpStore %sk_FragColor %125
|
||||
%126 = OpLoad %v4float %x
|
||||
OpStore %sk_FragColor %126
|
||||
%128 = OpAccessChain %_ptr_Function_int %ai %int_0
|
||||
%129 = OpLoad %int %128
|
||||
%127 = OpConvertSToF %float %129
|
||||
%130 = OpCompositeConstruct %v4float %127 %127 %127 %127
|
||||
OpStore %sk_FragColor %130
|
||||
%131 = OpAccessChain %_ptr_Function_v4int %ai4 %int_0
|
||||
%132 = OpLoad %v4int %131
|
||||
%133 = OpCompositeExtract %int %132 0
|
||||
%134 = OpConvertSToF %float %133
|
||||
%135 = OpCompositeExtract %int %132 1
|
||||
%136 = OpConvertSToF %float %135
|
||||
%137 = OpCompositeExtract %int %132 2
|
||||
%138 = OpConvertSToF %float %137
|
||||
%139 = OpCompositeExtract %int %132 3
|
||||
%140 = OpConvertSToF %float %139
|
||||
%141 = OpCompositeConstruct %v4float %134 %136 %138 %140
|
||||
OpStore %sk_FragColor %141
|
||||
%142 = OpAccessChain %_ptr_Function_v4float %ah2x4 %int_0 %int_0
|
||||
%143 = OpLoad %v4float %142
|
||||
OpStore %sk_FragColor %143
|
||||
%144 = OpAccessChain %_ptr_Function_v4float %af4 %int_0
|
||||
%145 = OpLoad %v4float %144
|
||||
OpStore %sk_FragColor %145
|
||||
%64 = OpAccessChain %_ptr_Function_v4float %af4 %int_0
|
||||
%65 = OpAccessChain %_ptr_Function_float %64 %int_0
|
||||
OpStore %65 %float_0
|
||||
%67 = OpAccessChain %_ptr_Function_v4float %af4 %int_0
|
||||
%68 = OpLoad %v4float %67
|
||||
%69 = OpVectorShuffle %v4float %68 %66 6 4 7 5
|
||||
OpStore %67 %69
|
||||
%76 = OpAccessChain %_ptr_Function_float %s %int_0
|
||||
OpStore %76 %float_0
|
||||
%77 = OpAccessChain %_ptr_Function_float %s %int_1 %int_1
|
||||
OpStore %77 %float_0
|
||||
%81 = OpAccessChain %_ptr_Function_v4float %s %int_2
|
||||
%82 = OpLoad %v4float %81
|
||||
%83 = OpVectorShuffle %v4float %82 %78 5 6 4 3
|
||||
OpStore %81 %83
|
||||
%85 = OpAccessChain %_ptr_Function_v4float %s %int_3 %int_2
|
||||
%86 = OpLoad %v4float %85
|
||||
%87 = OpVectorShuffle %v4float %86 %84 0 4 2 5
|
||||
OpStore %85 %87
|
||||
%88 = OpAccessChain %_ptr_Function_float %s %int_0
|
||||
OpStore %88 %float_1
|
||||
%89 = OpAccessChain %_ptr_Function_float %s %int_1 %int_0
|
||||
OpStore %89 %float_2
|
||||
%91 = OpAccessChain %_ptr_Function_v4float %s %int_2
|
||||
OpStore %91 %90
|
||||
%93 = OpAccessChain %_ptr_Function_v4float %s %int_3 %int_0
|
||||
OpStore %93 %92
|
||||
OpStore %sk_FragColor %94
|
||||
%96 = OpCompositeExtract %int %95 0
|
||||
%97 = OpConvertSToF %float %96
|
||||
%98 = OpCompositeExtract %int %95 1
|
||||
%99 = OpConvertSToF %float %98
|
||||
%100 = OpCompositeExtract %int %95 2
|
||||
%101 = OpConvertSToF %float %100
|
||||
%102 = OpCompositeExtract %int %95 3
|
||||
%103 = OpConvertSToF %float %102
|
||||
%104 = OpCompositeConstruct %v4float %97 %99 %101 %103
|
||||
OpStore %sk_FragColor %104
|
||||
%109 = OpCompositeConstruct %v3float %float_1 %float_2 %float_3
|
||||
%110 = OpCompositeConstruct %v3float %float_4 %float_5 %float_6
|
||||
%111 = OpCompositeConstruct %v3float %float_7 %float_8 %float_9
|
||||
%108 = OpCompositeConstruct %mat3v3float %109 %110 %111
|
||||
OpStore %105 %108
|
||||
%112 = OpAccessChain %_ptr_Function_v3float %105 %int_0
|
||||
%114 = OpLoad %v3float %112
|
||||
%115 = OpVectorShuffle %v4float %114 %114 0 0 1 2
|
||||
OpStore %sk_FragColor %115
|
||||
%116 = OpLoad %v4float %x
|
||||
OpStore %sk_FragColor %116
|
||||
%118 = OpAccessChain %_ptr_Function_int %ai %int_0
|
||||
%119 = OpLoad %int %118
|
||||
%117 = OpConvertSToF %float %119
|
||||
%120 = OpCompositeConstruct %v4float %117 %117 %117 %117
|
||||
OpStore %sk_FragColor %120
|
||||
%121 = OpAccessChain %_ptr_Function_v4int %ai4 %int_0
|
||||
%122 = OpLoad %v4int %121
|
||||
%123 = OpCompositeExtract %int %122 0
|
||||
%124 = OpConvertSToF %float %123
|
||||
%125 = OpCompositeExtract %int %122 1
|
||||
%126 = OpConvertSToF %float %125
|
||||
%127 = OpCompositeExtract %int %122 2
|
||||
%128 = OpConvertSToF %float %127
|
||||
%129 = OpCompositeExtract %int %122 3
|
||||
%130 = OpConvertSToF %float %129
|
||||
%131 = OpCompositeConstruct %v4float %124 %126 %128 %130
|
||||
OpStore %sk_FragColor %131
|
||||
%132 = OpAccessChain %_ptr_Function_v4float %ah2x4 %int_0 %int_0
|
||||
%133 = OpLoad %v4float %132
|
||||
OpStore %sk_FragColor %133
|
||||
%134 = OpAccessChain %_ptr_Function_v4float %af4 %int_0
|
||||
%135 = OpLoad %v4float %134
|
||||
OpStore %sk_FragColor %135
|
||||
OpStore %sk_FragColor %136
|
||||
%137 = OpAccessChain %_ptr_Function_float %s %int_0
|
||||
%138 = OpLoad %float %137
|
||||
%139 = OpCompositeConstruct %v4float %138 %138 %138 %138
|
||||
OpStore %sk_FragColor %139
|
||||
%140 = OpAccessChain %_ptr_Function_float %s %int_1 %int_1
|
||||
%141 = OpLoad %float %140
|
||||
%142 = OpCompositeConstruct %v4float %141 %141 %141 %141
|
||||
OpStore %sk_FragColor %142
|
||||
%143 = OpAccessChain %_ptr_Function_v4float %s %int_2
|
||||
%144 = OpLoad %v4float %143
|
||||
OpStore %sk_FragColor %144
|
||||
%145 = OpAccessChain %_ptr_Function_v4float %s %int_3 %int_0
|
||||
%146 = OpLoad %v4float %145
|
||||
OpStore %sk_FragColor %146
|
||||
%147 = OpAccessChain %_ptr_Function_float %s %int_0
|
||||
%148 = OpLoad %float %147
|
||||
%149 = OpCompositeConstruct %v4float %148 %148 %148 %148
|
||||
OpStore %sk_FragColor %149
|
||||
%150 = OpAccessChain %_ptr_Function_float %s %int_1 %int_1
|
||||
%151 = OpLoad %float %150
|
||||
%152 = OpCompositeConstruct %v4float %151 %151 %151 %151
|
||||
OpStore %sk_FragColor %152
|
||||
%153 = OpAccessChain %_ptr_Function_v4float %s %int_2
|
||||
%154 = OpLoad %v4float %153
|
||||
OpStore %sk_FragColor %154
|
||||
%155 = OpAccessChain %_ptr_Function_v4float %s %int_3 %int_0
|
||||
%156 = OpLoad %v4float %155
|
||||
OpStore %sk_FragColor %156
|
||||
OpReturn
|
||||
OpFunctionEnd
|
||||
|
@ -11,14 +11,14 @@ OpDecorate %sk_FragColor Location 0
|
||||
OpDecorate %sk_FragColor Index 0
|
||||
OpDecorate %sk_Clockwise RelaxedPrecision
|
||||
OpDecorate %sk_Clockwise BuiltIn FrontFacing
|
||||
OpDecorate %70 RelaxedPrecision
|
||||
OpDecorate %71 RelaxedPrecision
|
||||
OpDecorate %73 RelaxedPrecision
|
||||
OpDecorate %74 RelaxedPrecision
|
||||
OpDecorate %76 RelaxedPrecision
|
||||
OpDecorate %77 RelaxedPrecision
|
||||
OpDecorate %79 RelaxedPrecision
|
||||
OpDecorate %81 RelaxedPrecision
|
||||
OpDecorate %83 RelaxedPrecision
|
||||
OpDecorate %84 RelaxedPrecision
|
||||
OpDecorate %80 RelaxedPrecision
|
||||
%float = OpTypeFloat 32
|
||||
%v4float = OpTypeVector %float 4
|
||||
%_ptr_Output_v4float = OpTypePointer Output %v4float
|
||||
@ -48,14 +48,10 @@ OpDecorate %84 RelaxedPrecision
|
||||
%float_n10 = OpConstant %float -10
|
||||
%float_11 = OpConstant %float 11
|
||||
%float_n12 = OpConstant %float -12
|
||||
%float_1_0 = OpConstant %float 1
|
||||
%float_2 = OpConstant %float 2
|
||||
%float_3_0 = OpConstant %float 3
|
||||
%float_0 = OpConstant %float 0
|
||||
%float_5_0 = OpConstant %float 5
|
||||
%float_6 = OpConstant %float 6
|
||||
%float_8 = OpConstant %float 8
|
||||
%float_2_0 = OpConstant %float 2
|
||||
%main = OpFunction %void None %11
|
||||
%12 = OpLabel
|
||||
%14 = OpAccessChain %_ptr_Output_float %sk_FragColor %int_0
|
||||
@ -92,45 +88,45 @@ OpStore %45 %float_n10
|
||||
OpStore %47 %float_11
|
||||
%49 = OpAccessChain %_ptr_Output_float %sk_FragColor %int_0
|
||||
OpStore %49 %float_n12
|
||||
%50 = OpExtInst %float %1 Sqrt %float_1_0
|
||||
%52 = OpAccessChain %_ptr_Output_float %sk_FragColor %int_0
|
||||
OpStore %52 %50
|
||||
%53 = OpExtInst %float %1 Sqrt %float_2
|
||||
%55 = OpAccessChain %_ptr_Output_float %sk_FragColor %int_0
|
||||
OpStore %55 %53
|
||||
%56 = OpExtInst %float %1 Sqrt %float_3_0
|
||||
%50 = OpExtInst %float %1 Sqrt %float_1
|
||||
%51 = OpAccessChain %_ptr_Output_float %sk_FragColor %int_0
|
||||
OpStore %51 %50
|
||||
%52 = OpExtInst %float %1 Sqrt %float_2
|
||||
%54 = OpAccessChain %_ptr_Output_float %sk_FragColor %int_0
|
||||
OpStore %54 %52
|
||||
%55 = OpExtInst %float %1 Sqrt %float_3
|
||||
%56 = OpAccessChain %_ptr_Output_float %sk_FragColor %int_0
|
||||
OpStore %56 %55
|
||||
%58 = OpAccessChain %_ptr_Output_float %sk_FragColor %int_0
|
||||
OpStore %58 %56
|
||||
OpStore %58 %float_0
|
||||
%59 = OpExtInst %float %1 Sqrt %float_5
|
||||
%60 = OpAccessChain %_ptr_Output_float %sk_FragColor %int_0
|
||||
OpStore %60 %float_0
|
||||
%61 = OpExtInst %float %1 Sqrt %float_5_0
|
||||
OpStore %60 %59
|
||||
%61 = OpExtInst %float %1 Sqrt %float_6
|
||||
%63 = OpAccessChain %_ptr_Output_float %sk_FragColor %int_0
|
||||
OpStore %63 %61
|
||||
%64 = OpExtInst %float %1 Sqrt %float_6
|
||||
%66 = OpAccessChain %_ptr_Output_float %sk_FragColor %int_0
|
||||
OpStore %66 %64
|
||||
%64 = OpAccessChain %_ptr_Output_float %sk_FragColor %int_0
|
||||
OpStore %64 %float_0
|
||||
%65 = OpExtInst %float %1 Sqrt %float_8
|
||||
%67 = OpAccessChain %_ptr_Output_float %sk_FragColor %int_0
|
||||
OpStore %67 %float_0
|
||||
%68 = OpExtInst %float %1 Sqrt %float_8
|
||||
%70 = OpAccessChain %_ptr_Output_float %sk_FragColor %int_0
|
||||
OpStore %70 %68
|
||||
%71 = OpAccessChain %_ptr_Output_float %sk_FragColor %int_0
|
||||
OpStore %71 %float_0
|
||||
OpStore %67 %65
|
||||
%68 = OpAccessChain %_ptr_Output_float %sk_FragColor %int_0
|
||||
OpStore %68 %float_0
|
||||
%69 = OpAccessChain %_ptr_Output_float %sk_FragColor %int_0
|
||||
%70 = OpLoad %float %69
|
||||
%71 = OpFAdd %float %70 %float_1
|
||||
OpStore %69 %71
|
||||
%72 = OpAccessChain %_ptr_Output_float %sk_FragColor %int_0
|
||||
%73 = OpLoad %float %72
|
||||
%74 = OpFAdd %float %73 %float_1
|
||||
%74 = OpFSub %float %73 %float_1
|
||||
OpStore %72 %74
|
||||
%75 = OpAccessChain %_ptr_Output_float %sk_FragColor %int_0
|
||||
%76 = OpLoad %float %75
|
||||
%77 = OpFSub %float %76 %float_1
|
||||
%77 = OpFMul %float %76 %float_2
|
||||
OpStore %75 %77
|
||||
%78 = OpAccessChain %_ptr_Output_float %sk_FragColor %int_0
|
||||
%79 = OpLoad %float %78
|
||||
%81 = OpFMul %float %79 %float_2_0
|
||||
OpStore %78 %81
|
||||
%82 = OpAccessChain %_ptr_Output_float %sk_FragColor %int_0
|
||||
%83 = OpLoad %float %82
|
||||
%84 = OpFDiv %float %83 %float_2_0
|
||||
OpStore %82 %84
|
||||
%80 = OpFDiv %float %79 %float_2
|
||||
OpStore %78 %80
|
||||
OpReturn
|
||||
OpFunctionEnd
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -35,7 +35,6 @@ OpDecorate %sk_Clockwise BuiltIn FrontFacing
|
||||
%float_4 = OpConstant %float 4
|
||||
%35 = OpConstantComposite %v2float %float_3 %float_4
|
||||
%41 = OpConstantComposite %v2float %float_3 %float_4
|
||||
%float_1_0 = OpConstant %float 1
|
||||
%main = OpFunction %void None %11
|
||||
%12 = OpLabel
|
||||
%_1_x = OpVariable %_ptr_Function_float Function
|
||||
@ -77,7 +76,7 @@ OpStore %y %46
|
||||
%48 = OpLoad %v2float %y
|
||||
%49 = OpCompositeExtract %float %48 0
|
||||
%50 = OpCompositeExtract %float %48 1
|
||||
%52 = OpCompositeConstruct %v4float %47 %49 %50 %float_1_0
|
||||
OpStore %sk_FragColor %52
|
||||
%51 = OpCompositeConstruct %v4float %47 %49 %50 %float_1
|
||||
OpStore %sk_FragColor %51
|
||||
OpReturn
|
||||
OpFunctionEnd
|
||||
|
@ -39,7 +39,6 @@ OpDecorate %53 RelaxedPrecision
|
||||
%uint_2147483647 = OpConstant %uint 2147483647
|
||||
%uint_4294967295 = OpConstant %uint 4294967295
|
||||
%uint_65535 = OpConstant %uint 65535
|
||||
%uint_1_0 = OpConstant %uint 1
|
||||
%main = OpFunction %void None %7
|
||||
%8 = OpLabel
|
||||
%i1 = OpVariable %_ptr_Function_int Function
|
||||
@ -90,7 +89,7 @@ OpStore %u4 %uint_4294967295
|
||||
OpStore %u4 %50
|
||||
OpStore %u5 %uint_65535
|
||||
%53 = OpLoad %uint %u5
|
||||
%55 = OpIAdd %uint %53 %uint_1_0
|
||||
OpStore %u5 %55
|
||||
%54 = OpIAdd %uint %53 %uint_1
|
||||
OpStore %u5 %54
|
||||
OpReturn
|
||||
OpFunctionEnd
|
||||
|
@ -44,12 +44,8 @@ OpDecorate %sk_Clockwise BuiltIn FrontFacing
|
||||
%float_n10 = OpConstant %float -10
|
||||
%float_11 = OpConstant %float 11
|
||||
%float_n12 = OpConstant %float -12
|
||||
%float_1_0 = OpConstant %float 1
|
||||
%float_2 = OpConstant %float 2
|
||||
%float_3_0 = OpConstant %float 3
|
||||
%float_0 = OpConstant %float 0
|
||||
%float_5_0 = OpConstant %float 5
|
||||
%float_6_0 = OpConstant %float 6
|
||||
%float_8 = OpConstant %float 8
|
||||
%_ptr_Function_int = OpTypePointer Function %int
|
||||
%int_1 = OpConstant %int 1
|
||||
@ -101,60 +97,60 @@ OpStore %53 %float_n10
|
||||
OpStore %55 %float_11
|
||||
%57 = OpAccessChain %_ptr_Output_float %sk_FragColor %int_0
|
||||
OpStore %57 %float_n12
|
||||
%60 = OpExtInst %float %1 Sqrt %float_1_0
|
||||
%60 = OpExtInst %float %1 Sqrt %float_1
|
||||
%59 = OpConvertFToS %int %60
|
||||
%58 = OpConvertSToF %float %59
|
||||
%62 = OpAccessChain %_ptr_Output_float %sk_FragColor %int_0
|
||||
OpStore %62 %58
|
||||
%65 = OpExtInst %float %1 Sqrt %float_2
|
||||
%64 = OpConvertFToS %int %65
|
||||
%63 = OpConvertSToF %float %64
|
||||
%67 = OpAccessChain %_ptr_Output_float %sk_FragColor %int_0
|
||||
OpStore %67 %63
|
||||
%70 = OpExtInst %float %1 Sqrt %float_3_0
|
||||
%69 = OpConvertFToS %int %70
|
||||
%68 = OpConvertSToF %float %69
|
||||
%61 = OpAccessChain %_ptr_Output_float %sk_FragColor %int_0
|
||||
OpStore %61 %58
|
||||
%64 = OpExtInst %float %1 Sqrt %float_2
|
||||
%63 = OpConvertFToS %int %64
|
||||
%62 = OpConvertSToF %float %63
|
||||
%66 = OpAccessChain %_ptr_Output_float %sk_FragColor %int_0
|
||||
OpStore %66 %62
|
||||
%69 = OpExtInst %float %1 Sqrt %float_3
|
||||
%68 = OpConvertFToS %int %69
|
||||
%67 = OpConvertSToF %float %68
|
||||
%70 = OpAccessChain %_ptr_Output_float %sk_FragColor %int_0
|
||||
OpStore %70 %67
|
||||
%72 = OpAccessChain %_ptr_Output_float %sk_FragColor %int_0
|
||||
OpStore %72 %68
|
||||
%74 = OpAccessChain %_ptr_Output_float %sk_FragColor %int_0
|
||||
OpStore %74 %float_0
|
||||
%77 = OpExtInst %float %1 Sqrt %float_5_0
|
||||
%76 = OpConvertFToS %int %77
|
||||
%75 = OpConvertSToF %float %76
|
||||
%79 = OpAccessChain %_ptr_Output_float %sk_FragColor %int_0
|
||||
OpStore %79 %75
|
||||
%82 = OpExtInst %float %1 Sqrt %float_6_0
|
||||
%81 = OpConvertFToS %int %82
|
||||
%80 = OpConvertSToF %float %81
|
||||
%84 = OpAccessChain %_ptr_Output_float %sk_FragColor %int_0
|
||||
OpStore %84 %80
|
||||
%85 = OpAccessChain %_ptr_Output_float %sk_FragColor %int_0
|
||||
OpStore %85 %float_0
|
||||
%88 = OpExtInst %float %1 Sqrt %float_8
|
||||
%87 = OpConvertFToS %int %88
|
||||
%86 = OpConvertSToF %float %87
|
||||
%90 = OpAccessChain %_ptr_Output_float %sk_FragColor %int_0
|
||||
OpStore %90 %86
|
||||
%91 = OpAccessChain %_ptr_Output_float %sk_FragColor %int_0
|
||||
OpStore %91 %float_0
|
||||
%95 = OpExtInst %float %1 Sqrt %float_2
|
||||
%94 = OpConvertFToS %int %95
|
||||
OpStore %72 %float_0
|
||||
%75 = OpExtInst %float %1 Sqrt %float_5
|
||||
%74 = OpConvertFToS %int %75
|
||||
%73 = OpConvertSToF %float %74
|
||||
%76 = OpAccessChain %_ptr_Output_float %sk_FragColor %int_0
|
||||
OpStore %76 %73
|
||||
%79 = OpExtInst %float %1 Sqrt %float_6
|
||||
%78 = OpConvertFToS %int %79
|
||||
%77 = OpConvertSToF %float %78
|
||||
%80 = OpAccessChain %_ptr_Output_float %sk_FragColor %int_0
|
||||
OpStore %80 %77
|
||||
%81 = OpAccessChain %_ptr_Output_float %sk_FragColor %int_0
|
||||
OpStore %81 %float_0
|
||||
%84 = OpExtInst %float %1 Sqrt %float_8
|
||||
%83 = OpConvertFToS %int %84
|
||||
%82 = OpConvertSToF %float %83
|
||||
%86 = OpAccessChain %_ptr_Output_float %sk_FragColor %int_0
|
||||
OpStore %86 %82
|
||||
%87 = OpAccessChain %_ptr_Output_float %sk_FragColor %int_0
|
||||
OpStore %87 %float_0
|
||||
%91 = OpExtInst %float %1 Sqrt %float_2
|
||||
%90 = OpConvertFToS %int %91
|
||||
OpStore %x %90
|
||||
%92 = OpLoad %int %x
|
||||
%94 = OpIAdd %int %92 %int_1
|
||||
OpStore %x %94
|
||||
%96 = OpLoad %int %x
|
||||
%98 = OpIAdd %int %96 %int_1
|
||||
OpStore %x %98
|
||||
%99 = OpLoad %int %x
|
||||
%100 = OpISub %int %99 %int_1
|
||||
OpStore %x %100
|
||||
%101 = OpLoad %int %x
|
||||
%103 = OpIMul %int %101 %int_2
|
||||
OpStore %x %103
|
||||
%104 = OpLoad %int %x
|
||||
%105 = OpSDiv %int %104 %int_2
|
||||
OpStore %x %105
|
||||
%107 = OpLoad %int %x
|
||||
%106 = OpConvertSToF %float %107
|
||||
%108 = OpAccessChain %_ptr_Output_float %sk_FragColor %int_0
|
||||
OpStore %108 %106
|
||||
%95 = OpLoad %int %x
|
||||
%96 = OpISub %int %95 %int_1
|
||||
OpStore %x %96
|
||||
%97 = OpLoad %int %x
|
||||
%99 = OpIMul %int %97 %int_2
|
||||
OpStore %x %99
|
||||
%100 = OpLoad %int %x
|
||||
%101 = OpSDiv %int %100 %int_2
|
||||
OpStore %x %101
|
||||
%103 = OpLoad %int %x
|
||||
%102 = OpConvertSToF %float %103
|
||||
%104 = OpAccessChain %_ptr_Output_float %sk_FragColor %int_0
|
||||
OpStore %104 %102
|
||||
OpReturn
|
||||
OpFunctionEnd
|
||||
|
@ -27,9 +27,8 @@ OpDecorate %sk_Clockwise BuiltIn FrontFacing
|
||||
%int_0 = OpConstant %int 0
|
||||
%v2float = OpTypeVector %float 2
|
||||
%21 = OpConstantComposite %v2float %float_1 %float_1
|
||||
%float_1_0 = OpConstant %float 1
|
||||
%v3float = OpTypeVector %float 3
|
||||
%25 = OpConstantComposite %v3float %float_1_0 %float_1_0 %float_1_0
|
||||
%25 = OpConstantComposite %v3float %float_1 %float_1 %float_1
|
||||
%int_2 = OpConstant %int 2
|
||||
%float_0 = OpConstant %float 0
|
||||
%mat2v2float = OpTypeMatrix %v2float 2
|
||||
@ -43,13 +42,13 @@ OpStore %17 %13
|
||||
%23 = OpAccessChain %_ptr_Output_float %sk_FragColor %int_1
|
||||
OpStore %23 %20
|
||||
%24 = OpConvertSToF %float %int_1
|
||||
%28 = OpAccessChain %_ptr_Output_float %sk_FragColor %int_2
|
||||
OpStore %28 %24
|
||||
%33 = OpCompositeConstruct %v2float %float_1 %float_0
|
||||
%34 = OpCompositeConstruct %v2float %float_0 %float_1
|
||||
%31 = OpCompositeConstruct %mat2v2float %33 %34
|
||||
%30 = OpConvertSToF %float %int_1
|
||||
%36 = OpAccessChain %_ptr_Output_float %sk_FragColor %int_3
|
||||
OpStore %36 %30
|
||||
%27 = OpAccessChain %_ptr_Output_float %sk_FragColor %int_2
|
||||
OpStore %27 %24
|
||||
%32 = OpCompositeConstruct %v2float %float_1 %float_0
|
||||
%33 = OpCompositeConstruct %v2float %float_0 %float_1
|
||||
%30 = OpCompositeConstruct %mat2v2float %32 %33
|
||||
%29 = OpConvertSToF %float %int_1
|
||||
%35 = OpAccessChain %_ptr_Output_float %sk_FragColor %int_3
|
||||
OpStore %35 %29
|
||||
OpReturn
|
||||
OpFunctionEnd
|
||||
|
@ -45,9 +45,9 @@ OpDecorate %57 RelaxedPrecision
|
||||
OpDecorate %72 RelaxedPrecision
|
||||
OpDecorate %75 RelaxedPrecision
|
||||
OpDecorate %78 RelaxedPrecision
|
||||
OpDecorate %157 RelaxedPrecision
|
||||
OpDecorate %161 RelaxedPrecision
|
||||
OpDecorate %166 RelaxedPrecision
|
||||
OpDecorate %169 RelaxedPrecision
|
||||
OpDecorate %164 RelaxedPrecision
|
||||
%float = OpTypeFloat 32
|
||||
%v4float = OpTypeVector %float 4
|
||||
%_ptr_Output_v4float = OpTypePointer Output %v4float
|
||||
@ -94,25 +94,20 @@ OpDecorate %169 RelaxedPrecision
|
||||
%v3int = OpTypeVector %int 3
|
||||
%91 = OpConstantComposite %v3int %int_3 %int_3 %int_3
|
||||
%_ptr_Function_int = OpTypePointer Function %int
|
||||
%float_2_0 = OpConstant %float 2
|
||||
%105 = OpConstantComposite %v2float %float_2_0 %float_2_0
|
||||
%float_3_0 = OpConstant %float 3
|
||||
%108 = OpConstantComposite %v3float %float_3_0 %float_3_0 %float_3_0
|
||||
%110 = OpConstantComposite %v2float %float_2_0 %float_2_0
|
||||
%float_1_0 = OpConstant %float 1
|
||||
%float_4_0 = OpConstant %float 4
|
||||
%105 = OpConstantComposite %v2float %float_2 %float_2
|
||||
%107 = OpConstantComposite %v3float %float_3 %float_3 %float_3
|
||||
%108 = OpConstantComposite %v2float %float_2 %float_2
|
||||
%v3bool = OpTypeVector %bool 3
|
||||
%_ptr_Function_v3bool = OpTypePointer Function %v3bool
|
||||
%true = OpConstantTrue %bool
|
||||
%151 = OpConstantComposite %v3bool %true %true %true
|
||||
%147 = OpConstantComposite %v3bool %true %true %true
|
||||
%v4bool = OpTypeVector %bool 4
|
||||
%_ptr_Function_v4bool = OpTypePointer Function %v4bool
|
||||
%false = OpConstantFalse %bool
|
||||
%156 = OpConstantComposite %v4bool %false %false %false %false
|
||||
%152 = OpConstantComposite %v4bool %false %false %false %false
|
||||
%v2bool = OpTypeVector %bool 2
|
||||
%158 = OpConstantComposite %v2bool %false %false
|
||||
%154 = OpConstantComposite %v2bool %false %false
|
||||
%_ptr_Function_bool = OpTypePointer Function %bool
|
||||
%float_0_0 = OpConstant %float 0
|
||||
%main = OpFunction %void None %11
|
||||
%12 = OpLabel
|
||||
%h3 = OpVariable %_ptr_Function_v3float Function
|
||||
@ -125,8 +120,8 @@ OpDecorate %169 RelaxedPrecision
|
||||
%f2 = OpVariable %_ptr_Function_v2float Function
|
||||
%f3 = OpVariable %_ptr_Function_v3float Function
|
||||
%f2x2 = OpVariable %_ptr_Function_mat2v2float Function
|
||||
%129 = OpVariable %_ptr_Function_mat3v3float Function
|
||||
%137 = OpVariable %_ptr_Function_mat4v4float Function
|
||||
%126 = OpVariable %_ptr_Function_mat3v3float Function
|
||||
%134 = OpVariable %_ptr_Function_mat4v4float Function
|
||||
%b3 = OpVariable %_ptr_Function_v3bool Function
|
||||
%b4 = OpVariable %_ptr_Function_v4bool Function
|
||||
OpStore %h3 %16
|
||||
@ -195,61 +190,61 @@ OpStore %95 %int_1
|
||||
%103 = OpCompositeConstruct %v4float %float_1 %97 %float_3 %100
|
||||
OpStore %sk_FragColor %103
|
||||
OpStore %f2 %105
|
||||
OpStore %f3 %108
|
||||
%111 = OpLoad %v3float %f3
|
||||
%112 = OpVectorShuffle %v3float %111 %110 3 4 2
|
||||
OpStore %f3 %112
|
||||
%114 = OpAccessChain %_ptr_Function_float %f2 %int_0
|
||||
OpStore %114 %float_1_0
|
||||
%115 = OpLoad %v2float %f2
|
||||
%116 = OpCompositeExtract %float %115 0
|
||||
%117 = OpLoad %v3float %f3
|
||||
%118 = OpCompositeExtract %float %117 0
|
||||
%119 = OpCompositeConstruct %v4float %float_1 %116 %118 %float_4
|
||||
OpStore %sk_FragColor %119
|
||||
%122 = OpCompositeConstruct %v2float %float_2_0 %float_0
|
||||
%123 = OpCompositeConstruct %v2float %float_0 %float_2_0
|
||||
%121 = OpCompositeConstruct %mat2v2float %122 %123
|
||||
OpStore %f2x2 %121
|
||||
%124 = OpAccessChain %_ptr_Function_v2float %f2x2 %int_0
|
||||
%125 = OpAccessChain %_ptr_Function_float %124 %int_0
|
||||
OpStore %125 %float_1_0
|
||||
%126 = OpAccessChain %_ptr_Function_v2float %f2x2 %int_0
|
||||
%127 = OpLoad %v2float %126
|
||||
%128 = OpCompositeExtract %float %127 0
|
||||
%131 = OpCompositeConstruct %v3float %float_3_0 %float_0 %float_0
|
||||
%132 = OpCompositeConstruct %v3float %float_0 %float_3_0 %float_0
|
||||
%133 = OpCompositeConstruct %v3float %float_0 %float_0 %float_3_0
|
||||
%130 = OpCompositeConstruct %mat3v3float %131 %132 %133
|
||||
OpStore %129 %130
|
||||
%134 = OpAccessChain %_ptr_Function_v3float %129 %int_0
|
||||
%135 = OpLoad %v3float %134
|
||||
%136 = OpCompositeExtract %float %135 0
|
||||
%140 = OpCompositeConstruct %v4float %float_4_0 %float_0 %float_0 %float_0
|
||||
%141 = OpCompositeConstruct %v4float %float_0 %float_4_0 %float_0 %float_0
|
||||
%142 = OpCompositeConstruct %v4float %float_0 %float_0 %float_4_0 %float_0
|
||||
%143 = OpCompositeConstruct %v4float %float_0 %float_0 %float_0 %float_4_0
|
||||
%139 = OpCompositeConstruct %mat4v4float %140 %141 %142 %143
|
||||
OpStore %137 %139
|
||||
%144 = OpAccessChain %_ptr_Function_v4float %137 %int_0
|
||||
%145 = OpLoad %v4float %144
|
||||
%146 = OpCompositeExtract %float %145 0
|
||||
%147 = OpCompositeConstruct %v4float %128 %136 %146 %float_1
|
||||
OpStore %sk_FragColor %147
|
||||
OpStore %b3 %151
|
||||
OpStore %b4 %156
|
||||
%160 = OpLoad %v4bool %b4
|
||||
%161 = OpVectorShuffle %v4bool %160 %158 4 1 2 5
|
||||
OpStore %b4 %161
|
||||
%162 = OpAccessChain %_ptr_Function_bool %b3 %int_2
|
||||
OpStore %162 %true
|
||||
%166 = OpLoad %v3bool %b3
|
||||
%167 = OpCompositeExtract %bool %166 0
|
||||
%165 = OpSelect %float %167 %float_1_0 %float_0
|
||||
%169 = OpLoad %v4bool %b4
|
||||
%170 = OpCompositeExtract %bool %169 0
|
||||
%168 = OpSelect %float %170 %float_1_0 %float_0
|
||||
%171 = OpCompositeConstruct %v4float %float_1 %float_0_0 %165 %168
|
||||
OpStore %sk_FragColor %171
|
||||
OpStore %f3 %107
|
||||
%109 = OpLoad %v3float %f3
|
||||
%110 = OpVectorShuffle %v3float %109 %108 3 4 2
|
||||
OpStore %f3 %110
|
||||
%111 = OpAccessChain %_ptr_Function_float %f2 %int_0
|
||||
OpStore %111 %float_1
|
||||
%112 = OpLoad %v2float %f2
|
||||
%113 = OpCompositeExtract %float %112 0
|
||||
%114 = OpLoad %v3float %f3
|
||||
%115 = OpCompositeExtract %float %114 0
|
||||
%116 = OpCompositeConstruct %v4float %float_1 %113 %115 %float_4
|
||||
OpStore %sk_FragColor %116
|
||||
%119 = OpCompositeConstruct %v2float %float_2 %float_0
|
||||
%120 = OpCompositeConstruct %v2float %float_0 %float_2
|
||||
%118 = OpCompositeConstruct %mat2v2float %119 %120
|
||||
OpStore %f2x2 %118
|
||||
%121 = OpAccessChain %_ptr_Function_v2float %f2x2 %int_0
|
||||
%122 = OpAccessChain %_ptr_Function_float %121 %int_0
|
||||
OpStore %122 %float_1
|
||||
%123 = OpAccessChain %_ptr_Function_v2float %f2x2 %int_0
|
||||
%124 = OpLoad %v2float %123
|
||||
%125 = OpCompositeExtract %float %124 0
|
||||
%128 = OpCompositeConstruct %v3float %float_3 %float_0 %float_0
|
||||
%129 = OpCompositeConstruct %v3float %float_0 %float_3 %float_0
|
||||
%130 = OpCompositeConstruct %v3float %float_0 %float_0 %float_3
|
||||
%127 = OpCompositeConstruct %mat3v3float %128 %129 %130
|
||||
OpStore %126 %127
|
||||
%131 = OpAccessChain %_ptr_Function_v3float %126 %int_0
|
||||
%132 = OpLoad %v3float %131
|
||||
%133 = OpCompositeExtract %float %132 0
|
||||
%136 = OpCompositeConstruct %v4float %float_4 %float_0 %float_0 %float_0
|
||||
%137 = OpCompositeConstruct %v4float %float_0 %float_4 %float_0 %float_0
|
||||
%138 = OpCompositeConstruct %v4float %float_0 %float_0 %float_4 %float_0
|
||||
%139 = OpCompositeConstruct %v4float %float_0 %float_0 %float_0 %float_4
|
||||
%135 = OpCompositeConstruct %mat4v4float %136 %137 %138 %139
|
||||
OpStore %134 %135
|
||||
%140 = OpAccessChain %_ptr_Function_v4float %134 %int_0
|
||||
%141 = OpLoad %v4float %140
|
||||
%142 = OpCompositeExtract %float %141 0
|
||||
%143 = OpCompositeConstruct %v4float %125 %133 %142 %float_1
|
||||
OpStore %sk_FragColor %143
|
||||
OpStore %b3 %147
|
||||
OpStore %b4 %152
|
||||
%156 = OpLoad %v4bool %b4
|
||||
%157 = OpVectorShuffle %v4bool %156 %154 4 1 2 5
|
||||
OpStore %b4 %157
|
||||
%158 = OpAccessChain %_ptr_Function_bool %b3 %int_2
|
||||
OpStore %158 %true
|
||||
%161 = OpLoad %v3bool %b3
|
||||
%162 = OpCompositeExtract %bool %161 0
|
||||
%160 = OpSelect %float %162 %float_1 %float_0
|
||||
%164 = OpLoad %v4bool %b4
|
||||
%165 = OpCompositeExtract %bool %164 0
|
||||
%163 = OpSelect %float %165 %float_1 %float_0
|
||||
%166 = OpCompositeConstruct %v4float %float_1 %float_0 %160 %163
|
||||
OpStore %sk_FragColor %166
|
||||
OpReturn
|
||||
OpFunctionEnd
|
||||
|
@ -24,8 +24,7 @@ OpDecorate %sk_Clockwise BuiltIn FrontFacing
|
||||
%int_0 = OpConstant %int 0
|
||||
%float_0 = OpConstant %float 0
|
||||
%float_1 = OpConstant %float 1
|
||||
%float_0_0 = OpConstant %float 0
|
||||
%24 = OpConstantComposite %v4float %float_0_0 %float_0_0 %float_0_0 %float_0_0
|
||||
%24 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0
|
||||
%main = OpFunction %void None %11
|
||||
%12 = OpLabel
|
||||
OpSelectionMerge %15 None
|
||||
|
@ -22,8 +22,7 @@ OpDecorate %sk_Clockwise BuiltIn FrontFacing
|
||||
%11 = OpTypeFunction %void
|
||||
%float_2 = OpConstant %float 2
|
||||
%int = OpTypeInt 32 1
|
||||
%float_2_0 = OpConstant %float 2
|
||||
%21 = OpConstantComposite %v4float %float_2_0 %float_2_0 %float_2_0 %float_2_0
|
||||
%21 = OpConstantComposite %v4float %float_2 %float_2 %float_2 %float_2
|
||||
%main = OpFunction %void None %11
|
||||
%12 = OpLabel
|
||||
%14 = OpExtInst %float %1 Sqrt %float_2
|
||||
|
@ -46,7 +46,7 @@ OpDecorate %127 RelaxedPrecision
|
||||
OpDecorate %132 RelaxedPrecision
|
||||
OpDecorate %135 RelaxedPrecision
|
||||
OpDecorate %139 RelaxedPrecision
|
||||
OpDecorate %149 RelaxedPrecision
|
||||
OpDecorate %148 RelaxedPrecision
|
||||
%float = OpTypeFloat 32
|
||||
%v4float = OpTypeVector %float 4
|
||||
%_ptr_Output_v4float = OpTypePointer Output %v4float
|
||||
@ -64,10 +64,9 @@ OpDecorate %149 RelaxedPrecision
|
||||
%false = OpConstantFalse %bool
|
||||
%v3bool = OpTypeVector %bool 3
|
||||
%_ptr_Function_v4float = OpTypePointer Function %v4float
|
||||
%float_1_0 = OpConstant %float 1
|
||||
%145 = OpConstantComposite %v4float %float_1_0 %float_1_0 %float_1_0 %float_1_0
|
||||
%145 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
|
||||
%float_0 = OpConstant %float 0
|
||||
%147 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0
|
||||
%146 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0
|
||||
%main = OpFunction %void None %11
|
||||
%12 = OpLabel
|
||||
%v = OpVariable %_ptr_Function_v4bool Function
|
||||
@ -224,10 +223,10 @@ OpBranchConditional %138 %142 %143
|
||||
OpStore %140 %145
|
||||
OpBranch %144
|
||||
%143 = OpLabel
|
||||
OpStore %140 %147
|
||||
OpStore %140 %146
|
||||
OpBranch %144
|
||||
%144 = OpLabel
|
||||
%149 = OpLoad %v4float %140
|
||||
OpStore %sk_FragColor %149
|
||||
%148 = OpLoad %v4float %140
|
||||
OpStore %sk_FragColor %148
|
||||
OpReturn
|
||||
OpFunctionEnd
|
||||
|
@ -13,37 +13,37 @@ OpDecorate %sk_FragColor Index 0
|
||||
OpDecorate %sk_Clockwise RelaxedPrecision
|
||||
OpDecorate %sk_Clockwise BuiltIn FrontFacing
|
||||
OpDecorate %18 RelaxedPrecision
|
||||
OpDecorate %22 RelaxedPrecision
|
||||
OpDecorate %28 RelaxedPrecision
|
||||
OpDecorate %32 RelaxedPrecision
|
||||
OpDecorate %35 RelaxedPrecision
|
||||
OpDecorate %42 RelaxedPrecision
|
||||
OpDecorate %47 RelaxedPrecision
|
||||
OpDecorate %49 RelaxedPrecision
|
||||
OpDecorate %52 RelaxedPrecision
|
||||
OpDecorate %55 RelaxedPrecision
|
||||
OpDecorate %60 RelaxedPrecision
|
||||
OpDecorate %63 RelaxedPrecision
|
||||
OpDecorate %21 RelaxedPrecision
|
||||
OpDecorate %27 RelaxedPrecision
|
||||
OpDecorate %31 RelaxedPrecision
|
||||
OpDecorate %34 RelaxedPrecision
|
||||
OpDecorate %41 RelaxedPrecision
|
||||
OpDecorate %46 RelaxedPrecision
|
||||
OpDecorate %48 RelaxedPrecision
|
||||
OpDecorate %51 RelaxedPrecision
|
||||
OpDecorate %54 RelaxedPrecision
|
||||
OpDecorate %59 RelaxedPrecision
|
||||
OpDecorate %62 RelaxedPrecision
|
||||
OpDecorate %65 RelaxedPrecision
|
||||
OpDecorate %66 RelaxedPrecision
|
||||
OpDecorate %67 RelaxedPrecision
|
||||
OpDecorate %73 RelaxedPrecision
|
||||
OpDecorate %77 RelaxedPrecision
|
||||
OpDecorate %80 RelaxedPrecision
|
||||
OpDecorate %85 RelaxedPrecision
|
||||
OpDecorate %87 RelaxedPrecision
|
||||
OpDecorate %92 RelaxedPrecision
|
||||
OpDecorate %94 RelaxedPrecision
|
||||
OpDecorate %97 RelaxedPrecision
|
||||
OpDecorate %99 RelaxedPrecision
|
||||
OpDecorate %102 RelaxedPrecision
|
||||
OpDecorate %105 RelaxedPrecision
|
||||
OpDecorate %111 RelaxedPrecision
|
||||
OpDecorate %116 RelaxedPrecision
|
||||
OpDecorate %118 RelaxedPrecision
|
||||
OpDecorate %121 RelaxedPrecision
|
||||
OpDecorate %124 RelaxedPrecision
|
||||
OpDecorate %129 RelaxedPrecision
|
||||
OpDecorate %132 RelaxedPrecision
|
||||
OpDecorate %72 RelaxedPrecision
|
||||
OpDecorate %76 RelaxedPrecision
|
||||
OpDecorate %79 RelaxedPrecision
|
||||
OpDecorate %84 RelaxedPrecision
|
||||
OpDecorate %86 RelaxedPrecision
|
||||
OpDecorate %91 RelaxedPrecision
|
||||
OpDecorate %93 RelaxedPrecision
|
||||
OpDecorate %96 RelaxedPrecision
|
||||
OpDecorate %98 RelaxedPrecision
|
||||
OpDecorate %101 RelaxedPrecision
|
||||
OpDecorate %104 RelaxedPrecision
|
||||
OpDecorate %110 RelaxedPrecision
|
||||
OpDecorate %115 RelaxedPrecision
|
||||
OpDecorate %117 RelaxedPrecision
|
||||
OpDecorate %120 RelaxedPrecision
|
||||
OpDecorate %123 RelaxedPrecision
|
||||
OpDecorate %128 RelaxedPrecision
|
||||
OpDecorate %131 RelaxedPrecision
|
||||
%float = OpTypeFloat 32
|
||||
%v4float = OpTypeVector %float 4
|
||||
%_ptr_Output_v4float = OpTypePointer Output %v4float
|
||||
@ -55,7 +55,6 @@ OpDecorate %132 RelaxedPrecision
|
||||
%11 = OpTypeFunction %void
|
||||
%_ptr_Function_v4float = OpTypePointer Function %v4float
|
||||
%float_1 = OpConstant %float 1
|
||||
%float_1_0 = OpConstant %float 1
|
||||
%v2float = OpTypeVector %float 2
|
||||
%float_0 = OpConstant %float 0
|
||||
%v3float = OpTypeVector %float 3
|
||||
@ -67,142 +66,142 @@ OpDecorate %132 RelaxedPrecision
|
||||
OpStore %v %17
|
||||
%18 = OpLoad %v4float %v
|
||||
%19 = OpCompositeExtract %float %18 0
|
||||
%21 = OpCompositeConstruct %v4float %19 %float_1_0 %float_1_0 %float_1_0
|
||||
OpStore %sk_FragColor %21
|
||||
%22 = OpLoad %v4float %v
|
||||
%23 = OpVectorShuffle %v2float %22 %22 0 1
|
||||
%25 = OpCompositeExtract %float %23 0
|
||||
%26 = OpCompositeExtract %float %23 1
|
||||
%27 = OpCompositeConstruct %v4float %25 %26 %float_1_0 %float_1_0
|
||||
OpStore %sk_FragColor %27
|
||||
%28 = OpLoad %v4float %v
|
||||
%29 = OpCompositeExtract %float %28 0
|
||||
%30 = OpCompositeConstruct %v4float %29 %float_1_0 %float_1_0 %float_1_0
|
||||
OpStore %sk_FragColor %30
|
||||
%32 = OpLoad %v4float %v
|
||||
%33 = OpCompositeExtract %float %32 1
|
||||
%34 = OpCompositeConstruct %v4float %float_0 %33 %float_1_0 %float_1_0
|
||||
OpStore %sk_FragColor %34
|
||||
%35 = OpLoad %v4float %v
|
||||
%36 = OpVectorShuffle %v3float %35 %35 0 1 2
|
||||
%38 = OpCompositeExtract %float %36 0
|
||||
%39 = OpCompositeExtract %float %36 1
|
||||
%40 = OpCompositeExtract %float %36 2
|
||||
%41 = OpCompositeConstruct %v4float %38 %39 %40 %float_1_0
|
||||
OpStore %sk_FragColor %41
|
||||
%42 = OpLoad %v4float %v
|
||||
%43 = OpVectorShuffle %v2float %42 %42 0 1
|
||||
%44 = OpCompositeExtract %float %43 0
|
||||
%45 = OpCompositeExtract %float %43 1
|
||||
%46 = OpCompositeConstruct %v4float %44 %45 %float_1_0 %float_1_0
|
||||
OpStore %sk_FragColor %46
|
||||
%47 = OpLoad %v4float %v
|
||||
%48 = OpCompositeExtract %float %47 0
|
||||
%49 = OpLoad %v4float %v
|
||||
%50 = OpCompositeExtract %float %49 2
|
||||
%51 = OpCompositeConstruct %v4float %48 %float_0 %50 %float_1_0
|
||||
OpStore %sk_FragColor %51
|
||||
%52 = OpLoad %v4float %v
|
||||
%53 = OpCompositeExtract %float %52 0
|
||||
%54 = OpCompositeConstruct %v4float %53 %float_1_0 %float_0 %float_1_0
|
||||
OpStore %sk_FragColor %54
|
||||
%55 = OpLoad %v4float %v
|
||||
%56 = OpVectorShuffle %v2float %55 %55 1 2
|
||||
%57 = OpCompositeExtract %float %56 0
|
||||
%58 = OpCompositeExtract %float %56 1
|
||||
%59 = OpCompositeConstruct %v4float %float_1_0 %57 %58 %float_1_0
|
||||
OpStore %sk_FragColor %59
|
||||
%60 = OpLoad %v4float %v
|
||||
%61 = OpCompositeExtract %float %60 1
|
||||
%62 = OpCompositeConstruct %v4float %float_0 %61 %float_1_0 %float_1_0
|
||||
OpStore %sk_FragColor %62
|
||||
%63 = OpLoad %v4float %v
|
||||
%64 = OpCompositeExtract %float %63 2
|
||||
%65 = OpCompositeConstruct %v4float %float_1_0 %float_1_0 %64 %float_1_0
|
||||
%20 = OpCompositeConstruct %v4float %19 %float_1 %float_1 %float_1
|
||||
OpStore %sk_FragColor %20
|
||||
%21 = OpLoad %v4float %v
|
||||
%22 = OpVectorShuffle %v2float %21 %21 0 1
|
||||
%24 = OpCompositeExtract %float %22 0
|
||||
%25 = OpCompositeExtract %float %22 1
|
||||
%26 = OpCompositeConstruct %v4float %24 %25 %float_1 %float_1
|
||||
OpStore %sk_FragColor %26
|
||||
%27 = OpLoad %v4float %v
|
||||
%28 = OpCompositeExtract %float %27 0
|
||||
%29 = OpCompositeConstruct %v4float %28 %float_1 %float_1 %float_1
|
||||
OpStore %sk_FragColor %29
|
||||
%31 = OpLoad %v4float %v
|
||||
%32 = OpCompositeExtract %float %31 1
|
||||
%33 = OpCompositeConstruct %v4float %float_0 %32 %float_1 %float_1
|
||||
OpStore %sk_FragColor %33
|
||||
%34 = OpLoad %v4float %v
|
||||
%35 = OpVectorShuffle %v3float %34 %34 0 1 2
|
||||
%37 = OpCompositeExtract %float %35 0
|
||||
%38 = OpCompositeExtract %float %35 1
|
||||
%39 = OpCompositeExtract %float %35 2
|
||||
%40 = OpCompositeConstruct %v4float %37 %38 %39 %float_1
|
||||
OpStore %sk_FragColor %40
|
||||
%41 = OpLoad %v4float %v
|
||||
%42 = OpVectorShuffle %v2float %41 %41 0 1
|
||||
%43 = OpCompositeExtract %float %42 0
|
||||
%44 = OpCompositeExtract %float %42 1
|
||||
%45 = OpCompositeConstruct %v4float %43 %44 %float_1 %float_1
|
||||
OpStore %sk_FragColor %45
|
||||
%46 = OpLoad %v4float %v
|
||||
%47 = OpCompositeExtract %float %46 0
|
||||
%48 = OpLoad %v4float %v
|
||||
%49 = OpCompositeExtract %float %48 2
|
||||
%50 = OpCompositeConstruct %v4float %47 %float_0 %49 %float_1
|
||||
OpStore %sk_FragColor %50
|
||||
%51 = OpLoad %v4float %v
|
||||
%52 = OpCompositeExtract %float %51 0
|
||||
%53 = OpCompositeConstruct %v4float %52 %float_1 %float_0 %float_1
|
||||
OpStore %sk_FragColor %53
|
||||
%54 = OpLoad %v4float %v
|
||||
%55 = OpVectorShuffle %v2float %54 %54 1 2
|
||||
%56 = OpCompositeExtract %float %55 0
|
||||
%57 = OpCompositeExtract %float %55 1
|
||||
%58 = OpCompositeConstruct %v4float %float_1 %56 %57 %float_1
|
||||
OpStore %sk_FragColor %58
|
||||
%59 = OpLoad %v4float %v
|
||||
%60 = OpCompositeExtract %float %59 1
|
||||
%61 = OpCompositeConstruct %v4float %float_0 %60 %float_1 %float_1
|
||||
OpStore %sk_FragColor %61
|
||||
%62 = OpLoad %v4float %v
|
||||
%63 = OpCompositeExtract %float %62 2
|
||||
%64 = OpCompositeConstruct %v4float %float_1 %float_1 %63 %float_1
|
||||
OpStore %sk_FragColor %64
|
||||
%65 = OpLoad %v4float %v
|
||||
OpStore %sk_FragColor %65
|
||||
%66 = OpLoad %v4float %v
|
||||
OpStore %sk_FragColor %66
|
||||
%67 = OpLoad %v4float %v
|
||||
%68 = OpVectorShuffle %v3float %67 %67 0 1 2
|
||||
%69 = OpCompositeExtract %float %68 0
|
||||
%70 = OpCompositeExtract %float %68 1
|
||||
%71 = OpCompositeExtract %float %68 2
|
||||
%72 = OpCompositeConstruct %v4float %69 %70 %71 %float_1_0
|
||||
OpStore %sk_FragColor %72
|
||||
%73 = OpLoad %v4float %v
|
||||
%74 = OpVectorShuffle %v2float %73 %73 0 1
|
||||
%75 = OpCompositeExtract %float %74 0
|
||||
%76 = OpCompositeExtract %float %74 1
|
||||
%77 = OpLoad %v4float %v
|
||||
%78 = OpCompositeExtract %float %77 3
|
||||
%79 = OpCompositeConstruct %v4float %75 %76 %float_0 %78
|
||||
OpStore %sk_FragColor %79
|
||||
%80 = OpLoad %v4float %v
|
||||
%81 = OpVectorShuffle %v2float %80 %80 0 1
|
||||
%82 = OpCompositeExtract %float %81 0
|
||||
%83 = OpCompositeExtract %float %81 1
|
||||
%84 = OpCompositeConstruct %v4float %82 %83 %float_1_0 %float_0
|
||||
OpStore %sk_FragColor %84
|
||||
%85 = OpLoad %v4float %v
|
||||
%86 = OpCompositeExtract %float %85 0
|
||||
%87 = OpLoad %v4float %v
|
||||
%88 = OpVectorShuffle %v2float %87 %87 2 3
|
||||
%89 = OpCompositeExtract %float %88 0
|
||||
%90 = OpCompositeExtract %float %88 1
|
||||
%91 = OpCompositeConstruct %v4float %86 %float_1_0 %89 %90
|
||||
OpStore %sk_FragColor %91
|
||||
%92 = OpLoad %v4float %v
|
||||
%93 = OpCompositeExtract %float %92 0
|
||||
%94 = OpLoad %v4float %v
|
||||
%95 = OpCompositeExtract %float %94 2
|
||||
%96 = OpCompositeConstruct %v4float %93 %float_0 %95 %float_1_0
|
||||
OpStore %sk_FragColor %96
|
||||
%97 = OpLoad %v4float %v
|
||||
%98 = OpCompositeExtract %float %97 0
|
||||
%99 = OpLoad %v4float %v
|
||||
%100 = OpCompositeExtract %float %99 3
|
||||
%101 = OpCompositeConstruct %v4float %98 %float_1_0 %float_1_0 %100
|
||||
OpStore %sk_FragColor %101
|
||||
%102 = OpLoad %v4float %v
|
||||
%103 = OpCompositeExtract %float %102 0
|
||||
%104 = OpCompositeConstruct %v4float %103 %float_1_0 %float_0 %float_1_0
|
||||
OpStore %sk_FragColor %104
|
||||
%105 = OpLoad %v4float %v
|
||||
%106 = OpVectorShuffle %v3float %105 %105 1 2 3
|
||||
%107 = OpCompositeExtract %float %106 0
|
||||
%108 = OpCompositeExtract %float %106 1
|
||||
%109 = OpCompositeExtract %float %106 2
|
||||
%110 = OpCompositeConstruct %v4float %float_1_0 %107 %108 %109
|
||||
OpStore %sk_FragColor %110
|
||||
%111 = OpLoad %v4float %v
|
||||
%112 = OpVectorShuffle %v2float %111 %111 1 2
|
||||
%113 = OpCompositeExtract %float %112 0
|
||||
%114 = OpCompositeExtract %float %112 1
|
||||
%115 = OpCompositeConstruct %v4float %float_0 %113 %114 %float_1_0
|
||||
OpStore %sk_FragColor %115
|
||||
%116 = OpLoad %v4float %v
|
||||
%117 = OpCompositeExtract %float %116 1
|
||||
%118 = OpLoad %v4float %v
|
||||
%119 = OpCompositeExtract %float %118 3
|
||||
%120 = OpCompositeConstruct %v4float %float_0 %117 %float_1_0 %119
|
||||
OpStore %sk_FragColor %120
|
||||
%121 = OpLoad %v4float %v
|
||||
%122 = OpCompositeExtract %float %121 1
|
||||
%123 = OpCompositeConstruct %v4float %float_1_0 %122 %float_1_0 %float_1_0
|
||||
OpStore %sk_FragColor %123
|
||||
%124 = OpLoad %v4float %v
|
||||
%125 = OpVectorShuffle %v2float %124 %124 2 3
|
||||
%126 = OpCompositeExtract %float %125 0
|
||||
%127 = OpCompositeExtract %float %125 1
|
||||
%128 = OpCompositeConstruct %v4float %float_0 %float_0 %126 %127
|
||||
OpStore %sk_FragColor %128
|
||||
%129 = OpLoad %v4float %v
|
||||
%130 = OpCompositeExtract %float %129 2
|
||||
%131 = OpCompositeConstruct %v4float %float_0 %float_0 %130 %float_1_0
|
||||
OpStore %sk_FragColor %131
|
||||
%132 = OpLoad %v4float %v
|
||||
%133 = OpCompositeExtract %float %132 3
|
||||
%134 = OpCompositeConstruct %v4float %float_0 %float_1_0 %float_1_0 %133
|
||||
OpStore %sk_FragColor %134
|
||||
%67 = OpVectorShuffle %v3float %66 %66 0 1 2
|
||||
%68 = OpCompositeExtract %float %67 0
|
||||
%69 = OpCompositeExtract %float %67 1
|
||||
%70 = OpCompositeExtract %float %67 2
|
||||
%71 = OpCompositeConstruct %v4float %68 %69 %70 %float_1
|
||||
OpStore %sk_FragColor %71
|
||||
%72 = OpLoad %v4float %v
|
||||
%73 = OpVectorShuffle %v2float %72 %72 0 1
|
||||
%74 = OpCompositeExtract %float %73 0
|
||||
%75 = OpCompositeExtract %float %73 1
|
||||
%76 = OpLoad %v4float %v
|
||||
%77 = OpCompositeExtract %float %76 3
|
||||
%78 = OpCompositeConstruct %v4float %74 %75 %float_0 %77
|
||||
OpStore %sk_FragColor %78
|
||||
%79 = OpLoad %v4float %v
|
||||
%80 = OpVectorShuffle %v2float %79 %79 0 1
|
||||
%81 = OpCompositeExtract %float %80 0
|
||||
%82 = OpCompositeExtract %float %80 1
|
||||
%83 = OpCompositeConstruct %v4float %81 %82 %float_1 %float_0
|
||||
OpStore %sk_FragColor %83
|
||||
%84 = OpLoad %v4float %v
|
||||
%85 = OpCompositeExtract %float %84 0
|
||||
%86 = OpLoad %v4float %v
|
||||
%87 = OpVectorShuffle %v2float %86 %86 2 3
|
||||
%88 = OpCompositeExtract %float %87 0
|
||||
%89 = OpCompositeExtract %float %87 1
|
||||
%90 = OpCompositeConstruct %v4float %85 %float_1 %88 %89
|
||||
OpStore %sk_FragColor %90
|
||||
%91 = OpLoad %v4float %v
|
||||
%92 = OpCompositeExtract %float %91 0
|
||||
%93 = OpLoad %v4float %v
|
||||
%94 = OpCompositeExtract %float %93 2
|
||||
%95 = OpCompositeConstruct %v4float %92 %float_0 %94 %float_1
|
||||
OpStore %sk_FragColor %95
|
||||
%96 = OpLoad %v4float %v
|
||||
%97 = OpCompositeExtract %float %96 0
|
||||
%98 = OpLoad %v4float %v
|
||||
%99 = OpCompositeExtract %float %98 3
|
||||
%100 = OpCompositeConstruct %v4float %97 %float_1 %float_1 %99
|
||||
OpStore %sk_FragColor %100
|
||||
%101 = OpLoad %v4float %v
|
||||
%102 = OpCompositeExtract %float %101 0
|
||||
%103 = OpCompositeConstruct %v4float %102 %float_1 %float_0 %float_1
|
||||
OpStore %sk_FragColor %103
|
||||
%104 = OpLoad %v4float %v
|
||||
%105 = OpVectorShuffle %v3float %104 %104 1 2 3
|
||||
%106 = OpCompositeExtract %float %105 0
|
||||
%107 = OpCompositeExtract %float %105 1
|
||||
%108 = OpCompositeExtract %float %105 2
|
||||
%109 = OpCompositeConstruct %v4float %float_1 %106 %107 %108
|
||||
OpStore %sk_FragColor %109
|
||||
%110 = OpLoad %v4float %v
|
||||
%111 = OpVectorShuffle %v2float %110 %110 1 2
|
||||
%112 = OpCompositeExtract %float %111 0
|
||||
%113 = OpCompositeExtract %float %111 1
|
||||
%114 = OpCompositeConstruct %v4float %float_0 %112 %113 %float_1
|
||||
OpStore %sk_FragColor %114
|
||||
%115 = OpLoad %v4float %v
|
||||
%116 = OpCompositeExtract %float %115 1
|
||||
%117 = OpLoad %v4float %v
|
||||
%118 = OpCompositeExtract %float %117 3
|
||||
%119 = OpCompositeConstruct %v4float %float_0 %116 %float_1 %118
|
||||
OpStore %sk_FragColor %119
|
||||
%120 = OpLoad %v4float %v
|
||||
%121 = OpCompositeExtract %float %120 1
|
||||
%122 = OpCompositeConstruct %v4float %float_1 %121 %float_1 %float_1
|
||||
OpStore %sk_FragColor %122
|
||||
%123 = OpLoad %v4float %v
|
||||
%124 = OpVectorShuffle %v2float %123 %123 2 3
|
||||
%125 = OpCompositeExtract %float %124 0
|
||||
%126 = OpCompositeExtract %float %124 1
|
||||
%127 = OpCompositeConstruct %v4float %float_0 %float_0 %125 %126
|
||||
OpStore %sk_FragColor %127
|
||||
%128 = OpLoad %v4float %v
|
||||
%129 = OpCompositeExtract %float %128 2
|
||||
%130 = OpCompositeConstruct %v4float %float_0 %float_0 %129 %float_1
|
||||
OpStore %sk_FragColor %130
|
||||
%131 = OpLoad %v4float %v
|
||||
%132 = OpCompositeExtract %float %131 3
|
||||
%133 = OpCompositeConstruct %v4float %float_0 %float_1 %float_1 %132
|
||||
OpStore %sk_FragColor %133
|
||||
OpReturn
|
||||
OpFunctionEnd
|
||||
|
@ -27,7 +27,6 @@ OpDecorate %21 RelaxedPrecision
|
||||
%_ptr_Function_float = OpTypePointer Function %float
|
||||
%float_1 = OpConstant %float 1
|
||||
%float_0 = OpConstant %float 0
|
||||
%float_1_0 = OpConstant %float 1
|
||||
%main = OpFunction %void None %11
|
||||
%12 = OpLabel
|
||||
%r = OpVariable %_ptr_Function_float Function
|
||||
@ -38,7 +37,7 @@ OpStore %r %16
|
||||
OpStore %g %18
|
||||
%20 = OpLoad %float %r
|
||||
%21 = OpLoad %float %g
|
||||
%23 = OpCompositeConstruct %v4float %20 %21 %float_1_0 %float_1_0
|
||||
OpStore %sk_FragColor %23
|
||||
%22 = OpCompositeConstruct %v4float %20 %21 %float_1 %float_1
|
||||
OpStore %sk_FragColor %22
|
||||
OpReturn
|
||||
OpFunctionEnd
|
||||
|
@ -12,14 +12,14 @@ OpDecorate %sk_FragColor Location 0
|
||||
OpDecorate %sk_FragColor Index 0
|
||||
OpDecorate %sk_Clockwise RelaxedPrecision
|
||||
OpDecorate %sk_Clockwise BuiltIn FrontFacing
|
||||
OpDecorate %122 RelaxedPrecision
|
||||
OpDecorate %115 RelaxedPrecision
|
||||
OpDecorate %117 RelaxedPrecision
|
||||
OpDecorate %118 RelaxedPrecision
|
||||
OpDecorate %120 RelaxedPrecision
|
||||
OpDecorate %121 RelaxedPrecision
|
||||
OpDecorate %123 RelaxedPrecision
|
||||
OpDecorate %124 RelaxedPrecision
|
||||
OpDecorate %125 RelaxedPrecision
|
||||
OpDecorate %127 RelaxedPrecision
|
||||
OpDecorate %128 RelaxedPrecision
|
||||
OpDecorate %131 RelaxedPrecision
|
||||
OpDecorate %132 RelaxedPrecision
|
||||
OpDecorate %134 RelaxedPrecision
|
||||
OpDecorate %126 RelaxedPrecision
|
||||
%float = OpTypeFloat 32
|
||||
%v4float = OpTypeVector %float 4
|
||||
%_ptr_Output_v4float = OpTypePointer Output %v4float
|
||||
@ -46,33 +46,26 @@ OpDecorate %134 RelaxedPrecision
|
||||
%float_12 = OpConstant %float 12
|
||||
%float_3 = OpConstant %float 3
|
||||
%28 = OpConstantComposite %v4float %float_12 %float_6 %float_4 %float_3
|
||||
%float_6_0 = OpConstant %float 6
|
||||
%float_1 = OpConstant %float 1
|
||||
%float_n2 = OpConstant %float -2
|
||||
%float_3_0 = OpConstant %float 3
|
||||
%float_4_0 = OpConstant %float 4
|
||||
%float_n5 = OpConstant %float -5
|
||||
%float_7_0 = OpConstant %float 7
|
||||
%float_n8 = OpConstant %float -8
|
||||
%float_9_0 = OpConstant %float 9
|
||||
%float_n10 = OpConstant %float -10
|
||||
%float_n11 = OpConstant %float -11
|
||||
%float_n12 = OpConstant %float -12
|
||||
%float_13 = OpConstant %float 13
|
||||
%float_n13 = OpConstant %float -13
|
||||
%float_1_0 = OpConstant %float 1
|
||||
%float_0 = OpConstant %float 0
|
||||
%73 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0
|
||||
%75 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0
|
||||
%76 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0
|
||||
%67 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0
|
||||
%69 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0
|
||||
%70 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0
|
||||
%79 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0
|
||||
%80 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0
|
||||
%85 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0
|
||||
%86 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0
|
||||
%float_13_0 = OpConstant %float 13
|
||||
%92 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0
|
||||
%93 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0
|
||||
%float_16 = OpConstant %float 16
|
||||
%float_17 = OpConstant %float 17
|
||||
%100 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0
|
||||
%93 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0
|
||||
%float_19 = OpConstant %float 19
|
||||
%float_19_5 = OpConstant %float 19.5
|
||||
%float_20 = OpConstant %float 20
|
||||
@ -80,11 +73,10 @@ OpDecorate %134 RelaxedPrecision
|
||||
%float_22 = OpConstant %float 22
|
||||
%float_23 = OpConstant %float 23
|
||||
%float_24 = OpConstant %float 24
|
||||
%123 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
|
||||
%126 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
|
||||
%float_2_0 = OpConstant %float 2
|
||||
%129 = OpConstantComposite %v4float %float_2_0 %float_2_0 %float_2_0 %float_2_0
|
||||
%133 = OpConstantComposite %v4float %float_2_0 %float_2_0 %float_2_0 %float_2_0
|
||||
%116 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
|
||||
%119 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
|
||||
%122 = OpConstantComposite %v4float %float_2 %float_2 %float_2 %float_2
|
||||
%125 = OpConstantComposite %v4float %float_2 %float_2 %float_2 %float_2
|
||||
%v4int = OpTypeVector %int 4
|
||||
%_ptr_Function_v4int = OpTypePointer Function %v4int
|
||||
%int_2 = OpConstant %int 2
|
||||
@ -93,27 +85,27 @@ OpDecorate %134 RelaxedPrecision
|
||||
%int_7 = OpConstant %int 7
|
||||
%int_9 = OpConstant %int 9
|
||||
%int_11 = OpConstant %int 11
|
||||
%141 = OpConstantComposite %v4int %int_6 %int_7 %int_9 %int_11
|
||||
%146 = OpConstantComposite %v4int %int_7 %int_9 %int_9 %int_9
|
||||
%133 = OpConstantComposite %v4int %int_6 %int_7 %int_9 %int_11
|
||||
%138 = OpConstantComposite %v4int %int_7 %int_9 %int_9 %int_9
|
||||
%int_4 = OpConstant %int 4
|
||||
%int_8 = OpConstant %int 8
|
||||
%147 = OpConstantComposite %v4int %int_2 %int_4 %int_6 %int_8
|
||||
%139 = OpConstantComposite %v4int %int_2 %int_4 %int_6 %int_8
|
||||
%int_12 = OpConstant %int 12
|
||||
%int_3 = OpConstant %int 3
|
||||
%150 = OpConstantComposite %v4int %int_12 %int_6 %int_4 %int_3
|
||||
%170 = OpConstantComposite %v4int %int_0 %int_0 %int_0 %int_0
|
||||
%171 = OpConstantComposite %v4int %int_0 %int_0 %int_0 %int_0
|
||||
%172 = OpConstantComposite %v4int %int_0 %int_0 %int_0 %int_0
|
||||
%142 = OpConstantComposite %v4int %int_12 %int_6 %int_4 %int_3
|
||||
%162 = OpConstantComposite %v4int %int_0 %int_0 %int_0 %int_0
|
||||
%163 = OpConstantComposite %v4int %int_0 %int_0 %int_0 %int_0
|
||||
%164 = OpConstantComposite %v4int %int_0 %int_0 %int_0 %int_0
|
||||
%177 = OpConstantComposite %v4int %int_0 %int_0 %int_0 %int_0
|
||||
%178 = OpConstantComposite %v4int %int_0 %int_0 %int_0 %int_0
|
||||
%185 = OpConstantComposite %v4int %int_0 %int_0 %int_0 %int_0
|
||||
%186 = OpConstantComposite %v4int %int_0 %int_0 %int_0 %int_0
|
||||
%193 = OpConstantComposite %v4int %int_0 %int_0 %int_0 %int_0
|
||||
%194 = OpConstantComposite %v4int %int_0 %int_0 %int_0 %int_0
|
||||
%201 = OpConstantComposite %v4int %int_0 %int_0 %int_0 %int_0
|
||||
%int_1 = OpConstant %int 1
|
||||
%224 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
|
||||
%228 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
|
||||
%231 = OpConstantComposite %v4int %int_2 %int_2 %int_2 %int_2
|
||||
%234 = OpConstantComposite %v4int %int_2 %int_2 %int_2 %int_2
|
||||
%216 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
|
||||
%220 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
|
||||
%223 = OpConstantComposite %v4int %int_2 %int_2 %int_2 %int_2
|
||||
%226 = OpConstantComposite %v4int %int_2 %int_2 %int_2 %int_2
|
||||
%main = OpFunction %void None %11
|
||||
%12 = OpLabel
|
||||
%_0_result = OpVariable %_ptr_Function_v4int Function
|
||||
@ -123,249 +115,249 @@ OpStore %sk_FragColor %18
|
||||
OpStore %sk_FragColor %23
|
||||
OpStore %sk_FragColor %24
|
||||
OpStore %sk_FragColor %28
|
||||
%32 = OpAccessChain %_ptr_Output_float %sk_FragColor %int_0
|
||||
OpStore %32 %float_6_0
|
||||
%34 = OpAccessChain %_ptr_Output_float %sk_FragColor %int_0
|
||||
OpStore %34 %float_1
|
||||
%31 = OpAccessChain %_ptr_Output_float %sk_FragColor %int_0
|
||||
OpStore %31 %float_6
|
||||
%33 = OpAccessChain %_ptr_Output_float %sk_FragColor %int_0
|
||||
OpStore %33 %float_1
|
||||
%35 = OpAccessChain %_ptr_Output_float %sk_FragColor %int_0
|
||||
OpStore %35 %float_n2
|
||||
%36 = OpAccessChain %_ptr_Output_float %sk_FragColor %int_0
|
||||
OpStore %36 %float_n2
|
||||
%38 = OpAccessChain %_ptr_Output_float %sk_FragColor %int_0
|
||||
OpStore %38 %float_3_0
|
||||
OpStore %36 %float_3
|
||||
%37 = OpAccessChain %_ptr_Output_float %sk_FragColor %int_0
|
||||
OpStore %37 %float_4
|
||||
%39 = OpAccessChain %_ptr_Output_float %sk_FragColor %int_0
|
||||
OpStore %39 %float_n5
|
||||
%40 = OpAccessChain %_ptr_Output_float %sk_FragColor %int_0
|
||||
OpStore %40 %float_4_0
|
||||
%42 = OpAccessChain %_ptr_Output_float %sk_FragColor %int_0
|
||||
OpStore %42 %float_n5
|
||||
OpStore %40 %float_6
|
||||
%41 = OpAccessChain %_ptr_Output_float %sk_FragColor %int_0
|
||||
OpStore %41 %float_7
|
||||
%43 = OpAccessChain %_ptr_Output_float %sk_FragColor %int_0
|
||||
OpStore %43 %float_6_0
|
||||
%45 = OpAccessChain %_ptr_Output_float %sk_FragColor %int_0
|
||||
OpStore %45 %float_7_0
|
||||
%47 = OpAccessChain %_ptr_Output_float %sk_FragColor %int_0
|
||||
OpStore %47 %float_n8
|
||||
%49 = OpAccessChain %_ptr_Output_float %sk_FragColor %int_0
|
||||
OpStore %49 %float_9_0
|
||||
%51 = OpAccessChain %_ptr_Output_float %sk_FragColor %int_0
|
||||
OpStore %51 %float_n10
|
||||
OpStore %43 %float_n8
|
||||
%44 = OpAccessChain %_ptr_Output_float %sk_FragColor %int_0
|
||||
OpStore %44 %float_9
|
||||
%46 = OpAccessChain %_ptr_Output_float %sk_FragColor %int_0
|
||||
OpStore %46 %float_n10
|
||||
%48 = OpAccessChain %_ptr_Output_float %sk_FragColor %int_0
|
||||
OpStore %48 %float_n11
|
||||
%50 = OpAccessChain %_ptr_Output_float %sk_FragColor %int_0
|
||||
OpStore %50 %float_n12
|
||||
%52 = OpAccessChain %_ptr_Output_float %sk_FragColor %int_0
|
||||
OpStore %52 %float_13
|
||||
%53 = OpAccessChain %_ptr_Output_float %sk_FragColor %int_0
|
||||
OpStore %53 %float_n11
|
||||
%54 = OpAccessChain %_ptr_Output_float %sk_FragColor %int_0
|
||||
OpStore %54 %float_n12
|
||||
%55 = OpAccessChain %_ptr_Output_float %sk_FragColor %int_0
|
||||
OpStore %55 %float_n12
|
||||
OpStore %55 %float_13
|
||||
%56 = OpAccessChain %_ptr_Output_float %sk_FragColor %int_0
|
||||
OpStore %56 %float_n11
|
||||
%57 = OpAccessChain %_ptr_Output_float %sk_FragColor %int_0
|
||||
OpStore %57 %float_13
|
||||
%58 = OpAccessChain %_ptr_Output_float %sk_FragColor %int_0
|
||||
OpStore %58 %float_n11
|
||||
OpStore %57 %float_n12
|
||||
%59 = OpAccessChain %_ptr_Output_float %sk_FragColor %int_0
|
||||
OpStore %59 %float_n12
|
||||
OpStore %59 %float_n13
|
||||
%60 = OpAccessChain %_ptr_Output_float %sk_FragColor %int_0
|
||||
OpStore %60 %float_13
|
||||
OpStore %60 %float_n11
|
||||
%61 = OpAccessChain %_ptr_Output_float %sk_FragColor %int_0
|
||||
OpStore %61 %float_n11
|
||||
OpStore %61 %float_n12
|
||||
%62 = OpAccessChain %_ptr_Output_float %sk_FragColor %int_0
|
||||
OpStore %62 %float_n12
|
||||
%64 = OpAccessChain %_ptr_Output_float %sk_FragColor %int_0
|
||||
OpStore %64 %float_n13
|
||||
%65 = OpAccessChain %_ptr_Output_float %sk_FragColor %int_0
|
||||
OpStore %65 %float_n11
|
||||
%66 = OpAccessChain %_ptr_Output_float %sk_FragColor %int_0
|
||||
OpStore %66 %float_n12
|
||||
%67 = OpAccessChain %_ptr_Output_float %sk_FragColor %int_0
|
||||
OpStore %67 %float_n13
|
||||
%68 = OpExtInst %float %1 Sqrt %float_1_0
|
||||
%70 = OpCompositeConstruct %v4float %68 %68 %68 %68
|
||||
OpStore %62 %float_n13
|
||||
%63 = OpExtInst %float %1 Sqrt %float_1
|
||||
%64 = OpCompositeConstruct %v4float %63 %63 %63 %63
|
||||
OpStore %sk_FragColor %64
|
||||
%65 = OpExtInst %float %1 Sqrt %float_2
|
||||
%66 = OpCompositeConstruct %v4float %65 %65 %65 %65
|
||||
OpStore %sk_FragColor %66
|
||||
OpStore %sk_FragColor %67
|
||||
OpStore %sk_FragColor %69
|
||||
OpStore %sk_FragColor %70
|
||||
%71 = OpExtInst %float %1 Sqrt %float_2
|
||||
%71 = OpExtInst %float %1 Sqrt %float_6
|
||||
%72 = OpCompositeConstruct %v4float %71 %71 %71 %71
|
||||
OpStore %sk_FragColor %72
|
||||
OpStore %sk_FragColor %73
|
||||
OpStore %sk_FragColor %75
|
||||
%73 = OpExtInst %float %1 Sqrt %float_7
|
||||
%74 = OpCompositeConstruct %v4float %73 %73 %73 %73
|
||||
OpStore %sk_FragColor %74
|
||||
%75 = OpExtInst %float %1 Sqrt %float_8
|
||||
%76 = OpCompositeConstruct %v4float %75 %75 %75 %75
|
||||
OpStore %sk_FragColor %76
|
||||
%77 = OpExtInst %float %1 Sqrt %float_6
|
||||
%77 = OpExtInst %float %1 Sqrt %float_9
|
||||
%78 = OpCompositeConstruct %v4float %77 %77 %77 %77
|
||||
OpStore %sk_FragColor %78
|
||||
%79 = OpExtInst %float %1 Sqrt %float_7
|
||||
%80 = OpCompositeConstruct %v4float %79 %79 %79 %79
|
||||
OpStore %sk_FragColor %79
|
||||
OpStore %sk_FragColor %80
|
||||
%81 = OpExtInst %float %1 Sqrt %float_8
|
||||
%81 = OpExtInst %float %1 Sqrt %float_12
|
||||
%82 = OpCompositeConstruct %v4float %81 %81 %81 %81
|
||||
OpStore %sk_FragColor %82
|
||||
%83 = OpExtInst %float %1 Sqrt %float_9
|
||||
%83 = OpExtInst %float %1 Sqrt %float_13
|
||||
%84 = OpCompositeConstruct %v4float %83 %83 %83 %83
|
||||
OpStore %sk_FragColor %84
|
||||
OpStore %sk_FragColor %85
|
||||
OpStore %sk_FragColor %86
|
||||
%87 = OpExtInst %float %1 Sqrt %float_12
|
||||
%88 = OpCompositeConstruct %v4float %87 %87 %87 %87
|
||||
OpStore %sk_FragColor %88
|
||||
%89 = OpExtInst %float %1 Sqrt %float_13_0
|
||||
%91 = OpCompositeConstruct %v4float %89 %89 %89 %89
|
||||
OpStore %sk_FragColor %91
|
||||
%87 = OpExtInst %float %1 Sqrt %float_16
|
||||
%89 = OpCompositeConstruct %v4float %87 %87 %87 %87
|
||||
OpStore %sk_FragColor %89
|
||||
%90 = OpExtInst %float %1 Sqrt %float_17
|
||||
%92 = OpCompositeConstruct %v4float %90 %90 %90 %90
|
||||
OpStore %sk_FragColor %92
|
||||
OpStore %sk_FragColor %93
|
||||
%94 = OpExtInst %float %1 Sqrt %float_16
|
||||
%94 = OpExtInst %float %1 Sqrt %float_19
|
||||
%96 = OpCompositeConstruct %v4float %94 %94 %94 %94
|
||||
OpStore %sk_FragColor %96
|
||||
%97 = OpExtInst %float %1 Sqrt %float_17
|
||||
%97 = OpExtInst %float %1 Sqrt %float_19_5
|
||||
%99 = OpCompositeConstruct %v4float %97 %97 %97 %97
|
||||
OpStore %sk_FragColor %99
|
||||
OpStore %sk_FragColor %100
|
||||
%101 = OpExtInst %float %1 Sqrt %float_19
|
||||
%103 = OpCompositeConstruct %v4float %101 %101 %101 %101
|
||||
OpStore %sk_FragColor %103
|
||||
%104 = OpExtInst %float %1 Sqrt %float_19_5
|
||||
%106 = OpCompositeConstruct %v4float %104 %104 %104 %104
|
||||
OpStore %sk_FragColor %106
|
||||
%107 = OpExtInst %float %1 Sqrt %float_20
|
||||
%109 = OpCompositeConstruct %v4float %107 %107 %107 %107
|
||||
OpStore %sk_FragColor %109
|
||||
%110 = OpExtInst %float %1 Sqrt %float_21
|
||||
%112 = OpCompositeConstruct %v4float %110 %110 %110 %110
|
||||
OpStore %sk_FragColor %112
|
||||
%113 = OpExtInst %float %1 Sqrt %float_22
|
||||
%115 = OpCompositeConstruct %v4float %113 %113 %113 %113
|
||||
OpStore %sk_FragColor %115
|
||||
%116 = OpExtInst %float %1 Sqrt %float_23
|
||||
%118 = OpCompositeConstruct %v4float %116 %116 %116 %116
|
||||
OpStore %sk_FragColor %118
|
||||
%119 = OpExtInst %float %1 Sqrt %float_24
|
||||
%121 = OpCompositeConstruct %v4float %119 %119 %119 %119
|
||||
OpStore %sk_FragColor %121
|
||||
%122 = OpLoad %v4float %sk_FragColor
|
||||
%124 = OpFAdd %v4float %122 %123
|
||||
OpStore %sk_FragColor %124
|
||||
%125 = OpLoad %v4float %sk_FragColor
|
||||
%127 = OpFSub %v4float %125 %126
|
||||
OpStore %sk_FragColor %127
|
||||
%128 = OpLoad %v4float %sk_FragColor
|
||||
%131 = OpFMul %v4float %128 %129
|
||||
OpStore %sk_FragColor %131
|
||||
%132 = OpLoad %v4float %sk_FragColor
|
||||
%134 = OpFDiv %v4float %132 %133
|
||||
OpStore %sk_FragColor %134
|
||||
%139 = OpAccessChain %_ptr_Function_int %_0_result %int_0
|
||||
OpStore %139 %int_2
|
||||
OpStore %_0_result %141
|
||||
OpStore %_0_result %146
|
||||
OpStore %_0_result %147
|
||||
OpStore %_0_result %150
|
||||
%100 = OpExtInst %float %1 Sqrt %float_20
|
||||
%102 = OpCompositeConstruct %v4float %100 %100 %100 %100
|
||||
OpStore %sk_FragColor %102
|
||||
%103 = OpExtInst %float %1 Sqrt %float_21
|
||||
%105 = OpCompositeConstruct %v4float %103 %103 %103 %103
|
||||
OpStore %sk_FragColor %105
|
||||
%106 = OpExtInst %float %1 Sqrt %float_22
|
||||
%108 = OpCompositeConstruct %v4float %106 %106 %106 %106
|
||||
OpStore %sk_FragColor %108
|
||||
%109 = OpExtInst %float %1 Sqrt %float_23
|
||||
%111 = OpCompositeConstruct %v4float %109 %109 %109 %109
|
||||
OpStore %sk_FragColor %111
|
||||
%112 = OpExtInst %float %1 Sqrt %float_24
|
||||
%114 = OpCompositeConstruct %v4float %112 %112 %112 %112
|
||||
OpStore %sk_FragColor %114
|
||||
%115 = OpLoad %v4float %sk_FragColor
|
||||
%117 = OpFAdd %v4float %115 %116
|
||||
OpStore %sk_FragColor %117
|
||||
%118 = OpLoad %v4float %sk_FragColor
|
||||
%120 = OpFSub %v4float %118 %119
|
||||
OpStore %sk_FragColor %120
|
||||
%121 = OpLoad %v4float %sk_FragColor
|
||||
%123 = OpFMul %v4float %121 %122
|
||||
OpStore %sk_FragColor %123
|
||||
%124 = OpLoad %v4float %sk_FragColor
|
||||
%126 = OpFDiv %v4float %124 %125
|
||||
OpStore %sk_FragColor %126
|
||||
%131 = OpAccessChain %_ptr_Function_int %_0_result %int_0
|
||||
OpStore %131 %int_2
|
||||
OpStore %_0_result %133
|
||||
OpStore %_0_result %138
|
||||
OpStore %_0_result %139
|
||||
OpStore %_0_result %142
|
||||
%145 = OpAccessChain %_ptr_Output_float %sk_FragColor %int_0
|
||||
OpStore %145 %float_6
|
||||
%146 = OpAccessChain %_ptr_Output_float %sk_FragColor %int_0
|
||||
OpStore %146 %float_1
|
||||
%147 = OpAccessChain %_ptr_Output_float %sk_FragColor %int_0
|
||||
OpStore %147 %float_n2
|
||||
%148 = OpAccessChain %_ptr_Output_float %sk_FragColor %int_0
|
||||
OpStore %148 %float_3
|
||||
%149 = OpAccessChain %_ptr_Output_float %sk_FragColor %int_0
|
||||
OpStore %149 %float_4
|
||||
%150 = OpAccessChain %_ptr_Output_float %sk_FragColor %int_0
|
||||
OpStore %150 %float_n5
|
||||
%151 = OpAccessChain %_ptr_Output_float %sk_FragColor %int_0
|
||||
OpStore %151 %float_6
|
||||
%152 = OpAccessChain %_ptr_Output_float %sk_FragColor %int_0
|
||||
OpStore %152 %float_7
|
||||
%153 = OpAccessChain %_ptr_Output_float %sk_FragColor %int_0
|
||||
OpStore %153 %float_6_0
|
||||
OpStore %153 %float_n8
|
||||
%154 = OpAccessChain %_ptr_Output_float %sk_FragColor %int_0
|
||||
OpStore %154 %float_1
|
||||
OpStore %154 %float_9
|
||||
%155 = OpAccessChain %_ptr_Output_float %sk_FragColor %int_0
|
||||
OpStore %155 %float_n2
|
||||
%156 = OpAccessChain %_ptr_Output_float %sk_FragColor %int_0
|
||||
OpStore %156 %float_3_0
|
||||
%157 = OpAccessChain %_ptr_Output_float %sk_FragColor %int_0
|
||||
OpStore %157 %float_4_0
|
||||
%158 = OpAccessChain %_ptr_Output_float %sk_FragColor %int_0
|
||||
OpStore %158 %float_n5
|
||||
%159 = OpAccessChain %_ptr_Output_float %sk_FragColor %int_0
|
||||
OpStore %159 %float_6_0
|
||||
%160 = OpAccessChain %_ptr_Output_float %sk_FragColor %int_0
|
||||
OpStore %160 %float_7_0
|
||||
%161 = OpAccessChain %_ptr_Output_float %sk_FragColor %int_0
|
||||
OpStore %161 %float_n8
|
||||
%162 = OpAccessChain %_ptr_Output_float %sk_FragColor %int_0
|
||||
OpStore %162 %float_9_0
|
||||
%163 = OpAccessChain %_ptr_Output_float %sk_FragColor %int_0
|
||||
OpStore %163 %float_n10
|
||||
%165 = OpExtInst %float %1 Sqrt %float_1_0
|
||||
%164 = OpConvertFToS %int %165
|
||||
%166 = OpCompositeConstruct %v4int %164 %164 %164 %164
|
||||
OpStore %_0_result %166
|
||||
%168 = OpExtInst %float %1 Sqrt %float_2
|
||||
%167 = OpConvertFToS %int %168
|
||||
%169 = OpCompositeConstruct %v4int %167 %167 %167 %167
|
||||
OpStore %_0_result %169
|
||||
OpStore %155 %float_n10
|
||||
%157 = OpExtInst %float %1 Sqrt %float_1
|
||||
%156 = OpConvertFToS %int %157
|
||||
%158 = OpCompositeConstruct %v4int %156 %156 %156 %156
|
||||
OpStore %_0_result %158
|
||||
%160 = OpExtInst %float %1 Sqrt %float_2
|
||||
%159 = OpConvertFToS %int %160
|
||||
%161 = OpCompositeConstruct %v4int %159 %159 %159 %159
|
||||
OpStore %_0_result %161
|
||||
OpStore %_0_result %162
|
||||
OpStore %_0_result %163
|
||||
OpStore %_0_result %164
|
||||
%166 = OpExtInst %float %1 Sqrt %float_6
|
||||
%165 = OpConvertFToS %int %166
|
||||
%167 = OpCompositeConstruct %v4int %165 %165 %165 %165
|
||||
OpStore %_0_result %167
|
||||
%169 = OpExtInst %float %1 Sqrt %float_7
|
||||
%168 = OpConvertFToS %int %169
|
||||
%170 = OpCompositeConstruct %v4int %168 %168 %168 %168
|
||||
OpStore %_0_result %170
|
||||
OpStore %_0_result %171
|
||||
OpStore %_0_result %172
|
||||
%174 = OpExtInst %float %1 Sqrt %float_6
|
||||
%173 = OpConvertFToS %int %174
|
||||
%175 = OpCompositeConstruct %v4int %173 %173 %173 %173
|
||||
OpStore %_0_result %175
|
||||
%177 = OpExtInst %float %1 Sqrt %float_7
|
||||
%176 = OpConvertFToS %int %177
|
||||
%178 = OpCompositeConstruct %v4int %176 %176 %176 %176
|
||||
%172 = OpExtInst %float %1 Sqrt %float_8
|
||||
%171 = OpConvertFToS %int %172
|
||||
%173 = OpCompositeConstruct %v4int %171 %171 %171 %171
|
||||
OpStore %_0_result %173
|
||||
%175 = OpExtInst %float %1 Sqrt %float_9
|
||||
%174 = OpConvertFToS %int %175
|
||||
%176 = OpCompositeConstruct %v4int %174 %174 %174 %174
|
||||
OpStore %_0_result %176
|
||||
OpStore %_0_result %177
|
||||
OpStore %_0_result %178
|
||||
%180 = OpExtInst %float %1 Sqrt %float_8
|
||||
%180 = OpExtInst %float %1 Sqrt %float_12
|
||||
%179 = OpConvertFToS %int %180
|
||||
%181 = OpCompositeConstruct %v4int %179 %179 %179 %179
|
||||
OpStore %_0_result %181
|
||||
%183 = OpExtInst %float %1 Sqrt %float_9
|
||||
%183 = OpExtInst %float %1 Sqrt %float_13
|
||||
%182 = OpConvertFToS %int %183
|
||||
%184 = OpCompositeConstruct %v4int %182 %182 %182 %182
|
||||
OpStore %_0_result %184
|
||||
OpStore %_0_result %185
|
||||
OpStore %_0_result %186
|
||||
%188 = OpExtInst %float %1 Sqrt %float_12
|
||||
%188 = OpExtInst %float %1 Sqrt %float_16
|
||||
%187 = OpConvertFToS %int %188
|
||||
%189 = OpCompositeConstruct %v4int %187 %187 %187 %187
|
||||
OpStore %_0_result %189
|
||||
%191 = OpExtInst %float %1 Sqrt %float_13_0
|
||||
%191 = OpExtInst %float %1 Sqrt %float_17
|
||||
%190 = OpConvertFToS %int %191
|
||||
%192 = OpCompositeConstruct %v4int %190 %190 %190 %190
|
||||
OpStore %_0_result %192
|
||||
OpStore %_0_result %193
|
||||
OpStore %_0_result %194
|
||||
%196 = OpExtInst %float %1 Sqrt %float_16
|
||||
%195 = OpConvertFToS %int %196
|
||||
%197 = OpCompositeConstruct %v4int %195 %195 %195 %195
|
||||
OpStore %_0_result %197
|
||||
%199 = OpExtInst %float %1 Sqrt %float_17
|
||||
%198 = OpConvertFToS %int %199
|
||||
%200 = OpCompositeConstruct %v4int %198 %198 %198 %198
|
||||
OpStore %_0_result %200
|
||||
OpStore %_0_result %201
|
||||
%203 = OpExtInst %float %1 Sqrt %float_19
|
||||
%202 = OpConvertFToS %int %203
|
||||
%204 = OpCompositeConstruct %v4int %202 %202 %202 %202
|
||||
OpStore %_0_result %204
|
||||
%206 = OpExtInst %float %1 Sqrt %float_19_5
|
||||
%205 = OpConvertFToS %int %206
|
||||
%207 = OpCompositeConstruct %v4int %205 %205 %205 %205
|
||||
OpStore %_0_result %207
|
||||
%209 = OpExtInst %float %1 Sqrt %float_20
|
||||
%208 = OpConvertFToS %int %209
|
||||
%210 = OpCompositeConstruct %v4int %208 %208 %208 %208
|
||||
OpStore %_0_result %210
|
||||
%212 = OpExtInst %float %1 Sqrt %float_21
|
||||
%211 = OpConvertFToS %int %212
|
||||
%213 = OpCompositeConstruct %v4int %211 %211 %211 %211
|
||||
OpStore %_0_result %213
|
||||
%215 = OpExtInst %float %1 Sqrt %float_22
|
||||
%214 = OpConvertFToS %int %215
|
||||
%216 = OpCompositeConstruct %v4int %214 %214 %214 %214
|
||||
OpStore %_0_result %216
|
||||
%218 = OpExtInst %float %1 Sqrt %float_23
|
||||
%217 = OpConvertFToS %int %218
|
||||
%219 = OpCompositeConstruct %v4int %217 %217 %217 %217
|
||||
OpStore %_0_result %219
|
||||
%221 = OpExtInst %float %1 Sqrt %float_24
|
||||
%220 = OpConvertFToS %int %221
|
||||
%222 = OpCompositeConstruct %v4int %220 %220 %220 %220
|
||||
OpStore %_0_result %222
|
||||
%223 = OpLoad %v4int %_0_result
|
||||
%226 = OpIAdd %v4int %223 %224
|
||||
OpStore %_0_result %226
|
||||
%227 = OpLoad %v4int %_0_result
|
||||
%229 = OpISub %v4int %227 %228
|
||||
OpStore %_0_result %229
|
||||
%230 = OpLoad %v4int %_0_result
|
||||
%232 = OpIMul %v4int %230 %231
|
||||
OpStore %_0_result %232
|
||||
%233 = OpLoad %v4int %_0_result
|
||||
%235 = OpSDiv %v4int %233 %234
|
||||
OpStore %_0_result %235
|
||||
%236 = OpLoad %v4int %_0_result
|
||||
%237 = OpCompositeExtract %int %236 0
|
||||
%238 = OpConvertSToF %float %237
|
||||
%239 = OpCompositeExtract %int %236 1
|
||||
%240 = OpConvertSToF %float %239
|
||||
%241 = OpCompositeExtract %int %236 2
|
||||
%242 = OpConvertSToF %float %241
|
||||
%243 = OpCompositeExtract %int %236 3
|
||||
%244 = OpConvertSToF %float %243
|
||||
%245 = OpCompositeConstruct %v4float %238 %240 %242 %244
|
||||
OpStore %sk_FragColor %245
|
||||
%195 = OpExtInst %float %1 Sqrt %float_19
|
||||
%194 = OpConvertFToS %int %195
|
||||
%196 = OpCompositeConstruct %v4int %194 %194 %194 %194
|
||||
OpStore %_0_result %196
|
||||
%198 = OpExtInst %float %1 Sqrt %float_19_5
|
||||
%197 = OpConvertFToS %int %198
|
||||
%199 = OpCompositeConstruct %v4int %197 %197 %197 %197
|
||||
OpStore %_0_result %199
|
||||
%201 = OpExtInst %float %1 Sqrt %float_20
|
||||
%200 = OpConvertFToS %int %201
|
||||
%202 = OpCompositeConstruct %v4int %200 %200 %200 %200
|
||||
OpStore %_0_result %202
|
||||
%204 = OpExtInst %float %1 Sqrt %float_21
|
||||
%203 = OpConvertFToS %int %204
|
||||
%205 = OpCompositeConstruct %v4int %203 %203 %203 %203
|
||||
OpStore %_0_result %205
|
||||
%207 = OpExtInst %float %1 Sqrt %float_22
|
||||
%206 = OpConvertFToS %int %207
|
||||
%208 = OpCompositeConstruct %v4int %206 %206 %206 %206
|
||||
OpStore %_0_result %208
|
||||
%210 = OpExtInst %float %1 Sqrt %float_23
|
||||
%209 = OpConvertFToS %int %210
|
||||
%211 = OpCompositeConstruct %v4int %209 %209 %209 %209
|
||||
OpStore %_0_result %211
|
||||
%213 = OpExtInst %float %1 Sqrt %float_24
|
||||
%212 = OpConvertFToS %int %213
|
||||
%214 = OpCompositeConstruct %v4int %212 %212 %212 %212
|
||||
OpStore %_0_result %214
|
||||
%215 = OpLoad %v4int %_0_result
|
||||
%218 = OpIAdd %v4int %215 %216
|
||||
OpStore %_0_result %218
|
||||
%219 = OpLoad %v4int %_0_result
|
||||
%221 = OpISub %v4int %219 %220
|
||||
OpStore %_0_result %221
|
||||
%222 = OpLoad %v4int %_0_result
|
||||
%224 = OpIMul %v4int %222 %223
|
||||
OpStore %_0_result %224
|
||||
%225 = OpLoad %v4int %_0_result
|
||||
%227 = OpSDiv %v4int %225 %226
|
||||
OpStore %_0_result %227
|
||||
%228 = OpLoad %v4int %_0_result
|
||||
%229 = OpCompositeExtract %int %228 0
|
||||
%230 = OpConvertSToF %float %229
|
||||
%231 = OpCompositeExtract %int %228 1
|
||||
%232 = OpConvertSToF %float %231
|
||||
%233 = OpCompositeExtract %int %228 2
|
||||
%234 = OpConvertSToF %float %233
|
||||
%235 = OpCompositeExtract %int %228 3
|
||||
%236 = OpConvertSToF %float %235
|
||||
%237 = OpCompositeConstruct %v4float %230 %232 %234 %236
|
||||
OpStore %sk_FragColor %237
|
||||
OpReturn
|
||||
OpFunctionEnd
|
||||
|
Loading…
Reference in New Issue
Block a user