dawn-cmake/test/tint/bug/tint/1520.spvasm.expected.msl

183 lines
5.5 KiB
Plaintext

#include <metal_stdlib>
using namespace metal;
template<typename T, size_t N>
struct tint_array {
const constant T& operator[](size_t i) const constant { return elements[i]; }
device T& operator[](size_t i) device { return elements[i]; }
const device T& operator[](size_t i) const device { return elements[i]; }
thread T& operator[](size_t i) thread { return elements[i]; }
const thread T& operator[](size_t i) const thread { return elements[i]; }
threadgroup T& operator[](size_t i) threadgroup { return elements[i]; }
const threadgroup T& operator[](size_t i) const threadgroup { return elements[i]; }
T elements[N];
};
struct UniformBuffer {
/* 0x0000 */ tint_array<int8_t, 16> tint_pad;
/* 0x0010 */ float unknownInput_S1_c0;
/* 0x0014 */ tint_array<int8_t, 12> tint_pad_1;
/* 0x0020 */ float4 ucolorRed_S1_c0;
/* 0x0030 */ float4 ucolorGreen_S1_c0;
/* 0x0040 */ float3x3 umatrix_S1;
};
bool test_int_S1_c0_b(const constant UniformBuffer* const tint_symbol_5) {
int unknown = 0;
bool ok = false;
int4 val = 0;
bool x_40 = false;
bool x_41 = false;
bool x_54 = false;
bool x_55 = false;
bool x_65 = false;
bool x_66 = false;
float const x_26 = (*(tint_symbol_5)).unknownInput_S1_c0;
int const x_27 = int(x_26);
unknown = x_27;
ok = true;
x_41 = false;
if (true) {
x_40 = all(((int4(0) / int4(x_27, x_27, x_27, x_27)) == int4(0)));
x_41 = x_40;
}
ok = x_41;
int4 const x_44 = int4(x_27, x_27, x_27, x_27);
val = x_44;
int4 const x_47 = as_type<int4>((as_type<uint4>(int4(x_44)) + as_type<uint4>(int4(int4(1)))));
val = x_47;
int4 const x_48 = as_type<int4>((as_type<uint4>(int4(x_47)) - as_type<uint4>(int4(int4(1)))));
val = x_48;
int4 const x_49 = as_type<int4>((as_type<uint4>(int4(x_48)) + as_type<uint4>(int4(int4(1)))));
val = x_49;
int4 const x_50 = as_type<int4>((as_type<uint4>(int4(x_49)) - as_type<uint4>(int4(int4(1)))));
val = x_50;
x_55 = false;
if (x_41) {
x_54 = all((x_50 == x_44));
x_55 = x_54;
}
ok = x_55;
int4 const x_58 = as_type<int4>((as_type<uint4>(int4(x_50)) * as_type<uint4>(int4(int4(2)))));
val = x_58;
int4 const x_59 = (x_58 / int4(2));
val = x_59;
int4 const x_60 = as_type<int4>((as_type<uint4>(int4(x_59)) * as_type<uint4>(int4(int4(2)))));
val = x_60;
int4 const x_61 = (x_60 / int4(2));
val = x_61;
x_66 = false;
if (x_55) {
x_65 = all((x_61 == x_44));
x_66 = x_65;
}
ok = x_66;
return x_66;
}
void main_1(thread float4* const tint_symbol_6, const constant UniformBuffer* const tint_symbol_7, thread float4* const tint_symbol_8) {
float4 outputColor_S0 = 0.0f;
float4 output_S1 = 0.0f;
float x_8_unknown = 0.0f;
bool x_9_ok = false;
float4 x_10_val = 0.0f;
float4 x_116 = 0.0f;
bool x_86 = false;
bool x_87 = false;
bool x_99 = false;
bool x_100 = false;
bool x_110 = false;
bool x_111 = false;
bool x_114 = false;
bool x_115 = false;
float4 const x_72 = *(tint_symbol_6);
outputColor_S0 = x_72;
float const x_77 = (*(tint_symbol_7)).unknownInput_S1_c0;
x_8_unknown = x_77;
x_9_ok = true;
x_87 = false;
if (true) {
x_86 = all(((float4(0.0f) / float4(x_77, x_77, x_77, x_77)) == float4(0.0f)));
x_87 = x_86;
}
x_9_ok = x_87;
float4 const x_89 = float4(x_77, x_77, x_77, x_77);
x_10_val = x_89;
float4 const x_92 = (x_89 + float4(1.0f));
x_10_val = x_92;
float4 const x_93 = (x_92 - float4(1.0f));
x_10_val = x_93;
float4 const x_94 = (x_93 + float4(1.0f));
x_10_val = x_94;
float4 const x_95 = (x_94 - float4(1.0f));
x_10_val = x_95;
x_100 = false;
if (x_87) {
x_99 = all((x_95 == x_89));
x_100 = x_99;
}
x_9_ok = x_100;
float4 const x_103 = (x_95 * float4(2.0f));
x_10_val = x_103;
float4 const x_104 = (x_103 / float4(2.0f));
x_10_val = x_104;
float4 const x_105 = (x_104 * float4(2.0f));
x_10_val = x_105;
float4 const x_106 = (x_105 / float4(2.0f));
x_10_val = x_106;
x_111 = false;
if (x_100) {
x_110 = all((x_106 == x_89));
x_111 = x_110;
}
x_9_ok = x_111;
x_115 = false;
if (x_111) {
x_114 = test_int_S1_c0_b(tint_symbol_7);
x_115 = x_114;
}
if (x_115) {
float4 const x_122 = (*(tint_symbol_7)).ucolorGreen_S1_c0;
x_116 = x_122;
} else {
float4 const x_124 = (*(tint_symbol_7)).ucolorRed_S1_c0;
x_116 = x_124;
}
float4 const x_125 = x_116;
output_S1 = x_125;
*(tint_symbol_8) = x_125;
return;
}
struct main_out {
float4 sk_FragColor_1;
};
struct tint_symbol_2 {
float4 vcolor_S0_param [[user(locn0)]];
};
struct tint_symbol_3 {
float4 sk_FragColor_1 [[color(0)]];
};
main_out tint_symbol_inner(bool sk_Clockwise_param, float4 vcolor_S0_param, thread float4* const tint_symbol_10, const constant UniformBuffer* const tint_symbol_11, thread float4* const tint_symbol_12) {
thread bool tint_symbol_9 = false;
tint_symbol_9 = sk_Clockwise_param;
*(tint_symbol_10) = vcolor_S0_param;
main_1(tint_symbol_10, tint_symbol_11, tint_symbol_12);
main_out const tint_symbol_4 = {.sk_FragColor_1=*(tint_symbol_12)};
return tint_symbol_4;
}
fragment tint_symbol_3 tint_symbol(const constant UniformBuffer* tint_symbol_14 [[buffer(0)]], bool sk_Clockwise_param [[front_facing]], tint_symbol_2 tint_symbol_1 [[stage_in]]) {
thread float4 tint_symbol_13 = 0.0f;
thread float4 tint_symbol_15 = 0.0f;
main_out const inner_result = tint_symbol_inner(sk_Clockwise_param, tint_symbol_1.vcolor_S0_param, &(tint_symbol_13), tint_symbol_14, &(tint_symbol_15));
tint_symbol_3 wrapper_result = {};
wrapper_result.sk_FragColor_1 = inner_result.sk_FragColor_1;
return wrapper_result;
}