dawn-cmake/test/unittest/reader/spirv/SpvParserFunctionVarTest_EmitStatement_Phi_FromHeaderAndThen.spvasm.expected.msl
David Neto d1a026ecd0 Add end-to-end corpus from Tint SPIR-V Reader
Add the unit tests samples from src/reader/spirv when:
- they are valid for Vulkan 1.0 (plus some common extensions)
- they should translate to valid WGSL

Bug: tint:1043
Change-Id: I40a01990dbc40aff5cf7ace0b1aabfd0e437f638
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/60000
Commit-Queue: Ben Clayton <bclayton@google.com>
Kokoro: David Neto <dneto@google.com>
Reviewed-by: Ben Clayton <bclayton@google.com>
Reviewed-by: James Price <jrprice@google.com>
2021-07-30 16:03:06 +00:00

53 lines
1.0 KiB
Plaintext

#include <metal_stdlib>
using namespace metal;
struct tint_array_wrapper {
uint arr[2];
};
struct S {
uint field0;
float field1;
tint_array_wrapper field2;
};
void main_1(thread bool* const tint_symbol_1, thread bool* const tint_symbol_2, thread uint* const tint_symbol_3) {
bool const x_101 = *(tint_symbol_1);
bool const x_102 = *(tint_symbol_2);
while (true) {
uint x_2_phi = 0u;
if (x_101) {
break;
}
x_2_phi = 0u;
if (x_102) {
x_2_phi = 1u;
{
uint const x_2 = x_2_phi;
*(tint_symbol_3) = x_2;
}
continue;
} else {
{
uint const x_2 = x_2_phi;
*(tint_symbol_3) = x_2;
}
continue;
}
return;
{
uint const x_2 = x_2_phi;
*(tint_symbol_3) = x_2;
}
}
return;
}
fragment void tint_symbol() {
thread bool tint_symbol_4 = false;
thread bool tint_symbol_5 = false;
thread uint tint_symbol_6 = 0u;
main_1(&(tint_symbol_4), &(tint_symbol_5), &(tint_symbol_6));
return;
}