tint: delete e2e tests with inf/nan args to const eval expressions

Bug: tint:1581
Bug: tint:1747
Change-Id: Ibc6d173cf029166648b07afa1b836dcea0b7b707
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/110700
Kokoro: Kokoro <noreply+kokoro@google.com>
Reviewed-by: Dan Sinclair <dsinclair@chromium.org>
This commit is contained in:
Antonio Maiorano 2022-11-18 05:45:17 +00:00
parent 0da91e06c5
commit 003ed55ae5
30 changed files with 0 additions and 1669 deletions

View File

@ -1,158 +0,0 @@
; SPIR-V
; Version: 1.0
; Generator: Khronos Glslang Reference Front End; 10
; Bound: 86
; Schema: 0
OpCapability Shader
%1 = OpExtInstImport "GLSL.std.450"
OpMemoryModel Logical GLSL450
OpEntryPoint GLCompute %main "main" %gl_GlobalInvocationID
OpExecutionMode %main LocalSize 128 1 1
OpSource GLSL 450
OpName %main "main"
OpName %setOutput_i1_f1_ "setOutput(i1;f1;"
OpName %flatIndex "flatIndex"
OpName %value "value"
OpName %getAAtOutCoords_ "getAAtOutCoords("
OpName %unaryOperation_f1_ "unaryOperation(f1;"
OpName %a "a"
OpName %ssbOut "ssbOut"
OpMemberName %ssbOut 0 "result"
OpName %_ ""
OpName %ssbA "ssbA"
OpMemberName %ssbA 0 "A"
OpName %__0 ""
OpName %gl_GlobalInvocationID "gl_GlobalInvocationID"
OpName %index "index"
OpName %Uniforms "Uniforms"
OpMemberName %Uniforms 0 "NAN"
OpMemberName %Uniforms 1 "aShape"
OpMemberName %Uniforms 2 "outShape"
OpMemberName %Uniforms 3 "outShapeStrides"
OpMemberName %Uniforms 4 "size"
OpName %__1 ""
OpName %a_0 "a"
OpName %param "param"
OpName %param_0 "param"
OpName %param_1 "param"
OpDecorate %_runtimearr_float ArrayStride 4
OpMemberDecorate %ssbOut 0 NonReadable
OpMemberDecorate %ssbOut 0 Offset 0
OpDecorate %ssbOut BufferBlock
OpDecorate %_ DescriptorSet 0
OpDecorate %_ Binding 0
OpDecorate %_runtimearr_float_0 ArrayStride 4
OpMemberDecorate %ssbA 0 NonWritable
OpMemberDecorate %ssbA 0 Offset 0
OpDecorate %ssbA BufferBlock
OpDecorate %__0 DescriptorSet 0
OpDecorate %__0 Binding 1
OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId
OpMemberDecorate %Uniforms 0 Offset 0
OpMemberDecorate %Uniforms 1 Offset 4
OpMemberDecorate %Uniforms 2 Offset 8
OpMemberDecorate %Uniforms 3 Offset 12
OpMemberDecorate %Uniforms 4 Offset 16
OpDecorate %Uniforms Block
OpDecorate %__1 DescriptorSet 0
OpDecorate %__1 Binding 2
OpDecorate %gl_WorkGroupSize BuiltIn WorkgroupSize
%void = OpTypeVoid
%3 = OpTypeFunction %void
%int = OpTypeInt 32 1
%_ptr_Function_int = OpTypePointer Function %int
%float = OpTypeFloat 32
%_ptr_Function_float = OpTypePointer Function %float
%10 = OpTypeFunction %void %_ptr_Function_int %_ptr_Function_float
%15 = OpTypeFunction %float
%18 = OpTypeFunction %float %_ptr_Function_float
%_runtimearr_float = OpTypeRuntimeArray %float
%ssbOut = OpTypeStruct %_runtimearr_float
%_ptr_Uniform_ssbOut = OpTypePointer Uniform %ssbOut
%_ = OpVariable %_ptr_Uniform_ssbOut Uniform
%int_0 = OpConstant %int 0
%_ptr_Uniform_float = OpTypePointer Uniform %float
%_runtimearr_float_0 = OpTypeRuntimeArray %float
%ssbA = OpTypeStruct %_runtimearr_float_0
%_ptr_Uniform_ssbA = OpTypePointer Uniform %ssbA
%__0 = OpVariable %_ptr_Uniform_ssbA Uniform
%uint = OpTypeInt 32 0
%v3uint = OpTypeVector %uint 3
%_ptr_Input_v3uint = OpTypePointer Input %v3uint
%gl_GlobalInvocationID = OpVariable %_ptr_Input_v3uint Input
%uint_0 = OpConstant %uint 0
%_ptr_Input_uint = OpTypePointer Input %uint
%float_0 = OpConstant %float 0
%bool = OpTypeBool
%float_0x1p_128 = OpConstant %float 0x1p+128
%Uniforms = OpTypeStruct %float %int %int %int %int
%_ptr_Uniform_Uniforms = OpTypePointer Uniform %Uniforms
%__1 = OpVariable %_ptr_Uniform_Uniforms Uniform
%int_4 = OpConstant %int 4
%_ptr_Uniform_int = OpTypePointer Uniform %int
%uint_128 = OpConstant %uint 128
%uint_1 = OpConstant %uint 1
%gl_WorkGroupSize = OpConstantComposite %v3uint %uint_128 %uint_1 %uint_1
%main = OpFunction %void None %3
%5 = OpLabel
%index = OpVariable %_ptr_Function_int Function
%a_0 = OpVariable %_ptr_Function_float Function
%param = OpVariable %_ptr_Function_float Function
%param_0 = OpVariable %_ptr_Function_int Function
%param_1 = OpVariable %_ptr_Function_float Function
%60 = OpAccessChain %_ptr_Input_uint %gl_GlobalInvocationID %uint_0
%61 = OpLoad %uint %60
%62 = OpBitcast %int %61
OpStore %index %62
%63 = OpLoad %int %index
%69 = OpAccessChain %_ptr_Uniform_int %__1 %int_4
%70 = OpLoad %int %69
%71 = OpSLessThan %bool %63 %70
OpSelectionMerge %73 None
OpBranchConditional %71 %72 %73
%72 = OpLabel
%75 = OpFunctionCall %float %getAAtOutCoords_
OpStore %a_0 %75
%77 = OpLoad %float %a_0
OpStore %param %77
%78 = OpFunctionCall %float %unaryOperation_f1_ %param
%80 = OpLoad %int %index
OpStore %param_0 %80
OpStore %param_1 %78
%82 = OpFunctionCall %void %setOutput_i1_f1_ %param_0 %param_1
OpBranch %73
%73 = OpLabel
OpReturn
OpFunctionEnd
%setOutput_i1_f1_ = OpFunction %void None %10
%flatIndex = OpFunctionParameter %_ptr_Function_int
%value = OpFunctionParameter %_ptr_Function_float
%14 = OpLabel
%27 = OpLoad %int %flatIndex
%28 = OpLoad %float %value
%30 = OpAccessChain %_ptr_Uniform_float %_ %int_0 %27
OpStore %30 %28
OpReturn
OpFunctionEnd
%getAAtOutCoords_ = OpFunction %float None %15
%17 = OpLabel
%41 = OpAccessChain %_ptr_Input_uint %gl_GlobalInvocationID %uint_0
%42 = OpLoad %uint %41
%43 = OpAccessChain %_ptr_Uniform_float %__0 %int_0 %42
%44 = OpLoad %float %43
OpReturnValue %44
OpFunctionEnd
%unaryOperation_f1_ = OpFunction %float None %18
%a = OpFunctionParameter %_ptr_Function_float
%21 = OpLabel
%47 = OpLoad %float %a
%50 = OpFOrdLessThan %bool %47 %float_0
OpSelectionMerge %52 None
OpBranchConditional %50 %51 %52
%51 = OpLabel
OpReturnValue %float_0x1p_128
%52 = OpLabel
%55 = OpLoad %float %a
%56 = OpExtInst %float %1 Log %55
OpReturnValue %56
OpFunctionEnd

