tint: Remove use of inf / nans from e2e tests

We're not supporting these, even as hex-floats. Replace them with finite
float values.

Bug: tint:1504
Change-Id: Id5e304d2bdd79576b68b43a1afb5cce2cd6ad01a
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/91967
Reviewed-by: James Price <jrprice@google.com>
Commit-Queue: Ben Clayton <bclayton@google.com>
This commit is contained in:
Ben Clayton 2022-05-31 21:35:00 +00:00 committed by Dawn LUCI CQ
parent bfb5fd794c
commit 16175ac2df
12 changed files with 651 additions and 652 deletions

View File

@ -1,105 +1,105 @@
OpCapability Shader OpCapability Shader
%1 = OpExtInstImport "GLSL.std.450" %1 = OpExtInstImport "GLSL.std.450"
OpMemoryModel Logical GLSL450 OpMemoryModel Logical GLSL450
OpEntryPoint Fragment %main "main" %_GLF_color OpEntryPoint Fragment %main "main" %_GLF_color
OpExecutionMode %main OriginUpperLeft OpExecutionMode %main OriginUpperLeft
OpSource ESSL 310 OpSource ESSL 310
OpName %main "main" OpName %main "main"
OpName %undefined "undefined" OpName %undefined "undefined"
OpName %buf0 "buf0" OpName %buf0 "buf0"
OpMemberName %buf0 0 "_GLF_uniform_int_values" OpMemberName %buf0 0 "_GLF_uniform_int_values"
OpName %_ "" OpName %_ ""
OpName %buf1 "buf1" OpName %buf1 "buf1"
OpMemberName %buf1 0 "_GLF_uniform_float_values" OpMemberName %buf1 0 "_GLF_uniform_float_values"
OpName %__0 "" OpName %__0 ""
OpName %_GLF_color "_GLF_color" OpName %_GLF_color "_GLF_color"
OpDecorate %_arr_int_uint_2 ArrayStride 16 OpDecorate %_arr_int_uint_2 ArrayStride 16
OpMemberDecorate %buf0 0 RelaxedPrecision OpMemberDecorate %buf0 0 RelaxedPrecision
OpMemberDecorate %buf0 0 Offset 0 OpMemberDecorate %buf0 0 Offset 0
OpDecorate %buf0 Block OpDecorate %buf0 Block
OpDecorate %_ DescriptorSet 0 OpDecorate %_ DescriptorSet 0
OpDecorate %_ Binding 0 OpDecorate %_ Binding 0
OpDecorate %10 RelaxedPrecision OpDecorate %10 RelaxedPrecision
OpDecorate %_arr_float_uint_1 ArrayStride 16 OpDecorate %_arr_float_uint_1 ArrayStride 16
OpMemberDecorate %buf1 0 Offset 0 OpMemberDecorate %buf1 0 Offset 0
OpDecorate %buf1 Block OpDecorate %buf1 Block
OpDecorate %__0 DescriptorSet 0 OpDecorate %__0 DescriptorSet 0
OpDecorate %__0 Binding 1 OpDecorate %__0 Binding 1
OpDecorate %_GLF_color Location 0 OpDecorate %_GLF_color Location 0
OpDecorate %12 RelaxedPrecision OpDecorate %12 RelaxedPrecision
OpDecorate %13 RelaxedPrecision OpDecorate %13 RelaxedPrecision
OpDecorate %14 RelaxedPrecision OpDecorate %14 RelaxedPrecision
OpDecorate %15 RelaxedPrecision OpDecorate %15 RelaxedPrecision
OpDecorate %16 RelaxedPrecision OpDecorate %16 RelaxedPrecision
%void = OpTypeVoid %void = OpTypeVoid
%18 = OpTypeFunction %void %18 = OpTypeFunction %void
%float = OpTypeFloat 32 %float = OpTypeFloat 32
%_ptr_Function_float = OpTypePointer Function %float %_ptr_Function_float = OpTypePointer Function %float
%float_0x1_8p_128 = OpConstant %float 0x1.8p+128 %float_1 = OpConstant %float 1.0
%bool = OpTypeBool %bool = OpTypeBool
%int = OpTypeInt 32 1 %int = OpTypeInt 32 1
%int_1 = OpConstant %int 1 %int_1 = OpConstant %int 1
%uint = OpTypeInt 32 0 %uint = OpTypeInt 32 0
%uint_2 = OpConstant %uint 2 %uint_2 = OpConstant %uint 2
%_arr_int_uint_2 = OpTypeArray %int %uint_2 %_arr_int_uint_2 = OpTypeArray %int %uint_2
%buf0 = OpTypeStruct %_arr_int_uint_2 %buf0 = OpTypeStruct %_arr_int_uint_2
%_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
%_ = OpVariable %_ptr_Uniform_buf0 Uniform %_ = OpVariable %_ptr_Uniform_buf0 Uniform
%int_0 = OpConstant %int 0 %int_0 = OpConstant %int 0
%_ptr_Uniform_int = OpTypePointer Uniform %int %_ptr_Uniform_int = OpTypePointer Uniform %int
%uint_1 = OpConstant %uint 1 %uint_1 = OpConstant %uint 1
%_arr_float_uint_1 = OpTypeArray %float %uint_1 %_arr_float_uint_1 = OpTypeArray %float %uint_1
%buf1 = OpTypeStruct %_arr_float_uint_1 %buf1 = OpTypeStruct %_arr_float_uint_1
%_ptr_Uniform_buf1 = OpTypePointer Uniform %buf1 %_ptr_Uniform_buf1 = OpTypePointer Uniform %buf1
%__0 = OpVariable %_ptr_Uniform_buf1 Uniform %__0 = OpVariable %_ptr_Uniform_buf1 Uniform
%_ptr_Uniform_float = OpTypePointer Uniform %float %_ptr_Uniform_float = OpTypePointer Uniform %float
%v4float = OpTypeVector %float 4 %v4float = OpTypeVector %float 4
%_ptr_Output_v4float = OpTypePointer Output %v4float %_ptr_Output_v4float = OpTypePointer Output %v4float
%_GLF_color = OpVariable %_ptr_Output_v4float Output %_GLF_color = OpVariable %_ptr_Output_v4float Output
%main = OpFunction %void None %18 %main = OpFunction %void None %18
%35 = OpLabel %35 = OpLabel
%undefined = OpVariable %_ptr_Function_float Function %undefined = OpVariable %_ptr_Function_float Function
%36 = OpExtInst %float %1 Sinh %float_0x1_8p_128 %36 = OpExtInst %float %1 Sinh %float_1
OpStore %undefined %36 OpStore %undefined %36
%37 = OpAccessChain %_ptr_Uniform_int %_ %int_0 %int_0 %37 = OpAccessChain %_ptr_Uniform_int %_ %int_0 %int_0
%10 = OpLoad %int %37 %10 = OpLoad %int %37
%38 = OpIEqual %bool %int_1 %10 %38 = OpIEqual %bool %int_1 %10
%39 = OpLogicalNot %bool %38 %39 = OpLogicalNot %bool %38
OpSelectionMerge %40 None OpSelectionMerge %40 None
OpBranchConditional %39 %41 %40 OpBranchConditional %39 %41 %40
%41 = OpLabel %41 = OpLabel
%42 = OpLoad %float %undefined %42 = OpLoad %float %undefined
%43 = OpAccessChain %_ptr_Uniform_float %__0 %int_0 %int_0 %43 = OpAccessChain %_ptr_Uniform_float %__0 %int_0 %int_0
%44 = OpLoad %float %43 %44 = OpLoad %float %43
%45 = OpFOrdGreaterThan %bool %42 %44 %45 = OpFOrdGreaterThan %bool %42 %44
OpBranch %40 OpBranch %40
%40 = OpLabel %40 = OpLabel
%46 = OpPhi %bool %38 %35 %45 %41 %46 = OpPhi %bool %38 %35 %45 %41
OpSelectionMerge %47 None OpSelectionMerge %47 None
OpBranchConditional %46 %48 %49 OpBranchConditional %46 %48 %49
%48 = OpLabel %48 = OpLabel
%50 = OpAccessChain %_ptr_Uniform_int %_ %int_0 %int_0 %50 = OpAccessChain %_ptr_Uniform_int %_ %int_0 %int_0
%12 = OpLoad %int %50 %12 = OpLoad %int %50
%51 = OpConvertSToF %float %12 %51 = OpConvertSToF %float %12
%52 = OpAccessChain %_ptr_Uniform_int %_ %int_0 %int_1 %52 = OpAccessChain %_ptr_Uniform_int %_ %int_0 %int_1
%13 = OpLoad %int %52 %13 = OpLoad %int %52
%53 = OpConvertSToF %float %13 %53 = OpConvertSToF %float %13
%54 = OpAccessChain %_ptr_Uniform_int %_ %int_0 %int_1 %54 = OpAccessChain %_ptr_Uniform_int %_ %int_0 %int_1
%14 = OpLoad %int %54 %14 = OpLoad %int %54
%55 = OpConvertSToF %float %14 %55 = OpConvertSToF %float %14
%56 = OpAccessChain %_ptr_Uniform_int %_ %int_0 %int_0 %56 = OpAccessChain %_ptr_Uniform_int %_ %int_0 %int_0
%15 = OpLoad %int %56 %15 = OpLoad %int %56
%57 = OpConvertSToF %float %15 %57 = OpConvertSToF %float %15
%58 = OpCompositeConstruct %v4float %51 %53 %55 %57 %58 = OpCompositeConstruct %v4float %51 %53 %55 %57
OpStore %_GLF_color %58 OpStore %_GLF_color %58
OpBranch %47 OpBranch %47
%49 = OpLabel %49 = OpLabel
%59 = OpAccessChain %_ptr_Uniform_int %_ %int_0 %int_1 %59 = OpAccessChain %_ptr_Uniform_int %_ %int_0 %int_1
%16 = OpLoad %int %59 %16 = OpLoad %int %59
%60 = OpConvertSToF %float %16 %60 = OpConvertSToF %float %16
%61 = OpCompositeConstruct %v4float %60 %60 %60 %60 %61 = OpCompositeConstruct %v4float %60 %60 %60 %60
OpStore %_GLF_color %61 OpStore %_GLF_color %61
OpBranch %47 OpBranch %47
%47 = OpLabel %47 = OpLabel
OpReturn OpReturn
OpFunctionEnd OpFunctionEnd

