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; float undefined = 0.0f;
bool x_51 = false; bool x_51 = false;
bool x_52_phi = 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 uint scalar_offset = ((16u * uint(0))) / 4;
const int x_10 = asint(x_6[scalar_offset / 4][scalar_offset % 4]); const int x_10 = asint(x_6[scalar_offset / 4][scalar_offset % 4]);
const uint scalar_offset_1 = ((16u * uint(0))) / 4; const uint scalar_offset_1 = ((16u * uint(0))) / 4;

View File

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

View File

@ -22,7 +22,7 @@ fn main_1() {
var undefined : f32; var undefined : f32;
var x_51 : bool; var x_51 : bool;
var x_52_phi : 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_10 : i32 = x_6.x_GLF_uniform_int_values[0];
let x_11 : 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]; let x_12 : i32 = x_6.x_GLF_uniform_int_values[1];

View File

@ -1,5 +1,3 @@
SKIP: FAILED
#include <metal_stdlib> #include <metal_stdlib>
using namespace metal; 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; float undefined = 0.0f;
bool x_51 = false; bool x_51 = false;
bool x_52_phi = 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_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_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; 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; 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 %undefined = OpVariable %_ptr_Function_float Function %26
%x_51 = OpVariable %_ptr_Function_bool Function %30 %x_51 = OpVariable %_ptr_Function_bool Function %30
%x_52_phi = 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 OpStore %undefined %34
%38 = OpAccessChain %_ptr_Uniform_int %x_6 %uint_0 %int_0 %38 = OpAccessChain %_ptr_Uniform_int %x_6 %uint_0 %int_0
%39 = OpLoad %int %38 %39 = OpLoad %int %38

View File