View File

@ -1,67 +0,0 @@
RWByteAddressBuffer x_16 : register(u0, space0);
ByteAddressBuffer x_20 : register(t1, space0);
static uint3 gl_GlobalInvocationID = uint3(0u, 0u, 0u);
cbuffer cbuffer_x_24 : register(b2, space0) {
uint4 x_24[2];
};
float getAAtOutCoords_() {
const uint x_42 = gl_GlobalInvocationID.x;
const float x_44 = asfloat(x_20.Load((4u * x_42)));
return x_44;
}
float unaryOperation_f1_(inout float a) {
const float x_47 = a;
if ((x_47 < 0.0f)) {
return 0.0f /* inf */;
}
const float x_55 = a;
return log(x_55);
}
void setOutput_i1_f1_(inout int flatIndex, inout float value) {
const int x_27 = flatIndex;
const float x_28 = value;
x_16.Store((4u * uint(x_27)), asuint(x_28));
return;
}
void main_1() {
int index = 0;
float a_1 = 0.0f;
float param = 0.0f;
int param_1 = 0;
float param_2 = 0.0f;
const uint x_61 = gl_GlobalInvocationID.x;
index = asint(x_61);
const int x_63 = index;
const int x_70 = asint(x_24[1].x);
if ((x_63 < x_70)) {
const float x_75 = getAAtOutCoords_();
a_1 = x_75;
const float x_77 = a_1;
param = x_77;
const float x_78 = unaryOperation_f1_(param);
const int x_80 = index;
param_1 = x_80;
param_2 = x_78;
setOutput_i1_f1_(param_1, param_2);
}
return;
}
struct tint_symbol_1 {
uint3 gl_GlobalInvocationID_param : SV_DispatchThreadID;
};
void main_inner(uint3 gl_GlobalInvocationID_param) {
gl_GlobalInvocationID = gl_GlobalInvocationID_param;
main_1();
}
[numthreads(128, 1, 1)]
void main(tint_symbol_1 tint_symbol) {
main_inner(tint_symbol.gl_GlobalInvocationID_param);
return;
}

View File

@ -1,67 +0,0 @@
RWByteAddressBuffer x_16 : register(u0, space0);
ByteAddressBuffer x_20 : register(t1, space0);
static uint3 gl_GlobalInvocationID = uint3(0u, 0u, 0u);
cbuffer cbuffer_x_24 : register(b2, space0) {
uint4 x_24[2];
};
float getAAtOutCoords_() {
const uint x_42 = gl_GlobalInvocationID.x;
const float x_44 = asfloat(x_20.Load((4u * x_42)));
return x_44;
}
float unaryOperation_f1_(inout float a) {
const float x_47 = a;
if ((x_47 < 0.0f)) {
return 0.0f /* inf */;
}
const float x_55 = a;
return log(x_55);
}
void setOutput_i1_f1_(inout int flatIndex, inout float value) {
const int x_27 = flatIndex;
const float x_28 = value;
x_16.Store((4u * uint(x_27)), asuint(x_28));
return;
}
void main_1() {
int index = 0;
float a_1 = 0.0f;
float param = 0.0f;
int param_1 = 0;
float param_2 = 0.0f;
const uint x_61 = gl_GlobalInvocationID.x;
index = asint(x_61);
const int x_63 = index;
const int x_70 = asint(x_24[1].x);
if ((x_63 < x_70)) {
const float x_75 = getAAtOutCoords_();
a_1 = x_75;
const float x_77 = a_1;
param = x_77;
const float x_78 = unaryOperation_f1_(param);
const int x_80 = index;
param_1 = x_80;
param_2 = x_78;
setOutput_i1_f1_(param_1, param_2);
}
return;
}
struct tint_symbol_1 {
uint3 gl_GlobalInvocationID_param : SV_DispatchThreadID;
};
void main_inner(uint3 gl_GlobalInvocationID_param) {
gl_GlobalInvocationID = gl_GlobalInvocationID_param;
main_1();
}
[numthreads(128, 1, 1)]
void main(tint_symbol_1 tint_symbol) {
main_inner(tint_symbol.gl_GlobalInvocationID_param);
return;
}

View File

@ -1,82 +0,0 @@
#version 310 es
struct Uniforms {
float NAN;
int aShape;
int outShape;
int outShapeStrides;
int size;
uint pad;
uint pad_1;
uint pad_2;
};
layout(binding = 0, std430) buffer ssbOut_ssbo {
float result[];
} x_16;
layout(binding = 1, std430) buffer ssbA_ssbo {
float A[];
} x_20;
uvec3 tint_symbol = uvec3(0u, 0u, 0u);
layout(binding = 2, std140) uniform x_24_block_ubo {
Uniforms inner;
} x_24;
float getAAtOutCoords_() {
uint x_42 = tint_symbol.x;
float x_44 = x_20.A[x_42];
return x_44;
}
float unaryOperation_f1_(inout float a) {
float x_47 = a;
if ((x_47 < 0.0f)) {
return 0.0f /* inf */;
}
float x_55 = a;
return log(x_55);
}
void setOutput_i1_f1_(inout int flatIndex, inout float value) {
int x_27 = flatIndex;
float x_28 = value;
x_16.result[x_27] = x_28;
return;
}
void main_1() {
int index = 0;
float a_1 = 0.0f;
float param = 0.0f;
int param_1 = 0;
float param_2 = 0.0f;
uint x_61 = tint_symbol.x;
index = int(x_61);
int x_63 = index;
int x_70 = x_24.inner.size;
if ((x_63 < x_70)) {
float x_75 = getAAtOutCoords_();
a_1 = x_75;
float x_77 = a_1;
param = x_77;
float x_78 = unaryOperation_f1_(param);
int x_80 = index;
param_1 = x_80;
param_2 = x_78;
setOutput_i1_f1_(param_1, param_2);
}
return;
}
void tint_symbol_1(uvec3 tint_symbol_2) {
tint_symbol = tint_symbol_2;
main_1();
}
layout(local_size_x = 128, local_size_y = 1, local_size_z = 1) in;
void main() {
tint_symbol_1(gl_GlobalInvocationID);
return;
}

View File

