Re-generate expected outputs.

Change-Id: I97fc90d33fe7620b3fccfab343a9c0bbfdf6924c
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/59447
Auto-Submit: Ben Clayton <bclayton@google.com>
Commit-Queue: James Price <jrprice@google.com>
Reviewed-by: David Neto <dneto@google.com>
Reviewed-by: James Price <jrprice@google.com>
Kokoro: Kokoro <noreply+kokoro@google.com>
This commit is contained in:
Ben Clayton 2021-07-23 17:52:26 +00:00 committed by Tint LUCI CQ
parent 5ac96af72c
commit 294cb95f0e
99 changed files with 2378 additions and 2472 deletions

View File

@ -10,7 +10,7 @@ void main_1() {
float undefined = 0.0f;
bool x_51 = false;
bool x_52_phi = false;
undefined = (5.0f % 0.0f);
undefined = (5.0f - (0.0f * floor((5.0f / 0.0f))));
const uint scalar_offset = ((16u * uint(0))) / 4;
const int x_10 = asint(x_6[scalar_offset / 4][scalar_offset % 4]);
const uint scalar_offset_1 = ((16u * uint(0))) / 4;

View File

@ -1,5 +1,3 @@
SKIP: FAILED
#include <metal_stdlib>
using namespace metal;
@ -34,7 +32,7 @@ void main_1(constant buf1& x_6, constant buf0& x_8, thread float4* const tint_sy
float undefined = 0.0f;
bool x_51 = false;
bool x_52_phi = false;
undefined = (5.0f % 0.0f);
undefined = (5.0f - (0.0f * floor((5.0f / 0.0f))));
int const x_10 = x_6.x_GLF_uniform_int_values.arr[0].el;
int const x_11 = x_6.x_GLF_uniform_int_values.arr[0].el;
int const x_12 = x_6.x_GLF_uniform_int_values.arr[1].el;
@ -69,8 +67,3 @@ fragment tint_symbol_1 tint_symbol(constant buf1& x_6 [[buffer(1)]], constant bu
return tint_symbol_3;
}
T:\tmp\u348.0.metal:35:21: error: invalid operands to binary expression ('float' and 'float')
undefined = (5.0f % 0.0f);
~~~~ ^ ~~~~
1 error generated.

View File

@ -1,9 +1,10 @@
; SPIR-V
; Version: 1.3
; Generator: Google Tint Compiler; 0
; Bound: 89
; Bound: 93
; Schema: 0
OpCapability Shader
%35 = OpExtInstImport "GLSL.std.450"
OpMemoryModel Logical GLSL450
OpEntryPoint Fragment %main "main" %tint_symbol_1
OpExecutionMode %main OriginUpperLeft
@ -72,77 +73,80 @@
%int_1 = OpConstant %int 1
%_ptr_Uniform_float = OpTypePointer Uniform %float
%main_out = OpTypeStruct %v4float
%77 = OpTypeFunction %void %main_out
%81 = OpTypeFunction %void %main_out
%main_1 = OpFunction %void None %20
%23 = OpLabel
%undefined = OpVariable %_ptr_Function_float Function %26
%x_51 = OpVariable %_ptr_Function_bool Function %30
%x_52_phi = OpVariable %_ptr_Function_bool Function %30
%34 = OpFMod %float %float_5 %float_0
OpStore %undefined %34
%38 = OpAccessChain %_ptr_Uniform_int %x_6 %uint_0 %int_0
%39 = OpLoad %int %38
%40 = OpAccessChain %_ptr_Uniform_int %x_6 %uint_0 %int_0
%41 = OpLoad %int %40
%43 = OpAccessChain %_ptr_Uniform_int %x_6 %uint_0 %int_1
%44 = OpLoad %int %43
%45 = OpIAdd %int %41 %44
%46 = OpIEqual %bool %39 %45
OpStore %x_52_phi %46
%47 = OpLogicalNot %bool %46
OpSelectionMerge %48 None
OpBranchConditional %47 %49 %48
%49 = OpLabel
%50 = OpLoad %float %undefined
%52 = OpAccessChain %_ptr_Uniform_float %x_8 %uint_0 %int_0
%53 = OpLoad %float %52
%54 = OpFOrdGreaterThan %bool %50 %53
OpStore %x_51 %54
%55 = OpLoad %bool %x_51
OpStore %x_52_phi %55
OpBranch %48
%48 = OpLabel
%56 = OpLoad %bool %x_52_phi
OpSelectionMerge %57 None
OpBranchConditional %56 %58 %59
%58 = OpLabel
%60 = OpAccessChain %_ptr_Uniform_int %x_6 %uint_0 %int_0
%61 = OpLoad %int %60
%62 = OpAccessChain %_ptr_Uniform_int %x_6 %uint_0 %int_1
%63 = OpLoad %int %62
%64 = OpAccessChain %_ptr_Uniform_int %x_6 %uint_0 %int_1
%36 = OpFDiv %float %float_5 %float_0
%34 = OpExtInst %float %35 Floor %36
%37 = OpFMul %float %float_0 %34
%38 = OpFSub %float %float_5 %37
OpStore %undefined %38
%42 = OpAccessChain %_ptr_Uniform_int %x_6 %uint_0 %int_0
%43 = OpLoad %int %42
%44 = OpAccessChain %_ptr_Uniform_int %x_6 %uint_0 %int_0
%45 = OpLoad %int %44
%47 = OpAccessChain %_ptr_Uniform_int %x_6 %uint_0 %int_1
%48 = OpLoad %int %47
%49 = OpIAdd %int %45 %48
%50 = OpIEqual %bool %43 %49
OpStore %x_52_phi %50
%51 = OpLogicalNot %bool %50
OpSelectionMerge %52 None
OpBranchConditional %51 %53 %52
%53 = OpLabel
%54 = OpLoad %float %undefined
%56 = OpAccessChain %_ptr_Uniform_float %x_8 %uint_0 %int_0
%57 = OpLoad %float %56
%58 = OpFOrdGreaterThan %bool %54 %57
OpStore %x_51 %58
%59 = OpLoad %bool %x_51
OpStore %x_52_phi %59
OpBranch %52
%52 = OpLabel
%60 = OpLoad %bool %x_52_phi
OpSelectionMerge %61 None
OpBranchConditional %60 %62 %63
%62 = OpLabel
%64 = OpAccessChain %_ptr_Uniform_int %x_6 %uint_0 %int_0
%65 = OpLoad %int %64
%66 = OpAccessChain %_ptr_Uniform_int %x_6 %uint_0 %int_0
%66 = OpAccessChain %_ptr_Uniform_int %x_6 %uint_0 %int_1
%67 = OpLoad %int %66
%68 = OpConvertSToF %float %61
%69 = OpConvertSToF %float %63
%70 = OpConvertSToF %float %65
%71 = OpConvertSToF %float %67
%72 = OpCompositeConstruct %v4float %68 %69 %70 %71
OpStore %x_GLF_color %72
OpBranch %57
%59 = OpLabel
%73 = OpAccessChain %_ptr_Uniform_int %x_6 %uint_0 %int_1
%74 = OpLoad %int %73
%75 = OpConvertSToF %float %74
%76 = OpCompositeConstruct %v4float %75 %75 %75 %75
%68 = OpAccessChain %_ptr_Uniform_int %x_6 %uint_0 %int_1
%69 = OpLoad %int %68
%70 = OpAccessChain %_ptr_Uniform_int %x_6 %uint_0 %int_0
%71 = OpLoad %int %70
%72 = OpConvertSToF %float %65
%73 = OpConvertSToF %float %67
%74 = OpConvertSToF %float %69
%75 = OpConvertSToF %float %71
%76 = OpCompositeConstruct %v4float %72 %73 %74 %75
OpStore %x_GLF_color %76
OpBranch %57
%57 = OpLabel
OpBranch %61
%63 = OpLabel
%77 = OpAccessChain %_ptr_Uniform_int %x_6 %uint_0 %int_1
%78 = OpLoad %int %77
%79 = OpConvertSToF %float %78
%80 = OpCompositeConstruct %v4float %79 %79 %79 %79
OpStore %x_GLF_color %80
OpBranch %61
%61 = OpLabel
OpReturn
OpFunctionEnd
%tint_symbol_2 = OpFunction %void None %77
%tint_symbol_2 = OpFunction %void None %81
%tint_symbol = OpFunctionParameter %main_out
%81 = OpLabel
%82 = OpCompositeExtract %v4float %tint_symbol 0
OpStore %tint_symbol_1 %82
%85 = OpLabel
%86 = OpCompositeExtract %v4float %tint_symbol 0
OpStore %tint_symbol_1 %86
OpReturn
OpFunctionEnd
%main = OpFunction %void None %20
%84 = OpLabel
%85 = OpFunctionCall %void %main_1
%87 = OpLoad %v4float %x_GLF_color
%88 = OpCompositeConstruct %main_out %87
%86 = OpFunctionCall %void %tint_symbol_2 %88
%88 = OpLabel
%89 = OpFunctionCall %void %main_1
%91 = OpLoad %v4float %x_GLF_color
%92 = OpCompositeConstruct %main_out %91
%90 = OpFunctionCall %void %tint_symbol_2 %92
OpReturn
OpFunctionEnd

View File

@ -22,7 +22,7 @@ fn main_1() {
var undefined : f32;
var x_51 : bool;
var x_52_phi : bool;
undefined = (5.0 % 0.0);
undefined = (5.0 - (0.0 * floor((5.0 / 0.0))));
let x_10 : i32 = x_6.x_GLF_uniform_int_values[0];
let x_11 : i32 = x_6.x_GLF_uniform_int_values[0];
let x_12 : i32 = x_6.x_GLF_uniform_int_values[1];

View File

@ -1,5 +1,3 @@
SKIP: FAILED
#include <metal_stdlib>
using namespace metal;
@ -34,7 +32,7 @@ void main_1(constant buf1& x_6, constant buf0& x_8, thread float4* const tint_sy
float undefined = 0.0f;
bool x_51 = false;
bool x_52_phi = false;
undefined = (5.0f % 0.0f);
undefined = fmod(5.0f, 0.0f);
int const x_10 = x_6.x_GLF_uniform_int_values.arr[0].el;
int const x_11 = x_6.x_GLF_uniform_int_values.arr[0].el;
int const x_12 = x_6.x_GLF_uniform_int_values.arr[1].el;
@ -69,8 +67,3 @@ fragment tint_symbol_1 tint_symbol(constant buf1& x_6 [[buffer(1)]], constant bu
return tint_symbol_3;
}
T:\tmp\u5b0.0.metal:35:21: error: invalid operands to binary expression ('float' and 'float')
undefined = (5.0f % 0.0f);
~~~~ ^ ~~~~
1 error generated.

View File

@ -78,7 +78,7 @@
%undefined = OpVariable %_ptr_Function_float Function %26
%x_51 = OpVariable %_ptr_Function_bool Function %30
%x_52_phi = OpVariable %_ptr_Function_bool Function %30
%34 = OpFMod %float %float_5 %float_0
%34 = OpFRem %float %float_5 %float_0
OpStore %undefined %34
%38 = OpAccessChain %_ptr_Uniform_int %x_6 %uint_0 %int_0
%39 = OpLoad %int %38

View File

@ -12,7 +12,7 @@ void main_1() {
float f1 = 0.0f;
bool x_72 = false;
bool x_73_phi = false;
f0 = (10.0f % 0.000001f);
f0 = (10.0f - (0.000001f * floor((10.0f / 0.000001f))));
s1 = 9.99999935e-39f;
if ((s1 == 0.0f)) {
s1 = 1.0f;
@ -21,7 +21,8 @@ void main_1() {
bool x_71 = false;
bool x_63_phi = false;
bool x_72_phi = false;
f1 = (10.0f % s1);
const float x_42 = s1;
f1 = (10.0f - (x_42 * floor((10.0f / x_42))));
bool tint_tmp = isinf(f1);
if (!tint_tmp) {
tint_tmp = (s1 == 1.0f);

View File

@ -1,5 +1,3 @@
SKIP: FAILED
#include <metal_stdlib>
using namespace metal;
@ -36,7 +34,7 @@ void main_1(constant buf1& x_8, thread float4* const tint_symbol_4) {
float f1 = 0.0f;
bool x_72 = false;
bool x_73_phi = false;
f0 = (10.0f % 0.000001f);
f0 = (10.0f - (0.000001f * floor((10.0f / 0.000001f))));
s1 = 9.99999935e-39f;
float const x_38 = s1;
if ((x_38 == 0.0f)) {
@ -47,7 +45,7 @@ void main_1(constant buf1& x_8, thread float4* const tint_symbol_4) {
bool x_63_phi = false;
bool x_72_phi = false;
float const x_42 = s1;
f1 = (10.0f % x_42);
f1 = (10.0f - (x_42 * floor((10.0f / x_42))));
float const x_44 = f1;
float const x_46 = s1;
bool const x_48 = (isinf(x_44) || (x_46 == 1.0f));
@ -98,11 +96,3 @@ fragment tint_symbol_1 tint_symbol(constant buf1& x_8 [[buffer(1)]]) {
return tint_symbol_3;
}
T:\tmp\u3v4.0.metal:37:15: error: invalid operands to binary expression ('float' and 'float')
f0 = (10.0f % 0.000001f);
~~~~~ ^ ~~~~~~~~~
T:\tmp\u3v4.0.metal:48:15: error: invalid operands to binary expression ('float' and 'const float')
f1 = (10.0f % x_42);
~~~~~ ^ ~~~~
2 errors generated.

View File

@ -1,9 +1,10 @@
; SPIR-V
; Version: 1.3
; Generator: Google Tint Compiler; 0
; Bound: 132
; Bound: 139
; Schema: 0
OpCapability Shader
%37 = OpExtInstImport "GLSL.std.450"
OpMemoryModel Logical GLSL450
OpEntryPoint Fragment %main "main" %tint_symbol_1
OpExecutionMode %main OriginUpperLeft
@ -82,7 +83,7 @@
%_ptr_Uniform_int = OpTypePointer Uniform %int
%int_0 = OpConstant %int 0
%main_out = OpTypeStruct %v4float
%120 = OpTypeFunction %void %main_out
%127 = OpTypeFunction %void %main_out
%main_1 = OpFunction %void None %20
%23 = OpLabel
%f0 = OpVariable %_ptr_Function_float Function %26
@ -94,134 +95,140 @@
%x_71 = OpVariable %_ptr_Function_bool Function %32
%x_63_phi = OpVariable %_ptr_Function_bool Function %32
%x_72_phi = OpVariable %_ptr_Function_bool Function %32
%36 = OpFMod %float %float_10 %float_9_99999997en07
OpStore %f0 %36
%38 = OpFDiv %float %float_10 %float_9_99999997en07
%36 = OpExtInst %float %37 Floor %38
%39 = OpFMul %float %float_9_99999997en07 %36
%40 = OpFSub %float %float_10 %39
OpStore %f0 %40
OpStore %s1 %float_0x1_b38fb8pn127
%38 = OpLoad %float %s1
%40 = OpFOrdEqual %bool %38 %float_0
OpSelectionMerge %41 None
OpBranchConditional %40 %42 %41
%42 = OpLabel
%42 = OpLoad %float %s1
%44 = OpFOrdEqual %bool %42 %float_0
OpSelectionMerge %45 None
OpBranchConditional %44 %46 %45
%46 = OpLabel
OpStore %s1 %float_1
OpBranch %41
%41 = OpLabel
%48 = OpLoad %float %s1
%49 = OpFMod %float %float_10 %48
OpStore %f1 %49
%50 = OpLoad %float %f1
%51 = OpLoad %float %s1
%52 = OpIsInf %bool %50
OpSelectionMerge %53 None
OpBranchConditional %52 %53 %54
%54 = OpLabel
%55 = OpFOrdEqual %bool %51 %float_1
OpBranch %53
%53 = OpLabel
%56 = OpPhi %bool %52 %41 %55 %54
OpStore %x_73_phi %56
%57 = OpLogicalNot %bool %56
OpSelectionMerge %58 None
OpBranchConditional %57 %59 %58
%59 = OpLabel
%60 = OpLoad %float %f0
%61 = OpLoad %float %f1
%62 = OpFOrdEqual %bool %60 %61
OpStore %x_63_phi %62
%63 = OpLogicalNot %bool %62
OpSelectionMerge %64 None
OpBranchConditional %63 %65 %64
%65 = OpLabel
%66 = OpLoad %float %f0
OpBranch %45
%45 = OpLabel
%52 = OpLoad %float %s1
%54 = OpFDiv %float %float_10 %52
%53 = OpExtInst %float %37 Floor %54
%55 = OpFMul %float %52 %53
%56 = OpFSub %float %float_10 %55
OpStore %f1 %56
%57 = OpLoad %float %f1
%58 = OpLoad %float %s1
%59 = OpIsInf %bool %57
OpSelectionMerge %60 None
OpBranchConditional %59 %60 %61
%61 = OpLabel
%62 = OpFOrdEqual %bool %58 %float_1
OpBranch %60
%60 = OpLabel
%63 = OpPhi %bool %59 %45 %62 %61
OpStore %x_73_phi %63
%64 = OpLogicalNot %bool %63
OpSelectionMerge %65 None
OpBranchConditional %64 %66 %65
%66 = OpLabel
%67 = OpLoad %float %f0
%69 = OpFOrdGreaterThan %bool %66 %float_0_99000001
OpSelectionMerge %70 None
OpBranchConditional %69 %71 %70
%71 = OpLabel
%73 = OpFOrdLessThan %bool %67 %float_0_00999999978
OpBranch %70
%70 = OpLabel
%74 = OpPhi %bool %69 %65 %73 %71
OpStore %x_62 %74
%75 = OpLoad %bool %x_62
OpStore %x_63_phi %75
OpBranch %64
%64 = OpLabel
%76 = OpLoad %bool %x_63_phi
OpStore %x_72_phi %76
%77 = OpLogicalNot %bool %76
OpSelectionMerge %78 None
OpBranchConditional %77 %79 %78
%79 = OpLabel
%80 = OpLoad %float %f1
%81 = OpLoad %float %f1
%82 = OpFOrdGreaterThan %bool %80 %float_0_99000001
OpSelectionMerge %83 None
OpBranchConditional %82 %84 %83
%84 = OpLabel
%85 = OpFOrdLessThan %bool %81 %float_0_00999999978
OpBranch %83
%83 = OpLabel
%86 = OpPhi %bool %82 %79 %85 %84
OpStore %x_71 %86
%87 = OpLoad %bool %x_71
OpStore %x_72_phi %87
OpBranch %78
%68 = OpLoad %float %f1
%69 = OpFOrdEqual %bool %67 %68
OpStore %x_63_phi %69
%70 = OpLogicalNot %bool %69
OpSelectionMerge %71 None
OpBranchConditional %70 %72 %71
%72 = OpLabel
%73 = OpLoad %float %f0
%74 = OpLoad %float %f0
%76 = OpFOrdGreaterThan %bool %73 %float_0_99000001
OpSelectionMerge %77 None
OpBranchConditional %76 %78 %77
%78 = OpLabel
%88 = OpLoad %bool %x_72_phi
OpStore %x_72 %88
%89 = OpLoad %bool %x_72
OpStore %x_73_phi %89
OpBranch %58
%58 = OpLabel
%90 = OpLoad %bool %x_73_phi
%91 = OpLoad %float %f1
OpSelectionMerge %92 None
OpBranchConditional %90 %92 %93
%93 = OpLabel
%94 = OpFOrdEqual %bool %91 %float_10
OpBranch %92
%92 = OpLabel
%95 = OpPhi %bool %90 %58 %94 %93
OpSelectionMerge %96 None
OpBranchConditional %95 %97 %98
%97 = OpLabel
%102 = OpAccessChain %_ptr_Uniform_int %x_8 %uint_0 %int_1
%103 = OpLoad %int %102
%105 = OpAccessChain %_ptr_Uniform_int %x_8 %uint_0 %int_0
%106 = OpLoad %int %105
%107 = OpAccessChain %_ptr_Uniform_int %x_8 %uint_0 %int_0
%108 = OpLoad %int %107
%80 = OpFOrdLessThan %bool %74 %float_0_00999999978
OpBranch %77
%77 = OpLabel
%81 = OpPhi %bool %76 %72 %80 %78
OpStore %x_62 %81
%82 = OpLoad %bool %x_62
OpStore %x_63_phi %82
OpBranch %71
%71 = OpLabel
%83 = OpLoad %bool %x_63_phi
OpStore %x_72_phi %83
%84 = OpLogicalNot %bool %83
OpSelectionMerge %85 None
OpBranchConditional %84 %86 %85
%86 = OpLabel
%87 = OpLoad %float %f1
%88 = OpLoad %float %f1
%89 = OpFOrdGreaterThan %bool %87 %float_0_99000001
OpSelectionMerge %90 None
OpBranchConditional %89 %91 %90
%91 = OpLabel
%92 = OpFOrdLessThan %bool %88 %float_0_00999999978
OpBranch %90
%90 = OpLabel
%93 = OpPhi %bool %89 %86 %92 %91
OpStore %x_71 %93
%94 = OpLoad %bool %x_71
OpStore %x_72_phi %94
OpBranch %85
%85 = OpLabel
%95 = OpLoad %bool %x_72_phi
OpStore %x_72 %95
%96 = OpLoad %bool %x_72
OpStore %x_73_phi %96
OpBranch %65
%65 = OpLabel
%97 = OpLoad %bool %x_73_phi
%98 = OpLoad %float %f1
OpSelectionMerge %99 None
OpBranchConditional %97 %99 %100
%100 = OpLabel
%101 = OpFOrdEqual %bool %98 %float_10
OpBranch %99
%99 = OpLabel
%102 = OpPhi %bool %97 %65 %101 %100
OpSelectionMerge %103 None
OpBranchConditional %102 %104 %105
%104 = OpLabel
%109 = OpAccessChain %_ptr_Uniform_int %x_8 %uint_0 %int_1
%110 = OpLoad %int %109
%111 = OpConvertSToF %float %103
%112 = OpConvertSToF %float %106
%113 = OpConvertSToF %float %108
%114 = OpConvertSToF %float %110
%115 = OpCompositeConstruct %v4float %111 %112 %113 %114
OpStore %x_GLF_color %115
OpBranch %96
%98 = OpLabel
%116 = OpAccessChain %_ptr_Uniform_int %x_8 %uint_0 %int_0
%112 = OpAccessChain %_ptr_Uniform_int %x_8 %uint_0 %int_0
%113 = OpLoad %int %112
%114 = OpAccessChain %_ptr_Uniform_int %x_8 %uint_0 %int_0
%115 = OpLoad %int %114
%116 = OpAccessChain %_ptr_Uniform_int %x_8 %uint_0 %int_1
%117 = OpLoad %int %116
%118 = OpConvertSToF %float %117
%119 = OpCompositeConstruct %v4float %118 %118 %118 %118
OpStore %x_GLF_color %119
OpBranch %96
%96 = OpLabel
%118 = OpConvertSToF %float %110
%119 = OpConvertSToF %float %113
%120 = OpConvertSToF %float %115
%121 = OpConvertSToF %float %117
%122 = OpCompositeConstruct %v4float %118 %119 %120 %121
OpStore %x_GLF_color %122
OpBranch %103
%105 = OpLabel
%123 = OpAccessChain %_ptr_Uniform_int %x_8 %uint_0 %int_0
%124 = OpLoad %int %123
%125 = OpConvertSToF %float %124
%126 = OpCompositeConstruct %v4float %125 %125 %125 %125
OpStore %x_GLF_color %126
OpBranch %103
%103 = OpLabel
OpReturn
OpFunctionEnd
%tint_symbol_2 = OpFunction %void None %120
%tint_symbol_2 = OpFunction %void None %127
%tint_symbol = OpFunctionParameter %main_out
%124 = OpLabel
%125 = OpCompositeExtract %v4float %tint_symbol 0
OpStore %tint_symbol_1 %125
%131 = OpLabel
%132 = OpCompositeExtract %v4float %tint_symbol 0
OpStore %tint_symbol_1 %132
OpReturn
OpFunctionEnd
%main = OpFunction %void None %20
%127 = OpLabel
%128 = OpFunctionCall %void %main_1
%130 = OpLoad %v4float %x_GLF_color
%131 = OpCompositeConstruct %main_out %130
%129 = OpFunctionCall %void %tint_symbol_2 %131
%134 = OpLabel
%135 = OpFunctionCall %void %main_1
%137 = OpLoad %v4float %x_GLF_color
%138 = OpCompositeConstruct %main_out %137
%136 = OpFunctionCall %void %tint_symbol_2 %138
OpReturn
OpFunctionEnd

View File

@ -24,7 +24,7 @@ fn main_1() {
var f1 : f32;
var x_72 : bool;
var x_73_phi : bool;
f0 = (10.0 % 0.000001);
f0 = (10.0 - (0.000001 * floor((10.0 / 0.000001))));
s1 = 0x1.b38fb8p-127;
let x_38 : f32 = s1;
if ((x_38 == 0.0)) {
@ -35,7 +35,7 @@ fn main_1() {
var x_63_phi : bool;
var x_72_phi : bool;
let x_42 : f32 = s1;
f1 = (10.0 % x_42);
f1 = (10.0 - (x_42 * floor((10.0 / x_42))));
let x_44 : f32 = f1;
let x_46 : f32 = s1;
let x_48 : bool = (isInf(x_44) || (x_46 == 1.0));

View File

@ -4,7 +4,7 @@ cbuffer cbuffer_x_5 : register(b0, space0) {
};
void main_1() {
if (((1.0f % 1.0f) <= 0.01f)) {
if (((1.0f - (1.0f * floor((1.0f / 1.0f)))) <= 0.01f)) {
const uint scalar_offset = ((16u * uint(0))) / 4;
const int x_29 = asint(x_5[scalar_offset / 4][scalar_offset % 4]);
const uint scalar_offset_1 = ((16u * uint(0))) / 4;

View File

@ -1,5 +1,3 @@
SKIP: FAILED
#include <metal_stdlib>
using namespace metal;
@ -21,7 +19,7 @@ struct tint_symbol_1 {
};
void main_1(constant buf0& x_5, thread float4* const tint_symbol_4) {
if (((1.0f % 1.0f) <= 0.01f)) {
if (((1.0f - (1.0f * floor((1.0f / 1.0f)))) <= 0.01f)) {
int const x_29 = x_5.x_GLF_uniform_int_values.arr[0].el;
int const x_32 = x_5.x_GLF_uniform_int_values.arr[0].el;
int const x_35 = x_5.x_GLF_uniform_int_values.arr[1].el;
@ -42,8 +40,3 @@ fragment tint_symbol_1 tint_symbol(constant buf0& x_5 [[buffer(0)]]) {
return tint_symbol_3;
}
T:\tmp\u8zg.0.metal:22:14: error: invalid operands to binary expression ('float' and 'float')
if (((1.0f % 1.0f) <= 0.01f)) {
~~~~ ^ ~~~~
1 error generated.

View File

@ -1,9 +1,10 @@
; SPIR-V
; Version: 1.3
; Generator: Google Tint Compiler; 0
; Bound: 57
; Bound: 61
; Schema: 0
OpCapability Shader
%21 = OpExtInstImport "GLSL.std.450"
OpMemoryModel Logical GLSL450
OpEntryPoint Fragment %main "main" %tint_symbol_1
OpExecutionMode %main OriginUpperLeft
@ -50,48 +51,51 @@
%_ptr_Uniform_int = OpTypePointer Uniform %int
%int_1 = OpConstant %int 1
%main_out = OpTypeStruct %v4float
%45 = OpTypeFunction %void %main_out
%49 = OpTypeFunction %void %main_out
%main_1 = OpFunction %void None %15
%18 = OpLabel
%20 = OpFMod %float %float_1 %float_1
%22 = OpFOrdLessThanEqual %bool %20 %float_0_00999999978
OpSelectionMerge %24 None
OpBranchConditional %22 %25 %26
%25 = OpLabel
%30 = OpAccessChain %_ptr_Uniform_int %x_5 %uint_0 %int_0
%31 = OpLoad %int %30
%32 = OpAccessChain %_ptr_Uniform_int %x_5 %uint_0 %int_0
%33 = OpLoad %int %32
%35 = OpAccessChain %_ptr_Uniform_int %x_5 %uint_0 %int_1
%36 = OpLoad %int %35
%37 = OpConvertSToF %float %31
%38 = OpConvertSToF %float %33
%39 = OpConvertSToF %float %36
%40 = OpCompositeConstruct %v4float %float_1 %37 %38 %39
OpStore %x_GLF_color %40
OpBranch %24
%26 = OpLabel
%41 = OpAccessChain %_ptr_Uniform_int %x_5 %uint_0 %int_0
%42 = OpLoad %int %41
%43 = OpConvertSToF %float %42
%44 = OpCompositeConstruct %v4float %43 %43 %43 %43
%22 = OpFDiv %float %float_1 %float_1
%20 = OpExtInst %float %21 Floor %22
%23 = OpFMul %float %float_1 %20
%24 = OpFSub %float %float_1 %23
%26 = OpFOrdLessThanEqual %bool %24 %float_0_00999999978
OpSelectionMerge %28 None
OpBranchConditional %26 %29 %30
%29 = OpLabel
%34 = OpAccessChain %_ptr_Uniform_int %x_5 %uint_0 %int_0
%35 = OpLoad %int %34
%36 = OpAccessChain %_ptr_Uniform_int %x_5 %uint_0 %int_0
%37 = OpLoad %int %36
%39 = OpAccessChain %_ptr_Uniform_int %x_5 %uint_0 %int_1
%40 = OpLoad %int %39
%41 = OpConvertSToF %float %35
%42 = OpConvertSToF %float %37
%43 = OpConvertSToF %float %40
%44 = OpCompositeConstruct %v4float %float_1 %41 %42 %43
OpStore %x_GLF_color %44
OpBranch %24
%24 = OpLabel
OpBranch %28
%30 = OpLabel
%45 = OpAccessChain %_ptr_Uniform_int %x_5 %uint_0 %int_0
%46 = OpLoad %int %45
%47 = OpConvertSToF %float %46
%48 = OpCompositeConstruct %v4float %47 %47 %47 %47
OpStore %x_GLF_color %48
OpBranch %28
%28 = OpLabel
OpReturn
OpFunctionEnd
%tint_symbol_2 = OpFunction %void None %45
%tint_symbol_2 = OpFunction %void None %49
%tint_symbol = OpFunctionParameter %main_out
%49 = OpLabel
%50 = OpCompositeExtract %v4float %tint_symbol 0
OpStore %tint_symbol_1 %50
%53 = OpLabel
%54 = OpCompositeExtract %v4float %tint_symbol 0
OpStore %tint_symbol_1 %54
OpReturn
OpFunctionEnd
%main = OpFunction %void None %15
%52 = OpLabel
%53 = OpFunctionCall %void %main_1
%55 = OpLoad %v4float %x_GLF_color
%56 = OpCompositeConstruct %main_out %55
%54 = OpFunctionCall %void %tint_symbol_2 %56
%56 = OpLabel
%57 = OpFunctionCall %void %main_1
%59 = OpLoad %v4float %x_GLF_color
%60 = OpCompositeConstruct %main_out %59
%58 = OpFunctionCall %void %tint_symbol_2 %60
OpReturn
OpFunctionEnd

View File

@ -10,7 +10,7 @@ var<private> x_GLF_color : vec4<f32>;
[[group(0), binding(0)]] var<uniform> x_5 : buf0;
fn main_1() {
if (((1.0 % 1.0) <= 0.01)) {
if (((1.0 - (1.0 * floor((1.0 / 1.0)))) <= 0.01)) {
let x_29 : i32 = x_5.x_GLF_uniform_int_values[0];
let x_32 : i32 = x_5.x_GLF_uniform_int_values[0];
let x_35 : i32 = x_5.x_GLF_uniform_int_values[1];

View File

@ -1,5 +1,3 @@
SKIP: FAILED
#include <metal_stdlib>
using namespace metal;
@ -21,7 +19,7 @@ struct tint_symbol_1 {
};
void main_1(constant buf0& x_5, thread float4* const tint_symbol_4) {
if (((1.0f % 1.0f) <= 0.01f)) {
if ((fmod(1.0f, 1.0f) <= 0.01f)) {
int const x_29 = x_5.x_GLF_uniform_int_values.arr[0].el;
int const x_32 = x_5.x_GLF_uniform_int_values.arr[0].el;
int const x_35 = x_5.x_GLF_uniform_int_values.arr[1].el;
@ -42,8 +40,3 @@ fragment tint_symbol_1 tint_symbol(constant buf0& x_5 [[buffer(0)]]) {
return tint_symbol_3;
}
T:\tmp\u180.0.metal:22:14: error: invalid operands to binary expression ('float' and 'float')
if (((1.0f % 1.0f) <= 0.01f)) {
~~~~ ^ ~~~~
1 error generated.

View File

@ -53,7 +53,7 @@
%45 = OpTypeFunction %void %main_out
%main_1 = OpFunction %void None %15
%18 = OpLabel
%20 = OpFMod %float %float_1 %float_1
%20 = OpFRem %float %float_1 %float_1
%22 = OpFOrdLessThanEqual %bool %20 %float_0_00999999978
OpSelectionMerge %24 None
OpBranchConditional %22 %25 %26

View File

@ -16,7 +16,7 @@ void main_1() {
const int x_13 = asint(x_5[scalar_offset_1 / 4][scalar_offset_1 % 4]);
x_GLF_color = float4(float(x_10), float(x_11), float(x_12), float(x_13));
const float x_45 = asfloat(x_8[1].x);
a = (x_45 % asfloat(0x7fc00000u));
a = (x_45 - (asfloat(0x7fc00000u) * floor((x_45 / asfloat(0x7fc00000u)))));
const float x_47 = a;
const uint scalar_offset_2 = ((16u * uint(0))) / 4;
const float x_49 = asfloat(x_8[scalar_offset_2 / 4][scalar_offset_2 % 4]);

View File

@ -1,5 +1,3 @@
SKIP: FAILED
#include <metal_stdlib>
using namespace metal;
@ -38,7 +36,7 @@ void main_1(constant buf0& x_5, constant buf1& x_8, thread float4* const tint_sy
int const x_13 = x_5.x_GLF_uniform_int_values.arr[0].el;
*(tint_symbol_4) = float4(float(x_10), float(x_11), float(x_12), float(x_13));
float const x_45 = x_8.x_GLF_uniform_float_values.arr[1].el;
a = (x_45 % NAN);
a = (x_45 - (NAN * floor((x_45 / NAN))));
float const x_47 = a;
float const x_49 = x_8.x_GLF_uniform_float_values.arr[0].el;
if ((x_47 != x_49)) {
@ -56,8 +54,3 @@ fragment tint_symbol_1 tint_symbol(constant buf0& x_5 [[buffer(0)]], constant bu
return tint_symbol_3;
}
T:\tmp\ubcg.0.metal:39:13: error: invalid operands to binary expression ('const float' and 'float')
a = (x_45 % NAN);
~~~~ ^ ~~~
1 error generated.

View File

@ -1,9 +1,10 @@
; SPIR-V
; Version: 1.3
; Generator: Google Tint Compiler; 0
; Bound: 72
; Bound: 76
; Schema: 0
OpCapability Shader
%48 = OpExtInstImport "GLSL.std.450"
OpMemoryModel Logical GLSL450
OpEntryPoint Fragment %main "main" %tint_symbol_1
OpExecutionMode %main OriginUpperLeft
@ -68,7 +69,7 @@
%uint_1 = OpConstant %uint 1
%_ptr_Private_float = OpTypePointer Private %float
%main_out = OpTypeStruct %v4float
%60 = OpTypeFunction %void %main_out
%64 = OpTypeFunction %void %main_out
%main_1 = OpFunction %void None %19
%22 = OpLabel
%a = OpVariable %_ptr_Function_float Function %25
@ -88,35 +89,38 @@
OpStore %x_GLF_color %42
%44 = OpAccessChain %_ptr_Uniform_float %x_8 %uint_0 %int_1
%45 = OpLoad %float %44
%47 = OpFMod %float %45 %float_0x1_8p_128
OpStore %a %47
%48 = OpLoad %float %a
%49 = OpAccessChain %_ptr_Uniform_float %x_8 %uint_0 %int_0
%50 = OpLoad %float %49
%51 = OpFOrdNotEqual %bool %48 %50
OpSelectionMerge %53 None
OpBranchConditional %51 %54 %53
%54 = OpLabel
%55 = OpAccessChain %_ptr_Uniform_float %x_8 %uint_0 %int_0
%56 = OpLoad %float %55
%59 = OpAccessChain %_ptr_Private_float %x_GLF_color %uint_1
OpStore %59 %56
OpBranch %53
%53 = OpLabel
%49 = OpFDiv %float %45 %float_0x1_8p_128
%47 = OpExtInst %float %48 Floor %49
%50 = OpFMul %float %float_0x1_8p_128 %47
%51 = OpFSub %float %45 %50
OpStore %a %51
%52 = OpLoad %float %a
%53 = OpAccessChain %_ptr_Uniform_float %x_8 %uint_0 %int_0
%54 = OpLoad %float %53
%55 = OpFOrdNotEqual %bool %52 %54
OpSelectionMerge %57 None
OpBranchConditional %55 %58 %57
%58 = OpLabel
%59 = OpAccessChain %_ptr_Uniform_float %x_8 %uint_0 %int_0
%60 = OpLoad %float %59
%63 = OpAccessChain %_ptr_Private_float %x_GLF_color %uint_1
OpStore %63 %60
OpBranch %57
%57 = OpLabel
OpReturn
OpFunctionEnd
%tint_symbol_2 = OpFunction %void None %60
%tint_symbol_2 = OpFunction %void None %64
%tint_symbol = OpFunctionParameter %main_out
%64 = OpLabel
%65 = OpCompositeExtract %v4float %tint_symbol 0
OpStore %tint_symbol_1 %65
%68 = OpLabel
%69 = OpCompositeExtract %v4float %tint_symbol 0
OpStore %tint_symbol_1 %69
OpReturn
OpFunctionEnd
%main = OpFunction %void None %19
%67 = OpLabel
%68 = OpFunctionCall %void %main_1
%70 = OpLoad %v4float %x_GLF_color
%71 = OpCompositeConstruct %main_out %70
%69 = OpFunctionCall %void %tint_symbol_2 %71
%71 = OpLabel
%72 = OpFunctionCall %void %main_1
%74 = OpLoad %v4float %x_GLF_color
%75 = OpCompositeConstruct %main_out %74
%73 = OpFunctionCall %void %tint_symbol_2 %75
OpReturn
OpFunctionEnd

View File

@ -26,7 +26,7 @@ fn main_1() {
let x_13 : i32 = x_5.x_GLF_uniform_int_values[0];
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];
a = (x_45 % 0x1.8p+128);
a = (x_45 - (0x1.8p+128 * floor((x_45 / 0x1.8p+128))));
let x_47 : f32 = a;
let x_49 : f32 = x_8.x_GLF_uniform_float_values[0];
if ((x_47 != x_49)) {

View File

@ -16,7 +16,7 @@ void main_1() {
const int x_13 = asint(x_5[scalar_offset_1 / 4][scalar_offset_1 % 4]);
x_GLF_color = float4(float(x_10), float(x_11), float(x_12), float(x_13));
const float x_45 = asfloat(x_8[1].x);
a = (asfloat(0x7fc00000u) % x_45);
a = (asfloat(0x7fc00000u) - (x_45 * floor((asfloat(0x7fc00000u) / x_45))));
const float x_47 = a;
const uint scalar_offset_2 = ((16u * uint(0))) / 4;
const float x_49 = asfloat(x_8[scalar_offset_2 / 4][scalar_offset_2 % 4]);

View File

@ -1,5 +1,3 @@
SKIP: FAILED
#include <metal_stdlib>
using namespace metal;
@ -38,7 +36,7 @@ void main_1(constant buf0& x_5, constant buf1& x_8, thread float4* const tint_sy
int const x_13 = x_5.x_GLF_uniform_int_values.arr[0].el;
*(tint_symbol_4) = float4(float(x_10), float(x_11), float(x_12), float(x_13));
float const x_45 = x_8.x_GLF_uniform_float_values.arr[1].el;
a = (NAN % x_45);
a = (NAN - (x_45 * floor((NAN / x_45))));
float const x_47 = a;
float const x_49 = x_8.x_GLF_uniform_float_values.arr[0].el;
if ((x_47 != x_49)) {
@ -56,8 +54,3 @@ fragment tint_symbol_1 tint_symbol(constant buf0& x_5 [[buffer(0)]], constant bu
return tint_symbol_3;
}
T:\tmp\uc6w.0.metal:39:12: error: invalid operands to binary expression ('float' and 'const float')
a = (NAN % x_45);
~~~ ^ ~~~~
1 error generated.

View File

@ -1,9 +1,10 @@
; SPIR-V
; Version: 1.3
; Generator: Google Tint Compiler; 0
; Bound: 72
; Bound: 76
; Schema: 0
OpCapability Shader
%48 = OpExtInstImport "GLSL.std.450"
OpMemoryModel Logical GLSL450
OpEntryPoint Fragment %main "main" %tint_symbol_1
OpExecutionMode %main OriginUpperLeft
@ -68,7 +69,7 @@
%uint_1 = OpConstant %uint 1
%_ptr_Private_float = OpTypePointer Private %float
%main_out = OpTypeStruct %v4float
%60 = OpTypeFunction %void %main_out
%64 = OpTypeFunction %void %main_out
%main_1 = OpFunction %void None %19
%22 = OpLabel
%a = OpVariable %_ptr_Function_float Function %25
@ -88,35 +89,38 @@
OpStore %x_GLF_color %42
%44 = OpAccessChain %_ptr_Uniform_float %x_8 %uint_0 %int_1
%45 = OpLoad %float %44
%47 = OpFMod %float %float_n0x1_8p_128 %45
OpStore %a %47
%48 = OpLoad %float %a
%49 = OpAccessChain %_ptr_Uniform_float %x_8 %uint_0 %int_0
%50 = OpLoad %float %49
%51 = OpFOrdNotEqual %bool %48 %50
OpSelectionMerge %53 None
OpBranchConditional %51 %54 %53
%54 = OpLabel
%55 = OpAccessChain %_ptr_Uniform_float %x_8 %uint_0 %int_0
%56 = OpLoad %float %55
%59 = OpAccessChain %_ptr_Private_float %x_GLF_color %uint_1
OpStore %59 %56
OpBranch %53
%53 = OpLabel
%49 = OpFDiv %float %float_n0x1_8p_128 %45
%47 = OpExtInst %float %48 Floor %49
%50 = OpFMul %float %45 %47
%51 = OpFSub %float %float_n0x1_8p_128 %50
OpStore %a %51
%52 = OpLoad %float %a
%53 = OpAccessChain %_ptr_Uniform_float %x_8 %uint_0 %int_0
%54 = OpLoad %float %53
%55 = OpFOrdNotEqual %bool %52 %54
OpSelectionMerge %57 None
OpBranchConditional %55 %58 %57
%58 = OpLabel
%59 = OpAccessChain %_ptr_Uniform_float %x_8 %uint_0 %int_0
%60 = OpLoad %float %59
%63 = OpAccessChain %_ptr_Private_float %x_GLF_color %uint_1
OpStore %63 %60
OpBranch %57
%57 = OpLabel
OpReturn
OpFunctionEnd
%tint_symbol_2 = OpFunction %void None %60
%tint_symbol_2 = OpFunction %void None %64
%tint_symbol = OpFunctionParameter %main_out
%64 = OpLabel
%65 = OpCompositeExtract %v4float %tint_symbol 0
OpStore %tint_symbol_1 %65
%68 = OpLabel
%69 = OpCompositeExtract %v4float %tint_symbol 0
OpStore %tint_symbol_1 %69
OpReturn
OpFunctionEnd
%main = OpFunction %void None %19
%67 = OpLabel
%68 = OpFunctionCall %void %main_1
%70 = OpLoad %v4float %x_GLF_color
%71 = OpCompositeConstruct %main_out %70
%69 = OpFunctionCall %void %tint_symbol_2 %71
%71 = OpLabel
%72 = OpFunctionCall %void %main_1
%74 = OpLoad %v4float %x_GLF_color
%75 = OpCompositeConstruct %main_out %74
%73 = OpFunctionCall %void %tint_symbol_2 %75
OpReturn
OpFunctionEnd

View File

@ -26,7 +26,7 @@ fn main_1() {
let x_13 : i32 = x_5.x_GLF_uniform_int_values[0];
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];
a = (-0x1.8p+128 % x_45);
a = (-0x1.8p+128 - (x_45 * floor((-0x1.8p+128 / x_45))));
let x_47 : f32 = a;
let x_49 : f32 = x_8.x_GLF_uniform_float_values[0];
if ((x_47 != x_49)) {

View File

@ -5,7 +5,7 @@ cbuffer cbuffer_x_6 : register(b0, space0) {
void main_1() {
float a = 0.0f;
a = (asfloat(1u) % 1.0f);
a = (asfloat(1u) - (1.0f * floor((asfloat(1u) / 1.0f))));
const float x_29 = asfloat(x_6[1].x);
x_GLF_color = float4(x_29, x_29, x_29, x_29);
const float x_31 = a;

View File

@ -1,5 +1,3 @@
SKIP: FAILED
#include <metal_stdlib>
using namespace metal;
@ -22,7 +20,7 @@ struct tint_symbol_1 {
void main_1(constant buf0& x_6, thread float4* const tint_symbol_4) {
float a = 0.0f;
a = (as_type<float>(1u) % 1.0f);
a = (as_type<float>(1u) - (1.0f * floor((as_type<float>(1u) / 1.0f))));
float const x_29 = x_6.x_GLF_uniform_float_values.arr[1].el;
*(tint_symbol_4) = float4(x_29, x_29, x_29, x_29);
float const x_31 = a;
@ -45,8 +43,3 @@ fragment tint_symbol_1 tint_symbol(constant buf0& x_6 [[buffer(0)]]) {
return tint_symbol_3;
}
T:\tmp\uf8c.0.metal:23:27: error: invalid operands to binary expression ('float' and 'float')
a = (as_type<float>(1u) % 1.0f);
~~~~~~~~~~~~~~~~~~ ^ ~~~~
1 error generated.

View File

@ -1,9 +1,10 @@
; SPIR-V
; Version: 1.3
; Generator: Google Tint Compiler; 0
; Bound: 62
; Bound: 67
; Schema: 0
OpCapability Shader
%25 = OpExtInstImport "GLSL.std.450"
OpMemoryModel Logical GLSL450
OpEntryPoint Fragment %main "main" %tint_symbol_1
OpExecutionMode %main OriginUpperLeft
@ -54,50 +55,54 @@
%bool = OpTypeBool
%int_0 = OpConstant %int 0
%main_out = OpTypeStruct %v4float
%50 = OpTypeFunction %void %main_out
%55 = OpTypeFunction %void %main_out
%main_1 = OpFunction %void None %14
%17 = OpLabel
%a = OpVariable %_ptr_Function_float Function %20
%21 = OpBitcast %float %uint_1
%24 = OpFMod %float %21 %float_1
OpStore %a %24
%29 = OpAccessChain %_ptr_Uniform_float %x_6 %uint_0 %int_1
%30 = OpLoad %float %29
%31 = OpCompositeConstruct %v4float %30 %30 %30 %30
OpStore %x_GLF_color %31
%32 = OpLoad %float %a
%34 = OpAccessChain %_ptr_Uniform_float %x_6 %uint_0 %int_2
%26 = OpBitcast %float %uint_1
%27 = OpFDiv %float %26 %float_1
%24 = OpExtInst %float %25 Floor %27
%28 = OpFMul %float %float_1 %24
%29 = OpFSub %float %21 %28
OpStore %a %29
%34 = OpAccessChain %_ptr_Uniform_float %x_6 %uint_0 %int_1
%35 = OpLoad %float %34
%36 = OpFOrdLessThan %bool %32 %35
OpSelectionMerge %38 None
OpBranchConditional %36 %39 %38
%39 = OpLabel
%41 = OpAccessChain %_ptr_Uniform_float %x_6 %uint_0 %int_0
%42 = OpLoad %float %41
%43 = OpAccessChain %_ptr_Uniform_float %x_6 %uint_0 %int_1
%44 = OpLoad %float %43
%45 = OpAccessChain %_ptr_Uniform_float %x_6 %uint_0 %int_1
%46 = OpLoad %float %45
%47 = OpAccessChain %_ptr_Uniform_float %x_6 %uint_0 %int_0
%48 = OpLoad %float %47
%49 = OpCompositeConstruct %v4float %42 %44 %46 %48
OpStore %x_GLF_color %49
OpBranch %38
%38 = OpLabel
%36 = OpCompositeConstruct %v4float %35 %35 %35 %35
OpStore %x_GLF_color %36
%37 = OpLoad %float %a
%39 = OpAccessChain %_ptr_Uniform_float %x_6 %uint_0 %int_2
%40 = OpLoad %float %39
%41 = OpFOrdLessThan %bool %37 %40
OpSelectionMerge %43 None
OpBranchConditional %41 %44 %43
%44 = OpLabel
%46 = OpAccessChain %_ptr_Uniform_float %x_6 %uint_0 %int_0
%47 = OpLoad %float %46
%48 = OpAccessChain %_ptr_Uniform_float %x_6 %uint_0 %int_1
%49 = OpLoad %float %48
%50 = OpAccessChain %_ptr_Uniform_float %x_6 %uint_0 %int_1
%51 = OpLoad %float %50
%52 = OpAccessChain %_ptr_Uniform_float %x_6 %uint_0 %int_0
%53 = OpLoad %float %52
%54 = OpCompositeConstruct %v4float %47 %49 %51 %53
OpStore %x_GLF_color %54
OpBranch %43
%43 = OpLabel
OpReturn
OpFunctionEnd
%tint_symbol_2 = OpFunction %void None %50
%tint_symbol_2 = OpFunction %void None %55
%tint_symbol = OpFunctionParameter %main_out
%54 = OpLabel
%55 = OpCompositeExtract %v4float %tint_symbol 0
OpStore %tint_symbol_1 %55
%59 = OpLabel
%60 = OpCompositeExtract %v4float %tint_symbol 0
OpStore %tint_symbol_1 %60
OpReturn
OpFunctionEnd
%main = OpFunction %void None %14
%57 = OpLabel
%58 = OpFunctionCall %void %main_1
%60 = OpLoad %v4float %x_GLF_color
%61 = OpCompositeConstruct %main_out %60
%59 = OpFunctionCall %void %tint_symbol_2 %61
%62 = OpLabel
%63 = OpFunctionCall %void %main_1
%65 = OpLoad %v4float %x_GLF_color
%66 = OpCompositeConstruct %main_out %65
%64 = OpFunctionCall %void %tint_symbol_2 %66
OpReturn
OpFunctionEnd

View File

@ -11,7 +11,7 @@ var<private> x_GLF_color : vec4<f32>;
fn main_1() {
var a : f32;
a = (bitcast<f32>(1u) % 1.0);
a = (bitcast<f32>(1u) - (1.0 * floor((bitcast<f32>(1u) / 1.0))));
let x_29 : f32 = x_6.x_GLF_uniform_float_values[1];
x_GLF_color = vec4<f32>(x_29, x_29, x_29, x_29);
let x_31 : f32 = a;

View File

@ -1,5 +1,3 @@
SKIP: FAILED
#include <metal_stdlib>
using namespace metal;
@ -22,7 +20,7 @@ struct tint_symbol_1 {
void main_1(constant buf0& x_6, thread float4* const tint_symbol_4) {
float a = 0.0f;
a = (as_type<float>(1u) % 1.0f);
a = fmod(as_type<float>(1u), 1.0f);
float const x_29 = x_6.x_GLF_uniform_float_values.arr[1].el;
*(tint_symbol_4) = float4(x_29, x_29, x_29, x_29);
float const x_31 = a;
@ -45,8 +43,3 @@ fragment tint_symbol_1 tint_symbol(constant buf0& x_6 [[buffer(0)]]) {
return tint_symbol_3;
}
T:\tmp\ue28.0.metal:23:27: error: invalid operands to binary expression ('float' and 'float')
a = (as_type<float>(1u) % 1.0f);
~~~~~~~~~~~~~~~~~~ ^ ~~~~
1 error generated.

View File

@ -59,7 +59,7 @@
%17 = OpLabel
%a = OpVariable %_ptr_Function_float Function %20
%21 = OpBitcast %float %uint_1
%24 = OpFMod %float %21 %float_1
%24 = OpFRem %float %21 %float_1
OpStore %a %24
%29 = OpAccessChain %_ptr_Uniform_float %x_6 %uint_0 %int_1
%30 = OpLoad %float %29

View File

@ -10,7 +10,7 @@ void main_1() {
float a = 0.0f;
const uint scalar_offset = ((16u * uint(0))) / 4;
const float x_30 = asfloat(x_6[scalar_offset / 4][scalar_offset % 4]);
a = (x_30 % 1.0f);
a = (x_30 - (1.0f * floor((x_30 / 1.0f))));
const float x_32 = a;
const uint scalar_offset_1 = ((16u * uint(0))) / 4;
const float x_34 = asfloat(x_6[scalar_offset_1 / 4][scalar_offset_1 % 4]);

View File

@ -1,5 +1,3 @@
SKIP: FAILED
#include <metal_stdlib>
using namespace metal;
@ -33,7 +31,7 @@ struct tint_symbol_1 {
void main_1(constant buf0& x_6, constant buf1& x_8, thread float4* const tint_symbol_4) {
float a = 0.0f;
float const x_30 = x_6.x_GLF_uniform_float_values.arr[0].el;
a = (x_30 % 1.0f);
a = (x_30 - (1.0f * floor((x_30 / 1.0f))));
float const x_32 = a;
float const x_34 = x_6.x_GLF_uniform_float_values.arr[0].el;
if ((x_32 == x_34)) {
@ -57,8 +55,3 @@ fragment tint_symbol_1 tint_symbol(constant buf0& x_6 [[buffer(0)]], constant bu
return tint_symbol_3;
}
T:\tmp\us0.0.metal:34:13: error: invalid operands to binary expression ('const float' and 'float')
a = (x_30 % 1.0f);
~~~~ ^ ~~~~
1 error generated.

View File

@ -1,9 +1,10 @@
; SPIR-V
; Version: 1.3
; Generator: Google Tint Compiler; 0
; Bound: 66
; Bound: 70
; Schema: 0
OpCapability Shader
%34 = OpExtInstImport "GLSL.std.450"
OpMemoryModel Logical GLSL450
OpEntryPoint Fragment %main "main" %tint_symbol_1
OpExecutionMode %main OriginUpperLeft
@ -66,52 +67,55 @@
%bool = OpTypeBool
%_ptr_Uniform_int = OpTypePointer Uniform %int
%main_out = OpTypeStruct %v4float
%54 = OpTypeFunction %void %main_out
%58 = OpTypeFunction %void %main_out
%main_1 = OpFunction %void None %20
%23 = OpLabel
%a = OpVariable %_ptr_Function_float Function %26
%30 = OpAccessChain %_ptr_Uniform_float %x_6 %uint_0 %int_0
%31 = OpLoad %float %30
%33 = OpFMod %float %31 %float_1
OpStore %a %33
%34 = OpLoad %float %a
%35 = OpAccessChain %_ptr_Uniform_float %x_6 %uint_0 %int_0
%36 = OpLoad %float %35
%37 = OpFOrdEqual %bool %34 %36
OpSelectionMerge %39 None
OpBranchConditional %37 %40 %41
%40 = OpLabel
%43 = OpAccessChain %_ptr_Uniform_int %x_8 %uint_0 %int_0
%44 = OpLoad %int %43
%45 = OpLoad %float %a
%46 = OpLoad %float %a
%35 = OpFDiv %float %31 %float_1
%33 = OpExtInst %float %34 Floor %35
%36 = OpFMul %float %float_1 %33
%37 = OpFSub %float %31 %36
OpStore %a %37
%38 = OpLoad %float %a
%39 = OpAccessChain %_ptr_Uniform_float %x_6 %uint_0 %int_0
%40 = OpLoad %float %39
%41 = OpFOrdEqual %bool %38 %40
OpSelectionMerge %43 None
OpBranchConditional %41 %44 %45
%44 = OpLabel
%47 = OpAccessChain %_ptr_Uniform_int %x_8 %uint_0 %int_0
%48 = OpLoad %int %47
%49 = OpConvertSToF %float %44
%50 = OpConvertSToF %float %48
%51 = OpCompositeConstruct %v4float %49 %45 %46 %50
OpStore %x_GLF_color %51
OpBranch %39
%41 = OpLabel
%52 = OpLoad %float %a
%53 = OpCompositeConstruct %v4float %52 %52 %52 %52
OpStore %x_GLF_color %53
OpBranch %39
%39 = OpLabel
%49 = OpLoad %float %a
%50 = OpLoad %float %a
%51 = OpAccessChain %_ptr_Uniform_int %x_8 %uint_0 %int_0
%52 = OpLoad %int %51
%53 = OpConvertSToF %float %48
%54 = OpConvertSToF %float %52
%55 = OpCompositeConstruct %v4float %53 %49 %50 %54
OpStore %x_GLF_color %55
OpBranch %43
%45 = OpLabel
%56 = OpLoad %float %a
%57 = OpCompositeConstruct %v4float %56 %56 %56 %56
OpStore %x_GLF_color %57
OpBranch %43
%43 = OpLabel
OpReturn
OpFunctionEnd
%tint_symbol_2 = OpFunction %void None %54
%tint_symbol_2 = OpFunction %void None %58
%tint_symbol = OpFunctionParameter %main_out
%58 = OpLabel
%59 = OpCompositeExtract %v4float %tint_symbol 0
OpStore %tint_symbol_1 %59
%62 = OpLabel
%63 = OpCompositeExtract %v4float %tint_symbol 0
OpStore %tint_symbol_1 %63
OpReturn
OpFunctionEnd
%main = OpFunction %void None %20
%61 = OpLabel
%62 = OpFunctionCall %void %main_1
%64 = OpLoad %v4float %x_GLF_color
%65 = OpCompositeConstruct %main_out %64
%63 = OpFunctionCall %void %tint_symbol_2 %65
%65 = OpLabel
%66 = OpFunctionCall %void %main_1
%68 = OpLoad %v4float %x_GLF_color
%69 = OpCompositeConstruct %main_out %68
%67 = OpFunctionCall %void %tint_symbol_2 %69
OpReturn
OpFunctionEnd

View File

@ -21,7 +21,7 @@ var<private> x_GLF_color : vec4<f32>;
fn main_1() {
var a : f32;
let x_30 : f32 = x_6.x_GLF_uniform_float_values[0];
a = (x_30 % 1.0);
a = (x_30 - (1.0 * floor((x_30 / 1.0))));
let x_32 : f32 = a;
let x_34 : f32 = x_6.x_GLF_uniform_float_values[0];
if ((x_32 == x_34)) {

View File

@ -1,5 +1,3 @@
SKIP: FAILED
#include <metal_stdlib>
using namespace metal;
@ -33,7 +31,7 @@ struct tint_symbol_1 {
void main_1(constant buf0& x_6, constant buf1& x_8, thread float4* const tint_symbol_4) {
float a = 0.0f;
float const x_30 = x_6.x_GLF_uniform_float_values.arr[0].el;
a = (x_30 % 1.0f);
a = fmod(x_30, 1.0f);
float const x_32 = a;
float const x_34 = x_6.x_GLF_uniform_float_values.arr[0].el;
if ((x_32 == x_34)) {
@ -57,8 +55,3 @@ fragment tint_symbol_1 tint_symbol(constant buf0& x_6 [[buffer(0)]], constant bu
return tint_symbol_3;
}
T:\tmp\u8k0.0.metal:34:13: error: invalid operands to binary expression ('const float' and 'float')
a = (x_30 % 1.0f);
~~~~ ^ ~~~~
1 error generated.

View File

@ -72,7 +72,7 @@
%a = OpVariable %_ptr_Function_float Function %26
%30 = OpAccessChain %_ptr_Uniform_float %x_6 %uint_0 %int_0
%31 = OpLoad %float %30
%33 = OpFMod %float %31 %float_1
%33 = OpFRem %float %31 %float_1
OpStore %a %33
%34 = OpLoad %float %a
%35 = OpAccessChain %_ptr_Uniform_float %x_6 %uint_0 %int_0

View File

@ -1,5 +1,3 @@
SKIP: FAILED
#include <metal_stdlib>
using namespace metal;
@ -75,7 +73,7 @@ void main_1(constant buf1& x_7, constant buf2& x_9, constant buf3& x_12, constan
float const x_86 = b;
float const x_88 = x_7.x_GLF_uniform_float_values.arr[2].el;
float const x_91 = x_7.x_GLF_uniform_float_values.arr[1].el;
if ((distance(x_86, x_88) < x_91)) {
if ((fabs(x_86 - x_88) < x_91)) {
int const x_97 = x_15.x_GLF_uniform_int_values.arr[0].el;
int const x_100 = x_15.x_GLF_uniform_int_values.arr[1].el;
int const x_103 = x_15.x_GLF_uniform_int_values.arr[1].el;
@ -97,26 +95,3 @@ fragment tint_symbol_1 tint_symbol(constant buf1& x_7 [[buffer(1)]], constant bu
return tint_symbol_5;
}
T:\tmp\udoo.0.metal:76:8: error: call to 'distance' is ambiguous
if ((distance(x_86, x_88) < x_91)) {
^~~~~~~~
C:\Program Files\Metal Developer Tools\macos\lib\clang\31001.138\include\metal\metal_geometric:481:17: note: candidate function
METAL_FUNC half distance(half2 x, half2 y)
^
C:\Program Files\Metal Developer Tools\macos\lib\clang\31001.138\include\metal\metal_geometric:512:17: note: candidate function
METAL_FUNC half distance(half3 x, half3 y)
^
C:\Program Files\Metal Developer Tools\macos\lib\clang\31001.138\include\metal\metal_geometric:543:17: note: candidate function
METAL_FUNC half distance(half4 x, half4 y)
^
C:\Program Files\Metal Developer Tools\macos\lib\clang\31001.138\include\metal\metal_geometric:648:18: note: candidate function
METAL_FUNC float distance(float2 x, float2 y)
^
C:\Program Files\Metal Developer Tools\macos\lib\clang\31001.138\include\metal\metal_geometric:691:18: note: candidate function
METAL_FUNC float distance(float3 x, float3 y)
^
C:\Program Files\Metal Developer Tools\macos\lib\clang\31001.138\include\metal\metal_geometric:734:18: note: candidate function
METAL_FUNC float distance(float4 x, float4 y)
^
1 error generated.

View File

@ -1,5 +1,3 @@
SKIP: FAILED
#include <metal_stdlib>
using namespace metal;
@ -75,7 +73,7 @@ void main_1(constant buf1& x_7, constant buf2& x_9, constant buf3& x_12, constan
float const x_86 = b;
float const x_88 = x_7.x_GLF_uniform_float_values.arr[2].el;
float const x_91 = x_7.x_GLF_uniform_float_values.arr[1].el;
if ((distance(x_86, x_88) < x_91)) {
if ((fabs(x_86 - x_88) < x_91)) {
int const x_97 = x_15.x_GLF_uniform_int_values.arr[0].el;
int const x_100 = x_15.x_GLF_uniform_int_values.arr[1].el;
int const x_103 = x_15.x_GLF_uniform_int_values.arr[1].el;
@ -97,26 +95,3 @@ fragment tint_symbol_1 tint_symbol(constant buf1& x_7 [[buffer(1)]], constant bu
return tint_symbol_5;
}
T:\tmp\udr8.0.metal:76:8: error: call to 'distance' is ambiguous
if ((distance(x_86, x_88) < x_91)) {
^~~~~~~~
C:\Program Files\Metal Developer Tools\macos\lib\clang\31001.138\include\metal\metal_geometric:481:17: note: candidate function
METAL_FUNC half distance(half2 x, half2 y)
^
C:\Program Files\Metal Developer Tools\macos\lib\clang\31001.138\include\metal\metal_geometric:512:17: note: candidate function
METAL_FUNC half distance(half3 x, half3 y)
^
C:\Program Files\Metal Developer Tools\macos\lib\clang\31001.138\include\metal\metal_geometric:543:17: note: candidate function
METAL_FUNC half distance(half4 x, half4 y)
^
C:\Program Files\Metal Developer Tools\macos\lib\clang\31001.138\include\metal\metal_geometric:648:18: note: candidate function
METAL_FUNC float distance(float2 x, float2 y)
^
C:\Program Files\Metal Developer Tools\macos\lib\clang\31001.138\include\metal\metal_geometric:691:18: note: candidate function
METAL_FUNC float distance(float3 x, float3 y)
^
C:\Program Files\Metal Developer Tools\macos\lib\clang\31001.138\include\metal\metal_geometric:734:18: note: candidate function
METAL_FUNC float distance(float4 x, float4 y)
^
1 error generated.

View File

@ -54,7 +54,7 @@ void main_1() {
x_56_phi = x_68;
} else {
x_76_phi = x_55;
if (((float(x_58) % round(x_49)) <= 0.01f)) {
if (((float(x_58) - (round(x_49) * floor((float(x_58) / round(x_49))))) <= 0.01f)) {
x_75 = (x_55 + 100.0f);
x_76_phi = x_75;
}
@ -121,7 +121,7 @@ void main_1() {
x_93_phi = x_105;
} else {
x_113_phi = x_92;
if (((float(x_95) % round(x_49)) <= 0.01f)) {
if (((float(x_95) - (round(x_49) * floor((float(x_95) / round(x_49))))) <= 0.01f)) {
x_112 = (x_92 + 100.0f);
x_113_phi = x_112;
}

View File

@ -1,5 +1,3 @@
SKIP: FAILED
#include <metal_stdlib>
using namespace metal;
@ -59,7 +57,7 @@ void main_1(constant buf0& x_7, thread float4* const tint_symbol_5, thread float
x_56_phi = x_68;
} else {
x_76_phi = x_55;
if (((float(x_58) % rint(x_49)) <= 0.01f)) {
if (((float(x_58) - (rint(x_49) * floor((float(x_58) / rint(x_49))))) <= 0.01f)) {
x_75 = (x_55 + 100.0f);
x_76_phi = x_75;
}
@ -126,7 +124,7 @@ void main_1(constant buf0& x_7, thread float4* const tint_symbol_5, thread float
x_93_phi = x_105;
} else {
x_113_phi = x_92;
if (((float(x_95) % rint(x_49)) <= 0.01f)) {
if (((float(x_95) - (rint(x_49) * floor((float(x_95) / rint(x_49))))) <= 0.01f)) {
x_112 = (x_92 + 100.0f);
x_113_phi = x_112;
}
@ -198,11 +196,3 @@ fragment tint_symbol_2 tint_symbol(float4 gl_FragCoord_param [[position]], const
return tint_symbol_4;
}
T:\tmp\u2mo.0.metal:60:29: error: invalid operands to binary expression ('float' and 'float')
if (((float(x_58) % rint(x_49)) <= 0.01f)) {
~~~~~~~~~~~ ^ ~~~~~~~~~~
T:\tmp\u2mo.0.metal:127:29: error: invalid operands to binary expression ('float' and 'float')
if (((float(x_95) % rint(x_49)) <= 0.01f)) {
~~~~~~~~~~~ ^ ~~~~~~~~~~
2 errors generated.

View File

@ -1,7 +1,7 @@
; SPIR-V
; Version: 1.3
; Generator: Google Tint Compiler; 0
; Bound: 254
; Bound: 264
; Schema: 0
OpCapability Shader
%56 = OpExtInstImport "GLSL.std.450"
@ -118,7 +118,7 @@
%int_3 = OpConstant %int 3
%float_1 = OpConstant %float 1
%main_out = OpTypeStruct %v4float
%241 = OpTypeFunction %void %main_out
%251 = OpTypeFunction %void %main_out
%main_1 = OpFunction %void None %15
%18 = OpLabel
%c = OpVariable %_ptr_Function_v3float Function %22
@ -207,243 +207,253 @@
OpStore %x_76_phi %97
%98 = OpConvertSToF %float %75
%99 = OpExtInst %float %56 RoundEven %55
%100 = OpFMod %float %98 %99
%102 = OpFOrdLessThanEqual %bool %100 %float_0_00999999978
OpSelectionMerge %103 None
OpBranchConditional %102 %104 %103
%104 = OpLabel
%105 = OpLoad %float %x_55
%107 = OpFAdd %float %105 %float_100
OpStore %x_75 %107
%108 = OpLoad %float %x_75
OpStore %x_76_phi %108
OpBranch %103
%103 = OpLabel
%109 = OpLoad %float %x_76_phi
OpStore %x_76 %109
%110 = OpLoad %float %x_76
OpStore %x_56_phi %110
%101 = OpConvertSToF %float %75
%102 = OpExtInst %float %56 RoundEven %55
%103 = OpFDiv %float %101 %102
%100 = OpExtInst %float %56 Floor %103
%104 = OpFMul %float %99 %100
%105 = OpFSub %float %98 %104
%107 = OpFOrdLessThanEqual %bool %105 %float_0_00999999978
OpSelectionMerge %108 None
OpBranchConditional %107 %109 %108
%109 = OpLabel
%110 = OpLoad %float %x_55
%112 = OpFAdd %float %110 %float_100
OpStore %x_75 %112
%113 = OpLoad %float %x_75
OpStore %x_76_phi %113
OpBranch %108
%108 = OpLabel
%114 = OpLoad %float %x_76_phi
OpStore %x_76 %114
%115 = OpLoad %float %x_76
OpStore %x_56_phi %115
OpBranch %90
%90 = OpLabel
%111 = OpLoad %float %x_56_phi
OpStore %x_56 %111
%112 = OpConvertSToF %float %75
%113 = OpLoad %float %x_51
%114 = OpFOrdGreaterThanEqual %bool %112 %113
OpSelectionMerge %115 None
OpBranchConditional %114 %116 %115
%116 = OpLabel
%117 = OpLoad %float %x_56
OpStore %x_81_phi %117
%118 = OpLoad %float %x_56
OpStore %x_82_phi %118
%116 = OpLoad %float %x_56_phi
OpStore %x_56 %116
%117 = OpConvertSToF %float %75
%118 = OpLoad %float %x_51
%119 = OpFOrdGreaterThanEqual %bool %117 %118
OpSelectionMerge %120 None
OpBranchConditional %119 %121 %120
%121 = OpLabel
%122 = OpLoad %float %x_56
OpStore %x_81_phi %122
%123 = OpLoad %float %x_56
OpStore %x_82_phi %123
OpStore %x_83_phi %true
OpBranch %67
%115 = OpLabel
%120 = OpLabel
OpBranch %68
%68 = OpLabel
%120 = OpIAdd %int %75 %int_1
OpStore %x_59 %120
%121 = OpLoad %float %x_56
OpStore %x_55_phi %121
%122 = OpLoad %int %x_59
OpStore %x_58_phi %122
%125 = OpIAdd %int %75 %int_1
OpStore %x_59 %125
%126 = OpLoad %float %x_56
OpStore %x_55_phi %126
%127 = OpLoad %int %x_59
OpStore %x_58_phi %127
OpBranch %66
%67 = OpLabel
%123 = OpLoad %float %x_81_phi
OpStore %x_81 %123
%124 = OpLoad %float %x_82_phi
OpStore %x_82 %124
%125 = OpLoad %bool %x_83_phi
%126 = OpLoad %float %x_81
OpStore %x_85_phi %126
OpSelectionMerge %127 None
OpBranchConditional %125 %128 %127
%128 = OpLabel
%128 = OpLoad %float %x_81_phi
OpStore %x_81 %128
%129 = OpLoad %float %x_82_phi
OpStore %x_82 %129
%130 = OpLoad %bool %x_83_phi
%131 = OpLoad %float %x_81
OpStore %x_85_phi %131
OpSelectionMerge %132 None
OpBranchConditional %130 %133 %132
%133 = OpLabel
OpBranch %62
%127 = OpLabel
%129 = OpLoad %float %x_82
OpStore %x_85_phi %129
%132 = OpLabel
%134 = OpLoad %float %x_82
OpStore %x_85_phi %134
OpBranch %62
%62 = OpLabel
%138 = OpLoad %float %x_85_phi
%139 = OpAccessChain %_ptr_Function_float %c %uint_0
OpStore %139 %138
%141 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1
%142 = OpLoad %float %141
OpStore %x_88 %142
OpSelectionMerge %143 None
OpSwitch %uint_0 %144
%144 = OpLabel
%143 = OpLoad %float %x_85_phi
%144 = OpAccessChain %_ptr_Function_float %c %uint_0
OpStore %144 %143
%146 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1
%147 = OpLoad %float %146
OpStore %x_88 %147
OpSelectionMerge %148 None
OpSwitch %uint_0 %149
%149 = OpLabel
OpStore %x_92_phi %float_n0_5
OpStore %x_95_phi %int_1
OpBranch %145
%145 = OpLabel
OpLoopMerge %146 %147 None
OpBranch %150
%150 = OpLabel
OpLoopMerge %151 %152 None
OpBranch %153
%153 = OpLabel
%158 = OpLoad %float %x_92_phi
OpStore %x_92 %158
%159 = OpLoad %int %x_95_phi
OpStore %x_118_phi %float_0
%160 = OpLoad %float %x_92
OpStore %x_119_phi %160
OpStore %x_120_phi %false
%161 = OpSLessThan %bool %159 %int_800
OpSelectionMerge %162 None
OpBranchConditional %161 %163 %164
%163 = OpLabel
OpBranch %162
%164 = OpLabel
OpBranch %151
%162 = OpLabel
%167 = OpSMod %int %159 %int_32
%168 = OpIEqual %bool %167 %int_0
OpSelectionMerge %169 None
OpBranchConditional %168 %170 %171
%170 = OpLabel
%172 = OpLoad %float %x_92
%173 = OpFAdd %float %172 %float_0_400000006
OpStore %x_105 %173
%174 = OpLoad %float %x_105
OpStore %x_93_phi %174
OpBranch %169
%171 = OpLabel
%175 = OpLoad %float %x_92
OpStore %x_113_phi %175
%176 = OpConvertSToF %float %159
%177 = OpExtInst %float %56 RoundEven %55
%179 = OpConvertSToF %float %159
%180 = OpExtInst %float %56 RoundEven %55
%181 = OpFDiv %float %179 %180
%178 = OpExtInst %float %56 Floor %181
%182 = OpFMul %float %177 %178
%183 = OpFSub %float %176 %182
%184 = OpFOrdLessThanEqual %bool %183 %float_0_00999999978
OpSelectionMerge %185 None
OpBranchConditional %184 %186 %185
%186 = OpLabel
%187 = OpLoad %float %x_92
%188 = OpFAdd %float %187 %float_100
OpStore %x_112 %188
%189 = OpLoad %float %x_112
OpStore %x_113_phi %189
OpBranch %185
%185 = OpLabel
%190 = OpLoad %float %x_113_phi
OpStore %x_113 %190
%191 = OpLoad %float %x_113
OpStore %x_93_phi %191
OpBranch %169
%169 = OpLabel
%192 = OpLoad %float %x_93_phi
OpStore %x_93 %192
%193 = OpConvertSToF %float %159
%194 = OpLoad %float %x_88
%195 = OpFOrdGreaterThanEqual %bool %193 %194
OpSelectionMerge %196 None
OpBranchConditional %195 %197 %196
%197 = OpLabel
%198 = OpLoad %float %x_93
OpStore %x_118_phi %198
%199 = OpLoad %float %x_93
OpStore %x_119_phi %199
OpStore %x_120_phi %true
OpBranch %151
%196 = OpLabel
OpBranch %152
%152 = OpLabel
%200 = OpIAdd %int %159 %int_1
OpStore %x_96 %200
%201 = OpLoad %float %x_93
OpStore %x_92_phi %201
%202 = OpLoad %int %x_96
OpStore %x_95_phi %202
OpBranch %150
%151 = OpLabel
%203 = OpLoad %float %x_118_phi
OpStore %x_118 %203
%204 = OpLoad %float %x_119_phi
OpStore %x_119 %204
%205 = OpLoad %bool %x_120_phi
%206 = OpLoad %float %x_118
OpStore %x_122_phi %206
OpSelectionMerge %207 None
OpBranchConditional %205 %208 %207
%208 = OpLabel
OpBranch %148
%207 = OpLabel
%209 = OpLoad %float %x_119
OpStore %x_122_phi %209
OpBranch %148
%148 = OpLabel
%153 = OpLoad %float %x_92_phi
OpStore %x_92 %153
%154 = OpLoad %int %x_95_phi
OpStore %x_118_phi %float_0
%155 = OpLoad %float %x_92
OpStore %x_119_phi %155
OpStore %x_120_phi %false
%156 = OpSLessThan %bool %154 %int_800
OpSelectionMerge %157 None
OpBranchConditional %156 %158 %159
%158 = OpLabel
OpBranch %157
%159 = OpLabel
OpBranch %146
%157 = OpLabel
%162 = OpSMod %int %154 %int_32
%163 = OpIEqual %bool %162 %int_0
OpSelectionMerge %164 None
OpBranchConditional %163 %165 %166
%165 = OpLabel
%167 = OpLoad %float %x_92
%168 = OpFAdd %float %167 %float_0_400000006
OpStore %x_105 %168
%169 = OpLoad %float %x_105
OpStore %x_93_phi %169
OpBranch %164
%166 = OpLabel
%170 = OpLoad %float %x_92
OpStore %x_113_phi %170
%171 = OpConvertSToF %float %154
%172 = OpExtInst %float %56 RoundEven %55
%173 = OpFMod %float %171 %172
%174 = OpFOrdLessThanEqual %bool %173 %float_0_00999999978
OpSelectionMerge %175 None
OpBranchConditional %174 %176 %175
%176 = OpLabel
%177 = OpLoad %float %x_92
%178 = OpFAdd %float %177 %float_100
OpStore %x_112 %178
%179 = OpLoad %float %x_112
OpStore %x_113_phi %179
OpBranch %175
%175 = OpLabel
%180 = OpLoad %float %x_113_phi
OpStore %x_113 %180
%181 = OpLoad %float %x_113
OpStore %x_93_phi %181
OpBranch %164
%164 = OpLabel
%182 = OpLoad %float %x_93_phi
OpStore %x_93 %182
%183 = OpConvertSToF %float %154
%184 = OpLoad %float %x_88
%185 = OpFOrdGreaterThanEqual %bool %183 %184
OpSelectionMerge %186 None
OpBranchConditional %185 %187 %186
%187 = OpLabel
%188 = OpLoad %float %x_93
OpStore %x_118_phi %188
%189 = OpLoad %float %x_93
OpStore %x_119_phi %189
OpStore %x_120_phi %true
OpBranch %146
%186 = OpLabel
OpBranch %147
%147 = OpLabel
%190 = OpIAdd %int %154 %int_1
OpStore %x_96 %190
%191 = OpLoad %float %x_93
OpStore %x_92_phi %191
%192 = OpLoad %int %x_96
OpStore %x_95_phi %192
OpBranch %145
%146 = OpLabel
%193 = OpLoad %float %x_118_phi
OpStore %x_118 %193
%194 = OpLoad %float %x_119_phi
OpStore %x_119 %194
%195 = OpLoad %bool %x_120_phi
%196 = OpLoad %float %x_118
OpStore %x_122_phi %196
OpSelectionMerge %197 None
OpBranchConditional %195 %198 %197
%198 = OpLabel
OpBranch %143
%197 = OpLabel
%199 = OpLoad %float %x_119
OpStore %x_122_phi %199
OpBranch %143
%143 = OpLabel
%200 = OpLoad %float %x_122_phi
%201 = OpAccessChain %_ptr_Function_float %c %uint_1
OpStore %201 %200
%202 = OpAccessChain %_ptr_Function_float %c %uint_0
%203 = OpLoad %float %202
%204 = OpAccessChain %_ptr_Function_float %c %uint_1
%205 = OpLoad %float %204
%207 = OpAccessChain %_ptr_Function_float %c %uint_2
%208 = OpFAdd %float %203 %205
OpStore %207 %208
%210 = OpLoad %float %x_122_phi
%211 = OpAccessChain %_ptr_Function_float %c %uint_1
OpStore %211 %210
%212 = OpAccessChain %_ptr_Function_float %c %uint_0
%213 = OpLoad %float %212
%214 = OpAccessChain %_ptr_Function_float %c %uint_1
%215 = OpLoad %float %214
%217 = OpAccessChain %_ptr_Function_float %c %uint_2
%218 = OpFAdd %float %213 %215
OpStore %217 %218
OpStore %x_129_phi %int_0
OpBranch %209
%209 = OpLabel
OpLoopMerge %210 %211 None
OpBranch %212
%212 = OpLabel
%214 = OpLoad %int %x_129_phi
%216 = OpSLessThan %bool %214 %int_3
OpSelectionMerge %217 None
OpBranchConditional %216 %218 %219
%218 = OpLabel
OpBranch %217
OpBranch %219
%219 = OpLabel
OpBranch %210
%217 = OpLabel
%220 = OpAccessChain %_ptr_Function_float %c %214
%221 = OpLoad %float %220
%223 = OpFOrdGreaterThanEqual %bool %221 %float_1
OpSelectionMerge %224 None
OpBranchConditional %223 %225 %224
%225 = OpLabel
%226 = OpAccessChain %_ptr_Function_float %c %214
%227 = OpLoad %float %226
%228 = OpAccessChain %_ptr_Function_float %c %214
%229 = OpLoad %float %228
%230 = OpAccessChain %_ptr_Function_float %c %214
%231 = OpFMul %float %227 %229
OpStore %230 %231
OpBranch %224
%224 = OpLabel
OpBranch %211
%211 = OpLabel
%232 = OpIAdd %int %214 %int_1
OpStore %x_130 %232
%233 = OpLoad %int %x_130
OpStore %x_129_phi %233
OpBranch %209
%210 = OpLabel
%234 = OpLoad %v3float %c
%236 = OpExtInst %v3float %56 FAbs %234
%235 = OpExtInst %v3float %56 Normalize %236
%237 = OpCompositeExtract %float %235 0
%238 = OpCompositeExtract %float %235 1
%239 = OpCompositeExtract %float %235 2
%240 = OpCompositeConstruct %v4float %237 %238 %239 %float_1
OpStore %x_GLF_color %240
OpLoopMerge %220 %221 None
OpBranch %222
%222 = OpLabel
%224 = OpLoad %int %x_129_phi
%226 = OpSLessThan %bool %224 %int_3
OpSelectionMerge %227 None
OpBranchConditional %226 %228 %229
%228 = OpLabel
OpBranch %227
%229 = OpLabel
OpBranch %220
%227 = OpLabel
%230 = OpAccessChain %_ptr_Function_float %c %224
%231 = OpLoad %float %230
%233 = OpFOrdGreaterThanEqual %bool %231 %float_1
OpSelectionMerge %234 None
OpBranchConditional %233 %235 %234
%235 = OpLabel
%236 = OpAccessChain %_ptr_Function_float %c %224
%237 = OpLoad %float %236
%238 = OpAccessChain %_ptr_Function_float %c %224
%239 = OpLoad %float %238
%240 = OpAccessChain %_ptr_Function_float %c %224
%241 = OpFMul %float %237 %239
OpStore %240 %241
OpBranch %234
%234 = OpLabel
OpBranch %221
%221 = OpLabel
%242 = OpIAdd %int %224 %int_1
OpStore %x_130 %242
%243 = OpLoad %int %x_130
OpStore %x_129_phi %243
OpBranch %219
%220 = OpLabel
%244 = OpLoad %v3float %c
%246 = OpExtInst %v3float %56 FAbs %244
%245 = OpExtInst %v3float %56 Normalize %246
%247 = OpCompositeExtract %float %245 0
%248 = OpCompositeExtract %float %245 1
%249 = OpCompositeExtract %float %245 2
%250 = OpCompositeConstruct %v4float %247 %248 %249 %float_1
OpStore %x_GLF_color %250
OpReturn
OpFunctionEnd
%tint_symbol_3 = OpFunction %void None %241
%tint_symbol_3 = OpFunction %void None %251
%tint_symbol_1 = OpFunctionParameter %main_out
%245 = OpLabel
%246 = OpCompositeExtract %v4float %tint_symbol_1 0
OpStore %tint_symbol_2 %246
%255 = OpLabel
%256 = OpCompositeExtract %v4float %tint_symbol_1 0
OpStore %tint_symbol_2 %256
OpReturn
OpFunctionEnd
%main = OpFunction %void None %15
%248 = OpLabel
%249 = OpLoad %v4float %tint_symbol
OpStore %gl_FragCoord %249
%250 = OpFunctionCall %void %main_1
%252 = OpLoad %v4float %x_GLF_color
%253 = OpCompositeConstruct %main_out %252
%251 = OpFunctionCall %void %tint_symbol_3 %253
%258 = OpLabel
%259 = OpLoad %v4float %tint_symbol
OpStore %gl_FragCoord %259
%260 = OpFunctionCall %void %main_1
%262 = OpLoad %v4float %x_GLF_color
%263 = OpCompositeConstruct %main_out %262
%261 = OpFunctionCall %void %tint_symbol_3 %263
OpReturn
OpFunctionEnd

View File

@ -55,7 +55,7 @@ fn main_1() {
x_56_phi = x_68;
} else {
x_76_phi = x_55;
if (((f32(x_58) % round(x_49)) <= 0.01)) {
if (((f32(x_58) - (round(x_49) * floor((f32(x_58) / round(x_49))))) <= 0.01)) {
x_75 = (x_55 + 100.0);
x_76_phi = x_75;
}
@ -123,7 +123,7 @@ fn main_1() {
x_93_phi = x_105;
} else {
x_113_phi = x_92;
if (((f32(x_95) % round(x_49)) <= 0.01)) {
if (((f32(x_95) - (round(x_49) * floor((f32(x_95) / round(x_49))))) <= 0.01)) {
x_112 = (x_92 + 100.0);
x_113_phi = x_112;
}

View File

@ -1,5 +1,3 @@
SKIP: FAILED
#include <metal_stdlib>
using namespace metal;
@ -59,7 +57,7 @@ void main_1(constant buf0& x_7, thread float4* const tint_symbol_5, thread float
x_56_phi = x_68;
} else {
x_76_phi = x_55;
if (((float(x_58) % rint(x_49)) <= 0.01f)) {
if ((fmod(float(x_58), rint(x_49)) <= 0.01f)) {
x_75 = (x_55 + 100.0f);
x_76_phi = x_75;
}
@ -126,7 +124,7 @@ void main_1(constant buf0& x_7, thread float4* const tint_symbol_5, thread float
x_93_phi = x_105;
} else {
x_113_phi = x_92;
if (((float(x_95) % rint(x_49)) <= 0.01f)) {
if ((fmod(float(x_95), rint(x_49)) <= 0.01f)) {
x_112 = (x_92 + 100.0f);
x_113_phi = x_112;
}
@ -198,11 +196,3 @@ fragment tint_symbol_2 tint_symbol(float4 gl_FragCoord_param [[position]], const
return tint_symbol_4;
}
T:\tmp\u938.0.metal:60:29: error: invalid operands to binary expression ('float' and 'float')
if (((float(x_58) % rint(x_49)) <= 0.01f)) {
~~~~~~~~~~~ ^ ~~~~~~~~~~
T:\tmp\u938.0.metal:127:29: error: invalid operands to binary expression ('float' and 'float')
if (((float(x_95) % rint(x_49)) <= 0.01f)) {
~~~~~~~~~~~ ^ ~~~~~~~~~~
2 errors generated.

View File

@ -207,7 +207,7 @@
OpStore %x_76_phi %97
%98 = OpConvertSToF %float %75
%99 = OpExtInst %float %56 RoundEven %55
%100 = OpFMod %float %98 %99
%100 = OpFRem %float %98 %99
%102 = OpFOrdLessThanEqual %bool %100 %float_0_00999999978
OpSelectionMerge %103 None
OpBranchConditional %102 %104 %103
@ -313,7 +313,7 @@
OpStore %x_113_phi %170
%171 = OpConvertSToF %float %154
%172 = OpExtInst %float %56 RoundEven %55
%173 = OpFMod %float %171 %172
%173 = OpFRem %float %171 %172
%174 = OpFOrdLessThanEqual %bool %173 %float_0_00999999978
OpSelectionMerge %175 None
OpBranchConditional %174 %176 %175

View File

@ -56,7 +56,7 @@ void main_1() {
x_58_phi = x_70;
} else {
x_78_phi = x_57;
if (((float(x_60) % round(x_50)) <= 0.01f)) {
if (((float(x_60) - (round(x_50) * floor((float(x_60) / round(x_50))))) <= 0.01f)) {
x_77 = (x_57 + 100.0f);
x_78_phi = x_77;
}
@ -126,7 +126,7 @@ void main_1() {
x_99_phi = x_111;
} else {
x_119_phi = x_98;
if (((float(x_101) % round(x_50)) <= 0.01f)) {
if (((float(x_101) - (round(x_50) * floor((float(x_101) / round(x_50))))) <= 0.01f)) {
x_118 = (x_98 + 100.0f);
x_119_phi = x_118;
}

View File

@ -1,5 +1,3 @@
SKIP: FAILED
#include <metal_stdlib>
using namespace metal;
@ -61,7 +59,7 @@ void main_1(constant buf0& x_7, thread float4* const tint_symbol_5, thread float
x_58_phi = x_70;
} else {
x_78_phi = x_57;
if (((float(x_60) % rint(x_50)) <= 0.01f)) {
if (((float(x_60) - (rint(x_50) * floor((float(x_60) / rint(x_50))))) <= 0.01f)) {
x_77 = (x_57 + 100.0f);
x_78_phi = x_77;
}
@ -131,7 +129,7 @@ void main_1(constant buf0& x_7, thread float4* const tint_symbol_5, thread float
x_99_phi = x_111;
} else {
x_119_phi = x_98;
if (((float(x_101) % rint(x_50)) <= 0.01f)) {
if (((float(x_101) - (rint(x_50) * floor((float(x_101) / rint(x_50))))) <= 0.01f)) {
x_118 = (x_98 + 100.0f);
x_119_phi = x_118;
}
@ -203,11 +201,3 @@ fragment tint_symbol_2 tint_symbol(float4 gl_FragCoord_param [[position]], const
return tint_symbol_4;
}
T:\tmp\ufm8.0.metal:62:29: error: invalid operands to binary expression ('float' and 'float')
if (((float(x_60) % rint(x_50)) <= 0.01f)) {
~~~~~~~~~~~ ^ ~~~~~~~~~~
T:\tmp\ufm8.0.metal:132:30: error: invalid operands to binary expression ('float' and 'float')
if (((float(x_101) % rint(x_50)) <= 0.01f)) {
~~~~~~~~~~~~ ^ ~~~~~~~~~~
2 errors generated.

View File

@ -1,7 +1,7 @@
; SPIR-V
; Version: 1.3
; Generator: Google Tint Compiler; 0
; Bound: 267
; Bound: 277
; Schema: 0
OpCapability Shader
%58 = OpExtInstImport "GLSL.std.450"
@ -119,7 +119,7 @@
%uint_2 = OpConstant %uint 2
%int_3 = OpConstant %int 3
%main_out = OpTypeStruct %v4float
%254 = OpTypeFunction %void %main_out
%264 = OpTypeFunction %void %main_out
%main_1 = OpFunction %void None %15
%18 = OpLabel
%c = OpVariable %_ptr_Function_v3float Function %22
@ -209,254 +209,264 @@
OpStore %x_78_phi %100
%101 = OpConvertSToF %float %79
%102 = OpExtInst %float %58 RoundEven %57
%103 = OpFMod %float %101 %102
%105 = OpFOrdLessThanEqual %bool %103 %float_0_00999999978
OpSelectionMerge %106 None
OpBranchConditional %105 %107 %106
%107 = OpLabel
%108 = OpLoad %float %x_57
%110 = OpFAdd %float %108 %float_100
OpStore %x_77 %110
%111 = OpLoad %float %x_77
OpStore %x_78_phi %111
OpBranch %106
%106 = OpLabel
%112 = OpLoad %float %x_78_phi
OpStore %x_78 %112
%113 = OpLoad %float %x_78
OpStore %x_58_phi %113
%104 = OpConvertSToF %float %79
%105 = OpExtInst %float %58 RoundEven %57
%106 = OpFDiv %float %104 %105
%103 = OpExtInst %float %58 Floor %106
%107 = OpFMul %float %102 %103
%108 = OpFSub %float %101 %107
%110 = OpFOrdLessThanEqual %bool %108 %float_0_00999999978
OpSelectionMerge %111 None
OpBranchConditional %110 %112 %111
%112 = OpLabel
%113 = OpLoad %float %x_57
%115 = OpFAdd %float %113 %float_100
OpStore %x_77 %115
%116 = OpLoad %float %x_77
OpStore %x_78_phi %116
OpBranch %111
%111 = OpLabel
%117 = OpLoad %float %x_78_phi
OpStore %x_78 %117
%118 = OpLoad %float %x_78
OpStore %x_58_phi %118
OpBranch %93
%93 = OpLabel
%114 = OpLoad %float %x_58_phi
OpStore %x_58 %114
%115 = OpConvertSToF %float %79
%116 = OpLoad %float %x_53
%117 = OpFOrdGreaterThanEqual %bool %115 %116
OpSelectionMerge %118 None
OpBranchConditional %117 %119 %118
%119 = OpLabel
%120 = OpLoad %float %x_58
OpStore %x_83_phi %120
%121 = OpLoad %float %x_58
OpStore %x_84_phi %121
%119 = OpLoad %float %x_58_phi
OpStore %x_58 %119
%120 = OpConvertSToF %float %79
%121 = OpLoad %float %x_53
%122 = OpFOrdGreaterThanEqual %bool %120 %121
OpSelectionMerge %123 None
OpBranchConditional %122 %124 %123
%124 = OpLabel
%125 = OpLoad %float %x_58
OpStore %x_83_phi %125
%126 = OpLoad %float %x_58
OpStore %x_84_phi %126
OpStore %x_85_phi %true
OpBranch %71
%118 = OpLabel
%123 = OpLabel
OpBranch %72
%72 = OpLabel
%123 = OpIAdd %int %79 %int_1
OpStore %x_61 %123
%124 = OpLoad %float %x_58
OpStore %x_57_phi %124
%125 = OpLoad %int %x_61
OpStore %x_60_phi %125
%128 = OpIAdd %int %79 %int_1
OpStore %x_61 %128
%129 = OpLoad %float %x_58
OpStore %x_57_phi %129
%130 = OpLoad %int %x_61
OpStore %x_60_phi %130
OpBranch %70
%71 = OpLabel
%126 = OpLoad %float %x_83_phi
OpStore %x_83 %126
%127 = OpLoad %float %x_84_phi
OpStore %x_84 %127
%128 = OpLoad %bool %x_85_phi
%129 = OpLoad %float %x_83
OpStore %x_87_phi %129
OpSelectionMerge %130 None
OpBranchConditional %128 %131 %130
%131 = OpLabel
%131 = OpLoad %float %x_83_phi
OpStore %x_83 %131
%132 = OpLoad %float %x_84_phi
OpStore %x_84 %132
%133 = OpLoad %bool %x_85_phi
%134 = OpLoad %float %x_83
OpStore %x_87_phi %134
OpSelectionMerge %135 None
OpBranchConditional %133 %136 %135
%136 = OpLabel
OpBranch %67
%130 = OpLabel
%132 = OpLoad %float %x_84
OpStore %x_87_phi %132
%135 = OpLabel
%137 = OpLoad %float %x_84
OpStore %x_87_phi %137
OpBranch %67
%67 = OpLabel
%141 = OpLoad %float %x_87_phi
%142 = OpLoad %float %x_84
%143 = OpLoad %float %x_83
%144 = OpCompositeConstruct %v4float %142 %float_0_400000006 %143 %float_0_400000006
%145 = OpAccessChain %_ptr_Function_float %c %uint_0
OpStore %145 %141
%147 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1
%148 = OpLoad %float %147
OpStore %x_92 %148
OpSelectionMerge %149 None
OpSwitch %uint_0 %150
%150 = OpLabel
%151 = OpCompositeExtract %float %63 0
%152 = OpCompositeExtract %float %63 1
%153 = OpLoad %float %x_57
%154 = OpCompositeConstruct %v4float %151 %152 %float_0 %153
%155 = OpCompositeExtract %float %56 0
%156 = OpCompositeExtract %float %56 1
%157 = OpCompositeConstruct %v3float %155 %156 %float_n0_5
%158 = OpCompositeExtract %float %157 2
OpStore %x_98_phi %158
%146 = OpLoad %float %x_87_phi
%147 = OpLoad %float %x_84
%148 = OpLoad %float %x_83
%149 = OpCompositeConstruct %v4float %147 %float_0_400000006 %148 %float_0_400000006
%150 = OpAccessChain %_ptr_Function_float %c %uint_0
OpStore %150 %146
%152 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1
%153 = OpLoad %float %152
OpStore %x_92 %153
OpSelectionMerge %154 None
OpSwitch %uint_0 %155
%155 = OpLabel
%156 = OpCompositeExtract %float %63 0
%157 = OpCompositeExtract %float %63 1
%158 = OpLoad %float %x_57
%159 = OpCompositeConstruct %v4float %156 %157 %float_0 %158
%160 = OpCompositeExtract %float %56 0
%161 = OpCompositeExtract %float %56 1
%162 = OpCompositeConstruct %v3float %160 %161 %float_n0_5
%163 = OpCompositeExtract %float %162 2
OpStore %x_98_phi %163
OpStore %x_101_phi %int_1
OpBranch %159
%159 = OpLabel
OpLoopMerge %160 %161 None
OpBranch %162
%162 = OpLabel
%167 = OpLoad %float %x_98_phi
OpStore %x_98 %167
%168 = OpLoad %int %x_101_phi
OpBranch %164
%164 = OpLabel
OpLoopMerge %165 %166 None
OpBranch %167
%167 = OpLabel
%172 = OpLoad %float %x_98_phi
OpStore %x_98 %172
%173 = OpLoad %int %x_101_phi
OpStore %x_124_phi %float_0
%169 = OpLoad %float %x_98
OpStore %x_125_phi %169
%174 = OpLoad %float %x_98
OpStore %x_125_phi %174
OpStore %x_126_phi %false
%170 = OpSLessThan %bool %168 %int_800
OpSelectionMerge %171 None
OpBranchConditional %170 %172 %173
%172 = OpLabel
OpBranch %171
%173 = OpLabel
OpBranch %160
%171 = OpLabel
%176 = OpSMod %int %168 %int_32
%177 = OpIEqual %bool %176 %int_0
OpSelectionMerge %178 None
OpBranchConditional %177 %179 %180
%179 = OpLabel
%181 = OpLoad %float %x_98
%182 = OpFAdd %float %181 %float_0_400000006
OpStore %x_111 %182
%183 = OpLoad %float %x_111
OpStore %x_99_phi %183
OpBranch %178
%180 = OpLabel
%184 = OpLoad %float %x_98
OpStore %x_119_phi %184
%185 = OpConvertSToF %float %168
%186 = OpExtInst %float %58 RoundEven %57
%187 = OpFMod %float %185 %186
%188 = OpFOrdLessThanEqual %bool %187 %float_0_00999999978
OpSelectionMerge %189 None
OpBranchConditional %188 %190 %189
%190 = OpLabel
%191 = OpLoad %float %x_98
%192 = OpFAdd %float %191 %float_100
OpStore %x_118 %192
%193 = OpLoad %float %x_118
OpStore %x_119_phi %193
OpBranch %189
%189 = OpLabel
%194 = OpLoad %float %x_119_phi
OpStore %x_119 %194
%195 = OpLoad %float %x_119
OpStore %x_99_phi %195
OpBranch %178
%175 = OpSLessThan %bool %173 %int_800
OpSelectionMerge %176 None
OpBranchConditional %175 %177 %178
%177 = OpLabel
OpBranch %176
%178 = OpLabel
%196 = OpLoad %float %x_99_phi
OpStore %x_99 %196
%197 = OpConvertSToF %float %168
%198 = OpLoad %float %x_92
%199 = OpFOrdGreaterThanEqual %bool %197 %198
OpSelectionMerge %200 None
OpBranchConditional %199 %201 %200
%201 = OpLabel
%202 = OpLoad %float %x_99
OpStore %x_124_phi %202
%203 = OpLoad %float %x_99
OpStore %x_125_phi %203
OpStore %x_126_phi %true
OpBranch %160
OpBranch %165
%176 = OpLabel
%181 = OpSMod %int %173 %int_32
%182 = OpIEqual %bool %181 %int_0
OpSelectionMerge %183 None
OpBranchConditional %182 %184 %185
%184 = OpLabel
%186 = OpLoad %float %x_98
%187 = OpFAdd %float %186 %float_0_400000006
OpStore %x_111 %187
%188 = OpLoad %float %x_111
OpStore %x_99_phi %188
OpBranch %183
%185 = OpLabel
%189 = OpLoad %float %x_98
OpStore %x_119_phi %189
%190 = OpConvertSToF %float %173
%191 = OpExtInst %float %58 RoundEven %57
%193 = OpConvertSToF %float %173
%194 = OpExtInst %float %58 RoundEven %57
%195 = OpFDiv %float %193 %194
%192 = OpExtInst %float %58 Floor %195
%196 = OpFMul %float %191 %192
%197 = OpFSub %float %190 %196
%198 = OpFOrdLessThanEqual %bool %197 %float_0_00999999978
OpSelectionMerge %199 None
OpBranchConditional %198 %200 %199
%200 = OpLabel
OpBranch %161
%161 = OpLabel
%204 = OpIAdd %int %168 %int_1
OpStore %x_102 %204
%205 = OpLoad %float %x_99
OpStore %x_98_phi %205
%206 = OpLoad %int %x_102
OpStore %x_101_phi %206
OpBranch %159
%160 = OpLabel
%207 = OpLoad %float %x_124_phi
OpStore %x_124 %207
%208 = OpLoad %float %x_125_phi
OpStore %x_125 %208
%209 = OpLoad %bool %x_126_phi
%210 = OpLoad %float %x_124
OpStore %x_128_phi %210
OpSelectionMerge %211 None
OpBranchConditional %209 %212 %211
%212 = OpLabel
OpBranch %149
%201 = OpLoad %float %x_98
%202 = OpFAdd %float %201 %float_100
OpStore %x_118 %202
%203 = OpLoad %float %x_118
OpStore %x_119_phi %203
OpBranch %199
%199 = OpLabel
%204 = OpLoad %float %x_119_phi
OpStore %x_119 %204
%205 = OpLoad %float %x_119
OpStore %x_99_phi %205
OpBranch %183
%183 = OpLabel
%206 = OpLoad %float %x_99_phi
OpStore %x_99 %206
%207 = OpConvertSToF %float %173
%208 = OpLoad %float %x_92
%209 = OpFOrdGreaterThanEqual %bool %207 %208
OpSelectionMerge %210 None
OpBranchConditional %209 %211 %210
%211 = OpLabel
%213 = OpLoad %float %x_125
OpStore %x_128_phi %213
OpBranch %149
%149 = OpLabel
%214 = OpLoad %float %x_128_phi
%215 = OpAccessChain %_ptr_Function_float %c %uint_1
OpStore %215 %214
%216 = OpAccessChain %_ptr_Function_float %c %uint_0
%217 = OpLoad %float %216
%218 = OpAccessChain %_ptr_Function_float %c %uint_1
%219 = OpLoad %float %218
%221 = OpAccessChain %_ptr_Function_float %c %uint_2
%222 = OpFAdd %float %217 %219
OpStore %221 %222
%212 = OpLoad %float %x_99
OpStore %x_124_phi %212
%213 = OpLoad %float %x_99
OpStore %x_125_phi %213
OpStore %x_126_phi %true
OpBranch %165
%210 = OpLabel
OpBranch %166
%166 = OpLabel
%214 = OpIAdd %int %173 %int_1
OpStore %x_102 %214
%215 = OpLoad %float %x_99
OpStore %x_98_phi %215
%216 = OpLoad %int %x_102
OpStore %x_101_phi %216
OpBranch %164
%165 = OpLabel
%217 = OpLoad %float %x_124_phi
OpStore %x_124 %217
%218 = OpLoad %float %x_125_phi
OpStore %x_125 %218
%219 = OpLoad %bool %x_126_phi
%220 = OpLoad %float %x_124
OpStore %x_128_phi %220
OpSelectionMerge %221 None
OpBranchConditional %219 %222 %221
%222 = OpLabel
OpBranch %154
%221 = OpLabel
%223 = OpLoad %float %x_125
OpStore %x_128_phi %223
OpBranch %154
%154 = OpLabel
%224 = OpLoad %float %x_128_phi
%225 = OpAccessChain %_ptr_Function_float %c %uint_1
OpStore %225 %224
%226 = OpAccessChain %_ptr_Function_float %c %uint_0
%227 = OpLoad %float %226
%228 = OpAccessChain %_ptr_Function_float %c %uint_1
%229 = OpLoad %float %228
%231 = OpAccessChain %_ptr_Function_float %c %uint_2
%232 = OpFAdd %float %227 %229
OpStore %231 %232
OpStore %x_135_phi %int_0
OpBranch %223
%223 = OpLabel
OpLoopMerge %224 %225 None
OpBranch %226
%226 = OpLabel
%228 = OpLoad %int %x_135_phi
%230 = OpSLessThan %bool %228 %int_3
OpSelectionMerge %231 None
OpBranchConditional %230 %232 %233
%232 = OpLabel
OpBranch %231
OpBranch %233
%233 = OpLabel
OpBranch %224
%231 = OpLabel
%234 = OpAccessChain %_ptr_Function_float %c %228
%235 = OpLoad %float %234
%236 = OpFOrdGreaterThanEqual %bool %235 %float_1
OpSelectionMerge %237 None
OpBranchConditional %236 %238 %237
%238 = OpLabel
%239 = OpAccessChain %_ptr_Function_float %c %228
%240 = OpLoad %float %239
%241 = OpAccessChain %_ptr_Function_float %c %228
%242 = OpLoad %float %241
%243 = OpAccessChain %_ptr_Function_float %c %228
%244 = OpFMul %float %240 %242
OpStore %243 %244
OpBranch %237
%237 = OpLabel
OpBranch %225
%225 = OpLabel
%245 = OpIAdd %int %228 %int_1
OpStore %x_136 %245
%246 = OpLoad %int %x_136
OpStore %x_135_phi %246
OpBranch %223
%224 = OpLabel
%247 = OpLoad %v3float %c
%249 = OpExtInst %v3float %58 FAbs %247
%248 = OpExtInst %v3float %58 Normalize %249
%250 = OpCompositeExtract %float %248 0
%251 = OpCompositeExtract %float %248 1
%252 = OpCompositeExtract %float %248 2
%253 = OpCompositeConstruct %v4float %250 %251 %252 %float_1
OpStore %x_GLF_color %253
OpLoopMerge %234 %235 None
OpBranch %236
%236 = OpLabel
%238 = OpLoad %int %x_135_phi
%240 = OpSLessThan %bool %238 %int_3
OpSelectionMerge %241 None
OpBranchConditional %240 %242 %243
%242 = OpLabel
OpBranch %241
%243 = OpLabel
OpBranch %234
%241 = OpLabel
%244 = OpAccessChain %_ptr_Function_float %c %238
%245 = OpLoad %float %244
%246 = OpFOrdGreaterThanEqual %bool %245 %float_1
OpSelectionMerge %247 None
OpBranchConditional %246 %248 %247
%248 = OpLabel
%249 = OpAccessChain %_ptr_Function_float %c %238
%250 = OpLoad %float %249
%251 = OpAccessChain %_ptr_Function_float %c %238
%252 = OpLoad %float %251
%253 = OpAccessChain %_ptr_Function_float %c %238
%254 = OpFMul %float %250 %252
OpStore %253 %254
OpBranch %247
%247 = OpLabel
OpBranch %235
%235 = OpLabel
%255 = OpIAdd %int %238 %int_1
OpStore %x_136 %255
%256 = OpLoad %int %x_136
OpStore %x_135_phi %256
OpBranch %233
%234 = OpLabel
%257 = OpLoad %v3float %c
%259 = OpExtInst %v3float %58 FAbs %257
%258 = OpExtInst %v3float %58 Normalize %259
%260 = OpCompositeExtract %float %258 0
%261 = OpCompositeExtract %float %258 1
%262 = OpCompositeExtract %float %258 2
%263 = OpCompositeConstruct %v4float %260 %261 %262 %float_1
OpStore %x_GLF_color %263
OpReturn
OpFunctionEnd
%tint_symbol_3 = OpFunction %void None %254
%tint_symbol_3 = OpFunction %void None %264
%tint_symbol_1 = OpFunctionParameter %main_out
%258 = OpLabel
%259 = OpCompositeExtract %v4float %tint_symbol_1 0
OpStore %tint_symbol_2 %259
%268 = OpLabel
%269 = OpCompositeExtract %v4float %tint_symbol_1 0
OpStore %tint_symbol_2 %269
OpReturn
OpFunctionEnd
%main = OpFunction %void None %15
%261 = OpLabel
%262 = OpLoad %v4float %tint_symbol
OpStore %gl_FragCoord %262
%263 = OpFunctionCall %void %main_1
%265 = OpLoad %v4float %x_GLF_color
%266 = OpCompositeConstruct %main_out %265
%264 = OpFunctionCall %void %tint_symbol_3 %266
%271 = OpLabel
%272 = OpLoad %v4float %tint_symbol
OpStore %gl_FragCoord %272
%273 = OpFunctionCall %void %main_1
%275 = OpLoad %v4float %x_GLF_color
%276 = OpCompositeConstruct %main_out %275
%274 = OpFunctionCall %void %tint_symbol_3 %276
OpReturn
OpFunctionEnd

View File

@ -57,7 +57,7 @@ fn main_1() {
x_58_phi = x_70;
} else {
x_78_phi = x_57;
if (((f32(x_60) % round(x_50)) <= 0.01)) {
if (((f32(x_60) - (round(x_50) * floor((f32(x_60) / round(x_50))))) <= 0.01)) {
x_77 = (x_57 + 100.0);
x_78_phi = x_77;
}
@ -128,7 +128,7 @@ fn main_1() {
x_99_phi = x_111;
} else {
x_119_phi = x_98;
if (((f32(x_101) % round(x_50)) <= 0.01)) {
if (((f32(x_101) - (round(x_50) * floor((f32(x_101) / round(x_50))))) <= 0.01)) {
x_118 = (x_98 + 100.0);
x_119_phi = x_118;
}

View File

@ -1,5 +1,3 @@
SKIP: FAILED
#include <metal_stdlib>
using namespace metal;
@ -61,7 +59,7 @@ void main_1(constant buf0& x_7, thread float4* const tint_symbol_5, thread float
x_58_phi = x_70;
} else {
x_78_phi = x_57;
if (((float(x_60) % rint(x_50)) <= 0.01f)) {
if ((fmod(float(x_60), rint(x_50)) <= 0.01f)) {
x_77 = (x_57 + 100.0f);
x_78_phi = x_77;
}
@ -131,7 +129,7 @@ void main_1(constant buf0& x_7, thread float4* const tint_symbol_5, thread float
x_99_phi = x_111;
} else {
x_119_phi = x_98;
if (((float(x_101) % rint(x_50)) <= 0.01f)) {
if ((fmod(float(x_101), rint(x_50)) <= 0.01f)) {
x_118 = (x_98 + 100.0f);
x_119_phi = x_118;
}
@ -203,11 +201,3 @@ fragment tint_symbol_2 tint_symbol(float4 gl_FragCoord_param [[position]], const
return tint_symbol_4;
}
T:\tmp\u9vw.0.metal:62:29: error: invalid operands to binary expression ('float' and 'float')
if (((float(x_60) % rint(x_50)) <= 0.01f)) {
~~~~~~~~~~~ ^ ~~~~~~~~~~
T:\tmp\u9vw.0.metal:132:30: error: invalid operands to binary expression ('float' and 'float')
if (((float(x_101) % rint(x_50)) <= 0.01f)) {
~~~~~~~~~~~~ ^ ~~~~~~~~~~
2 errors generated.

View File

@ -209,7 +209,7 @@
OpStore %x_78_phi %100
%101 = OpConvertSToF %float %79
%102 = OpExtInst %float %58 RoundEven %57
%103 = OpFMod %float %101 %102
%103 = OpFRem %float %101 %102
%105 = OpFOrdLessThanEqual %bool %103 %float_0_00999999978
OpSelectionMerge %106 None
OpBranchConditional %105 %107 %106
@ -326,7 +326,7 @@
OpStore %x_119_phi %184
%185 = OpConvertSToF %float %168
%186 = OpExtInst %float %58 RoundEven %57
%187 = OpFMod %float %185 %186
%187 = OpFRem %float %185 %186
%188 = OpFOrdLessThanEqual %bool %187 %float_0_00999999978
OpSelectionMerge %189 None
OpBranchConditional %188 %190 %189

View File

@ -1,10 +1,107 @@
SKIP: FAILED
struct buf0 {
float2 resolution;
};
..\..\src\writer\hlsl\generator_impl.cc:3099 internal compiler error: unhandled struct member attribute: offset
********************************************************************
* The tint shader compiler has encountered an unexpected error. *
* *
* Please help us fix this issue by submitting a bug report at *
* crbug.com/tint with the source program that triggered the bug. *
********************************************************************
static float4 gl_FragCoord = float4(0.0f, 0.0f, 0.0f, 0.0f);
cbuffer cbuffer_x_6 : register(b0, space0) {
uint4 x_6[1];
};
static float4 x_GLF_color = float4(0.0f, 0.0f, 0.0f, 0.0f);
void main_1() {
int x_195[256] = (int[256])0;
int x_196[256] = (int[256])0;
int x_197[256] = (int[256])0;
float2 x_208 = float2(0.0f, 0.0f);
int2 x_214 = int2(0, 0);
float4 x_249 = float4(0.0f, 0.0f, 0.0f, 0.0f);
float4 x_251 = float4(0.0f, 0.0f, 0.0f, 0.0f);
int2 x_218_phi = int2(0, 0);
float4 x_251_phi = float4(0.0f, 0.0f, 0.0f, 0.0f);
bool x_252_phi = false;
float4 x_254_phi = float4(0.0f, 0.0f, 0.0f, 0.0f);
const float4 x_198 = gl_FragCoord;
const float2 x_201 = asfloat(x_6[0].xy);
const float2 x_202 = (float2(x_198.x, x_198.y) / x_201);
const int x_204 = -(82);
x_208 = float2(0.0f, float4(x_201, 15.0f, 15.0f).z);
const int x_209 = (120 - 0);
x_214 = int2(int((x_202.x * 256.0f)), int((x_202.y * 256.0f)));
switch(0u) {
default: {
x_218_phi = x_214;
while (true) {
bool x_235 = false;
bool x_236_phi = false;
const int2 x_218 = x_218_phi;
const int x_221 = x_218.y;
x_251_phi = float4(0.0f, 0.0f, 0.0f, 0.0f);
x_252_phi = false;
if ((x_221 != 256)) {
} else {
break;
}
const int x_225 = x_218.x;
const int tint_symbol_5[256] = {115, 133, 150, 164, 176, 184, 190, 192, 191, 187, 181, 172, 163, 153, 143, 134, 126, 120, 116, 114, 114, 117, 121, 127, 134, 141, 148, 154, 159, 162, 163, 161, 157, 151, 143, 134, 124, 113, 103, 94, 87, 82, 79, 80, 84, 91, 101, 114, 130, 146, 164, 182, 199, 215, 229, 240, 249, 254, 256, 254, 250, 243, 233, 223, 212, 200, 190, 180, 172, 166, 163, 161, 162, 164, 169, 174, 179, 185, 190, 193, 195, 195, 192, 188, 180, 171, 161, 149, 137, 125, 114, 105, 97, 93, 91, 93, 98, 106, 117, 130, 145, 161, 177, 193, 208, 221, 231, 239, 243, 244, 242, 236, 228, 218, 207, 194, 181, 169, 158, 148, 141, 135, 132, 131, 132, 135, 138, 143, 147, 151, 154, 155, 155, 152, 146, 139, 129, 118, 106, 93, 80, 68, 58, 49, 43, 40, 41, 44, 51, 61, 73, 87, 103, 119, 134, 149, 162, 173, 181, 186, 188, 186, 181, 174, 164, 153, 141, 128, 116, 104, 94, 86, 81, 77, 76, 77, 80, 84, 89, 94, 98, 102, 104, 104, 102, 98, 92, 83, 73, 62, 50, 38, 26, 16, 8, 2, 0, 0, 4, 11, 21, 33, 48, 64, 81, 98, 114, 129, 141, 151, 158, 161, 161, 158, 152, 144, 134, 123, 112, 100, 90, 81, 73, 68, 65, 65, 67, 70, 75, 81, 87, 92, 97, 101, 103, 102, 100, 95, 88, 79, 69, 58, 47, 36, 26, 18, 13, 11, 11, 15, 22, 32, 45, 60, 77, 94};
x_195 = tint_symbol_5;
const int x_227 = x_195[x_221];
const bool x_229 = (x_225 < (x_227 + 15));
x_236_phi = x_229;
if (x_229) {
const int tint_symbol_6[256] = {115, 133, 150, 164, 176, 184, 190, 192, 191, 187, 181, 172, 163, 153, 143, 134, 126, 120, 116, 114, 114, 117, 121, 127, 134, 141, 148, 154, 159, 162, 163, 161, 157, 151, 143, 134, 124, 113, 103, 94, 87, 82, 79, 80, 84, 91, 101, 114, 130, 146, 164, 182, 199, 215, 229, 240, 249, 254, 256, 254, 250, 243, 233, 223, 212, 200, 190, 180, 172, 166, 163, 161, 162, 164, 169, 174, 179, 185, 190, 193, 195, 195, 192, 188, 180, 171, 161, 149, 137, 125, 114, 105, 97, 93, 91, 93, 98, 106, 117, 130, 145, 161, 177, 193, 208, 221, 231, 239, 243, 244, 242, 236, 228, 218, 207, 194, 181, 169, 158, 148, 141, 135, 132, 131, 132, 135, 138, 143, 147, 151, 154, 155, 155, 152, 146, 139, 129, 118, 106, 93, 80, 68, 58, 49, 43, 40, 41, 44, 51, 61, 73, 87, 103, 119, 134, 149, 162, 173, 181, 186, 188, 186, 181, 174, 164, 153, 141, 128, 116, 104, 94, 86, 81, 77, 76, 77, 80, 84, 89, 94, 98, 102, 104, 104, 102, 98, 92, 83, 73, 62, 50, 38, 26, 16, 8, 2, 0, 0, 4, 11, 21, 33, 48, 64, 81, 98, 114, 129, 141, 151, 158, 161, 161, 158, 152, 144, 134, 123, 112, 100, 90, 81, 73, 68, 65, 65, 67, 70, 75, 81, 87, 92, 97, 101, 103, 102, 100, 95, 88, 79, 69, 58, 47, 36, 26, 18, 13, 11, 11, 15, 22, 32, 45, 60, 77, 94};
x_196 = tint_symbol_6;
const int x_233 = x_196[x_221];
x_235 = (x_225 > (x_233 - 15));
x_236_phi = x_235;
}
if (x_236_phi) {
const int tint_symbol_7[256] = {115, 133, 150, 164, 176, 184, 190, 192, 191, 187, 181, 172, 163, 153, 143, 134, 126, 120, 116, 114, 114, 117, 121, 127, 134, 141, 148, 154, 159, 162, 163, 161, 157, 151, 143, 134, 124, 113, 103, 94, 87, 82, 79, 80, 84, 91, 101, 114, 130, 146, 164, 182, 199, 215, 229, 240, 249, 254, 256, 254, 250, 243, 233, 223, 212, 200, 190, 180, 172, 166, 163, 161, 162, 164, 169, 174, 179, 185, 190, 193, 195, 195, 192, 188, 180, 171, 161, 149, 137, 125, 114, 105, 97, 93, 91, 93, 98, 106, 117, 130, 145, 161, 177, 193, 208, 221, 231, 239, 243, 244, 242, 236, 228, 218, 207, 194, 181, 169, 158, 148, 141, 135, 132, 131, 132, 135, 138, 143, 147, 151, 154, 155, 155, 152, 146, 139, 129, 118, 106, 93, 80, 68, 58, 49, 43, 40, 41, 44, 51, 61, 73, 87, 103, 119, 134, 149, 162, 173, 181, 186, 188, 186, 181, 174, 164, 153, 141, 128, 116, 104, 94, 86, 81, 77, 76, 77, 80, 84, 89, 94, 98, 102, 104, 104, 102, 98, 92, 83, 73, 62, 50, 38, 26, 16, 8, 2, 0, 0, 4, 11, 21, 33, 48, 64, 81, 98, 114, 129, 141, 151, 158, 161, 161, 158, 152, 144, 134, 123, 112, 100, 90, 81, 73, 68, 65, 65, 67, 70, 75, 81, 87, 92, 97, 101, 103, 102, 100, 95, 88, 79, 69, 58, 47, 36, 26, 18, 13, 11, 11, 15, 22, 32, 45, 60, 77, 94};
x_197 = tint_symbol_7;
const int x_240 = x_197[x_221];
const int x_244 = (91 + 244);
const buf0 tint_symbol_8 = {x_208};
const float x_248 = ((tint_symbol_8.resolution.y - abs(float((x_225 - x_240)))) * 0.06666667f);
x_249 = float4(x_248, x_248, x_248, 1.0f);
x_251_phi = x_249;
x_252_phi = true;
break;
}
int2 x_219_1 = x_218;
x_219_1.y = (x_221 + 1);
const int2 x_219 = x_219_1;
{
x_218_phi = x_219;
}
}
x_251 = x_251_phi;
const bool x_252 = x_252_phi;
x_254_phi = x_251;
if (x_252) {
break;
}
x_254_phi = float4(0.0f, 0.0f, 0.0f, 1.0f);
break;
}
}
x_GLF_color = x_254_phi;
return;
}
struct main_out {
float4 x_GLF_color_1;
};
struct tint_symbol_1 {
float4 gl_FragCoord_param : SV_Position;
};
struct tint_symbol_2 {
float4 x_GLF_color_1 : SV_Target0;
};
tint_symbol_2 main(tint_symbol_1 tint_symbol) {
const float4 gl_FragCoord_param = tint_symbol.gl_FragCoord_param;
gl_FragCoord = gl_FragCoord_param;
main_1();
const main_out tint_symbol_3 = {x_GLF_color};
const tint_symbol_2 tint_symbol_9 = {tint_symbol_3.x_GLF_color_1};
return tint_symbol_9;
}

View File

@ -54,7 +54,7 @@ void main_1() {
x_56_phi = x_68;
} else {
x_76_phi = x_55;
if (((float(x_58) % round(x_49)) <= 0.01f)) {
if (((float(x_58) - (round(x_49) * floor((float(x_58) / round(x_49))))) <= 0.01f)) {
x_75 = (x_55 + 100.0f);
x_76_phi = x_75;
}
@ -121,7 +121,7 @@ void main_1() {
x_93_phi = x_113;
} else {
x_112_phi = x_92;
if (((float(x_95) % round(x_49)) <= 0.01f)) {
if (((float(x_95) - (round(x_49) * floor((float(x_95) / round(x_49))))) <= 0.01f)) {
x_111 = (x_92 + 100.0f);
x_112_phi = x_111;
}

View File

@ -1,5 +1,3 @@
SKIP: FAILED
#include <metal_stdlib>
using namespace metal;
@ -59,7 +57,7 @@ void main_1(constant buf0& x_7, thread float4* const tint_symbol_5, thread float
x_56_phi = x_68;
} else {
x_76_phi = x_55;
if (((float(x_58) % rint(x_49)) <= 0.01f)) {
if (((float(x_58) - (rint(x_49) * floor((float(x_58) / rint(x_49))))) <= 0.01f)) {
x_75 = (x_55 + 100.0f);
x_76_phi = x_75;
}
@ -126,7 +124,7 @@ void main_1(constant buf0& x_7, thread float4* const tint_symbol_5, thread float
x_93_phi = x_113;
} else {
x_112_phi = x_92;
if (((float(x_95) % rint(x_49)) <= 0.01f)) {
if (((float(x_95) - (rint(x_49) * floor((float(x_95) / rint(x_49))))) <= 0.01f)) {
x_111 = (x_92 + 100.0f);
x_112_phi = x_111;
}
@ -198,11 +196,3 @@ fragment tint_symbol_2 tint_symbol(float4 gl_FragCoord_param [[position]], const
return tint_symbol_4;
}
T:\tmp\u3lk.0.metal:60:29: error: invalid operands to binary expression ('float' and 'float')
if (((float(x_58) % rint(x_49)) <= 0.01f)) {
~~~~~~~~~~~ ^ ~~~~~~~~~~
T:\tmp\u3lk.0.metal:127:29: error: invalid operands to binary expression ('float' and 'float')
if (((float(x_95) % rint(x_49)) <= 0.01f)) {
~~~~~~~~~~~ ^ ~~~~~~~~~~
2 errors generated.

View File

@ -1,7 +1,7 @@
; SPIR-V
; Version: 1.3
; Generator: Google Tint Compiler; 0
; Bound: 254
; Bound: 264
; Schema: 0
OpCapability Shader
%56 = OpExtInstImport "GLSL.std.450"
@ -118,7 +118,7 @@
%int_3 = OpConstant %int 3
%float_1 = OpConstant %float 1
%main_out = OpTypeStruct %v4float
%241 = OpTypeFunction %void %main_out
%251 = OpTypeFunction %void %main_out
%main_1 = OpFunction %void None %15
%18 = OpLabel
%c = OpVariable %_ptr_Function_v3float Function %22
@ -207,243 +207,253 @@
OpStore %x_76_phi %97
%98 = OpConvertSToF %float %75
%99 = OpExtInst %float %56 RoundEven %55
%100 = OpFMod %float %98 %99
%102 = OpFOrdLessThanEqual %bool %100 %float_0_00999999978
OpSelectionMerge %103 None
OpBranchConditional %102 %104 %103
%104 = OpLabel
%105 = OpLoad %float %x_55
%107 = OpFAdd %float %105 %float_100
OpStore %x_75 %107
%108 = OpLoad %float %x_75
OpStore %x_76_phi %108
OpBranch %103
%103 = OpLabel
%109 = OpLoad %float %x_76_phi
OpStore %x_76 %109
%110 = OpLoad %float %x_76
OpStore %x_56_phi %110
%101 = OpConvertSToF %float %75
%102 = OpExtInst %float %56 RoundEven %55
%103 = OpFDiv %float %101 %102
%100 = OpExtInst %float %56 Floor %103
%104 = OpFMul %float %99 %100
%105 = OpFSub %float %98 %104
%107 = OpFOrdLessThanEqual %bool %105 %float_0_00999999978
OpSelectionMerge %108 None
OpBranchConditional %107 %109 %108
%109 = OpLabel
%110 = OpLoad %float %x_55
%112 = OpFAdd %float %110 %float_100
OpStore %x_75 %112
%113 = OpLoad %float %x_75
OpStore %x_76_phi %113
OpBranch %108
%108 = OpLabel
%114 = OpLoad %float %x_76_phi
OpStore %x_76 %114
%115 = OpLoad %float %x_76
OpStore %x_56_phi %115
OpBranch %90
%90 = OpLabel
%111 = OpLoad %float %x_56_phi
OpStore %x_56 %111
%112 = OpConvertSToF %float %75
%113 = OpLoad %float %x_51
%114 = OpFOrdGreaterThanEqual %bool %112 %113
OpSelectionMerge %115 None
OpBranchConditional %114 %116 %115
%116 = OpLabel
%117 = OpLoad %float %x_56
OpStore %x_81_phi %117
%118 = OpLoad %float %x_56
OpStore %x_82_phi %118
%116 = OpLoad %float %x_56_phi
OpStore %x_56 %116
%117 = OpConvertSToF %float %75
%118 = OpLoad %float %x_51
%119 = OpFOrdGreaterThanEqual %bool %117 %118
OpSelectionMerge %120 None
OpBranchConditional %119 %121 %120
%121 = OpLabel
%122 = OpLoad %float %x_56
OpStore %x_81_phi %122
%123 = OpLoad %float %x_56
OpStore %x_82_phi %123
OpStore %x_83_phi %true
OpBranch %67
%115 = OpLabel
%120 = OpLabel
OpBranch %68
%68 = OpLabel
%120 = OpIAdd %int %75 %int_1
OpStore %x_59 %120
%121 = OpLoad %float %x_56
OpStore %x_55_phi %121
%122 = OpLoad %int %x_59
OpStore %x_58_phi %122
%125 = OpIAdd %int %75 %int_1
OpStore %x_59 %125
%126 = OpLoad %float %x_56
OpStore %x_55_phi %126
%127 = OpLoad %int %x_59
OpStore %x_58_phi %127
OpBranch %66
%67 = OpLabel
%123 = OpLoad %float %x_81_phi
OpStore %x_81 %123
%124 = OpLoad %float %x_82_phi
OpStore %x_82 %124
%125 = OpLoad %bool %x_83_phi
%126 = OpLoad %float %x_81
OpStore %x_85_phi %126
OpSelectionMerge %127 None
OpBranchConditional %125 %128 %127
%128 = OpLabel
%128 = OpLoad %float %x_81_phi
OpStore %x_81 %128
%129 = OpLoad %float %x_82_phi
OpStore %x_82 %129
%130 = OpLoad %bool %x_83_phi
%131 = OpLoad %float %x_81
OpStore %x_85_phi %131
OpSelectionMerge %132 None
OpBranchConditional %130 %133 %132
%133 = OpLabel
OpBranch %62
%127 = OpLabel
%129 = OpLoad %float %x_82
OpStore %x_85_phi %129
%132 = OpLabel
%134 = OpLoad %float %x_82
OpStore %x_85_phi %134
OpBranch %62
%62 = OpLabel
%138 = OpLoad %float %x_85_phi
%139 = OpAccessChain %_ptr_Function_float %c %uint_0
OpStore %139 %138
%141 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1
%142 = OpLoad %float %141
OpStore %x_88 %142
OpSelectionMerge %143 None
OpSwitch %uint_0 %144
%144 = OpLabel
%143 = OpLoad %float %x_85_phi
%144 = OpAccessChain %_ptr_Function_float %c %uint_0
OpStore %144 %143
%146 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1
%147 = OpLoad %float %146
OpStore %x_88 %147
OpSelectionMerge %148 None
OpSwitch %uint_0 %149
%149 = OpLabel
OpStore %x_92_phi %float_n0_5
OpStore %x_95_phi %int_1
OpBranch %145
%145 = OpLabel
OpLoopMerge %146 %147 None
OpBranch %150
%150 = OpLabel
OpLoopMerge %151 %152 None
OpBranch %153
%153 = OpLabel
%158 = OpLoad %float %x_92_phi
OpStore %x_92 %158
%159 = OpLoad %int %x_95_phi
OpStore %x_118_phi %float_0
%160 = OpLoad %float %x_92
OpStore %x_119_phi %160
OpStore %x_120_phi %false
%161 = OpSLessThan %bool %159 %int_800
OpSelectionMerge %162 None
OpBranchConditional %161 %163 %164
%163 = OpLabel
OpBranch %162
%164 = OpLabel
OpBranch %151
%162 = OpLabel
%167 = OpSMod %int %159 %int_32
%168 = OpIEqual %bool %167 %int_0
OpSelectionMerge %169 None
OpBranchConditional %168 %170 %171
%170 = OpLabel
%172 = OpLoad %float %x_92
%173 = OpFAdd %float %172 %float_0_400000006
OpStore %x_113 %173
%174 = OpLoad %float %x_113
OpStore %x_93_phi %174
OpBranch %169
%171 = OpLabel
%175 = OpLoad %float %x_92
OpStore %x_112_phi %175
%176 = OpConvertSToF %float %159
%177 = OpExtInst %float %56 RoundEven %55
%179 = OpConvertSToF %float %159
%180 = OpExtInst %float %56 RoundEven %55
%181 = OpFDiv %float %179 %180
%178 = OpExtInst %float %56 Floor %181
%182 = OpFMul %float %177 %178
%183 = OpFSub %float %176 %182
%184 = OpFOrdLessThanEqual %bool %183 %float_0_00999999978
OpSelectionMerge %185 None
OpBranchConditional %184 %186 %185
%186 = OpLabel
%187 = OpLoad %float %x_92
%188 = OpFAdd %float %187 %float_100
OpStore %x_111 %188
%189 = OpLoad %float %x_111
OpStore %x_112_phi %189
OpBranch %185
%185 = OpLabel
%190 = OpLoad %float %x_112_phi
OpStore %x_112 %190
%191 = OpLoad %float %x_112
OpStore %x_93_phi %191
OpBranch %169
%169 = OpLabel
%192 = OpLoad %float %x_93_phi
OpStore %x_93 %192
%193 = OpConvertSToF %float %159
%194 = OpLoad %float %x_88
%195 = OpFOrdGreaterThanEqual %bool %193 %194
OpSelectionMerge %196 None
OpBranchConditional %195 %197 %196
%197 = OpLabel
%198 = OpLoad %float %x_93
OpStore %x_118_phi %198
%199 = OpLoad %float %x_93
OpStore %x_119_phi %199
OpStore %x_120_phi %true
OpBranch %151
%196 = OpLabel
OpBranch %152
%152 = OpLabel
%200 = OpIAdd %int %159 %int_1
OpStore %x_96 %200
%201 = OpLoad %float %x_93
OpStore %x_92_phi %201
%202 = OpLoad %int %x_96
OpStore %x_95_phi %202
OpBranch %150
%151 = OpLabel
%203 = OpLoad %float %x_118_phi
OpStore %x_118 %203
%204 = OpLoad %float %x_119_phi
OpStore %x_119 %204
%205 = OpLoad %bool %x_120_phi
%206 = OpLoad %float %x_118
OpStore %x_122_phi %206
OpSelectionMerge %207 None
OpBranchConditional %205 %208 %207
%208 = OpLabel
OpBranch %148
%207 = OpLabel
%209 = OpLoad %float %x_119
OpStore %x_122_phi %209
OpBranch %148
%148 = OpLabel
%153 = OpLoad %float %x_92_phi
OpStore %x_92 %153
%154 = OpLoad %int %x_95_phi
OpStore %x_118_phi %float_0
%155 = OpLoad %float %x_92
OpStore %x_119_phi %155
OpStore %x_120_phi %false
%156 = OpSLessThan %bool %154 %int_800
OpSelectionMerge %157 None
OpBranchConditional %156 %158 %159
%158 = OpLabel
OpBranch %157
%159 = OpLabel
OpBranch %146
%157 = OpLabel
%162 = OpSMod %int %154 %int_32
%163 = OpIEqual %bool %162 %int_0
OpSelectionMerge %164 None
OpBranchConditional %163 %165 %166
%165 = OpLabel
%167 = OpLoad %float %x_92
%168 = OpFAdd %float %167 %float_0_400000006
OpStore %x_113 %168
%169 = OpLoad %float %x_113
OpStore %x_93_phi %169
OpBranch %164
%166 = OpLabel
%170 = OpLoad %float %x_92
OpStore %x_112_phi %170
%171 = OpConvertSToF %float %154
%172 = OpExtInst %float %56 RoundEven %55
%173 = OpFMod %float %171 %172
%174 = OpFOrdLessThanEqual %bool %173 %float_0_00999999978
OpSelectionMerge %175 None
OpBranchConditional %174 %176 %175
%176 = OpLabel
%177 = OpLoad %float %x_92
%178 = OpFAdd %float %177 %float_100
OpStore %x_111 %178
%179 = OpLoad %float %x_111
OpStore %x_112_phi %179
OpBranch %175
%175 = OpLabel
%180 = OpLoad %float %x_112_phi
OpStore %x_112 %180
%181 = OpLoad %float %x_112
OpStore %x_93_phi %181
OpBranch %164
%164 = OpLabel
%182 = OpLoad %float %x_93_phi
OpStore %x_93 %182
%183 = OpConvertSToF %float %154
%184 = OpLoad %float %x_88
%185 = OpFOrdGreaterThanEqual %bool %183 %184
OpSelectionMerge %186 None
OpBranchConditional %185 %187 %186
%187 = OpLabel
%188 = OpLoad %float %x_93
OpStore %x_118_phi %188
%189 = OpLoad %float %x_93
OpStore %x_119_phi %189
OpStore %x_120_phi %true
OpBranch %146
%186 = OpLabel
OpBranch %147
%147 = OpLabel
%190 = OpIAdd %int %154 %int_1
OpStore %x_96 %190
%191 = OpLoad %float %x_93
OpStore %x_92_phi %191
%192 = OpLoad %int %x_96
OpStore %x_95_phi %192
OpBranch %145
%146 = OpLabel
%193 = OpLoad %float %x_118_phi
OpStore %x_118 %193
%194 = OpLoad %float %x_119_phi
OpStore %x_119 %194
%195 = OpLoad %bool %x_120_phi
%196 = OpLoad %float %x_118
OpStore %x_122_phi %196
OpSelectionMerge %197 None
OpBranchConditional %195 %198 %197
%198 = OpLabel
OpBranch %143
%197 = OpLabel
%199 = OpLoad %float %x_119
OpStore %x_122_phi %199
OpBranch %143
%143 = OpLabel
%200 = OpLoad %float %x_122_phi
%201 = OpAccessChain %_ptr_Function_float %c %uint_1
OpStore %201 %200
%202 = OpAccessChain %_ptr_Function_float %c %uint_0
%203 = OpLoad %float %202
%204 = OpAccessChain %_ptr_Function_float %c %uint_1
%205 = OpLoad %float %204
%207 = OpAccessChain %_ptr_Function_float %c %uint_2
%208 = OpFAdd %float %203 %205
OpStore %207 %208
%210 = OpLoad %float %x_122_phi
%211 = OpAccessChain %_ptr_Function_float %c %uint_1
OpStore %211 %210
%212 = OpAccessChain %_ptr_Function_float %c %uint_0
%213 = OpLoad %float %212
%214 = OpAccessChain %_ptr_Function_float %c %uint_1
%215 = OpLoad %float %214
%217 = OpAccessChain %_ptr_Function_float %c %uint_2
%218 = OpFAdd %float %213 %215
OpStore %217 %218
OpStore %x_129_phi %int_0
OpBranch %209
%209 = OpLabel
OpLoopMerge %210 %211 None
OpBranch %212
%212 = OpLabel
%214 = OpLoad %int %x_129_phi
%216 = OpSLessThan %bool %214 %int_3
OpSelectionMerge %217 None
OpBranchConditional %216 %218 %219
%218 = OpLabel
OpBranch %217
OpBranch %219
%219 = OpLabel
OpBranch %210
%217 = OpLabel
%220 = OpAccessChain %_ptr_Function_float %c %214
%221 = OpLoad %float %220
%223 = OpFOrdGreaterThanEqual %bool %221 %float_1
OpSelectionMerge %224 None
OpBranchConditional %223 %225 %224
%225 = OpLabel
%226 = OpAccessChain %_ptr_Function_float %c %214
%227 = OpLoad %float %226
%228 = OpAccessChain %_ptr_Function_float %c %214
%229 = OpLoad %float %228
%230 = OpAccessChain %_ptr_Function_float %c %214
%231 = OpFMul %float %227 %229
OpStore %230 %231
OpBranch %224
%224 = OpLabel
OpBranch %211
%211 = OpLabel
%232 = OpIAdd %int %214 %int_1
OpStore %x_130 %232
%233 = OpLoad %int %x_130
OpStore %x_129_phi %233
OpBranch %209
%210 = OpLabel
%234 = OpLoad %v3float %c
%236 = OpExtInst %v3float %56 FAbs %234
%235 = OpExtInst %v3float %56 Normalize %236
%237 = OpCompositeExtract %float %235 0
%238 = OpCompositeExtract %float %235 1
%239 = OpCompositeExtract %float %235 2
%240 = OpCompositeConstruct %v4float %237 %238 %239 %float_1
OpStore %x_GLF_color %240
OpLoopMerge %220 %221 None
OpBranch %222
%222 = OpLabel
%224 = OpLoad %int %x_129_phi
%226 = OpSLessThan %bool %224 %int_3
OpSelectionMerge %227 None
OpBranchConditional %226 %228 %229
%228 = OpLabel
OpBranch %227
%229 = OpLabel
OpBranch %220
%227 = OpLabel
%230 = OpAccessChain %_ptr_Function_float %c %224
%231 = OpLoad %float %230
%233 = OpFOrdGreaterThanEqual %bool %231 %float_1
OpSelectionMerge %234 None
OpBranchConditional %233 %235 %234
%235 = OpLabel
%236 = OpAccessChain %_ptr_Function_float %c %224
%237 = OpLoad %float %236
%238 = OpAccessChain %_ptr_Function_float %c %224
%239 = OpLoad %float %238
%240 = OpAccessChain %_ptr_Function_float %c %224
%241 = OpFMul %float %237 %239
OpStore %240 %241
OpBranch %234
%234 = OpLabel
OpBranch %221
%221 = OpLabel
%242 = OpIAdd %int %224 %int_1
OpStore %x_130 %242
%243 = OpLoad %int %x_130
OpStore %x_129_phi %243
OpBranch %219
%220 = OpLabel
%244 = OpLoad %v3float %c
%246 = OpExtInst %v3float %56 FAbs %244
%245 = OpExtInst %v3float %56 Normalize %246
%247 = OpCompositeExtract %float %245 0
%248 = OpCompositeExtract %float %245 1
%249 = OpCompositeExtract %float %245 2
%250 = OpCompositeConstruct %v4float %247 %248 %249 %float_1
OpStore %x_GLF_color %250
OpReturn
OpFunctionEnd
%tint_symbol_3 = OpFunction %void None %241
%tint_symbol_3 = OpFunction %void None %251
%tint_symbol_1 = OpFunctionParameter %main_out
%245 = OpLabel
%246 = OpCompositeExtract %v4float %tint_symbol_1 0
OpStore %tint_symbol_2 %246
%255 = OpLabel
%256 = OpCompositeExtract %v4float %tint_symbol_1 0
OpStore %tint_symbol_2 %256
OpReturn
OpFunctionEnd
%main = OpFunction %void None %15
%248 = OpLabel
%249 = OpLoad %v4float %tint_symbol
OpStore %gl_FragCoord %249
%250 = OpFunctionCall %void %main_1
%252 = OpLoad %v4float %x_GLF_color
%253 = OpCompositeConstruct %main_out %252
%251 = OpFunctionCall %void %tint_symbol_3 %253
%258 = OpLabel
%259 = OpLoad %v4float %tint_symbol
OpStore %gl_FragCoord %259
%260 = OpFunctionCall %void %main_1
%262 = OpLoad %v4float %x_GLF_color
%263 = OpCompositeConstruct %main_out %262
%261 = OpFunctionCall %void %tint_symbol_3 %263
OpReturn
OpFunctionEnd

View File

@ -55,7 +55,7 @@ fn main_1() {
x_56_phi = x_68;
} else {
x_76_phi = x_55;
if (((f32(x_58) % round(x_49)) <= 0.01)) {
if (((f32(x_58) - (round(x_49) * floor((f32(x_58) / round(x_49))))) <= 0.01)) {
x_75 = (x_55 + 100.0);
x_76_phi = x_75;
}
@ -123,7 +123,7 @@ fn main_1() {
x_93_phi = x_113;
} else {
x_112_phi = x_92;
if (((f32(x_95) % round(x_49)) <= 0.01)) {
if (((f32(x_95) - (round(x_49) * floor((f32(x_95) / round(x_49))))) <= 0.01)) {
x_111 = (x_92 + 100.0);
x_112_phi = x_111;
}

View File

@ -1,5 +1,3 @@
SKIP: FAILED
#include <metal_stdlib>
using namespace metal;
@ -59,7 +57,7 @@ void main_1(constant buf0& x_7, thread float4* const tint_symbol_5, thread float
x_56_phi = x_68;
} else {
x_76_phi = x_55;
if (((float(x_58) % rint(x_49)) <= 0.01f)) {
if ((fmod(float(x_58), rint(x_49)) <= 0.01f)) {
x_75 = (x_55 + 100.0f);
x_76_phi = x_75;
}
@ -126,7 +124,7 @@ void main_1(constant buf0& x_7, thread float4* const tint_symbol_5, thread float
x_93_phi = x_113;
} else {
x_112_phi = x_92;
if (((float(x_95) % rint(x_49)) <= 0.01f)) {
if ((fmod(float(x_95), rint(x_49)) <= 0.01f)) {
x_111 = (x_92 + 100.0f);
x_112_phi = x_111;
}
@ -198,11 +196,3 @@ fragment tint_symbol_2 tint_symbol(float4 gl_FragCoord_param [[position]], const
return tint_symbol_4;
}
T:\tmp\udmw.0.metal:60:29: error: invalid operands to binary expression ('float' and 'float')
if (((float(x_58) % rint(x_49)) <= 0.01f)) {
~~~~~~~~~~~ ^ ~~~~~~~~~~
T:\tmp\udmw.0.metal:127:29: error: invalid operands to binary expression ('float' and 'float')
if (((float(x_95) % rint(x_49)) <= 0.01f)) {
~~~~~~~~~~~ ^ ~~~~~~~~~~
2 errors generated.

View File

@ -207,7 +207,7 @@
OpStore %x_76_phi %97
%98 = OpConvertSToF %float %75
%99 = OpExtInst %float %56 RoundEven %55
%100 = OpFMod %float %98 %99
%100 = OpFRem %float %98 %99
%102 = OpFOrdLessThanEqual %bool %100 %float_0_00999999978
OpSelectionMerge %103 None
OpBranchConditional %102 %104 %103
@ -313,7 +313,7 @@
OpStore %x_112_phi %170
%171 = OpConvertSToF %float %154
%172 = OpExtInst %float %56 RoundEven %55
%173 = OpFMod %float %171 %172
%173 = OpFRem %float %171 %172
%174 = OpFOrdLessThanEqual %bool %173 %float_0_00999999978
OpSelectionMerge %175 None
OpBranchConditional %174 %176 %175

View File

@ -57,7 +57,7 @@ void main_1() {
x_59_phi = x_71;
} else {
x_79_phi = x_58;
if (((float(x_61) % round(x_52)) <= 0.01f)) {
if (((float(x_61) - (round(x_52) * floor((float(x_61) / round(x_52))))) <= 0.01f)) {
x_78 = (x_58 + 100.0f);
x_79_phi = x_78;
}
@ -129,7 +129,7 @@ void main_1() {
x_103_phi = x_115;
} else {
x_123_phi = x_102;
if (((float(x_105) % round(x_52)) <= 0.01f)) {
if (((float(x_105) - (round(x_52) * floor((float(x_105) / round(x_52))))) <= 0.01f)) {
x_122 = (x_102 + 100.0f);
x_123_phi = x_122;
}

View File

@ -1,5 +1,3 @@
SKIP: FAILED
#include <metal_stdlib>
using namespace metal;
@ -62,7 +60,7 @@ void main_1(constant buf0& x_9, constant buf1& x_6, thread float4* const tint_sy
x_59_phi = x_71;
} else {
x_79_phi = x_58;
if (((float(x_61) % rint(x_52)) <= 0.01f)) {
if (((float(x_61) - (rint(x_52) * floor((float(x_61) / rint(x_52))))) <= 0.01f)) {
x_78 = (x_58 + 100.0f);
x_79_phi = x_78;
}
@ -134,7 +132,7 @@ void main_1(constant buf0& x_9, constant buf1& x_6, thread float4* const tint_sy
x_103_phi = x_115;
} else {
x_123_phi = x_102;
if (((float(x_105) % rint(x_52)) <= 0.01f)) {
if (((float(x_105) - (rint(x_52) * floor((float(x_105) / rint(x_52))))) <= 0.01f)) {
x_122 = (x_102 + 100.0f);
x_123_phi = x_122;
}
@ -216,11 +214,3 @@ fragment tint_symbol_2 tint_symbol(float4 gl_FragCoord_param [[position]], const
return tint_symbol_4;
}
T:\tmp\u4dc.0.metal:63:29: error: invalid operands to binary expression ('float' and 'float')
if (((float(x_61) % rint(x_52)) <= 0.01f)) {
~~~~~~~~~~~ ^ ~~~~~~~~~~
T:\tmp\u4dc.0.metal:135:30: error: invalid operands to binary expression ('float' and 'float')
if (((float(x_105) % rint(x_52)) <= 0.01f)) {
~~~~~~~~~~~~ ^ ~~~~~~~~~~
2 errors generated.

View File

@ -1,7 +1,7 @@
; SPIR-V
; Version: 1.3
; Generator: Google Tint Compiler; 0
; Bound: 278
; Bound: 288
; Schema: 0
OpCapability Shader
%59 = OpExtInstImport "GLSL.std.450"
@ -129,7 +129,7 @@
%int_3 = OpConstant %int 3
%float_1 = OpConstant %float 1
%main_out = OpTypeStruct %v4float
%265 = OpTypeFunction %void %main_out
%275 = OpTypeFunction %void %main_out
%main_1 = OpFunction %void None %18
%21 = OpLabel
%c = OpVariable %_ptr_Function_v3float Function %25
@ -218,273 +218,283 @@
OpStore %x_79_phi %100
%101 = OpConvertSToF %float %78
%102 = OpExtInst %float %59 RoundEven %58
%103 = OpFMod %float %101 %102
%105 = OpFOrdLessThanEqual %bool %103 %float_0_00999999978
OpSelectionMerge %106 None
OpBranchConditional %105 %107 %106
%107 = OpLabel
%108 = OpLoad %float %x_58
%110 = OpFAdd %float %108 %float_100
OpStore %x_78 %110
%111 = OpLoad %float %x_78
OpStore %x_79_phi %111
OpBranch %106
%106 = OpLabel
%112 = OpLoad %float %x_79_phi
OpStore %x_79 %112
%113 = OpAccessChain %_ptr_Uniform_float %x_6 %uint_0 %uint_0
%114 = OpLoad %float %113
%116 = OpAccessChain %_ptr_Uniform_float %x_6 %uint_0 %uint_1
%117 = OpLoad %float %116
%118 = OpFOrdGreaterThan %bool %114 %117
OpSelectionMerge %119 None
OpBranchConditional %118 %120 %119
%120 = OpLabel
%104 = OpConvertSToF %float %78
%105 = OpExtInst %float %59 RoundEven %58
%106 = OpFDiv %float %104 %105
%103 = OpExtInst %float %59 Floor %106
%107 = OpFMul %float %102 %103
%108 = OpFSub %float %101 %107
%110 = OpFOrdLessThanEqual %bool %108 %float_0_00999999978
OpSelectionMerge %111 None
OpBranchConditional %110 %112 %111
%112 = OpLabel
%113 = OpLoad %float %x_58
%115 = OpFAdd %float %113 %float_100
OpStore %x_78 %115
%116 = OpLoad %float %x_78
OpStore %x_79_phi %116
OpBranch %111
%111 = OpLabel
%117 = OpLoad %float %x_79_phi
OpStore %x_79 %117
%118 = OpAccessChain %_ptr_Uniform_float %x_6 %uint_0 %uint_0
%119 = OpLoad %float %118
%121 = OpAccessChain %_ptr_Uniform_float %x_6 %uint_0 %uint_1
%122 = OpLoad %float %121
%123 = OpFOrdGreaterThan %bool %119 %122
OpSelectionMerge %124 None
OpBranchConditional %123 %125 %124
%125 = OpLabel
OpKill
%119 = OpLabel
%121 = OpLoad %float %x_79
OpStore %x_59_phi %121
%124 = OpLabel
%126 = OpLoad %float %x_79
OpStore %x_59_phi %126
OpBranch %93
%93 = OpLabel
%122 = OpLoad %float %x_59_phi
OpStore %x_59 %122
%123 = OpConvertSToF %float %78
%124 = OpLoad %float %x_54
%125 = OpFOrdGreaterThanEqual %bool %123 %124
OpSelectionMerge %126 None
OpBranchConditional %125 %127 %126
%127 = OpLabel
%128 = OpLoad %float %x_59
OpStore %x_91_phi %128
%129 = OpLoad %float %x_59
OpStore %x_92_phi %129
%127 = OpLoad %float %x_59_phi
OpStore %x_59 %127
%128 = OpConvertSToF %float %78
%129 = OpLoad %float %x_54
%130 = OpFOrdGreaterThanEqual %bool %128 %129
OpSelectionMerge %131 None
OpBranchConditional %130 %132 %131
%132 = OpLabel
%133 = OpLoad %float %x_59
OpStore %x_91_phi %133
%134 = OpLoad %float %x_59
OpStore %x_92_phi %134
OpStore %x_93_phi %true
OpBranch %70
%126 = OpLabel
%131 = OpLabel
OpBranch %71
%71 = OpLabel
%131 = OpIAdd %int %78 %int_1
OpStore %x_62 %131
%132 = OpLoad %float %x_59
OpStore %x_58_phi %132
%133 = OpLoad %int %x_62
OpStore %x_61_phi %133
%136 = OpIAdd %int %78 %int_1
OpStore %x_62 %136
%137 = OpLoad %float %x_59
OpStore %x_58_phi %137
%138 = OpLoad %int %x_62
OpStore %x_61_phi %138
OpBranch %69
%70 = OpLabel
%134 = OpLoad %float %x_91_phi
OpStore %x_91 %134
%135 = OpLoad %float %x_92_phi
OpStore %x_92 %135
%136 = OpLoad %bool %x_93_phi
%137 = OpLoad %float %x_91
OpStore %x_95_phi %137
OpSelectionMerge %138 None
OpBranchConditional %136 %139 %138
%139 = OpLabel
%139 = OpLoad %float %x_91_phi
OpStore %x_91 %139
%140 = OpLoad %float %x_92_phi
OpStore %x_92 %140
%141 = OpLoad %bool %x_93_phi
%142 = OpLoad %float %x_91
OpStore %x_95_phi %142
OpSelectionMerge %143 None
OpBranchConditional %141 %144 %143
%144 = OpLabel
OpBranch %65
%138 = OpLabel
%140 = OpLoad %float %x_92
OpStore %x_95_phi %140
%143 = OpLabel
%145 = OpLoad %float %x_92
OpStore %x_95_phi %145
OpBranch %65
%65 = OpLabel
%149 = OpLoad %float %x_95_phi
%150 = OpAccessChain %_ptr_Function_float %c %uint_0
OpStore %150 %149
%151 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1
%152 = OpLoad %float %151
OpStore %x_98 %152
OpSelectionMerge %153 None
OpSwitch %uint_0 %154
%154 = OpLabel
%154 = OpLoad %float %x_95_phi
%155 = OpAccessChain %_ptr_Function_float %c %uint_0
OpStore %155 %154
%156 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1
%157 = OpLoad %float %156
OpStore %x_98 %157
OpSelectionMerge %158 None
OpSwitch %uint_0 %159
%159 = OpLabel
OpStore %x_102_phi %float_n0_5
OpStore %x_105_phi %int_1
OpBranch %155
%155 = OpLabel
OpLoopMerge %156 %157 None
OpBranch %160
%160 = OpLabel
OpLoopMerge %161 %162 None
OpBranch %163
%163 = OpLabel
%168 = OpLoad %float %x_102_phi
OpStore %x_102 %168
%169 = OpLoad %int %x_105_phi
OpStore %x_135_phi %float_0
%170 = OpLoad %float %x_102
OpStore %x_136_phi %170
OpStore %x_137_phi %false
%171 = OpSLessThan %bool %169 %int_800
OpSelectionMerge %172 None
OpBranchConditional %171 %173 %174
%173 = OpLabel
OpBranch %172
%174 = OpLabel
OpBranch %161
%172 = OpLabel
%177 = OpSMod %int %169 %int_32
%178 = OpIEqual %bool %177 %int_0
OpSelectionMerge %179 None
OpBranchConditional %178 %180 %181
%180 = OpLabel
%182 = OpLoad %float %x_102
%183 = OpFAdd %float %182 %float_0_400000006
OpStore %x_115 %183
%184 = OpLoad %float %x_115
OpStore %x_103_phi %184
OpBranch %179
%181 = OpLabel
%185 = OpLoad %float %x_102
OpStore %x_123_phi %185
%186 = OpConvertSToF %float %169
%187 = OpExtInst %float %59 RoundEven %58
%189 = OpConvertSToF %float %169
%190 = OpExtInst %float %59 RoundEven %58
%191 = OpFDiv %float %189 %190
%188 = OpExtInst %float %59 Floor %191
%192 = OpFMul %float %187 %188
%193 = OpFSub %float %186 %192
%194 = OpFOrdLessThanEqual %bool %193 %float_0_00999999978
OpSelectionMerge %195 None
OpBranchConditional %194 %196 %195
%196 = OpLabel
%197 = OpLoad %float %x_102
%198 = OpFAdd %float %197 %float_100
OpStore %x_122 %198
%199 = OpLoad %float %x_122
OpStore %x_123_phi %199
OpBranch %195
%195 = OpLabel
%200 = OpLoad %float %x_123_phi
OpStore %x_123 %200
%201 = OpAccessChain %_ptr_Uniform_float %x_6 %uint_0 %uint_0
%202 = OpLoad %float %201
%203 = OpAccessChain %_ptr_Uniform_float %x_6 %uint_0 %uint_1
%204 = OpLoad %float %203
%205 = OpFOrdGreaterThan %bool %202 %204
OpSelectionMerge %206 None
OpBranchConditional %205 %207 %206
%207 = OpLabel
OpKill
%206 = OpLabel
%208 = OpLoad %float %x_123
OpStore %x_103_phi %208
OpBranch %179
%179 = OpLabel
%209 = OpLoad %float %x_103_phi
OpStore %x_103 %209
%210 = OpConvertSToF %float %169
%211 = OpLoad %float %x_98
%212 = OpFOrdGreaterThanEqual %bool %210 %211
OpSelectionMerge %213 None
OpBranchConditional %212 %214 %213
%214 = OpLabel
%215 = OpLoad %float %x_103
OpStore %x_135_phi %215
%216 = OpLoad %float %x_103
OpStore %x_136_phi %216
OpStore %x_137_phi %true
OpBranch %161
%213 = OpLabel
OpBranch %162
%162 = OpLabel
%217 = OpIAdd %int %169 %int_1
OpStore %x_106 %217
%218 = OpLoad %float %x_103
OpStore %x_102_phi %218
%219 = OpLoad %int %x_106
OpStore %x_105_phi %219
OpBranch %160
%161 = OpLabel
%220 = OpLoad %float %x_135_phi
OpStore %x_135 %220
%221 = OpLoad %float %x_136_phi
OpStore %x_136 %221
%222 = OpLoad %bool %x_137_phi
%223 = OpLoad %float %x_135
OpStore %x_139_phi %223
OpSelectionMerge %224 None
OpBranchConditional %222 %225 %224
%225 = OpLabel
OpBranch %158
%224 = OpLabel
%226 = OpLoad %float %x_136
OpStore %x_139_phi %226
OpBranch %158
%158 = OpLabel
%163 = OpLoad %float %x_102_phi
OpStore %x_102 %163
%164 = OpLoad %int %x_105_phi
OpStore %x_135_phi %float_0
%165 = OpLoad %float %x_102
OpStore %x_136_phi %165
OpStore %x_137_phi %false
%166 = OpSLessThan %bool %164 %int_800
OpSelectionMerge %167 None
OpBranchConditional %166 %168 %169
%168 = OpLabel
OpBranch %167
%169 = OpLabel
OpBranch %156
%167 = OpLabel
%172 = OpSMod %int %164 %int_32
%173 = OpIEqual %bool %172 %int_0
OpSelectionMerge %174 None
OpBranchConditional %173 %175 %176
%175 = OpLabel
%177 = OpLoad %float %x_102
%178 = OpFAdd %float %177 %float_0_400000006
OpStore %x_115 %178
%179 = OpLoad %float %x_115
OpStore %x_103_phi %179
OpBranch %174
%176 = OpLabel
%180 = OpLoad %float %x_102
OpStore %x_123_phi %180
%181 = OpConvertSToF %float %164
%182 = OpExtInst %float %59 RoundEven %58
%183 = OpFMod %float %181 %182
%184 = OpFOrdLessThanEqual %bool %183 %float_0_00999999978
OpSelectionMerge %185 None
OpBranchConditional %184 %186 %185
%186 = OpLabel
%187 = OpLoad %float %x_102
%188 = OpFAdd %float %187 %float_100
OpStore %x_122 %188
%189 = OpLoad %float %x_122
OpStore %x_123_phi %189
OpBranch %185
%185 = OpLabel
%190 = OpLoad %float %x_123_phi
OpStore %x_123 %190
%191 = OpAccessChain %_ptr_Uniform_float %x_6 %uint_0 %uint_0
%192 = OpLoad %float %191
%193 = OpAccessChain %_ptr_Uniform_float %x_6 %uint_0 %uint_1
%194 = OpLoad %float %193
%195 = OpFOrdGreaterThan %bool %192 %194
OpSelectionMerge %196 None
OpBranchConditional %195 %197 %196
%197 = OpLabel
OpKill
%196 = OpLabel
%198 = OpLoad %float %x_123
OpStore %x_103_phi %198
OpBranch %174
%174 = OpLabel
%199 = OpLoad %float %x_103_phi
OpStore %x_103 %199
%200 = OpConvertSToF %float %164
%201 = OpLoad %float %x_98
%202 = OpFOrdGreaterThanEqual %bool %200 %201
OpSelectionMerge %203 None
OpBranchConditional %202 %204 %203
%204 = OpLabel
%205 = OpLoad %float %x_103
OpStore %x_135_phi %205
%206 = OpLoad %float %x_103
OpStore %x_136_phi %206
OpStore %x_137_phi %true
OpBranch %156
%203 = OpLabel
OpBranch %157
%157 = OpLabel
%207 = OpIAdd %int %164 %int_1
OpStore %x_106 %207
%208 = OpLoad %float %x_103
OpStore %x_102_phi %208
%209 = OpLoad %int %x_106
OpStore %x_105_phi %209
OpBranch %155
%156 = OpLabel
%210 = OpLoad %float %x_135_phi
OpStore %x_135 %210
%211 = OpLoad %float %x_136_phi
OpStore %x_136 %211
%212 = OpLoad %bool %x_137_phi
%213 = OpLoad %float %x_135
OpStore %x_139_phi %213
OpSelectionMerge %214 None
OpBranchConditional %212 %215 %214
%215 = OpLabel
OpBranch %153
%214 = OpLabel
%216 = OpLoad %float %x_136
OpStore %x_139_phi %216
OpBranch %153
%153 = OpLabel
%217 = OpLoad %float %x_139_phi
%218 = OpAccessChain %_ptr_Function_float %c %uint_1
OpStore %218 %217
%219 = OpAccessChain %_ptr_Function_float %c %uint_0
%220 = OpLoad %float %219
%221 = OpAccessChain %_ptr_Function_float %c %uint_1
%222 = OpLoad %float %221
%224 = OpAccessChain %_ptr_Function_float %c %uint_2
%225 = OpFAdd %float %220 %222
OpStore %224 %225
%227 = OpLoad %float %x_139_phi
%228 = OpAccessChain %_ptr_Function_float %c %uint_1
OpStore %228 %227
%229 = OpAccessChain %_ptr_Function_float %c %uint_0
%230 = OpLoad %float %229
%231 = OpAccessChain %_ptr_Function_float %c %uint_1
%232 = OpLoad %float %231
%234 = OpAccessChain %_ptr_Function_float %c %uint_2
%235 = OpFAdd %float %230 %232
OpStore %234 %235
OpStore %x_146_phi %int_0
OpBranch %226
%226 = OpLabel
OpLoopMerge %227 %228 None
OpBranch %229
%229 = OpLabel
%231 = OpLoad %int %x_146_phi
%233 = OpSLessThan %bool %231 %int_3
OpSelectionMerge %234 None
OpBranchConditional %233 %235 %236
%235 = OpLabel
OpBranch %234
OpBranch %236
%236 = OpLabel
OpBranch %227
%234 = OpLabel
%237 = OpAccessChain %_ptr_Function_float %c %231
%238 = OpLoad %float %237
%240 = OpFOrdGreaterThanEqual %bool %238 %float_1
OpSelectionMerge %241 None
OpBranchConditional %240 %242 %241
%242 = OpLabel
%243 = OpAccessChain %_ptr_Function_float %c %231
%244 = OpLoad %float %243
%245 = OpAccessChain %_ptr_Function_float %c %231
%246 = OpLoad %float %245
%247 = OpAccessChain %_ptr_Function_float %c %231
%248 = OpFMul %float %244 %246
OpStore %247 %248
%249 = OpAccessChain %_ptr_Uniform_float %x_6 %uint_0 %uint_0
%250 = OpLoad %float %249
%251 = OpAccessChain %_ptr_Uniform_float %x_6 %uint_0 %uint_1
%252 = OpLoad %float %251
%253 = OpFOrdGreaterThan %bool %250 %252
OpSelectionMerge %254 None
OpBranchConditional %253 %255 %254
%255 = OpLabel
OpLoopMerge %237 %238 None
OpBranch %239
%239 = OpLabel
%241 = OpLoad %int %x_146_phi
%243 = OpSLessThan %bool %241 %int_3
OpSelectionMerge %244 None
OpBranchConditional %243 %245 %246
%245 = OpLabel
OpBranch %244
%246 = OpLabel
OpBranch %237
%244 = OpLabel
%247 = OpAccessChain %_ptr_Function_float %c %241
%248 = OpLoad %float %247
%250 = OpFOrdGreaterThanEqual %bool %248 %float_1
OpSelectionMerge %251 None
OpBranchConditional %250 %252 %251
%252 = OpLabel
%253 = OpAccessChain %_ptr_Function_float %c %241
%254 = OpLoad %float %253
%255 = OpAccessChain %_ptr_Function_float %c %241
%256 = OpLoad %float %255
%257 = OpAccessChain %_ptr_Function_float %c %241
%258 = OpFMul %float %254 %256
OpStore %257 %258
%259 = OpAccessChain %_ptr_Uniform_float %x_6 %uint_0 %uint_0
%260 = OpLoad %float %259
%261 = OpAccessChain %_ptr_Uniform_float %x_6 %uint_0 %uint_1
%262 = OpLoad %float %261
%263 = OpFOrdGreaterThan %bool %260 %262
OpSelectionMerge %264 None
OpBranchConditional %263 %265 %264
%265 = OpLabel
OpKill
%254 = OpLabel
OpBranch %241
%241 = OpLabel
OpBranch %228
%228 = OpLabel
%256 = OpIAdd %int %231 %int_1
OpStore %x_147 %256
%257 = OpLoad %int %x_147
OpStore %x_146_phi %257
OpBranch %226
%227 = OpLabel
%258 = OpLoad %v3float %c
%260 = OpExtInst %v3float %59 FAbs %258
%259 = OpExtInst %v3float %59 Normalize %260
%261 = OpCompositeExtract %float %259 0
%262 = OpCompositeExtract %float %259 1
%263 = OpCompositeExtract %float %259 2
%264 = OpCompositeConstruct %v4float %261 %262 %263 %float_1
OpStore %x_GLF_color %264
%264 = OpLabel
OpBranch %251
%251 = OpLabel
OpBranch %238
%238 = OpLabel
%266 = OpIAdd %int %241 %int_1
OpStore %x_147 %266
%267 = OpLoad %int %x_147
OpStore %x_146_phi %267
OpBranch %236
%237 = OpLabel
%268 = OpLoad %v3float %c
%270 = OpExtInst %v3float %59 FAbs %268
%269 = OpExtInst %v3float %59 Normalize %270
%271 = OpCompositeExtract %float %269 0
%272 = OpCompositeExtract %float %269 1
%273 = OpCompositeExtract %float %269 2
%274 = OpCompositeConstruct %v4float %271 %272 %273 %float_1
OpStore %x_GLF_color %274
OpReturn
OpFunctionEnd
%tint_symbol_3 = OpFunction %void None %265
%tint_symbol_3 = OpFunction %void None %275
%tint_symbol_1 = OpFunctionParameter %main_out
%269 = OpLabel
%270 = OpCompositeExtract %v4float %tint_symbol_1 0
OpStore %tint_symbol_2 %270
%279 = OpLabel
%280 = OpCompositeExtract %v4float %tint_symbol_1 0
OpStore %tint_symbol_2 %280
OpReturn
OpFunctionEnd
%main = OpFunction %void None %18
%272 = OpLabel
%273 = OpLoad %v4float %tint_symbol
OpStore %gl_FragCoord %273
%274 = OpFunctionCall %void %main_1
%276 = OpLoad %v4float %x_GLF_color
%277 = OpCompositeConstruct %main_out %276
%275 = OpFunctionCall %void %tint_symbol_3 %277
%282 = OpLabel
%283 = OpLoad %v4float %tint_symbol
OpStore %gl_FragCoord %283
%284 = OpFunctionCall %void %main_1
%286 = OpLoad %v4float %x_GLF_color
%287 = OpCompositeConstruct %main_out %286
%285 = OpFunctionCall %void %tint_symbol_3 %287
OpReturn
OpFunctionEnd

View File

@ -62,7 +62,7 @@ fn main_1() {
x_59_phi = x_71;
} else {
x_79_phi = x_58;
if (((f32(x_61) % round(x_52)) <= 0.01)) {
if (((f32(x_61) - (round(x_52) * floor((f32(x_61) / round(x_52))))) <= 0.01)) {
x_78 = (x_58 + 100.0);
x_79_phi = x_78;
}
@ -135,7 +135,7 @@ fn main_1() {
x_103_phi = x_115;
} else {
x_123_phi = x_102;
if (((f32(x_105) % round(x_52)) <= 0.01)) {
if (((f32(x_105) - (round(x_52) * floor((f32(x_105) / round(x_52))))) <= 0.01)) {
x_122 = (x_102 + 100.0);
x_123_phi = x_122;
}

View File

@ -1,5 +1,3 @@
SKIP: FAILED
#include <metal_stdlib>
using namespace metal;
@ -62,7 +60,7 @@ void main_1(constant buf0& x_9, constant buf1& x_6, thread float4* const tint_sy
x_59_phi = x_71;
} else {
x_79_phi = x_58;
if (((float(x_61) % rint(x_52)) <= 0.01f)) {
if ((fmod(float(x_61), rint(x_52)) <= 0.01f)) {
x_78 = (x_58 + 100.0f);
x_79_phi = x_78;
}
@ -134,7 +132,7 @@ void main_1(constant buf0& x_9, constant buf1& x_6, thread float4* const tint_sy
x_103_phi = x_115;
} else {
x_123_phi = x_102;
if (((float(x_105) % rint(x_52)) <= 0.01f)) {
if ((fmod(float(x_105), rint(x_52)) <= 0.01f)) {
x_122 = (x_102 + 100.0f);
x_123_phi = x_122;
}
@ -216,11 +214,3 @@ fragment tint_symbol_2 tint_symbol(float4 gl_FragCoord_param [[position]], const
return tint_symbol_4;
}
T:\tmp\ucz4.0.metal:63:29: error: invalid operands to binary expression ('float' and 'float')
if (((float(x_61) % rint(x_52)) <= 0.01f)) {
~~~~~~~~~~~ ^ ~~~~~~~~~~
T:\tmp\ucz4.0.metal:135:30: error: invalid operands to binary expression ('float' and 'float')
if (((float(x_105) % rint(x_52)) <= 0.01f)) {
~~~~~~~~~~~~ ^ ~~~~~~~~~~
2 errors generated.

View File

@ -218,7 +218,7 @@
OpStore %x_79_phi %100
%101 = OpConvertSToF %float %78
%102 = OpExtInst %float %59 RoundEven %58
%103 = OpFMod %float %101 %102
%103 = OpFRem %float %101 %102
%105 = OpFOrdLessThanEqual %bool %103 %float_0_00999999978
OpSelectionMerge %106 None
OpBranchConditional %105 %107 %106
@ -334,7 +334,7 @@
OpStore %x_123_phi %180
%181 = OpConvertSToF %float %164
%182 = OpExtInst %float %59 RoundEven %58
%183 = OpFMod %float %181 %182
%183 = OpFRem %float %181 %182
%184 = OpFOrdLessThanEqual %bool %183 %float_0_00999999978
OpSelectionMerge %185 None
OpBranchConditional %184 %186 %185

View File

@ -20,7 +20,7 @@ float compute_value_f1_f1_(inout float limit, inout float thirty_two) {
} else {
const int x_122 = i;
const float x_124 = thirty_two;
if (((float(x_122) % round(x_124)) <= 0.01f)) {
if (((float(x_122) - (round(x_124) * floor((float(x_122) / round(x_124))))) <= 0.01f)) {
result = (result + 100.0f);
}
}

View File

@ -1,5 +1,3 @@
SKIP: FAILED
#include <metal_stdlib>
using namespace metal;
@ -31,7 +29,7 @@ float compute_value_f1_f1_(thread float* const limit, thread float* const thirty
} else {
int const x_122 = i;
float const x_124 = *(thirty_two);
if (((float(x_122) % rint(x_124)) <= 0.01f)) {
if (((float(x_122) - (rint(x_124) * floor((float(x_122) / rint(x_124))))) <= 0.01f)) {
float const x_130 = result;
result = (x_130 + 100.0f);
}
@ -115,8 +113,3 @@ fragment tint_symbol_2 tint_symbol(float4 gl_FragCoord_param [[position]], const
return tint_symbol_4;
}
T:\tmp\ufic.0.metal:32:26: error: invalid operands to binary expression ('float' and 'float')
if (((float(x_122) % rint(x_124)) <= 0.01f)) {
~~~~~~~~~~~~ ^ ~~~~~~~~~~~
1 error generated.

View File

@ -1,7 +1,7 @@
; SPIR-V
; Version: 1.3
; Generator: Google Tint Compiler; 0
; Bound: 172
; Bound: 177
; Schema: 0
OpCapability Shader
%56 = OpExtInstImport "GLSL.std.450"
@ -71,14 +71,14 @@
%float_0_00999999978 = OpConstant %float 0.00999999978
%float_100 = OpConstant %float 100
%void = OpTypeVoid
%76 = OpTypeFunction %void
%81 = OpTypeFunction %void
%v3float = OpTypeVector %float 3
%_ptr_Function_v3float = OpTypePointer Function %v3float
%83 = OpConstantNull %v3float
%88 = OpConstantNull %v3float
%float_7 = OpConstant %float 7
%float_8 = OpConstant %float 8
%float_9 = OpConstant %float 9
%93 = OpConstantComposite %v3float %float_7 %float_8 %float_9
%98 = OpConstantComposite %v3float %float_7 %float_8 %float_9
%uint = OpTypeInt 32 0
%uint_0 = OpConstant %uint 0
%_ptr_Uniform_float = OpTypePointer Uniform %float
@ -88,7 +88,7 @@
%int_3 = OpConstant %int 3
%float_1 = OpConstant %float 1
%main_out = OpTypeStruct %v4float
%159 = OpTypeFunction %void %main_out
%164 = OpTypeFunction %void %main_out
%compute_value_f1_f1_ = OpFunction %float None %15
%limit = OpFunctionParameter %_ptr_Function_float
%thirty_two = OpFunctionParameter %_ptr_Function_float
@ -126,141 +126,146 @@
%53 = OpLoad %float %thirty_two
%54 = OpConvertSToF %float %51
%55 = OpExtInst %float %56 RoundEven %53
%57 = OpFMod %float %54 %55
%59 = OpFOrdLessThanEqual %bool %57 %float_0_00999999978
OpSelectionMerge %60 None
OpBranchConditional %59 %61 %60
%61 = OpLabel
%62 = OpLoad %float %result
%64 = OpFAdd %float %62 %float_100
OpStore %result %64
OpBranch %60
%60 = OpLabel
%58 = OpConvertSToF %float %51
%59 = OpExtInst %float %56 RoundEven %53
%60 = OpFDiv %float %58 %59
%57 = OpExtInst %float %56 Floor %60
%61 = OpFMul %float %55 %57
%62 = OpFSub %float %54 %61
%64 = OpFOrdLessThanEqual %bool %62 %float_0_00999999978
OpSelectionMerge %65 None
OpBranchConditional %64 %66 %65
%66 = OpLabel
%67 = OpLoad %float %result
%69 = OpFAdd %float %67 %float_100
OpStore %result %69
OpBranch %65
%65 = OpLabel
OpBranch %45
%45 = OpLabel
%65 = OpLoad %int %i
%67 = OpLoad %float %limit
%68 = OpConvertSToF %float %65
%69 = OpFOrdGreaterThanEqual %bool %68 %67
OpSelectionMerge %70 None
OpBranchConditional %69 %71 %70
%71 = OpLabel
%72 = OpLoad %float %result
OpReturnValue %72
%70 = OpLabel
%70 = OpLoad %int %i
%72 = OpLoad %float %limit
%73 = OpConvertSToF %float %70
%74 = OpFOrdGreaterThanEqual %bool %73 %72
OpSelectionMerge %75 None
OpBranchConditional %74 %76 %75
%76 = OpLabel
%77 = OpLoad %float %result
OpReturnValue %77
%75 = OpLabel
OpBranch %31
%31 = OpLabel
%73 = OpLoad %int %i
%74 = OpIAdd %int %73 %int_1
OpStore %i %74
%78 = OpLoad %int %i
%79 = OpIAdd %int %78 %int_1
OpStore %i %79
OpBranch %29
%30 = OpLabel
%75 = OpLoad %float %result
OpReturnValue %75
%80 = OpLoad %float %result
OpReturnValue %80
OpFunctionEnd
%main_1 = OpFunction %void None %76
%79 = OpLabel
%c = OpVariable %_ptr_Function_v3float Function %83
%main_1 = OpFunction %void None %81
%84 = OpLabel
%c = OpVariable %_ptr_Function_v3float Function %88
%thirty_two_1 = OpVariable %_ptr_Function_float Function %22
%param = OpVariable %_ptr_Function_float Function %22
%param_1 = OpVariable %_ptr_Function_float Function %22
%param_2 = OpVariable %_ptr_Function_float Function %22
%param_3 = OpVariable %_ptr_Function_float Function %22
%i_1 = OpVariable %_ptr_Function_int Function %26
OpStore %c %93
%97 = OpAccessChain %_ptr_Uniform_float %x_13 %uint_0 %uint_0
%98 = OpLoad %float %97
%100 = OpFDiv %float %98 %float_8
%99 = OpExtInst %float %56 RoundEven %100
OpStore %thirty_two_1 %99
%102 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_0
OpStore %c %98
%102 = OpAccessChain %_ptr_Uniform_float %x_13 %uint_0 %uint_0
%103 = OpLoad %float %102
OpStore %param %103
%104 = OpLoad %float %thirty_two_1
OpStore %param_1 %104
%105 = OpFunctionCall %float %compute_value_f1_f1_ %param %param_1
%108 = OpAccessChain %_ptr_Function_float %c %uint_0
OpStore %108 %105
%110 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1
%111 = OpLoad %float %110
OpStore %param_2 %111
%112 = OpLoad %float %thirty_two_1
OpStore %param_3 %112
%113 = OpFunctionCall %float %compute_value_f1_f1_ %param_2 %param_3
%116 = OpAccessChain %_ptr_Function_float %c %uint_1
OpStore %116 %113
%117 = OpAccessChain %_ptr_Function_float %c %uint_0
%118 = OpLoad %float %117
%119 = OpAccessChain %_ptr_Function_float %c %uint_1
%120 = OpLoad %float %119
%122 = OpAccessChain %_ptr_Function_float %c %uint_2
%123 = OpFAdd %float %118 %120
OpStore %122 %123
%105 = OpFDiv %float %103 %float_8
%104 = OpExtInst %float %56 RoundEven %105
OpStore %thirty_two_1 %104
%107 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_0
%108 = OpLoad %float %107
OpStore %param %108
%109 = OpLoad %float %thirty_two_1
OpStore %param_1 %109
%110 = OpFunctionCall %float %compute_value_f1_f1_ %param %param_1
%113 = OpAccessChain %_ptr_Function_float %c %uint_0
OpStore %113 %110
%115 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1
%116 = OpLoad %float %115
OpStore %param_2 %116
%117 = OpLoad %float %thirty_two_1
OpStore %param_3 %117
%118 = OpFunctionCall %float %compute_value_f1_f1_ %param_2 %param_3
%121 = OpAccessChain %_ptr_Function_float %c %uint_1
OpStore %121 %118
%122 = OpAccessChain %_ptr_Function_float %c %uint_0
%123 = OpLoad %float %122
%124 = OpAccessChain %_ptr_Function_float %c %uint_1
%125 = OpLoad %float %124
%127 = OpAccessChain %_ptr_Function_float %c %uint_2
%128 = OpFAdd %float %123 %125
OpStore %127 %128
OpStore %i_1 %int_0
OpBranch %124
%124 = OpLabel
OpLoopMerge %125 %126 None
OpBranch %127
%127 = OpLabel
%128 = OpLoad %int %i_1
%130 = OpSLessThan %bool %128 %int_3
OpSelectionMerge %131 None
OpBranchConditional %130 %132 %133
OpBranch %129
%129 = OpLabel
OpLoopMerge %130 %131 None
OpBranch %132
%132 = OpLabel
OpBranch %131
%133 = OpLabel
OpBranch %125
%131 = OpLabel
%134 = OpLoad %int %i_1
%135 = OpAccessChain %_ptr_Function_float %c %134
%136 = OpLoad %float %135
%138 = OpFOrdGreaterThanEqual %bool %136 %float_1
OpSelectionMerge %139 None
OpBranchConditional %138 %140 %139
%140 = OpLabel
%141 = OpLoad %int %i_1
%142 = OpLoad %int %i_1
%143 = OpAccessChain %_ptr_Function_float %c %142
%144 = OpLoad %float %143
%145 = OpLoad %int %i_1
%146 = OpAccessChain %_ptr_Function_float %c %145
%147 = OpLoad %float %146
%148 = OpAccessChain %_ptr_Function_float %c %141
%149 = OpFMul %float %144 %147
OpStore %148 %149
OpBranch %139
%139 = OpLabel
OpBranch %126
%126 = OpLabel
%133 = OpLoad %int %i_1
%135 = OpSLessThan %bool %133 %int_3
OpSelectionMerge %136 None
OpBranchConditional %135 %137 %138
%137 = OpLabel
OpBranch %136
%138 = OpLabel
OpBranch %130
%136 = OpLabel
%139 = OpLoad %int %i_1
%140 = OpAccessChain %_ptr_Function_float %c %139
%141 = OpLoad %float %140
%143 = OpFOrdGreaterThanEqual %bool %141 %float_1
OpSelectionMerge %144 None
OpBranchConditional %143 %145 %144
%145 = OpLabel
%146 = OpLoad %int %i_1
%147 = OpLoad %int %i_1
%148 = OpAccessChain %_ptr_Function_float %c %147
%149 = OpLoad %float %148
%150 = OpLoad %int %i_1
%151 = OpIAdd %int %150 %int_1
OpStore %i_1 %151
OpBranch %124
%125 = OpLabel
%152 = OpLoad %v3float %c
%154 = OpExtInst %v3float %56 FAbs %152
%153 = OpExtInst %v3float %56 Normalize %154
%155 = OpCompositeExtract %float %153 0
%156 = OpCompositeExtract %float %153 1
%157 = OpCompositeExtract %float %153 2
%158 = OpCompositeConstruct %v4float %155 %156 %157 %float_1
OpStore %x_GLF_color %158
%151 = OpAccessChain %_ptr_Function_float %c %150
%152 = OpLoad %float %151
%153 = OpAccessChain %_ptr_Function_float %c %146
%154 = OpFMul %float %149 %152
OpStore %153 %154
OpBranch %144
%144 = OpLabel
OpBranch %131
%131 = OpLabel
%155 = OpLoad %int %i_1
%156 = OpIAdd %int %155 %int_1
OpStore %i_1 %156
OpBranch %129
%130 = OpLabel
%157 = OpLoad %v3float %c
%159 = OpExtInst %v3float %56 FAbs %157
%158 = OpExtInst %v3float %56 Normalize %159
%160 = OpCompositeExtract %float %158 0
%161 = OpCompositeExtract %float %158 1
%162 = OpCompositeExtract %float %158 2
%163 = OpCompositeConstruct %v4float %160 %161 %162 %float_1
OpStore %x_GLF_color %163
OpReturn
OpFunctionEnd
%tint_symbol_3 = OpFunction %void None %159
%tint_symbol_3 = OpFunction %void None %164
%tint_symbol_1 = OpFunctionParameter %main_out
%163 = OpLabel
%164 = OpCompositeExtract %v4float %tint_symbol_1 0
OpStore %tint_symbol_2 %164
%168 = OpLabel
%169 = OpCompositeExtract %v4float %tint_symbol_1 0
OpStore %tint_symbol_2 %169
OpReturn
OpFunctionEnd
%main = OpFunction %void None %76
%166 = OpLabel
%167 = OpLoad %v4float %tint_symbol
OpStore %gl_FragCoord %167
%168 = OpFunctionCall %void %main_1
%170 = OpLoad %v4float %x_GLF_color
%171 = OpCompositeConstruct %main_out %170
%169 = OpFunctionCall %void %tint_symbol_3 %171
%main = OpFunction %void None %81
%171 = OpLabel
%172 = OpLoad %v4float %tint_symbol
OpStore %gl_FragCoord %172
%173 = OpFunctionCall %void %main_1
%175 = OpLoad %v4float %x_GLF_color
%176 = OpCompositeConstruct %main_out %175
%174 = OpFunctionCall %void %tint_symbol_3 %176
OpReturn
OpFunctionEnd

View File

@ -27,7 +27,7 @@ fn compute_value_f1_f1_(limit : ptr<function, f32>, thirty_two : ptr<function, f
} else {
let x_122 : i32 = i;
let x_124 : f32 = *(thirty_two);
if (((f32(x_122) % round(x_124)) <= 0.01)) {
if (((f32(x_122) - (round(x_124) * floor((f32(x_122) / round(x_124))))) <= 0.01)) {
let x_130 : f32 = result;
result = (x_130 + 100.0);
}

View File

@ -1,5 +1,3 @@
SKIP: FAILED
#include <metal_stdlib>
using namespace metal;
@ -31,7 +29,7 @@ float compute_value_f1_f1_(thread float* const limit, thread float* const thirty
} else {
int const x_122 = i;
float const x_124 = *(thirty_two);
if (((float(x_122) % rint(x_124)) <= 0.01f)) {
if ((fmod(float(x_122), rint(x_124)) <= 0.01f)) {
float const x_130 = result;
result = (x_130 + 100.0f);
}
@ -115,8 +113,3 @@ fragment tint_symbol_2 tint_symbol(float4 gl_FragCoord_param [[position]], const
return tint_symbol_4;
}
T:\tmp\u2a4.0.metal:32:26: error: invalid operands to binary expression ('float' and 'float')
if (((float(x_122) % rint(x_124)) <= 0.01f)) {
~~~~~~~~~~~~ ^ ~~~~~~~~~~~
1 error generated.

View File

@ -126,7 +126,7 @@
%53 = OpLoad %float %thirty_two
%54 = OpConvertSToF %float %51
%55 = OpExtInst %float %56 RoundEven %53
%57 = OpFMod %float %54 %55
%57 = OpFRem %float %54 %55
%59 = OpFOrdLessThanEqual %bool %57 %float_0_00999999978
OpSelectionMerge %60 None
OpBranchConditional %59 %61 %60

View File

@ -23,7 +23,7 @@ float compute_value_f1_f1_(inout float limit, inout float thirty_two) {
} else {
const int x_136 = i;
const float x_138 = thirty_two;
if (((float(x_136) % round(x_138)) <= 0.01f)) {
if (((float(x_136) - (round(x_138) * floor((float(x_136) / round(x_138))))) <= 0.01f)) {
result = (result + 100.0f);
}
}

View File

@ -1,5 +1,3 @@
SKIP: FAILED
#include <metal_stdlib>
using namespace metal;
@ -34,7 +32,7 @@ float compute_value_f1_f1_(thread float* const limit, thread float* const thirty
} else {
int const x_136 = i;
float const x_138 = *(thirty_two);
if (((float(x_136) % rint(x_138)) <= 0.01f)) {
if (((float(x_136) - (rint(x_138) * floor((float(x_136) / rint(x_138))))) <= 0.01f)) {
float const x_144 = result;
result = (x_144 + 100.0f);
}
@ -128,8 +126,3 @@ fragment tint_symbol_2 tint_symbol(float4 gl_FragCoord_param [[position]], const
return tint_symbol_4;
}
T:\tmp\u8uo.0.metal:35:26: error: invalid operands to binary expression ('float' and 'float')
if (((float(x_136) % rint(x_138)) <= 0.01f)) {
~~~~~~~~~~~~ ^ ~~~~~~~~~~~
1 error generated.

View File

@ -1,7 +1,7 @@
; SPIR-V
; Version: 1.3
; Generator: Google Tint Compiler; 0
; Bound: 186
; Bound: 191
; Schema: 0
OpCapability Shader
%59 = OpExtInstImport "GLSL.std.450"
@ -83,14 +83,14 @@
%float_0_00999999978 = OpConstant %float 0.00999999978
%float_100 = OpConstant %float 100
%void = OpTypeVoid
%79 = OpTypeFunction %void
%84 = OpTypeFunction %void
%v3float = OpTypeVector %float 3
%_ptr_Function_v3float = OpTypePointer Function %v3float
%86 = OpConstantNull %v3float
%91 = OpConstantNull %v3float
%float_7 = OpConstant %float 7
%float_8 = OpConstant %float 8
%float_9 = OpConstant %float 9
%97 = OpConstantComposite %v3float %float_7 %float_8 %float_9
%102 = OpConstantComposite %v3float %float_7 %float_8 %float_9
%uint = OpTypeInt 32 0
%uint_0 = OpConstant %uint 0
%_ptr_Uniform_float = OpTypePointer Uniform %float
@ -100,7 +100,7 @@
%int_3 = OpConstant %int 3
%float_1 = OpConstant %float 1
%main_out = OpTypeStruct %v4float
%173 = OpTypeFunction %void %main_out
%178 = OpTypeFunction %void %main_out
%compute_value_f1_f1_ = OpFunction %float None %18
%limit = OpFunctionParameter %_ptr_Function_float
%thirty_two = OpFunctionParameter %_ptr_Function_float
@ -138,158 +138,163 @@
%56 = OpLoad %float %thirty_two
%57 = OpConvertSToF %float %54
%58 = OpExtInst %float %59 RoundEven %56
%60 = OpFMod %float %57 %58
%62 = OpFOrdLessThanEqual %bool %60 %float_0_00999999978
OpSelectionMerge %63 None
OpBranchConditional %62 %64 %63
%64 = OpLabel
%65 = OpLoad %float %result
%67 = OpFAdd %float %65 %float_100
OpStore %result %67
OpBranch %63
%63 = OpLabel
%61 = OpConvertSToF %float %54
%62 = OpExtInst %float %59 RoundEven %56
%63 = OpFDiv %float %61 %62
%60 = OpExtInst %float %59 Floor %63
%64 = OpFMul %float %58 %60
%65 = OpFSub %float %57 %64
%67 = OpFOrdLessThanEqual %bool %65 %float_0_00999999978
OpSelectionMerge %68 None
OpBranchConditional %67 %69 %68
%69 = OpLabel
%70 = OpLoad %float %result
%72 = OpFAdd %float %70 %float_100
OpStore %result %72
OpBranch %68
%68 = OpLabel
OpBranch %48
%48 = OpLabel
%68 = OpLoad %int %i
%70 = OpLoad %float %limit
%71 = OpConvertSToF %float %68
%72 = OpFOrdGreaterThanEqual %bool %71 %70
OpSelectionMerge %73 None
OpBranchConditional %72 %74 %73
%74 = OpLabel
%75 = OpLoad %float %result
OpReturnValue %75
%73 = OpLabel
%73 = OpLoad %int %i
%75 = OpLoad %float %limit
%76 = OpConvertSToF %float %73
%77 = OpFOrdGreaterThanEqual %bool %76 %75
OpSelectionMerge %78 None
OpBranchConditional %77 %79 %78
%79 = OpLabel
%80 = OpLoad %float %result
OpReturnValue %80
%78 = OpLabel
OpBranch %34
%34 = OpLabel
%76 = OpLoad %int %i
%77 = OpIAdd %int %76 %int_1
OpStore %i %77
%81 = OpLoad %int %i
%82 = OpIAdd %int %81 %int_1
OpStore %i %82
OpBranch %32
%33 = OpLabel
%78 = OpLoad %float %result
OpReturnValue %78
%83 = OpLoad %float %result
OpReturnValue %83
OpFunctionEnd
%main_1 = OpFunction %void None %79
%82 = OpLabel
%c = OpVariable %_ptr_Function_v3float Function %86
%main_1 = OpFunction %void None %84
%87 = OpLabel
%c = OpVariable %_ptr_Function_v3float Function %91
%thirty_two_1 = OpVariable %_ptr_Function_float Function %25
%param = OpVariable %_ptr_Function_float Function %25
%param_1 = OpVariable %_ptr_Function_float Function %25
%param_2 = OpVariable %_ptr_Function_float Function %25
%param_3 = OpVariable %_ptr_Function_float Function %25
%i_1 = OpVariable %_ptr_Function_int Function %29
%x_58 = OpVariable %_ptr_Function_v3float Function %86
OpStore %c %97
%101 = OpAccessChain %_ptr_Uniform_float %x_13 %uint_0 %uint_0
%102 = OpLoad %float %101
%104 = OpFDiv %float %102 %float_8
%103 = OpExtInst %float %59 RoundEven %104
OpStore %thirty_two_1 %103
%106 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_0
%x_58 = OpVariable %_ptr_Function_v3float Function %91
OpStore %c %102
%106 = OpAccessChain %_ptr_Uniform_float %x_13 %uint_0 %uint_0
%107 = OpLoad %float %106
OpStore %param %107
%108 = OpLoad %float %thirty_two_1
OpStore %param_1 %108
%109 = OpFunctionCall %float %compute_value_f1_f1_ %param %param_1
%112 = OpAccessChain %_ptr_Function_float %c %uint_0
OpStore %112 %109
%114 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1
%115 = OpLoad %float %114
OpStore %param_2 %115
%116 = OpLoad %float %thirty_two_1
OpStore %param_3 %116
%117 = OpFunctionCall %float %compute_value_f1_f1_ %param_2 %param_3
%120 = OpAccessChain %_ptr_Function_float %c %uint_1
OpStore %120 %117
%121 = OpAccessChain %_ptr_Function_float %c %uint_0
%122 = OpLoad %float %121
%123 = OpAccessChain %_ptr_Function_float %c %uint_1
%124 = OpLoad %float %123
%126 = OpAccessChain %_ptr_Function_float %c %uint_2
%127 = OpFAdd %float %122 %124
OpStore %126 %127
%109 = OpFDiv %float %107 %float_8
%108 = OpExtInst %float %59 RoundEven %109
OpStore %thirty_two_1 %108
%111 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_0
%112 = OpLoad %float %111
OpStore %param %112
%113 = OpLoad %float %thirty_two_1
OpStore %param_1 %113
%114 = OpFunctionCall %float %compute_value_f1_f1_ %param %param_1
%117 = OpAccessChain %_ptr_Function_float %c %uint_0
OpStore %117 %114
%119 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1
%120 = OpLoad %float %119
OpStore %param_2 %120
%121 = OpLoad %float %thirty_two_1
OpStore %param_3 %121
%122 = OpFunctionCall %float %compute_value_f1_f1_ %param_2 %param_3
%125 = OpAccessChain %_ptr_Function_float %c %uint_1
OpStore %125 %122
%126 = OpAccessChain %_ptr_Function_float %c %uint_0
%127 = OpLoad %float %126
%128 = OpAccessChain %_ptr_Function_float %c %uint_1
%129 = OpLoad %float %128
%131 = OpAccessChain %_ptr_Function_float %c %uint_2
%132 = OpFAdd %float %127 %129
OpStore %131 %132
OpStore %i_1 %int_0
OpBranch %128
%128 = OpLabel
OpLoopMerge %129 %130 None
OpBranch %131
%131 = OpLabel
%132 = OpLoad %int %i_1
%134 = OpSLessThan %bool %132 %int_3
OpSelectionMerge %135 None
OpBranchConditional %134 %136 %137
OpBranch %133
%133 = OpLabel
OpLoopMerge %134 %135 None
OpBranch %136
%136 = OpLabel
OpBranch %135
%137 = OpLabel
OpBranch %129
%135 = OpLabel
%138 = OpLoad %int %i_1
%139 = OpAccessChain %_ptr_Function_float %c %138
%140 = OpLoad %float %139
%142 = OpFOrdGreaterThanEqual %bool %140 %float_1
OpSelectionMerge %143 None
OpBranchConditional %142 %144 %143
%144 = OpLabel
%145 = OpLoad %int %i_1
%146 = OpLoad %int %i_1
%147 = OpAccessChain %_ptr_Function_float %c %146
%148 = OpLoad %float %147
%149 = OpLoad %int %i_1
%150 = OpAccessChain %_ptr_Function_float %c %149
%151 = OpLoad %float %150
%152 = OpAccessChain %_ptr_Function_float %c %145
%153 = OpFMul %float %148 %151
OpStore %152 %153
OpBranch %143
%143 = OpLabel
OpBranch %130
%130 = OpLabel
%137 = OpLoad %int %i_1
%139 = OpSLessThan %bool %137 %int_3
OpSelectionMerge %140 None
OpBranchConditional %139 %141 %142
%141 = OpLabel
OpBranch %140
%142 = OpLabel
OpBranch %134
%140 = OpLabel
%143 = OpLoad %int %i_1
%144 = OpAccessChain %_ptr_Function_float %c %143
%145 = OpLoad %float %144
%147 = OpFOrdGreaterThanEqual %bool %145 %float_1
OpSelectionMerge %148 None
OpBranchConditional %147 %149 %148
%149 = OpLabel
%150 = OpLoad %int %i_1
%151 = OpLoad %int %i_1
%152 = OpAccessChain %_ptr_Function_float %c %151
%153 = OpLoad %float %152
%154 = OpLoad %int %i_1
%155 = OpIAdd %int %154 %int_1
OpStore %i_1 %155
OpBranch %128
%129 = OpLabel
%156 = OpAccessChain %_ptr_Uniform_float %x_20 %uint_0 %uint_0
%157 = OpLoad %float %156
%158 = OpAccessChain %_ptr_Uniform_float %x_20 %uint_0 %uint_1
%159 = OpLoad %float %158
%160 = OpFOrdLessThan %bool %157 %159
OpSelectionMerge %161 None
OpBranchConditional %160 %162 %163
%162 = OpLabel
%164 = OpLoad %v3float %c
%165 = OpExtInst %v3float %59 FAbs %164
OpStore %x_58 %165
OpBranch %161
%163 = OpLabel
%166 = OpLoad %v3float %c
OpStore %x_58 %166
OpBranch %161
%161 = OpLabel
%167 = OpLoad %v3float %x_58
%168 = OpExtInst %v3float %59 Normalize %167
%169 = OpCompositeExtract %float %168 0
%170 = OpCompositeExtract %float %168 1
%171 = OpCompositeExtract %float %168 2
%172 = OpCompositeConstruct %v4float %169 %170 %171 %float_1
OpStore %x_GLF_color %172
%155 = OpAccessChain %_ptr_Function_float %c %154
%156 = OpLoad %float %155
%157 = OpAccessChain %_ptr_Function_float %c %150
%158 = OpFMul %float %153 %156
OpStore %157 %158
OpBranch %148
%148 = OpLabel
OpBranch %135
%135 = OpLabel
%159 = OpLoad %int %i_1
%160 = OpIAdd %int %159 %int_1
OpStore %i_1 %160
OpBranch %133
%134 = OpLabel
%161 = OpAccessChain %_ptr_Uniform_float %x_20 %uint_0 %uint_0
%162 = OpLoad %float %161
%163 = OpAccessChain %_ptr_Uniform_float %x_20 %uint_0 %uint_1
%164 = OpLoad %float %163
%165 = OpFOrdLessThan %bool %162 %164
OpSelectionMerge %166 None
OpBranchConditional %165 %167 %168
%167 = OpLabel
%169 = OpLoad %v3float %c
%170 = OpExtInst %v3float %59 FAbs %169
OpStore %x_58 %170
OpBranch %166
%168 = OpLabel
%171 = OpLoad %v3float %c
OpStore %x_58 %171
OpBranch %166
%166 = OpLabel
%172 = OpLoad %v3float %x_58
%173 = OpExtInst %v3float %59 Normalize %172
%174 = OpCompositeExtract %float %173 0
%175 = OpCompositeExtract %float %173 1
%176 = OpCompositeExtract %float %173 2
%177 = OpCompositeConstruct %v4float %174 %175 %176 %float_1
OpStore %x_GLF_color %177
OpReturn
OpFunctionEnd
%tint_symbol_3 = OpFunction %void None %173
%tint_symbol_3 = OpFunction %void None %178
%tint_symbol_1 = OpFunctionParameter %main_out
%177 = OpLabel
%178 = OpCompositeExtract %v4float %tint_symbol_1 0
OpStore %tint_symbol_2 %178
%182 = OpLabel
%183 = OpCompositeExtract %v4float %tint_symbol_1 0
OpStore %tint_symbol_2 %183
OpReturn
OpFunctionEnd
%main = OpFunction %void None %79
%180 = OpLabel
%181 = OpLoad %v4float %tint_symbol
OpStore %gl_FragCoord %181
%182 = OpFunctionCall %void %main_1
%184 = OpLoad %v4float %x_GLF_color
%185 = OpCompositeConstruct %main_out %184
%183 = OpFunctionCall %void %tint_symbol_3 %185
%main = OpFunction %void None %84
%185 = OpLabel
%186 = OpLoad %v4float %tint_symbol
OpStore %gl_FragCoord %186
%187 = OpFunctionCall %void %main_1
%189 = OpLoad %v4float %x_GLF_color
%190 = OpCompositeConstruct %main_out %189
%188 = OpFunctionCall %void %tint_symbol_3 %190
OpReturn
OpFunctionEnd

View File

@ -34,7 +34,7 @@ fn compute_value_f1_f1_(limit : ptr<function, f32>, thirty_two : ptr<function, f
} else {
let x_136 : i32 = i;
let x_138 : f32 = *(thirty_two);
if (((f32(x_136) % round(x_138)) <= 0.01)) {
if (((f32(x_136) - (round(x_138) * floor((f32(x_136) / round(x_138))))) <= 0.01)) {
let x_144 : f32 = result;
result = (x_144 + 100.0);
}

View File

@ -1,5 +1,3 @@
SKIP: FAILED
#include <metal_stdlib>
using namespace metal;
@ -34,7 +32,7 @@ float compute_value_f1_f1_(thread float* const limit, thread float* const thirty
} else {
int const x_136 = i;
float const x_138 = *(thirty_two);
if (((float(x_136) % rint(x_138)) <= 0.01f)) {
if ((fmod(float(x_136), rint(x_138)) <= 0.01f)) {
float const x_144 = result;
result = (x_144 + 100.0f);
}
@ -128,8 +126,3 @@ fragment tint_symbol_2 tint_symbol(float4 gl_FragCoord_param [[position]], const
return tint_symbol_4;
}
T:\tmp\uf2s.0.metal:35:26: error: invalid operands to binary expression ('float' and 'float')
if (((float(x_136) % rint(x_138)) <= 0.01f)) {
~~~~~~~~~~~~ ^ ~~~~~~~~~~~
1 error generated.

View File

@ -138,7 +138,7 @@
%56 = OpLoad %float %thirty_two
%57 = OpConvertSToF %float %54
%58 = OpExtInst %float %59 RoundEven %56
%60 = OpFMod %float %57 %58
%60 = OpFRem %float %57 %58
%62 = OpFOrdLessThanEqual %bool %60 %float_0_00999999978
OpSelectionMerge %63 None
OpBranchConditional %62 %64 %63

View File

@ -33,7 +33,7 @@ float compute_value_f1_f1_(inout float limit, inout float thirty_two) {
} else {
const float x_106 = thirty_two;
x_113_phi = x_91;
if (((float(x_94) % round(x_106)) <= 0.01f)) {
if (((float(x_94) - (round(x_106) * floor((float(x_94) / round(x_106))))) <= 0.01f)) {
x_112 = (x_91 + 100.0f);
x_113_phi = x_112;
}

View File

@ -1,5 +1,3 @@
SKIP: FAILED
#include <metal_stdlib>
using namespace metal;
@ -38,7 +36,7 @@ float compute_value_f1_f1_(thread float* const limit, thread float* const thirty
} else {
float const x_106 = *(thirty_two);
x_113_phi = x_91;
if (((float(x_94) % rint(x_106)) <= 0.01f)) {
if (((float(x_94) - (rint(x_106) * floor((float(x_94) / rint(x_106))))) <= 0.01f)) {
x_112 = (x_91 + 100.0f);
x_113_phi = x_112;
}
@ -119,8 +117,3 @@ fragment tint_symbol_2 tint_symbol(float4 gl_FragCoord_param [[position]], const
return tint_symbol_4;
}
T:\tmp\u26w.0.metal:39:25: error: invalid operands to binary expression ('float' and 'float')
if (((float(x_94) % rint(x_106)) <= 0.01f)) {
~~~~~~~~~~~ ^ ~~~~~~~~~~~
1 error generated.

View File

@ -1,7 +1,7 @@
; SPIR-V
; Version: 1.3
; Generator: Google Tint Compiler; 0
; Bound: 180
; Bound: 185
; Schema: 0
OpCapability Shader
%64 = OpExtInstImport "GLSL.std.450"
@ -79,14 +79,14 @@
%float_0_00999999978 = OpConstant %float 0.00999999978
%float_100 = OpConstant %float 100
%void = OpTypeVoid
%89 = OpTypeFunction %void
%94 = OpTypeFunction %void
%v3float = OpTypeVector %float 3
%_ptr_Function_v3float = OpTypePointer Function %v3float
%96 = OpConstantNull %v3float
%101 = OpConstantNull %v3float
%float_7 = OpConstant %float 7
%float_8 = OpConstant %float 8
%float_9 = OpConstant %float 9
%105 = OpConstantComposite %v3float %float_7 %float_8 %float_9
%110 = OpConstantComposite %v3float %float_7 %float_8 %float_9
%uint = OpTypeInt 32 0
%uint_0 = OpConstant %uint 0
%_ptr_Uniform_float = OpTypePointer Uniform %float
@ -97,7 +97,7 @@
%int_3 = OpConstant %int 3
%float_1 = OpConstant %float 1
%main_out = OpTypeStruct %v4float
%167 = OpTypeFunction %void %main_out
%172 = OpTypeFunction %void %main_out
%compute_value_f1_f1_ = OpFunction %float None %15
%limit = OpFunctionParameter %_ptr_Function_float
%thirty_two = OpFunctionParameter %_ptr_Function_float
@ -147,145 +147,150 @@
OpStore %x_113_phi %61
%62 = OpConvertSToF %float %39
%63 = OpExtInst %float %64 RoundEven %60
%65 = OpFMod %float %62 %63
%67 = OpFOrdLessThanEqual %bool %65 %float_0_00999999978
OpSelectionMerge %68 None
OpBranchConditional %67 %69 %68
%69 = OpLabel
%70 = OpLoad %float %x_91
%72 = OpFAdd %float %70 %float_100
OpStore %x_112 %72
%73 = OpLoad %float %x_112
OpStore %x_113_phi %73
OpBranch %68
%68 = OpLabel
%74 = OpLoad %float %x_113_phi
OpStore %x_113 %74
%75 = OpLoad %float %x_113
OpStore %x_92_phi %75
%66 = OpConvertSToF %float %39
%67 = OpExtInst %float %64 RoundEven %60
%68 = OpFDiv %float %66 %67
%65 = OpExtInst %float %64 Floor %68
%69 = OpFMul %float %63 %65
%70 = OpFSub %float %62 %69
%72 = OpFOrdLessThanEqual %bool %70 %float_0_00999999978
OpSelectionMerge %73 None
OpBranchConditional %72 %74 %73
%74 = OpLabel
%75 = OpLoad %float %x_91
%77 = OpFAdd %float %75 %float_100
OpStore %x_112 %77
%78 = OpLoad %float %x_112
OpStore %x_113_phi %78
OpBranch %73
%73 = OpLabel
%79 = OpLoad %float %x_113_phi
OpStore %x_113 %79
%80 = OpLoad %float %x_113
OpStore %x_92_phi %80
OpBranch %52
%52 = OpLabel
%77 = OpLoad %float %x_92_phi
OpStore %x_92 %77
%79 = OpLoad %float %limit
%80 = OpConvertSToF %float %39
%81 = OpFOrdGreaterThanEqual %bool %80 %79
OpSelectionMerge %82 None
OpBranchConditional %81 %83 %82
%83 = OpLabel
%84 = OpLoad %float %x_92
OpReturnValue %84
%82 = OpLabel
%82 = OpLoad %float %x_92_phi
OpStore %x_92 %82
%84 = OpLoad %float %limit
%85 = OpConvertSToF %float %39
%86 = OpFOrdGreaterThanEqual %bool %85 %84
OpSelectionMerge %87 None
OpBranchConditional %86 %88 %87
%88 = OpLabel
%89 = OpLoad %float %x_92
OpReturnValue %89
%87 = OpLabel
OpBranch %32
%32 = OpLabel
%85 = OpIAdd %int %39 %int_1
OpStore %x_95 %85
%86 = OpLoad %float %x_92
OpStore %x_91_phi %86
%87 = OpLoad %int %x_95
OpStore %x_94_phi %87
%90 = OpIAdd %int %39 %int_1
OpStore %x_95 %90
%91 = OpLoad %float %x_92
OpStore %x_91_phi %91
%92 = OpLoad %int %x_95
OpStore %x_94_phi %92
OpBranch %30
%31 = OpLabel
%88 = OpLoad %float %x_91
OpReturnValue %88
%93 = OpLoad %float %x_91
OpReturnValue %93
OpFunctionEnd
%main_1 = OpFunction %void None %89
%92 = OpLabel
%c = OpVariable %_ptr_Function_v3float Function %96
%main_1 = OpFunction %void None %94
%97 = OpLabel
%c = OpVariable %_ptr_Function_v3float Function %101
%param = OpVariable %_ptr_Function_float Function %22
%param_1 = OpVariable %_ptr_Function_float Function %22
%param_2 = OpVariable %_ptr_Function_float Function %22
%param_3 = OpVariable %_ptr_Function_float Function %22
%x_68_phi = OpVariable %_ptr_Function_int Function %27
%x_69 = OpVariable %_ptr_Function_int Function %27
OpStore %c %105
%109 = OpAccessChain %_ptr_Uniform_float %x_10 %uint_0 %uint_0
%110 = OpLoad %float %109
%113 = OpFMul %float %110 %float_0_125
%111 = OpExtInst %float %64 RoundEven %113
%115 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_0
%116 = OpLoad %float %115
OpStore %param %116
OpStore %param_1 %111
%117 = OpFunctionCall %float %compute_value_f1_f1_ %param %param_1
%120 = OpAccessChain %_ptr_Function_float %c %uint_0
OpStore %120 %117
%122 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1
%123 = OpLoad %float %122
OpStore %param_2 %123
OpStore %param_3 %111
%124 = OpFunctionCall %float %compute_value_f1_f1_ %param_2 %param_3
%127 = OpAccessChain %_ptr_Function_float %c %uint_1
OpStore %127 %124
%128 = OpAccessChain %_ptr_Function_float %c %uint_0
%129 = OpLoad %float %128
%130 = OpAccessChain %_ptr_Function_float %c %uint_1
%131 = OpLoad %float %130
%133 = OpAccessChain %_ptr_Function_float %c %uint_2
%134 = OpFAdd %float %129 %131
OpStore %133 %134
OpStore %c %110
%114 = OpAccessChain %_ptr_Uniform_float %x_10 %uint_0 %uint_0
%115 = OpLoad %float %114
%118 = OpFMul %float %115 %float_0_125
%116 = OpExtInst %float %64 RoundEven %118
%120 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_0
%121 = OpLoad %float %120
OpStore %param %121
OpStore %param_1 %116
%122 = OpFunctionCall %float %compute_value_f1_f1_ %param %param_1
%125 = OpAccessChain %_ptr_Function_float %c %uint_0
OpStore %125 %122
%127 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1
%128 = OpLoad %float %127
OpStore %param_2 %128
OpStore %param_3 %116
%129 = OpFunctionCall %float %compute_value_f1_f1_ %param_2 %param_3
%132 = OpAccessChain %_ptr_Function_float %c %uint_1
OpStore %132 %129
%133 = OpAccessChain %_ptr_Function_float %c %uint_0
%134 = OpLoad %float %133
%135 = OpAccessChain %_ptr_Function_float %c %uint_1
%136 = OpLoad %float %135
%138 = OpAccessChain %_ptr_Function_float %c %uint_2
%139 = OpFAdd %float %134 %136
OpStore %138 %139
OpStore %x_68_phi %int_0
OpBranch %135
%135 = OpLabel
OpLoopMerge %136 %137 None
OpBranch %138
%138 = OpLabel
%140 = OpLoad %int %x_68_phi
%142 = OpSLessThan %bool %140 %int_3
OpSelectionMerge %143 None
OpBranchConditional %142 %144 %145
%144 = OpLabel
OpBranch %140
%140 = OpLabel
OpLoopMerge %141 %142 None
OpBranch %143
%145 = OpLabel
OpBranch %136
%143 = OpLabel
%146 = OpAccessChain %_ptr_Function_float %c %140
%147 = OpLoad %float %146
%149 = OpFOrdGreaterThanEqual %bool %147 %float_1
OpSelectionMerge %150 None
OpBranchConditional %149 %151 %150
%151 = OpLabel
%152 = OpAccessChain %_ptr_Function_float %c %140
%153 = OpLoad %float %152
%154 = OpAccessChain %_ptr_Function_float %c %140
%155 = OpLoad %float %154
%156 = OpAccessChain %_ptr_Function_float %c %140
%157 = OpFMul %float %153 %155
OpStore %156 %157
OpBranch %150
%145 = OpLoad %int %x_68_phi
%147 = OpSLessThan %bool %145 %int_3
OpSelectionMerge %148 None
OpBranchConditional %147 %149 %150
%149 = OpLabel
OpBranch %148
%150 = OpLabel
OpBranch %137
%137 = OpLabel
%158 = OpIAdd %int %140 %int_1
OpStore %x_69 %158
%159 = OpLoad %int %x_69
OpStore %x_68_phi %159
OpBranch %135
%136 = OpLabel
%160 = OpLoad %v3float %c
%162 = OpExtInst %v3float %64 FAbs %160
%161 = OpExtInst %v3float %64 Normalize %162
%163 = OpCompositeExtract %float %161 0
%164 = OpCompositeExtract %float %161 1
%165 = OpCompositeExtract %float %161 2
%166 = OpCompositeConstruct %v4float %163 %164 %165 %float_1
OpStore %x_GLF_color %166
OpBranch %141
%148 = OpLabel
%151 = OpAccessChain %_ptr_Function_float %c %145
%152 = OpLoad %float %151
%154 = OpFOrdGreaterThanEqual %bool %152 %float_1
OpSelectionMerge %155 None
OpBranchConditional %154 %156 %155
%156 = OpLabel
%157 = OpAccessChain %_ptr_Function_float %c %145
%158 = OpLoad %float %157
%159 = OpAccessChain %_ptr_Function_float %c %145
%160 = OpLoad %float %159
%161 = OpAccessChain %_ptr_Function_float %c %145
%162 = OpFMul %float %158 %160
OpStore %161 %162
OpBranch %155
%155 = OpLabel
OpBranch %142
%142 = OpLabel
%163 = OpIAdd %int %145 %int_1
OpStore %x_69 %163
%164 = OpLoad %int %x_69
OpStore %x_68_phi %164
OpBranch %140
%141 = OpLabel
%165 = OpLoad %v3float %c
%167 = OpExtInst %v3float %64 FAbs %165
%166 = OpExtInst %v3float %64 Normalize %167
%168 = OpCompositeExtract %float %166 0
%169 = OpCompositeExtract %float %166 1
%170 = OpCompositeExtract %float %166 2
%171 = OpCompositeConstruct %v4float %168 %169 %170 %float_1
OpStore %x_GLF_color %171
OpReturn
OpFunctionEnd
%tint_symbol_3 = OpFunction %void None %167
%tint_symbol_3 = OpFunction %void None %172
%tint_symbol_1 = OpFunctionParameter %main_out
%171 = OpLabel
%172 = OpCompositeExtract %v4float %tint_symbol_1 0
OpStore %tint_symbol_2 %172
%176 = OpLabel
%177 = OpCompositeExtract %v4float %tint_symbol_1 0
OpStore %tint_symbol_2 %177
OpReturn
OpFunctionEnd
%main = OpFunction %void None %89
%174 = OpLabel
%175 = OpLoad %v4float %tint_symbol
OpStore %gl_FragCoord %175
%176 = OpFunctionCall %void %main_1
%178 = OpLoad %v4float %x_GLF_color
%179 = OpCompositeConstruct %main_out %178
%177 = OpFunctionCall %void %tint_symbol_3 %179
%main = OpFunction %void None %94
%179 = OpLabel
%180 = OpLoad %v4float %tint_symbol
OpStore %gl_FragCoord %180
%181 = OpFunctionCall %void %main_1
%183 = OpLoad %v4float %x_GLF_color
%184 = OpCompositeConstruct %main_out %183
%182 = OpFunctionCall %void %tint_symbol_3 %184
OpReturn
OpFunctionEnd

View File

@ -34,7 +34,7 @@ fn compute_value_f1_f1_(limit : ptr<function, f32>, thirty_two : ptr<function, f
} else {
let x_106 : f32 = *(thirty_two);
x_113_phi = x_91;
if (((f32(x_94) % round(x_106)) <= 0.01)) {
if (((f32(x_94) - (round(x_106) * floor((f32(x_94) / round(x_106))))) <= 0.01)) {
x_112 = (x_91 + 100.0);
x_113_phi = x_112;
}

View File

@ -1,5 +1,3 @@
SKIP: FAILED
#include <metal_stdlib>
using namespace metal;
@ -38,7 +36,7 @@ float compute_value_f1_f1_(thread float* const limit, thread float* const thirty
} else {
float const x_106 = *(thirty_two);
x_113_phi = x_91;
if (((float(x_94) % rint(x_106)) <= 0.01f)) {
if ((fmod(float(x_94), rint(x_106)) <= 0.01f)) {
x_112 = (x_91 + 100.0f);
x_113_phi = x_112;
}
@ -119,8 +117,3 @@ fragment tint_symbol_2 tint_symbol(float4 gl_FragCoord_param [[position]], const
return tint_symbol_4;
}
T:\tmp\u8cs.0.metal:39:25: error: invalid operands to binary expression ('float' and 'float')
if (((float(x_94) % rint(x_106)) <= 0.01f)) {
~~~~~~~~~~~ ^ ~~~~~~~~~~~
1 error generated.

View File

@ -147,7 +147,7 @@
OpStore %x_113_phi %61
%62 = OpConvertSToF %float %39
%63 = OpExtInst %float %64 RoundEven %60
%65 = OpFMod %float %62 %63
%65 = OpFRem %float %62 %63
%67 = OpFOrdLessThanEqual %bool %65 %float_0_00999999978
OpSelectionMerge %68 None
OpBranchConditional %67 %69 %68

View File

@ -36,7 +36,7 @@ float compute_value_f1_f1_(inout float limit, inout float thirty_two) {
} else {
const float x_118 = thirty_two;
x_125_phi = x_104;
if (((float(x_107) % round(x_118)) <= 0.01f)) {
if (((float(x_107) - (round(x_118) * floor((float(x_107) / round(x_118))))) <= 0.01f)) {
x_124 = (x_104 + 100.0f);
x_125_phi = x_124;
}

View File

@ -1,5 +1,3 @@
SKIP: FAILED
#include <metal_stdlib>
using namespace metal;
@ -41,7 +39,7 @@ float compute_value_f1_f1_(thread float* const limit, thread float* const thirty
} else {
float const x_118 = *(thirty_two);
x_125_phi = x_104;
if (((float(x_107) % rint(x_118)) <= 0.01f)) {
if (((float(x_107) - (rint(x_118) * floor((float(x_107) / rint(x_118))))) <= 0.01f)) {
x_124 = (x_104 + 100.0f);
x_125_phi = x_124;
}
@ -130,8 +128,3 @@ fragment tint_symbol_2 tint_symbol(float4 gl_FragCoord_param [[position]], const
return tint_symbol_4;
}
T:\tmp\ufno.0.metal:42:26: error: invalid operands to binary expression ('float' and 'float')
if (((float(x_107) % rint(x_118)) <= 0.01f)) {
~~~~~~~~~~~~ ^ ~~~~~~~~~~~
1 error generated.

View File

@ -1,7 +1,7 @@
; SPIR-V
; Version: 1.3
; Generator: Google Tint Compiler; 0
; Bound: 192
; Bound: 197
; Schema: 0
OpCapability Shader
%67 = OpExtInstImport "GLSL.std.450"
@ -91,14 +91,14 @@
%float_0_00999999978 = OpConstant %float 0.00999999978
%float_100 = OpConstant %float 100
%void = OpTypeVoid
%92 = OpTypeFunction %void
%97 = OpTypeFunction %void
%v3float = OpTypeVector %float 3
%_ptr_Function_v3float = OpTypePointer Function %v3float
%99 = OpConstantNull %v3float
%104 = OpConstantNull %v3float
%float_7 = OpConstant %float 7
%float_8 = OpConstant %float 8
%float_9 = OpConstant %float 9
%109 = OpConstantComposite %v3float %float_7 %float_8 %float_9
%114 = OpConstantComposite %v3float %float_7 %float_8 %float_9
%uint = OpTypeInt 32 0
%uint_0 = OpConstant %uint 0
%_ptr_Uniform_float = OpTypePointer Uniform %float
@ -109,7 +109,7 @@
%int_3 = OpConstant %int 3
%float_1 = OpConstant %float 1
%main_out = OpTypeStruct %v4float
%179 = OpTypeFunction %void %main_out
%184 = OpTypeFunction %void %main_out
%compute_value_f1_f1_ = OpFunction %float None %18
%limit = OpFunctionParameter %_ptr_Function_float
%thirty_two = OpFunctionParameter %_ptr_Function_float
@ -159,158 +159,163 @@
OpStore %x_125_phi %64
%65 = OpConvertSToF %float %42
%66 = OpExtInst %float %67 RoundEven %63
%68 = OpFMod %float %65 %66
%70 = OpFOrdLessThanEqual %bool %68 %float_0_00999999978
OpSelectionMerge %71 None
OpBranchConditional %70 %72 %71
%72 = OpLabel
%73 = OpLoad %float %x_104
%75 = OpFAdd %float %73 %float_100
OpStore %x_124 %75
%76 = OpLoad %float %x_124
OpStore %x_125_phi %76
OpBranch %71
%71 = OpLabel
%77 = OpLoad %float %x_125_phi
OpStore %x_125 %77
%78 = OpLoad %float %x_125
OpStore %x_105_phi %78
%69 = OpConvertSToF %float %42
%70 = OpExtInst %float %67 RoundEven %63
%71 = OpFDiv %float %69 %70
%68 = OpExtInst %float %67 Floor %71
%72 = OpFMul %float %66 %68
%73 = OpFSub %float %65 %72
%75 = OpFOrdLessThanEqual %bool %73 %float_0_00999999978
OpSelectionMerge %76 None
OpBranchConditional %75 %77 %76
%77 = OpLabel
%78 = OpLoad %float %x_104
%80 = OpFAdd %float %78 %float_100
OpStore %x_124 %80
%81 = OpLoad %float %x_124
OpStore %x_125_phi %81
OpBranch %76
%76 = OpLabel
%82 = OpLoad %float %x_125_phi
OpStore %x_125 %82
%83 = OpLoad %float %x_125
OpStore %x_105_phi %83
OpBranch %55
%55 = OpLabel
%80 = OpLoad %float %x_105_phi
OpStore %x_105 %80
%82 = OpLoad %float %limit
%83 = OpConvertSToF %float %42
%84 = OpFOrdGreaterThanEqual %bool %83 %82
OpSelectionMerge %85 None
OpBranchConditional %84 %86 %85
%86 = OpLabel
%87 = OpLoad %float %x_105
OpReturnValue %87
%85 = OpLabel
%85 = OpLoad %float %x_105_phi
OpStore %x_105 %85
%87 = OpLoad %float %limit
%88 = OpConvertSToF %float %42
%89 = OpFOrdGreaterThanEqual %bool %88 %87
OpSelectionMerge %90 None
OpBranchConditional %89 %91 %90
%91 = OpLabel
%92 = OpLoad %float %x_105
OpReturnValue %92
%90 = OpLabel
OpBranch %35
%35 = OpLabel
%88 = OpIAdd %int %42 %int_1
OpStore %x_108 %88
%89 = OpLoad %float %x_105
OpStore %x_104_phi %89
%90 = OpLoad %int %x_108
OpStore %x_107_phi %90
%93 = OpIAdd %int %42 %int_1
OpStore %x_108 %93
%94 = OpLoad %float %x_105
OpStore %x_104_phi %94
%95 = OpLoad %int %x_108
OpStore %x_107_phi %95
OpBranch %33
%34 = OpLabel
%91 = OpLoad %float %x_104
OpReturnValue %91
%96 = OpLoad %float %x_104
OpReturnValue %96
OpFunctionEnd
%main_1 = OpFunction %void None %92
%95 = OpLabel
%c = OpVariable %_ptr_Function_v3float Function %99
%main_1 = OpFunction %void None %97
%100 = OpLabel
%c = OpVariable %_ptr_Function_v3float Function %104
%param = OpVariable %_ptr_Function_float Function %25
%param_1 = OpVariable %_ptr_Function_float Function %25
%param_2 = OpVariable %_ptr_Function_float Function %25
%param_3 = OpVariable %_ptr_Function_float Function %25
%x_54 = OpVariable %_ptr_Function_v3float Function %99
%x_54 = OpVariable %_ptr_Function_v3float Function %104
%x_74_phi = OpVariable %_ptr_Function_int Function %30
%x_75 = OpVariable %_ptr_Function_int Function %30
OpStore %c %109
%113 = OpAccessChain %_ptr_Uniform_float %x_10 %uint_0 %uint_0
%114 = OpLoad %float %113
%117 = OpFMul %float %114 %float_0_125
%115 = OpExtInst %float %67 RoundEven %117
%119 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_0
%120 = OpLoad %float %119
OpStore %param %120
OpStore %param_1 %115
%121 = OpFunctionCall %float %compute_value_f1_f1_ %param %param_1
%124 = OpAccessChain %_ptr_Function_float %c %uint_0
OpStore %124 %121
%126 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1
%127 = OpLoad %float %126
OpStore %param_2 %127
OpStore %param_3 %115
%128 = OpFunctionCall %float %compute_value_f1_f1_ %param_2 %param_3
%131 = OpAccessChain %_ptr_Function_float %c %uint_1
OpStore %131 %128
%132 = OpAccessChain %_ptr_Function_float %c %uint_0
%133 = OpLoad %float %132
%134 = OpLoad %v3float %c
OpStore %x_54 %134
%135 = OpAccessChain %_ptr_Function_float %x_54 %uint_1
%136 = OpLoad %float %135
%138 = OpAccessChain %_ptr_Function_float %c %uint_2
%139 = OpFAdd %float %133 %136
OpStore %138 %139
OpStore %c %114
%118 = OpAccessChain %_ptr_Uniform_float %x_10 %uint_0 %uint_0
%119 = OpLoad %float %118
%122 = OpFMul %float %119 %float_0_125
%120 = OpExtInst %float %67 RoundEven %122
%124 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_0
%125 = OpLoad %float %124
OpStore %param %125
OpStore %param_1 %120
%126 = OpFunctionCall %float %compute_value_f1_f1_ %param %param_1
%129 = OpAccessChain %_ptr_Function_float %c %uint_0
OpStore %129 %126
%131 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1
%132 = OpLoad %float %131
OpStore %param_2 %132
OpStore %param_3 %120
%133 = OpFunctionCall %float %compute_value_f1_f1_ %param_2 %param_3
%136 = OpAccessChain %_ptr_Function_float %c %uint_1
OpStore %136 %133
%137 = OpAccessChain %_ptr_Function_float %c %uint_0
%138 = OpLoad %float %137
%139 = OpLoad %v3float %c
OpStore %x_54 %139
%140 = OpAccessChain %_ptr_Function_float %x_54 %uint_1
%141 = OpLoad %float %140
%143 = OpAccessChain %_ptr_Function_float %c %uint_2
%144 = OpFAdd %float %138 %141
OpStore %143 %144
OpStore %x_74_phi %int_0
OpBranch %140
%140 = OpLabel
OpLoopMerge %141 %142 None
OpBranch %143
%143 = OpLabel
%145 = OpLoad %int %x_74_phi
%147 = OpSLessThan %bool %145 %int_3
OpSelectionMerge %148 None
OpBranchConditional %147 %149 %150
%149 = OpLabel
OpBranch %145
%145 = OpLabel
OpLoopMerge %146 %147 None
OpBranch %148
%150 = OpLabel
OpBranch %141
%148 = OpLabel
%151 = OpAccessChain %_ptr_Function_float %c %145
%152 = OpLoad %float %151
%154 = OpFOrdGreaterThanEqual %bool %152 %float_1
OpSelectionMerge %155 None
OpBranchConditional %154 %156 %155
%156 = OpLabel
%157 = OpAccessChain %_ptr_Uniform_float %x_16 %uint_0 %uint_0
%158 = OpLoad %float %157
%159 = OpAccessChain %_ptr_Uniform_float %x_16 %uint_0 %uint_1
%160 = OpLoad %float %159
%161 = OpFOrdGreaterThan %bool %158 %160
OpSelectionMerge %162 None
OpBranchConditional %161 %163 %162
%163 = OpLabel
OpKill
%162 = OpLabel
%164 = OpAccessChain %_ptr_Function_float %c %145
%165 = OpLoad %float %164
%166 = OpAccessChain %_ptr_Function_float %c %145
%167 = OpLoad %float %166
%168 = OpAccessChain %_ptr_Function_float %c %145
%169 = OpFMul %float %165 %167
OpStore %168 %169
OpBranch %155
%150 = OpLoad %int %x_74_phi
%152 = OpSLessThan %bool %150 %int_3
OpSelectionMerge %153 None
OpBranchConditional %152 %154 %155
%154 = OpLabel
OpBranch %153
%155 = OpLabel
OpBranch %142
%142 = OpLabel
%170 = OpIAdd %int %145 %int_1
OpStore %x_75 %170
%171 = OpLoad %int %x_75
OpStore %x_74_phi %171
OpBranch %140
%141 = OpLabel
%172 = OpLoad %v3float %c
%174 = OpExtInst %v3float %67 FAbs %172
%173 = OpExtInst %v3float %67 Normalize %174
%175 = OpCompositeExtract %float %173 0
%176 = OpCompositeExtract %float %173 1
%177 = OpCompositeExtract %float %173 2
%178 = OpCompositeConstruct %v4float %175 %176 %177 %float_1
OpStore %x_GLF_color %178
OpBranch %146
%153 = OpLabel
%156 = OpAccessChain %_ptr_Function_float %c %150
%157 = OpLoad %float %156
%159 = OpFOrdGreaterThanEqual %bool %157 %float_1
OpSelectionMerge %160 None
OpBranchConditional %159 %161 %160
%161 = OpLabel
%162 = OpAccessChain %_ptr_Uniform_float %x_16 %uint_0 %uint_0
%163 = OpLoad %float %162
%164 = OpAccessChain %_ptr_Uniform_float %x_16 %uint_0 %uint_1
%165 = OpLoad %float %164
%166 = OpFOrdGreaterThan %bool %163 %165
OpSelectionMerge %167 None
OpBranchConditional %166 %168 %167
%168 = OpLabel
OpKill
%167 = OpLabel
%169 = OpAccessChain %_ptr_Function_float %c %150
%170 = OpLoad %float %169
%171 = OpAccessChain %_ptr_Function_float %c %150
%172 = OpLoad %float %171
%173 = OpAccessChain %_ptr_Function_float %c %150
%174 = OpFMul %float %170 %172
OpStore %173 %174
OpBranch %160
%160 = OpLabel
OpBranch %147
%147 = OpLabel
%175 = OpIAdd %int %150 %int_1
OpStore %x_75 %175
%176 = OpLoad %int %x_75
OpStore %x_74_phi %176
OpBranch %145
%146 = OpLabel
%177 = OpLoad %v3float %c
%179 = OpExtInst %v3float %67 FAbs %177
%178 = OpExtInst %v3float %67 Normalize %179
%180 = OpCompositeExtract %float %178 0
%181 = OpCompositeExtract %float %178 1
%182 = OpCompositeExtract %float %178 2
%183 = OpCompositeConstruct %v4float %180 %181 %182 %float_1
OpStore %x_GLF_color %183
OpReturn
OpFunctionEnd
%tint_symbol_3 = OpFunction %void None %179
%tint_symbol_3 = OpFunction %void None %184
%tint_symbol_1 = OpFunctionParameter %main_out
%183 = OpLabel
%184 = OpCompositeExtract %v4float %tint_symbol_1 0
OpStore %tint_symbol_2 %184
%188 = OpLabel
%189 = OpCompositeExtract %v4float %tint_symbol_1 0
OpStore %tint_symbol_2 %189
OpReturn
OpFunctionEnd
%main = OpFunction %void None %92
%186 = OpLabel
%187 = OpLoad %v4float %tint_symbol
OpStore %gl_FragCoord %187
%188 = OpFunctionCall %void %main_1
%190 = OpLoad %v4float %x_GLF_color
%191 = OpCompositeConstruct %main_out %190
%189 = OpFunctionCall %void %tint_symbol_3 %191
%main = OpFunction %void None %97
%191 = OpLabel
%192 = OpLoad %v4float %tint_symbol
OpStore %gl_FragCoord %192
%193 = OpFunctionCall %void %main_1
%195 = OpLoad %v4float %x_GLF_color
%196 = OpCompositeConstruct %main_out %195
%194 = OpFunctionCall %void %tint_symbol_3 %196
OpReturn
OpFunctionEnd

View File

@ -41,7 +41,7 @@ fn compute_value_f1_f1_(limit : ptr<function, f32>, thirty_two : ptr<function, f
} else {
let x_118 : f32 = *(thirty_two);
x_125_phi = x_104;
if (((f32(x_107) % round(x_118)) <= 0.01)) {
if (((f32(x_107) - (round(x_118) * floor((f32(x_107) / round(x_118))))) <= 0.01)) {
x_124 = (x_104 + 100.0);
x_125_phi = x_124;
}

View File

@ -1,5 +1,3 @@
SKIP: FAILED
#include <metal_stdlib>
using namespace metal;
@ -41,7 +39,7 @@ float compute_value_f1_f1_(thread float* const limit, thread float* const thirty
} else {
float const x_118 = *(thirty_two);
x_125_phi = x_104;
if (((float(x_107) % rint(x_118)) <= 0.01f)) {
if ((fmod(float(x_107), rint(x_118)) <= 0.01f)) {
x_124 = (x_104 + 100.0f);
x_125_phi = x_124;
}
@ -130,8 +128,3 @@ fragment tint_symbol_2 tint_symbol(float4 gl_FragCoord_param [[position]], const
return tint_symbol_4;
}
T:\tmp\uq0.0.metal:42:26: error: invalid operands to binary expression ('float' and 'float')
if (((float(x_107) % rint(x_118)) <= 0.01f)) {
~~~~~~~~~~~~ ^ ~~~~~~~~~~~
1 error generated.

View File

@ -159,7 +159,7 @@
OpStore %x_125_phi %64
%65 = OpConvertSToF %float %42
%66 = OpExtInst %float %67 RoundEven %63
%68 = OpFMod %float %65 %66
%68 = OpFRem %float %65 %66
%70 = OpFOrdLessThanEqual %bool %68 %float_0_00999999978
OpSelectionMerge %71 None
OpBranchConditional %70 %72 %71

View File

@ -23,7 +23,7 @@ float compute_value_f1_f1_(inout float limit, inout float thirty_two) {
} else {
const int x_155 = i;
const float x_157 = thirty_two;
if (((float(x_155) % round(x_157)) <= 0.01f)) {
if (((float(x_155) - (round(x_157) * floor((float(x_155) / round(x_157))))) <= 0.01f)) {
result = (result + 100.0f);
}
}

View File

@ -1,5 +1,3 @@
SKIP: FAILED
#include <metal_stdlib>
using namespace metal;
@ -34,7 +32,7 @@ float compute_value_f1_f1_(thread float* const limit, thread float* const thirty
} else {
int const x_155 = i;
float const x_157 = *(thirty_two);
if (((float(x_155) % rint(x_157)) <= 0.01f)) {
if (((float(x_155) - (rint(x_157) * floor((float(x_155) / rint(x_157))))) <= 0.01f)) {
float const x_163 = result;
result = (x_163 + 100.0f);
}
@ -144,8 +142,3 @@ fragment tint_symbol_2 tint_symbol(float4 gl_FragCoord_param [[position]], const
return tint_symbol_4;
}
T:\tmp\ufhc.0.metal:35:26: error: invalid operands to binary expression ('float' and 'float')
if (((float(x_155) % rint(x_157)) <= 0.01f)) {
~~~~~~~~~~~~ ^ ~~~~~~~~~~~
1 error generated.

View File

@ -1,7 +1,7 @@
; SPIR-V
; Version: 1.3
; Generator: Google Tint Compiler; 0
; Bound: 207
; Bound: 212
; Schema: 0
OpCapability Shader
%59 = OpExtInstImport "GLSL.std.450"
@ -84,14 +84,14 @@
%float_0_00999999978 = OpConstant %float 0.00999999978
%float_100 = OpConstant %float 100
%void = OpTypeVoid
%79 = OpTypeFunction %void
%84 = OpTypeFunction %void
%v3float = OpTypeVector %float 3
%_ptr_Function_v3float = OpTypePointer Function %v3float
%86 = OpConstantNull %v3float
%91 = OpConstantNull %v3float
%float_7 = OpConstant %float 7
%float_8 = OpConstant %float 8
%float_9 = OpConstant %float 9
%98 = OpConstantComposite %v3float %float_7 %float_8 %float_9
%103 = OpConstantComposite %v3float %float_7 %float_8 %float_9
%uint = OpTypeInt 32 0
%uint_0 = OpConstant %uint 0
%_ptr_Uniform_float = OpTypePointer Uniform %float
@ -103,7 +103,7 @@
%float_1 = OpConstant %float 1
%float_0 = OpConstant %float 0
%main_out = OpTypeStruct %v4float
%194 = OpTypeFunction %void %main_out
%199 = OpTypeFunction %void %main_out
%compute_value_f1_f1_ = OpFunction %float None %18
%limit = OpFunctionParameter %_ptr_Function_float
%thirty_two = OpFunctionParameter %_ptr_Function_float
@ -141,191 +141,196 @@
%56 = OpLoad %float %thirty_two
%57 = OpConvertSToF %float %54
%58 = OpExtInst %float %59 RoundEven %56
%60 = OpFMod %float %57 %58
%62 = OpFOrdLessThanEqual %bool %60 %float_0_00999999978
OpSelectionMerge %63 None
OpBranchConditional %62 %64 %63
%64 = OpLabel
%65 = OpLoad %float %result
%67 = OpFAdd %float %65 %float_100
OpStore %result %67
OpBranch %63
%63 = OpLabel
%61 = OpConvertSToF %float %54
%62 = OpExtInst %float %59 RoundEven %56
%63 = OpFDiv %float %61 %62
%60 = OpExtInst %float %59 Floor %63
%64 = OpFMul %float %58 %60
%65 = OpFSub %float %57 %64
%67 = OpFOrdLessThanEqual %bool %65 %float_0_00999999978
OpSelectionMerge %68 None
OpBranchConditional %67 %69 %68
%69 = OpLabel
%70 = OpLoad %float %result
%72 = OpFAdd %float %70 %float_100
OpStore %result %72
OpBranch %68
%68 = OpLabel
OpBranch %48
%48 = OpLabel
%68 = OpLoad %int %i
%70 = OpLoad %float %limit
%71 = OpConvertSToF %float %68
%72 = OpFOrdGreaterThanEqual %bool %71 %70
OpSelectionMerge %73 None
OpBranchConditional %72 %74 %73
%74 = OpLabel
%75 = OpLoad %float %result
OpReturnValue %75
%73 = OpLabel
%73 = OpLoad %int %i
%75 = OpLoad %float %limit
%76 = OpConvertSToF %float %73
%77 = OpFOrdGreaterThanEqual %bool %76 %75
OpSelectionMerge %78 None
OpBranchConditional %77 %79 %78
%79 = OpLabel
%80 = OpLoad %float %result
OpReturnValue %80
%78 = OpLabel
OpBranch %34
%34 = OpLabel
%76 = OpLoad %int %i
%77 = OpIAdd %int %76 %int_1
OpStore %i %77
%81 = OpLoad %int %i
%82 = OpIAdd %int %81 %int_1
OpStore %i %82
OpBranch %32
%33 = OpLabel
%78 = OpLoad %float %result
OpReturnValue %78
%83 = OpLoad %float %result
OpReturnValue %83
OpFunctionEnd
%main_1 = OpFunction %void None %79
%82 = OpLabel
%c = OpVariable %_ptr_Function_v3float Function %86
%main_1 = OpFunction %void None %84
%87 = OpLabel
%c = OpVariable %_ptr_Function_v3float Function %91
%thirty_two_1 = OpVariable %_ptr_Function_float Function %25
%param = OpVariable %_ptr_Function_float Function %25
%param_1 = OpVariable %_ptr_Function_float Function %25
%param_2 = OpVariable %_ptr_Function_float Function %25
%param_3 = OpVariable %_ptr_Function_float Function %25
%x_61 = OpVariable %_ptr_Function_v3float Function %86
%x_61 = OpVariable %_ptr_Function_v3float Function %91
%i_1 = OpVariable %_ptr_Function_int Function %29
%j = OpVariable %_ptr_Function_float Function %25
OpStore %c %98
%102 = OpAccessChain %_ptr_Uniform_float %x_13 %uint_0 %uint_0
%103 = OpLoad %float %102
%105 = OpFDiv %float %103 %float_8
%104 = OpExtInst %float %59 RoundEven %105
OpStore %thirty_two_1 %104
%107 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_0
OpStore %c %103
%107 = OpAccessChain %_ptr_Uniform_float %x_13 %uint_0 %uint_0
%108 = OpLoad %float %107
OpStore %param %108
%109 = OpLoad %float %thirty_two_1
OpStore %param_1 %109
%110 = OpFunctionCall %float %compute_value_f1_f1_ %param %param_1
%113 = OpAccessChain %_ptr_Function_float %c %uint_0
OpStore %113 %110
%115 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1
%116 = OpLoad %float %115
OpStore %param_2 %116
%117 = OpLoad %float %thirty_two_1
OpStore %param_3 %117
%118 = OpFunctionCall %float %compute_value_f1_f1_ %param_2 %param_3
%121 = OpAccessChain %_ptr_Function_float %c %uint_1
OpStore %121 %118
%122 = OpAccessChain %_ptr_Function_float %c %uint_0
%123 = OpLoad %float %122
OpSelectionMerge %125 None
OpBranchConditional %true %126 %127
%126 = OpLabel
%128 = OpLoad %v3float %c
OpStore %x_61 %128
OpBranch %125
%127 = OpLabel
%129 = OpLoad %v3float %c
%130 = OpAccessChain %_ptr_Uniform_float %x_19 %uint_0 %uint_0
%131 = OpLoad %float %130
%132 = OpVectorTimesScalar %v3float %129 %131
OpStore %x_61 %132
OpBranch %125
%125 = OpLabel
%133 = OpAccessChain %_ptr_Function_float %x_61 %uint_1
%134 = OpLoad %float %133
%136 = OpAccessChain %_ptr_Function_float %c %uint_2
%137 = OpFAdd %float %123 %134
OpStore %136 %137
%110 = OpFDiv %float %108 %float_8
%109 = OpExtInst %float %59 RoundEven %110
OpStore %thirty_two_1 %109
%112 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_0
%113 = OpLoad %float %112
OpStore %param %113
%114 = OpLoad %float %thirty_two_1
OpStore %param_1 %114
%115 = OpFunctionCall %float %compute_value_f1_f1_ %param %param_1
%118 = OpAccessChain %_ptr_Function_float %c %uint_0
OpStore %118 %115
%120 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1
%121 = OpLoad %float %120
OpStore %param_2 %121
%122 = OpLoad %float %thirty_two_1
OpStore %param_3 %122
%123 = OpFunctionCall %float %compute_value_f1_f1_ %param_2 %param_3
%126 = OpAccessChain %_ptr_Function_float %c %uint_1
OpStore %126 %123
%127 = OpAccessChain %_ptr_Function_float %c %uint_0
%128 = OpLoad %float %127
OpSelectionMerge %130 None
OpBranchConditional %true %131 %132
%131 = OpLabel
%133 = OpLoad %v3float %c
OpStore %x_61 %133
OpBranch %130
%132 = OpLabel
%134 = OpLoad %v3float %c
%135 = OpAccessChain %_ptr_Uniform_float %x_19 %uint_0 %uint_0
%136 = OpLoad %float %135
%137 = OpVectorTimesScalar %v3float %134 %136
OpStore %x_61 %137
OpBranch %130
%130 = OpLabel
%138 = OpAccessChain %_ptr_Function_float %x_61 %uint_1
%139 = OpLoad %float %138
%141 = OpAccessChain %_ptr_Function_float %c %uint_2
%142 = OpFAdd %float %128 %139
OpStore %141 %142
OpStore %i_1 %int_0
OpBranch %138
%138 = OpLabel
OpLoopMerge %139 %140 None
OpBranch %141
%141 = OpLabel
%142 = OpLoad %int %i_1
%144 = OpSLessThan %bool %142 %int_3
OpSelectionMerge %145 None
OpBranchConditional %144 %146 %147
OpBranch %143
%143 = OpLabel
OpLoopMerge %144 %145 None
OpBranch %146
%146 = OpLabel
OpBranch %145
%147 = OpLabel
OpBranch %139
%145 = OpLabel
%148 = OpLoad %int %i_1
%149 = OpAccessChain %_ptr_Function_float %c %148
%150 = OpLoad %float %149
%152 = OpFOrdGreaterThanEqual %bool %150 %float_1
OpSelectionMerge %153 None
OpBranchConditional %152 %154 %153
%154 = OpLabel
%155 = OpLoad %int %i_1
%156 = OpLoad %int %i_1
%157 = OpAccessChain %_ptr_Function_float %c %156
%158 = OpLoad %float %157
%159 = OpLoad %int %i_1
%160 = OpAccessChain %_ptr_Function_float %c %159
%161 = OpLoad %float %160
%162 = OpAccessChain %_ptr_Function_float %c %155
%163 = OpFMul %float %158 %161
OpStore %162 %163
OpBranch %153
%153 = OpLabel
%147 = OpLoad %int %i_1
%149 = OpSLessThan %bool %147 %int_3
OpSelectionMerge %150 None
OpBranchConditional %149 %151 %152
%151 = OpLabel
OpBranch %150
%152 = OpLabel
OpBranch %144
%150 = OpLabel
%153 = OpLoad %int %i_1
%154 = OpAccessChain %_ptr_Function_float %c %153
%155 = OpLoad %float %154
%157 = OpFOrdGreaterThanEqual %bool %155 %float_1
OpSelectionMerge %158 None
OpBranchConditional %157 %159 %158
%159 = OpLabel
%160 = OpLoad %int %i_1
%161 = OpLoad %int %i_1
%162 = OpAccessChain %_ptr_Function_float %c %161
%163 = OpLoad %float %162
%164 = OpLoad %int %i_1
%165 = OpAccessChain %_ptr_Function_float %c %164
%166 = OpLoad %float %165
%167 = OpAccessChain %_ptr_Function_float %c %160
%168 = OpFMul %float %163 %166
OpStore %167 %168
OpBranch %158
%158 = OpLabel
OpStore %j %float_0
OpBranch %165
%165 = OpLabel
OpLoopMerge %166 %167 None
OpBranch %168
%168 = OpLabel
%169 = OpAccessChain %_ptr_Uniform_float %x_19 %uint_0 %uint_0
%170 = OpLoad %float %169
%171 = OpAccessChain %_ptr_Uniform_float %x_19 %uint_0 %uint_1
%172 = OpLoad %float %171
%173 = OpFOrdGreaterThan %bool %170 %172
OpSelectionMerge %174 None
OpBranchConditional %173 %175 %176
%175 = OpLabel
OpBranch %174
%176 = OpLabel
OpBranch %166
%174 = OpLabel
%177 = OpLoad %float %j
%178 = OpAccessChain %_ptr_Uniform_float %x_19 %uint_0 %uint_0
%179 = OpLoad %float %178
%180 = OpFOrdGreaterThanEqual %bool %177 %179
OpSelectionMerge %181 None
OpBranchConditional %180 %182 %181
%182 = OpLabel
OpBranch %166
OpBranch %170
%170 = OpLabel
OpLoopMerge %171 %172 None
OpBranch %173
%173 = OpLabel
%174 = OpAccessChain %_ptr_Uniform_float %x_19 %uint_0 %uint_0
%175 = OpLoad %float %174
%176 = OpAccessChain %_ptr_Uniform_float %x_19 %uint_0 %uint_1
%177 = OpLoad %float %176
%178 = OpFOrdGreaterThan %bool %175 %177
OpSelectionMerge %179 None
OpBranchConditional %178 %180 %181
%180 = OpLabel
OpBranch %179
%181 = OpLabel
%183 = OpLoad %float %j
%184 = OpFAdd %float %183 %float_1
OpStore %j %184
OpBranch %167
%167 = OpLabel
OpBranch %165
%166 = OpLabel
OpBranch %140
%140 = OpLabel
%185 = OpLoad %int %i_1
%186 = OpIAdd %int %185 %int_1
OpStore %i_1 %186
OpBranch %138
%139 = OpLabel
%187 = OpLoad %v3float %c
%189 = OpExtInst %v3float %59 FAbs %187
%188 = OpExtInst %v3float %59 Normalize %189
%190 = OpCompositeExtract %float %188 0
%191 = OpCompositeExtract %float %188 1
%192 = OpCompositeExtract %float %188 2
%193 = OpCompositeConstruct %v4float %190 %191 %192 %float_1
OpStore %x_GLF_color %193
OpBranch %171
%179 = OpLabel
%182 = OpLoad %float %j
%183 = OpAccessChain %_ptr_Uniform_float %x_19 %uint_0 %uint_0
%184 = OpLoad %float %183
%185 = OpFOrdGreaterThanEqual %bool %182 %184
OpSelectionMerge %186 None
OpBranchConditional %185 %187 %186
%187 = OpLabel
OpBranch %171
%186 = OpLabel
%188 = OpLoad %float %j
%189 = OpFAdd %float %188 %float_1
OpStore %j %189
OpBranch %172
%172 = OpLabel
OpBranch %170
%171 = OpLabel
OpBranch %145
%145 = OpLabel
%190 = OpLoad %int %i_1
%191 = OpIAdd %int %190 %int_1
OpStore %i_1 %191
OpBranch %143
%144 = OpLabel
%192 = OpLoad %v3float %c
%194 = OpExtInst %v3float %59 FAbs %192
%193 = OpExtInst %v3float %59 Normalize %194
%195 = OpCompositeExtract %float %193 0
%196 = OpCompositeExtract %float %193 1
%197 = OpCompositeExtract %float %193 2
%198 = OpCompositeConstruct %v4float %195 %196 %197 %float_1
OpStore %x_GLF_color %198
OpReturn
OpFunctionEnd
%tint_symbol_3 = OpFunction %void None %194
%tint_symbol_3 = OpFunction %void None %199
%tint_symbol_1 = OpFunctionParameter %main_out
%198 = OpLabel
%199 = OpCompositeExtract %v4float %tint_symbol_1 0
OpStore %tint_symbol_2 %199
%203 = OpLabel
%204 = OpCompositeExtract %v4float %tint_symbol_1 0
OpStore %tint_symbol_2 %204
OpReturn
OpFunctionEnd
%main = OpFunction %void None %79
%201 = OpLabel
%202 = OpLoad %v4float %tint_symbol
OpStore %gl_FragCoord %202
%203 = OpFunctionCall %void %main_1
%205 = OpLoad %v4float %x_GLF_color
%206 = OpCompositeConstruct %main_out %205
%204 = OpFunctionCall %void %tint_symbol_3 %206
%main = OpFunction %void None %84
%206 = OpLabel
%207 = OpLoad %v4float %tint_symbol
OpStore %gl_FragCoord %207
%208 = OpFunctionCall %void %main_1
%210 = OpLoad %v4float %x_GLF_color
%211 = OpCompositeConstruct %main_out %210
%209 = OpFunctionCall %void %tint_symbol_3 %211
OpReturn
OpFunctionEnd

View File

@ -34,7 +34,7 @@ fn compute_value_f1_f1_(limit : ptr<function, f32>, thirty_two : ptr<function, f
} else {
let x_155 : i32 = i;
let x_157 : f32 = *(thirty_two);
if (((f32(x_155) % round(x_157)) <= 0.01)) {
if (((f32(x_155) - (round(x_157) * floor((f32(x_155) / round(x_157))))) <= 0.01)) {
let x_163 : f32 = result;
result = (x_163 + 100.0);
}

View File

@ -1,5 +1,3 @@
SKIP: FAILED
#include <metal_stdlib>
using namespace metal;
@ -34,7 +32,7 @@ float compute_value_f1_f1_(thread float* const limit, thread float* const thirty
} else {
int const x_155 = i;
float const x_157 = *(thirty_two);
if (((float(x_155) % rint(x_157)) <= 0.01f)) {
if ((fmod(float(x_155), rint(x_157)) <= 0.01f)) {
float const x_163 = result;
result = (x_163 + 100.0f);
}
@ -144,8 +142,3 @@ fragment tint_symbol_2 tint_symbol(float4 gl_FragCoord_param [[position]], const
return tint_symbol_4;
}
T:\tmp\u7k8.0.metal:35:26: error: invalid operands to binary expression ('float' and 'float')
if (((float(x_155) % rint(x_157)) <= 0.01f)) {
~~~~~~~~~~~~ ^ ~~~~~~~~~~~
1 error generated.

View File

@ -141,7 +141,7 @@
%56 = OpLoad %float %thirty_two
%57 = OpConvertSToF %float %54
%58 = OpExtInst %float %59 RoundEven %56
%60 = OpFMod %float %57 %58
%60 = OpFRem %float %57 %58
%62 = OpFOrdLessThanEqual %bool %60 %float_0_00999999978
OpSelectionMerge %63 None
OpBranchConditional %62 %64 %63

View File

@ -20,7 +20,7 @@ float compute_value_f1_f1_(inout float limit, inout float thirty_two) {
} else {
const int x_147 = i;
const float x_149 = thirty_two;
if (((float(x_147) % round(x_149)) <= 0.01f)) {
if (((float(x_147) - (round(x_149) * floor((float(x_147) / round(x_149))))) <= 0.01f)) {
result = (result + 100.0f);
}
}

View File

@ -1,5 +1,3 @@
SKIP: FAILED
#include <metal_stdlib>
using namespace metal;
@ -31,7 +29,7 @@ float compute_value_f1_f1_(thread float* const limit, thread float* const thirty
} else {
int const x_147 = i;
float const x_149 = *(thirty_two);
if (((float(x_147) % rint(x_149)) <= 0.01f)) {
if (((float(x_147) - (rint(x_149) * floor((float(x_147) / rint(x_149))))) <= 0.01f)) {
float const x_155 = result;
result = (x_155 + 100.0f);
}
@ -120,8 +118,3 @@ fragment tint_symbol_2 tint_symbol(float4 gl_FragCoord_param [[position]], const
return tint_symbol_4;
}
T:\tmp\uajw.0.metal:32:26: error: invalid operands to binary expression ('float' and 'float')
if (((float(x_147) % rint(x_149)) <= 0.01f)) {
~~~~~~~~~~~~ ^ ~~~~~~~~~~~
1 error generated.

View File

@ -1,7 +1,7 @@
; SPIR-V
; Version: 1.3
; Generator: Google Tint Compiler; 0
; Bound: 199
; Bound: 204
; Schema: 0
OpCapability Shader
%56 = OpExtInstImport "GLSL.std.450"
@ -71,14 +71,14 @@
%float_0_00999999978 = OpConstant %float 0.00999999978
%float_100 = OpConstant %float 100
%void = OpTypeVoid
%76 = OpTypeFunction %void
%81 = OpTypeFunction %void
%v3float = OpTypeVector %float 3
%_ptr_Function_v3float = OpTypePointer Function %v3float
%83 = OpConstantNull %v3float
%88 = OpConstantNull %v3float
%float_7 = OpConstant %float 7
%float_8 = OpConstant %float 8
%float_9 = OpConstant %float 9
%93 = OpConstantComposite %v3float %float_7 %float_8 %float_9
%98 = OpConstantComposite %v3float %float_7 %float_8 %float_9
%uint = OpTypeInt 32 0
%uint_0 = OpConstant %uint 0
%_ptr_Uniform_float = OpTypePointer Uniform %float
@ -87,16 +87,16 @@
%mat4v2float = OpTypeMatrix %v2float 4
%float_1 = OpConstant %float 1
%float_0 = OpConstant %float 0
%127 = OpConstantComposite %v2float %float_1 %float_0
%132 = OpConstantComposite %v2float %float_1 %float_0
%uint_2 = OpConstant %uint 2
%mat3v3float = OpTypeMatrix %v3float 3
%132 = OpConstantComposite %v3float %float_1 %float_0 %float_0
%133 = OpConstantComposite %v3float %float_0 %float_1 %float_0
%134 = OpConstantComposite %v3float %float_0 %float_0 %float_1
%135 = OpConstantComposite %mat3v3float %132 %133 %134
%137 = OpConstantComposite %v3float %float_1 %float_0 %float_0
%138 = OpConstantComposite %v3float %float_0 %float_1 %float_0
%139 = OpConstantComposite %v3float %float_0 %float_0 %float_1
%140 = OpConstantComposite %mat3v3float %137 %138 %139
%int_3 = OpConstant %int 3
%main_out = OpTypeStruct %v4float
%186 = OpTypeFunction %void %main_out
%191 = OpTypeFunction %void %main_out
%compute_value_f1_f1_ = OpFunction %float None %15
%limit = OpFunctionParameter %_ptr_Function_float
%thirty_two = OpFunctionParameter %_ptr_Function_float
@ -134,163 +134,168 @@
%53 = OpLoad %float %thirty_two
%54 = OpConvertSToF %float %51
%55 = OpExtInst %float %56 RoundEven %53
%57 = OpFMod %float %54 %55
%59 = OpFOrdLessThanEqual %bool %57 %float_0_00999999978
OpSelectionMerge %60 None
OpBranchConditional %59 %61 %60
%61 = OpLabel
%62 = OpLoad %float %result
%64 = OpFAdd %float %62 %float_100
OpStore %result %64
OpBranch %60
%60 = OpLabel
%58 = OpConvertSToF %float %51
%59 = OpExtInst %float %56 RoundEven %53
%60 = OpFDiv %float %58 %59
%57 = OpExtInst %float %56 Floor %60
%61 = OpFMul %float %55 %57
%62 = OpFSub %float %54 %61
%64 = OpFOrdLessThanEqual %bool %62 %float_0_00999999978
OpSelectionMerge %65 None
OpBranchConditional %64 %66 %65
%66 = OpLabel
%67 = OpLoad %float %result
%69 = OpFAdd %float %67 %float_100
OpStore %result %69
OpBranch %65
%65 = OpLabel
OpBranch %45
%45 = OpLabel
%65 = OpLoad %int %i
%67 = OpLoad %float %limit
%68 = OpConvertSToF %float %65
%69 = OpFOrdGreaterThanEqual %bool %68 %67
OpSelectionMerge %70 None
OpBranchConditional %69 %71 %70
%71 = OpLabel
%72 = OpLoad %float %result
OpReturnValue %72
%70 = OpLabel
%70 = OpLoad %int %i
%72 = OpLoad %float %limit
%73 = OpConvertSToF %float %70
%74 = OpFOrdGreaterThanEqual %bool %73 %72
OpSelectionMerge %75 None
OpBranchConditional %74 %76 %75
%76 = OpLabel
%77 = OpLoad %float %result
OpReturnValue %77
%75 = OpLabel
OpBranch %31
%31 = OpLabel
%73 = OpLoad %int %i
%74 = OpIAdd %int %73 %int_1
OpStore %i %74
%78 = OpLoad %int %i
%79 = OpIAdd %int %78 %int_1
OpStore %i %79
OpBranch %29
%30 = OpLabel
%75 = OpLoad %float %result
OpReturnValue %75
%80 = OpLoad %float %result
OpReturnValue %80
OpFunctionEnd
%main_1 = OpFunction %void None %76
%79 = OpLabel
%c = OpVariable %_ptr_Function_v3float Function %83
%main_1 = OpFunction %void None %81
%84 = OpLabel
%c = OpVariable %_ptr_Function_v3float Function %88
%thirty_two_1 = OpVariable %_ptr_Function_float Function %22
%param = OpVariable %_ptr_Function_float Function %22
%param_1 = OpVariable %_ptr_Function_float Function %22
%param_2 = OpVariable %_ptr_Function_float Function %22
%param_3 = OpVariable %_ptr_Function_float Function %22
%i_1 = OpVariable %_ptr_Function_int Function %26
OpStore %c %93
%97 = OpAccessChain %_ptr_Uniform_float %x_13 %uint_0 %uint_0
%98 = OpLoad %float %97
%100 = OpFDiv %float %98 %float_8
%99 = OpExtInst %float %56 RoundEven %100
OpStore %thirty_two_1 %99
%102 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_0
OpStore %c %98
%102 = OpAccessChain %_ptr_Uniform_float %x_13 %uint_0 %uint_0
%103 = OpLoad %float %102
OpStore %param %103
%104 = OpLoad %float %thirty_two_1
OpStore %param_1 %104
%105 = OpFunctionCall %float %compute_value_f1_f1_ %param %param_1
%108 = OpAccessChain %_ptr_Function_float %c %uint_0
OpStore %108 %105
%110 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1
%111 = OpLoad %float %110
OpStore %param_2 %111
%112 = OpLoad %float %thirty_two_1
OpStore %param_3 %112
%113 = OpFunctionCall %float %compute_value_f1_f1_ %param_2 %param_3
%116 = OpAccessChain %_ptr_Function_float %c %uint_1
OpStore %116 %113
%117 = OpLoad %v3float %c
%118 = OpLoad %v3float %c
%120 = OpCompositeExtract %float %118 0
%121 = OpCompositeExtract %float %118 1
%122 = OpCompositeConstruct %v2float %120 %121
%123 = OpCompositeExtract %float %118 2
%125 = OpCompositeConstruct %v2float %123 %float_1
%128 = OpCompositeConstruct %mat4v2float %122 %125 %127 %127
%130 = OpAccessChain %_ptr_Function_float %c %uint_2
%136 = OpVectorTimesMatrix %v3float %117 %135
%137 = OpCompositeExtract %float %136 0
%138 = OpCompositeExtract %v2float %128 0
%139 = OpCompositeExtract %float %138 0
%140 = OpCompositeExtract %v2float %128 0
%141 = OpCompositeExtract %float %140 1
%142 = OpCompositeExtract %v2float %128 1
%143 = OpCompositeExtract %float %142 0
%144 = OpCompositeConstruct %v3float %139 %141 %143
%145 = OpCompositeExtract %float %144 1
%146 = OpFAdd %float %137 %145
OpStore %130 %146
%105 = OpFDiv %float %103 %float_8
%104 = OpExtInst %float %56 RoundEven %105
OpStore %thirty_two_1 %104
%107 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_0
%108 = OpLoad %float %107
OpStore %param %108
%109 = OpLoad %float %thirty_two_1
OpStore %param_1 %109
%110 = OpFunctionCall %float %compute_value_f1_f1_ %param %param_1
%113 = OpAccessChain %_ptr_Function_float %c %uint_0
OpStore %113 %110
%115 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1
%116 = OpLoad %float %115
OpStore %param_2 %116
%117 = OpLoad %float %thirty_two_1
OpStore %param_3 %117
%118 = OpFunctionCall %float %compute_value_f1_f1_ %param_2 %param_3
%121 = OpAccessChain %_ptr_Function_float %c %uint_1
OpStore %121 %118
%122 = OpLoad %v3float %c
%123 = OpLoad %v3float %c
%125 = OpCompositeExtract %float %123 0
%126 = OpCompositeExtract %float %123 1
%127 = OpCompositeConstruct %v2float %125 %126
%128 = OpCompositeExtract %float %123 2
%130 = OpCompositeConstruct %v2float %128 %float_1
%133 = OpCompositeConstruct %mat4v2float %127 %130 %132 %132
%135 = OpAccessChain %_ptr_Function_float %c %uint_2
%141 = OpVectorTimesMatrix %v3float %122 %140
%142 = OpCompositeExtract %float %141 0
%143 = OpCompositeExtract %v2float %133 0
%144 = OpCompositeExtract %float %143 0
%145 = OpCompositeExtract %v2float %133 0
%146 = OpCompositeExtract %float %145 1
%147 = OpCompositeExtract %v2float %133 1
%148 = OpCompositeExtract %float %147 0
%149 = OpCompositeConstruct %v3float %144 %146 %148
%150 = OpCompositeExtract %float %149 1
%151 = OpFAdd %float %142 %150
OpStore %135 %151
OpStore %i_1 %int_0
OpBranch %147
%147 = OpLabel
OpLoopMerge %148 %149 None
OpBranch %150
%150 = OpLabel
%151 = OpLoad %int %i_1
%153 = OpSLessThan %bool %151 %int_3
OpSelectionMerge %154 None
OpBranchConditional %153 %155 %156
OpBranch %152
%152 = OpLabel
OpLoopMerge %153 %154 None
OpBranch %155
%155 = OpLabel
OpBranch %154
%156 = OpLabel
OpBranch %148
%154 = OpLabel
%157 = OpLoad %int %i_1
%158 = OpAccessChain %_ptr_Function_float %c %157
%159 = OpLoad %float %158
%160 = OpFOrdGreaterThanEqual %bool %159 %float_1
OpSelectionMerge %161 None
OpBranchConditional %160 %162 %161
%162 = OpLabel
%163 = OpLoad %int %i_1
%164 = OpLoad %int %i_1
%165 = OpAccessChain %_ptr_Function_float %c %164
%166 = OpLoad %float %165
%167 = OpLoad %int %i_1
%168 = OpAccessChain %_ptr_Function_float %c %167
%169 = OpLoad %float %168
%170 = OpAccessChain %_ptr_Function_float %c %163
%171 = OpFMul %float %166 %169
OpStore %170 %171
%172 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1
%173 = OpLoad %float %172
%174 = OpFOrdLessThan %bool %173 %float_0
OpSelectionMerge %175 None
OpBranchConditional %174 %176 %175
%176 = OpLabel
OpBranch %148
%175 = OpLabel
OpBranch %161
%156 = OpLoad %int %i_1
%158 = OpSLessThan %bool %156 %int_3
OpSelectionMerge %159 None
OpBranchConditional %158 %160 %161
%160 = OpLabel
OpBranch %159
%161 = OpLabel
OpBranch %149
%149 = OpLabel
%177 = OpLoad %int %i_1
%178 = OpIAdd %int %177 %int_1
OpStore %i_1 %178
OpBranch %147
%148 = OpLabel
%179 = OpLoad %v3float %c
%181 = OpExtInst %v3float %56 FAbs %179
%180 = OpExtInst %v3float %56 Normalize %181
%182 = OpCompositeExtract %float %180 0
%183 = OpCompositeExtract %float %180 1
%184 = OpCompositeExtract %float %180 2
%185 = OpCompositeConstruct %v4float %182 %183 %184 %float_1
OpStore %x_GLF_color %185
OpBranch %153
%159 = OpLabel
%162 = OpLoad %int %i_1
%163 = OpAccessChain %_ptr_Function_float %c %162
%164 = OpLoad %float %163
%165 = OpFOrdGreaterThanEqual %bool %164 %float_1
OpSelectionMerge %166 None
OpBranchConditional %165 %167 %166
%167 = OpLabel
%168 = OpLoad %int %i_1
%169 = OpLoad %int %i_1
%170 = OpAccessChain %_ptr_Function_float %c %169
%171 = OpLoad %float %170
%172 = OpLoad %int %i_1
%173 = OpAccessChain %_ptr_Function_float %c %172
%174 = OpLoad %float %173
%175 = OpAccessChain %_ptr_Function_float %c %168
%176 = OpFMul %float %171 %174
OpStore %175 %176
%177 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1
%178 = OpLoad %float %177
%179 = OpFOrdLessThan %bool %178 %float_0
OpSelectionMerge %180 None
OpBranchConditional %179 %181 %180
%181 = OpLabel
OpBranch %153
%180 = OpLabel
OpBranch %166
%166 = OpLabel
OpBranch %154
%154 = OpLabel
%182 = OpLoad %int %i_1
%183 = OpIAdd %int %182 %int_1
OpStore %i_1 %183
OpBranch %152
%153 = OpLabel
%184 = OpLoad %v3float %c
%186 = OpExtInst %v3float %56 FAbs %184
%185 = OpExtInst %v3float %56 Normalize %186
%187 = OpCompositeExtract %float %185 0
%188 = OpCompositeExtract %float %185 1
%189 = OpCompositeExtract %float %185 2
%190 = OpCompositeConstruct %v4float %187 %188 %189 %float_1
OpStore %x_GLF_color %190
OpReturn
OpFunctionEnd
%tint_symbol_3 = OpFunction %void None %186
%tint_symbol_3 = OpFunction %void None %191
%tint_symbol_1 = OpFunctionParameter %main_out
%190 = OpLabel
%191 = OpCompositeExtract %v4float %tint_symbol_1 0
OpStore %tint_symbol_2 %191
%195 = OpLabel
%196 = OpCompositeExtract %v4float %tint_symbol_1 0
OpStore %tint_symbol_2 %196
OpReturn
OpFunctionEnd
%main = OpFunction %void None %76
%193 = OpLabel
%194 = OpLoad %v4float %tint_symbol
OpStore %gl_FragCoord %194
%195 = OpFunctionCall %void %main_1
%197 = OpLoad %v4float %x_GLF_color
%198 = OpCompositeConstruct %main_out %197
%196 = OpFunctionCall %void %tint_symbol_3 %198
%main = OpFunction %void None %81
%198 = OpLabel
%199 = OpLoad %v4float %tint_symbol
OpStore %gl_FragCoord %199
%200 = OpFunctionCall %void %main_1
%202 = OpLoad %v4float %x_GLF_color
%203 = OpCompositeConstruct %main_out %202
%201 = OpFunctionCall %void %tint_symbol_3 %203
OpReturn
OpFunctionEnd

View File

@ -27,7 +27,7 @@ fn compute_value_f1_f1_(limit : ptr<function, f32>, thirty_two : ptr<function, f
} else {
let x_147 : i32 = i;
let x_149 : f32 = *(thirty_two);
if (((f32(x_147) % round(x_149)) <= 0.01)) {
if (((f32(x_147) - (round(x_149) * floor((f32(x_147) / round(x_149))))) <= 0.01)) {
let x_155 : f32 = result;
result = (x_155 + 100.0);
}

View File

@ -1,5 +1,3 @@
SKIP: FAILED
#include <metal_stdlib>
using namespace metal;
@ -31,7 +29,7 @@ float compute_value_f1_f1_(thread float* const limit, thread float* const thirty
} else {
int const x_147 = i;
float const x_149 = *(thirty_two);
if (((float(x_147) % rint(x_149)) <= 0.01f)) {
if ((fmod(float(x_147), rint(x_149)) <= 0.01f)) {
float const x_155 = result;
result = (x_155 + 100.0f);
}
@ -120,8 +118,3 @@ fragment tint_symbol_2 tint_symbol(float4 gl_FragCoord_param [[position]], const
return tint_symbol_4;
}
T:\tmp\uet8.0.metal:32:26: error: invalid operands to binary expression ('float' and 'float')
if (((float(x_147) % rint(x_149)) <= 0.01f)) {
~~~~~~~~~~~~ ^ ~~~~~~~~~~~
1 error generated.

View File

@ -134,7 +134,7 @@
%53 = OpLoad %float %thirty_two
%54 = OpConvertSToF %float %51
%55 = OpExtInst %float %56 RoundEven %53
%57 = OpFMod %float %54 %55
%57 = OpFRem %float %54 %55
%59 = OpFOrdLessThanEqual %bool %57 %float_0_00999999978
OpSelectionMerge %60 None
OpBranchConditional %59 %61 %60