View File

@ -30,7 +30,7 @@ fn main_1() {
var undefined : f32; var undefined : f32;
var x_45 : bool; var x_45 : bool;
var x_46_phi : bool; var x_46_phi : bool;
undefined = sinh(0x1.8p+128); undefined = sinh(1.0);
let x_10 : i32 = x_6.x_GLF_uniform_int_values[0].el; let x_10 : i32 = x_6.x_GLF_uniform_int_values[0].el;
let x_38 : bool = (1 == x_10); let x_38 : bool = (1 == x_10);
x_46_phi = x_38; x_46_phi = x_38;

View File

@ -1,154 +1,154 @@
OpCapability Shader OpCapability Shader
%1 = OpExtInstImport "GLSL.std.450" %1 = OpExtInstImport "GLSL.std.450"
OpMemoryModel Logical GLSL450 OpMemoryModel Logical GLSL450
OpEntryPoint Fragment %main "main" %_GLF_color OpEntryPoint Fragment %main "main" %_GLF_color
OpExecutionMode %main OriginUpperLeft OpExecutionMode %main OriginUpperLeft
OpSource ESSL 310 OpSource ESSL 310
OpName %main "main" OpName %main "main"
OpName %v1 "v1" OpName %v1 "v1"
OpName %buf0 "buf0" OpName %buf0 "buf0"
OpMemberName %buf0 0 "_GLF_uniform_float_values" OpMemberName %buf0 0 "_GLF_uniform_float_values"
OpName %_ "" OpName %_ ""
OpName %v2 "v2" OpName %v2 "v2"
OpName %v3 "v3" OpName %v3 "v3"
OpName %v4 "v4" OpName %v4 "v4"
OpName %_GLF_color "_GLF_color" OpName %_GLF_color "_GLF_color"
OpDecorate %_arr_float_uint_7 ArrayStride 16 OpDecorate %_arr_float_uint_7 ArrayStride 16
OpMemberDecorate %buf0 0 Offset 0 OpMemberDecorate %buf0 0 Offset 0
OpDecorate %buf0 Block OpDecorate %buf0 Block
OpDecorate %_ DescriptorSet 0 OpDecorate %_ DescriptorSet 0
OpDecorate %_ Binding 0 OpDecorate %_ Binding 0
OpDecorate %_GLF_color Location 0 OpDecorate %_GLF_color Location 0
%void = OpTypeVoid %void = OpTypeVoid
%12 = OpTypeFunction %void %12 = OpTypeFunction %void
%float = OpTypeFloat 32 %float = OpTypeFloat 32
%v4float = OpTypeVector %float 4 %v4float = OpTypeVector %float 4
%_ptr_Function_v4float = OpTypePointer Function %v4float %_ptr_Function_v4float = OpTypePointer Function %v4float
%uint = OpTypeInt 32 0 %uint = OpTypeInt 32 0
%uint_7 = OpConstant %uint 7 %uint_7 = OpConstant %uint 7
%_arr_float_uint_7 = OpTypeArray %float %uint_7 %_arr_float_uint_7 = OpTypeArray %float %uint_7
%buf0 = OpTypeStruct %_arr_float_uint_7 %buf0 = OpTypeStruct %_arr_float_uint_7
%_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
%_ = OpVariable %_ptr_Uniform_buf0 Uniform %_ = OpVariable %_ptr_Uniform_buf0 Uniform
%int = OpTypeInt 32 1 %int = OpTypeInt 32 1
%int_0 = OpConstant %int 0 %int_0 = OpConstant %int 0
%int_2 = OpConstant %int 2 %int_2 = OpConstant %int 2
%_ptr_Uniform_float = OpTypePointer Uniform %float %_ptr_Uniform_float = OpTypePointer Uniform %float
%float_1_57079637 = OpConstant %float 1.57079637 %float_1_57079637 = OpConstant %float 1.57079637
%float_1_11976957 = OpConstant %float 1.11976957 %float_1_11976957 = OpConstant %float 1.11976957
%float_0x1_8p_128 = OpConstant %float 0x1.8p+128 %float_1 = OpConstant %float 1.0
%float_0_927295208 = OpConstant %float 0.927295208 %float_0_927295208 = OpConstant %float 0.927295208
%27 = OpConstantComposite %v4float %float_1_57079637 %float_1_11976957 %float_0x1_8p_128 %float_0_927295208 %27 = OpConstantComposite %v4float %float_1_57079637 %float_1_11976957 %float_1 %float_0_927295208
%_ptr_Output_v4float = OpTypePointer Output %v4float %_ptr_Output_v4float = OpTypePointer Output %v4float
%_GLF_color = OpVariable %_ptr_Output_v4float Output %_GLF_color = OpVariable %_ptr_Output_v4float Output
%bool = OpTypeBool %bool = OpTypeBool
%uint_0 = OpConstant %uint 0 %uint_0 = OpConstant %uint 0
%_ptr_Function_float = OpTypePointer Function %float %_ptr_Function_float = OpTypePointer Function %float
%int_4 = OpConstant %int 4 %int_4 = OpConstant %int 4
%int_5 = OpConstant %int 5 %int_5 = OpConstant %int 5
%uint_1 = OpConstant %uint 1 %uint_1 = OpConstant %uint 1
%int_3 = OpConstant %int 3 %int_3 = OpConstant %int 3
%int_6 = OpConstant %int 6 %int_6 = OpConstant %int 6
%uint_3 = OpConstant %uint 3 %uint_3 = OpConstant %uint 3
%int_1 = OpConstant %int 1 %int_1 = OpConstant %int 1
%main = OpFunction %void None %12 %main = OpFunction %void None %12
%39 = OpLabel %39 = OpLabel
%v1 = OpVariable %_ptr_Function_v4float Function %v1 = OpVariable %_ptr_Function_v4float Function
%v2 = OpVariable %_ptr_Function_v4float Function %v2 = OpVariable %_ptr_Function_v4float Function
%v3 = OpVariable %_ptr_Function_v4float Function %v3 = OpVariable %_ptr_Function_v4float Function
%v4 = OpVariable %_ptr_Function_v4float Function %v4 = OpVariable %_ptr_Function_v4float Function
%40 = OpAccessChain %_ptr_Uniform_float %_ %int_0 %int_2 %40 = OpAccessChain %_ptr_Uniform_float %_ %int_0 %int_2
%41 = OpLoad %float %40 %41 = OpLoad %float %40
%42 = OpAccessChain %_ptr_Uniform_float %_ %int_0 %int_2 %42 = OpAccessChain %_ptr_Uniform_float %_ %int_0 %int_2
%43 = OpLoad %float %42 %43 = OpLoad %float %42
%44 = OpAccessChain %_ptr_Uniform_float %_ %int_0 %int_0 %44 = OpAccessChain %_ptr_Uniform_float %_ %int_0 %int_0
%45 = OpLoad %float %44 %45 = OpLoad %float %44
%46 = OpAccessChain %_ptr_Uniform_float %_ %int_0 %int_2 %46 = OpAccessChain %_ptr_Uniform_float %_ %int_0 %int_2
%47 = OpLoad %float %46 %47 = OpLoad %float %46
%48 = OpCompositeConstruct %v4float %41 %43 %45 %47 %48 = OpCompositeConstruct %v4float %41 %43 %45 %47
OpStore %v1 %48 OpStore %v1 %48
OpStore %v2 %27 OpStore %v2 %27
%49 = OpAccessChain %_ptr_Uniform_float %_ %int_0 %int_0 %49 = OpAccessChain %_ptr_Uniform_float %_ %int_0 %int_0
%50 = OpLoad %float %49 %50 = OpLoad %float %49
%51 = OpCompositeConstruct %v4float %50 %50 %50 %50 %51 = OpCompositeConstruct %v4float %50 %50 %50 %50
OpStore %v3 %51 OpStore %v3 %51
%52 = OpLoad %v4float %v1 %52 = OpLoad %v4float %v1
%53 = OpLoad %v4float %v2 %53 = OpLoad %v4float %v2
%54 = OpLoad %v4float %v3 %54 = OpLoad %v4float %v3
%55 = OpExtInst %v4float %1 SmoothStep %52 %53 %54 %55 = OpExtInst %v4float %1 SmoothStep %52 %53 %54
OpStore %v4 %55 OpStore %v4 %55
%56 = OpLoad %v4float %v4 %56 = OpLoad %v4float %v4
%57 = OpVectorShuffle %v4float %56 %56 0 1 3 0 %57 = OpVectorShuffle %v4float %56 %56 0 1 3 0
OpStore %_GLF_color %57 OpStore %_GLF_color %57
%58 = OpAccessChain %_ptr_Function_float %v4 %uint_0 %58 = OpAccessChain %_ptr_Function_float %v4 %uint_0
%59 = OpLoad %float %58 %59 = OpLoad %float %58
%60 = OpAccessChain %_ptr_Uniform_float %_ %int_0 %int_4 %60 = OpAccessChain %_ptr_Uniform_float %_ %int_0 %int_4
%61 = OpLoad %float %60 %61 = OpLoad %float %60
%62 = OpFOrdGreaterThan %bool %59 %61 %62 = OpFOrdGreaterThan %bool %59 %61
OpSelectionMerge %63 None OpSelectionMerge %63 None
OpBranchConditional %62 %64 %63 OpBranchConditional %62 %64 %63
%64 = OpLabel %64 = OpLabel
%65 = OpAccessChain %_ptr_Function_float %v4 %uint_0 %65 = OpAccessChain %_ptr_Function_float %v4 %uint_0
%66 = OpLoad %float %65 %66 = OpLoad %float %65
%67 = OpAccessChain %_ptr_Uniform_float %_ %int_0 %int_5 %67 = OpAccessChain %_ptr_Uniform_float %_ %int_0 %int_5
%68 = OpLoad %float %67 %68 = OpLoad %float %67
%69 = OpFOrdLessThan %bool %66 %68 %69 = OpFOrdLessThan %bool %66 %68
OpBranch %63 OpBranch %63
%63 = OpLabel %63 = OpLabel
%70 = OpPhi %bool %62 %39 %69 %64 %70 = OpPhi %bool %62 %39 %69 %64
OpSelectionMerge %71 None OpSelectionMerge %71 None
OpBranchConditional %70 %72 %71 OpBranchConditional %70 %72 %71
%72 = OpLabel %72 = OpLabel
%73 = OpAccessChain %_ptr_Function_float %v4 %uint_1 %73 = OpAccessChain %_ptr_Function_float %v4 %uint_1
%74 = OpLoad %float %73 %74 = OpLoad %float %73
%75 = OpAccessChain %_ptr_Uniform_float %_ %int_0 %int_3 %75 = OpAccessChain %_ptr_Uniform_float %_ %int_0 %int_3
%76 = OpLoad %float %75 %76 = OpLoad %float %75
%77 = OpFOrdGreaterThan %bool %74 %76 %77 = OpFOrdGreaterThan %bool %74 %76
OpBranch %71 OpBranch %71
%71 = OpLabel %71 = OpLabel
%78 = OpPhi %bool %70 %63 %77 %72 %78 = OpPhi %bool %70 %63 %77 %72
OpSelectionMerge %79 None OpSelectionMerge %79 None
OpBranchConditional %78 %80 %79 OpBranchConditional %78 %80 %79
%80 = OpLabel %80 = OpLabel
%81 = OpAccessChain %_ptr_Function_float %v4 %uint_1 %81 = OpAccessChain %_ptr_Function_float %v4 %uint_1
%82 = OpLoad %float %81 %82 = OpLoad %float %81
%83 = OpAccessChain %_ptr_Uniform_float %_ %int_0 %int_6 %83 = OpAccessChain %_ptr_Uniform_float %_ %int_0 %int_6
%84 = OpLoad %float %83 %84 = OpLoad %float %83
%85 = OpFOrdLessThan %bool %82 %84 %85 = OpFOrdLessThan %bool %82 %84
OpBranch %79 OpBranch %79
%79 = OpLabel %79 = OpLabel
%86 = OpPhi %bool %78 %71 %85 %80 %86 = OpPhi %bool %78 %71 %85 %80
OpSelectionMerge %87 None OpSelectionMerge %87 None
OpBranchConditional %86 %88 %87 OpBranchConditional %86 %88 %87
%88 = OpLabel %88 = OpLabel
%89 = OpAccessChain %_ptr_Function_float %v4 %uint_3 %89 = OpAccessChain %_ptr_Function_float %v4 %uint_3
%90 = OpLoad %float %89 %90 = OpLoad %float %89
%91 = OpAccessChain %_ptr_Uniform_float %_ %int_0 %int_0 %91 = OpAccessChain %_ptr_Uniform_float %_ %int_0 %int_0
%92 = OpLoad %float %91 %92 = OpLoad %float %91
%93 = OpFOrdEqual %bool %90 %92 %93 = OpFOrdEqual %bool %90 %92
OpBranch %87 OpBranch %87
%87 = OpLabel %87 = OpLabel
%94 = OpPhi %bool %86 %79 %93 %88 %94 = OpPhi %bool %86 %79 %93 %88
OpSelectionMerge %95 None OpSelectionMerge %95 None
OpBranchConditional %94 %96 %97 OpBranchConditional %94 %96 %97
%96 = OpLabel %96 = OpLabel
%98 = OpAccessChain %_ptr_Uniform_float %_ %int_0 %int_0 %98 = OpAccessChain %_ptr_Uniform_float %_ %int_0 %int_0
%99 = OpLoad %float %98 %99 = OpLoad %float %98
%100 = OpAccessChain %_ptr_Uniform_float %_ %int_0 %int_1 %100 = OpAccessChain %_ptr_Uniform_float %_ %int_0 %int_1
%101 = OpLoad %float %100 %101 = OpLoad %float %100
%102 = OpAccessChain %_ptr_Uniform_float %_ %int_0 %int_1 %102 = OpAccessChain %_ptr_Uniform_float %_ %int_0 %int_1
%103 = OpLoad %float %102 %103 = OpLoad %float %102
%104 = OpAccessChain %_ptr_Uniform_float %_ %int_0 %int_0 %104 = OpAccessChain %_ptr_Uniform_float %_ %int_0 %int_0
%105 = OpLoad %float %104 %105 = OpLoad %float %104
%106 = OpCompositeConstruct %v4float %99 %101 %103 %105 %106 = OpCompositeConstruct %v4float %99 %101 %103 %105
OpStore %_GLF_color %106 OpStore %_GLF_color %106
OpBranch %95 OpBranch %95
%97 = OpLabel %97 = OpLabel
%107 = OpAccessChain %_ptr_Uniform_float %_ %int_0 %int_1 %107 = OpAccessChain %_ptr_Uniform_float %_ %int_0 %int_1
%108 = OpLoad %float %107 %108 = OpLoad %float %107
%109 = OpCompositeConstruct %v4float %108 %108 %108 %108 %109 = OpCompositeConstruct %v4float %108 %108 %108 %108
OpStore %_GLF_color %109 OpStore %_GLF_color %109
OpBranch %95 OpBranch %95
%95 = OpLabel %95 = OpLabel
OpReturn OpReturn
OpFunctionEnd OpFunctionEnd

View File

@ -31,7 +31,7 @@ fn main_1() {
let x_45 : f32 = x_6.x_GLF_uniform_float_values[0].el; let x_45 : f32 = x_6.x_GLF_uniform_float_values[0].el;
let x_47 : f32 = x_6.x_GLF_uniform_float_values[2].el; let x_47 : f32 = x_6.x_GLF_uniform_float_values[2].el;
v1 = vec4<f32>(x_41, x_43, x_45, x_47); v1 = vec4<f32>(x_41, x_43, x_45, x_47);
v2 = vec4<f32>(1.570796371, 1.119769573, 0x1.8p+128, 0.927295208); v2 = vec4<f32>(1.570796371, 1.119769573, 1.0, 0.927295208);
let x_50 : f32 = x_6.x_GLF_uniform_float_values[0].el; let x_50 : f32 = x_6.x_GLF_uniform_float_values[0].el;
v3 = vec4<f32>(x_50, x_50, x_50, x_50); v3 = vec4<f32>(x_50, x_50, x_50, x_50);
let x_52 : vec4<f32> = v1; let x_52 : vec4<f32> = v1;

View File

@ -1,97 +1,97 @@
OpCapability Shader OpCapability Shader
%1 = OpExtInstImport "GLSL.std.450" %1 = OpExtInstImport "GLSL.std.450"
OpMemoryModel Logical GLSL450 OpMemoryModel Logical GLSL450
OpEntryPoint Fragment %main "main" %gl_FragCoord %_GLF_color OpEntryPoint Fragment %main "main" %gl_FragCoord %_GLF_color
OpExecutionMode %main OriginUpperLeft OpExecutionMode %main OriginUpperLeft
OpSource ESSL 320 OpSource ESSL 320
OpName %main "main" OpName %main "main"
OpName %f0 "f0" OpName %f0 "f0"
OpName %f1 "f1" OpName %f1 "f1"
OpName %gl_FragCoord "gl_FragCoord" OpName %gl_FragCoord "gl_FragCoord"
OpName %buf0 "buf0" OpName %buf0 "buf0"
OpMemberName %buf0 0 "_GLF_uniform_float_values" OpMemberName %buf0 0 "_GLF_uniform_float_values"
OpName %_ "" OpName %_ ""
OpName %_GLF_color "_GLF_color" OpName %_GLF_color "_GLF_color"
OpName %buf1 "buf1" OpName %buf1 "buf1"
OpMemberName %buf1 0 "_GLF_uniform_int_values" OpMemberName %buf1 0 "_GLF_uniform_int_values"
OpName %__0 "" OpName %__0 ""
OpDecorate %gl_FragCoord BuiltIn FragCoord OpDecorate %gl_FragCoord BuiltIn FragCoord
OpDecorate %_arr_float_uint_1 ArrayStride 16 OpDecorate %_arr_float_uint_1 ArrayStride 16
OpMemberDecorate %buf0 0 Offset 0 OpMemberDecorate %buf0 0 Offset 0
OpDecorate %buf0 Block OpDecorate %buf0 Block
OpDecorate %_ DescriptorSet 0 OpDecorate %_ DescriptorSet 0
OpDecorate %_ Binding 0 OpDecorate %_ Binding 0
OpDecorate %_GLF_color Location 0 OpDecorate %_GLF_color Location 0
OpDecorate %_arr_int_uint_2 ArrayStride 16 OpDecorate %_arr_int_uint_2 ArrayStride 16
OpMemberDecorate %buf1 0 Offset 0 OpMemberDecorate %buf1 0 Offset 0
OpDecorate %buf1 Block OpDecorate %buf1 Block
OpDecorate %__0 DescriptorSet 0 OpDecorate %__0 DescriptorSet 0
OpDecorate %__0 Binding 1 OpDecorate %__0 Binding 1
%void = OpTypeVoid %void = OpTypeVoid
%14 = OpTypeFunction %void %14 = OpTypeFunction %void
%float = OpTypeFloat 32 %float = OpTypeFloat 32
%_ptr_Function_float = OpTypePointer Function %float %_ptr_Function_float = OpTypePointer Function %float
%float_0x1_8p_128 = OpConstant %float 0x1.8p+128 %float_1 = OpConstant %float 1.0
%v4float = OpTypeVector %float 4 %v4float = OpTypeVector %float 4
%_ptr_Input_v4float = OpTypePointer Input %v4float %_ptr_Input_v4float = OpTypePointer Input %v4float
%gl_FragCoord = OpVariable %_ptr_Input_v4float Input %gl_FragCoord = OpVariable %_ptr_Input_v4float Input
%uint = OpTypeInt 32 0 %uint = OpTypeInt 32 0
%uint_0 = OpConstant %uint 0 %uint_0 = OpConstant %uint 0
%_ptr_Input_float = OpTypePointer Input %float %_ptr_Input_float = OpTypePointer Input %float
%uint_1 = OpConstant %uint 1 %uint_1 = OpConstant %uint 1
%_arr_float_uint_1 = OpTypeArray %float %uint_1 %_arr_float_uint_1 = OpTypeArray %float %uint_1
%buf0 = OpTypeStruct %_arr_float_uint_1 %buf0 = OpTypeStruct %_arr_float_uint_1
%_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
%_ = OpVariable %_ptr_Uniform_buf0 Uniform %_ = OpVariable %_ptr_Uniform_buf0 Uniform
%int = OpTypeInt 32 1 %int = OpTypeInt 32 1
%int_0 = OpConstant %int 0 %int_0 = OpConstant %int 0
%_ptr_Uniform_float = OpTypePointer Uniform %float %_ptr_Uniform_float = OpTypePointer Uniform %float
%bool = OpTypeBool %bool = OpTypeBool
%_ptr_Output_v4float = OpTypePointer Output %v4float %_ptr_Output_v4float = OpTypePointer Output %v4float
%_GLF_color = OpVariable %_ptr_Output_v4float Output %_GLF_color = OpVariable %_ptr_Output_v4float Output
%uint_2 = OpConstant %uint 2 %uint_2 = OpConstant %uint 2
%_arr_int_uint_2 = OpTypeArray %int %uint_2 %_arr_int_uint_2 = OpTypeArray %int %uint_2
%buf1 = OpTypeStruct %_arr_int_uint_2 %buf1 = OpTypeStruct %_arr_int_uint_2
%_ptr_Uniform_buf1 = OpTypePointer Uniform %buf1 %_ptr_Uniform_buf1 = OpTypePointer Uniform %buf1
%__0 = OpVariable %_ptr_Uniform_buf1 Uniform %__0 = OpVariable %_ptr_Uniform_buf1 Uniform
%int_1 = OpConstant %int 1 %int_1 = OpConstant %int 1
%_ptr_Uniform_int = OpTypePointer Uniform %int %_ptr_Uniform_int = OpTypePointer Uniform %int
%main = OpFunction %void None %14 %main = OpFunction %void None %14
%34 = OpLabel %34 = OpLabel
%f0 = OpVariable %_ptr_Function_float Function %f0 = OpVariable %_ptr_Function_float Function
%f1 = OpVariable %_ptr_Function_float Function %f1 = OpVariable %_ptr_Function_float Function
OpStore %f0 %float_0x1_8p_128 OpStore %f0 %float_1
%35 = OpLoad %float %f0 %35 = OpLoad %float %f0
%36 = OpExtInst %float %1 Fract %35 %36 = OpExtInst %float %1 Fract %35
OpStore %f1 %36 OpStore %f1 %36
%37 = OpAccessChain %_ptr_Input_float %gl_FragCoord %uint_0 %37 = OpAccessChain %_ptr_Input_float %gl_FragCoord %uint_0
%38 = OpLoad %float %37 %38 = OpLoad %float %37
%39 = OpAccessChain %_ptr_Uniform_float %_ %int_0 %int_0 %39 = OpAccessChain %_ptr_Uniform_float %_ %int_0 %int_0
%40 = OpLoad %float %39 %40 = OpLoad %float %39
%41 = OpFOrdGreaterThan %bool %38 %40 %41 = OpFOrdGreaterThan %bool %38 %40
OpSelectionMerge %42 None OpSelectionMerge %42 None
OpBranchConditional %41 %43 %44 OpBranchConditional %41 %43 %44
%43 = OpLabel %43 = OpLabel
%45 = OpAccessChain %_ptr_Uniform_int %__0 %int_0 %int_1 %45 = OpAccessChain %_ptr_Uniform_int %__0 %int_0 %int_1
%46 = OpLoad %int %45 %46 = OpLoad %int %45
%47 = OpConvertSToF %float %46 %47 = OpConvertSToF %float %46
%48 = OpAccessChain %_ptr_Uniform_int %__0 %int_0 %int_0 %48 = OpAccessChain %_ptr_Uniform_int %__0 %int_0 %int_0
%49 = OpLoad %int %48 %49 = OpLoad %int %48
%50 = OpConvertSToF %float %49 %50 = OpConvertSToF %float %49
%51 = OpAccessChain %_ptr_Uniform_int %__0 %int_0 %int_0 %51 = OpAccessChain %_ptr_Uniform_int %__0 %int_0 %int_0
%52 = OpLoad %int %51 %52 = OpLoad %int %51
%53 = OpConvertSToF %float %52 %53 = OpConvertSToF %float %52
%54 = OpAccessChain %_ptr_Uniform_int %__0 %int_0 %int_1 %54 = OpAccessChain %_ptr_Uniform_int %__0 %int_0 %int_1
%55 = OpLoad %int %54 %55 = OpLoad %int %54
%56 = OpConvertSToF %float %55 %56 = OpConvertSToF %float %55
%57 = OpCompositeConstruct %v4float %47 %50 %53 %56 %57 = OpCompositeConstruct %v4float %47 %50 %53 %56
OpStore %_GLF_color %57 OpStore %_GLF_color %57
OpBranch %42 OpBranch %42
%44 = OpLabel %44 = OpLabel
%58 = OpLoad %float %f1 %58 = OpLoad %float %f1
%59 = OpCompositeConstruct %v4float %58 %58 %58 %58 %59 = OpCompositeConstruct %v4float %58 %58 %58 %58
OpStore %_GLF_color %59 OpStore %_GLF_color %59
OpBranch %42 OpBranch %42
%42 = OpLabel %42 = OpLabel
OpReturn OpReturn
OpFunctionEnd OpFunctionEnd

View File

@ -31,7 +31,7 @@ var<private> x_GLF_color : vec4<f32>;
fn main_1() { fn main_1() {
var f0 : f32; var f0 : f32;
var f1 : f32; var f1 : f32;
f0 = 0x1.8p+128; f0 = 1.0;
let x_35 : f32 = f0; let x_35 : f32 = f0;
f1 = fract(x_35); f1 = fract(x_35);
let x_38 : f32 = gl_FragCoord.x; let x_38 : f32 = gl_FragCoord.x;

View File

@ -1,93 +1,93 @@
OpCapability Shader OpCapability Shader
%1 = OpExtInstImport "GLSL.std.450" %1 = OpExtInstImport "GLSL.std.450"
OpMemoryModel Logical GLSL450 OpMemoryModel Logical GLSL450
OpEntryPoint Fragment %main "main" %_GLF_color OpEntryPoint Fragment %main "main" %_GLF_color
OpExecutionMode %main OriginUpperLeft OpExecutionMode %main OriginUpperLeft
OpSource ESSL 310 OpSource ESSL 310
OpName %main "main" OpName %main "main"
OpName %_GLF_color "_GLF_color" OpName %_GLF_color "_GLF_color"
OpName %buf0 "buf0" OpName %buf0 "buf0"
OpMemberName %buf0 0 "_GLF_uniform_int_values" OpMemberName %buf0 0 "_GLF_uniform_int_values"
OpName %_ "" OpName %_ ""
OpName %a "a" OpName %a "a"
OpName %buf1 "buf1" OpName %buf1 "buf1"
OpMemberName %buf1 0 "_GLF_uniform_float_values" OpMemberName %buf1 0 "_GLF_uniform_float_values"
OpName %__0 "" OpName %__0 ""
OpDecorate %_GLF_color Location 0 OpDecorate %_GLF_color Location 0
OpDecorate %_arr_int_uint_2 ArrayStride 16 OpDecorate %_arr_int_uint_2 ArrayStride 16
OpMemberDecorate %buf0 0 RelaxedPrecision OpMemberDecorate %buf0 0 RelaxedPrecision
OpMemberDecorate %buf0 0 Offset 0 OpMemberDecorate %buf0 0 Offset 0
OpDecorate %buf0 Block OpDecorate %buf0 Block
OpDecorate %_ DescriptorSet 0 OpDecorate %_ DescriptorSet 0
OpDecorate %_ Binding 0 OpDecorate %_ Binding 0
OpDecorate %10 RelaxedPrecision OpDecorate %10 RelaxedPrecision
OpDecorate %11 RelaxedPrecision OpDecorate %11 RelaxedPrecision
OpDecorate %12 RelaxedPrecision OpDecorate %12 RelaxedPrecision
OpDecorate %13 RelaxedPrecision OpDecorate %13 RelaxedPrecision
OpDecorate %_arr_float_uint_2 ArrayStride 16 OpDecorate %_arr_float_uint_2 ArrayStride 16
OpMemberDecorate %buf1 0 Offset 0 OpMemberDecorate %buf1 0 Offset 0
OpDecorate %buf1 Block OpDecorate %buf1 Block
OpDecorate %__0 DescriptorSet 0 OpDecorate %__0 DescriptorSet 0
OpDecorate %__0 Binding 1 OpDecorate %__0 Binding 1
%void = OpTypeVoid %void = OpTypeVoid
%16 = OpTypeFunction %void %16 = OpTypeFunction %void
%float = OpTypeFloat 32 %float = OpTypeFloat 32
%v4float = OpTypeVector %float 4 %v4float = OpTypeVector %float 4
%_ptr_Output_v4float = OpTypePointer Output %v4float %_ptr_Output_v4float = OpTypePointer Output %v4float
%_GLF_color = OpVariable %_ptr_Output_v4float Output %_GLF_color = OpVariable %_ptr_Output_v4float Output
%int = OpTypeInt 32 1 %int = OpTypeInt 32 1
%uint = OpTypeInt 32 0 %uint = OpTypeInt 32 0
%uint_2 = OpConstant %uint 2 %uint_2 = OpConstant %uint 2
%_arr_int_uint_2 = OpTypeArray %int %uint_2 %_arr_int_uint_2 = OpTypeArray %int %uint_2
%buf0 = OpTypeStruct %_arr_int_uint_2 %buf0 = OpTypeStruct %_arr_int_uint_2
%_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
%_ = OpVariable %_ptr_Uniform_buf0 Uniform %_ = OpVariable %_ptr_Uniform_buf0 Uniform
%int_0 = OpConstant %int 0 %int_0 = OpConstant %int 0
%_ptr_Uniform_int = OpTypePointer Uniform %int %_ptr_Uniform_int = OpTypePointer Uniform %int
%int_1 = OpConstant %int 1 %int_1 = OpConstant %int 1
%_ptr_Function_float = OpTypePointer Function %float %_ptr_Function_float = OpTypePointer Function %float
%_arr_float_uint_2 = OpTypeArray %float %uint_2 %_arr_float_uint_2 = OpTypeArray %float %uint_2
%buf1 = OpTypeStruct %_arr_float_uint_2 %buf1 = OpTypeStruct %_arr_float_uint_2
%_ptr_Uniform_buf1 = OpTypePointer Uniform %buf1 %_ptr_Uniform_buf1 = OpTypePointer Uniform %buf1
%__0 = OpVariable %_ptr_Uniform_buf1 Uniform %__0 = OpVariable %_ptr_Uniform_buf1 Uniform
%_ptr_Uniform_float = OpTypePointer Uniform %float %_ptr_Uniform_float = OpTypePointer Uniform %float
%float_0x1_8p_128 = OpConstant %float 0x1.8p+128 %float_1 = OpConstant %float 1.0
%bool = OpTypeBool %bool = OpTypeBool
%uint_1 = OpConstant %uint 1 %uint_1 = OpConstant %uint 1
%_ptr_Output_float = OpTypePointer Output %float %_ptr_Output_float = OpTypePointer Output %float
%main = OpFunction %void None %16 %main = OpFunction %void None %16
%34 = OpLabel %34 = OpLabel
%a = OpVariable %_ptr_Function_float Function %a = OpVariable %_ptr_Function_float Function
%35 = OpAccessChain %_ptr_Uniform_int %_ %int_0 %int_0 %35 = OpAccessChain %_ptr_Uniform_int %_ %int_0 %int_0
%10 = OpLoad %int %35 %10 = OpLoad %int %35
%36 = OpConvertSToF %float %10 %36 = OpConvertSToF %float %10
%37 = OpAccessChain %_ptr_Uniform_int %_ %int_0 %int_1 %37 = OpAccessChain %_ptr_Uniform_int %_ %int_0 %int_1
%11 = OpLoad %int %37 %11 = OpLoad %int %37
%38 = OpConvertSToF %float %11 %38 = OpConvertSToF %float %11
%39 = OpAccessChain %_ptr_Uniform_int %_ %int_0 %int_1 %39 = OpAccessChain %_ptr_Uniform_int %_ %int_0 %int_1
%12 = OpLoad %int %39 %12 = OpLoad %int %39
%40 = OpConvertSToF %float %12 %40 = OpConvertSToF %float %12
%41 = OpAccessChain %_ptr_Uniform_int %_ %int_0 %int_0 %41 = OpAccessChain %_ptr_Uniform_int %_ %int_0 %int_0
%13 = OpLoad %int %41 %13 = OpLoad %int %41
%42 = OpConvertSToF %float %13 %42 = OpConvertSToF %float %13
%43 = OpCompositeConstruct %v4float %36 %38 %40 %42 %43 = OpCompositeConstruct %v4float %36 %38 %40 %42
OpStore %_GLF_color %43 OpStore %_GLF_color %43
%44 = OpAccessChain %_ptr_Uniform_float %__0 %int_0 %int_1 %44 = OpAccessChain %_ptr_Uniform_float %__0 %int_0 %int_1
%45 = OpLoad %float %44 %45 = OpLoad %float %44
%46 = OpFMod %float %45 %float_0x1_8p_128 %46 = OpFMod %float %45 %float_1
OpStore %a %46 OpStore %a %46
%47 = OpLoad %float %a %47 = OpLoad %float %a
%48 = OpAccessChain %_ptr_Uniform_float %__0 %int_0 %int_0 %48 = OpAccessChain %_ptr_Uniform_float %__0 %int_0 %int_0
%49 = OpLoad %float %48 %49 = OpLoad %float %48
%50 = OpFOrdNotEqual %bool %47 %49 %50 = OpFOrdNotEqual %bool %47 %49
OpSelectionMerge %51 None OpSelectionMerge %51 None
OpBranchConditional %50 %52 %51 OpBranchConditional %50 %52 %51
%52 = OpLabel %52 = OpLabel
%53 = OpAccessChain %_ptr_Uniform_float %__0 %int_0 %int_0 %53 = OpAccessChain %_ptr_Uniform_float %__0 %int_0 %int_0
%54 = OpLoad %float %53 %54 = OpLoad %float %53
%55 = OpAccessChain %_ptr_Output_float %_GLF_color %uint_1 %55 = OpAccessChain %_ptr_Output_float %_GLF_color %uint_1
OpStore %55 %54 OpStore %55 %54
OpBranch %51 OpBranch %51
%51 = OpLabel %51 = OpLabel
OpReturn OpReturn
OpFunctionEnd OpFunctionEnd

View File

@ -34,7 +34,7 @@ fn main_1() {
let x_13 : i32 = x_5.x_GLF_uniform_int_values[0].el; let x_13 : i32 = x_5.x_GLF_uniform_int_values[0].el;
x_GLF_color = vec4<f32>(f32(x_10), f32(x_11), f32(x_12), f32(x_13)); x_GLF_color = vec4<f32>(f32(x_10), f32(x_11), f32(x_12), f32(x_13));
let x_45 : f32 = x_8.x_GLF_uniform_float_values[1].el; let x_45 : f32 = x_8.x_GLF_uniform_float_values[1].el;
a = (x_45 - (0x1.8p+128 * floor((x_45 / 0x1.8p+128)))); a = (x_45 - (1.0 * floor((x_45 / 1.0))));
let x_47 : f32 = a; let x_47 : f32 = a;
let x_49 : f32 = x_8.x_GLF_uniform_float_values[0].el; let x_49 : f32 = x_8.x_GLF_uniform_float_values[0].el;
if ((x_47 != x_49)) { if ((x_47 != x_49)) {

View File

@ -1,93 +1,93 @@
OpCapability Shader OpCapability Shader
%1 = OpExtInstImport "GLSL.std.450" %1 = OpExtInstImport "GLSL.std.450"
OpMemoryModel Logical GLSL450 OpMemoryModel Logical GLSL450
OpEntryPoint Fragment %main "main" %_GLF_color OpEntryPoint Fragment %main "main" %_GLF_color
OpExecutionMode %main OriginUpperLeft OpExecutionMode %main OriginUpperLeft
OpSource ESSL 310 OpSource ESSL 310
OpName %main "main" OpName %main "main"
OpName %_GLF_color "_GLF_color" OpName %_GLF_color "_GLF_color"
OpName %buf0 "buf0" OpName %buf0 "buf0"
OpMemberName %buf0 0 "_GLF_uniform_int_values" OpMemberName %buf0 0 "_GLF_uniform_int_values"
OpName %_ "" OpName %_ ""
OpName %a "a" OpName %a "a"
OpName %buf1 "buf1" OpName %buf1 "buf1"
OpMemberName %buf1 0 "_GLF_uniform_float_values" OpMemberName %buf1 0 "_GLF_uniform_float_values"
OpName %__0 "" OpName %__0 ""
OpDecorate %_GLF_color Location 0 OpDecorate %_GLF_color Location 0
OpDecorate %_arr_int_uint_2 ArrayStride 16 OpDecorate %_arr_int_uint_2 ArrayStride 16
OpMemberDecorate %buf0 0 RelaxedPrecision OpMemberDecorate %buf0 0 RelaxedPrecision
OpMemberDecorate %buf0 0 Offset 0 OpMemberDecorate %buf0 0 Offset 0
OpDecorate %buf0 Block OpDecorate %buf0 Block
OpDecorate %_ DescriptorSet 0 OpDecorate %_ DescriptorSet 0
OpDecorate %_ Binding 0 OpDecorate %_ Binding 0
OpDecorate %10 RelaxedPrecision OpDecorate %10 RelaxedPrecision
OpDecorate %11 RelaxedPrecision OpDecorate %11 RelaxedPrecision
OpDecorate %12 RelaxedPrecision OpDecorate %12 RelaxedPrecision
OpDecorate %13 RelaxedPrecision OpDecorate %13 RelaxedPrecision
OpDecorate %_arr_float_uint_2 ArrayStride 16 OpDecorate %_arr_float_uint_2 ArrayStride 16
OpMemberDecorate %buf1 0 Offset 0 OpMemberDecorate %buf1 0 Offset 0
OpDecorate %buf1 Block OpDecorate %buf1 Block
OpDecorate %__0 DescriptorSet 0 OpDecorate %__0 DescriptorSet 0
OpDecorate %__0 Binding 1 OpDecorate %__0 Binding 1
%void = OpTypeVoid %void = OpTypeVoid
%16 = OpTypeFunction %void %16 = OpTypeFunction %void
%float = OpTypeFloat 32 %float = OpTypeFloat 32
%v4float = OpTypeVector %float 4 %v4float = OpTypeVector %float 4
%_ptr_Output_v4float = OpTypePointer Output %v4float %_ptr_Output_v4float = OpTypePointer Output %v4float
%_GLF_color = OpVariable %_ptr_Output_v4float Output %_GLF_color = OpVariable %_ptr_Output_v4float Output
%int = OpTypeInt 32 1 %int = OpTypeInt 32 1
%uint = OpTypeInt 32 0 %uint = OpTypeInt 32 0
%uint_2 = OpConstant %uint 2 %uint_2 = OpConstant %uint 2
%_arr_int_uint_2 = OpTypeArray %int %uint_2 %_arr_int_uint_2 = OpTypeArray %int %uint_2
%buf0 = OpTypeStruct %_arr_int_uint_2 %buf0 = OpTypeStruct %_arr_int_uint_2
%_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
%_ = OpVariable %_ptr_Uniform_buf0 Uniform %_ = OpVariable %_ptr_Uniform_buf0 Uniform
%int_0 = OpConstant %int 0 %int_0 = OpConstant %int 0
%_ptr_Uniform_int = OpTypePointer Uniform %int %_ptr_Uniform_int = OpTypePointer Uniform %int
%int_1 = OpConstant %int 1 %int_1 = OpConstant %int 1
%_ptr_Function_float = OpTypePointer Function %float %_ptr_Function_float = OpTypePointer Function %float
%float_n0x1_8p_128 = OpConstant %float -0x1.8p+128 %float_1 = OpConstant %float 1.0
%_arr_float_uint_2 = OpTypeArray %float %uint_2 %_arr_float_uint_2 = OpTypeArray %float %uint_2
%buf1 = OpTypeStruct %_arr_float_uint_2 %buf1 = OpTypeStruct %_arr_float_uint_2
%_ptr_Uniform_buf1 = OpTypePointer Uniform %buf1 %_ptr_Uniform_buf1 = OpTypePointer Uniform %buf1
%__0 = OpVariable %_ptr_Uniform_buf1 Uniform %__0 = OpVariable %_ptr_Uniform_buf1 Uniform
%_ptr_Uniform_float = OpTypePointer Uniform %float %_ptr_Uniform_float = OpTypePointer Uniform %float
%bool = OpTypeBool %bool = OpTypeBool
%uint_1 = OpConstant %uint 1 %uint_1 = OpConstant %uint 1
%_ptr_Output_float = OpTypePointer Output %float %_ptr_Output_float = OpTypePointer Output %float
%main = OpFunction %void None %16 %main = OpFunction %void None %16
%34 = OpLabel %34 = OpLabel
%a = OpVariable %_ptr_Function_float Function %a = OpVariable %_ptr_Function_float Function
%35 = OpAccessChain %_ptr_Uniform_int %_ %int_0 %int_0 %35 = OpAccessChain %_ptr_Uniform_int %_ %int_0 %int_0
%10 = OpLoad %int %35 %10 = OpLoad %int %35
%36 = OpConvertSToF %float %10 %36 = OpConvertSToF %float %10
%37 = OpAccessChain %_ptr_Uniform_int %_ %int_0 %int_1 %37 = OpAccessChain %_ptr_Uniform_int %_ %int_0 %int_1
%11 = OpLoad %int %37 %11 = OpLoad %int %37
%38 = OpConvertSToF %float %11 %38 = OpConvertSToF %float %11
%39 = OpAccessChain %_ptr_Uniform_int %_ %int_0 %int_1 %39 = OpAccessChain %_ptr_Uniform_int %_ %int_0 %int_1
%12 = OpLoad %int %39 %12 = OpLoad %int %39
%40 = OpConvertSToF %float %12 %40 = OpConvertSToF %float %12
%41 = OpAccessChain %_ptr_Uniform_int %_ %int_0 %int_0 %41 = OpAccessChain %_ptr_Uniform_int %_ %int_0 %int_0
%13 = OpLoad %int %41 %13 = OpLoad %int %41
%42 = OpConvertSToF %float %13 %42 = OpConvertSToF %float %13
%43 = OpCompositeConstruct %v4float %36 %38 %40 %42 %43 = OpCompositeConstruct %v4float %36 %38 %40 %42
OpStore %_GLF_color %43 OpStore %_GLF_color %43
%44 = OpAccessChain %_ptr_Uniform_float %__0 %int_0 %int_1 %44 = OpAccessChain %_ptr_Uniform_float %__0 %int_0 %int_1
%45 = OpLoad %float %44 %45 = OpLoad %float %44
%46 = OpFMod %float %float_n0x1_8p_128 %45 %46 = OpFMod %float %float_1 %45
OpStore %a %46 OpStore %a %46
%47 = OpLoad %float %a %47 = OpLoad %float %a
%48 = OpAccessChain %_ptr_Uniform_float %__0 %int_0 %int_0 %48 = OpAccessChain %_ptr_Uniform_float %__0 %int_0 %int_0
%49 = OpLoad %float %48 %49 = OpLoad %float %48
%50 = OpFOrdNotEqual %bool %47 %49 %50 = OpFOrdNotEqual %bool %47 %49
OpSelectionMerge %51 None OpSelectionMerge %51 None
OpBranchConditional %50 %52 %51 OpBranchConditional %50 %52 %51
%52 = OpLabel %52 = OpLabel
%53 = OpAccessChain %_ptr_Uniform_float %__0 %int_0 %int_0 %53 = OpAccessChain %_ptr_Uniform_float %__0 %int_0 %int_0
%54 = OpLoad %float %53 %54 = OpLoad %float %53
%55 = OpAccessChain %_ptr_Output_float %_GLF_color %uint_1 %55 = OpAccessChain %_ptr_Output_float %_GLF_color %uint_1
OpStore %55 %54 OpStore %55 %54
OpBranch %51 OpBranch %51
%51 = OpLabel %51 = OpLabel
OpReturn OpReturn
OpFunctionEnd OpFunctionEnd

View File

@ -34,7 +34,7 @@ fn main_1() {
let x_13 : i32 = x_5.x_GLF_uniform_int_values[0].el; let x_13 : i32 = x_5.x_GLF_uniform_int_values[0].el;
x_GLF_color = vec4<f32>(f32(x_10), f32(x_11), f32(x_12), f32(x_13)); x_GLF_color = vec4<f32>(f32(x_10), f32(x_11), f32(x_12), f32(x_13));
let x_45 : f32 = x_8.x_GLF_uniform_float_values[1].el; let x_45 : f32 = x_8.x_GLF_uniform_float_values[1].el;
a = (-0x1.8p+128 - (x_45 * floor((-0x1.8p+128 / x_45)))); a = (1.0 - (x_45 * floor((1.0 / x_45))));
let x_47 : f32 = a; let x_47 : f32 = a;
let x_49 : f32 = x_8.x_GLF_uniform_float_values[0].el; let x_49 : f32 = x_8.x_GLF_uniform_float_values[0].el;
if ((x_47 != x_49)) { if ((x_47 != x_49)) {

View File

@ -1,114 +1,113 @@
OpCapability Shader OpCapability Shader
%1 = OpExtInstImport "GLSL.std.450" %1 = OpExtInstImport "GLSL.std.450"
OpMemoryModel Logical GLSL450 OpMemoryModel Logical GLSL450
OpEntryPoint Fragment %main "main" %_GLF_color OpEntryPoint Fragment %main "main" %_GLF_color
OpExecutionMode %main OriginUpperLeft OpExecutionMode %main OriginUpperLeft
OpSource ESSL 310 OpSource ESSL 310
OpName %main "main" OpName %main "main"
OpName %m24 "m24" OpName %m24 "m24"
OpName %buf0 "buf0" OpName %buf0 "buf0"
OpMemberName %buf0 0 "_GLF_uniform_float_values" OpMemberName %buf0 0 "_GLF_uniform_float_values"
OpName %_ "" OpName %_ ""
OpName %buf1 "buf1" OpName %buf1 "buf1"
OpMemberName %buf1 0 "v1" OpMemberName %buf1 0 "v1"
OpName %__0 "" OpName %__0 ""
OpName %a "a" OpName %a "a"
OpName %v2 "v2" OpName %v2 "v2"
OpName %v3 "v3" OpName %v3 "v3"
OpName %_GLF_color "_GLF_color" OpName %_GLF_color "_GLF_color"
OpDecorate %_arr_float_uint_1 ArrayStride 16 OpDecorate %_arr_float_uint_1 ArrayStride 16
OpMemberDecorate %buf0 0 Offset 0 OpMemberDecorate %buf0 0 Offset 0
OpDecorate %buf0 Block OpDecorate %buf0 Block
OpDecorate %_ DescriptorSet 0 OpDecorate %_ DescriptorSet 0
OpDecorate %_ Binding 0 OpDecorate %_ Binding 0
OpMemberDecorate %buf1 0 Offset 0 OpMemberDecorate %buf1 0 Offset 0
OpDecorate %buf1 Block OpDecorate %buf1 Block
OpDecorate %__0 DescriptorSet 0 OpDecorate %__0 DescriptorSet 0
OpDecorate %__0 Binding 1 OpDecorate %__0 Binding 1
OpDecorate %_GLF_color Location 0 OpDecorate %_GLF_color Location 0
%void = OpTypeVoid %void = OpTypeVoid
%14 = OpTypeFunction %void %14 = OpTypeFunction %void
%float = OpTypeFloat 32 %float = OpTypeFloat 32
%v2float = OpTypeVector %float 2 %v2float = OpTypeVector %float 2
%mat2v2float = OpTypeMatrix %v2float 2 %mat2v2float = OpTypeMatrix %v2float 2
%_ptr_Function_mat2v2float = OpTypePointer Function %mat2v2float %_ptr_Function_mat2v2float = OpTypePointer Function %mat2v2float
%uint = OpTypeInt 32 0 %uint = OpTypeInt 32 0
%uint_1 = OpConstant %uint 1 %uint_1 = OpConstant %uint 1
%_arr_float_uint_1 = OpTypeArray %float %uint_1 %_arr_float_uint_1 = OpTypeArray %float %uint_1
%buf0 = OpTypeStruct %_arr_float_uint_1 %buf0 = OpTypeStruct %_arr_float_uint_1
%_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
%_ = OpVariable %_ptr_Uniform_buf0 Uniform %_ = OpVariable %_ptr_Uniform_buf0 Uniform
%int = OpTypeInt 32 1 %int = OpTypeInt 32 1
%int_0 = OpConstant %int 0 %int_0 = OpConstant %int 0
%_ptr_Uniform_float = OpTypePointer Uniform %float %_ptr_Uniform_float = OpTypePointer Uniform %float
%buf1 = OpTypeStruct %v2float %buf1 = OpTypeStruct %v2float
%_ptr_Uniform_buf1 = OpTypePointer Uniform %buf1 %_ptr_Uniform_buf1 = OpTypePointer Uniform %buf1
%__0 = OpVariable %_ptr_Uniform_buf1 Uniform %__0 = OpVariable %_ptr_Uniform_buf1 Uniform
%uint_0 = OpConstant %uint 0 %uint_0 = OpConstant %uint 0
%float_1 = OpConstant %float 1 %float_1 = OpConstant %float 1
%float_0 = OpConstant %float 0 %float_0 = OpConstant %float 0
%_ptr_Function_float = OpTypePointer Function %float %_ptr_Function_float = OpTypePointer Function %float
%_ptr_Function_v2float = OpTypePointer Function %v2float %_ptr_Function_v2float = OpTypePointer Function %v2float
%float_n0x1_8p_128 = OpConstant %float -0x1.8p+128 %32 = OpConstantComposite %v2float %float_1 %float_1
%32 = OpConstantComposite %v2float %float_n0x1_8p_128 %float_1 %v4float = OpTypeVector %float 4
%v4float = OpTypeVector %float 4 %_ptr_Output_v4float = OpTypePointer Output %v4float
%_ptr_Output_v4float = OpTypePointer Output %v4float %_GLF_color = OpVariable %_ptr_Output_v4float Output
%_GLF_color = OpVariable %_ptr_Output_v4float Output %bool = OpTypeBool
%bool = OpTypeBool %36 = OpConstantComposite %v2float %float_0 %float_0
%36 = OpConstantComposite %v2float %float_0 %float_0 %37 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0
%37 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0 %main = OpFunction %void None %14
%main = OpFunction %void None %14 %38 = OpLabel
%38 = OpLabel %m24 = OpVariable %_ptr_Function_mat2v2float Function
%m24 = OpVariable %_ptr_Function_mat2v2float Function %a = OpVariable %_ptr_Function_float Function
%a = OpVariable %_ptr_Function_float Function %v2 = OpVariable %_ptr_Function_v2float Function
%v2 = OpVariable %_ptr_Function_v2float Function %v3 = OpVariable %_ptr_Function_v2float Function
%v3 = OpVariable %_ptr_Function_v2float Function %39 = OpAccessChain %_ptr_Uniform_float %_ %int_0 %int_0
%39 = OpAccessChain %_ptr_Uniform_float %_ %int_0 %int_0 %40 = OpLoad %float %39
%40 = OpLoad %float %39 %41 = OpAccessChain %_ptr_Uniform_float %_ %int_0 %int_0
%41 = OpAccessChain %_ptr_Uniform_float %_ %int_0 %int_0 %42 = OpLoad %float %41
%42 = OpLoad %float %41 %43 = OpAccessChain %_ptr_Uniform_float %__0 %int_0 %uint_0
%43 = OpAccessChain %_ptr_Uniform_float %__0 %int_0 %uint_0 %44 = OpLoad %float %43
%44 = OpLoad %float %43 %45 = OpFMul %float %44 %float_1
%45 = OpFMul %float %44 %float_1 %46 = OpAccessChain %_ptr_Uniform_float %_ %int_0 %int_0
%46 = OpAccessChain %_ptr_Uniform_float %_ %int_0 %int_0 %47 = OpLoad %float %46
%47 = OpLoad %float %46 %48 = OpCompositeConstruct %v2float %40 %42
%48 = OpCompositeConstruct %v2float %40 %42 %49 = OpCompositeConstruct %v2float %45 %47
%49 = OpCompositeConstruct %v2float %45 %47 %50 = OpCompositeConstruct %mat2v2float %48 %49
%50 = OpCompositeConstruct %mat2v2float %48 %49 OpStore %m24 %50
OpStore %m24 %50 %51 = OpLoad %mat2v2float %m24
%51 = OpLoad %mat2v2float %m24 %52 = OpCompositeExtract %float %51 0 0
%52 = OpCompositeExtract %float %51 0 0 OpStore %a %52
OpStore %a %52 OpStore %v2 %32
OpStore %v2 %32 %53 = OpLoad %v2float %v2
%53 = OpLoad %v2float %v2 %54 = OpLoad %float %a
%54 = OpLoad %float %a %55 = OpCompositeConstruct %v2float %54 %float_1
%55 = OpCompositeConstruct %v2float %54 %float_1 %56 = OpExtInst %v2float %1 Reflect %53 %55
%56 = OpExtInst %v2float %1 Reflect %53 %55 OpStore %v3 %56
OpStore %v3 %56 %57 = OpAccessChain %_ptr_Uniform_float %_ %int_0 %int_0
%57 = OpAccessChain %_ptr_Uniform_float %_ %int_0 %int_0 %58 = OpLoad %float %57
%58 = OpLoad %float %57 %59 = OpLoad %v2float %v3
%59 = OpLoad %v2float %v3 %60 = OpAccessChain %_ptr_Uniform_float %_ %int_0 %int_0
%60 = OpAccessChain %_ptr_Uniform_float %_ %int_0 %int_0 %61 = OpLoad %float %60
%61 = OpLoad %float %60 %62 = OpCompositeExtract %float %59 0
%62 = OpCompositeExtract %float %59 0 %63 = OpCompositeExtract %float %59 1
%63 = OpCompositeExtract %float %59 1 %64 = OpCompositeConstruct %v4float %58 %62 %63 %61
%64 = OpCompositeConstruct %v4float %58 %62 %63 %61 OpStore %_GLF_color %64
OpStore %_GLF_color %64 %65 = OpAccessChain %_ptr_Uniform_float %__0 %int_0 %uint_1
%65 = OpAccessChain %_ptr_Uniform_float %__0 %int_0 %uint_1 %66 = OpLoad %float %65
%66 = OpLoad %float %65 %67 = OpAccessChain %_ptr_Uniform_float %_ %int_0 %int_0
%67 = OpAccessChain %_ptr_Uniform_float %_ %int_0 %int_0 %68 = OpLoad %float %67
%68 = OpLoad %float %67 %69 = OpFOrdEqual %bool %66 %68
%69 = OpFOrdEqual %bool %66 %68 OpSelectionMerge %70 None
OpSelectionMerge %70 None OpBranchConditional %69 %71 %72
OpBranchConditional %69 %71 %72 %71 = OpLabel
%71 = OpLabel %73 = OpLoad %v4float %_GLF_color
%73 = OpLoad %v4float %_GLF_color %74 = OpVectorShuffle %v4float %73 %36 0 4 5 3
%74 = OpVectorShuffle %v4float %73 %36 0 4 5 3 OpStore %_GLF_color %74
OpStore %_GLF_color %74 OpBranch %70
OpBranch %70 %72 = OpLabel
%72 = OpLabel OpStore %_GLF_color %37
OpStore %_GLF_color %37 OpBranch %70
OpBranch %70 %70 = OpLabel
%70 = OpLabel OpReturn
OpReturn OpFunctionEnd
OpFunctionEnd

View File

@ -31,7 +31,7 @@ fn main_1() {
m24 = mat2x2<f32>(vec2<f32>(x_40, x_42), vec2<f32>((x_44 * 1.0), x_47)); m24 = mat2x2<f32>(vec2<f32>(x_40, x_42), vec2<f32>((x_44 * 1.0), x_47));
let x_51 : mat2x2<f32> = m24; let x_51 : mat2x2<f32> = m24;
a = x_51[0u].x; a = x_51[0u].x;
v2 = vec2<f32>(-0x1.8p+128, 1.0); v2 = vec2<f32>(1.0, 1.0);
let x_53 : vec2<f32> = v2; let x_53 : vec2<f32> = v2;
let x_54 : f32 = a; let x_54 : f32 = a;
let x_55 : vec2<f32> = vec2<f32>(x_54, 1.0); let x_55 : vec2<f32> = vec2<f32>(x_54, 1.0);