@ -1,89 +0,0 @@
#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 ssbOut {
/* 0x0000 */ tint_array<float, 1> result;
};
struct ssbA {
/* 0x0000 */ tint_array<float, 1> A;
};
struct Uniforms {
/* 0x0000 */ float tint_symbol;
/* 0x0004 */ int aShape;
/* 0x0008 */ int outShape;
/* 0x000c */ int outShapeStrides;
/* 0x0010 */ int size;
};
float getAAtOutCoords_(thread uint3* const tint_symbol_2, const device ssbA* const tint_symbol_3) {
uint const x_42 = (*(tint_symbol_2))[0];
float const x_44 = (*(tint_symbol_3)).A[x_42];
return x_44;
}
float unaryOperation_f1_(thread float* const a) {
float const x_47 = *(a);
if ((x_47 < 0.0f)) {
return INFINITY;
}
float const x_55 = *(a);
return log(x_55);
}
void setOutput_i1_f1_(thread int* const flatIndex, thread float* const value, device ssbOut* const tint_symbol_4) {
int const x_27 = *(flatIndex);
float const x_28 = *(value);
(*(tint_symbol_4)).result[x_27] = x_28;
return;
}
void main_1(thread uint3* const tint_symbol_5, const constant Uniforms* const tint_symbol_6, const device ssbA* const tint_symbol_7, device ssbOut* const tint_symbol_8) {
int index = 0;
float a_1 = 0.0f;
float param = 0.0f;
int param_1 = 0;
float param_2 = 0.0f;
uint const x_61 = (*(tint_symbol_5))[0];
index = as_type<int>(x_61);
int const x_63 = index;
int const x_70 = (*(tint_symbol_6)).size;
if ((x_63 < x_70)) {
float const x_75 = getAAtOutCoords_(tint_symbol_5, tint_symbol_7);
a_1 = x_75;
float const x_77 = a_1;
param = x_77;
float const x_78 = unaryOperation_f1_(&(param));
int const x_80 = index;
param_1 = x_80;
param_2 = x_78;
setOutput_i1_f1_(&(param_1), &(param_2), tint_symbol_8);
}
return;
}
void tint_symbol_1_inner(uint3 gl_GlobalInvocationID_param, thread uint3* const tint_symbol_9, const constant Uniforms* const tint_symbol_10, const device ssbA* const tint_symbol_11, device ssbOut* const tint_symbol_12) {
*(tint_symbol_9) = gl_GlobalInvocationID_param;
main_1(tint_symbol_9, tint_symbol_10, tint_symbol_11, tint_symbol_12);
}
kernel void tint_symbol_1(const constant Uniforms* tint_symbol_14 [[buffer(0)]], const device ssbA* tint_symbol_15 [[buffer(2)]], device ssbOut* tint_symbol_16 [[buffer(1)]], uint3 gl_GlobalInvocationID_param [[thread_position_in_grid]]) {
thread uint3 tint_symbol_13 = 0u;
tint_symbol_1_inner(gl_GlobalInvocationID_param, &(tint_symbol_13), tint_symbol_14, tint_symbol_15, tint_symbol_16);
return;
}

View File

@ -1,195 +0,0 @@
; SPIR-V
; Version: 1.3
; Generator: Google Tint Compiler; 0
; Bound: 107
; Schema: 0
OpCapability Shader
%56 = OpExtInstImport "GLSL.std.450"
OpMemoryModel Logical GLSL450
OpEntryPoint GLCompute %main "main" %gl_GlobalInvocationID_param_1
OpExecutionMode %main LocalSize 128 1 1
OpName %gl_GlobalInvocationID_param_1 "gl_GlobalInvocationID_param_1"
OpName %ssbOut "ssbOut"
OpMemberName %ssbOut 0 "result"
OpName %x_16 "x_16"
OpName %ssbA "ssbA"
OpMemberName %ssbA 0 "A"
OpName %x_20 "x_20"
OpName %gl_GlobalInvocationID "gl_GlobalInvocationID"
OpName %x_24_block "x_24_block"
OpMemberName %x_24_block 0 "inner"
OpName %Uniforms "Uniforms"
OpMemberName %Uniforms 0 "NAN"
OpMemberName %Uniforms 1 "aShape"
OpMemberName %Uniforms 2 "outShape"
OpMemberName %Uniforms 3 "outShapeStrides"
OpMemberName %Uniforms 4 "size"
OpName %x_24 "x_24"
OpName %getAAtOutCoords_ "getAAtOutCoords_"
OpName %unaryOperation_f1_ "unaryOperation_f1_"
OpName %a "a"
OpName %tint_return_flag "tint_return_flag"
OpName %tint_return_value "tint_return_value"
OpName %setOutput_i1_f1_ "setOutput_i1_f1_"
OpName %flatIndex "flatIndex"
OpName %value "value"
OpName %main_1 "main_1"
OpName %index "index"
OpName %a_1 "a_1"
OpName %param "param"
OpName %param_1 "param_1"
OpName %param_2 "param_2"
OpName %main_inner "main_inner"
OpName %gl_GlobalInvocationID_param "gl_GlobalInvocationID_param"
OpName %main "main"
OpDecorate %gl_GlobalInvocationID_param_1 BuiltIn GlobalInvocationId
OpDecorate %ssbOut Block
OpMemberDecorate %ssbOut 0 Offset 0
OpDecorate %_runtimearr_float ArrayStride 4
OpDecorate %x_16 DescriptorSet 0
OpDecorate %x_16 Binding 0
OpDecorate %ssbA Block
OpMemberDecorate %ssbA 0 Offset 0
OpDecorate %x_20 NonWritable
OpDecorate %x_20 DescriptorSet 0
OpDecorate %x_20 Binding 1
OpDecorate %x_24_block Block
OpMemberDecorate %x_24_block 0 Offset 0
OpMemberDecorate %Uniforms 0 Offset 0
OpMemberDecorate %Uniforms 1 Offset 4
OpMemberDecorate %Uniforms 2 Offset 8
OpMemberDecorate %Uniforms 3 Offset 12
OpMemberDecorate %Uniforms 4 Offset 16
OpDecorate %x_24 NonWritable
OpDecorate %x_24 DescriptorSet 0
OpDecorate %x_24 Binding 2
%uint = OpTypeInt 32 0
%v3uint = OpTypeVector %uint 3
%_ptr_Input_v3uint = OpTypePointer Input %v3uint
%gl_GlobalInvocationID_param_1 = OpVariable %_ptr_Input_v3uint Input
%float = OpTypeFloat 32
%_runtimearr_float = OpTypeRuntimeArray %float
%ssbOut = OpTypeStruct %_runtimearr_float
%_ptr_StorageBuffer_ssbOut = OpTypePointer StorageBuffer %ssbOut
%x_16 = OpVariable %_ptr_StorageBuffer_ssbOut StorageBuffer
%ssbA = OpTypeStruct %_runtimearr_float
%_ptr_StorageBuffer_ssbA = OpTypePointer StorageBuffer %ssbA
%x_20 = OpVariable %_ptr_StorageBuffer_ssbA StorageBuffer
%_ptr_Private_v3uint = OpTypePointer Private %v3uint
%15 = OpConstantNull %v3uint
%gl_GlobalInvocationID = OpVariable %_ptr_Private_v3uint Private %15
%int = OpTypeInt 32 1
%Uniforms = OpTypeStruct %float %int %int %int %int
%x_24_block = OpTypeStruct %Uniforms
%_ptr_Uniform_x_24_block = OpTypePointer Uniform %x_24_block
%x_24 = OpVariable %_ptr_Uniform_x_24_block Uniform
%21 = OpTypeFunction %float
%uint_0 = OpConstant %uint 0
%_ptr_Private_uint = OpTypePointer Private %uint
%_ptr_StorageBuffer_float = OpTypePointer StorageBuffer %float
%_ptr_Function_float = OpTypePointer Function %float
%31 = OpTypeFunction %float %_ptr_Function_float
%bool = OpTypeBool
%_ptr_Function_bool = OpTypePointer Function %bool
%39 = OpConstantNull %bool
%41 = OpConstantNull %float
%true = OpConstantTrue %bool
%float_0x1p_128 = OpConstant %float 0x1p+128
%void = OpTypeVoid
%_ptr_Function_int = OpTypePointer Function %int
%58 = OpTypeFunction %void %_ptr_Function_int %_ptr_Function_float
%70 = OpTypeFunction %void
%74 = OpConstantNull %int
%uint_4 = OpConstant %uint 4
%_ptr_Uniform_int = OpTypePointer Uniform %int
%98 = OpTypeFunction %void %v3uint
%getAAtOutCoords_ = OpFunction %float None %21
%23 = OpLabel
%26 = OpAccessChain %_ptr_Private_uint %gl_GlobalInvocationID %uint_0
%27 = OpLoad %uint %26
%29 = OpAccessChain %_ptr_StorageBuffer_float %x_20 %uint_0 %27
%30 = OpLoad %float %29
OpReturnValue %30
OpFunctionEnd
%unaryOperation_f1_ = OpFunction %float None %31
%a = OpFunctionParameter %_ptr_Function_float
%35 = OpLabel
%tint_return_flag = OpVariable %_ptr_Function_bool Function %39
%tint_return_value = OpVariable %_ptr_Function_float Function %41
%43 = OpLoad %float %a
%44 = OpFOrdLessThan %bool %43 %41
OpSelectionMerge %45 None
OpBranchConditional %44 %46 %45
%46 = OpLabel
OpStore %tint_return_flag %true
OpStore %tint_return_value %float_0x1p_128
OpBranch %45
%45 = OpLabel
%50 = OpLoad %bool %tint_return_flag
%49 = OpLogicalNot %bool %50
OpSelectionMerge %51 None
OpBranchConditional %49 %52 %51
%52 = OpLabel
%54 = OpLoad %float %a
OpStore %tint_return_flag %true
%55 = OpExtInst %float %56 Log %54
OpStore %tint_return_value %55
OpBranch %51
%51 = OpLabel
%57 = OpLoad %float %tint_return_value
OpReturnValue %57
OpFunctionEnd
%setOutput_i1_f1_ = OpFunction %void None %58
%flatIndex = OpFunctionParameter %_ptr_Function_int
%value = OpFunctionParameter %_ptr_Function_float
%64 = OpLabel
%66 = OpLoad %int %flatIndex
%68 = OpLoad %float %value
%69 = OpAccessChain %_ptr_StorageBuffer_float %x_16 %uint_0 %66
OpStore %69 %68
OpReturn
OpFunctionEnd
%main_1 = OpFunction %void None %70
%72 = OpLabel
%index = OpVariable %_ptr_Function_int Function %74
%a_1 = OpVariable %_ptr_Function_float Function %41
%param = OpVariable %_ptr_Function_float Function %41
%param_1 = OpVariable %_ptr_Function_int Function %74
%param_2 = OpVariable %_ptr_Function_float Function %41
%79 = OpAccessChain %_ptr_Private_uint %gl_GlobalInvocationID %uint_0
%80 = OpLoad %uint %79
%81 = OpBitcast %int %80
OpStore %index %81
%82 = OpLoad %int %index
%85 = OpAccessChain %_ptr_Uniform_int %x_24 %uint_0 %uint_4
%86 = OpLoad %int %85
%87 = OpSLessThan %bool %82 %86
OpSelectionMerge %88 None
OpBranchConditional %87 %89 %88
%89 = OpLabel
%90 = OpFunctionCall %float %getAAtOutCoords_
OpStore %a_1 %90
%91 = OpLoad %float %a_1
OpStore %param %91
%92 = OpFunctionCall %float %unaryOperation_f1_ %param
%94 = OpLoad %int %index
OpStore %param_1 %94
OpStore %param_2 %92
%95 = OpFunctionCall %void %setOutput_i1_f1_ %param_1 %param_2
OpBranch %88
%88 = OpLabel
OpReturn
OpFunctionEnd
%main_inner = OpFunction %void None %98
%gl_GlobalInvocationID_param = OpFunctionParameter %v3uint
%101 = OpLabel
OpStore %gl_GlobalInvocationID %gl_GlobalInvocationID_param
%102 = OpFunctionCall %void %main_1
OpReturn
OpFunctionEnd
%main = OpFunction %void None %70
%104 = OpLabel
%106 = OpLoad %v3uint %gl_GlobalInvocationID_param_1
%105 = OpFunctionCall %void %main_inner %106
OpReturn
OpFunctionEnd

