mirror of
https://github.com/encounter/dawn-cmake.git
synced 2025-12-10 05:57:51 +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,59 +0,0 @@
|
||||
struct struct_base {
|
||||
int data;
|
||||
int leftIndex;
|
||||
int rightIndex;
|
||||
};
|
||||
|
||||
static struct_base struct_array[3] = (struct_base[3])0;
|
||||
cbuffer cbuffer_x_8 : register(b0, space0) {
|
||||
uint4 x_8[1];
|
||||
};
|
||||
static float4 x_GLF_color = float4(0.0f, 0.0f, 0.0f, 0.0f);
|
||||
|
||||
void main_1() {
|
||||
int index = 0;
|
||||
const struct_base tint_symbol_2 = {1, 1, 1};
|
||||
const struct_base tint_symbol_3 = {1, 1, 1};
|
||||
const struct_base tint_symbol_4 = {1, 1, 1};
|
||||
const struct_base tint_symbol_5[3] = {tint_symbol_2, tint_symbol_3, tint_symbol_4};
|
||||
struct_array = tint_symbol_5;
|
||||
index = 1;
|
||||
struct_array[1].rightIndex = 1;
|
||||
const int x_39 = struct_array[1].leftIndex;
|
||||
if ((x_39 == 1)) {
|
||||
const float x_45 = asfloat(x_8[0].x);
|
||||
const int x_48 = struct_array[int(x_45)].rightIndex;
|
||||
index = x_48;
|
||||
} else {
|
||||
const float x_50 = asfloat(x_8[0].y);
|
||||
const int x_53 = struct_array[int(x_50)].leftIndex;
|
||||
index = x_53;
|
||||
}
|
||||
const int x_55 = struct_array[1].leftIndex;
|
||||
if ((x_55 == 1)) {
|
||||
x_GLF_color = float4(1.0f, 0.0f, 0.0f, 1.0f);
|
||||
} else {
|
||||
x_GLF_color = float4(1.0f, 1.0f, 1.0f, 1.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_6 = {x_GLF_color};
|
||||
return tint_symbol_6;
|
||||
}
|
||||
|
||||
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,64 +0,0 @@
|
||||
#include <metal_stdlib>
|
||||
|
||||
using namespace metal;
|
||||
struct struct_base {
|
||||
int data;
|
||||
int leftIndex;
|
||||
int rightIndex;
|
||||
};
|
||||
struct buf0 {
|
||||
/* 0x0000 */ float2 injectionSwitch;
|
||||
};
|
||||
struct tint_array_wrapper {
|
||||
struct_base arr[3];
|
||||
};
|
||||
struct main_out {
|
||||
float4 x_GLF_color_1;
|
||||
};
|
||||
struct tint_symbol_1 {
|
||||
float4 x_GLF_color_1 [[color(0)]];
|
||||
};
|
||||
|
||||
void main_1(constant buf0& x_8, thread tint_array_wrapper* const tint_symbol_7, thread float4* const tint_symbol_8) {
|
||||
int index = 0;
|
||||
struct_base const tint_symbol_2 = {.data=1, .leftIndex=1, .rightIndex=1};
|
||||
struct_base const tint_symbol_3 = {.data=1, .leftIndex=1, .rightIndex=1};
|
||||
struct_base const tint_symbol_4 = {.data=1, .leftIndex=1, .rightIndex=1};
|
||||
tint_array_wrapper const tint_symbol_5 = {.arr={tint_symbol_2, tint_symbol_3, tint_symbol_4}};
|
||||
*(tint_symbol_7) = tint_symbol_5;
|
||||
index = 1;
|
||||
(*(tint_symbol_7)).arr[1].rightIndex = 1;
|
||||
int const x_39 = (*(tint_symbol_7)).arr[1].leftIndex;
|
||||
if ((x_39 == 1)) {
|
||||
float const x_45 = x_8.injectionSwitch.x;
|
||||
int const x_48 = (*(tint_symbol_7)).arr[int(x_45)].rightIndex;
|
||||
index = x_48;
|
||||
} else {
|
||||
float const x_50 = x_8.injectionSwitch.y;
|
||||
int const x_53 = (*(tint_symbol_7)).arr[int(x_50)].leftIndex;
|
||||
index = x_53;
|
||||
}
|
||||
int const x_55 = (*(tint_symbol_7)).arr[1].leftIndex;
|
||||
if ((x_55 == 1)) {
|
||||
*(tint_symbol_8) = float4(1.0f, 0.0f, 0.0f, 1.0f);
|
||||
} else {
|
||||
*(tint_symbol_8) = float4(1.0f, 1.0f, 1.0f, 1.0f);
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
main_out tint_symbol_inner(constant buf0& x_8, thread tint_array_wrapper* const tint_symbol_9, thread float4* const tint_symbol_10) {
|
||||
main_1(x_8, tint_symbol_9, tint_symbol_10);
|
||||
main_out const tint_symbol_6 = {.x_GLF_color_1=*(tint_symbol_10)};
|
||||
return tint_symbol_6;
|
||||
}
|
||||
|
||||
fragment tint_symbol_1 tint_symbol(constant buf0& x_8 [[buffer(0)]]) {
|
||||
thread tint_array_wrapper tint_symbol_11 = {};
|
||||
thread float4 tint_symbol_12 = 0.0f;
|
||||
main_out const inner_result = tint_symbol_inner(x_8, &(tint_symbol_11), &(tint_symbol_12));
|
||||
tint_symbol_1 wrapper_result = {};
|
||||
wrapper_result.x_GLF_color_1 = inner_result.x_GLF_color_1;
|
||||
return wrapper_result;
|
||||
}
|
||||
|
||||
@@ -1,131 +0,0 @@
|
||||
; SPIR-V
|
||||
; Version: 1.3
|
||||
; Generator: Google Tint Compiler; 0
|
||||
; Bound: 74
|
||||
; 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 %struct_base "struct_base"
|
||||
OpMemberName %struct_base 0 "data"
|
||||
OpMemberName %struct_base 1 "leftIndex"
|
||||
OpMemberName %struct_base 2 "rightIndex"
|
||||
OpName %struct_array "struct_array"
|
||||
OpName %buf0 "buf0"
|
||||
OpMemberName %buf0 0 "injectionSwitch"
|
||||
OpName %x_8 "x_8"
|
||||
OpName %x_GLF_color "x_GLF_color"
|
||||
OpName %main_1 "main_1"
|
||||
OpName %index "index"
|
||||
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
|
||||
OpMemberDecorate %struct_base 0 Offset 0
|
||||
OpMemberDecorate %struct_base 1 Offset 4
|
||||
OpMemberDecorate %struct_base 2 Offset 8
|
||||
OpDecorate %_arr_struct_base_uint_3 ArrayStride 12
|
||||
OpDecorate %buf0 Block
|
||||
OpMemberDecorate %buf0 0 Offset 0
|
||||
OpDecorate %x_8 NonWritable
|
||||
OpDecorate %x_8 DescriptorSet 0
|
||||
OpDecorate %x_8 Binding 0
|
||||
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
|
||||
%struct_base = OpTypeStruct %int %int %int
|
||||
%uint = OpTypeInt 32 0
|
||||
%uint_3 = OpConstant %uint 3
|
||||
%_arr_struct_base_uint_3 = OpTypeArray %struct_base %uint_3
|
||||
%_ptr_Private__arr_struct_base_uint_3 = OpTypePointer Private %_arr_struct_base_uint_3
|
||||
%13 = OpConstantNull %_arr_struct_base_uint_3
|
||||
%struct_array = OpVariable %_ptr_Private__arr_struct_base_uint_3 Private %13
|
||||
%v2float = OpTypeVector %float 2
|
||||
%buf0 = OpTypeStruct %v2float
|
||||
%_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
|
||||
%x_8 = OpVariable %_ptr_Uniform_buf0 Uniform
|
||||
%_ptr_Private_v4float = OpTypePointer Private %v4float
|
||||
%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
|
||||
%void = OpTypeVoid
|
||||
%20 = OpTypeFunction %void
|
||||
%_ptr_Function_int = OpTypePointer Function %int
|
||||
%26 = OpConstantNull %int
|
||||
%int_1 = OpConstant %int 1
|
||||
%28 = OpConstantComposite %struct_base %int_1 %int_1 %int_1
|
||||
%29 = OpConstantComposite %_arr_struct_base_uint_3 %28 %28 %28
|
||||
%uint_2 = OpConstant %uint 2
|
||||
%_ptr_Private_int = OpTypePointer Private %int
|
||||
%uint_1 = OpConstant %uint 1
|
||||
%bool = OpTypeBool
|
||||
%uint_0 = OpConstant %uint 0
|
||||
%_ptr_Uniform_float = OpTypePointer Uniform %float
|
||||
%float_1 = OpConstant %float 1
|
||||
%float_0 = OpConstant %float 0
|
||||
%61 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
|
||||
%62 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
|
||||
%main_out = OpTypeStruct %v4float
|
||||
%63 = OpTypeFunction %main_out
|
||||
%main_1 = OpFunction %void None %20
|
||||
%23 = OpLabel
|
||||
%index = OpVariable %_ptr_Function_int Function %26
|
||||
OpStore %struct_array %29
|
||||
OpStore %index %int_1
|
||||
%32 = OpAccessChain %_ptr_Private_int %struct_array %int_1 %uint_2
|
||||
OpStore %32 %int_1
|
||||
%34 = OpAccessChain %_ptr_Private_int %struct_array %int_1 %uint_1
|
||||
%35 = OpLoad %int %34
|
||||
%36 = OpIEqual %bool %35 %int_1
|
||||
OpSelectionMerge %38 None
|
||||
OpBranchConditional %36 %39 %40
|
||||
%39 = OpLabel
|
||||
%43 = OpAccessChain %_ptr_Uniform_float %x_8 %uint_0 %uint_0
|
||||
%44 = OpLoad %float %43
|
||||
%45 = OpConvertFToS %int %44
|
||||
%46 = OpAccessChain %_ptr_Private_int %struct_array %45 %uint_2
|
||||
%47 = OpLoad %int %46
|
||||
OpStore %index %47
|
||||
OpBranch %38
|
||||
%40 = OpLabel
|
||||
%48 = OpAccessChain %_ptr_Uniform_float %x_8 %uint_0 %uint_1
|
||||
%49 = OpLoad %float %48
|
||||
%50 = OpConvertFToS %int %49
|
||||
%51 = OpAccessChain %_ptr_Private_int %struct_array %50 %uint_1
|
||||
%52 = OpLoad %int %51
|
||||
OpStore %index %52
|
||||
OpBranch %38
|
||||
%38 = OpLabel
|
||||
%53 = OpAccessChain %_ptr_Private_int %struct_array %int_1 %uint_1
|
||||
%54 = OpLoad %int %53
|
||||
%55 = OpIEqual %bool %54 %int_1
|
||||
OpSelectionMerge %56 None
|
||||
OpBranchConditional %55 %57 %58
|
||||
%57 = OpLabel
|
||||
OpStore %x_GLF_color %61
|
||||
OpBranch %56
|
||||
%58 = OpLabel
|
||||
OpStore %x_GLF_color %62
|
||||
OpBranch %56
|
||||
%56 = OpLabel
|
||||
OpReturn
|
||||
OpFunctionEnd
|
||||
%main_inner = OpFunction %main_out None %63
|
||||
%66 = OpLabel
|
||||
%67 = OpFunctionCall %void %main_1
|
||||
%68 = OpLoad %v4float %x_GLF_color
|
||||
%69 = OpCompositeConstruct %main_out %68
|
||||
OpReturnValue %69
|
||||
OpFunctionEnd
|
||||
%main = OpFunction %void None %20
|
||||
%71 = OpLabel
|
||||
%72 = OpFunctionCall %main_out %main_inner
|
||||
%73 = OpCompositeExtract %v4float %72 0
|
||||
OpStore %x_GLF_color_1_1 %73
|
||||
OpReturn
|
||||
OpFunctionEnd
|
||||
@@ -1,51 +0,0 @@
|
||||
struct struct_base {
|
||||
data : i32;
|
||||
leftIndex : i32;
|
||||
rightIndex : i32;
|
||||
};
|
||||
|
||||
[[block]]
|
||||
struct buf0 {
|
||||
injectionSwitch : vec2<f32>;
|
||||
};
|
||||
|
||||
var<private> struct_array : array<struct_base, 3>;
|
||||
|
||||
[[group(0), binding(0)]] var<uniform> x_8 : buf0;
|
||||
|
||||
var<private> x_GLF_color : vec4<f32>;
|
||||
|
||||
fn main_1() {
|
||||
var index : i32;
|
||||
struct_array = array<struct_base, 3>(struct_base(1, 1, 1), struct_base(1, 1, 1), struct_base(1, 1, 1));
|
||||
index = 1;
|
||||
struct_array[1].rightIndex = 1;
|
||||
let x_39 : i32 = struct_array[1].leftIndex;
|
||||
if ((x_39 == 1)) {
|
||||
let x_45 : f32 = x_8.injectionSwitch.x;
|
||||
let x_48 : i32 = struct_array[i32(x_45)].rightIndex;
|
||||
index = x_48;
|
||||
} else {
|
||||
let x_50 : f32 = x_8.injectionSwitch.y;
|
||||
let x_53 : i32 = struct_array[i32(x_50)].leftIndex;
|
||||
index = x_53;
|
||||
}
|
||||
let x_55 : i32 = struct_array[1].leftIndex;
|
||||
if ((x_55 == 1)) {
|
||||
x_GLF_color = vec4<f32>(1.0, 0.0, 0.0, 1.0);
|
||||
} else {
|
||||
x_GLF_color = vec4<f32>(1.0, 1.0, 1.0, 1.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,59 +0,0 @@
|
||||
struct struct_base {
|
||||
int data;
|
||||
int leftIndex;
|
||||
int rightIndex;
|
||||
};
|
||||
|
||||
static struct_base struct_array[3] = (struct_base[3])0;
|
||||
cbuffer cbuffer_x_8 : register(b0, space0) {
|
||||
uint4 x_8[1];
|
||||
};
|
||||
static float4 x_GLF_color = float4(0.0f, 0.0f, 0.0f, 0.0f);
|
||||
|
||||
void main_1() {
|
||||
int index = 0;
|
||||
const struct_base tint_symbol_2 = {1, 1, 1};
|
||||
const struct_base tint_symbol_3 = {1, 1, 1};
|
||||
const struct_base tint_symbol_4 = {1, 1, 1};
|
||||
const struct_base tint_symbol_5[3] = {tint_symbol_2, tint_symbol_3, tint_symbol_4};
|
||||
struct_array = tint_symbol_5;
|
||||
index = 1;
|
||||
struct_array[1].rightIndex = 1;
|
||||
const int x_39 = struct_array[1].leftIndex;
|
||||
if ((x_39 == 1)) {
|
||||
const float x_45 = asfloat(x_8[0].x);
|
||||
const int x_48 = struct_array[int(x_45)].rightIndex;
|
||||
index = x_48;
|
||||
} else {
|
||||
const float x_50 = asfloat(x_8[0].y);
|
||||
const int x_53 = struct_array[int(x_50)].leftIndex;
|
||||
index = x_53;
|
||||
}
|
||||
const int x_55 = struct_array[1].leftIndex;
|
||||
if ((x_55 == 1)) {
|
||||
x_GLF_color = float4(1.0f, 0.0f, 0.0f, 1.0f);
|
||||
} else {
|
||||
x_GLF_color = float4(1.0f, 1.0f, 1.0f, 1.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_6 = {x_GLF_color};
|
||||
return tint_symbol_6;
|
||||
}
|
||||
|
||||
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,64 +0,0 @@
|
||||
#include <metal_stdlib>
|
||||
|
||||
using namespace metal;
|
||||
struct struct_base {
|
||||
int data;
|
||||
int leftIndex;
|
||||
int rightIndex;
|
||||
};
|
||||
struct buf0 {
|
||||
/* 0x0000 */ float2 injectionSwitch;
|
||||
};
|
||||
struct tint_array_wrapper {
|
||||
struct_base arr[3];
|
||||
};
|
||||
struct main_out {
|
||||
float4 x_GLF_color_1;
|
||||
};
|
||||
struct tint_symbol_1 {
|
||||
float4 x_GLF_color_1 [[color(0)]];
|
||||
};
|
||||
|
||||
void main_1(constant buf0& x_8, thread tint_array_wrapper* const tint_symbol_7, thread float4* const tint_symbol_8) {
|
||||
int index = 0;
|
||||
struct_base const tint_symbol_2 = {.data=1, .leftIndex=1, .rightIndex=1};
|
||||
struct_base const tint_symbol_3 = {.data=1, .leftIndex=1, .rightIndex=1};
|
||||
struct_base const tint_symbol_4 = {.data=1, .leftIndex=1, .rightIndex=1};
|
||||
tint_array_wrapper const tint_symbol_5 = {.arr={tint_symbol_2, tint_symbol_3, tint_symbol_4}};
|
||||
*(tint_symbol_7) = tint_symbol_5;
|
||||
index = 1;
|
||||
(*(tint_symbol_7)).arr[1].rightIndex = 1;
|
||||
int const x_39 = (*(tint_symbol_7)).arr[1].leftIndex;
|
||||
if ((x_39 == 1)) {
|
||||
float const x_45 = x_8.injectionSwitch.x;
|
||||
int const x_48 = (*(tint_symbol_7)).arr[int(x_45)].rightIndex;
|
||||
index = x_48;
|
||||
} else {
|
||||
float const x_50 = x_8.injectionSwitch.y;
|
||||
int const x_53 = (*(tint_symbol_7)).arr[int(x_50)].leftIndex;
|
||||
index = x_53;
|
||||
}
|
||||
int const x_55 = (*(tint_symbol_7)).arr[1].leftIndex;
|
||||
if ((x_55 == 1)) {
|
||||
*(tint_symbol_8) = float4(1.0f, 0.0f, 0.0f, 1.0f);
|
||||
} else {
|
||||
*(tint_symbol_8) = float4(1.0f, 1.0f, 1.0f, 1.0f);
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
main_out tint_symbol_inner(constant buf0& x_8, thread tint_array_wrapper* const tint_symbol_9, thread float4* const tint_symbol_10) {
|
||||
main_1(x_8, tint_symbol_9, tint_symbol_10);
|
||||
main_out const tint_symbol_6 = {.x_GLF_color_1=*(tint_symbol_10)};
|
||||
return tint_symbol_6;
|
||||
}
|
||||
|
||||
fragment tint_symbol_1 tint_symbol(constant buf0& x_8 [[buffer(0)]]) {
|
||||
thread tint_array_wrapper tint_symbol_11 = {};
|
||||
thread float4 tint_symbol_12 = 0.0f;
|
||||
main_out const inner_result = tint_symbol_inner(x_8, &(tint_symbol_11), &(tint_symbol_12));
|
||||
tint_symbol_1 wrapper_result = {};
|
||||
wrapper_result.x_GLF_color_1 = inner_result.x_GLF_color_1;
|
||||
return wrapper_result;
|
||||
}
|
||||
|
||||
@@ -1,131 +0,0 @@
|
||||
; SPIR-V
|
||||
; Version: 1.3
|
||||
; Generator: Google Tint Compiler; 0
|
||||
; Bound: 74
|
||||
; 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 %struct_base "struct_base"
|
||||
OpMemberName %struct_base 0 "data"
|
||||
OpMemberName %struct_base 1 "leftIndex"
|
||||
OpMemberName %struct_base 2 "rightIndex"
|
||||
OpName %struct_array "struct_array"
|
||||
OpName %buf0 "buf0"
|
||||
OpMemberName %buf0 0 "injectionSwitch"
|
||||
OpName %x_8 "x_8"
|
||||
OpName %x_GLF_color "x_GLF_color"
|
||||
OpName %main_1 "main_1"
|
||||
OpName %index "index"
|
||||
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
|
||||
OpMemberDecorate %struct_base 0 Offset 0
|
||||
OpMemberDecorate %struct_base 1 Offset 4
|
||||
OpMemberDecorate %struct_base 2 Offset 8
|
||||
OpDecorate %_arr_struct_base_uint_3 ArrayStride 12
|
||||
OpDecorate %buf0 Block
|
||||
OpMemberDecorate %buf0 0 Offset 0
|
||||
OpDecorate %x_8 NonWritable
|
||||
OpDecorate %x_8 DescriptorSet 0
|
||||
OpDecorate %x_8 Binding 0
|
||||
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
|
||||
%struct_base = OpTypeStruct %int %int %int
|
||||
%uint = OpTypeInt 32 0
|
||||
%uint_3 = OpConstant %uint 3
|
||||
%_arr_struct_base_uint_3 = OpTypeArray %struct_base %uint_3
|
||||
%_ptr_Private__arr_struct_base_uint_3 = OpTypePointer Private %_arr_struct_base_uint_3
|
||||
%13 = OpConstantNull %_arr_struct_base_uint_3
|
||||
%struct_array = OpVariable %_ptr_Private__arr_struct_base_uint_3 Private %13
|
||||
%v2float = OpTypeVector %float 2
|
||||
%buf0 = OpTypeStruct %v2float
|
||||
%_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
|
||||
%x_8 = OpVariable %_ptr_Uniform_buf0 Uniform
|
||||
%_ptr_Private_v4float = OpTypePointer Private %v4float
|
||||
%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
|
||||
%void = OpTypeVoid
|
||||
%20 = OpTypeFunction %void
|
||||
%_ptr_Function_int = OpTypePointer Function %int
|
||||
%26 = OpConstantNull %int
|
||||
%int_1 = OpConstant %int 1
|
||||
%28 = OpConstantComposite %struct_base %int_1 %int_1 %int_1
|
||||
%29 = OpConstantComposite %_arr_struct_base_uint_3 %28 %28 %28
|
||||
%uint_2 = OpConstant %uint 2
|
||||
%_ptr_Private_int = OpTypePointer Private %int
|
||||
%uint_1 = OpConstant %uint 1
|
||||
%bool = OpTypeBool
|
||||
%uint_0 = OpConstant %uint 0
|
||||
%_ptr_Uniform_float = OpTypePointer Uniform %float
|
||||
%float_1 = OpConstant %float 1
|
||||
%float_0 = OpConstant %float 0
|
||||
%61 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
|
||||
%62 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
|
||||
%main_out = OpTypeStruct %v4float
|
||||
%63 = OpTypeFunction %main_out
|
||||
%main_1 = OpFunction %void None %20
|
||||
%23 = OpLabel
|
||||
%index = OpVariable %_ptr_Function_int Function %26
|
||||
OpStore %struct_array %29
|
||||
OpStore %index %int_1
|
||||
%32 = OpAccessChain %_ptr_Private_int %struct_array %int_1 %uint_2
|
||||
OpStore %32 %int_1
|
||||
%34 = OpAccessChain %_ptr_Private_int %struct_array %int_1 %uint_1
|
||||
%35 = OpLoad %int %34
|
||||
%36 = OpIEqual %bool %35 %int_1
|
||||
OpSelectionMerge %38 None
|
||||
OpBranchConditional %36 %39 %40
|
||||
%39 = OpLabel
|
||||
%43 = OpAccessChain %_ptr_Uniform_float %x_8 %uint_0 %uint_0
|
||||
%44 = OpLoad %float %43
|
||||
%45 = OpConvertFToS %int %44
|
||||
%46 = OpAccessChain %_ptr_Private_int %struct_array %45 %uint_2
|
||||
%47 = OpLoad %int %46
|
||||
OpStore %index %47
|
||||
OpBranch %38
|
||||
%40 = OpLabel
|
||||
%48 = OpAccessChain %_ptr_Uniform_float %x_8 %uint_0 %uint_1
|
||||
%49 = OpLoad %float %48
|
||||
%50 = OpConvertFToS %int %49
|
||||
%51 = OpAccessChain %_ptr_Private_int %struct_array %50 %uint_1
|
||||
%52 = OpLoad %int %51
|
||||
OpStore %index %52
|
||||
OpBranch %38
|
||||
%38 = OpLabel
|
||||
%53 = OpAccessChain %_ptr_Private_int %struct_array %int_1 %uint_1
|
||||
%54 = OpLoad %int %53
|
||||
%55 = OpIEqual %bool %54 %int_1
|
||||
OpSelectionMerge %56 None
|
||||
OpBranchConditional %55 %57 %58
|
||||
%57 = OpLabel
|
||||
OpStore %x_GLF_color %61
|
||||
OpBranch %56
|
||||
%58 = OpLabel
|
||||
OpStore %x_GLF_color %62
|
||||
OpBranch %56
|
||||
%56 = OpLabel
|
||||
OpReturn
|
||||
OpFunctionEnd
|
||||
%main_inner = OpFunction %main_out None %63
|
||||
%66 = OpLabel
|
||||
%67 = OpFunctionCall %void %main_1
|
||||
%68 = OpLoad %v4float %x_GLF_color
|
||||
%69 = OpCompositeConstruct %main_out %68
|
||||
OpReturnValue %69
|
||||
OpFunctionEnd
|
||||
%main = OpFunction %void None %20
|
||||
%71 = OpLabel
|
||||
%72 = OpFunctionCall %main_out %main_inner
|
||||
%73 = OpCompositeExtract %v4float %72 0
|
||||
OpStore %x_GLF_color_1_1 %73
|
||||
OpReturn
|
||||
OpFunctionEnd
|
||||
@@ -1,51 +0,0 @@
|
||||
struct struct_base {
|
||||
data : i32;
|
||||
leftIndex : i32;
|
||||
rightIndex : i32;
|
||||
};
|
||||
|
||||
[[block]]
|
||||
struct buf0 {
|
||||
injectionSwitch : vec2<f32>;
|
||||
};
|
||||
|
||||
var<private> struct_array : array<struct_base, 3>;
|
||||
|
||||
[[group(0), binding(0)]] var<uniform> x_8 : buf0;
|
||||
|
||||
var<private> x_GLF_color : vec4<f32>;
|
||||
|
||||
fn main_1() {
|
||||
var index : i32;
|
||||
struct_array = array<struct_base, 3>(struct_base(1, 1, 1), struct_base(1, 1, 1), struct_base(1, 1, 1));
|
||||
index = 1;
|
||||
struct_array[1].rightIndex = 1;
|
||||
let x_39 : i32 = struct_array[1].leftIndex;
|
||||
if ((x_39 == 1)) {
|
||||
let x_45 : f32 = x_8.injectionSwitch.x;
|
||||
let x_48 : i32 = struct_array[i32(x_45)].rightIndex;
|
||||
index = x_48;
|
||||
} else {
|
||||
let x_50 : f32 = x_8.injectionSwitch.y;
|
||||
let x_53 : i32 = struct_array[i32(x_50)].leftIndex;
|
||||
index = x_53;
|
||||
}
|
||||
let x_55 : i32 = struct_array[1].leftIndex;
|
||||
if ((x_55 == 1)) {
|
||||
x_GLF_color = vec4<f32>(1.0, 0.0, 0.0, 1.0);
|
||||
} else {
|
||||
x_GLF_color = vec4<f32>(1.0, 1.0, 1.0, 1.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