mirror of
https://github.com/encounter/dawn-cmake.git
synced 2025-12-16 00:17:03 +00:00
test: Remove many expected files
For these tests, we only really care that we can successfully consume them and generate valid output for each backend. Having the expected files in the tree generates significant churn for any change to how we generate backend code, which makes it hard to inspect diffs. Change-Id: Ic98c248081144c0fb1791f1303eaf6d459548e3d Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/62720 Reviewed-by: Ben Clayton <bclayton@google.com> Kokoro: Kokoro <noreply+kokoro@google.com> Commit-Queue: James Price <jrprice@google.com>
This commit is contained in:
committed by
Tint LUCI CQ
parent
568136dd10
commit
87cce20f67
@@ -1,71 +0,0 @@
|
||||
struct S {
|
||||
int x;
|
||||
int y;
|
||||
};
|
||||
|
||||
cbuffer cbuffer_x_10 : register(b0, space0) {
|
||||
uint4 x_10[1];
|
||||
};
|
||||
static float4 x_GLF_color = float4(0.0f, 0.0f, 0.0f, 0.0f);
|
||||
|
||||
void func_struct_S_i1_i11_(inout S arg) {
|
||||
arg.y = 1;
|
||||
return;
|
||||
}
|
||||
|
||||
void main_1() {
|
||||
float a = 0.0f;
|
||||
S b[2] = (S[2])0;
|
||||
S param = (S)0;
|
||||
a = 5.0f;
|
||||
while (true) {
|
||||
const int x_43 = asint(x_10[0].x);
|
||||
b[x_43].x = 1;
|
||||
const int x_46 = b[1].x;
|
||||
if ((x_46 == 1)) {
|
||||
const int x_51 = asint(x_10[0].x);
|
||||
if ((x_51 == 1)) {
|
||||
break;
|
||||
}
|
||||
const S x_56 = b[1];
|
||||
param = x_56;
|
||||
func_struct_S_i1_i11_(param);
|
||||
b[1] = param;
|
||||
const int x_61 = b[1].y;
|
||||
a = float(x_61);
|
||||
}
|
||||
a = 0.0f;
|
||||
{
|
||||
if (false) {
|
||||
} else {
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
if ((a == 5.0f)) {
|
||||
x_GLF_color = float4(1.0f, 0.0f, 0.0f, 1.0f);
|
||||
} else {
|
||||
x_GLF_color = float4(0.0f, 0.0f, 0.0f, 0.0f);
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
struct main_out {
|
||||
float4 x_GLF_color_1;
|
||||
};
|
||||
struct tint_symbol {
|
||||
float4 x_GLF_color_1 : SV_Target0;
|
||||
};
|
||||
|
||||
main_out main_inner() {
|
||||
main_1();
|
||||
const main_out tint_symbol_2 = {x_GLF_color};
|
||||
return tint_symbol_2;
|
||||
}
|
||||
|
||||
tint_symbol main() {
|
||||
const main_out inner_result = main_inner();
|
||||
tint_symbol wrapper_result = (tint_symbol)0;
|
||||
wrapper_result.x_GLF_color_1 = inner_result.x_GLF_color_1;
|
||||
return wrapper_result;
|
||||
}
|
||||
@@ -1,78 +0,0 @@
|
||||
#include <metal_stdlib>
|
||||
|
||||
using namespace metal;
|
||||
struct S {
|
||||
int x;
|
||||
int y;
|
||||
};
|
||||
struct buf0 {
|
||||
/* 0x0000 */ int one;
|
||||
};
|
||||
struct tint_array_wrapper {
|
||||
S arr[2];
|
||||
};
|
||||
struct main_out {
|
||||
float4 x_GLF_color_1;
|
||||
};
|
||||
struct tint_symbol_1 {
|
||||
float4 x_GLF_color_1 [[color(0)]];
|
||||
};
|
||||
|
||||
void func_struct_S_i1_i11_(thread S* const arg) {
|
||||
(*(arg)).y = 1;
|
||||
return;
|
||||
}
|
||||
|
||||
void main_1(constant buf0& x_10, thread float4* const tint_symbol_3) {
|
||||
float a = 0.0f;
|
||||
tint_array_wrapper b = {};
|
||||
S param = {};
|
||||
a = 5.0f;
|
||||
while (true) {
|
||||
int const x_43 = x_10.one;
|
||||
b.arr[x_43].x = 1;
|
||||
int const x_46 = b.arr[1].x;
|
||||
if ((x_46 == 1)) {
|
||||
int const x_51 = x_10.one;
|
||||
if ((x_51 == 1)) {
|
||||
break;
|
||||
}
|
||||
S const x_56 = b.arr[1];
|
||||
param = x_56;
|
||||
func_struct_S_i1_i11_(&(param));
|
||||
S const x_58 = param;
|
||||
b.arr[1] = x_58;
|
||||
int const x_61 = b.arr[1].y;
|
||||
a = float(x_61);
|
||||
}
|
||||
a = 0.0f;
|
||||
{
|
||||
if (false) {
|
||||
} else {
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
float const x_63 = a;
|
||||
if ((x_63 == 5.0f)) {
|
||||
*(tint_symbol_3) = float4(1.0f, 0.0f, 0.0f, 1.0f);
|
||||
} else {
|
||||
*(tint_symbol_3) = float4(0.0f, 0.0f, 0.0f, 0.0f);
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
main_out tint_symbol_inner(constant buf0& x_10, thread float4* const tint_symbol_4) {
|
||||
main_1(x_10, tint_symbol_4);
|
||||
main_out const tint_symbol_2 = {.x_GLF_color_1=*(tint_symbol_4)};
|
||||
return tint_symbol_2;
|
||||
}
|
||||
|
||||
fragment tint_symbol_1 tint_symbol(constant buf0& x_10 [[buffer(0)]]) {
|
||||
thread float4 tint_symbol_5 = 0.0f;
|
||||
main_out const inner_result = tint_symbol_inner(x_10, &(tint_symbol_5));
|
||||
tint_symbol_1 wrapper_result = {};
|
||||
wrapper_result.x_GLF_color_1 = inner_result.x_GLF_color_1;
|
||||
return wrapper_result;
|
||||
}
|
||||
|
||||
@@ -1,156 +0,0 @@
|
||||
; SPIR-V
|
||||
; Version: 1.3
|
||||
; Generator: Google Tint Compiler; 0
|
||||
; Bound: 89
|
||||
; Schema: 0
|
||||
OpCapability Shader
|
||||
OpMemoryModel Logical GLSL450
|
||||
OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
|
||||
OpExecutionMode %main OriginUpperLeft
|
||||
OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
|
||||
OpName %buf0 "buf0"
|
||||
OpMemberName %buf0 0 "one"
|
||||
OpName %x_10 "x_10"
|
||||
OpName %x_GLF_color "x_GLF_color"
|
||||
OpName %S "S"
|
||||
OpMemberName %S 0 "x"
|
||||
OpMemberName %S 1 "y"
|
||||
OpName %func_struct_S_i1_i11_ "func_struct_S_i1_i11_"
|
||||
OpName %arg "arg"
|
||||
OpName %main_1 "main_1"
|
||||
OpName %a "a"
|
||||
OpName %b "b"
|
||||
OpName %param "param"
|
||||
OpName %main_out "main_out"
|
||||
OpMemberName %main_out 0 "x_GLF_color_1"
|
||||
OpName %main_inner "main_inner"
|
||||
OpName %main "main"
|
||||
OpDecorate %x_GLF_color_1_1 Location 0
|
||||
OpDecorate %buf0 Block
|
||||
OpMemberDecorate %buf0 0 Offset 0
|
||||
OpDecorate %x_10 NonWritable
|
||||
OpDecorate %x_10 DescriptorSet 0
|
||||
OpDecorate %x_10 Binding 0
|
||||
OpMemberDecorate %S 0 Offset 0
|
||||
OpMemberDecorate %S 1 Offset 4
|
||||
OpDecorate %_arr_S_uint_2 ArrayStride 8
|
||||
OpMemberDecorate %main_out 0 Offset 0
|
||||
%float = OpTypeFloat 32
|
||||
%v4float = OpTypeVector %float 4
|
||||
%_ptr_Output_v4float = OpTypePointer Output %v4float
|
||||
%5 = OpConstantNull %v4float
|
||||
%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
|
||||
%int = OpTypeInt 32 1
|
||||
%buf0 = OpTypeStruct %int
|
||||
%_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
|
||||
%x_10 = OpVariable %_ptr_Uniform_buf0 Uniform
|
||||
%_ptr_Private_v4float = OpTypePointer Private %v4float
|
||||
%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
|
||||
%void = OpTypeVoid
|
||||
%S = OpTypeStruct %int %int
|
||||
%_ptr_Function_S = OpTypePointer Function %S
|
||||
%12 = OpTypeFunction %void %_ptr_Function_S
|
||||
%uint = OpTypeInt 32 0
|
||||
%uint_1 = OpConstant %uint 1
|
||||
%_ptr_Function_int = OpTypePointer Function %int
|
||||
%int_1 = OpConstant %int 1
|
||||
%25 = OpTypeFunction %void
|
||||
%_ptr_Function_float = OpTypePointer Function %float
|
||||
%30 = OpConstantNull %float
|
||||
%uint_2 = OpConstant %uint 2
|
||||
%_arr_S_uint_2 = OpTypeArray %S %uint_2
|
||||
%_ptr_Function__arr_S_uint_2 = OpTypePointer Function %_arr_S_uint_2
|
||||
%35 = OpConstantNull %_arr_S_uint_2
|
||||
%37 = OpConstantNull %S
|
||||
%float_5 = OpConstant %float 5
|
||||
%uint_0 = OpConstant %uint 0
|
||||
%_ptr_Uniform_int = OpTypePointer Uniform %int
|
||||
%bool = OpTypeBool
|
||||
%float_0 = OpConstant %float 0
|
||||
%false = OpConstantFalse %bool
|
||||
%float_1 = OpConstant %float 1
|
||||
%76 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
|
||||
%77 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0
|
||||
%main_out = OpTypeStruct %v4float
|
||||
%78 = OpTypeFunction %main_out
|
||||
%func_struct_S_i1_i11_ = OpFunction %void None %12
|
||||
%arg = OpFunctionParameter %_ptr_Function_S
|
||||
%18 = OpLabel
|
||||
%23 = OpAccessChain %_ptr_Function_int %arg %uint_1
|
||||
OpStore %23 %int_1
|
||||
OpReturn
|
||||
OpFunctionEnd
|
||||
%main_1 = OpFunction %void None %25
|
||||
%27 = OpLabel
|
||||
%a = OpVariable %_ptr_Function_float Function %30
|
||||
%b = OpVariable %_ptr_Function__arr_S_uint_2 Function %35
|
||||
%param = OpVariable %_ptr_Function_S Function %37
|
||||
OpStore %a %float_5
|
||||
OpBranch %39
|
||||
%39 = OpLabel
|
||||
OpLoopMerge %40 %41 None
|
||||
OpBranch %42
|
||||
%42 = OpLabel
|
||||
%45 = OpAccessChain %_ptr_Uniform_int %x_10 %uint_0
|
||||
%46 = OpLoad %int %45
|
||||
%47 = OpAccessChain %_ptr_Function_int %b %46 %uint_0
|
||||
OpStore %47 %int_1
|
||||
%48 = OpAccessChain %_ptr_Function_int %b %int_1 %uint_0
|
||||
%49 = OpLoad %int %48
|
||||
%50 = OpIEqual %bool %49 %int_1
|
||||
OpSelectionMerge %52 None
|
||||
OpBranchConditional %50 %53 %52
|
||||
%53 = OpLabel
|
||||
%54 = OpAccessChain %_ptr_Uniform_int %x_10 %uint_0
|
||||
%55 = OpLoad %int %54
|
||||
%56 = OpIEqual %bool %55 %int_1
|
||||
OpSelectionMerge %57 None
|
||||
OpBranchConditional %56 %58 %57
|
||||
%58 = OpLabel
|
||||
OpBranch %40
|
||||
%57 = OpLabel
|
||||
%59 = OpAccessChain %_ptr_Function_S %b %int_1
|
||||
%60 = OpLoad %S %59
|
||||
OpStore %param %60
|
||||
%61 = OpFunctionCall %void %func_struct_S_i1_i11_ %param
|
||||
%63 = OpLoad %S %param
|
||||
%64 = OpAccessChain %_ptr_Function_S %b %int_1
|
||||
OpStore %64 %63
|
||||
%65 = OpAccessChain %_ptr_Function_int %b %int_1 %uint_1
|
||||
%66 = OpLoad %int %65
|
||||
%67 = OpConvertSToF %float %66
|
||||
OpStore %a %67
|
||||
OpBranch %52
|
||||
%52 = OpLabel
|
||||
OpStore %a %float_0
|
||||
OpBranch %41
|
||||
%41 = OpLabel
|
||||
OpBranchConditional %false %39 %40
|
||||
%40 = OpLabel
|
||||
%70 = OpLoad %float %a
|
||||
%71 = OpFOrdEqual %bool %70 %float_5
|
||||
OpSelectionMerge %72 None
|
||||
OpBranchConditional %71 %73 %74
|
||||
%73 = OpLabel
|
||||
OpStore %x_GLF_color %76
|
||||
OpBranch %72
|
||||
%74 = OpLabel
|
||||
OpStore %x_GLF_color %77
|
||||
OpBranch %72
|
||||
%72 = OpLabel
|
||||
OpReturn
|
||||
OpFunctionEnd
|
||||
%main_inner = OpFunction %main_out None %78
|
||||
%81 = OpLabel
|
||||
%82 = OpFunctionCall %void %main_1
|
||||
%83 = OpLoad %v4float %x_GLF_color
|
||||
%84 = OpCompositeConstruct %main_out %83
|
||||
OpReturnValue %84
|
||||
OpFunctionEnd
|
||||
%main = OpFunction %void None %25
|
||||
%86 = OpLabel
|
||||
%87 = OpFunctionCall %main_out %main_inner
|
||||
%88 = OpCompositeExtract %v4float %87 0
|
||||
OpStore %x_GLF_color_1_1 %88
|
||||
OpReturn
|
||||
OpFunctionEnd
|
||||
@@ -1,69 +0,0 @@
|
||||
struct S {
|
||||
x : i32;
|
||||
y : i32;
|
||||
};
|
||||
|
||||
[[block]]
|
||||
struct buf0 {
|
||||
one : i32;
|
||||
};
|
||||
|
||||
[[group(0), binding(0)]] var<uniform> x_10 : buf0;
|
||||
|
||||
var<private> x_GLF_color : vec4<f32>;
|
||||
|
||||
fn func_struct_S_i1_i11_(arg : ptr<function, S>) {
|
||||
(*(arg)).y = 1;
|
||||
return;
|
||||
}
|
||||
|
||||
fn main_1() {
|
||||
var a : f32;
|
||||
var b : array<S, 2>;
|
||||
var param : S;
|
||||
a = 5.0;
|
||||
loop {
|
||||
let x_43 : i32 = x_10.one;
|
||||
b[x_43].x = 1;
|
||||
let x_46 : i32 = b[1].x;
|
||||
if ((x_46 == 1)) {
|
||||
let x_51 : i32 = x_10.one;
|
||||
if ((x_51 == 1)) {
|
||||
break;
|
||||
}
|
||||
let x_56 : S = b[1];
|
||||
param = x_56;
|
||||
func_struct_S_i1_i11_(&(param));
|
||||
let x_58 : S = param;
|
||||
b[1] = x_58;
|
||||
let x_61 : i32 = b[1].y;
|
||||
a = f32(x_61);
|
||||
}
|
||||
a = 0.0;
|
||||
|
||||
continuing {
|
||||
if (false) {
|
||||
} else {
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
let x_63 : f32 = a;
|
||||
if ((x_63 == 5.0)) {
|
||||
x_GLF_color = vec4<f32>(1.0, 0.0, 0.0, 1.0);
|
||||
} else {
|
||||
x_GLF_color = vec4<f32>(0.0, 0.0, 0.0, 0.0);
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
struct main_out {
|
||||
[[location(0)]]
|
||||
x_GLF_color_1 : vec4<f32>;
|
||||
};
|
||||
|
||||
[[stage(fragment)]]
|
||||
fn main() -> main_out {
|
||||
main_1();
|
||||
return main_out(x_GLF_color);
|
||||
}
|
||||
@@ -1,71 +0,0 @@
|
||||
struct S {
|
||||
int x;
|
||||
int y;
|
||||
};
|
||||
|
||||
cbuffer cbuffer_x_10 : register(b0, space0) {
|
||||
uint4 x_10[1];
|
||||
};
|
||||
static float4 x_GLF_color = float4(0.0f, 0.0f, 0.0f, 0.0f);
|
||||
|
||||
void func_struct_S_i1_i11_(inout S arg) {
|
||||
arg.y = 1;
|
||||
return;
|
||||
}
|
||||
|
||||
void main_1() {
|
||||
float a = 0.0f;
|
||||
S b[2] = (S[2])0;
|
||||
S param = (S)0;
|
||||
a = 5.0f;
|
||||
while (true) {
|
||||
const int x_43 = asint(x_10[0].x);
|
||||
b[x_43].x = 1;
|
||||
const int x_46 = b[1].x;
|
||||
if ((x_46 == 1)) {
|
||||
const int x_51 = asint(x_10[0].x);
|
||||
if ((x_51 == 1)) {
|
||||
break;
|
||||
}
|
||||
const S x_56 = b[1];
|
||||
param = x_56;
|
||||
func_struct_S_i1_i11_(param);
|
||||
b[1] = param;
|
||||
const int x_61 = b[1].y;
|
||||
a = float(x_61);
|
||||
}
|
||||
a = 0.0f;
|
||||
{
|
||||
if (false) {
|
||||
} else {
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
if ((a == 5.0f)) {
|
||||
x_GLF_color = float4(1.0f, 0.0f, 0.0f, 1.0f);
|
||||
} else {
|
||||
x_GLF_color = float4(0.0f, 0.0f, 0.0f, 0.0f);
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
struct main_out {
|
||||
float4 x_GLF_color_1;
|
||||
};
|
||||
struct tint_symbol {
|
||||
float4 x_GLF_color_1 : SV_Target0;
|
||||
};
|
||||
|
||||
main_out main_inner() {
|
||||
main_1();
|
||||
const main_out tint_symbol_2 = {x_GLF_color};
|
||||
return tint_symbol_2;
|
||||
}
|
||||
|
||||
tint_symbol main() {
|
||||
const main_out inner_result = main_inner();
|
||||
tint_symbol wrapper_result = (tint_symbol)0;
|
||||
wrapper_result.x_GLF_color_1 = inner_result.x_GLF_color_1;
|
||||
return wrapper_result;
|
||||
}
|
||||
@@ -1,78 +0,0 @@
|
||||
#include <metal_stdlib>
|
||||
|
||||
using namespace metal;
|
||||
struct S {
|
||||
int x;
|
||||
int y;
|
||||
};
|
||||
struct buf0 {
|
||||
/* 0x0000 */ int one;
|
||||
};
|
||||
struct tint_array_wrapper {
|
||||
S arr[2];
|
||||
};
|
||||
struct main_out {
|
||||
float4 x_GLF_color_1;
|
||||
};
|
||||
struct tint_symbol_1 {
|
||||
float4 x_GLF_color_1 [[color(0)]];
|
||||
};
|
||||
|
||||
void func_struct_S_i1_i11_(thread S* const arg) {
|
||||
(*(arg)).y = 1;
|
||||
return;
|
||||
}
|
||||
|
||||
void main_1(constant buf0& x_10, thread float4* const tint_symbol_3) {
|
||||
float a = 0.0f;
|
||||
tint_array_wrapper b = {};
|
||||
S param = {};
|
||||
a = 5.0f;
|
||||
while (true) {
|
||||
int const x_43 = x_10.one;
|
||||
b.arr[x_43].x = 1;
|
||||
int const x_46 = b.arr[1].x;
|
||||
if ((x_46 == 1)) {
|
||||
int const x_51 = x_10.one;
|
||||
if ((x_51 == 1)) {
|
||||
break;
|
||||
}
|
||||
S const x_56 = b.arr[1];
|
||||
param = x_56;
|
||||
func_struct_S_i1_i11_(&(param));
|
||||
S const x_58 = param;
|
||||
b.arr[1] = x_58;
|
||||
int const x_61 = b.arr[1].y;
|
||||
a = float(x_61);
|
||||
}
|
||||
a = 0.0f;
|
||||
{
|
||||
if (false) {
|
||||
} else {
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
float const x_63 = a;
|
||||
if ((x_63 == 5.0f)) {
|
||||
*(tint_symbol_3) = float4(1.0f, 0.0f, 0.0f, 1.0f);
|
||||
} else {
|
||||
*(tint_symbol_3) = float4(0.0f, 0.0f, 0.0f, 0.0f);
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
main_out tint_symbol_inner(constant buf0& x_10, thread float4* const tint_symbol_4) {
|
||||
main_1(x_10, tint_symbol_4);
|
||||
main_out const tint_symbol_2 = {.x_GLF_color_1=*(tint_symbol_4)};
|
||||
return tint_symbol_2;
|
||||
}
|
||||
|
||||
fragment tint_symbol_1 tint_symbol(constant buf0& x_10 [[buffer(0)]]) {
|
||||
thread float4 tint_symbol_5 = 0.0f;
|
||||
main_out const inner_result = tint_symbol_inner(x_10, &(tint_symbol_5));
|
||||
tint_symbol_1 wrapper_result = {};
|
||||
wrapper_result.x_GLF_color_1 = inner_result.x_GLF_color_1;
|
||||
return wrapper_result;
|
||||
}
|
||||
|
||||
@@ -1,156 +0,0 @@
|
||||
; SPIR-V
|
||||
; Version: 1.3
|
||||
; Generator: Google Tint Compiler; 0
|
||||
; Bound: 89
|
||||
; Schema: 0
|
||||
OpCapability Shader
|
||||
OpMemoryModel Logical GLSL450
|
||||
OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
|
||||
OpExecutionMode %main OriginUpperLeft
|
||||
OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
|
||||
OpName %buf0 "buf0"
|
||||
OpMemberName %buf0 0 "one"
|
||||
OpName %x_10 "x_10"
|
||||
OpName %x_GLF_color "x_GLF_color"
|
||||
OpName %S "S"
|
||||
OpMemberName %S 0 "x"
|
||||
OpMemberName %S 1 "y"
|
||||
OpName %func_struct_S_i1_i11_ "func_struct_S_i1_i11_"
|
||||
OpName %arg "arg"
|
||||
OpName %main_1 "main_1"
|
||||
OpName %a "a"
|
||||
OpName %b "b"
|
||||
OpName %param "param"
|
||||
OpName %main_out "main_out"
|
||||
OpMemberName %main_out 0 "x_GLF_color_1"
|
||||
OpName %main_inner "main_inner"
|
||||
OpName %main "main"
|
||||
OpDecorate %x_GLF_color_1_1 Location 0
|
||||
OpDecorate %buf0 Block
|
||||
OpMemberDecorate %buf0 0 Offset 0
|
||||
OpDecorate %x_10 NonWritable
|
||||
OpDecorate %x_10 DescriptorSet 0
|
||||
OpDecorate %x_10 Binding 0
|
||||
OpMemberDecorate %S 0 Offset 0
|
||||
OpMemberDecorate %S 1 Offset 4
|
||||
OpDecorate %_arr_S_uint_2 ArrayStride 8
|
||||
OpMemberDecorate %main_out 0 Offset 0
|
||||
%float = OpTypeFloat 32
|
||||
%v4float = OpTypeVector %float 4
|
||||
%_ptr_Output_v4float = OpTypePointer Output %v4float
|
||||
%5 = OpConstantNull %v4float
|
||||
%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
|
||||
%int = OpTypeInt 32 1
|
||||
%buf0 = OpTypeStruct %int
|
||||
%_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
|
||||
%x_10 = OpVariable %_ptr_Uniform_buf0 Uniform
|
||||
%_ptr_Private_v4float = OpTypePointer Private %v4float
|
||||
%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
|
||||
%void = OpTypeVoid
|
||||
%S = OpTypeStruct %int %int
|
||||
%_ptr_Function_S = OpTypePointer Function %S
|
||||
%12 = OpTypeFunction %void %_ptr_Function_S
|
||||
%uint = OpTypeInt 32 0
|
||||
%uint_1 = OpConstant %uint 1
|
||||
%_ptr_Function_int = OpTypePointer Function %int
|
||||
%int_1 = OpConstant %int 1
|
||||
%25 = OpTypeFunction %void
|
||||
%_ptr_Function_float = OpTypePointer Function %float
|
||||
%30 = OpConstantNull %float
|
||||
%uint_2 = OpConstant %uint 2
|
||||
%_arr_S_uint_2 = OpTypeArray %S %uint_2
|
||||
%_ptr_Function__arr_S_uint_2 = OpTypePointer Function %_arr_S_uint_2
|
||||
%35 = OpConstantNull %_arr_S_uint_2
|
||||
%37 = OpConstantNull %S
|
||||
%float_5 = OpConstant %float 5
|
||||
%uint_0 = OpConstant %uint 0
|
||||
%_ptr_Uniform_int = OpTypePointer Uniform %int
|
||||
%bool = OpTypeBool
|
||||
%float_0 = OpConstant %float 0
|
||||
%false = OpConstantFalse %bool
|
||||
%float_1 = OpConstant %float 1
|
||||
%76 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
|
||||
%77 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0
|
||||
%main_out = OpTypeStruct %v4float
|
||||
%78 = OpTypeFunction %main_out
|
||||
%func_struct_S_i1_i11_ = OpFunction %void None %12
|
||||
%arg = OpFunctionParameter %_ptr_Function_S
|
||||
%18 = OpLabel
|
||||
%23 = OpAccessChain %_ptr_Function_int %arg %uint_1
|
||||
OpStore %23 %int_1
|
||||
OpReturn
|
||||
OpFunctionEnd
|
||||
%main_1 = OpFunction %void None %25
|
||||
%27 = OpLabel
|
||||
%a = OpVariable %_ptr_Function_float Function %30
|
||||
%b = OpVariable %_ptr_Function__arr_S_uint_2 Function %35
|
||||
%param = OpVariable %_ptr_Function_S Function %37
|
||||
OpStore %a %float_5
|
||||
OpBranch %39
|
||||
%39 = OpLabel
|
||||
OpLoopMerge %40 %41 None
|
||||
OpBranch %42
|
||||
%42 = OpLabel
|
||||
%45 = OpAccessChain %_ptr_Uniform_int %x_10 %uint_0
|
||||
%46 = OpLoad %int %45
|
||||
%47 = OpAccessChain %_ptr_Function_int %b %46 %uint_0
|
||||
OpStore %47 %int_1
|
||||
%48 = OpAccessChain %_ptr_Function_int %b %int_1 %uint_0
|
||||
%49 = OpLoad %int %48
|
||||
%50 = OpIEqual %bool %49 %int_1
|
||||
OpSelectionMerge %52 None
|
||||
OpBranchConditional %50 %53 %52
|
||||
%53 = OpLabel
|
||||
%54 = OpAccessChain %_ptr_Uniform_int %x_10 %uint_0
|
||||
%55 = OpLoad %int %54
|
||||
%56 = OpIEqual %bool %55 %int_1
|
||||
OpSelectionMerge %57 None
|
||||
OpBranchConditional %56 %58 %57
|
||||
%58 = OpLabel
|
||||
OpBranch %40
|
||||
%57 = OpLabel
|
||||
%59 = OpAccessChain %_ptr_Function_S %b %int_1
|
||||
%60 = OpLoad %S %59
|
||||
OpStore %param %60
|
||||
%61 = OpFunctionCall %void %func_struct_S_i1_i11_ %param
|
||||
%63 = OpLoad %S %param
|
||||
%64 = OpAccessChain %_ptr_Function_S %b %int_1
|
||||
OpStore %64 %63
|
||||
%65 = OpAccessChain %_ptr_Function_int %b %int_1 %uint_1
|
||||
%66 = OpLoad %int %65
|
||||
%67 = OpConvertSToF %float %66
|
||||
OpStore %a %67
|
||||
OpBranch %52
|
||||
%52 = OpLabel
|
||||
OpStore %a %float_0
|
||||
OpBranch %41
|
||||
%41 = OpLabel
|
||||
OpBranchConditional %false %39 %40
|
||||
%40 = OpLabel
|
||||
%70 = OpLoad %float %a
|
||||
%71 = OpFOrdEqual %bool %70 %float_5
|
||||
OpSelectionMerge %72 None
|
||||
OpBranchConditional %71 %73 %74
|
||||
%73 = OpLabel
|
||||
OpStore %x_GLF_color %76
|
||||
OpBranch %72
|
||||
%74 = OpLabel
|
||||
OpStore %x_GLF_color %77
|
||||
OpBranch %72
|
||||
%72 = OpLabel
|
||||
OpReturn
|
||||
OpFunctionEnd
|
||||
%main_inner = OpFunction %main_out None %78
|
||||
%81 = OpLabel
|
||||
%82 = OpFunctionCall %void %main_1
|
||||
%83 = OpLoad %v4float %x_GLF_color
|
||||
%84 = OpCompositeConstruct %main_out %83
|
||||
OpReturnValue %84
|
||||
OpFunctionEnd
|
||||
%main = OpFunction %void None %25
|
||||
%86 = OpLabel
|
||||
%87 = OpFunctionCall %main_out %main_inner
|
||||
%88 = OpCompositeExtract %v4float %87 0
|
||||
OpStore %x_GLF_color_1_1 %88
|
||||
OpReturn
|
||||
OpFunctionEnd
|
||||
@@ -1,69 +0,0 @@
|
||||
struct S {
|
||||
x : i32;
|
||||
y : i32;
|
||||
};
|
||||
|
||||
[[block]]
|
||||
struct buf0 {
|
||||
one : i32;
|
||||
};
|
||||
|
||||
[[group(0), binding(0)]] var<uniform> x_10 : buf0;
|
||||
|
||||
var<private> x_GLF_color : vec4<f32>;
|
||||
|
||||
fn func_struct_S_i1_i11_(arg : ptr<function, S>) {
|
||||
(*(arg)).y = 1;
|
||||
return;
|
||||
}
|
||||
|
||||
fn main_1() {
|
||||
var a : f32;
|
||||
var b : array<S, 2>;
|
||||
var param : S;
|
||||
a = 5.0;
|
||||
loop {
|
||||
let x_43 : i32 = x_10.one;
|
||||
b[x_43].x = 1;
|
||||
let x_46 : i32 = b[1].x;
|
||||
if ((x_46 == 1)) {
|
||||
let x_51 : i32 = x_10.one;
|
||||
if ((x_51 == 1)) {
|
||||
break;
|
||||
}
|
||||
let x_56 : S = b[1];
|
||||
param = x_56;
|
||||
func_struct_S_i1_i11_(&(param));
|
||||
let x_58 : S = param;
|
||||
b[1] = x_58;
|
||||
let x_61 : i32 = b[1].y;
|
||||
a = f32(x_61);
|
||||
}
|
||||
a = 0.0;
|
||||
|
||||
continuing {
|
||||
if (false) {
|
||||
} else {
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
let x_63 : f32 = a;
|
||||
if ((x_63 == 5.0)) {
|
||||
x_GLF_color = vec4<f32>(1.0, 0.0, 0.0, 1.0);
|
||||
} else {
|
||||
x_GLF_color = vec4<f32>(0.0, 0.0, 0.0, 0.0);
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
struct main_out {
|
||||
[[location(0)]]
|
||||
x_GLF_color_1 : vec4<f32>;
|
||||
};
|
||||
|
||||
[[stage(fragment)]]
|
||||
fn main() -> main_out {
|
||||
main_1();
|
||||
return main_out(x_GLF_color);
|
||||
}
|
||||
Reference in New Issue
Block a user