View File

@ -1,79 +0,0 @@
type RTArr = array<f32>;
type RTArr_1 = array<f32>;
struct ssbOut {
result : RTArr_1,
}
struct ssbA {
A : RTArr_1,
}
struct Uniforms {
NAN : f32,
aShape : i32,
outShape : i32,
outShapeStrides : i32,
size : i32,
}
@group(0) @binding(0) var<storage, read_write> x_16 : ssbOut;
@group(0) @binding(1) var<storage, read> x_20 : ssbA;
var<private> gl_GlobalInvocationID : vec3<u32>;
@group(0) @binding(2) var<uniform> x_24 : Uniforms;
fn getAAtOutCoords_() -> f32 {
let x_42 : u32 = gl_GlobalInvocationID.x;
let x_44 : f32 = x_20.A[x_42];
return x_44;
}
fn unaryOperation_f1_(a : ptr<function, f32>) -> f32 {
let x_47 : f32 = *(a);
if ((x_47 < 0.0f)) {
return 0x1p+128f;
}
let x_55 : f32 = *(a);
return log(x_55);
}
fn setOutput_i1_f1_(flatIndex : ptr<function, i32>, value : ptr<function, f32>) {
let x_27 : i32 = *(flatIndex);
let x_28 : f32 = *(value);
x_16.result[x_27] = x_28;
return;
}
fn main_1() {
var index : i32;
var a_1 : f32;
var param : f32;
var param_1 : i32;
var param_2 : f32;
let x_61 : u32 = gl_GlobalInvocationID.x;
index = bitcast<i32>(x_61);
let x_63 : i32 = index;
let x_70 : i32 = x_24.size;
if ((x_63 < x_70)) {
let x_75 : f32 = getAAtOutCoords_();
a_1 = x_75;
let x_77 : f32 = a_1;
param = x_77;
let x_78 : f32 = unaryOperation_f1_(&(param));
let x_80 : i32 = index;
param_1 = x_80;
param_2 = x_78;
setOutput_i1_f1_(&(param_1), &(param_2));
}
return;
}
@compute @workgroup_size(128i, 1i, 1i)
fn main(@builtin(global_invocation_id) gl_GlobalInvocationID_param : vec3<u32>) {
gl_GlobalInvocationID = gl_GlobalInvocationID_param;
main_1();
}

View File

@ -1,21 +0,0 @@
OpCapability Shader
OpMemoryModel Logical GLSL450
OpEntryPoint Fragment %main "main" %out_var_SV_TARGET
OpExecutionMode %main OriginUpperLeft
OpSource HLSL 600
OpName %out_var_SV_TARGET "out.var.SV_TARGET"
OpName %main "main"
OpDecorate %out_var_SV_TARGET Location 0
%float = OpTypeFloat 32
%float_0x1p_128 = OpConstant %float -0x1p+128
%v4float = OpTypeVector %float 4
%_ptr_Output_v4float = OpTypePointer Output %v4float
%void = OpTypeVoid
%9 = OpTypeFunction %void
%out_var_SV_TARGET = OpVariable %_ptr_Output_v4float Output
%main = OpFunction %void None %9
%10 = OpLabel
%12 = OpCompositeConstruct %v4float %float_0x1p_128 %float_0x1p_128 %float_0x1p_128 %float_0x1p_128
OpStore %out_var_SV_TARGET %12
OpReturn
OpFunctionEnd

View File

@ -1,26 +0,0 @@
static float4 out_var_SV_TARGET = float4(0.0f, 0.0f, 0.0f, 0.0f);
void main_1() {
out_var_SV_TARGET = (0.0f /* -inf */).xxxx;
return;
}
struct main_out {
float4 out_var_SV_TARGET_1;
};
struct tint_symbol {
float4 out_var_SV_TARGET_1 : SV_Target0;
};
main_out main_inner() {
main_1();
const main_out tint_symbol_1 = {out_var_SV_TARGET};
return tint_symbol_1;
}
tint_symbol main() {
const main_out inner_result = main_inner();
tint_symbol wrapper_result = (tint_symbol)0;
wrapper_result.out_var_SV_TARGET_1 = inner_result.out_var_SV_TARGET_1;
return wrapper_result;
}

View File