@ -12,7 +12,7 @@ void main_1() {
float f1 = 0.0f; float f1 = 0.0f;
bool x_72 = false; bool x_72 = false;
bool x_73_phi = 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; s1 = 9.99999935e-39f;
if ((s1 == 0.0f)) { if ((s1 == 0.0f)) {
s1 = 1.0f; s1 = 1.0f;
@ -21,7 +21,8 @@ void main_1() {
bool x_71 = false; bool x_71 = false;
bool x_63_phi = false; bool x_63_phi = false;
bool x_72_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); bool tint_tmp = isinf(f1);
if (!tint_tmp) { if (!tint_tmp) {
tint_tmp = (s1 == 1.0f); tint_tmp = (s1 == 1.0f);

View File

@ -1,5 +1,3 @@
SKIP: FAILED
#include <metal_stdlib> #include <metal_stdlib>
using namespace metal; using namespace metal;
@ -36,7 +34,7 @@ void main_1(constant buf1& x_8, thread float4* const tint_symbol_4) {
float f1 = 0.0f; float f1 = 0.0f;
bool x_72 = false; bool x_72 = false;
bool x_73_phi = 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; s1 = 9.99999935e-39f;
float const x_38 = s1; float const x_38 = s1;
if ((x_38 == 0.0f)) { 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_63_phi = false;
bool x_72_phi = false; bool x_72_phi = false;
float const x_42 = s1; 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_44 = f1;
float const x_46 = s1; float const x_46 = s1;
bool const x_48 = (isinf(x_44) || (x_46 == 1.0f)); 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; 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 ; SPIR-V
; Version: 1.3 ; Version: 1.3
; Generator: Google Tint Compiler; 0 ; Generator: Google Tint Compiler; 0
; Bound: 132 ; Bound: 139
; Schema: 0 ; Schema: 0
OpCapability Shader OpCapability Shader
%37 = OpExtInstImport "GLSL.std.450"
OpMemoryModel Logical GLSL450 OpMemoryModel Logical GLSL450
OpEntryPoint Fragment %main "main" %tint_symbol_1 OpEntryPoint Fragment %main "main" %tint_symbol_1
OpExecutionMode %main OriginUpperLeft OpExecutionMode %main OriginUpperLeft
@ -82,7 +83,7 @@
%_ptr_Uniform_int = OpTypePointer Uniform %int %_ptr_Uniform_int = OpTypePointer Uniform %int
%int_0 = OpConstant %int 0 %int_0 = OpConstant %int 0
%main_out = OpTypeStruct %v4float %main_out = OpTypeStruct %v4float
%120 = OpTypeFunction %void %main_out %127 = OpTypeFunction %void %main_out
%main_1 = OpFunction %void None %20 %main_1 = OpFunction %void None %20
%23 = OpLabel %23 = OpLabel
%f0 = OpVariable %_ptr_Function_float Function %26 %f0 = OpVariable %_ptr_Function_float Function %26
@ -94,134 +95,140 @@
%x_71 = OpVariable %_ptr_Function_bool Function %32 %x_71 = OpVariable %_ptr_Function_bool Function %32
%x_63_phi = OpVariable %_ptr_Function_bool Function %32 %x_63_phi = OpVariable %_ptr_Function_bool Function %32
%x_72_phi = OpVariable %_ptr_Function_bool Function %32 %x_72_phi = OpVariable %_ptr_Function_bool Function %32
%36 = OpFMod %float %float_10 %float_9_99999997en07 %38 = OpFDiv %float %float_10 %float_9_99999997en07
OpStore %f0 %36 %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 OpStore %s1 %float_0x1_b38fb8pn127
%38 = OpLoad %float %s1 %42 = OpLoad %float %s1
%40 = OpFOrdEqual %bool %38 %float_0 %44 = OpFOrdEqual %bool %42 %float_0
OpSelectionMerge %41 None OpSelectionMerge %45 None
OpBranchConditional %40 %42 %41 OpBranchConditional %44 %46 %45
%42 = OpLabel %46 = OpLabel
OpStore %s1 %float_1 OpStore %s1 %float_1
OpBranch %41 OpBranch %45
%41 = OpLabel %45 = OpLabel
%48 = OpLoad %float %s1 %52 = OpLoad %float %s1
%49 = OpFMod %float %float_10 %48 %54 = OpFDiv %float %float_10 %52
OpStore %f1 %49 %53 = OpExtInst %float %37 Floor %54
%50 = OpLoad %float %f1 %55 = OpFMul %float %52 %53
%51 = OpLoad %float %s1 %56 = OpFSub %float %float_10 %55
%52 = OpIsInf %bool %50 OpStore %f1 %56
OpSelectionMerge %53 None %57 = OpLoad %float %f1
OpBranchConditional %52 %53 %54 %58 = OpLoad %float %s1
%54 = OpLabel %59 = OpIsInf %bool %57
%55 = OpFOrdEqual %bool %51 %float_1 OpSelectionMerge %60 None
OpBranch %53 OpBranchConditional %59 %60 %61
%53 = OpLabel %61 = OpLabel
%56 = OpPhi %bool %52 %41 %55 %54 %62 = OpFOrdEqual %bool %58 %float_1
OpStore %x_73_phi %56 OpBranch %60
%57 = OpLogicalNot %bool %56 %60 = OpLabel
OpSelectionMerge %58 None %63 = OpPhi %bool %59 %45 %62 %61
OpBranchConditional %57 %59 %58 OpStore %x_73_phi %63
%59 = OpLabel %64 = OpLogicalNot %bool %63
%60 = OpLoad %float %f0 OpSelectionMerge %65 None
%61 = OpLoad %float %f1 OpBranchConditional %64 %66 %65
%62 = OpFOrdEqual %bool %60 %61 %66 = OpLabel
OpStore %x_63_phi %62
%63 = OpLogicalNot %bool %62
OpSelectionMerge %64 None
OpBranchConditional %63 %65 %64
%65 = OpLabel
%66 = OpLoad %float %f0
%67 = OpLoad %float %f0 %67 = OpLoad %float %f0
%69 = OpFOrdGreaterThan %bool %66 %float_0_99000001 %68 = OpLoad %float %f1
OpSelectionMerge %70 None %69 = OpFOrdEqual %bool %67 %68
OpBranchConditional %69 %71 %70 OpStore %x_63_phi %69
%71 = OpLabel %70 = OpLogicalNot %bool %69
%73 = OpFOrdLessThan %bool %67 %float_0_00999999978 OpSelectionMerge %71 None
OpBranch %70 OpBranchConditional %70 %72 %71
%70 = OpLabel %72 = OpLabel
%74 = OpPhi %bool %69 %65 %73 %71 %73 = OpLoad %float %f0
OpStore %x_62 %74 %74 = OpLoad %float %f0
%75 = OpLoad %bool %x_62 %76 = OpFOrdGreaterThan %bool %73 %float_0_99000001
OpStore %x_63_phi %75 OpSelectionMerge %77 None
OpBranch %64 OpBranchConditional %76 %78 %77
%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
%78 = OpLabel %78 = OpLabel
%88 = OpLoad %bool %x_72_phi %80 = OpFOrdLessThan %bool %74 %float_0_00999999978
OpStore %x_72 %88 OpBranch %77
%89 = OpLoad %bool %x_72 %77 = OpLabel
OpStore %x_73_phi %89 %81 = OpPhi %bool %76 %72 %80 %78
OpBranch %58 OpStore %x_62 %81
%58 = OpLabel %82 = OpLoad %bool %x_62
%90 = OpLoad %bool %x_73_phi OpStore %x_63_phi %82
%91 = OpLoad %float %f1 OpBranch %71
OpSelectionMerge %92 None %71 = OpLabel
OpBranchConditional %90 %92 %93 %83 = OpLoad %bool %x_63_phi
%93 = OpLabel OpStore %x_72_phi %83
%94 = OpFOrdEqual %bool %91 %float_10 %84 = OpLogicalNot %bool %83
OpBranch %92 OpSelectionMerge %85 None
%92 = OpLabel OpBranchConditional %84 %86 %85
%95 = OpPhi %bool %90 %58 %94 %93 %86 = OpLabel
OpSelectionMerge %96 None %87 = OpLoad %float %f1
OpBranchConditional %95 %97 %98 %88 = OpLoad %float %f1
%97 = OpLabel %89 = OpFOrdGreaterThan %bool %87 %float_0_99000001
%102 = OpAccessChain %_ptr_Uniform_int %x_8 %uint_0 %int_1 OpSelectionMerge %90 None
%103 = OpLoad %int %102 OpBranchConditional %89 %91 %90
%105 = OpAccessChain %_ptr_Uniform_int %x_8 %uint_0 %int_0 %91 = OpLabel
%106 = OpLoad %int %105 %92 = OpFOrdLessThan %bool %88 %float_0_00999999978
%107 = OpAccessChain %_ptr_Uniform_int %x_8 %uint_0 %int_0 OpBranch %90
%108 = OpLoad %int %107 %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 %109 = OpAccessChain %_ptr_Uniform_int %x_8 %uint_0 %int_1
%110 = OpLoad %int %109 %110 = OpLoad %int %109
%111 = OpConvertSToF %float %103 %112 = OpAccessChain %_ptr_Uniform_int %x_8 %uint_0 %int_0
%112 = OpConvertSToF %float %106 %113 = OpLoad %int %112
%113 = OpConvertSToF %float %108 %114 = OpAccessChain %_ptr_Uniform_int %x_8 %uint_0 %int_0
%114 = OpConvertSToF %float %110 %115 = OpLoad %int %114
%115 = OpCompositeConstruct %v4float %111 %112 %113 %114 %116 = OpAccessChain %_ptr_Uniform_int %x_8 %uint_0 %int_1
OpStore %x_GLF_color %115
OpBranch %96
%98 = OpLabel
%116 = OpAccessChain %_ptr_Uniform_int %x_8 %uint_0 %int_0
%117 = OpLoad %int %116 %117 = OpLoad %int %116
%118 = OpConvertSToF %float %117 %118 = OpConvertSToF %float %110
%119 = OpCompositeConstruct %v4float %118 %118 %118 %118 %119 = OpConvertSToF %float %113
OpStore %x_GLF_color %119 %120 = OpConvertSToF %float %115
OpBranch %96 %121 = OpConvertSToF %float %117
%96 = OpLabel %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 OpReturn
OpFunctionEnd OpFunctionEnd
%tint_symbol_2 = OpFunction %void None %120 %tint_symbol_2 = OpFunction %void None %127
%tint_symbol = OpFunctionParameter %main_out %tint_symbol = OpFunctionParameter %main_out
%124 = OpLabel %131 = OpLabel
%125 = OpCompositeExtract %v4float %tint_symbol 0 %132 = OpCompositeExtract %v4float %tint_symbol 0
OpStore %tint_symbol_1 %125 OpStore %tint_symbol_1 %132
OpReturn OpReturn
OpFunctionEnd OpFunctionEnd
%main = OpFunction %void None %20 %main = OpFunction %void None %20
%127 = OpLabel %134 = OpLabel
%128 = OpFunctionCall %void %main_1 %135 = OpFunctionCall %void %main_1
%130 = OpLoad %v4float %x_GLF_color %137 = OpLoad %v4float %x_GLF_color
%131 = OpCompositeConstruct %main_out %130 %138 = OpCompositeConstruct %main_out %137
%129 = OpFunctionCall %void %tint_symbol_2 %131 %136 = OpFunctionCall %void %tint_symbol_2 %138
OpReturn OpReturn
OpFunctionEnd OpFunctionEnd

View File

@ -24,7 +24,7 @@ fn main_1() {
var f1 : f32; var f1 : f32;
var x_72 : bool; var x_72 : bool;
var x_73_phi : 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; s1 = 0x1.b38fb8p-127;
let x_38 : f32 = s1; let x_38 : f32 = s1;
if ((x_38 == 0.0)) { if ((x_38 == 0.0)) {
@ -35,7 +35,7 @@ fn main_1() {
var x_63_phi : bool; var x_63_phi : bool;
var x_72_phi : bool; var x_72_phi : bool;
let x_42 : f32 = s1; 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_44 : f32 = f1;
let x_46 : f32 = s1; let x_46 : f32 = s1;
let x_48 : bool = (isInf(x_44) || (x_46 == 1.0)); 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() { 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 uint scalar_offset = ((16u * uint(0))) / 4;
const int x_29 = asint(x_5[scalar_offset / 4][scalar_offset % 4]); const int x_29 = asint(x_5[scalar_offset / 4][scalar_offset % 4]);
const uint scalar_offset_1 = ((16u * uint(0))) / 4; const uint scalar_offset_1 = ((16u * uint(0))) / 4;

View File

@ -1,5 +1,3 @@
SKIP: FAILED
#include <metal_stdlib> #include <metal_stdlib>
using namespace metal; using namespace metal;
@ -21,7 +19,7 @@ struct tint_symbol_1 {
}; };
void main_1(constant buf0& x_5, thread float4* const tint_symbol_4) { 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_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_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; 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; 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 ; SPIR-V
; Version: 1.3 ; Version: 1.3
; Generator: Google Tint Compiler; 0 ; Generator: Google Tint Compiler; 0
; Bound: 57 ; Bound: 61
; Schema: 0 ; Schema: 0
OpCapability Shader OpCapability Shader
%21 = OpExtInstImport "GLSL.std.450"
OpMemoryModel Logical GLSL450 OpMemoryModel Logical GLSL450
OpEntryPoint Fragment %main "main" %tint_symbol_1 OpEntryPoint Fragment %main "main" %tint_symbol_1
OpExecutionMode %main OriginUpperLeft OpExecutionMode %main OriginUpperLeft
@ -50,48 +51,51 @@
%_ptr_Uniform_int = OpTypePointer Uniform %int %_ptr_Uniform_int = OpTypePointer Uniform %int
%int_1 = OpConstant %int 1 %int_1 = OpConstant %int 1
%main_out = OpTypeStruct %v4float %main_out = OpTypeStruct %v4float
%45 = OpTypeFunction %void %main_out %49 = OpTypeFunction %void %main_out
%main_1 = OpFunction %void None %15 %main_1 = OpFunction %void None %15
%18 = OpLabel %18 = OpLabel
%20 = OpFMod %float %float_1 %float_1 %22 = OpFDiv %float %float_1 %float_1
%22 = OpFOrdLessThanEqual %bool %20 %float_0_00999999978 %20 = OpExtInst %float %21 Floor %22
OpSelectionMerge %24 None %23 = OpFMul %float %float_1 %20
OpBranchConditional %22 %25 %26 %24 = OpFSub %float %float_1 %23
%25 = OpLabel %26 = OpFOrdLessThanEqual %bool %24 %float_0_00999999978
%30 = OpAccessChain %_ptr_Uniform_int %x_5 %uint_0 %int_0 OpSelectionMerge %28 None
%31 = OpLoad %int %30 OpBranchConditional %26 %29 %30
%32 = OpAccessChain %_ptr_Uniform_int %x_5 %uint_0 %int_0 %29 = OpLabel
%33 = OpLoad %int %32 %34 = OpAccessChain %_ptr_Uniform_int %x_5 %uint_0 %int_0
%35 = OpAccessChain %_ptr_Uniform_int %x_5 %uint_0 %int_1 %35 = OpLoad %int %34
%36 = OpLoad %int %35 %36 = OpAccessChain %_ptr_Uniform_int %x_5 %uint_0 %int_0
%37 = OpConvertSToF %float %31 %37 = OpLoad %int %36
%38 = OpConvertSToF %float %33 %39 = OpAccessChain %_ptr_Uniform_int %x_5 %uint_0 %int_1
%39 = OpConvertSToF %float %36 %40 = OpLoad %int %39
%40 = OpCompositeConstruct %v4float %float_1 %37 %38 %39 %41 = OpConvertSToF %float %35
OpStore %x_GLF_color %40 %42 = OpConvertSToF %float %37
OpBranch %24 %43 = OpConvertSToF %float %40
%26 = OpLabel %44 = OpCompositeConstruct %v4float %float_1 %41 %42 %43
%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
OpStore %x_GLF_color %44 OpStore %x_GLF_color %44
OpBranch %24 OpBranch %28
%24 = OpLabel %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 OpReturn
OpFunctionEnd OpFunctionEnd
%tint_symbol_2 = OpFunction %void None %45 %tint_symbol_2 = OpFunction %void None %49
%tint_symbol = OpFunctionParameter %main_out %tint_symbol = OpFunctionParameter %main_out
%49 = OpLabel %53 = OpLabel
%50 = OpCompositeExtract %v4float %tint_symbol 0 %54 = OpCompositeExtract %v4float %tint_symbol 0
OpStore %tint_symbol_1 %50 OpStore %tint_symbol_1 %54
OpReturn OpReturn
OpFunctionEnd OpFunctionEnd
%main = OpFunction %void None %15 %main = OpFunction %void None %15
%52 = OpLabel %56 = OpLabel
%53 = OpFunctionCall %void %main_1 %57 = OpFunctionCall %void %main_1
%55 = OpLoad %v4float %x_GLF_color %59 = OpLoad %v4float %x_GLF_color
%56 = OpCompositeConstruct %main_out %55 %60 = OpCompositeConstruct %main_out %59
%54 = OpFunctionCall %void %tint_symbol_2 %56 %58 = OpFunctionCall %void %tint_symbol_2 %60
OpReturn OpReturn
OpFunctionEnd OpFunctionEnd

View File

@ -10,7 +10,7 @@ var<private> x_GLF_color : vec4<f32>;
[[group(0), binding(0)]] var<uniform> x_5 : buf0; [[group(0), binding(0)]] var<uniform> x_5 : buf0;
fn main_1() { 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_29 : i32 = x_5.x_GLF_uniform_int_values[0];
let x_32 : 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]; let x_35 : i32 = x_5.x_GLF_uniform_int_values[1];

View File

@ -1,5 +1,3 @@
SKIP: FAILED
#include <metal_stdlib> #include <metal_stdlib>
using namespace metal; using namespace metal;
@ -21,7 +19,7 @@ struct tint_symbol_1 {
}; };
void main_1(constant buf0& x_5, thread float4* const tint_symbol_4) { 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_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_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; 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; 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 %45 = OpTypeFunction %void %main_out
%main_1 = OpFunction %void None %15 %main_1 = OpFunction %void None %15
%18 = OpLabel %18 = OpLabel
%20 = OpFMod %float %float_1 %float_1 %20 = OpFRem %float %float_1 %float_1
%22 = OpFOrdLessThanEqual %bool %20 %float_0_00999999978 %22 = OpFOrdLessThanEqual %bool %20 %float_0_00999999978
OpSelectionMerge %24 None OpSelectionMerge %24 None
OpBranchConditional %22 %25 %26 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]); 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)); 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); 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 float x_47 = a;
const uint scalar_offset_2 = ((16u * uint(0))) / 4; const uint scalar_offset_2 = ((16u * uint(0))) / 4;
const float x_49 = asfloat(x_8[scalar_offset_2 / 4][scalar_offset_2 % 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> #include <metal_stdlib>
using namespace metal; 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; 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)); *(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; 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_47 = a;
float const x_49 = x_8.x_GLF_uniform_float_values.arr[0].el; float const x_49 = x_8.x_GLF_uniform_float_values.arr[0].el;
if ((x_47 != x_49)) { 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; 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 ; SPIR-V
; Version: 1.3 ; Version: 1.3
; Generator: Google Tint Compiler; 0 ; Generator: Google Tint Compiler; 0
; Bound: 72 ; Bound: 76
; Schema: 0 ; Schema: 0
OpCapability Shader OpCapability Shader
%48 = OpExtInstImport "GLSL.std.450"
OpMemoryModel Logical GLSL450 OpMemoryModel Logical GLSL450
OpEntryPoint Fragment %main "main" %tint_symbol_1 OpEntryPoint Fragment %main "main" %tint_symbol_1
OpExecutionMode %main OriginUpperLeft OpExecutionMode %main OriginUpperLeft
@ -68,7 +69,7 @@
%uint_1 = OpConstant %uint 1 %uint_1 = OpConstant %uint 1
%_ptr_Private_float = OpTypePointer Private %float %_ptr_Private_float = OpTypePointer Private %float
%main_out = OpTypeStruct %v4float %main_out = OpTypeStruct %v4float
%60 = OpTypeFunction %void %main_out %64 = OpTypeFunction %void %main_out
%main_1 = OpFunction %void None %19 %main_1 = OpFunction %void None %19
%22 = OpLabel %22 = OpLabel
%a = OpVariable %_ptr_Function_float Function %25 %a = OpVariable %_ptr_Function_float Function %25
@ -88,35 +89,38 @@
OpStore %x_GLF_color %42 OpStore %x_GLF_color %42
%44 = OpAccessChain %_ptr_Uniform_float %x_8 %uint_0 %int_1 %44 = OpAccessChain %_ptr_Uniform_float %x_8 %uint_0 %int_1
%45 = OpLoad %float %44 %45 = OpLoad %float %44
%47 = OpFMod %float %45 %float_0x1_8p_128 %49 = OpFDiv %float %45 %float_0x1_8p_128
OpStore %a %47 %47 = OpExtInst %float %48 Floor %49
%48 = OpLoad %float %a %50 = OpFMul %float %float_0x1_8p_128 %47
%49 = OpAccessChain %_ptr_Uniform_float %x_8 %uint_0 %int_0 %51 = OpFSub %float %45 %50
%50 = OpLoad %float %49 OpStore %a %51
%51 = OpFOrdNotEqual %bool %48 %50 %52 = OpLoad %float %a
OpSelectionMerge %53 None %53 = OpAccessChain %_ptr_Uniform_float %x_8 %uint_0 %int_0
OpBranchConditional %51 %54 %53 %54 = OpLoad %float %53
%54 = OpLabel %55 = OpFOrdNotEqual %bool %52 %54
%55 = OpAccessChain %_ptr_Uniform_float %x_8 %uint_0 %int_0 OpSelectionMerge %57 None
%56 = OpLoad %float %55 OpBranchConditional %55 %58 %57
%59 = OpAccessChain %_ptr_Private_float %x_GLF_color %uint_1 %58 = OpLabel
OpStore %59 %56 %59 = OpAccessChain %_ptr_Uniform_float %x_8 %uint_0 %int_0
OpBranch %53 %60 = OpLoad %float %59
%53 = OpLabel %63 = OpAccessChain %_ptr_Private_float %x_GLF_color %uint_1
OpStore %63 %60
OpBranch %57
%57 = OpLabel
OpReturn OpReturn
OpFunctionEnd OpFunctionEnd
%tint_symbol_2 = OpFunction %void None %60 %tint_symbol_2 = OpFunction %void None %64
%tint_symbol = OpFunctionParameter %main_out %tint_symbol = OpFunctionParameter %main_out
%64 = OpLabel %68 = OpLabel
%65 = OpCompositeExtract %v4float %tint_symbol 0 %69 = OpCompositeExtract %v4float %tint_symbol 0
OpStore %tint_symbol_1 %65 OpStore %tint_symbol_1 %69
OpReturn OpReturn
OpFunctionEnd OpFunctionEnd
%main = OpFunction %void None %19 %main = OpFunction %void None %19
%67 = OpLabel %71 = OpLabel
%68 = OpFunctionCall %void %main_1 %72 = OpFunctionCall %void %main_1
%70 = OpLoad %v4float %x_GLF_color %74 = OpLoad %v4float %x_GLF_color
%71 = OpCompositeConstruct %main_out %70 %75 = OpCompositeConstruct %main_out %74
%69 = OpFunctionCall %void %tint_symbol_2 %71 %73 = OpFunctionCall %void %tint_symbol_2 %75
OpReturn OpReturn
OpFunctionEnd OpFunctionEnd

View File

@ -26,7 +26,7 @@ fn main_1() {
let x_13 : i32 = x_5.x_GLF_uniform_int_values[0]; 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)); 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]; 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_47 : f32 = a;
let x_49 : f32 = x_8.x_GLF_uniform_float_values[0]; let x_49 : f32 = x_8.x_GLF_uniform_float_values[0];
if ((x_47 != x_49)) { 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]); 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)); 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); 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 float x_47 = a;
const uint scalar_offset_2 = ((16u * uint(0))) / 4; const uint scalar_offset_2 = ((16u * uint(0))) / 4;
const float x_49 = asfloat(x_8[scalar_offset_2 / 4][scalar_offset_2 % 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> #include <metal_stdlib>
using namespace metal; 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; 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)); *(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; 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_47 = a;
float const x_49 = x_8.x_GLF_uniform_float_values.arr[0].el; float const x_49 = x_8.x_GLF_uniform_float_values.arr[0].el;
if ((x_47 != x_49)) { 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; 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 ; SPIR-V
; Version: 1.3 ; Version: 1.3
; Generator: Google Tint Compiler; 0 ; Generator: Google Tint Compiler; 0
; Bound: 72 ; Bound: 76
; Schema: 0 ; Schema: 0
OpCapability Shader OpCapability Shader
%48 = OpExtInstImport "GLSL.std.450"
OpMemoryModel Logical GLSL450 OpMemoryModel Logical GLSL450
OpEntryPoint Fragment %main "main" %tint_symbol_1 OpEntryPoint Fragment %main "main" %tint_symbol_1
OpExecutionMode %main OriginUpperLeft OpExecutionMode %main OriginUpperLeft
@ -68,7 +69,7 @@
%uint_1 = OpConstant %uint 1 %uint_1 = OpConstant %uint 1
%_ptr_Private_float = OpTypePointer Private %float %_ptr_Private_float = OpTypePointer Private %float
%main_out = OpTypeStruct %v4float %main_out = OpTypeStruct %v4float
%60 = OpTypeFunction %void %main_out %64 = OpTypeFunction %void %main_out
%main_1 = OpFunction %void None %19 %main_1 = OpFunction %void None %19
%22 = OpLabel %22 = OpLabel
%a = OpVariable %_ptr_Function_float Function %25 %a = OpVariable %_ptr_Function_float Function %25
@ -88,35 +89,38 @@
OpStore %x_GLF_color %42 OpStore %x_GLF_color %42
%44 = OpAccessChain %_ptr_Uniform_float %x_8 %uint_0 %int_1 %44 = OpAccessChain %_ptr_Uniform_float %x_8 %uint_0 %int_1
%45 = OpLoad %float %44 %45 = OpLoad %float %44
%47 = OpFMod %float %float_n0x1_8p_128 %45 %49 = OpFDiv %float %float_n0x1_8p_128 %45
OpStore %a %47 %47 = OpExtInst %float %48 Floor %49
%48 = OpLoad %float %a %50 = OpFMul %float %45 %47
%49 = OpAccessChain %_ptr_Uniform_float %x_8 %uint_0 %int_0 %51 = OpFSub %float %float_n0x1_8p_128 %50
%50 = OpLoad %float %49 OpStore %a %51
%51 = OpFOrdNotEqual %bool %48 %50 %52 = OpLoad %float %a
OpSelectionMerge %53 None %53 = OpAccessChain %_ptr_Uniform_float %x_8 %uint_0 %int_0
OpBranchConditional %51 %54 %53 %54 = OpLoad %float %53
%54 = OpLabel %55 = OpFOrdNotEqual %bool %52 %54
%55 = OpAccessChain %_ptr_Uniform_float %x_8 %uint_0 %int_0 OpSelectionMerge %57 None
%56 = OpLoad %float %55 OpBranchConditional %55 %58 %57
%59 = OpAccessChain %_ptr_Private_float %x_GLF_color %uint_1 %58 = OpLabel
OpStore %59 %56 %59 = OpAccessChain %_ptr_Uniform_float %x_8 %uint_0 %int_0
OpBranch %53 %60 = OpLoad %float %59
%53 = OpLabel %63 = OpAccessChain %_ptr_Private_float %x_GLF_color %uint_1
OpStore %63 %60
OpBranch %57
%57 = OpLabel
OpReturn OpReturn
OpFunctionEnd OpFunctionEnd
%tint_symbol_2 = OpFunction %void None %60 %tint_symbol_2 = OpFunction %void None %64
%tint_symbol = OpFunctionParameter %main_out %tint_symbol = OpFunctionParameter %main_out
%64 = OpLabel %68 = OpLabel
%65 = OpCompositeExtract %v4float %tint_symbol 0 %69 = OpCompositeExtract %v4float %tint_symbol 0
OpStore %tint_symbol_1 %65 OpStore %tint_symbol_1 %69
OpReturn OpReturn
OpFunctionEnd OpFunctionEnd
%main = OpFunction %void None %19 %main = OpFunction %void None %19
%67 = OpLabel %71 = OpLabel
%68 = OpFunctionCall %void %main_1 %72 = OpFunctionCall %void %main_1
%70 = OpLoad %v4float %x_GLF_color %74 = OpLoad %v4float %x_GLF_color
%71 = OpCompositeConstruct %main_out %70 %75 = OpCompositeConstruct %main_out %74
%69 = OpFunctionCall %void %tint_symbol_2 %71 %73 = OpFunctionCall %void %tint_symbol_2 %75
OpReturn OpReturn
OpFunctionEnd OpFunctionEnd

View File

@ -26,7 +26,7 @@ fn main_1() {
let x_13 : i32 = x_5.x_GLF_uniform_int_values[0]; 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)); 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]; 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_47 : f32 = a;
let x_49 : f32 = x_8.x_GLF_uniform_float_values[0]; let x_49 : f32 = x_8.x_GLF_uniform_float_values[0];
if ((x_47 != x_49)) { if ((x_47 != x_49)) {

View File

@ -5,7 +5,7 @@ cbuffer cbuffer_x_6 : register(b0, space0) {
void main_1() { void main_1() {
float a = 0.0f; 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); const float x_29 = asfloat(x_6[1].x);
x_GLF_color = float4(x_29, x_29, x_29, x_29); x_GLF_color = float4(x_29, x_29, x_29, x_29);
const float x_31 = a; const float x_31 = a;

View File

@ -1,5 +1,3 @@
SKIP: FAILED
#include <metal_stdlib> #include <metal_stdlib>
using namespace metal; using namespace metal;
@ -22,7 +20,7 @@ struct tint_symbol_1 {
void main_1(constant buf0& x_6, thread float4* const tint_symbol_4) { void main_1(constant buf0& x_6, thread float4* const tint_symbol_4) {
float a = 0.0f; 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; 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); *(tint_symbol_4) = float4(x_29, x_29, x_29, x_29);
float const x_31 = a; 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; 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 ; SPIR-V
; Version: 1.3 ; Version: 1.3
; Generator: Google Tint Compiler; 0 ; Generator: Google Tint Compiler; 0
; Bound: 62 ; Bound: 67
; Schema: 0 ; Schema: 0
OpCapability Shader OpCapability Shader
%25 = OpExtInstImport "GLSL.std.450"
OpMemoryModel Logical GLSL450 OpMemoryModel Logical GLSL450
OpEntryPoint Fragment %main "main" %tint_symbol_1 OpEntryPoint Fragment %main "main" %tint_symbol_1
OpExecutionMode %main OriginUpperLeft OpExecutionMode %main OriginUpperLeft
@ -54,50 +55,54 @@
%bool = OpTypeBool %bool = OpTypeBool
%int_0 = OpConstant %int 0 %int_0 = OpConstant %int 0
%main_out = OpTypeStruct %v4float %main_out = OpTypeStruct %v4float
%50 = OpTypeFunction %void %main_out %55 = OpTypeFunction %void %main_out
%main_1 = OpFunction %void None %14 %main_1 = OpFunction %void None %14
%17 = OpLabel %17 = OpLabel
%a = OpVariable %_ptr_Function_float Function %20 %a = OpVariable %_ptr_Function_float Function %20
%21 = OpBitcast %float %uint_1 %21 = OpBitcast %float %uint_1
%24 = OpFMod %float %21 %float_1 %26 = OpBitcast %float %uint_1
OpStore %a %24 %27 = OpFDiv %float %26 %float_1
%29 = OpAccessChain %_ptr_Uniform_float %x_6 %uint_0 %int_1 %24 = OpExtInst %float %25 Floor %27
%30 = OpLoad %float %29 %28 = OpFMul %float %float_1 %24
%31 = OpCompositeConstruct %v4float %30 %30 %30 %30 %29 = OpFSub %float %21 %28
OpStore %x_GLF_color %31 OpStore %a %29
%32 = OpLoad %float %a %34 = OpAccessChain %_ptr_Uniform_float %x_6 %uint_0 %int_1
%34 = OpAccessChain %_ptr_Uniform_float %x_6 %uint_0 %int_2
%35 = OpLoad %float %34 %35 = OpLoad %float %34
%36 = OpFOrdLessThan %bool %32 %35 %36 = OpCompositeConstruct %v4float %35 %35 %35 %35
OpSelectionMerge %38 None OpStore %x_GLF_color %36
OpBranchConditional %36 %39 %38 %37 = OpLoad %float %a
%39 = OpLabel %39 = OpAccessChain %_ptr_Uniform_float %x_6 %uint_0 %int_2
%41 = OpAccessChain %_ptr_Uniform_float %x_6 %uint_0 %int_0 %40 = OpLoad %float %39
%42 = OpLoad %float %41 %41 = OpFOrdLessThan %bool %37 %40
%43 = OpAccessChain %_ptr_Uniform_float %x_6 %uint_0 %int_1 OpSelectionMerge %43 None
%44 = OpLoad %float %43 OpBranchConditional %41 %44 %43
%45 = OpAccessChain %_ptr_Uniform_float %x_6 %uint_0 %int_1 %44 = OpLabel
%46 = OpLoad %float %45 %46 = OpAccessChain %_ptr_Uniform_float %x_6 %uint_0 %int_0
%47 = OpAccessChain %_ptr_Uniform_float %x_6 %uint_0 %int_0 %47 = OpLoad %float %46
%48 = OpLoad %float %47 %48 = OpAccessChain %_ptr_Uniform_float %x_6 %uint_0 %int_1
%49 = OpCompositeConstruct %v4float %42 %44 %46 %48 %49 = OpLoad %float %48
OpStore %x_GLF_color %49 %50 = OpAccessChain %_ptr_Uniform_float %x_6 %uint_0 %int_1
OpBranch %38 %51 = OpLoad %float %50
%38 = OpLabel %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 OpReturn
OpFunctionEnd OpFunctionEnd
%tint_symbol_2 = OpFunction %void None %50 %tint_symbol_2 = OpFunction %void None %55
%tint_symbol = OpFunctionParameter %main_out %tint_symbol = OpFunctionParameter %main_out
%54 = OpLabel %59 = OpLabel
%55 = OpCompositeExtract %v4float %tint_symbol 0 %60 = OpCompositeExtract %v4float %tint_symbol 0
OpStore %tint_symbol_1 %55 OpStore %tint_symbol_1 %60
OpReturn OpReturn
OpFunctionEnd OpFunctionEnd
%main = OpFunction %void None %14 %main = OpFunction %void None %14
%57 = OpLabel %62 = OpLabel
%58 = OpFunctionCall %void %main_1 %63 = OpFunctionCall %void %main_1
%60 = OpLoad %v4float %x_GLF_color %65 = OpLoad %v4float %x_GLF_color
%61 = OpCompositeConstruct %main_out %60 %66 = OpCompositeConstruct %main_out %65
%59 = OpFunctionCall %void %tint_symbol_2 %61 %64 = OpFunctionCall %void %tint_symbol_2 %66
OpReturn OpReturn
OpFunctionEnd OpFunctionEnd

View File

@ -11,7 +11,7 @@ var<private> x_GLF_color : vec4<f32>;
fn main_1() { fn main_1() {
var a : f32; 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]; 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); x_GLF_color = vec4<f32>(x_29, x_29, x_29, x_29);
let x_31 : f32 = a; let x_31 : f32 = a;

View File

@ -1,5 +1,3 @@
SKIP: FAILED
#include <metal_stdlib> #include <metal_stdlib>
using namespace metal; using namespace metal;
@ -22,7 +20,7 @@ struct tint_symbol_1 {
void main_1(constant buf0& x_6, thread float4* const tint_symbol_4) { void main_1(constant buf0& x_6, thread float4* const tint_symbol_4) {
float a = 0.0f; 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; 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); *(tint_symbol_4) = float4(x_29, x_29, x_29, x_29);
float const x_31 = a; 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; 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 %17 = OpLabel
%a = OpVariable %_ptr_Function_float Function %20 %a = OpVariable %_ptr_Function_float Function %20
%21 = OpBitcast %float %uint_1 %21 = OpBitcast %float %uint_1
%24 = OpFMod %float %21 %float_1 %24 = OpFRem %float %21 %float_1
OpStore %a %24 OpStore %a %24
%29 = OpAccessChain %_ptr_Uniform_float %x_6 %uint_0 %int_1 %29 = OpAccessChain %_ptr_Uniform_float %x_6 %uint_0 %int_1
%30 = OpLoad %float %29 %30 = OpLoad %float %29

View File

@ -10,7 +10,7 @@ void main_1() {
float a = 0.0f; float a = 0.0f;
const uint scalar_offset = ((16u * uint(0))) / 4; const uint scalar_offset = ((16u * uint(0))) / 4;
const float x_30 = asfloat(x_6[scalar_offset / 4][scalar_offset % 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 float x_32 = a;
const uint scalar_offset_1 = ((16u * uint(0))) / 4; const uint scalar_offset_1 = ((16u * uint(0))) / 4;
const float x_34 = asfloat(x_6[scalar_offset_1 / 4][scalar_offset_1 % 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> #include <metal_stdlib>
using namespace metal; 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) { void main_1(constant buf0& x_6, constant buf1& x_8, thread float4* const tint_symbol_4) {
float a = 0.0f; float a = 0.0f;
float const x_30 = x_6.x_GLF_uniform_float_values.arr[0].el; 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_32 = a;
float const x_34 = x_6.x_GLF_uniform_float_values.arr[0].el; float const x_34 = x_6.x_GLF_uniform_float_values.arr[0].el;
if ((x_32 == x_34)) { 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; 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 ; SPIR-V
; Version: 1.3 ; Version: 1.3
; Generator: Google Tint Compiler; 0 ; Generator: Google Tint Compiler; 0
; Bound: 66 ; Bound: 70
; Schema: 0 ; Schema: 0
OpCapability Shader OpCapability Shader
%34 = OpExtInstImport "GLSL.std.450"
OpMemoryModel Logical GLSL450 OpMemoryModel Logical GLSL450
OpEntryPoint Fragment %main "main" %tint_symbol_1 OpEntryPoint Fragment %main "main" %tint_symbol_1
OpExecutionMode %main OriginUpperLeft OpExecutionMode %main OriginUpperLeft
@ -66,52 +67,55 @@
%bool = OpTypeBool %bool = OpTypeBool
%_ptr_Uniform_int = OpTypePointer Uniform %int %_ptr_Uniform_int = OpTypePointer Uniform %int
%main_out = OpTypeStruct %v4float %main_out = OpTypeStruct %v4float
%54 = OpTypeFunction %void %main_out %58 = OpTypeFunction %void %main_out
%main_1 = OpFunction %void None %20 %main_1 = OpFunction %void None %20
%23 = OpLabel %23 = OpLabel
%a = OpVariable %_ptr_Function_float Function %26 %a = OpVariable %_ptr_Function_float Function %26
%30 = OpAccessChain %_ptr_Uniform_float %x_6 %uint_0 %int_0 %30 = OpAccessChain %_ptr_Uniform_float %x_6 %uint_0 %int_0
%31 = OpLoad %float %30 %31 = OpLoad %float %30
%33 = OpFMod %float %31 %float_1 %35 = OpFDiv %float %31 %float_1
OpStore %a %33 %33 = OpExtInst %float %34 Floor %35
%34 = OpLoad %float %a %36 = OpFMul %float %float_1 %33
%35 = OpAccessChain %_ptr_Uniform_float %x_6 %uint_0 %int_0 %37 = OpFSub %float %31 %36
%36 = OpLoad %float %35 OpStore %a %37
%37 = OpFOrdEqual %bool %34 %36 %38 = OpLoad %float %a
OpSelectionMerge %39 None %39 = OpAccessChain %_ptr_Uniform_float %x_6 %uint_0 %int_0
OpBranchConditional %37 %40 %41 %40 = OpLoad %float %39
%40 = OpLabel %41 = OpFOrdEqual %bool %38 %40
%43 = OpAccessChain %_ptr_Uniform_int %x_8 %uint_0 %int_0 OpSelectionMerge %43 None
%44 = OpLoad %int %43 OpBranchConditional %41 %44 %45
%45 = OpLoad %float %a %44 = OpLabel
%46 = OpLoad %float %a
%47 = OpAccessChain %_ptr_Uniform_int %x_8 %uint_0 %int_0 %47 = OpAccessChain %_ptr_Uniform_int %x_8 %uint_0 %int_0
%48 = OpLoad %int %47 %48 = OpLoad %int %47
%49 = OpConvertSToF %float %44 %49 = OpLoad %float %a
%50 = OpConvertSToF %float %48 %50 = OpLoad %float %a
%51 = OpCompositeConstruct %v4float %49 %45 %46 %50 %51 = OpAccessChain %_ptr_Uniform_int %x_8 %uint_0 %int_0
OpStore %x_GLF_color %51 %52 = OpLoad %int %51
OpBranch %39 %53 = OpConvertSToF %float %48
%41 = OpLabel %54 = OpConvertSToF %float %52
%52 = OpLoad %float %a %55 = OpCompositeConstruct %v4float %53 %49 %50 %54
%53 = OpCompositeConstruct %v4float %52 %52 %52 %52 OpStore %x_GLF_color %55
OpStore %x_GLF_color %53 OpBranch %43
OpBranch %39 %45 = OpLabel
%39 = OpLabel %56 = OpLoad %float %a
%57 = OpCompositeConstruct %v4float %56 %56 %56 %56
OpStore %x_GLF_color %57
OpBranch %43
%43 = OpLabel
OpReturn OpReturn
OpFunctionEnd OpFunctionEnd
%tint_symbol_2 = OpFunction %void None %54 %tint_symbol_2 = OpFunction %void None %58
%tint_symbol = OpFunctionParameter %main_out %tint_symbol = OpFunctionParameter %main_out
%58 = OpLabel %62 = OpLabel
%59 = OpCompositeExtract %v4float %tint_symbol 0 %63 = OpCompositeExtract %v4float %tint_symbol 0
OpStore %tint_symbol_1 %59 OpStore %tint_symbol_1 %63
OpReturn OpReturn
OpFunctionEnd OpFunctionEnd
%main = OpFunction %void None %20 %main = OpFunction %void None %20
%61 = OpLabel %65 = OpLabel
%62 = OpFunctionCall %void %main_1 %66 = OpFunctionCall %void %main_1
%64 = OpLoad %v4float %x_GLF_color %68 = OpLoad %v4float %x_GLF_color
%65 = OpCompositeConstruct %main_out %64 %69 = OpCompositeConstruct %main_out %68
%63 = OpFunctionCall %void %tint_symbol_2 %65 %67 = OpFunctionCall %void %tint_symbol_2 %69
OpReturn OpReturn
OpFunctionEnd OpFunctionEnd

View File

@ -21,7 +21,7 @@ var<private> x_GLF_color : vec4<f32>;
fn main_1() { fn main_1() {
var a : f32; var a : f32;
let x_30 : f32 = x_6.x_GLF_uniform_float_values[0]; 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_32 : f32 = a;
let x_34 : f32 = x_6.x_GLF_uniform_float_values[0]; let x_34 : f32 = x_6.x_GLF_uniform_float_values[0];
if ((x_32 == x_34)) { if ((x_32 == x_34)) {

View File

@ -1,5 +1,3 @@
SKIP: FAILED
#include <metal_stdlib> #include <metal_stdlib>
using namespace metal; 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) { void main_1(constant buf0& x_6, constant buf1& x_8, thread float4* const tint_symbol_4) {
float a = 0.0f; float a = 0.0f;
float const x_30 = x_6.x_GLF_uniform_float_values.arr[0].el; 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_32 = a;
float const x_34 = x_6.x_GLF_uniform_float_values.arr[0].el; float const x_34 = x_6.x_GLF_uniform_float_values.arr[0].el;
if ((x_32 == x_34)) { 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; 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 %a = OpVariable %_ptr_Function_float Function %26
%30 = OpAccessChain %_ptr_Uniform_float %x_6 %uint_0 %int_0 %30 = OpAccessChain %_ptr_Uniform_float %x_6 %uint_0 %int_0
%31 = OpLoad %float %30 %31 = OpLoad %float %30
%33 = OpFMod %float %31 %float_1 %33 = OpFRem %float %31 %float_1
OpStore %a %33 OpStore %a %33
%34 = OpLoad %float %a %34 = OpLoad %float %a
%35 = OpAccessChain %_ptr_Uniform_float %x_6 %uint_0 %int_0 %35 = OpAccessChain %_ptr_Uniform_float %x_6 %uint_0 %int_0

View File

@ -1,5 +1,3 @@
SKIP: FAILED
#include <metal_stdlib> #include <metal_stdlib>
using namespace metal; 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_86 = b;
float const x_88 = x_7.x_GLF_uniform_float_values.arr[2].el; 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; 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_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_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; 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; 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> #include <metal_stdlib>
using namespace metal; 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_86 = b;
float const x_88 = x_7.x_GLF_uniform_float_values.arr[2].el; 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; 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_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_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; 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; 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; x_56_phi = x_68;
} else { } else {
x_76_phi = x_55; 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_75 = (x_55 + 100.0f);
x_76_phi = x_75; x_76_phi = x_75;
} }
@ -121,7 +121,7 @@ void main_1() {
x_93_phi = x_105; x_93_phi = x_105;
} else { } else {
x_113_phi = x_92; 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_112 = (x_92 + 100.0f);
x_113_phi = x_112; x_113_phi = x_112;
} }

View File

@ -1,5 +1,3 @@
SKIP: FAILED
#include <metal_stdlib> #include <metal_stdlib>
using namespace metal; 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; x_56_phi = x_68;
} else { } else {
x_76_phi = x_55; 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_75 = (x_55 + 100.0f);
x_76_phi = x_75; 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; x_93_phi = x_105;
} else { } else {
x_113_phi = x_92; 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_112 = (x_92 + 100.0f);
x_113_phi = x_112; 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; 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 ; SPIR-V
; Version: 1.3 ; Version: 1.3
; Generator: Google Tint Compiler; 0 ; Generator: Google Tint Compiler; 0
; Bound: 254 ; Bound: 264
; Schema: 0 ; Schema: 0
OpCapability Shader OpCapability Shader
%56 = OpExtInstImport "GLSL.std.450" %56 = OpExtInstImport "GLSL.std.450"
@ -118,7 +118,7 @@
%int_3 = OpConstant %int 3 %int_3 = OpConstant %int 3
%float_1 = OpConstant %float 1 %float_1 = OpConstant %float 1
%main_out = OpTypeStruct %v4float %main_out = OpTypeStruct %v4float
%241 = OpTypeFunction %void %main_out %251 = OpTypeFunction %void %main_out
%main_1 = OpFunction %void None %15 %main_1 = OpFunction %void None %15
%18 = OpLabel %18 = OpLabel
%c = OpVariable %_ptr_Function_v3float Function %22 %c = OpVariable %_ptr_Function_v3float Function %22
@ -207,243 +207,253 @@
OpStore %x_76_phi %97 OpStore %x_76_phi %97
%98 = OpConvertSToF %float %75 %98 = OpConvertSToF %float %75
%99 = OpExtInst %float %56 RoundEven %55 %99 = OpExtInst %float %56 RoundEven %55
%100 = OpFMod %float %98 %99 %101 = OpConvertSToF %float %75
%102 = OpFOrdLessThanEqual %bool %100 %float_0_00999999978 %102 = OpExtInst %float %56 RoundEven %55
OpSelectionMerge %103 None %103 = OpFDiv %float %101 %102
OpBranchConditional %102 %104 %103 %100 = OpExtInst %float %56 Floor %103
%104 = OpLabel %104 = OpFMul %float %99 %100
%105 = OpLoad %float %x_55 %105 = OpFSub %float %98 %104
%107 = OpFAdd %float %105 %float_100 %107 = OpFOrdLessThanEqual %bool %105 %float_0_00999999978
OpStore %x_75 %107 OpSelectionMerge %108 None
%108 = OpLoad %float %x_75 OpBranchConditional %107 %109 %108
OpStore %x_76_phi %108 %109 = OpLabel
OpBranch %103 %110 = OpLoad %float %x_55
%103 = OpLabel %112 = OpFAdd %float %110 %float_100
%109 = OpLoad %float %x_76_phi OpStore %x_75 %112
OpStore %x_76 %109 %113 = OpLoad %float %x_75
%110 = OpLoad %float %x_76 OpStore %x_76_phi %113
OpStore %x_56_phi %110 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 OpBranch %90
%90 = OpLabel %90 = OpLabel
%111 = OpLoad %float %x_56_phi %116 = OpLoad %float %x_56_phi
OpStore %x_56 %111 OpStore %x_56 %116
%112 = OpConvertSToF %float %75 %117 = OpConvertSToF %float %75
%113 = OpLoad %float %x_51 %118 = OpLoad %float %x_51
%114 = OpFOrdGreaterThanEqual %bool %112 %113 %119 = OpFOrdGreaterThanEqual %bool %117 %118
OpSelectionMerge %115 None OpSelectionMerge %120 None
OpBranchConditional %114 %116 %115 OpBranchConditional %119 %121 %120
%116 = OpLabel %121 = OpLabel
%117 = OpLoad %float %x_56 %122 = OpLoad %float %x_56
OpStore %x_81_phi %117 OpStore %x_81_phi %122
%118 = OpLoad %float %x_56 %123 = OpLoad %float %x_56
OpStore %x_82_phi %118 OpStore %x_82_phi %123
OpStore %x_83_phi %true OpStore %x_83_phi %true
OpBranch %67 OpBranch %67
%115 = OpLabel %120 = OpLabel
OpBranch %68 OpBranch %68
%68 = OpLabel %68 = OpLabel
%120 = OpIAdd %int %75 %int_1 %125 = OpIAdd %int %75 %int_1
OpStore %x_59 %120 OpStore %x_59 %125
%121 = OpLoad %float %x_56 %126 = OpLoad %float %x_56
OpStore %x_55_phi %121 OpStore %x_55_phi %126
%122 = OpLoad %int %x_59 %127 = OpLoad %int %x_59
OpStore %x_58_phi %122 OpStore %x_58_phi %127
OpBranch %66 OpBranch %66
%67 = OpLabel %67 = OpLabel
%123 = OpLoad %float %x_81_phi %128 = OpLoad %float %x_81_phi
OpStore %x_81 %123 OpStore %x_81 %128
%124 = OpLoad %float %x_82_phi %129 = OpLoad %float %x_82_phi
OpStore %x_82 %124 OpStore %x_82 %129
%125 = OpLoad %bool %x_83_phi %130 = OpLoad %bool %x_83_phi
%126 = OpLoad %float %x_81 %131 = OpLoad %float %x_81
OpStore %x_85_phi %126 OpStore %x_85_phi %131
OpSelectionMerge %127 None OpSelectionMerge %132 None
OpBranchConditional %125 %128 %127 OpBranchConditional %130 %133 %132
%128 = OpLabel %133 = OpLabel
OpBranch %62 OpBranch %62
%127 = OpLabel %132 = OpLabel
%129 = OpLoad %float %x_82 %134 = OpLoad %float %x_82
OpStore %x_85_phi %129 OpStore %x_85_phi %134
OpBranch %62 OpBranch %62
%62 = OpLabel %62 = OpLabel
%138 = OpLoad %float %x_85_phi %143 = OpLoad %float %x_85_phi
%139 = OpAccessChain %_ptr_Function_float %c %uint_0 %144 = OpAccessChain %_ptr_Function_float %c %uint_0
OpStore %139 %138 OpStore %144 %143
%141 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 %146 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1
%142 = OpLoad %float %141 %147 = OpLoad %float %146
OpStore %x_88 %142 OpStore %x_88 %147
OpSelectionMerge %143 None OpSelectionMerge %148 None
OpSwitch %uint_0 %144 OpSwitch %uint_0 %149
%144 = OpLabel %149 = OpLabel
OpStore %x_92_phi %float_n0_5 OpStore %x_92_phi %float_n0_5
OpStore %x_95_phi %int_1 OpStore %x_95_phi %int_1
OpBranch %145 OpBranch %150
%145 = OpLabel %150 = OpLabel
OpLoopMerge %146 %147 None 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 OpBranch %148
%148 = OpLabel %148 = OpLabel
%153 = OpLoad %float %x_92_phi %210 = OpLoad %float %x_122_phi
OpStore %x_92 %153 %211 = OpAccessChain %_ptr_Function_float %c %uint_1
%154 = OpLoad %int %x_95_phi OpStore %211 %210
OpStore %x_118_phi %float_0 %212 = OpAccessChain %_ptr_Function_float %c %uint_0
%155 = OpLoad %float %x_92 %213 = OpLoad %float %212
OpStore %x_119_phi %155 %214 = OpAccessChain %_ptr_Function_float %c %uint_1
OpStore %x_120_phi %false %215 = OpLoad %float %214
%156 = OpSLessThan %bool %154 %int_800 %217 = OpAccessChain %_ptr_Function_float %c %uint_2
OpSelectionMerge %157 None %218 = OpFAdd %float %213 %215
OpBranchConditional %156 %158 %159 OpStore %217 %218
%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
OpStore %x_129_phi %int_0 OpStore %x_129_phi %int_0
OpBranch %209 OpBranch %219
%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
%219 = OpLabel %219 = OpLabel
OpBranch %210 OpLoopMerge %220 %221 None
%217 = OpLabel OpBranch %222
%220 = OpAccessChain %_ptr_Function_float %c %214 %222 = OpLabel
%221 = OpLoad %float %220 %224 = OpLoad %int %x_129_phi
%223 = OpFOrdGreaterThanEqual %bool %221 %float_1 %226 = OpSLessThan %bool %224 %int_3
OpSelectionMerge %224 None OpSelectionMerge %227 None
OpBranchConditional %223 %225 %224 OpBranchConditional %226 %228 %229
%225 = OpLabel %228 = OpLabel
%226 = OpAccessChain %_ptr_Function_float %c %214 OpBranch %227
%227 = OpLoad %float %226 %229 = OpLabel
%228 = OpAccessChain %_ptr_Function_float %c %214 OpBranch %220
%229 = OpLoad %float %228 %227 = OpLabel
%230 = OpAccessChain %_ptr_Function_float %c %214 %230 = OpAccessChain %_ptr_Function_float %c %224
%231 = OpFMul %float %227 %229 %231 = OpLoad %float %230
OpStore %230 %231 %233 = OpFOrdGreaterThanEqual %bool %231 %float_1
OpBranch %224 OpSelectionMerge %234 None
%224 = OpLabel OpBranchConditional %233 %235 %234
OpBranch %211 %235 = OpLabel
%211 = OpLabel %236 = OpAccessChain %_ptr_Function_float %c %224
%232 = OpIAdd %int %214 %int_1 %237 = OpLoad %float %236
OpStore %x_130 %232 %238 = OpAccessChain %_ptr_Function_float %c %224
%233 = OpLoad %int %x_130 %239 = OpLoad %float %238
OpStore %x_129_phi %233 %240 = OpAccessChain %_ptr_Function_float %c %224
OpBranch %209 %241 = OpFMul %float %237 %239
%210 = OpLabel OpStore %240 %241
%234 = OpLoad %v3float %c OpBranch %234
%236 = OpExtInst %v3float %56 FAbs %234 %234 = OpLabel
%235 = OpExtInst %v3float %56 Normalize %236 OpBranch %221
%237 = OpCompositeExtract %float %235 0 %221 = OpLabel
%238 = OpCompositeExtract %float %235 1 %242 = OpIAdd %int %224 %int_1
%239 = OpCompositeExtract %float %235 2 OpStore %x_130 %242
%240 = OpCompositeConstruct %v4float %237 %238 %239 %float_1 %243 = OpLoad %int %x_130
OpStore %x_GLF_color %240 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 OpReturn
OpFunctionEnd OpFunctionEnd
%tint_symbol_3 = OpFunction %void None %241 %tint_symbol_3 = OpFunction %void None %251
%tint_symbol_1 = OpFunctionParameter %main_out %tint_symbol_1 = OpFunctionParameter %main_out
%245 = OpLabel %255 = OpLabel
%246 = OpCompositeExtract %v4float %tint_symbol_1 0 %256 = OpCompositeExtract %v4float %tint_symbol_1 0
OpStore %tint_symbol_2 %246 OpStore %tint_symbol_2 %256
OpReturn OpReturn
OpFunctionEnd OpFunctionEnd
%main = OpFunction %void None %15 %main = OpFunction %void None %15
%248 = OpLabel %258 = OpLabel
%249 = OpLoad %v4float %tint_symbol %259 = OpLoad %v4float %tint_symbol
OpStore %gl_FragCoord %249 OpStore %gl_FragCoord %259
%250 = OpFunctionCall %void %main_1 %260 = OpFunctionCall %void %main_1
%252 = OpLoad %v4float %x_GLF_color %262 = OpLoad %v4float %x_GLF_color
%253 = OpCompositeConstruct %main_out %252 %263 = OpCompositeConstruct %main_out %262
%251 = OpFunctionCall %void %tint_symbol_3 %253 %261 = OpFunctionCall %void %tint_symbol_3 %263
OpReturn OpReturn
OpFunctionEnd OpFunctionEnd

View File

@ -55,7 +55,7 @@ fn main_1() {
x_56_phi = x_68; x_56_phi = x_68;
} else { } else {
x_76_phi = x_55; 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_75 = (x_55 + 100.0);
x_76_phi = x_75; x_76_phi = x_75;
} }
@ -123,7 +123,7 @@ fn main_1() {
x_93_phi = x_105; x_93_phi = x_105;
} else { } else {
x_113_phi = x_92; 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_112 = (x_92 + 100.0);
x_113_phi = x_112; x_113_phi = x_112;
} }

View File

@ -1,5 +1,3 @@
SKIP: FAILED
#include <metal_stdlib> #include <metal_stdlib>
using namespace metal; 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; x_56_phi = x_68;
} else { } else {
x_76_phi = x_55; 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_75 = (x_55 + 100.0f);
x_76_phi = x_75; 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; x_93_phi = x_105;
} else { } else {
x_113_phi = x_92; 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_112 = (x_92 + 100.0f);
x_113_phi = x_112; 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; 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 OpStore %x_76_phi %97
%98 = OpConvertSToF %float %75 %98 = OpConvertSToF %float %75
%99 = OpExtInst %float %56 RoundEven %55 %99 = OpExtInst %float %56 RoundEven %55
%100 = OpFMod %float %98 %99 %100 = OpFRem %float %98 %99
%102 = OpFOrdLessThanEqual %bool %100 %float_0_00999999978 %102 = OpFOrdLessThanEqual %bool %100 %float_0_00999999978
OpSelectionMerge %103 None OpSelectionMerge %103 None
OpBranchConditional %102 %104 %103 OpBranchConditional %102 %104 %103
@ -313,7 +313,7 @@
OpStore %x_113_phi %170 OpStore %x_113_phi %170
%171 = OpConvertSToF %float %154 %171 = OpConvertSToF %float %154
%172 = OpExtInst %float %56 RoundEven %55 %172 = OpExtInst %float %56 RoundEven %55
%173 = OpFMod %float %171 %172 %173 = OpFRem %float %171 %172
%174 = OpFOrdLessThanEqual %bool %173 %float_0_00999999978 %174 = OpFOrdLessThanEqual %bool %173 %float_0_00999999978
OpSelectionMerge %175 None OpSelectionMerge %175 None
OpBranchConditional %174 %176 %175 OpBranchConditional %174 %176 %175

View File

@ -56,7 +56,7 @@ void main_1() {
x_58_phi = x_70; x_58_phi = x_70;
} else { } else {
x_78_phi = x_57; 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_77 = (x_57 + 100.0f);
x_78_phi = x_77; x_78_phi = x_77;
} }
@ -126,7 +126,7 @@ void main_1() {
x_99_phi = x_111; x_99_phi = x_111;
} else { } else {
x_119_phi = x_98; 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_118 = (x_98 + 100.0f);
x_119_phi = x_118; x_119_phi = x_118;
} }

View File

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

View File

@ -57,7 +57,7 @@ fn main_1() {
x_58_phi = x_70; x_58_phi = x_70;
} else { } else {
x_78_phi = x_57; 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_77 = (x_57 + 100.0);
x_78_phi = x_77; x_78_phi = x_77;
} }
@ -128,7 +128,7 @@ fn main_1() {
x_99_phi = x_111; x_99_phi = x_111;
} else { } else {
x_119_phi = x_98; 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_118 = (x_98 + 100.0);
x_119_phi = x_118; x_119_phi = x_118;
} }

View File

@ -1,5 +1,3 @@
SKIP: FAILED
#include <metal_stdlib> #include <metal_stdlib>
using namespace metal; 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; x_58_phi = x_70;
} else { } else {
x_78_phi = x_57; 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_77 = (x_57 + 100.0f);
x_78_phi = x_77; 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; x_99_phi = x_111;
} else { } else {
x_119_phi = x_98; 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_118 = (x_98 + 100.0f);
x_119_phi = x_118; 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; 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 OpStore %x_78_phi %100
%101 = OpConvertSToF %float %79 %101 = OpConvertSToF %float %79
%102 = OpExtInst %float %58 RoundEven %57 %102 = OpExtInst %float %58 RoundEven %57
%103 = OpFMod %float %101 %102 %103 = OpFRem %float %101 %102
%105 = OpFOrdLessThanEqual %bool %103 %float_0_00999999978 %105 = OpFOrdLessThanEqual %bool %103 %float_0_00999999978
OpSelectionMerge %106 None OpSelectionMerge %106 None
OpBranchConditional %105 %107 %106 OpBranchConditional %105 %107 %106
@ -326,7 +326,7 @@
OpStore %x_119_phi %184 OpStore %x_119_phi %184
%185 = OpConvertSToF %float %168 %185 = OpConvertSToF %float %168
%186 = OpExtInst %float %58 RoundEven %57 %186 = OpExtInst %float %58 RoundEven %57
%187 = OpFMod %float %185 %186 %187 = OpFRem %float %185 %186
%188 = OpFOrdLessThanEqual %bool %187 %float_0_00999999978 %188 = OpFOrdLessThanEqual %bool %187 %float_0_00999999978
OpSelectionMerge %189 None OpSelectionMerge %189 None
OpBranchConditional %188 %190 %189 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 static float4 gl_FragCoord = float4(0.0f, 0.0f, 0.0f, 0.0f);
******************************************************************** cbuffer cbuffer_x_6 : register(b0, space0) {
* The tint shader compiler has encountered an unexpected error. * uint4 x_6[1];
* * };
* Please help us fix this issue by submitting a bug report at * static float4 x_GLF_color = float4(0.0f, 0.0f, 0.0f, 0.0f);
* crbug.com/tint with the source program that triggered the bug. *
********************************************************************
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; x_56_phi = x_68;
} else { } else {
x_76_phi = x_55; 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_75 = (x_55 + 100.0f);
x_76_phi = x_75; x_76_phi = x_75;
} }
@ -121,7 +121,7 @@ void main_1() {
x_93_phi = x_113; x_93_phi = x_113;
} else { } else {
x_112_phi = x_92; 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_111 = (x_92 + 100.0f);
x_112_phi = x_111; x_112_phi = x_111;
} }

View File

@ -1,5 +1,3 @@
SKIP: FAILED
#include <metal_stdlib> #include <metal_stdlib>
using namespace metal; 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; x_56_phi = x_68;
} else { } else {
x_76_phi = x_55; 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_75 = (x_55 + 100.0f);
x_76_phi = x_75; 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; x_93_phi = x_113;
} else { } else {
x_112_phi = x_92; 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_111 = (x_92 + 100.0f);
x_112_phi = x_111; 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; 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 ; SPIR-V
; Version: 1.3 ; Version: 1.3
; Generator: Google Tint Compiler; 0 ; Generator: Google Tint Compiler; 0
; Bound: 254 ; Bound: 264
; Schema: 0 ; Schema: 0
OpCapability Shader OpCapability Shader
%56 = OpExtInstImport "GLSL.std.450" %56 = OpExtInstImport "GLSL.std.450"
@ -118,7 +118,7 @@
%int_3 = OpConstant %int 3 %int_3 = OpConstant %int 3
%float_1 = OpConstant %float 1 %float_1 = OpConstant %float 1
%main_out = OpTypeStruct %v4float %main_out = OpTypeStruct %v4float
%241 = OpTypeFunction %void %main_out %251 = OpTypeFunction %void %main_out
%main_1 = OpFunction %void None %15 %main_1 = OpFunction %void None %15
%18 = OpLabel %18 = OpLabel
%c = OpVariable %_ptr_Function_v3float Function %22 %c = OpVariable %_ptr_Function_v3float Function %22
@ -207,243 +207,253 @@
OpStore %x_76_phi %97 OpStore %x_76_phi %97
%98 = OpConvertSToF %float %75 %98 = OpConvertSToF %float %75
%99 = OpExtInst %float %56 RoundEven %55 %99 = OpExtInst %float %56 RoundEven %55
%100 = OpFMod %float %98 %99 %101 = OpConvertSToF %float %75
%102 = OpFOrdLessThanEqual %bool %100 %float_0_00999999978 %102 = OpExtInst %float %56 RoundEven %55
OpSelectionMerge %103 None %103 = OpFDiv %float %101 %102
OpBranchConditional %102 %104 %103 %100 = OpExtInst %float %56 Floor %103
%104 = OpLabel %104 = OpFMul %float %99 %100
%105 = OpLoad %float %x_55 %105 = OpFSub %float %98 %104
%107 = OpFAdd %float %105 %float_100 %107 = OpFOrdLessThanEqual %bool %105 %float_0_00999999978
OpStore %x_75 %107 OpSelectionMerge %108 None
%108 = OpLoad %float %x_75 OpBranchConditional %107 %109 %108
OpStore %x_76_phi %108 %109 = OpLabel
OpBranch %103 %110 = OpLoad %float %x_55
%103 = OpLabel %112 = OpFAdd %float %110 %float_100
%109 = OpLoad %float %x_76_phi OpStore %x_75 %112
OpStore %x_76 %109 %113 = OpLoad %float %x_75
%110 = OpLoad %float %x_76 OpStore %x_76_phi %113
OpStore %x_56_phi %110 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 OpBranch %90
%90 = OpLabel %90 = OpLabel
%111 = OpLoad %float %x_56_phi %116 = OpLoad %float %x_56_phi
OpStore %x_56 %111 OpStore %x_56 %116
%112 = OpConvertSToF %float %75 %117 = OpConvertSToF %float %75
%113 = OpLoad %float %x_51 %118 = OpLoad %float %x_51
%114 = OpFOrdGreaterThanEqual %bool %112 %113 %119 = OpFOrdGreaterThanEqual %bool %117 %118
OpSelectionMerge %115 None OpSelectionMerge %120 None
OpBranchConditional %114 %116 %115 OpBranchConditional %119 %121 %120
%116 = OpLabel %121 = OpLabel
%117 = OpLoad %float %x_56 %122 = OpLoad %float %x_56
OpStore %x_81_phi %117 OpStore %x_81_phi %122
%118 = OpLoad %float %x_56 %123 = OpLoad %float %x_56
OpStore %x_82_phi %118 OpStore %x_82_phi %123
OpStore %x_83_phi %true OpStore %x_83_phi %true
OpBranch %67 OpBranch %67
%115 = OpLabel %120 = OpLabel
OpBranch %68 OpBranch %68
%68 = OpLabel %68 = OpLabel
%120 = OpIAdd %int %75 %int_1 %125 = OpIAdd %int %75 %int_1
OpStore %x_59 %120 OpStore %x_59 %125
%121 = OpLoad %float %x_56 %126 = OpLoad %float %x_56
OpStore %x_55_phi %121 OpStore %x_55_phi %126
%122 = OpLoad %int %x_59 %127 = OpLoad %int %x_59
OpStore %x_58_phi %122 OpStore %x_58_phi %127
OpBranch %66 OpBranch %66
%67 = OpLabel %67 = OpLabel
%123 = OpLoad %float %x_81_phi %128 = OpLoad %float %x_81_phi
OpStore %x_81 %123 OpStore %x_81 %128
%124 = OpLoad %float %x_82_phi %129 = OpLoad %float %x_82_phi
OpStore %x_82 %124 OpStore %x_82 %129
%125 = OpLoad %bool %x_83_phi %130 = OpLoad %bool %x_83_phi
%126 = OpLoad %float %x_81 %131 = OpLoad %float %x_81
OpStore %x_85_phi %126 OpStore %x_85_phi %131
OpSelectionMerge %127 None OpSelectionMerge %132 None
OpBranchConditional %125 %128 %127 OpBranchConditional %130 %133 %132
%128 = OpLabel %133 = OpLabel
OpBranch %62 OpBranch %62
%127 = OpLabel %132 = OpLabel
%129 = OpLoad %float %x_82 %134 = OpLoad %float %x_82
OpStore %x_85_phi %129 OpStore %x_85_phi %134
OpBranch %62 OpBranch %62
%62 = OpLabel %62 = OpLabel
%138 = OpLoad %float %x_85_phi %143 = OpLoad %float %x_85_phi
%139 = OpAccessChain %_ptr_Function_float %c %uint_0 %144 = OpAccessChain %_ptr_Function_float %c %uint_0
OpStore %139 %138 OpStore %144 %143
%141 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 %146 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1
%142 = OpLoad %float %141 %147 = OpLoad %float %146
OpStore %x_88 %142 OpStore %x_88 %147
OpSelectionMerge %143 None OpSelectionMerge %148 None
OpSwitch %uint_0 %144 OpSwitch %uint_0 %149
%144 = OpLabel %149 = OpLabel
OpStore %x_92_phi %float_n0_5 OpStore %x_92_phi %float_n0_5
OpStore %x_95_phi %int_1 OpStore %x_95_phi %int_1
OpBranch %145 OpBranch %150
%145 = OpLabel %150 = OpLabel
OpLoopMerge %146 %147 None 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 OpBranch %148
%148 = OpLabel %148 = OpLabel
%153 = OpLoad %float %x_92_phi %210 = OpLoad %float %x_122_phi
OpStore %x_92 %153 %211 = OpAccessChain %_ptr_Function_float %c %uint_1
%154 = OpLoad %int %x_95_phi OpStore %211 %210
OpStore %x_118_phi %float_0 %212 = OpAccessChain %_ptr_Function_float %c %uint_0
%155 = OpLoad %float %x_92 %213 = OpLoad %float %212
OpStore %x_119_phi %155 %214 = OpAccessChain %_ptr_Function_float %c %uint_1
OpStore %x_120_phi %false %215 = OpLoad %float %214
%156 = OpSLessThan %bool %154 %int_800 %217 = OpAccessChain %_ptr_Function_float %c %uint_2
OpSelectionMerge %157 None %218 = OpFAdd %float %213 %215
OpBranchConditional %156 %158 %159 OpStore %217 %218
%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
OpStore %x_129_phi %int_0 OpStore %x_129_phi %int_0
OpBranch %209 OpBranch %219
%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
%219 = OpLabel %219 = OpLabel
OpBranch %210 OpLoopMerge %220 %221 None
%217 = OpLabel OpBranch %222
%220 = OpAccessChain %_ptr_Function_float %c %214 %222 = OpLabel
%221 = OpLoad %float %220 %224 = OpLoad %int %x_129_phi
%223 = OpFOrdGreaterThanEqual %bool %221 %float_1 %226 = OpSLessThan %bool %224 %int_3
OpSelectionMerge %224 None OpSelectionMerge %227 None
OpBranchConditional %223 %225 %224 OpBranchConditional %226 %228 %229
%225 = OpLabel %228 = OpLabel
%226 = OpAccessChain %_ptr_Function_float %c %214 OpBranch %227
%227 = OpLoad %float %226 %229 = OpLabel
%228 = OpAccessChain %_ptr_Function_float %c %214 OpBranch %220
%229 = OpLoad %float %228 %227 = OpLabel
%230 = OpAccessChain %_ptr_Function_float %c %214 %230 = OpAccessChain %_ptr_Function_float %c %224
%231 = OpFMul %float %227 %229 %231 = OpLoad %float %230
OpStore %230 %231 %233 = OpFOrdGreaterThanEqual %bool %231 %float_1
OpBranch %224 OpSelectionMerge %234 None
%224 = OpLabel OpBranchConditional %233 %235 %234
OpBranch %211 %235 = OpLabel
%211 = OpLabel %236 = OpAccessChain %_ptr_Function_float %c %224
%232 = OpIAdd %int %214 %int_1 %237 = OpLoad %float %236
OpStore %x_130 %232 %238 = OpAccessChain %_ptr_Function_float %c %224
%233 = OpLoad %int %x_130 %239 = OpLoad %float %238
OpStore %x_129_phi %233 %240 = OpAccessChain %_ptr_Function_float %c %224
OpBranch %209 %241 = OpFMul %float %237 %239
%210 = OpLabel OpStore %240 %241
%234 = OpLoad %v3float %c OpBranch %234
%236 = OpExtInst %v3float %56 FAbs %234 %234 = OpLabel
%235 = OpExtInst %v3float %56 Normalize %236 OpBranch %221
%237 = OpCompositeExtract %float %235 0 %221 = OpLabel
%238 = OpCompositeExtract %float %235 1 %242 = OpIAdd %int %224 %int_1
%239 = OpCompositeExtract %float %235 2 OpStore %x_130 %242
%240 = OpCompositeConstruct %v4float %237 %238 %239 %float_1 %243 = OpLoad %int %x_130
OpStore %x_GLF_color %240 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 OpReturn
OpFunctionEnd OpFunctionEnd
%tint_symbol_3 = OpFunction %void None %241 %tint_symbol_3 = OpFunction %void None %251
%tint_symbol_1 = OpFunctionParameter %main_out %tint_symbol_1 = OpFunctionParameter %main_out
%245 = OpLabel %255 = OpLabel
%246 = OpCompositeExtract %v4float %tint_symbol_1 0 %256 = OpCompositeExtract %v4float %tint_symbol_1 0
OpStore %tint_symbol_2 %246 OpStore %tint_symbol_2 %256
OpReturn OpReturn
OpFunctionEnd OpFunctionEnd
%main = OpFunction %void None %15 %main = OpFunction %void None %15
%248 = OpLabel %258 = OpLabel
%249 = OpLoad %v4float %tint_symbol %259 = OpLoad %v4float %tint_symbol
OpStore %gl_FragCoord %249 OpStore %gl_FragCoord %259
%250 = OpFunctionCall %void %main_1 %260 = OpFunctionCall %void %main_1
%252 = OpLoad %v4float %x_GLF_color %262 = OpLoad %v4float %x_GLF_color
%253 = OpCompositeConstruct %main_out %252 %263 = OpCompositeConstruct %main_out %262
%251 = OpFunctionCall %void %tint_symbol_3 %253 %261 = OpFunctionCall %void %tint_symbol_3 %263
OpReturn OpReturn
OpFunctionEnd OpFunctionEnd

View File

@ -55,7 +55,7 @@ fn main_1() {
x_56_phi = x_68; x_56_phi = x_68;
} else { } else {
x_76_phi = x_55; 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_75 = (x_55 + 100.0);
x_76_phi = x_75; x_76_phi = x_75;
} }
@ -123,7 +123,7 @@ fn main_1() {
x_93_phi = x_113; x_93_phi = x_113;
} else { } else {
x_112_phi = x_92; 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_111 = (x_92 + 100.0);
x_112_phi = x_111; x_112_phi = x_111;
} }

View File

@ -1,5 +1,3 @@
SKIP: FAILED
#include <metal_stdlib> #include <metal_stdlib>
using namespace metal; 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; x_56_phi = x_68;
} else { } else {
x_76_phi = x_55; 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_75 = (x_55 + 100.0f);
x_76_phi = x_75; 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; x_93_phi = x_113;
} else { } else {
x_112_phi = x_92; 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_111 = (x_92 + 100.0f);
x_112_phi = x_111; 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; 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 OpStore %x_76_phi %97
%98 = OpConvertSToF %float %75 %98 = OpConvertSToF %float %75
%99 = OpExtInst %float %56 RoundEven %55 %99 = OpExtInst %float %56 RoundEven %55
%100 = OpFMod %float %98 %99 %100 = OpFRem %float %98 %99
%102 = OpFOrdLessThanEqual %bool %100 %float_0_00999999978 %102 = OpFOrdLessThanEqual %bool %100 %float_0_00999999978
OpSelectionMerge %103 None OpSelectionMerge %103 None
OpBranchConditional %102 %104 %103 OpBranchConditional %102 %104 %103
@ -313,7 +313,7 @@
OpStore %x_112_phi %170 OpStore %x_112_phi %170
%171 = OpConvertSToF %float %154 %171 = OpConvertSToF %float %154
%172 = OpExtInst %float %56 RoundEven %55 %172 = OpExtInst %float %56 RoundEven %55
%173 = OpFMod %float %171 %172 %173 = OpFRem %float %171 %172
%174 = OpFOrdLessThanEqual %bool %173 %float_0_00999999978 %174 = OpFOrdLessThanEqual %bool %173 %float_0_00999999978
OpSelectionMerge %175 None OpSelectionMerge %175 None
OpBranchConditional %174 %176 %175 OpBranchConditional %174 %176 %175

View File

@ -57,7 +57,7 @@ void main_1() {
x_59_phi = x_71; x_59_phi = x_71;
} else { } else {
x_79_phi = x_58; 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_78 = (x_58 + 100.0f);
x_79_phi = x_78; x_79_phi = x_78;
} }
@ -129,7 +129,7 @@ void main_1() {
x_103_phi = x_115; x_103_phi = x_115;
} else { } else {
x_123_phi = x_102; 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_122 = (x_102 + 100.0f);
x_123_phi = x_122; x_123_phi = x_122;
} }

View File

@ -1,5 +1,3 @@
SKIP: FAILED
#include <metal_stdlib> #include <metal_stdlib>
using namespace metal; 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; x_59_phi = x_71;
} else { } else {
x_79_phi = x_58; 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_78 = (x_58 + 100.0f);
x_79_phi = x_78; 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; x_103_phi = x_115;
} else { } else {
x_123_phi = x_102; 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_122 = (x_102 + 100.0f);
x_123_phi = x_122; 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; 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 ; SPIR-V
; Version: 1.3 ; Version: 1.3
; Generator: Google Tint Compiler; 0 ; Generator: Google Tint Compiler; 0
; Bound: 278 ; Bound: 288
; Schema: 0 ; Schema: 0
OpCapability Shader OpCapability Shader
%59 = OpExtInstImport "GLSL.std.450" %59 = OpExtInstImport "GLSL.std.450"
@ -129,7 +129,7 @@
%int_3 = OpConstant %int 3 %int_3 = OpConstant %int 3
%float_1 = OpConstant %float 1 %float_1 = OpConstant %float 1
%main_out = OpTypeStruct %v4float %main_out = OpTypeStruct %v4float
%265 = OpTypeFunction %void %main_out %275 = OpTypeFunction %void %main_out
%main_1 = OpFunction %void None %18 %main_1 = OpFunction %void None %18
%21 = OpLabel %21 = OpLabel
%c = OpVariable %_ptr_Function_v3float Function %25 %c = OpVariable %_ptr_Function_v3float Function %25
@ -218,273 +218,283 @@
OpStore %x_79_phi %100 OpStore %x_79_phi %100
%101 = OpConvertSToF %float %78 %101 = OpConvertSToF %float %78
%102 = OpExtInst %float %59 RoundEven %58 %102 = OpExtInst %float %59 RoundEven %58
%103 = OpFMod %float %101 %102 %104 = OpConvertSToF %float %78
%105 = OpFOrdLessThanEqual %bool %103 %float_0_00999999978 %105 = OpExtInst %float %59 RoundEven %58
OpSelectionMerge %106 None %106 = OpFDiv %float %104 %105
OpBranchConditional %105 %107 %106 %103 = OpExtInst %float %59 Floor %106
%107 = OpLabel %107 = OpFMul %float %102 %103
%108 = OpLoad %float %x_58 %108 = OpFSub %float %101 %107
%110 = OpFAdd %float %108 %float_100 %110 = OpFOrdLessThanEqual %bool %108 %float_0_00999999978
OpStore %x_78 %110 OpSelectionMerge %111 None
%111 = OpLoad %float %x_78 OpBranchConditional %110 %112 %111
OpStore %x_79_phi %111 %112 = OpLabel
OpBranch %106 %113 = OpLoad %float %x_58
%106 = OpLabel %115 = OpFAdd %float %113 %float_100
%112 = OpLoad %float %x_79_phi OpStore %x_78 %115
OpStore %x_79 %112 %116 = OpLoad %float %x_78
%113 = OpAccessChain %_ptr_Uniform_float %x_6 %uint_0 %uint_0 OpStore %x_79_phi %116
%114 = OpLoad %float %113 OpBranch %111
%116 = OpAccessChain %_ptr_Uniform_float %x_6 %uint_0 %uint_1 %111 = OpLabel
%117 = OpLoad %float %116 %117 = OpLoad %float %x_79_phi
%118 = OpFOrdGreaterThan %bool %114 %117 OpStore %x_79 %117
OpSelectionMerge %119 None %118 = OpAccessChain %_ptr_Uniform_float %x_6 %uint_0 %uint_0
OpBranchConditional %118 %120 %119 %119 = OpLoad %float %118
%120 = OpLabel %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 OpKill
%119 = OpLabel %124 = OpLabel
%121 = OpLoad %float %x_79 %126 = OpLoad %float %x_79
OpStore %x_59_phi %121 OpStore %x_59_phi %126
OpBranch %93 OpBranch %93
%93 = OpLabel %93 = OpLabel
%122 = OpLoad %float %x_59_phi %127 = OpLoad %float %x_59_phi
OpStore %x_59 %122 OpStore %x_59 %127
%123 = OpConvertSToF %float %78 %128 = OpConvertSToF %float %78
%124 = OpLoad %float %x_54 %129 = OpLoad %float %x_54
%125 = OpFOrdGreaterThanEqual %bool %123 %124 %130 = OpFOrdGreaterThanEqual %bool %128 %129
OpSelectionMerge %126 None OpSelectionMerge %131 None
OpBranchConditional %125 %127 %126 OpBranchConditional %130 %132 %131
%127 = OpLabel %132 = OpLabel
%128 = OpLoad %float %x_59 %133 = OpLoad %float %x_59
OpStore %x_91_phi %128 OpStore %x_91_phi %133
%129 = OpLoad %float %x_59 %134 = OpLoad %float %x_59
OpStore %x_92_phi %129 OpStore %x_92_phi %134
OpStore %x_93_phi %true OpStore %x_93_phi %true
OpBranch %70 OpBranch %70
%126 = OpLabel %131 = OpLabel
OpBranch %71 OpBranch %71
%71 = OpLabel %71 = OpLabel
%131 = OpIAdd %int %78 %int_1 %136 = OpIAdd %int %78 %int_1
OpStore %x_62 %131 OpStore %x_62 %136
%132 = OpLoad %float %x_59 %137 = OpLoad %float %x_59
OpStore %x_58_phi %132 OpStore %x_58_phi %137
%133 = OpLoad %int %x_62 %138 = OpLoad %int %x_62
OpStore %x_61_phi %133 OpStore %x_61_phi %138
OpBranch %69 OpBranch %69
%70 = OpLabel %70 = OpLabel
%134 = OpLoad %float %x_91_phi %139 = OpLoad %float %x_91_phi
OpStore %x_91 %134 OpStore %x_91 %139
%135 = OpLoad %float %x_92_phi %140 = OpLoad %float %x_92_phi
OpStore %x_92 %135 OpStore %x_92 %140
%136 = OpLoad %bool %x_93_phi %141 = OpLoad %bool %x_93_phi
%137 = OpLoad %float %x_91 %142 = OpLoad %float %x_91
OpStore %x_95_phi %137 OpStore %x_95_phi %142
OpSelectionMerge %138 None OpSelectionMerge %143 None
OpBranchConditional %136 %139 %138 OpBranchConditional %141 %144 %143
%139 = OpLabel %144 = OpLabel
OpBranch %65 OpBranch %65
%138 = OpLabel %143 = OpLabel
%140 = OpLoad %float %x_92 %145 = OpLoad %float %x_92
OpStore %x_95_phi %140 OpStore %x_95_phi %145
OpBranch %65 OpBranch %65
%65 = OpLabel %65 = OpLabel
%149 = OpLoad %float %x_95_phi %154 = OpLoad %float %x_95_phi
%150 = OpAccessChain %_ptr_Function_float %c %uint_0 %155 = OpAccessChain %_ptr_Function_float %c %uint_0
OpStore %150 %149 OpStore %155 %154
%151 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 %156 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1
%152 = OpLoad %float %151 %157 = OpLoad %float %156
OpStore %x_98 %152 OpStore %x_98 %157
OpSelectionMerge %153 None OpSelectionMerge %158 None
OpSwitch %uint_0 %154 OpSwitch %uint_0 %159
%154 = OpLabel %159 = OpLabel
OpStore %x_102_phi %float_n0_5 OpStore %x_102_phi %float_n0_5
OpStore %x_105_phi %int_1 OpStore %x_105_phi %int_1
OpBranch %155 OpBranch %160
%155 = OpLabel %160 = OpLabel
OpLoopMerge %156 %157 None 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 OpBranch %158
%158 = OpLabel %158 = OpLabel
%163 = OpLoad %float %x_102_phi %227 = OpLoad %float %x_139_phi
OpStore %x_102 %163 %228 = OpAccessChain %_ptr_Function_float %c %uint_1
%164 = OpLoad %int %x_105_phi OpStore %228 %227
OpStore %x_135_phi %float_0 %229 = OpAccessChain %_ptr_Function_float %c %uint_0
%165 = OpLoad %float %x_102 %230 = OpLoad %float %229
OpStore %x_136_phi %165 %231 = OpAccessChain %_ptr_Function_float %c %uint_1
OpStore %x_137_phi %false %232 = OpLoad %float %231
%166 = OpSLessThan %bool %164 %int_800 %234 = OpAccessChain %_ptr_Function_float %c %uint_2
OpSelectionMerge %167 None %235 = OpFAdd %float %230 %232
OpBranchConditional %166 %168 %169 OpStore %234 %235
%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
OpStore %x_146_phi %int_0 OpStore %x_146_phi %int_0
OpBranch %226 OpBranch %236
%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
%236 = OpLabel %236 = OpLabel
OpBranch %227 OpLoopMerge %237 %238 None
%234 = OpLabel OpBranch %239
%237 = OpAccessChain %_ptr_Function_float %c %231 %239 = OpLabel
%238 = OpLoad %float %237 %241 = OpLoad %int %x_146_phi
%240 = OpFOrdGreaterThanEqual %bool %238 %float_1 %243 = OpSLessThan %bool %241 %int_3
OpSelectionMerge %241 None OpSelectionMerge %244 None
OpBranchConditional %240 %242 %241 OpBranchConditional %243 %245 %246
%242 = OpLabel %245 = OpLabel
%243 = OpAccessChain %_ptr_Function_float %c %231 OpBranch %244
%244 = OpLoad %float %243 %246 = OpLabel
%245 = OpAccessChain %_ptr_Function_float %c %231 OpBranch %237
%246 = OpLoad %float %245 %244 = OpLabel
%247 = OpAccessChain %_ptr_Function_float %c %231 %247 = OpAccessChain %_ptr_Function_float %c %241
%248 = OpFMul %float %244 %246 %248 = OpLoad %float %247
OpStore %247 %248 %250 = OpFOrdGreaterThanEqual %bool %248 %float_1
%249 = OpAccessChain %_ptr_Uniform_float %x_6 %uint_0 %uint_0 OpSelectionMerge %251 None
%250 = OpLoad %float %249 OpBranchConditional %250 %252 %251
%251 = OpAccessChain %_ptr_Uniform_float %x_6 %uint_0 %uint_1 %252 = OpLabel
%252 = OpLoad %float %251 %253 = OpAccessChain %_ptr_Function_float %c %241
%253 = OpFOrdGreaterThan %bool %250 %252 %254 = OpLoad %float %253
OpSelectionMerge %254 None %255 = OpAccessChain %_ptr_Function_float %c %241
OpBranchConditional %253 %255 %254 %256 = OpLoad %float %255
%255 = OpLabel %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 OpKill
%254 = OpLabel %264 = OpLabel
OpBranch %241 OpBranch %251
%241 = OpLabel %251 = OpLabel
OpBranch %228 OpBranch %238
%228 = OpLabel %238 = OpLabel
%256 = OpIAdd %int %231 %int_1 %266 = OpIAdd %int %241 %int_1
OpStore %x_147 %256 OpStore %x_147 %266
%257 = OpLoad %int %x_147 %267 = OpLoad %int %x_147
OpStore %x_146_phi %257 OpStore %x_146_phi %267
OpBranch %226 OpBranch %236
%227 = OpLabel %237 = OpLabel
%258 = OpLoad %v3float %c %268 = OpLoad %v3float %c
%260 = OpExtInst %v3float %59 FAbs %258 %270 = OpExtInst %v3float %59 FAbs %268
%259 = OpExtInst %v3float %59 Normalize %260 %269 = OpExtInst %v3float %59 Normalize %270
%261 = OpCompositeExtract %float %259 0 %271 = OpCompositeExtract %float %269 0
%262 = OpCompositeExtract %float %259 1 %272 = OpCompositeExtract %float %269 1
%263 = OpCompositeExtract %float %259 2 %273 = OpCompositeExtract %float %269 2
%264 = OpCompositeConstruct %v4float %261 %262 %263 %float_1 %274 = OpCompositeConstruct %v4float %271 %272 %273 %float_1
OpStore %x_GLF_color %264 OpStore %x_GLF_color %274
OpReturn OpReturn
OpFunctionEnd OpFunctionEnd
%tint_symbol_3 = OpFunction %void None %265 %tint_symbol_3 = OpFunction %void None %275
%tint_symbol_1 = OpFunctionParameter %main_out %tint_symbol_1 = OpFunctionParameter %main_out
%269 = OpLabel %279 = OpLabel
%270 = OpCompositeExtract %v4float %tint_symbol_1 0 %280 = OpCompositeExtract %v4float %tint_symbol_1 0
OpStore %tint_symbol_2 %270 OpStore %tint_symbol_2 %280
OpReturn OpReturn
OpFunctionEnd OpFunctionEnd
%main = OpFunction %void None %18 %main = OpFunction %void None %18
%272 = OpLabel %282 = OpLabel
%273 = OpLoad %v4float %tint_symbol %283 = OpLoad %v4float %tint_symbol
OpStore %gl_FragCoord %273 OpStore %gl_FragCoord %283
%274 = OpFunctionCall %void %main_1 %284 = OpFunctionCall %void %main_1
%276 = OpLoad %v4float %x_GLF_color %286 = OpLoad %v4float %x_GLF_color
%277 = OpCompositeConstruct %main_out %276 %287 = OpCompositeConstruct %main_out %286
%275 = OpFunctionCall %void %tint_symbol_3 %277 %285 = OpFunctionCall %void %tint_symbol_3 %287
OpReturn OpReturn
OpFunctionEnd OpFunctionEnd

View File

@ -62,7 +62,7 @@ fn main_1() {
x_59_phi = x_71; x_59_phi = x_71;
} else { } else {
x_79_phi = x_58; 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_78 = (x_58 + 100.0);
x_79_phi = x_78; x_79_phi = x_78;
} }
@ -135,7 +135,7 @@ fn main_1() {
x_103_phi = x_115; x_103_phi = x_115;
} else { } else {
x_123_phi = x_102; 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_122 = (x_102 + 100.0);
x_123_phi = x_122; x_123_phi = x_122;
} }

View File

@ -1,5 +1,3 @@
SKIP: FAILED
#include <metal_stdlib> #include <metal_stdlib>
using namespace metal; 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; x_59_phi = x_71;
} else { } else {
x_79_phi = x_58; 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_78 = (x_58 + 100.0f);
x_79_phi = x_78; 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; x_103_phi = x_115;
} else { } else {
x_123_phi = x_102; 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_122 = (x_102 + 100.0f);
x_123_phi = x_122; 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; 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 OpStore %x_79_phi %100
%101 = OpConvertSToF %float %78 %101 = OpConvertSToF %float %78
%102 = OpExtInst %float %59 RoundEven %58 %102 = OpExtInst %float %59 RoundEven %58
%103 = OpFMod %float %101 %102 %103 = OpFRem %float %101 %102
%105 = OpFOrdLessThanEqual %bool %103 %float_0_00999999978 %105 = OpFOrdLessThanEqual %bool %103 %float_0_00999999978
OpSelectionMerge %106 None OpSelectionMerge %106 None
OpBranchConditional %105 %107 %106 OpBranchConditional %105 %107 %106
@ -334,7 +334,7 @@
OpStore %x_123_phi %180 OpStore %x_123_phi %180
%181 = OpConvertSToF %float %164 %181 = OpConvertSToF %float %164
%182 = OpExtInst %float %59 RoundEven %58 %182 = OpExtInst %float %59 RoundEven %58
%183 = OpFMod %float %181 %182 %183 = OpFRem %float %181 %182
%184 = OpFOrdLessThanEqual %bool %183 %float_0_00999999978 %184 = OpFOrdLessThanEqual %bool %183 %float_0_00999999978
OpSelectionMerge %185 None OpSelectionMerge %185 None
OpBranchConditional %184 %186 %185 OpBranchConditional %184 %186 %185

View File

@ -20,7 +20,7 @@ float compute_value_f1_f1_(inout float limit, inout float thirty_two) {
} else { } else {
const int x_122 = i; const int x_122 = i;
const float x_124 = thirty_two; 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); result = (result + 100.0f);
} }
} }

View File

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

View File

@ -27,7 +27,7 @@ fn compute_value_f1_f1_(limit : ptr<function, f32>, thirty_two : ptr<function, f
} else { } else {
let x_122 : i32 = i; let x_122 : i32 = i;
let x_124 : f32 = *(thirty_two); 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; let x_130 : f32 = result;
result = (x_130 + 100.0); result = (x_130 + 100.0);
} }

View File

@ -1,5 +1,3 @@
SKIP: FAILED
#include <metal_stdlib> #include <metal_stdlib>
using namespace metal; using namespace metal;
@ -31,7 +29,7 @@ float compute_value_f1_f1_(thread float* const limit, thread float* const thirty
} else { } else {
int const x_122 = i; int const x_122 = i;
float const x_124 = *(thirty_two); 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; float const x_130 = result;
result = (x_130 + 100.0f); 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; 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 %53 = OpLoad %float %thirty_two
%54 = OpConvertSToF %float %51 %54 = OpConvertSToF %float %51
%55 = OpExtInst %float %56 RoundEven %53 %55 = OpExtInst %float %56 RoundEven %53
%57 = OpFMod %float %54 %55 %57 = OpFRem %float %54 %55
%59 = OpFOrdLessThanEqual %bool %57 %float_0_00999999978 %59 = OpFOrdLessThanEqual %bool %57 %float_0_00999999978
OpSelectionMerge %60 None OpSelectionMerge %60 None
OpBranchConditional %59 %61 %60 OpBranchConditional %59 %61 %60

View File

@ -23,7 +23,7 @@ float compute_value_f1_f1_(inout float limit, inout float thirty_two) {
} else { } else {
const int x_136 = i; const int x_136 = i;
const float x_138 = thirty_two; 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); result = (result + 100.0f);
} }
} }