@ -1,26 +0,0 @@
static float4 out_var_SV_TARGET = float4(0.0f, 0.0f, 0.0f, 0.0f);
void main_1() {
out_var_SV_TARGET = (0.0f /* -inf */).xxxx;
return;
}
struct main_out {
float4 out_var_SV_TARGET_1;
};
struct tint_symbol {
float4 out_var_SV_TARGET_1 : SV_Target0;
};
main_out main_inner() {
main_1();
const main_out tint_symbol_1 = {out_var_SV_TARGET};
return tint_symbol_1;
}
tint_symbol main() {
const main_out inner_result = main_inner();
tint_symbol wrapper_result = (tint_symbol)0;
wrapper_result.out_var_SV_TARGET_1 = inner_result.out_var_SV_TARGET_1;
return wrapper_result;
}

View File

@ -1,25 +0,0 @@
#version 310 es
precision mediump float;
layout(location = 0) out vec4 out_var_SV_TARGET_1_1;
vec4 out_var_SV_TARGET = vec4(0.0f, 0.0f, 0.0f, 0.0f);
void main_1() {
out_var_SV_TARGET = vec4(0.0f /* -inf */);
return;
}
struct main_out {
vec4 out_var_SV_TARGET_1;
};
main_out tint_symbol() {
main_1();
main_out tint_symbol_1 = main_out(out_var_SV_TARGET);
return tint_symbol_1;
}
void main() {
main_out inner_result = tint_symbol();
out_var_SV_TARGET_1_1 = inner_result.out_var_SV_TARGET_1;
return;
}

View File

@ -1,30 +0,0 @@
#include <metal_stdlib>
using namespace metal;
void main_1(thread float4* const tint_symbol_3) {
*(tint_symbol_3) = float4(-INFINITY);
return;
}
struct main_out {
float4 out_var_SV_TARGET_1;
};
struct tint_symbol_1 {
float4 out_var_SV_TARGET_1 [[color(0)]];
};
main_out tint_symbol_inner(thread float4* const tint_symbol_4) {
main_1(tint_symbol_4);
main_out const tint_symbol_2 = {.out_var_SV_TARGET_1=*(tint_symbol_4)};
return tint_symbol_2;
}
fragment tint_symbol_1 tint_symbol() {
thread float4 tint_symbol_5 = 0.0f;
main_out const inner_result = tint_symbol_inner(&(tint_symbol_5));
tint_symbol_1 wrapper_result = {};
wrapper_result.out_var_SV_TARGET_1 = inner_result.out_var_SV_TARGET_1;
return wrapper_result;
}

View File

@ -1,50 +0,0 @@
; SPIR-V
; Version: 1.3
; Generator: Google Tint Compiler; 0
; Bound: 25
; Schema: 0
OpCapability Shader
OpMemoryModel Logical GLSL450
OpEntryPoint Fragment %main "main" %out_var_SV_TARGET_1_1
OpExecutionMode %main OriginUpperLeft
OpName %out_var_SV_TARGET_1_1 "out_var_SV_TARGET_1_1"
OpName %out_var_SV_TARGET "out_var_SV_TARGET"
OpName %main_1 "main_1"
OpName %main_out "main_out"
OpMemberName %main_out 0 "out_var_SV_TARGET_1"
OpName %main_inner "main_inner"
OpName %main "main"
OpDecorate %out_var_SV_TARGET_1_1 Location 0
OpMemberDecorate %main_out 0 Offset 0
%float = OpTypeFloat 32
%v4float = OpTypeVector %float 4
%_ptr_Output_v4float = OpTypePointer Output %v4float
%5 = OpConstantNull %v4float
%out_var_SV_TARGET_1_1 = OpVariable %_ptr_Output_v4float Output %5
%_ptr_Private_v4float = OpTypePointer Private %v4float
%out_var_SV_TARGET = OpVariable %_ptr_Private_v4float Private %5
%void = OpTypeVoid
%8 = OpTypeFunction %void
%float_n0x1p_128 = OpConstant %float -0x1p+128
%13 = OpConstantComposite %v4float %float_n0x1p_128 %float_n0x1p_128 %float_n0x1p_128 %float_n0x1p_128
%main_out = OpTypeStruct %v4float
%14 = OpTypeFunction %main_out
%main_1 = OpFunction %void None %8
%11 = OpLabel
OpStore %out_var_SV_TARGET %13
OpReturn
OpFunctionEnd
%main_inner = OpFunction %main_out None %14
%17 = OpLabel
%18 = OpFunctionCall %void %main_1
%19 = OpLoad %v4float %out_var_SV_TARGET
%20 = OpCompositeConstruct %main_out %19
OpReturnValue %20
OpFunctionEnd
%main = OpFunction %void None %8
%22 = OpLabel
%23 = OpFunctionCall %main_out %main_inner
%24 = OpCompositeExtract %v4float %23 0
OpStore %out_var_SV_TARGET_1_1 %24
OpReturn
OpFunctionEnd

View File

@ -1,17 +0,0 @@
var<private> out_var_SV_TARGET : vec4<f32>;
fn main_1() {
out_var_SV_TARGET = vec4<f32>(-0x1p+128f, -0x1p+128f, -0x1p+128f, -0x1p+128f);
return;
}
struct main_out {
@location(0)
out_var_SV_TARGET_1 : vec4<f32>,
}
@fragment
fn main() -> main_out {
main_1();
return main_out(out_var_SV_TARGET);
}

View File

@ -1,21 +0,0 @@
OpCapability Shader
OpMemoryModel Logical GLSL450
OpEntryPoint Fragment %main "main" %out_var_SV_TARGET
OpExecutionMode %main OriginUpperLeft
OpSource HLSL 600
OpName %out_var_SV_TARGET "out.var.SV_TARGET"
OpName %main "main"
OpDecorate %out_var_SV_TARGET Location 0
%float = OpTypeFloat 32
%float_0x1p_128 = OpConstant %float 0x1p+128
%v4float = OpTypeVector %float 4
%_ptr_Output_v4float = OpTypePointer Output %v4float
%void = OpTypeVoid
%9 = OpTypeFunction %void
%out_var_SV_TARGET = OpVariable %_ptr_Output_v4float Output
%main = OpFunction %void None %9
%10 = OpLabel
%12 = OpCompositeConstruct %v4float %float_0x1p_128 %float_0x1p_128 %float_0x1p_128 %float_0x1p_128
OpStore %out_var_SV_TARGET %12
OpReturn
OpFunctionEnd

View File

@ -1,26 +0,0 @@
static float4 out_var_SV_TARGET = float4(0.0f, 0.0f, 0.0f, 0.0f);
void main_1() {
out_var_SV_TARGET = (0.0f /* inf */).xxxx;
return;
}
struct main_out {
float4 out_var_SV_TARGET_1;
};
struct tint_symbol {
float4 out_var_SV_TARGET_1 : SV_Target0;
};
main_out main_inner() {
main_1();
const main_out tint_symbol_1 = {out_var_SV_TARGET};
return tint_symbol_1;
}
tint_symbol main() {
const main_out inner_result = main_inner();
tint_symbol wrapper_result = (tint_symbol)0;
wrapper_result.out_var_SV_TARGET_1 = inner_result.out_var_SV_TARGET_1;
return wrapper_result;
}

View File

@ -1,26 +0,0 @@
static float4 out_var_SV_TARGET = float4(0.0f, 0.0f, 0.0f, 0.0f);
void main_1() {
out_var_SV_TARGET = (0.0f /* inf */).xxxx;
return;
}
struct main_out {
float4 out_var_SV_TARGET_1;
};
struct tint_symbol {
float4 out_var_SV_TARGET_1 : SV_Target0;
};
main_out main_inner() {
main_1();
const main_out tint_symbol_1 = {out_var_SV_TARGET};
return tint_symbol_1;
}
tint_symbol main() {
const main_out inner_result = main_inner();
tint_symbol wrapper_result = (tint_symbol)0;
wrapper_result.out_var_SV_TARGET_1 = inner_result.out_var_SV_TARGET_1;
return wrapper_result;
}

View File

@ -1,25 +0,0 @@
#version 310 es
precision mediump float;
layout(location = 0) out vec4 out_var_SV_TARGET_1_1;
vec4 out_var_SV_TARGET = vec4(0.0f, 0.0f, 0.0f, 0.0f);
void main_1() {
out_var_SV_TARGET = vec4(0.0f /* inf */);
return;
}
struct main_out {
vec4 out_var_SV_TARGET_1;
};
main_out tint_symbol() {
main_1();
main_out tint_symbol_1 = main_out(out_var_SV_TARGET);
return tint_symbol_1;
}
void main() {
main_out inner_result = tint_symbol();
out_var_SV_TARGET_1_1 = inner_result.out_var_SV_TARGET_1;
return;
}

View File

@ -1,30 +0,0 @@
#include <metal_stdlib>
using namespace metal;
void main_1(thread float4* const tint_symbol_3) {
*(tint_symbol_3) = float4(INFINITY);
return;
}
struct main_out {
float4 out_var_SV_TARGET_1;
};
struct tint_symbol_1 {
float4 out_var_SV_TARGET_1 [[color(0)]];
};
main_out tint_symbol_inner(thread float4* const tint_symbol_4) {
main_1(tint_symbol_4);
main_out const tint_symbol_2 = {.out_var_SV_TARGET_1=*(tint_symbol_4)};
return tint_symbol_2;
}
fragment tint_symbol_1 tint_symbol() {
thread float4 tint_symbol_5 = 0.0f;
main_out const inner_result = tint_symbol_inner(&(tint_symbol_5));
tint_symbol_1 wrapper_result = {};
wrapper_result.out_var_SV_TARGET_1 = inner_result.out_var_SV_TARGET_1;
return wrapper_result;
}

View File

@ -1,50 +0,0 @@
; SPIR-V
; Version: 1.3
; Generator: Google Tint Compiler; 0
; Bound: 25
; Schema: 0
OpCapability Shader
OpMemoryModel Logical GLSL450
OpEntryPoint Fragment %main "main" %out_var_SV_TARGET_1_1
OpExecutionMode %main OriginUpperLeft
OpName %out_var_SV_TARGET_1_1 "out_var_SV_TARGET_1_1"
OpName %out_var_SV_TARGET "out_var_SV_TARGET"
OpName %main_1 "main_1"
OpName %main_out "main_out"
OpMemberName %main_out 0 "out_var_SV_TARGET_1"
OpName %main_inner "main_inner"
OpName %main "main"
OpDecorate %out_var_SV_TARGET_1_1 Location 0
OpMemberDecorate %main_out 0 Offset 0
%float = OpTypeFloat 32
%v4float = OpTypeVector %float 4
%_ptr_Output_v4float = OpTypePointer Output %v4float
%5 = OpConstantNull %v4float
%out_var_SV_TARGET_1_1 = OpVariable %_ptr_Output_v4float Output %5
%_ptr_Private_v4float = OpTypePointer Private %v4float
%out_var_SV_TARGET = OpVariable %_ptr_Private_v4float Private %5
%void = OpTypeVoid
%8 = OpTypeFunction %void
%float_0x1p_128 = OpConstant %float 0x1p+128
%13 = OpConstantComposite %v4float %float_0x1p_128 %float_0x1p_128 %float_0x1p_128 %float_0x1p_128
%main_out = OpTypeStruct %v4float
%14 = OpTypeFunction %main_out
%main_1 = OpFunction %void None %8
%11 = OpLabel
OpStore %out_var_SV_TARGET %13
OpReturn
OpFunctionEnd
%main_inner = OpFunction %main_out None %14
%17 = OpLabel
%18 = OpFunctionCall %void %main_1
%19 = OpLoad %v4float %out_var_SV_TARGET
%20 = OpCompositeConstruct %main_out %19
OpReturnValue %20
OpFunctionEnd
%main = OpFunction %void None %8
%22 = OpLabel
%23 = OpFunctionCall %main_out %main_inner
%24 = OpCompositeExtract %v4float %23 0
OpStore %out_var_SV_TARGET_1_1 %24
OpReturn
OpFunctionEnd

View File

@ -1,17 +0,0 @@
var<private> out_var_SV_TARGET : vec4<f32>;
fn main_1() {
out_var_SV_TARGET = vec4<f32>(0x1p+128f, 0x1p+128f, 0x1p+128f, 0x1p+128f);
return;
}
struct main_out {
@location(0)
out_var_SV_TARGET_1 : vec4<f32>,
}
@fragment
fn main() -> main_out {
main_1();
return main_out(out_var_SV_TARGET);
}

View File

@ -1,21 +0,0 @@
OpCapability Shader
OpMemoryModel Logical GLSL450
OpEntryPoint Fragment %main "main" %out_var_SV_TARGET
OpExecutionMode %main OriginUpperLeft
OpSource HLSL 600
OpName %out_var_SV_TARGET "out.var.SV_TARGET"
OpName %main "main"
OpDecorate %out_var_SV_TARGET Location 0
%float = OpTypeFloat 32
%float_0x1p_128 = OpConstant %float 0x1.1p+128
%v4float = OpTypeVector %float 4
%_ptr_Output_v4float = OpTypePointer Output %v4float
%void = OpTypeVoid
%9 = OpTypeFunction %void
%out_var_SV_TARGET = OpVariable %_ptr_Output_v4float Output
%main = OpFunction %void None %9
%10 = OpLabel
%12 = OpCompositeConstruct %v4float %float_0x1p_128 %float_0x1p_128 %float_0x1p_128 %float_0x1p_128
OpStore %out_var_SV_TARGET %12
OpReturn
OpFunctionEnd

View File

@ -1,26 +0,0 @@
static float4 out_var_SV_TARGET = float4(0.0f, 0.0f, 0.0f, 0.0f);
void main_1() {
out_var_SV_TARGET = float4(0.0f /* nan */, 0.0f /* nan */, 0.0f /* nan */, 0.0f /* nan */);
return;
}
struct main_out {
float4 out_var_SV_TARGET_1;
};
struct tint_symbol {
float4 out_var_SV_TARGET_1 : SV_Target0;
};
main_out main_inner() {
main_1();
const main_out tint_symbol_1 = {out_var_SV_TARGET};
return tint_symbol_1;
}
tint_symbol main() {
const main_out inner_result = main_inner();
tint_symbol wrapper_result = (tint_symbol)0;
wrapper_result.out_var_SV_TARGET_1 = inner_result.out_var_SV_TARGET_1;
return wrapper_result;
}

View File

@ -1,26 +0,0 @@
static float4 out_var_SV_TARGET = float4(0.0f, 0.0f, 0.0f, 0.0f);
void main_1() {
out_var_SV_TARGET = float4(0.0f /* nan */, 0.0f /* nan */, 0.0f /* nan */, 0.0f /* nan */);
return;
}
struct main_out {
float4 out_var_SV_TARGET_1;
};
struct tint_symbol {
float4 out_var_SV_TARGET_1 : SV_Target0;
};
main_out main_inner() {
main_1();
const main_out tint_symbol_1 = {out_var_SV_TARGET};
return tint_symbol_1;
}
tint_symbol main() {
const main_out inner_result = main_inner();
tint_symbol wrapper_result = (tint_symbol)0;
wrapper_result.out_var_SV_TARGET_1 = inner_result.out_var_SV_TARGET_1;
return wrapper_result;
}

View File