View File

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

View File

@ -34,7 +34,7 @@ fn compute_value_f1_f1_(limit : ptr<function, f32>, thirty_two : ptr<function, f
} else { } else {
let x_136 : i32 = i; let x_136 : i32 = i;
let x_138 : f32 = *(thirty_two); 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; let x_144 : f32 = result;
result = (x_144 + 100.0); result = (x_144 + 100.0);
} }

View File

@ -1,5 +1,3 @@
SKIP: FAILED
#include <metal_stdlib> #include <metal_stdlib>
using namespace metal; using namespace metal;
@ -34,7 +32,7 @@ float compute_value_f1_f1_(thread float* const limit, thread float* const thirty
} else { } else {
int const x_136 = i; int const x_136 = i;
float const x_138 = *(thirty_two); 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; float const x_144 = result;
result = (x_144 + 100.0f); 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; 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 %56 = OpLoad %float %thirty_two
%57 = OpConvertSToF %float %54 %57 = OpConvertSToF %float %54
%58 = OpExtInst %float %59 RoundEven %56 %58 = OpExtInst %float %59 RoundEven %56
%60 = OpFMod %float %57 %58 %60 = OpFRem %float %57 %58
%62 = OpFOrdLessThanEqual %bool %60 %float_0_00999999978 %62 = OpFOrdLessThanEqual %bool %60 %float_0_00999999978
OpSelectionMerge %63 None OpSelectionMerge %63 None
OpBranchConditional %62 %64 %63 OpBranchConditional %62 %64 %63

View File

@ -33,7 +33,7 @@ float compute_value_f1_f1_(inout float limit, inout float thirty_two) {
} else { } else {
const float x_106 = thirty_two; const float x_106 = thirty_two;
x_113_phi = x_91; 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_112 = (x_91 + 100.0f);
x_113_phi = x_112; x_113_phi = x_112;
} }