@ -1,25 +0,0 @@
#version 310 es
precision mediump float;
layout(location = 0) out vec4 out_var_SV_TARGET_1_1;
vec4 out_var_SV_TARGET = vec4(0.0f, 0.0f, 0.0f, 0.0f);
void main_1() {
out_var_SV_TARGET = vec4(0.0f /* nan */, 0.0f /* nan */, 0.0f /* nan */, 0.0f /* nan */);
return;
}
struct main_out {
vec4 out_var_SV_TARGET_1;
};
main_out tint_symbol() {
main_1();
main_out tint_symbol_1 = main_out(out_var_SV_TARGET);
return tint_symbol_1;
}
void main() {
main_out inner_result = tint_symbol();
out_var_SV_TARGET_1_1 = inner_result.out_var_SV_TARGET_1;
return;
}

View File

@ -1,30 +0,0 @@
#include <metal_stdlib>
using namespace metal;
void main_1(thread float4* const tint_symbol_3) {
*(tint_symbol_3) = float4(NAN, NAN, NAN, NAN);
return;
}
struct main_out {
float4 out_var_SV_TARGET_1;
};
struct tint_symbol_1 {
float4 out_var_SV_TARGET_1 [[color(0)]];
};
main_out tint_symbol_inner(thread float4* const tint_symbol_4) {
main_1(tint_symbol_4);
main_out const tint_symbol_2 = {.out_var_SV_TARGET_1=*(tint_symbol_4)};
return tint_symbol_2;
}
fragment tint_symbol_1 tint_symbol() {
thread float4 tint_symbol_5 = 0.0f;
main_out const inner_result = tint_symbol_inner(&(tint_symbol_5));
tint_symbol_1 wrapper_result = {};
wrapper_result.out_var_SV_TARGET_1 = inner_result.out_var_SV_TARGET_1;
return wrapper_result;
}

View File

@ -1,50 +0,0 @@
; SPIR-V
; Version: 1.3
; Generator: Google Tint Compiler; 0
; Bound: 25
; Schema: 0
OpCapability Shader
OpMemoryModel Logical GLSL450
OpEntryPoint Fragment %main "main" %out_var_SV_TARGET_1_1
OpExecutionMode %main OriginUpperLeft
OpName %out_var_SV_TARGET_1_1 "out_var_SV_TARGET_1_1"
OpName %out_var_SV_TARGET "out_var_SV_TARGET"
OpName %main_1 "main_1"
OpName %main_out "main_out"
OpMemberName %main_out 0 "out_var_SV_TARGET_1"
OpName %main_inner "main_inner"
OpName %main "main"
OpDecorate %out_var_SV_TARGET_1_1 Location 0
OpMemberDecorate %main_out 0 Offset 0
%float = OpTypeFloat 32
%v4float = OpTypeVector %float 4
%_ptr_Output_v4float = OpTypePointer Output %v4float
%5 = OpConstantNull %v4float
%out_var_SV_TARGET_1_1 = OpVariable %_ptr_Output_v4float Output %5
%_ptr_Private_v4float = OpTypePointer Private %v4float
%out_var_SV_TARGET = OpVariable %_ptr_Private_v4float Private %5
%void = OpTypeVoid
%8 = OpTypeFunction %void
%float_0x1_9p_128 = OpConstant %float 0x1.9p+128
%13 = OpConstantComposite %v4float %float_0x1_9p_128 %float_0x1_9p_128 %float_0x1_9p_128 %float_0x1_9p_128
%main_out = OpTypeStruct %v4float
%14 = OpTypeFunction %main_out
%main_1 = OpFunction %void None %8
%11 = OpLabel
OpStore %out_var_SV_TARGET %13
OpReturn
OpFunctionEnd
%main_inner = OpFunction %main_out None %14
%17 = OpLabel
%18 = OpFunctionCall %void %main_1
%19 = OpLoad %v4float %out_var_SV_TARGET
%20 = OpCompositeConstruct %main_out %19
OpReturnValue %20
OpFunctionEnd
%main = OpFunction %void None %8
%22 = OpLabel
%23 = OpFunctionCall %main_out %main_inner
%24 = OpCompositeExtract %v4float %23 0
OpStore %out_var_SV_TARGET_1_1 %24
OpReturn
OpFunctionEnd

View File

@ -1,17 +0,0 @@
var<private> out_var_SV_TARGET : vec4<f32>;
fn main_1() {
out_var_SV_TARGET = vec4<f32>(0x1.9p+128f, 0x1.9p+128f, 0x1.9p+128f, 0x1.9p+128f);
return;
}
struct main_out {
@location(0)
out_var_SV_TARGET_1 : vec4<f32>,
}
@fragment
fn main() -> main_out {
main_1();
return main_out(out_var_SV_TARGET);
}

View File

@ -1,223 +0,0 @@
OpCapability Shader
%1 = OpExtInstImport "GLSL.std.450"
OpMemoryModel Logical GLSL450
OpEntryPoint Fragment %main "main" %gl_FragCoord %_GLF_color
OpExecutionMode %main OriginUpperLeft
OpSource ESSL 310
OpName %main "main"
OpName %func_i1_ "func(i1;"
OpName %b "b"
OpName %ndx "ndx"
OpName %gl_FragCoord "gl_FragCoord"
OpName %i "i"
OpName %_GLF_color "_GLF_color"
OpName %f "f"
OpName %buf0 "buf0"
OpMemberName %buf0 0 "zero"
OpName %_ ""
OpName %param "param"
OpName %x "x"
OpName %param_0 "param"
OpDecorate %gl_FragCoord BuiltIn FragCoord
OpDecorate %_GLF_color Location 0
OpMemberDecorate %buf0 0 Offset 0
OpDecorate %buf0 Block
OpDecorate %_ DescriptorSet 0
OpDecorate %_ Binding 0
%void = OpTypeVoid
%16 = OpTypeFunction %void
%int = OpTypeInt 32 1
%_ptr_Function_int = OpTypePointer Function %int
%float = OpTypeFloat 32
%20 = OpTypeFunction %float %_ptr_Function_int
%int_0 = OpConstant %int 0
%int_2 = OpConstant %int 2
%bool = OpTypeBool
%v4float = OpTypeVector %float 4
%_ptr_Input_v4float = OpTypePointer Input %v4float
%gl_FragCoord = OpVariable %_ptr_Input_v4float Input
%uint = OpTypeInt 32 0
%uint_0 = OpConstant %uint 0
%_ptr_Input_float = OpTypePointer Input %float
%float_0 = OpConstant %float 0
%v2float = OpTypeVector %float 2
%float_1 = OpConstant %float 1
%float_800 = OpConstant %float 800
%33 = OpConstantComposite %v2float %float_1 %float_800
%int_1 = OpConstant %int 1
%float_3 = OpConstant %float 3
%_ptr_Output_v4float = OpTypePointer Output %v4float
%_GLF_color = OpVariable %_ptr_Output_v4float Output
%37 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0
%float_5 = OpConstant %float 5
%39 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
%_ptr_Function_float = OpTypePointer Function %float
%uint_1 = OpConstant %uint 1
%_ptr_Output_float = OpTypePointer Output %float
%buf0 = OpTypeStruct %float
%_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
%_ = OpVariable %_ptr_Uniform_buf0 Uniform
%_ptr_Uniform_float = OpTypePointer Uniform %float
%int_65 = OpConstant %int 65
%int_10 = OpConstant %int 10
%47 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
%main = OpFunction %void None %16
%48 = OpLabel
%f = OpVariable %_ptr_Function_float Function
%param = OpVariable %_ptr_Function_int Function
%x = OpVariable %_ptr_Function_int Function
%param_0 = OpVariable %_ptr_Function_int Function
OpStore %_GLF_color %39
OpStore %f %float_0
OpBranch %49
%49 = OpLabel
OpLoopMerge %50 %51 None
OpBranch %52
%52 = OpLabel
%53 = OpAccessChain %_ptr_Output_float %_GLF_color %uint_1
%54 = OpLoad %float %53
%55 = OpConvertFToS %int %54
%56 = OpSLessThan %bool %55 %int_0
OpSelectionMerge %57 None
OpBranchConditional %56 %58 %59
%58 = OpLabel
OpKill
%59 = OpLabel
%60 = OpAccessChain %_ptr_Uniform_float %_ %int_0
%61 = OpLoad %float %60
%62 = OpConvertFToS %int %61
OpStore %param %62
%63 = OpFunctionCall %float %func_i1_ %param
OpStore %f %63
OpBranch %57
%57 = OpLabel
%64 = OpAccessChain %_ptr_Output_float %_GLF_color %uint_1
%65 = OpLoad %float %64
%66 = OpConvertFToS %int %65
%67 = OpSGreaterThan %bool %66 %int_65
OpSelectionMerge %68 None
OpBranchConditional %67 %69 %68
%69 = OpLabel
OpKill
%68 = OpLabel
OpStore %x %int_0
OpBranch %70
%70 = OpLabel
OpLoopMerge %71 %72 None
OpBranch %73
%73 = OpLabel
%74 = OpLoad %int %x
%75 = OpAccessChain %_ptr_Uniform_float %_ %int_0
%76 = OpLoad %float %75
%77 = OpConvertFToS %int %76
%78 = OpIAdd %int %77 %int_1
%79 = OpSLessThan %bool %74 %78
OpBranchConditional %79 %80 %71
%80 = OpLabel
%81 = OpLoad %int %x
%82 = OpIAdd %int %81 %int_10
OpStore %param_0 %82
%83 = OpFunctionCall %float %func_i1_ %param_0
OpStore %f %83
OpBranch %72
%72 = OpLabel
%84 = OpLoad %int %x
%85 = OpIAdd %int %84 %int_1
OpStore %x %85
OpBranch %70
%71 = OpLabel
OpBranch %51
%51 = OpLabel
%86 = OpAccessChain %_ptr_Uniform_float %_ %int_0
%87 = OpLoad %float %86
%88 = OpConvertFToS %int %87
%89 = OpSGreaterThan %bool %88 %int_1
OpBranchConditional %89 %49 %50
%50 = OpLabel
%90 = OpLoad %float %f
%91 = OpFOrdEqual %bool %90 %float_3
OpSelectionMerge %92 None
OpBranchConditional %91 %93 %94
%93 = OpLabel
OpStore %_GLF_color %47
OpBranch %92
%94 = OpLabel
OpStore %_GLF_color %37
OpBranch %92
%92 = OpLabel
OpReturn
OpFunctionEnd
%func_i1_ = OpFunction %float None %20
%b = OpFunctionParameter %_ptr_Function_int
%95 = OpLabel
%ndx = OpVariable %_ptr_Function_int Function
%i = OpVariable %_ptr_Function_int Function
OpStore %ndx %int_0
OpBranch %96
%96 = OpLabel
OpLoopMerge %97 %98 None
OpBranch %99
%99 = OpLabel
%100 = OpLoad %int %ndx
%101 = OpSLessThan %bool %100 %int_2
OpBranchConditional %101 %102 %97
%102 = OpLabel
%103 = OpAccessChain %_ptr_Input_float %gl_FragCoord %uint_0
%104 = OpLoad %float %103
%105 = OpFOrdLessThan %bool %104 %float_0
OpSelectionMerge %106 None
OpBranchConditional %105 %107 %106
%107 = OpLabel
OpStore %i %int_0
OpBranch %108
%108 = OpLabel
OpLoopMerge %109 %110 None
OpBranch %111
%111 = OpLabel
%112 = OpLoad %int %i
%113 = OpSLessThan %bool %112 %int_2
OpBranchConditional %113 %114 %109
%114 = OpLabel
%115 = OpExtInst %v2float %1 Cosh %33
%116 = OpCompositeExtract %float %115 0
%117 = OpConvertFToS %int %116
%118 = OpSLessThanEqual %bool %117 %int_1
OpSelectionMerge %119 None
OpBranchConditional %118 %120 %119
%120 = OpLabel
OpKill
%119 = OpLabel
OpBranch %110
%110 = OpLabel
%121 = OpLoad %int %i
%122 = OpIAdd %int %121 %int_1
OpStore %i %122
OpBranch %108
%109 = OpLabel
OpBranch %106
%106 = OpLabel
OpBranch %98
%98 = OpLabel
%123 = OpLoad %int %ndx
%124 = OpIAdd %int %123 %int_1
OpStore %ndx %124
OpBranch %96
%97 = OpLabel
%125 = OpLoad %int %b
%126 = OpSGreaterThan %bool %125 %int_1
OpSelectionMerge %127 None
OpBranchConditional %126 %128 %127
%128 = OpLabel
OpReturnValue %float_3
%127 = OpLabel
%129 = OpAccessChain %_ptr_Input_float %gl_FragCoord %uint_0
%130 = OpLoad %float %129
%131 = OpFOrdLessThan %bool %130 %float_0
OpSelectionMerge %132 None
OpBranchConditional %131 %133 %132
%133 = OpLabel
OpStore %_GLF_color %37
OpBranch %132
%132 = OpLabel
OpReturnValue %float_5
OpFunctionEnd

View File

@ -1,124 +0,0 @@
struct buf0 {
zero : f32,
}
var<private> gl_FragCoord : vec4<f32>;
var<private> x_GLF_color : vec4<f32>;
@group(0) @binding(0) var<uniform> x_11 : buf0;
fn func_i1_(b : ptr<function, i32>) -> f32 {
var ndx : i32;
var i : i32;
ndx = 0;
loop {
let x_100 : i32 = ndx;
if ((x_100 < 2)) {
} else {
break;
}
let x_104 : f32 = gl_FragCoord.x;
if ((x_104 < 0.0)) {
i = 0;
loop {
let x_112 : i32 = i;
if ((x_112 < 2)) {
} else {
break;
}
if ((i32(cosh(vec2<f32>(1.0, 800.0)).x) <= 1)) {
discard;
}
continuing {
let x_121 : i32 = i;
i = (x_121 + 1);
}
}
}
continuing {
let x_123 : i32 = ndx;
ndx = (x_123 + 1);
}
}
let x_125 : i32 = *(b);
if ((x_125 > 1)) {
return 3.0;
}
let x_130 : f32 = gl_FragCoord.x;
if ((x_130 < 0.0)) {
x_GLF_color = vec4<f32>(0.0, 0.0, 0.0, 0.0);
}
return 5.0;
}
fn main_1() {
var f : f32;
var param : i32;
var x : i32;
var param_1 : i32;
x_GLF_color = vec4<f32>(1.0, 1.0, 1.0, 1.0);
f = 0.0;
loop {
let x_54 : f32 = x_GLF_color.y;
if ((i32(x_54) < 0)) {
discard;
} else {
let x_61 : f32 = x_11.zero;
param = i32(x_61);
let x_63 : f32 = func_i1_(&(param));
f = x_63;
}
let x_65 : f32 = x_GLF_color.y;
if ((i32(x_65) > 65)) {
discard;
}
x = 0;
loop {
let x_74 : i32 = x;
let x_76 : f32 = x_11.zero;
if ((x_74 < (i32(x_76) + 1))) {
} else {
break;
}
let x_81 : i32 = x;
param_1 = (x_81 + 10);
let x_83 : f32 = func_i1_(&(param_1));
f = x_83;
continuing {
let x_84 : i32 = x;
x = (x_84 + 1);
}
}
continuing {
let x_87 : f32 = x_11.zero;
if ((i32(x_87) > 1)) {
} else {
break;
}
}
}
let x_90 : f32 = f;
if ((x_90 == 3.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>,
}
@fragment
fn main(@builtin(position) gl_FragCoord_param : vec4<f32>) -> main_out {
gl_FragCoord = gl_FragCoord_param;
main_1();
return main_out(x_GLF_color);
}