View File

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

View File

@ -34,7 +34,7 @@ fn compute_value_f1_f1_(limit : ptr<function, f32>, thirty_two : ptr<function, f
} else { } else {
let x_106 : f32 = *(thirty_two); let x_106 : f32 = *(thirty_two);
x_113_phi = x_91; 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_112 = (x_91 + 100.0);
x_113_phi = x_112; x_113_phi = x_112;
} }

View File

@ -1,5 +1,3 @@
SKIP: FAILED
#include <metal_stdlib> #include <metal_stdlib>
using namespace metal; using namespace metal;
@ -38,7 +36,7 @@ float compute_value_f1_f1_(thread float* const limit, thread float* const thirty
} else { } else {
float const x_106 = *(thirty_two); float const x_106 = *(thirty_two);
x_113_phi = x_91; 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_112 = (x_91 + 100.0f);
x_113_phi = x_112; 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; 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 OpStore %x_113_phi %61
%62 = OpConvertSToF %float %39 %62 = OpConvertSToF %float %39
%63 = OpExtInst %float %64 RoundEven %60 %63 = OpExtInst %float %64 RoundEven %60
%65 = OpFMod %float %62 %63 %65 = OpFRem %float %62 %63
%67 = OpFOrdLessThanEqual %bool %65 %float_0_00999999978 %67 = OpFOrdLessThanEqual %bool %65 %float_0_00999999978
OpSelectionMerge %68 None OpSelectionMerge %68 None
OpBranchConditional %67 %69 %68 OpBranchConditional %67 %69 %68

View File

@ -36,7 +36,7 @@ float compute_value_f1_f1_(inout float limit, inout float thirty_two) {
} else { } else {
const float x_118 = thirty_two; const float x_118 = thirty_two;
x_125_phi = x_104; 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_124 = (x_104 + 100.0f);
x_125_phi = x_124; x_125_phi = x_124;
} }

View File

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

View File

@ -41,7 +41,7 @@ fn compute_value_f1_f1_(limit : ptr<function, f32>, thirty_two : ptr<function, f
} else { } else {
let x_118 : f32 = *(thirty_two); let x_118 : f32 = *(thirty_two);
x_125_phi = x_104; 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_124 = (x_104 + 100.0);
x_125_phi = x_124; x_125_phi = x_124;
} }

View File

@ -1,5 +1,3 @@
SKIP: FAILED
#include <metal_stdlib> #include <metal_stdlib>
using namespace metal; using namespace metal;
@ -41,7 +39,7 @@ float compute_value_f1_f1_(thread float* const limit, thread float* const thirty
} else { } else {
float const x_118 = *(thirty_two); float const x_118 = *(thirty_two);
x_125_phi = x_104; 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_124 = (x_104 + 100.0f);
x_125_phi = x_124; 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; 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 OpStore %x_125_phi %64
%65 = OpConvertSToF %float %42 %65 = OpConvertSToF %float %42
%66 = OpExtInst %float %67 RoundEven %63 %66 = OpExtInst %float %67 RoundEven %63
%68 = OpFMod %float %65 %66 %68 = OpFRem %float %65 %66
%70 = OpFOrdLessThanEqual %bool %68 %float_0_00999999978 %70 = OpFOrdLessThanEqual %bool %68 %float_0_00999999978
OpSelectionMerge %71 None OpSelectionMerge %71 None
OpBranchConditional %70 %72 %71 OpBranchConditional %70 %72 %71

View File

@ -23,7 +23,7 @@ float compute_value_f1_f1_(inout float limit, inout float thirty_two) {
} else { } else {
const int x_155 = i; const int x_155 = i;
const float x_157 = thirty_two; 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); result = (result + 100.0f);
} }
} }

View File

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

View File

@ -34,7 +34,7 @@ fn compute_value_f1_f1_(limit : ptr<function, f32>, thirty_two : ptr<function, f
} else { } else {
let x_155 : i32 = i; let x_155 : i32 = i;
let x_157 : f32 = *(thirty_two); 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; let x_163 : f32 = result;
result = (x_163 + 100.0); result = (x_163 + 100.0);
} }

View File

@ -1,5 +1,3 @@
SKIP: FAILED
#include <metal_stdlib> #include <metal_stdlib>
using namespace metal; using namespace metal;
@ -34,7 +32,7 @@ float compute_value_f1_f1_(thread float* const limit, thread float* const thirty
} else { } else {
int const x_155 = i; int const x_155 = i;
float const x_157 = *(thirty_two); 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; float const x_163 = result;
result = (x_163 + 100.0f); 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; 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 %56 = OpLoad %float %thirty_two
%57 = OpConvertSToF %float %54 %57 = OpConvertSToF %float %54
%58 = OpExtInst %float %59 RoundEven %56 %58 = OpExtInst %float %59 RoundEven %56
%60 = OpFMod %float %57 %58 %60 = OpFRem %float %57 %58
%62 = OpFOrdLessThanEqual %bool %60 %float_0_00999999978 %62 = OpFOrdLessThanEqual %bool %60 %float_0_00999999978
OpSelectionMerge %63 None OpSelectionMerge %63 None
OpBranchConditional %62 %64 %63 OpBranchConditional %62 %64 %63

View File

@ -20,7 +20,7 @@ float compute_value_f1_f1_(inout float limit, inout float thirty_two) {
} else { } else {
const int x_147 = i; const int x_147 = i;
const float x_149 = thirty_two; 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); result = (result + 100.0f);
} }
} }

View File

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

View File

@ -27,7 +27,7 @@ fn compute_value_f1_f1_(limit : ptr<function, f32>, thirty_two : ptr<function, f
} else { } else {
let x_147 : i32 = i; let x_147 : i32 = i;
let x_149 : f32 = *(thirty_two); 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; let x_155 : f32 = result;
result = (x_155 + 100.0); result = (x_155 + 100.0);
} }

View File

@ -1,5 +1,3 @@
SKIP: FAILED
#include <metal_stdlib> #include <metal_stdlib>
using namespace metal; using namespace metal;
@ -31,7 +29,7 @@ float compute_value_f1_f1_(thread float* const limit, thread float* const thirty
} else { } else {
int const x_147 = i; int const x_147 = i;
float const x_149 = *(thirty_two); 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; float const x_155 = result;
result = (x_155 + 100.0f); 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; 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 %53 = OpLoad %float %thirty_two
%54 = OpConvertSToF %float %51 %54 = OpConvertSToF %float %51
%55 = OpExtInst %float %56 RoundEven %53 %55 = OpExtInst %float %56 RoundEven %53
%57 = OpFMod %float %54 %55 %57 = OpFRem %float %54 %55
%59 = OpFOrdLessThanEqual %bool %57 %float_0_00999999978 %59 = OpFOrdLessThanEqual %bool %57 %float_0_00999999978
OpSelectionMerge %60 None OpSelectionMerge %60 None
OpBranchConditional %59 %61 %60 OpBranchConditional %59 %61 %60