Created
January 12, 2026 19:19
-
-
Save virtuallyunknown/61c112c53aacb7023704f606e542e697 to your computer and use it in GitHub Desktop.
zlaunch logs
This file has been truncated, but you can view the full file.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| INFO Starting zlaunch daemon version="0.2.0" | |
| DEBUG Config file not found at "/home/decho/.config/zlaunch/config.toml", using defaults | |
| INFO IPC server listening on "/run/user/1000/zlaunch.sock" | |
| INFO Initialized clipboard history | |
| INFO Detected Niri compositor | |
| INFO Starting clipboard monitor | |
| DEBUG Bound to wlr-data-control-manager | |
| DEBUG Bound to wl_seat | |
| DEBUG Created data control device | |
| DEBUG Clipboard selection changed | |
| DEBUG Adding text to clipboard history: 9 chars | |
| INFO Clipboard monitor initialized successfully | |
| INFO Loaded applications count=44 | |
| DEBUG Locale: en-US | |
| DEBUG Parsed 2471 font faces in 54ms. | |
| INFO Presentation support: "VK_KHR_wayland_surface" | |
| INFO Presentation support: "VK_KHR_xcb_surface" | |
| INFO Presentation support: "VK_KHR_xlib_surface" | |
| INFO Presentation support: "VK_EXT_swapchain_colorspace" | |
| INFO Enabling Vulkan Portability | |
| INFO Adapter: "NVIDIA GeForce RTX 4060" | |
| INFO Ray tracing is supported | |
| DEBUG Ray tracing properties: PhysicalDeviceAccelerationStructurePropertiesKHR { | |
| s_type: PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_PROPERTIES_KHR, | |
| p_next: 0x00007ffe469adf10, | |
| max_geometry_count: 16777215, | |
| max_instance_count: 16777215, | |
| max_primitive_count: 536870911, | |
| max_per_stage_descriptor_acceleration_structures: 1048576, | |
| max_per_stage_descriptor_update_after_bind_acceleration_structures: 1048576, | |
| max_descriptor_set_acceleration_structures: 1048576, | |
| max_descriptor_set_update_after_bind_acceleration_structures: 1048576, | |
| min_acceleration_structure_scratch_offset_alignment: 128, | |
| _marker: PhantomData<&()>, | |
| } | |
| DEBUG Adapter AdapterCapabilities { | |
| api_version: 4211013, | |
| properties: PhysicalDeviceProperties { | |
| api_version: 4211013, | |
| driver_version: 2475425856, | |
| vendor_id: 4318, | |
| device_id: 10370, | |
| device_type: DISCRETE_GPU, | |
| device_name: Ok( | |
| "NVIDIA GeForce RTX 4060", | |
| ), | |
| pipeline_cache_uuid: [ | |
| 29, | |
| 251, | |
| 217, | |
| 119, | |
| 119, | |
| 107, | |
| 69, | |
| 24, | |
| 65, | |
| 171, | |
| 161, | |
| 149, | |
| 199, | |
| 104, | |
| 113, | |
| 40, | |
| ], | |
| limits: PhysicalDeviceLimits { | |
| max_image_dimension1_d: 32768, | |
| max_image_dimension2_d: 32768, | |
| max_image_dimension3_d: 16384, | |
| max_image_dimension_cube: 32768, | |
| max_image_array_layers: 2048, | |
| max_texel_buffer_elements: 134217728, | |
| max_uniform_buffer_range: 65536, | |
| max_storage_buffer_range: 4294967295, | |
| max_push_constants_size: 256, | |
| max_memory_allocation_count: 4294967295, | |
| max_sampler_allocation_count: 4000, | |
| buffer_image_granularity: 1024, | |
| sparse_address_space_size: 1099511627776, | |
| max_bound_descriptor_sets: 32, | |
| max_per_stage_descriptor_samplers: 1048576, | |
| max_per_stage_descriptor_uniform_buffers: 1048576, | |
| max_per_stage_descriptor_storage_buffers: 1048576, | |
| max_per_stage_descriptor_sampled_images: 1048576, | |
| max_per_stage_descriptor_storage_images: 1048576, | |
| max_per_stage_descriptor_input_attachments: 1048576, | |
| max_per_stage_resources: 4294967295, | |
| max_descriptor_set_samplers: 1048576, | |
| max_descriptor_set_uniform_buffers: 1048576, | |
| max_descriptor_set_uniform_buffers_dynamic: 15, | |
| max_descriptor_set_storage_buffers: 1048576, | |
| max_descriptor_set_storage_buffers_dynamic: 16, | |
| max_descriptor_set_sampled_images: 1048576, | |
| max_descriptor_set_storage_images: 1048576, | |
| max_descriptor_set_input_attachments: 1048576, | |
| max_vertex_input_attributes: 32, | |
| max_vertex_input_bindings: 32, | |
| max_vertex_input_attribute_offset: 2047, | |
| max_vertex_input_binding_stride: 2048, | |
| max_vertex_output_components: 128, | |
| max_tessellation_generation_level: 64, | |
| max_tessellation_patch_size: 32, | |
| max_tessellation_control_per_vertex_input_components: 128, | |
| max_tessellation_control_per_vertex_output_components: 128, | |
| max_tessellation_control_per_patch_output_components: 120, | |
| max_tessellation_control_total_output_components: 4216, | |
| max_tessellation_evaluation_input_components: 128, | |
| max_tessellation_evaluation_output_components: 128, | |
| max_geometry_shader_invocations: 32, | |
| max_geometry_input_components: 128, | |
| max_geometry_output_components: 128, | |
| max_geometry_output_vertices: 1024, | |
| max_geometry_total_output_components: 1024, | |
| max_fragment_input_components: 128, | |
| max_fragment_output_attachments: 8, | |
| max_fragment_dual_src_attachments: 1, | |
| max_fragment_combined_output_resources: 4294967295, | |
| max_compute_shared_memory_size: 49152, | |
| max_compute_work_group_count: [ | |
| 2147483647, | |
| 65535, | |
| 65535, | |
| ], | |
| max_compute_work_group_invocations: 1024, | |
| max_compute_work_group_size: [ | |
| 1024, | |
| 1024, | |
| 64, | |
| ], | |
| sub_pixel_precision_bits: 8, | |
| sub_texel_precision_bits: 8, | |
| mipmap_precision_bits: 8, | |
| max_draw_indexed_index_value: 4294967295, | |
| max_draw_indirect_count: 4294967295, | |
| max_sampler_lod_bias: 15.0, | |
| max_sampler_anisotropy: 16.0, | |
| max_viewports: 16, | |
| max_viewport_dimensions: [ | |
| 32768, | |
| 32768, | |
| ], | |
| viewport_bounds_range: [ | |
| -65536.0, | |
| 65536.0, | |
| ], | |
| viewport_sub_pixel_bits: 8, | |
| min_memory_map_alignment: 64, | |
| min_texel_buffer_offset_alignment: 16, | |
| min_uniform_buffer_offset_alignment: 64, | |
| min_storage_buffer_offset_alignment: 16, | |
| min_texel_offset: -8, | |
| max_texel_offset: 7, | |
| min_texel_gather_offset: -32, | |
| max_texel_gather_offset: 31, | |
| min_interpolation_offset: -0.5, | |
| max_interpolation_offset: 0.4375, | |
| sub_pixel_interpolation_offset_bits: 4, | |
| max_framebuffer_width: 32768, | |
| max_framebuffer_height: 32768, | |
| max_framebuffer_layers: 2048, | |
| framebuffer_color_sample_counts: TYPE_1 | TYPE_2 | TYPE_4 | TYPE_8, | |
| framebuffer_depth_sample_counts: TYPE_1 | TYPE_2 | TYPE_4 | TYPE_8, | |
| framebuffer_stencil_sample_counts: TYPE_1 | TYPE_2 | TYPE_4 | TYPE_8 | TYPE_16, | |
| framebuffer_no_attachments_sample_counts: TYPE_1 | TYPE_2 | TYPE_4 | TYPE_8 | TYPE_16, | |
| max_color_attachments: 8, | |
| sampled_image_color_sample_counts: TYPE_1 | TYPE_2 | TYPE_4 | TYPE_8, | |
| sampled_image_integer_sample_counts: TYPE_1 | TYPE_2 | TYPE_4 | TYPE_8, | |
| sampled_image_depth_sample_counts: TYPE_1 | TYPE_2 | TYPE_4 | TYPE_8, | |
| sampled_image_stencil_sample_counts: TYPE_1 | TYPE_2 | TYPE_4 | TYPE_8 | TYPE_16, | |
| storage_image_sample_counts: TYPE_1 | TYPE_2 | TYPE_4 | TYPE_8, | |
| max_sample_mask_words: 1, | |
| timestamp_compute_and_graphics: 1, | |
| timestamp_period: 1.0, | |
| max_clip_distances: 8, | |
| max_cull_distances: 8, | |
| max_combined_clip_and_cull_distances: 8, | |
| discrete_queue_priorities: 2, | |
| point_size_range: [ | |
| 1.0, | |
| 2047.9375, | |
| ], | |
| line_width_range: [ | |
| 1.0, | |
| 64.0, | |
| ], | |
| point_size_granularity: 0.0625, | |
| line_width_granularity: 0.0625, | |
| strict_lines: 1, | |
| standard_sample_locations: 1, | |
| optimal_buffer_copy_offset_alignment: 1, | |
| optimal_buffer_copy_row_pitch_alignment: 1, | |
| non_coherent_atom_size: 64, | |
| }, | |
| sparse_properties: PhysicalDeviceSparseProperties { | |
| residency_standard2_d_block_shape: 1, | |
| residency_standard2_d_multisample_block_shape: 1, | |
| residency_standard3_d_block_shape: 1, | |
| residency_aligned_mip_size: 0, | |
| residency_non_resident_strict: 1, | |
| }, | |
| }, | |
| device_information: DeviceInformation { | |
| is_software_emulated: false, | |
| device_name: "NVIDIA GeForce RTX 4060", | |
| driver_name: "NVIDIA", | |
| driver_info: "590.48.01", | |
| }, | |
| queue_family_index: 0, | |
| layered: false, | |
| ray_tracing: Some( | |
| RayTracingCapabilities { | |
| min_scratch_buffer_alignment: 128, | |
| }, | |
| ), | |
| buffer_marker: true, | |
| shader_info: false, | |
| full_screen_exclusive: false, | |
| external_memory: true, | |
| timing: true, | |
| bugs: SystemBugs { | |
| intel_unable_to_present: false, | |
| intel_fix_descriptor_pool_leak: false, | |
| }, | |
| } | |
| INFO RPC{rpc.trace_id=00 rpc.deadline=2026-01-12T19:09:29.975123286Z otel.kind="server"}: ReceiveRequest | |
| INFO RPC{rpc.trace_id=00 rpc.deadline=2026-01-12T19:09:29.975123286Z otel.kind="server"}: BeginRequest | |
| DEBUG SurfaceCapabilitiesKHR { min_image_count: 2, max_image_count: 8, current_extent: Extent2D { width: 4294967295, height: 4294967295 }, min_image_extent: Extent2D { width: 1, height: 1 }, max_image_extent: Extent2D { width: 16384, height: 16384 }, max_image_array_layers: 1, supported_transforms: IDENTITY, current_transform: IDENTITY, supported_composite_alpha: OPAQUE | PRE_MULTIPLIED, supported_usage_flags: TRANSFER_SRC | TRANSFER_DST | SAMPLED | STORAGE | COLOR_ATTACHMENT | INPUT_ATTACHMENT } | |
| INFO Using surface present mode MAILBOX | |
| INFO Creating a descriptor pool for at most 16 sets | |
| INFO Creating a descriptor pool for at most 16 sets | |
| INFO Initializing Blade pipelines for surface SurfaceInfo { format: Bgra8Unorm, alpha: PreMultiplied } | |
| DEBUG Resolving [0] = FunctionArgument(0) : Handle([1]) | |
| DEBUG Resolving [1] = Literal(AbstractFloat(0.3)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG Resolving [2] = Literal(AbstractFloat(0.59)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG Resolving [3] = Literal(AbstractFloat(0.11)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG Resolving [4] = Literal(F32(0.3)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [5] = Literal(F32(0.59)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [6] = Literal(F32(0.11)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [7] = Compose { ty: [1], components: [[4], [5], [6]] } : Handle([1]) | |
| DEBUG Initial overloads: List { | |
| rules: [ | |
| (vec2<{AbstractInt}>, vec2<{AbstractInt}>) -> {AbstractInt}, | |
| (vec2<{AbstractFloat}>, vec2<{AbstractFloat}>) -> {AbstractFloat}, | |
| (vec2<i32>, vec2<i32>) -> i32, | |
| (vec2<i64>, vec2<i64>) -> i64, | |
| (vec2<u32>, vec2<u32>) -> u32, | |
| (vec2<u64>, vec2<u64>) -> u64, | |
| (vec2<f32>, vec2<f32>) -> f32, | |
| (vec2<f16>, vec2<f16>) -> f16, | |
| (vec2<f64>, vec2<f64>) -> f64, | |
| (vec3<{AbstractInt}>, vec3<{AbstractInt}>) -> {AbstractInt}, | |
| (vec3<{AbstractFloat}>, vec3<{AbstractFloat}>) -> {AbstractFloat}, | |
| (vec3<i32>, vec3<i32>) -> i32, | |
| (vec3<i64>, vec3<i64>) -> i64, | |
| (vec3<u32>, vec3<u32>) -> u32, | |
| (vec3<u64>, vec3<u64>) -> u64, | |
| (vec3<f32>, vec3<f32>) -> f32, | |
| (vec3<f16>, vec3<f16>) -> f16, | |
| (vec3<f64>, vec3<f64>) -> f64, | |
| (vec4<{AbstractInt}>, vec4<{AbstractInt}>) -> {AbstractInt}, | |
| (vec4<{AbstractFloat}>, vec4<{AbstractFloat}>) -> {AbstractFloat}, | |
| (vec4<i32>, vec4<i32>) -> i32, | |
| (vec4<i64>, vec4<i64>) -> i64, | |
| (vec4<u32>, vec4<u32>) -> u32, | |
| (vec4<u64>, vec4<u64>) -> u64, | |
| (vec4<f32>, vec4<f32>) -> f32, | |
| (vec4<f16>, vec4<f16>) -> f16, | |
| (vec4<f64>, vec4<f64>) -> f64, | |
| ], | |
| conclude: Scalar, | |
| } | |
| DEBUG Supplying argument 0 of type vec3<f32> | |
| DEBUG Remaining overloads: List { | |
| rules: [ | |
| (vec3<f32>, vec3<f32>) -> f32, | |
| ], | |
| conclude: Scalar, | |
| } | |
| DEBUG Supplying argument 1 of type vec3<f32> | |
| DEBUG Remaining overloads: List { | |
| rules: [ | |
| (vec3<f32>, vec3<f32>) -> f32, | |
| ], | |
| conclude: Scalar, | |
| } | |
| DEBUG initial overloads for Dot, List { | |
| rules: [ | |
| (vec2<{AbstractInt}>, vec2<{AbstractInt}>) -> {AbstractInt}, | |
| (vec2<{AbstractFloat}>, vec2<{AbstractFloat}>) -> {AbstractFloat}, | |
| (vec2<i32>, vec2<i32>) -> i32, | |
| (vec2<i64>, vec2<i64>) -> i64, | |
| (vec2<u32>, vec2<u32>) -> u32, | |
| (vec2<u64>, vec2<u64>) -> u64, | |
| (vec2<f32>, vec2<f32>) -> f32, | |
| (vec2<f16>, vec2<f16>) -> f16, | |
| (vec2<f64>, vec2<f64>) -> f64, | |
| (vec3<{AbstractInt}>, vec3<{AbstractInt}>) -> {AbstractInt}, | |
| (vec3<{AbstractFloat}>, vec3<{AbstractFloat}>) -> {AbstractFloat}, | |
| (vec3<i32>, vec3<i32>) -> i32, | |
| (vec3<i64>, vec3<i64>) -> i64, | |
| (vec3<u32>, vec3<u32>) -> u32, | |
| (vec3<u64>, vec3<u64>) -> u64, | |
| (vec3<f32>, vec3<f32>) -> f32, | |
| (vec3<f16>, vec3<f16>) -> f16, | |
| (vec3<f64>, vec3<f64>) -> f64, | |
| (vec4<{AbstractInt}>, vec4<{AbstractInt}>) -> {AbstractInt}, | |
| (vec4<{AbstractFloat}>, vec4<{AbstractFloat}>) -> {AbstractFloat}, | |
| (vec4<i32>, vec4<i32>) -> i32, | |
| (vec4<i64>, vec4<i64>) -> i64, | |
| (vec4<u32>, vec4<u32>) -> u32, | |
| (vec4<u64>, vec4<u64>) -> u64, | |
| (vec4<f32>, vec4<f32>) -> f32, | |
| (vec4<f16>, vec4<f16>) -> f16, | |
| (vec4<f64>, vec4<f64>) -> f64, | |
| ], | |
| conclude: Scalar, | |
| } | |
| DEBUG overloads after arg 0 of type vec3<f32>: List { | |
| rules: [ | |
| (vec3<f32>, vec3<f32>) -> f32, | |
| ], | |
| conclude: Scalar, | |
| } | |
| DEBUG overloads after arg 1 of type vec3<f32>: List { | |
| rules: [ | |
| (vec3<f32>, vec3<f32>) -> f32, | |
| ], | |
| conclude: Scalar, | |
| } | |
| DEBUG Resolving [8] = Math { fun: Dot, arg: [0], arg1: Some([7]), arg2: None, arg3: None } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [0] = FunctionArgument(0) : Handle([0]) | |
| DEBUG Resolving [1] = FunctionArgument(1) : Handle([1]) | |
| DEBUG Resolving [2] = CallResult([0]) : Handle([0]) | |
| DEBUG Resolving [3] = Literal(AbstractFloat(4.0)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG Resolving [4] = Literal(AbstractFloat(0.75)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG wgsl automatic_conversion_consensus: {AbstractFloat}, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [5] = Literal(F32(0.75)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [6] = Binary { op: Subtract, left: [5], right: [2] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG wgsl automatic_conversion_consensus: {AbstractFloat}, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [7] = Literal(F32(4.0)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [8] = Binary { op: Multiply, left: [7], right: [6] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Initial overloads: List { | |
| rules: [ | |
| ({AbstractFloat}) -> {AbstractFloat}, | |
| (f32) -> f32, | |
| (f16) -> f16, | |
| (f64) -> f64, | |
| (vec2<{AbstractFloat}>) -> vec2<{AbstractFloat}>, | |
| (vec2<f32>) -> vec2<f32>, | |
| (vec2<f16>) -> vec2<f16>, | |
| (vec2<f64>) -> vec2<f64>, | |
| (vec3<{AbstractFloat}>) -> vec3<{AbstractFloat}>, | |
| (vec3<f32>) -> vec3<f32>, | |
| (vec3<f16>) -> vec3<f16>, | |
| (vec3<f64>) -> vec3<f64>, | |
| (vec4<{AbstractFloat}>) -> vec4<{AbstractFloat}>, | |
| (vec4<f32>) -> vec4<f32>, | |
| (vec4<f16>) -> vec4<f16>, | |
| (vec4<f64>) -> vec4<f64>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG Supplying argument 0 of type f32 | |
| DEBUG Remaining overloads: List { | |
| rules: [ | |
| (f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG initial overloads for Saturate, List { | |
| rules: [ | |
| ({AbstractFloat}) -> {AbstractFloat}, | |
| (f32) -> f32, | |
| (f16) -> f16, | |
| (f64) -> f64, | |
| (vec2<{AbstractFloat}>) -> vec2<{AbstractFloat}>, | |
| (vec2<f32>) -> vec2<f32>, | |
| (vec2<f16>) -> vec2<f16>, | |
| (vec2<f64>) -> vec2<f64>, | |
| (vec3<{AbstractFloat}>) -> vec3<{AbstractFloat}>, | |
| (vec3<f32>) -> vec3<f32>, | |
| (vec3<f16>) -> vec3<f16>, | |
| (vec3<f64>) -> vec3<f64>, | |
| (vec4<{AbstractFloat}>) -> vec4<{AbstractFloat}>, | |
| (vec4<f32>) -> vec4<f32>, | |
| (vec4<f16>) -> vec4<f16>, | |
| (vec4<f64>) -> vec4<f64>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG overloads after arg 0 of type f32: List { | |
| rules: [ | |
| (f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG Resolving [9] = Math { fun: Saturate, arg: [8], arg1: None, arg2: None, arg3: None } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG wgsl automatic_conversion_consensus: f32, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [10] = Binary { op: Multiply, left: [0], right: [9] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [0] = FunctionArgument(0) : Handle([0]) | |
| DEBUG Resolving [1] = FunctionArgument(1) : Handle([0]) | |
| DEBUG Resolving [2] = Literal(AbstractFloat(1.0)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG wgsl automatic_conversion_consensus: f32, {AbstractFloat} | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [3] = Literal(F32(1.0)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [4] = Binary { op: Add, left: [1], right: [3] } : Handle([0]) | |
| DEBUG wgsl automatic_conversion_consensus: f32, f32 | |
| DEBUG consensus: f32 | |
| DEBUG wgsl automatic_conversion_consensus: f32, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [5] = Binary { op: Multiply, left: [0], right: [4] } : Handle([0]) | |
| DEBUG Resolving [6] = Binary { op: Multiply, left: [0], right: [1] } : Handle([0]) | |
| DEBUG Resolving [7] = Literal(AbstractFloat(1.0)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG wgsl automatic_conversion_consensus: f32, {AbstractFloat} | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [8] = Literal(F32(1.0)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [9] = Binary { op: Add, left: [6], right: [8] } : Handle([0]) | |
| DEBUG wgsl automatic_conversion_consensus: f32, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [10] = Binary { op: Divide, left: [5], right: [9] } : Handle([0]) | |
| DEBUG Resolving [0] = FunctionArgument(0) : Handle([0]) | |
| DEBUG Resolving [1] = FunctionArgument(1) : Handle([0]) | |
| DEBUG Resolving [2] = FunctionArgument(2) : Handle([2]) | |
| DEBUG Resolving [3] = AccessIndex { base: [2], index: 0 } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG wgsl automatic_conversion_consensus: f32, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [4] = Binary { op: Multiply, left: [3], right: [1] } : Handle([0]) | |
| DEBUG Resolving [5] = AccessIndex { base: [2], index: 1 } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG wgsl automatic_conversion_consensus: f32, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [6] = Binary { op: Add, left: [4], right: [5] } : Handle([0]) | |
| DEBUG wgsl automatic_conversion_consensus: f32, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [7] = Binary { op: Multiply, left: [6], right: [0] } : Handle([0]) | |
| DEBUG Resolving [8] = AccessIndex { base: [2], index: 2 } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG wgsl automatic_conversion_consensus: f32, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [9] = Binary { op: Multiply, left: [8], right: [1] } : Handle([0]) | |
| DEBUG Resolving [10] = AccessIndex { base: [2], index: 3 } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG wgsl automatic_conversion_consensus: f32, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [11] = Binary { op: Add, left: [9], right: [10] } : Handle([0]) | |
| DEBUG wgsl automatic_conversion_consensus: f32, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [12] = Binary { op: Add, left: [7], right: [11] } : Handle([0]) | |
| DEBUG Resolving [13] = Literal(AbstractFloat(1.0)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG wgsl automatic_conversion_consensus: {AbstractFloat}, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [14] = Literal(F32(1.0)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [15] = Binary { op: Subtract, left: [14], right: [0] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG wgsl automatic_conversion_consensus: f32, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [16] = Binary { op: Multiply, left: [0], right: [15] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG wgsl automatic_conversion_consensus: f32, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [17] = Binary { op: Multiply, left: [16], right: [12] } : Handle([0]) | |
| DEBUG wgsl automatic_conversion_consensus: f32, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [18] = Binary { op: Add, left: [0], right: [17] } : Handle([0]) | |
| DEBUG Resolving [0] = FunctionArgument(0) : Handle([0]) | |
| DEBUG Resolving [1] = FunctionArgument(1) : Handle([1]) | |
| DEBUG Resolving [2] = FunctionArgument(2) : Handle([0]) | |
| DEBUG Resolving [3] = FunctionArgument(3) : Handle([2]) | |
| DEBUG Resolving [4] = CallResult([1]) : Handle([0]) | |
| DEBUG Resolving [5] = CallResult([0]) : Handle([0]) | |
| DEBUG Resolving [6] = CallResult([2]) : Handle([0]) | |
| DEBUG Resolving [7] = CallResult([3]) : Handle([0]) | |
| DEBUG Resolving [0] = Literal(AbstractFloat(3.1415926)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG Resolving [1] = Literal(F32(3.1415925)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [2] = Literal(AbstractFloat(0.2126)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG Resolving [3] = Literal(AbstractFloat(0.7152)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG Resolving [4] = Literal(AbstractFloat(0.0722)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG Resolving [5] = Literal(F32(0.2126)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [6] = Literal(F32(0.7152)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [7] = Literal(F32(0.0722)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [8] = Compose { ty: [1], components: [[5], [6], [7]] } : Handle([1]) | |
| DEBUG Resolving [9] = Literal(AbstractInt(2)) : Value(Scalar(Scalar { kind: AbstractInt, width: 8 })) | |
| DEBUG Resolving [0] = FunctionArgument(0) : Handle([3]) | |
| DEBUG Resolving [1] = GlobalVariable([0]) : Value(Pointer { base: [5], space: Uniform }) | |
| DEBUG Resolving [2] = AccessIndex { base: [1], index: 0 } : Value(Pointer { base: [3], space: Uniform }) | |
| DEBUG Resolving [3] = Load { pointer: [2] } : Handle([3]) | |
| DEBUG wgsl automatic_conversion_consensus: vec2<f32>, vec2<f32> | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [4] = Binary { op: Divide, left: [0], right: [3] } : Handle([3]) | |
| DEBUG Resolving [5] = Literal(AbstractFloat(2.0)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG Resolving [6] = Literal(AbstractFloat(2.0)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG Resolving [7] = Literal(AbstractFloat(-2.0)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG Resolving [8] = Literal(F32(2.0)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [9] = Literal(F32(-2.0)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [10] = Compose { ty: [3], components: [[8], [9]] } : Handle([3]) | |
| DEBUG wgsl automatic_conversion_consensus: vec2<f32>, vec2<f32> | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [11] = Binary { op: Multiply, left: [4], right: [10] } : Handle([3]) | |
| DEBUG Resolving [12] = Literal(AbstractFloat(1.0)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG Resolving [13] = Literal(AbstractFloat(-1.0)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG Resolving [14] = Literal(AbstractFloat(1.0)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG Resolving [15] = Literal(F32(-1.0)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [16] = Literal(F32(1.0)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [17] = Compose { ty: [3], components: [[15], [16]] } : Handle([3]) | |
| DEBUG wgsl automatic_conversion_consensus: vec2<f32>, vec2<f32> | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [18] = Binary { op: Add, left: [11], right: [17] } : Handle([3]) | |
| DEBUG Resolving [19] = Literal(AbstractFloat(0.0)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG Resolving [20] = Literal(AbstractFloat(1.0)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG Resolving [21] = Literal(F32(0.0)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [22] = Literal(F32(1.0)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [23] = Compose { ty: [2], components: [[18], [21], [22]] } : Handle([2]) | |
| DEBUG Resolving [0] = FunctionArgument(0) : Handle([3]) | |
| DEBUG Resolving [1] = FunctionArgument(1) : Handle([8]) | |
| DEBUG Resolving [2] = AccessIndex { base: [1], index: 1 } : Handle([3]) | |
| DEBUG Resolving [3] = As { expr: [2], kind: Float, convert: Some(4) } : Value(Vector { size: Bi, scalar: Scalar { kind: Float, width: 4 } }) | |
| DEBUG wgsl automatic_conversion_consensus: vec2<f32>, vec2<f32> | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [4] = Binary { op: Multiply, left: [0], right: [3] } : Handle([3]) | |
| DEBUG Resolving [5] = AccessIndex { base: [1], index: 0 } : Handle([3]) | |
| DEBUG wgsl automatic_conversion_consensus: vec2<f32>, vec2<f32> | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [6] = Binary { op: Add, left: [4], right: [5] } : Handle([3]) | |
| DEBUG Resolving [7] = CallResult([5]) : Handle([2]) | |
| DEBUG Resolving [0] = FunctionArgument(0) : Handle([3]) | |
| DEBUG Resolving [1] = FunctionArgument(1) : Handle([8]) | |
| DEBUG Resolving [2] = FunctionArgument(2) : Handle([21]) | |
| DEBUG Resolving [3] = AccessIndex { base: [1], index: 1 } : Handle([3]) | |
| DEBUG Resolving [4] = As { expr: [3], kind: Float, convert: Some(4) } : Value(Vector { size: Bi, scalar: Scalar { kind: Float, width: 4 } }) | |
| DEBUG wgsl automatic_conversion_consensus: vec2<f32>, vec2<f32> | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [5] = Binary { op: Multiply, left: [0], right: [4] } : Handle([3]) | |
| DEBUG Resolving [6] = AccessIndex { base: [1], index: 0 } : Handle([3]) | |
| DEBUG wgsl automatic_conversion_consensus: vec2<f32>, vec2<f32> | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [7] = Binary { op: Add, left: [5], right: [6] } : Handle([3]) | |
| DEBUG Resolving [8] = AccessIndex { base: [2], index: 0 } : Handle([20]) | |
| DEBUG Initial overloads: [ | |
| (mat2x2<{AbstractFloat}>) -> mat2x2<{AbstractFloat}>, | |
| (mat2x2<f32>) -> mat2x2<f32>, | |
| (mat2x2<f16>) -> mat2x2<f16>, | |
| (mat2x2<f64>) -> mat2x2<f64>, | |
| (mat2x3<{AbstractFloat}>) -> mat3x2<{AbstractFloat}>, | |
| (mat2x3<f32>) -> mat3x2<f32>, | |
| (mat2x3<f16>) -> mat3x2<f16>, | |
| (mat2x3<f64>) -> mat3x2<f64>, | |
| (mat2x4<{AbstractFloat}>) -> mat4x2<{AbstractFloat}>, | |
| (mat2x4<f32>) -> mat4x2<f32>, | |
| (mat2x4<f16>) -> mat4x2<f16>, | |
| (mat2x4<f64>) -> mat4x2<f64>, | |
| (mat3x2<{AbstractFloat}>) -> mat2x3<{AbstractFloat}>, | |
| (mat3x2<f32>) -> mat2x3<f32>, | |
| (mat3x2<f16>) -> mat2x3<f16>, | |
| (mat3x2<f64>) -> mat2x3<f64>, | |
| (mat3x3<{AbstractFloat}>) -> mat3x3<{AbstractFloat}>, | |
| (mat3x3<f32>) -> mat3x3<f32>, | |
| (mat3x3<f16>) -> mat3x3<f16>, | |
| (mat3x3<f64>) -> mat3x3<f64>, | |
| (mat3x4<{AbstractFloat}>) -> mat4x3<{AbstractFloat}>, | |
| (mat3x4<f32>) -> mat4x3<f32>, | |
| (mat3x4<f16>) -> mat4x3<f16>, | |
| (mat3x4<f64>) -> mat4x3<f64>, | |
| (mat4x2<{AbstractFloat}>) -> mat2x4<{AbstractFloat}>, | |
| (mat4x2<f32>) -> mat2x4<f32>, | |
| (mat4x2<f16>) -> mat2x4<f16>, | |
| (mat4x2<f64>) -> mat2x4<f64>, | |
| (mat4x3<{AbstractFloat}>) -> mat3x4<{AbstractFloat}>, | |
| (mat4x3<f32>) -> mat3x4<f32>, | |
| (mat4x3<f16>) -> mat3x4<f16>, | |
| (mat4x3<f64>) -> mat3x4<f64>, | |
| (mat4x4<{AbstractFloat}>) -> mat4x4<{AbstractFloat}>, | |
| (mat4x4<f32>) -> mat4x4<f32>, | |
| (mat4x4<f16>) -> mat4x4<f16>, | |
| (mat4x4<f64>) -> mat4x4<f64>, | |
| ] | |
| DEBUG Supplying argument 0 of type mat2x2<f32> | |
| DEBUG arg 0 of type mat2x2<f32> | |
| DEBUG considering rule (mat2x2<{AbstractFloat}>) -> mat2x2<{AbstractFloat}> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat2x2<f32>) -> mat2x2<f32> | |
| DEBUG types are equivalent | |
| DEBUG considering rule (mat2x2<f16>) -> mat2x2<f16> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat2x2<f64>) -> mat2x2<f64> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat2x3<{AbstractFloat}>) -> mat3x2<{AbstractFloat}> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat2x3<f32>) -> mat3x2<f32> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat2x3<f16>) -> mat3x2<f16> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat2x3<f64>) -> mat3x2<f64> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat2x4<{AbstractFloat}>) -> mat4x2<{AbstractFloat}> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat2x4<f32>) -> mat4x2<f32> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat2x4<f16>) -> mat4x2<f16> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat2x4<f64>) -> mat4x2<f64> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat3x2<{AbstractFloat}>) -> mat2x3<{AbstractFloat}> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat3x2<f32>) -> mat2x3<f32> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat3x2<f16>) -> mat2x3<f16> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat3x2<f64>) -> mat2x3<f64> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat3x3<{AbstractFloat}>) -> mat3x3<{AbstractFloat}> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat3x3<f32>) -> mat3x3<f32> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat3x3<f16>) -> mat3x3<f16> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat3x3<f64>) -> mat3x3<f64> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat3x4<{AbstractFloat}>) -> mat4x3<{AbstractFloat}> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat3x4<f32>) -> mat4x3<f32> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat3x4<f16>) -> mat4x3<f16> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat3x4<f64>) -> mat4x3<f64> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat4x2<{AbstractFloat}>) -> mat2x4<{AbstractFloat}> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat4x2<f32>) -> mat2x4<f32> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat4x2<f16>) -> mat2x4<f16> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat4x2<f64>) -> mat2x4<f64> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat4x3<{AbstractFloat}>) -> mat3x4<{AbstractFloat}> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat4x3<f32>) -> mat3x4<f32> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat4x3<f16>) -> mat3x4<f16> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat4x3<f64>) -> mat3x4<f64> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat4x4<{AbstractFloat}>) -> mat4x4<{AbstractFloat}> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat4x4<f32>) -> mat4x4<f32> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat4x4<f16>) -> mat4x4<f16> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat4x4<f64>) -> mat4x4<f64> | |
| DEBUG no conversion possible | |
| DEBUG Remaining overloads: [ | |
| (mat2x2<f32>) -> mat2x2<f32>, | |
| ] | |
| DEBUG initial overloads for Transpose, [ | |
| (mat2x2<{AbstractFloat}>) -> mat2x2<{AbstractFloat}>, | |
| (mat2x2<f32>) -> mat2x2<f32>, | |
| (mat2x2<f16>) -> mat2x2<f16>, | |
| (mat2x2<f64>) -> mat2x2<f64>, | |
| (mat2x3<{AbstractFloat}>) -> mat3x2<{AbstractFloat}>, | |
| (mat2x3<f32>) -> mat3x2<f32>, | |
| (mat2x3<f16>) -> mat3x2<f16>, | |
| (mat2x3<f64>) -> mat3x2<f64>, | |
| (mat2x4<{AbstractFloat}>) -> mat4x2<{AbstractFloat}>, | |
| (mat2x4<f32>) -> mat4x2<f32>, | |
| (mat2x4<f16>) -> mat4x2<f16>, | |
| (mat2x4<f64>) -> mat4x2<f64>, | |
| (mat3x2<{AbstractFloat}>) -> mat2x3<{AbstractFloat}>, | |
| (mat3x2<f32>) -> mat2x3<f32>, | |
| (mat3x2<f16>) -> mat2x3<f16>, | |
| (mat3x2<f64>) -> mat2x3<f64>, | |
| (mat3x3<{AbstractFloat}>) -> mat3x3<{AbstractFloat}>, | |
| (mat3x3<f32>) -> mat3x3<f32>, | |
| (mat3x3<f16>) -> mat3x3<f16>, | |
| (mat3x3<f64>) -> mat3x3<f64>, | |
| (mat3x4<{AbstractFloat}>) -> mat4x3<{AbstractFloat}>, | |
| (mat3x4<f32>) -> mat4x3<f32>, | |
| (mat3x4<f16>) -> mat4x3<f16>, | |
| (mat3x4<f64>) -> mat4x3<f64>, | |
| (mat4x2<{AbstractFloat}>) -> mat2x4<{AbstractFloat}>, | |
| (mat4x2<f32>) -> mat2x4<f32>, | |
| (mat4x2<f16>) -> mat2x4<f16>, | |
| (mat4x2<f64>) -> mat2x4<f64>, | |
| (mat4x3<{AbstractFloat}>) -> mat3x4<{AbstractFloat}>, | |
| (mat4x3<f32>) -> mat3x4<f32>, | |
| (mat4x3<f16>) -> mat3x4<f16>, | |
| (mat4x3<f64>) -> mat3x4<f64>, | |
| (mat4x4<{AbstractFloat}>) -> mat4x4<{AbstractFloat}>, | |
| (mat4x4<f32>) -> mat4x4<f32>, | |
| (mat4x4<f16>) -> mat4x4<f16>, | |
| (mat4x4<f64>) -> mat4x4<f64>, | |
| ] | |
| DEBUG arg 0 of type mat2x2<f32> | |
| DEBUG considering rule (mat2x2<{AbstractFloat}>) -> mat2x2<{AbstractFloat}> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat2x2<f32>) -> mat2x2<f32> | |
| DEBUG types are equivalent | |
| DEBUG considering rule (mat2x2<f16>) -> mat2x2<f16> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat2x2<f64>) -> mat2x2<f64> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat2x3<{AbstractFloat}>) -> mat3x2<{AbstractFloat}> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat2x3<f32>) -> mat3x2<f32> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat2x3<f16>) -> mat3x2<f16> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat2x3<f64>) -> mat3x2<f64> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat2x4<{AbstractFloat}>) -> mat4x2<{AbstractFloat}> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat2x4<f32>) -> mat4x2<f32> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat2x4<f16>) -> mat4x2<f16> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat2x4<f64>) -> mat4x2<f64> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat3x2<{AbstractFloat}>) -> mat2x3<{AbstractFloat}> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat3x2<f32>) -> mat2x3<f32> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat3x2<f16>) -> mat2x3<f16> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat3x2<f64>) -> mat2x3<f64> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat3x3<{AbstractFloat}>) -> mat3x3<{AbstractFloat}> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat3x3<f32>) -> mat3x3<f32> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat3x3<f16>) -> mat3x3<f16> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat3x3<f64>) -> mat3x3<f64> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat3x4<{AbstractFloat}>) -> mat4x3<{AbstractFloat}> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat3x4<f32>) -> mat4x3<f32> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat3x4<f16>) -> mat4x3<f16> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat3x4<f64>) -> mat4x3<f64> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat4x2<{AbstractFloat}>) -> mat2x4<{AbstractFloat}> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat4x2<f32>) -> mat2x4<f32> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat4x2<f16>) -> mat2x4<f16> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat4x2<f64>) -> mat2x4<f64> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat4x3<{AbstractFloat}>) -> mat3x4<{AbstractFloat}> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat4x3<f32>) -> mat3x4<f32> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat4x3<f16>) -> mat3x4<f16> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat4x3<f64>) -> mat3x4<f64> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat4x4<{AbstractFloat}>) -> mat4x4<{AbstractFloat}> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat4x4<f32>) -> mat4x4<f32> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat4x4<f16>) -> mat4x4<f16> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat4x4<f64>) -> mat4x4<f64> | |
| DEBUG no conversion possible | |
| DEBUG overloads after arg 0 of type mat2x2<f32>: [ | |
| (mat2x2<f32>) -> mat2x2<f32>, | |
| ] | |
| DEBUG Resolving [9] = Math { fun: Transpose, arg: [8], arg1: None, arg2: None, arg3: None } : Value(Matrix { columns: Bi, rows: Bi, scalar: Scalar { kind: Float, width: 4 } }) | |
| DEBUG wgsl automatic_conversion_consensus: mat2x2<f32>, vec2<f32> | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [10] = Binary { op: Multiply, left: [9], right: [7] } : Value(Vector { size: Bi, scalar: Scalar { kind: Float, width: 4 } }) | |
| DEBUG Resolving [11] = AccessIndex { base: [2], index: 1 } : Handle([3]) | |
| DEBUG wgsl automatic_conversion_consensus: vec2<f32>, vec2<f32> | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [12] = Binary { op: Add, left: [10], right: [11] } : Value(Vector { size: Bi, scalar: Scalar { kind: Float, width: 4 } }) | |
| DEBUG Resolving [13] = CallResult([5]) : Handle([2]) | |
| DEBUG Resolving [0] = FunctionArgument(0) : Handle([3]) | |
| DEBUG Resolving [1] = FunctionArgument(1) : Handle([19]) | |
| DEBUG Resolving [2] = GlobalVariable([3]) : Handle([6]) | |
| DEBUG Resolving [3] = Literal(AbstractInt(0)) : Value(Scalar(Scalar { kind: AbstractInt, width: 8 })) | |
| DEBUG Resolving [4] = Literal(I32(0)) : Value(Scalar(Scalar { kind: Sint, width: 4 })) | |
| DEBUG Resolving [5] = ImageQuery { image: [2], query: Size { level: Some([4]) } } : Value(Vector { size: Bi, scalar: Scalar { kind: Uint, width: 4 } }) | |
| DEBUG Resolving [6] = As { expr: [5], kind: Float, convert: Some(4) } : Value(Vector { size: Bi, scalar: Scalar { kind: Float, width: 4 } }) | |
| DEBUG Resolving [7] = AccessIndex { base: [1], index: 3 } : Handle([18]) | |
| DEBUG Resolving [8] = AccessIndex { base: [7], index: 0 } : Handle([17]) | |
| DEBUG Resolving [9] = As { expr: [8], kind: Float, convert: Some(4) } : Value(Vector { size: Bi, scalar: Scalar { kind: Float, width: 4 } }) | |
| DEBUG Resolving [10] = AccessIndex { base: [1], index: 3 } : Handle([18]) | |
| DEBUG Resolving [11] = AccessIndex { base: [10], index: 1 } : Handle([17]) | |
| DEBUG Resolving [12] = As { expr: [11], kind: Float, convert: Some(4) } : Value(Vector { size: Bi, scalar: Scalar { kind: Float, width: 4 } }) | |
| DEBUG wgsl automatic_conversion_consensus: vec2<f32>, vec2<f32> | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [13] = Binary { op: Multiply, left: [0], right: [12] } : Handle([3]) | |
| DEBUG wgsl automatic_conversion_consensus: vec2<f32>, vec2<f32> | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [14] = Binary { op: Add, left: [9], right: [13] } : Value(Vector { size: Bi, scalar: Scalar { kind: Float, width: 4 } }) | |
| DEBUG wgsl automatic_conversion_consensus: vec2<f32>, vec2<f32> | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [15] = Binary { op: Divide, left: [14], right: [6] } : Value(Vector { size: Bi, scalar: Scalar { kind: Float, width: 4 } }) | |
| DEBUG Resolving [0] = FunctionArgument(0) : Handle([3]) | |
| DEBUG Resolving [1] = FunctionArgument(1) : Handle([8]) | |
| DEBUG Resolving [2] = AccessIndex { base: [1], index: 0 } : Handle([3]) | |
| DEBUG wgsl automatic_conversion_consensus: vec2<f32>, vec2<f32> | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [3] = Binary { op: Subtract, left: [0], right: [2] } : Handle([3]) | |
| DEBUG Resolving [4] = AccessIndex { base: [1], index: 0 } : Handle([3]) | |
| DEBUG Resolving [5] = AccessIndex { base: [1], index: 1 } : Handle([3]) | |
| DEBUG wgsl automatic_conversion_consensus: vec2<f32>, vec2<f32> | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [6] = Binary { op: Add, left: [4], right: [5] } : Handle([3]) | |
| DEBUG wgsl automatic_conversion_consensus: vec2<f32>, vec2<f32> | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [7] = Binary { op: Subtract, left: [6], right: [0] } : Handle([3]) | |
| DEBUG Resolving [8] = AccessIndex { base: [3], index: 0 } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [9] = AccessIndex { base: [7], index: 0 } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [10] = AccessIndex { base: [3], index: 1 } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [11] = AccessIndex { base: [7], index: 1 } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [12] = Compose { ty: [2], components: [[8], [9], [10], [11]] } : Handle([2]) | |
| DEBUG Resolving [0] = FunctionArgument(0) : Handle([3]) | |
| DEBUG Resolving [1] = FunctionArgument(1) : Handle([8]) | |
| DEBUG Resolving [2] = FunctionArgument(2) : Handle([8]) | |
| DEBUG Resolving [3] = AccessIndex { base: [1], index: 1 } : Handle([3]) | |
| DEBUG Resolving [4] = As { expr: [3], kind: Float, convert: Some(4) } : Value(Vector { size: Bi, scalar: Scalar { kind: Float, width: 4 } }) | |
| DEBUG wgsl automatic_conversion_consensus: vec2<f32>, vec2<f32> | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [5] = Binary { op: Multiply, left: [0], right: [4] } : Handle([3]) | |
| DEBUG Resolving [6] = AccessIndex { base: [1], index: 0 } : Handle([3]) | |
| DEBUG wgsl automatic_conversion_consensus: vec2<f32>, vec2<f32> | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [7] = Binary { op: Add, left: [5], right: [6] } : Handle([3]) | |
| DEBUG Resolving [8] = CallResult([9]) : Handle([2]) | |
| DEBUG Resolving [0] = FunctionArgument(0) : Handle([3]) | |
| DEBUG Resolving [1] = FunctionArgument(1) : Handle([8]) | |
| DEBUG Resolving [2] = FunctionArgument(2) : Handle([8]) | |
| DEBUG Resolving [3] = FunctionArgument(3) : Handle([21]) | |
| DEBUG Resolving [4] = AccessIndex { base: [1], index: 1 } : Handle([3]) | |
| DEBUG Resolving [5] = As { expr: [4], kind: Float, convert: Some(4) } : Value(Vector { size: Bi, scalar: Scalar { kind: Float, width: 4 } }) | |
| DEBUG wgsl automatic_conversion_consensus: vec2<f32>, vec2<f32> | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [6] = Binary { op: Multiply, left: [0], right: [5] } : Handle([3]) | |
| DEBUG Resolving [7] = AccessIndex { base: [1], index: 0 } : Handle([3]) | |
| DEBUG wgsl automatic_conversion_consensus: vec2<f32>, vec2<f32> | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [8] = Binary { op: Add, left: [6], right: [7] } : Handle([3]) | |
| DEBUG Resolving [9] = AccessIndex { base: [3], index: 0 } : Handle([20]) | |
| DEBUG Initial overloads: [ | |
| (mat2x2<{AbstractFloat}>) -> mat2x2<{AbstractFloat}>, | |
| (mat2x2<f32>) -> mat2x2<f32>, | |
| (mat2x2<f16>) -> mat2x2<f16>, | |
| (mat2x2<f64>) -> mat2x2<f64>, | |
| (mat2x3<{AbstractFloat}>) -> mat3x2<{AbstractFloat}>, | |
| (mat2x3<f32>) -> mat3x2<f32>, | |
| (mat2x3<f16>) -> mat3x2<f16>, | |
| (mat2x3<f64>) -> mat3x2<f64>, | |
| (mat2x4<{AbstractFloat}>) -> mat4x2<{AbstractFloat}>, | |
| (mat2x4<f32>) -> mat4x2<f32>, | |
| (mat2x4<f16>) -> mat4x2<f16>, | |
| (mat2x4<f64>) -> mat4x2<f64>, | |
| (mat3x2<{AbstractFloat}>) -> mat2x3<{AbstractFloat}>, | |
| (mat3x2<f32>) -> mat2x3<f32>, | |
| (mat3x2<f16>) -> mat2x3<f16>, | |
| (mat3x2<f64>) -> mat2x3<f64>, | |
| (mat3x3<{AbstractFloat}>) -> mat3x3<{AbstractFloat}>, | |
| (mat3x3<f32>) -> mat3x3<f32>, | |
| (mat3x3<f16>) -> mat3x3<f16>, | |
| (mat3x3<f64>) -> mat3x3<f64>, | |
| (mat3x4<{AbstractFloat}>) -> mat4x3<{AbstractFloat}>, | |
| (mat3x4<f32>) -> mat4x3<f32>, | |
| (mat3x4<f16>) -> mat4x3<f16>, | |
| (mat3x4<f64>) -> mat4x3<f64>, | |
| (mat4x2<{AbstractFloat}>) -> mat2x4<{AbstractFloat}>, | |
| (mat4x2<f32>) -> mat2x4<f32>, | |
| (mat4x2<f16>) -> mat2x4<f16>, | |
| (mat4x2<f64>) -> mat2x4<f64>, | |
| (mat4x3<{AbstractFloat}>) -> mat3x4<{AbstractFloat}>, | |
| (mat4x3<f32>) -> mat3x4<f32>, | |
| (mat4x3<f16>) -> mat3x4<f16>, | |
| (mat4x3<f64>) -> mat3x4<f64>, | |
| (mat4x4<{AbstractFloat}>) -> mat4x4<{AbstractFloat}>, | |
| (mat4x4<f32>) -> mat4x4<f32>, | |
| (mat4x4<f16>) -> mat4x4<f16>, | |
| (mat4x4<f64>) -> mat4x4<f64>, | |
| ] | |
| DEBUG Supplying argument 0 of type mat2x2<f32> | |
| DEBUG arg 0 of type mat2x2<f32> | |
| DEBUG considering rule (mat2x2<{AbstractFloat}>) -> mat2x2<{AbstractFloat}> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat2x2<f32>) -> mat2x2<f32> | |
| DEBUG types are equivalent | |
| DEBUG considering rule (mat2x2<f16>) -> mat2x2<f16> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat2x2<f64>) -> mat2x2<f64> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat2x3<{AbstractFloat}>) -> mat3x2<{AbstractFloat}> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat2x3<f32>) -> mat3x2<f32> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat2x3<f16>) -> mat3x2<f16> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat2x3<f64>) -> mat3x2<f64> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat2x4<{AbstractFloat}>) -> mat4x2<{AbstractFloat}> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat2x4<f32>) -> mat4x2<f32> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat2x4<f16>) -> mat4x2<f16> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat2x4<f64>) -> mat4x2<f64> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat3x2<{AbstractFloat}>) -> mat2x3<{AbstractFloat}> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat3x2<f32>) -> mat2x3<f32> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat3x2<f16>) -> mat2x3<f16> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat3x2<f64>) -> mat2x3<f64> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat3x3<{AbstractFloat}>) -> mat3x3<{AbstractFloat}> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat3x3<f32>) -> mat3x3<f32> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat3x3<f16>) -> mat3x3<f16> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat3x3<f64>) -> mat3x3<f64> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat3x4<{AbstractFloat}>) -> mat4x3<{AbstractFloat}> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat3x4<f32>) -> mat4x3<f32> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat3x4<f16>) -> mat4x3<f16> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat3x4<f64>) -> mat4x3<f64> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat4x2<{AbstractFloat}>) -> mat2x4<{AbstractFloat}> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat4x2<f32>) -> mat2x4<f32> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat4x2<f16>) -> mat2x4<f16> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat4x2<f64>) -> mat2x4<f64> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat4x3<{AbstractFloat}>) -> mat3x4<{AbstractFloat}> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat4x3<f32>) -> mat3x4<f32> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat4x3<f16>) -> mat3x4<f16> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat4x3<f64>) -> mat3x4<f64> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat4x4<{AbstractFloat}>) -> mat4x4<{AbstractFloat}> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat4x4<f32>) -> mat4x4<f32> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat4x4<f16>) -> mat4x4<f16> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat4x4<f64>) -> mat4x4<f64> | |
| DEBUG no conversion possible | |
| DEBUG Remaining overloads: [ | |
| (mat2x2<f32>) -> mat2x2<f32>, | |
| ] | |
| DEBUG initial overloads for Transpose, [ | |
| (mat2x2<{AbstractFloat}>) -> mat2x2<{AbstractFloat}>, | |
| (mat2x2<f32>) -> mat2x2<f32>, | |
| (mat2x2<f16>) -> mat2x2<f16>, | |
| (mat2x2<f64>) -> mat2x2<f64>, | |
| (mat2x3<{AbstractFloat}>) -> mat3x2<{AbstractFloat}>, | |
| (mat2x3<f32>) -> mat3x2<f32>, | |
| (mat2x3<f16>) -> mat3x2<f16>, | |
| (mat2x3<f64>) -> mat3x2<f64>, | |
| (mat2x4<{AbstractFloat}>) -> mat4x2<{AbstractFloat}>, | |
| (mat2x4<f32>) -> mat4x2<f32>, | |
| (mat2x4<f16>) -> mat4x2<f16>, | |
| (mat2x4<f64>) -> mat4x2<f64>, | |
| (mat3x2<{AbstractFloat}>) -> mat2x3<{AbstractFloat}>, | |
| (mat3x2<f32>) -> mat2x3<f32>, | |
| (mat3x2<f16>) -> mat2x3<f16>, | |
| (mat3x2<f64>) -> mat2x3<f64>, | |
| (mat3x3<{AbstractFloat}>) -> mat3x3<{AbstractFloat}>, | |
| (mat3x3<f32>) -> mat3x3<f32>, | |
| (mat3x3<f16>) -> mat3x3<f16>, | |
| (mat3x3<f64>) -> mat3x3<f64>, | |
| (mat3x4<{AbstractFloat}>) -> mat4x3<{AbstractFloat}>, | |
| (mat3x4<f32>) -> mat4x3<f32>, | |
| (mat3x4<f16>) -> mat4x3<f16>, | |
| (mat3x4<f64>) -> mat4x3<f64>, | |
| (mat4x2<{AbstractFloat}>) -> mat2x4<{AbstractFloat}>, | |
| (mat4x2<f32>) -> mat2x4<f32>, | |
| (mat4x2<f16>) -> mat2x4<f16>, | |
| (mat4x2<f64>) -> mat2x4<f64>, | |
| (mat4x3<{AbstractFloat}>) -> mat3x4<{AbstractFloat}>, | |
| (mat4x3<f32>) -> mat3x4<f32>, | |
| (mat4x3<f16>) -> mat3x4<f16>, | |
| (mat4x3<f64>) -> mat3x4<f64>, | |
| (mat4x4<{AbstractFloat}>) -> mat4x4<{AbstractFloat}>, | |
| (mat4x4<f32>) -> mat4x4<f32>, | |
| (mat4x4<f16>) -> mat4x4<f16>, | |
| (mat4x4<f64>) -> mat4x4<f64>, | |
| ] | |
| DEBUG arg 0 of type mat2x2<f32> | |
| DEBUG considering rule (mat2x2<{AbstractFloat}>) -> mat2x2<{AbstractFloat}> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat2x2<f32>) -> mat2x2<f32> | |
| DEBUG types are equivalent | |
| DEBUG considering rule (mat2x2<f16>) -> mat2x2<f16> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat2x2<f64>) -> mat2x2<f64> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat2x3<{AbstractFloat}>) -> mat3x2<{AbstractFloat}> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat2x3<f32>) -> mat3x2<f32> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat2x3<f16>) -> mat3x2<f16> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat2x3<f64>) -> mat3x2<f64> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat2x4<{AbstractFloat}>) -> mat4x2<{AbstractFloat}> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat2x4<f32>) -> mat4x2<f32> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat2x4<f16>) -> mat4x2<f16> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat2x4<f64>) -> mat4x2<f64> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat3x2<{AbstractFloat}>) -> mat2x3<{AbstractFloat}> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat3x2<f32>) -> mat2x3<f32> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat3x2<f16>) -> mat2x3<f16> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat3x2<f64>) -> mat2x3<f64> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat3x3<{AbstractFloat}>) -> mat3x3<{AbstractFloat}> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat3x3<f32>) -> mat3x3<f32> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat3x3<f16>) -> mat3x3<f16> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat3x3<f64>) -> mat3x3<f64> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat3x4<{AbstractFloat}>) -> mat4x3<{AbstractFloat}> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat3x4<f32>) -> mat4x3<f32> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat3x4<f16>) -> mat4x3<f16> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat3x4<f64>) -> mat4x3<f64> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat4x2<{AbstractFloat}>) -> mat2x4<{AbstractFloat}> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat4x2<f32>) -> mat2x4<f32> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat4x2<f16>) -> mat2x4<f16> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat4x2<f64>) -> mat2x4<f64> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat4x3<{AbstractFloat}>) -> mat3x4<{AbstractFloat}> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat4x3<f32>) -> mat3x4<f32> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat4x3<f16>) -> mat3x4<f16> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat4x3<f64>) -> mat3x4<f64> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat4x4<{AbstractFloat}>) -> mat4x4<{AbstractFloat}> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat4x4<f32>) -> mat4x4<f32> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat4x4<f16>) -> mat4x4<f16> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat4x4<f64>) -> mat4x4<f64> | |
| DEBUG no conversion possible | |
| DEBUG overloads after arg 0 of type mat2x2<f32>: [ | |
| (mat2x2<f32>) -> mat2x2<f32>, | |
| ] | |
| DEBUG Resolving [10] = Math { fun: Transpose, arg: [9], arg1: None, arg2: None, arg3: None } : Value(Matrix { columns: Bi, rows: Bi, scalar: Scalar { kind: Float, width: 4 } }) | |
| DEBUG wgsl automatic_conversion_consensus: mat2x2<f32>, vec2<f32> | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [11] = Binary { op: Multiply, left: [10], right: [8] } : Value(Vector { size: Bi, scalar: Scalar { kind: Float, width: 4 } }) | |
| DEBUG Resolving [12] = AccessIndex { base: [3], index: 1 } : Handle([3]) | |
| DEBUG wgsl automatic_conversion_consensus: vec2<f32>, vec2<f32> | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [13] = Binary { op: Add, left: [11], right: [12] } : Value(Vector { size: Bi, scalar: Scalar { kind: Float, width: 4 } }) | |
| DEBUG Resolving [14] = CallResult([9]) : Handle([2]) | |
| DEBUG Resolving [0] = FunctionArgument(0) : Handle([1]) | |
| DEBUG Resolving [1] = Literal(AbstractFloat(0.04045)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG Resolving [2] = Literal(F32(0.04045)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [3] = Splat { size: Tri, value: [2] } : Value(Vector { size: Tri, scalar: Scalar { kind: Float, width: 4 } }) | |
| DEBUG wgsl automatic_conversion_consensus: vec3<f32>, vec3<f32> | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [4] = Binary { op: Less, left: [0], right: [3] } : Value(Vector { size: Tri, scalar: Scalar { kind: Bool, width: 1 } }) | |
| DEBUG Resolving [5] = Literal(AbstractFloat(0.055)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG Resolving [6] = Literal(F32(0.055)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [7] = Splat { size: Tri, value: [6] } : Value(Vector { size: Tri, scalar: Scalar { kind: Float, width: 4 } }) | |
| DEBUG wgsl automatic_conversion_consensus: vec3<f32>, vec3<f32> | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [8] = Binary { op: Add, left: [0], right: [7] } : Handle([1]) | |
| DEBUG Resolving [9] = Literal(AbstractFloat(1.055)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG Resolving [10] = Literal(F32(1.055)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [11] = Splat { size: Tri, value: [10] } : Value(Vector { size: Tri, scalar: Scalar { kind: Float, width: 4 } }) | |
| DEBUG wgsl automatic_conversion_consensus: vec3<f32>, vec3<f32> | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [12] = Binary { op: Divide, left: [8], right: [11] } : Handle([1]) | |
| DEBUG Resolving [13] = Literal(AbstractFloat(2.4)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG Resolving [14] = Literal(F32(2.4)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [15] = Splat { size: Tri, value: [14] } : Value(Vector { size: Tri, scalar: Scalar { kind: Float, width: 4 } }) | |
| DEBUG Initial overloads: List { | |
| rules: [ | |
| ({AbstractFloat}, {AbstractFloat}) -> {AbstractFloat}, | |
| (f32, f32) -> f32, | |
| (f16, f16) -> f16, | |
| (f64, f64) -> f64, | |
| (vec2<{AbstractFloat}>, vec2<{AbstractFloat}>) -> vec2<{AbstractFloat}>, | |
| (vec2<f32>, vec2<f32>) -> vec2<f32>, | |
| (vec2<f16>, vec2<f16>) -> vec2<f16>, | |
| (vec2<f64>, vec2<f64>) -> vec2<f64>, | |
| (vec3<{AbstractFloat}>, vec3<{AbstractFloat}>) -> vec3<{AbstractFloat}>, | |
| (vec3<f32>, vec3<f32>) -> vec3<f32>, | |
| (vec3<f16>, vec3<f16>) -> vec3<f16>, | |
| (vec3<f64>, vec3<f64>) -> vec3<f64>, | |
| (vec4<{AbstractFloat}>, vec4<{AbstractFloat}>) -> vec4<{AbstractFloat}>, | |
| (vec4<f32>, vec4<f32>) -> vec4<f32>, | |
| (vec4<f16>, vec4<f16>) -> vec4<f16>, | |
| (vec4<f64>, vec4<f64>) -> vec4<f64>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG Supplying argument 0 of type vec3<f32> | |
| DEBUG Remaining overloads: List { | |
| rules: [ | |
| (vec3<f32>, vec3<f32>) -> vec3<f32>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG Supplying argument 1 of type vec3<f32> | |
| DEBUG Remaining overloads: List { | |
| rules: [ | |
| (vec3<f32>, vec3<f32>) -> vec3<f32>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG initial overloads for Pow, List { | |
| rules: [ | |
| ({AbstractFloat}, {AbstractFloat}) -> {AbstractFloat}, | |
| (f32, f32) -> f32, | |
| (f16, f16) -> f16, | |
| (f64, f64) -> f64, | |
| (vec2<{AbstractFloat}>, vec2<{AbstractFloat}>) -> vec2<{AbstractFloat}>, | |
| (vec2<f32>, vec2<f32>) -> vec2<f32>, | |
| (vec2<f16>, vec2<f16>) -> vec2<f16>, | |
| (vec2<f64>, vec2<f64>) -> vec2<f64>, | |
| (vec3<{AbstractFloat}>, vec3<{AbstractFloat}>) -> vec3<{AbstractFloat}>, | |
| (vec3<f32>, vec3<f32>) -> vec3<f32>, | |
| (vec3<f16>, vec3<f16>) -> vec3<f16>, | |
| (vec3<f64>, vec3<f64>) -> vec3<f64>, | |
| (vec4<{AbstractFloat}>, vec4<{AbstractFloat}>) -> vec4<{AbstractFloat}>, | |
| (vec4<f32>, vec4<f32>) -> vec4<f32>, | |
| (vec4<f16>, vec4<f16>) -> vec4<f16>, | |
| (vec4<f64>, vec4<f64>) -> vec4<f64>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG overloads after arg 0 of type vec3<f32>: List { | |
| rules: [ | |
| (vec3<f32>, vec3<f32>) -> vec3<f32>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG overloads after arg 1 of type vec3<f32>: List { | |
| rules: [ | |
| (vec3<f32>, vec3<f32>) -> vec3<f32>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG Resolving [16] = Math { fun: Pow, arg: [12], arg1: Some([15]), arg2: None, arg3: None } : Value(Vector { size: Tri, scalar: Scalar { kind: Float, width: 4 } }) | |
| DEBUG Resolving [17] = Literal(AbstractFloat(12.92)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG Resolving [18] = Literal(F32(12.92)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [19] = Splat { size: Tri, value: [18] } : Value(Vector { size: Tri, scalar: Scalar { kind: Float, width: 4 } }) | |
| DEBUG wgsl automatic_conversion_consensus: vec3<f32>, vec3<f32> | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [20] = Binary { op: Divide, left: [0], right: [19] } : Handle([1]) | |
| DEBUG Resolving [21] = Select { condition: [4], accept: [20], reject: [16] } : Handle([1]) | |
| DEBUG Resolving [0] = FunctionArgument(0) : Handle([0]) | |
| DEBUG Resolving [1] = Literal(AbstractFloat(0.04045)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG wgsl automatic_conversion_consensus: f32, {AbstractFloat} | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [2] = Literal(F32(0.04045)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [3] = Binary { op: Less, left: [0], right: [2] } : Value(Scalar(Scalar { kind: Bool, width: 1 })) | |
| DEBUG Resolving [4] = Literal(AbstractFloat(0.055)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG wgsl automatic_conversion_consensus: f32, {AbstractFloat} | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [5] = Literal(F32(0.055)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [6] = Binary { op: Add, left: [0], right: [5] } : Handle([0]) | |
| DEBUG Resolving [7] = Literal(AbstractFloat(1.055)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG wgsl automatic_conversion_consensus: f32, {AbstractFloat} | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [8] = Literal(F32(1.055)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [9] = Binary { op: Divide, left: [6], right: [8] } : Handle([0]) | |
| DEBUG Resolving [10] = Literal(AbstractFloat(2.4)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG Initial overloads: List { | |
| rules: [ | |
| ({AbstractFloat}, {AbstractFloat}) -> {AbstractFloat}, | |
| (f32, f32) -> f32, | |
| (f16, f16) -> f16, | |
| (f64, f64) -> f64, | |
| (vec2<{AbstractFloat}>, vec2<{AbstractFloat}>) -> vec2<{AbstractFloat}>, | |
| (vec2<f32>, vec2<f32>) -> vec2<f32>, | |
| (vec2<f16>, vec2<f16>) -> vec2<f16>, | |
| (vec2<f64>, vec2<f64>) -> vec2<f64>, | |
| (vec3<{AbstractFloat}>, vec3<{AbstractFloat}>) -> vec3<{AbstractFloat}>, | |
| (vec3<f32>, vec3<f32>) -> vec3<f32>, | |
| (vec3<f16>, vec3<f16>) -> vec3<f16>, | |
| (vec3<f64>, vec3<f64>) -> vec3<f64>, | |
| (vec4<{AbstractFloat}>, vec4<{AbstractFloat}>) -> vec4<{AbstractFloat}>, | |
| (vec4<f32>, vec4<f32>) -> vec4<f32>, | |
| (vec4<f16>, vec4<f16>) -> vec4<f16>, | |
| (vec4<f64>, vec4<f64>) -> vec4<f64>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG Supplying argument 0 of type f32 | |
| DEBUG Remaining overloads: List { | |
| rules: [ | |
| (f32, f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG Supplying argument 1 of type {AbstractFloat} | |
| DEBUG Remaining overloads: List { | |
| rules: [ | |
| (f32, f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG Resolving [11] = Literal(F32(2.4)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG initial overloads for Pow, List { | |
| rules: [ | |
| ({AbstractFloat}, {AbstractFloat}) -> {AbstractFloat}, | |
| (f32, f32) -> f32, | |
| (f16, f16) -> f16, | |
| (f64, f64) -> f64, | |
| (vec2<{AbstractFloat}>, vec2<{AbstractFloat}>) -> vec2<{AbstractFloat}>, | |
| (vec2<f32>, vec2<f32>) -> vec2<f32>, | |
| (vec2<f16>, vec2<f16>) -> vec2<f16>, | |
| (vec2<f64>, vec2<f64>) -> vec2<f64>, | |
| (vec3<{AbstractFloat}>, vec3<{AbstractFloat}>) -> vec3<{AbstractFloat}>, | |
| (vec3<f32>, vec3<f32>) -> vec3<f32>, | |
| (vec3<f16>, vec3<f16>) -> vec3<f16>, | |
| (vec3<f64>, vec3<f64>) -> vec3<f64>, | |
| (vec4<{AbstractFloat}>, vec4<{AbstractFloat}>) -> vec4<{AbstractFloat}>, | |
| (vec4<f32>, vec4<f32>) -> vec4<f32>, | |
| (vec4<f16>, vec4<f16>) -> vec4<f16>, | |
| (vec4<f64>, vec4<f64>) -> vec4<f64>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG overloads after arg 0 of type f32: List { | |
| rules: [ | |
| (f32, f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG overloads after arg 1 of type f32: List { | |
| rules: [ | |
| (f32, f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG Resolving [12] = Math { fun: Pow, arg: [9], arg1: Some([11]), arg2: None, arg3: None } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [13] = Literal(AbstractFloat(12.92)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG wgsl automatic_conversion_consensus: f32, {AbstractFloat} | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [14] = Literal(F32(12.92)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [15] = Binary { op: Divide, left: [0], right: [14] } : Handle([0]) | |
| DEBUG Resolving [16] = Select { condition: [3], accept: [15], reject: [12] } : Handle([0]) | |
| DEBUG Resolving [0] = FunctionArgument(0) : Handle([1]) | |
| DEBUG Resolving [1] = Literal(AbstractFloat(0.0031308)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG Resolving [2] = Literal(F32(0.0031308)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [3] = Splat { size: Tri, value: [2] } : Value(Vector { size: Tri, scalar: Scalar { kind: Float, width: 4 } }) | |
| DEBUG wgsl automatic_conversion_consensus: vec3<f32>, vec3<f32> | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [4] = Binary { op: Less, left: [0], right: [3] } : Value(Vector { size: Tri, scalar: Scalar { kind: Bool, width: 1 } }) | |
| DEBUG Resolving [5] = Literal(AbstractFloat(1.055)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG Resolving [6] = Literal(F32(1.055)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [7] = Splat { size: Tri, value: [6] } : Value(Vector { size: Tri, scalar: Scalar { kind: Float, width: 4 } }) | |
| DEBUG Resolving [8] = Literal(AbstractFloat(1.0)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG Resolving [9] = Literal(AbstractFloat(2.4)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG wgsl automatic_conversion_consensus: {AbstractFloat}, {AbstractFloat} | |
| DEBUG consensus: {AbstractFloat} | |
| DEBUG Resolving [10] = Literal(AbstractFloat(0.4166666666666667)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG Resolving [11] = Literal(F32(0.41666666)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [12] = Splat { size: Tri, value: [11] } : Value(Vector { size: Tri, scalar: Scalar { kind: Float, width: 4 } }) | |
| DEBUG Initial overloads: List { | |
| rules: [ | |
| ({AbstractFloat}, {AbstractFloat}) -> {AbstractFloat}, | |
| (f32, f32) -> f32, | |
| (f16, f16) -> f16, | |
| (f64, f64) -> f64, | |
| (vec2<{AbstractFloat}>, vec2<{AbstractFloat}>) -> vec2<{AbstractFloat}>, | |
| (vec2<f32>, vec2<f32>) -> vec2<f32>, | |
| (vec2<f16>, vec2<f16>) -> vec2<f16>, | |
| (vec2<f64>, vec2<f64>) -> vec2<f64>, | |
| (vec3<{AbstractFloat}>, vec3<{AbstractFloat}>) -> vec3<{AbstractFloat}>, | |
| (vec3<f32>, vec3<f32>) -> vec3<f32>, | |
| (vec3<f16>, vec3<f16>) -> vec3<f16>, | |
| (vec3<f64>, vec3<f64>) -> vec3<f64>, | |
| (vec4<{AbstractFloat}>, vec4<{AbstractFloat}>) -> vec4<{AbstractFloat}>, | |
| (vec4<f32>, vec4<f32>) -> vec4<f32>, | |
| (vec4<f16>, vec4<f16>) -> vec4<f16>, | |
| (vec4<f64>, vec4<f64>) -> vec4<f64>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG Supplying argument 0 of type vec3<f32> | |
| DEBUG Remaining overloads: List { | |
| rules: [ | |
| (vec3<f32>, vec3<f32>) -> vec3<f32>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG Supplying argument 1 of type vec3<f32> | |
| DEBUG Remaining overloads: List { | |
| rules: [ | |
| (vec3<f32>, vec3<f32>) -> vec3<f32>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG initial overloads for Pow, List { | |
| rules: [ | |
| ({AbstractFloat}, {AbstractFloat}) -> {AbstractFloat}, | |
| (f32, f32) -> f32, | |
| (f16, f16) -> f16, | |
| (f64, f64) -> f64, | |
| (vec2<{AbstractFloat}>, vec2<{AbstractFloat}>) -> vec2<{AbstractFloat}>, | |
| (vec2<f32>, vec2<f32>) -> vec2<f32>, | |
| (vec2<f16>, vec2<f16>) -> vec2<f16>, | |
| (vec2<f64>, vec2<f64>) -> vec2<f64>, | |
| (vec3<{AbstractFloat}>, vec3<{AbstractFloat}>) -> vec3<{AbstractFloat}>, | |
| (vec3<f32>, vec3<f32>) -> vec3<f32>, | |
| (vec3<f16>, vec3<f16>) -> vec3<f16>, | |
| (vec3<f64>, vec3<f64>) -> vec3<f64>, | |
| (vec4<{AbstractFloat}>, vec4<{AbstractFloat}>) -> vec4<{AbstractFloat}>, | |
| (vec4<f32>, vec4<f32>) -> vec4<f32>, | |
| (vec4<f16>, vec4<f16>) -> vec4<f16>, | |
| (vec4<f64>, vec4<f64>) -> vec4<f64>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG overloads after arg 0 of type vec3<f32>: List { | |
| rules: [ | |
| (vec3<f32>, vec3<f32>) -> vec3<f32>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG overloads after arg 1 of type vec3<f32>: List { | |
| rules: [ | |
| (vec3<f32>, vec3<f32>) -> vec3<f32>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG Resolving [13] = Math { fun: Pow, arg: [0], arg1: Some([12]), arg2: None, arg3: None } : Value(Vector { size: Tri, scalar: Scalar { kind: Float, width: 4 } }) | |
| DEBUG wgsl automatic_conversion_consensus: vec3<f32>, vec3<f32> | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [14] = Binary { op: Multiply, left: [7], right: [13] } : Value(Vector { size: Tri, scalar: Scalar { kind: Float, width: 4 } }) | |
| DEBUG Resolving [15] = Literal(AbstractFloat(0.055)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG Resolving [16] = Literal(F32(0.055)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [17] = Splat { size: Tri, value: [16] } : Value(Vector { size: Tri, scalar: Scalar { kind: Float, width: 4 } }) | |
| DEBUG wgsl automatic_conversion_consensus: vec3<f32>, vec3<f32> | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [18] = Binary { op: Subtract, left: [14], right: [17] } : Value(Vector { size: Tri, scalar: Scalar { kind: Float, width: 4 } }) | |
| DEBUG Resolving [19] = Literal(AbstractFloat(12.92)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG Resolving [20] = Literal(F32(12.92)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [21] = Splat { size: Tri, value: [20] } : Value(Vector { size: Tri, scalar: Scalar { kind: Float, width: 4 } }) | |
| DEBUG wgsl automatic_conversion_consensus: vec3<f32>, vec3<f32> | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [22] = Binary { op: Multiply, left: [0], right: [21] } : Handle([1]) | |
| DEBUG Resolving [23] = Select { condition: [4], accept: [22], reject: [18] } : Handle([1]) | |
| DEBUG Resolving [0] = FunctionArgument(0) : Handle([2]) | |
| DEBUG Resolving [1] = Swizzle { size: Tri, vector: [0], pattern: [X, Y, Z, X] } : Value(Vector { size: Tri, scalar: Scalar { kind: Float, width: 4 } }) | |
| DEBUG Resolving [2] = CallResult([14]) : Handle([1]) | |
| DEBUG Resolving [3] = AccessIndex { base: [0], index: 3 } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [4] = Compose { ty: [2], components: [[2], [3]] } : Handle([2]) | |
| DEBUG Resolving [0] = FunctionArgument(0) : Handle([2]) | |
| DEBUG Resolving [1] = Swizzle { size: Tri, vector: [0], pattern: [X, Y, Z, X] } : Value(Vector { size: Tri, scalar: Scalar { kind: Float, width: 4 } }) | |
| DEBUG Resolving [2] = CallResult([12]) : Handle([1]) | |
| DEBUG Resolving [3] = AccessIndex { base: [0], index: 3 } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [4] = Compose { ty: [2], components: [[2], [3]] } : Handle([2]) | |
| DEBUG Resolving [0] = FunctionArgument(0) : Handle([11]) | |
| DEBUG Resolving [1] = AccessIndex { base: [0], index: 0 } : Handle([0]) | |
| DEBUG Resolving [2] = Literal(AbstractFloat(6.0)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG wgsl automatic_conversion_consensus: f32, {AbstractFloat} | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [3] = Literal(F32(6.0)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [4] = Binary { op: Multiply, left: [1], right: [3] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [5] = AccessIndex { base: [0], index: 1 } : Handle([0]) | |
| DEBUG Resolving [6] = AccessIndex { base: [0], index: 2 } : Handle([0]) | |
| DEBUG Resolving [7] = AccessIndex { base: [0], index: 3 } : Handle([0]) | |
| DEBUG Resolving [8] = Literal(AbstractFloat(1.0)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG Resolving [9] = Literal(AbstractFloat(2.0)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG wgsl automatic_conversion_consensus: {AbstractFloat}, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [10] = Literal(F32(2.0)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [11] = Binary { op: Multiply, left: [10], right: [6] } : Handle([0]) | |
| DEBUG Resolving [12] = Literal(AbstractFloat(1.0)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG wgsl automatic_conversion_consensus: f32, {AbstractFloat} | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [13] = Literal(F32(1.0)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [14] = Binary { op: Subtract, left: [11], right: [13] } : Handle([0]) | |
| DEBUG Initial overloads: List { | |
| rules: [ | |
| ({AbstractInt}) -> {AbstractInt}, | |
| ({AbstractFloat}) -> {AbstractFloat}, | |
| (i32) -> i32, | |
| (i64) -> i64, | |
| (u32) -> u32, | |
| (u64) -> u64, | |
| (f32) -> f32, | |
| (f16) -> f16, | |
| (f64) -> f64, | |
| (vec2<{AbstractInt}>) -> vec2<{AbstractInt}>, | |
| (vec2<{AbstractFloat}>) -> vec2<{AbstractFloat}>, | |
| (vec2<i32>) -> vec2<i32>, | |
| (vec2<i64>) -> vec2<i64>, | |
| (vec2<u32>) -> vec2<u32>, | |
| (vec2<u64>) -> vec2<u64>, | |
| (vec2<f32>) -> vec2<f32>, | |
| (vec2<f16>) -> vec2<f16>, | |
| (vec2<f64>) -> vec2<f64>, | |
| (vec3<{AbstractInt}>) -> vec3<{AbstractInt}>, | |
| (vec3<{AbstractFloat}>) -> vec3<{AbstractFloat}>, | |
| (vec3<i32>) -> vec3<i32>, | |
| (vec3<i64>) -> vec3<i64>, | |
| (vec3<u32>) -> vec3<u32>, | |
| (vec3<u64>) -> vec3<u64>, | |
| (vec3<f32>) -> vec3<f32>, | |
| (vec3<f16>) -> vec3<f16>, | |
| (vec3<f64>) -> vec3<f64>, | |
| (vec4<{AbstractInt}>) -> vec4<{AbstractInt}>, | |
| (vec4<{AbstractFloat}>) -> vec4<{AbstractFloat}>, | |
| (vec4<i32>) -> vec4<i32>, | |
| (vec4<i64>) -> vec4<i64>, | |
| (vec4<u32>) -> vec4<u32>, | |
| (vec4<u64>) -> vec4<u64>, | |
| (vec4<f32>) -> vec4<f32>, | |
| (vec4<f16>) -> vec4<f16>, | |
| (vec4<f64>) -> vec4<f64>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG Supplying argument 0 of type f32 | |
| DEBUG Remaining overloads: List { | |
| rules: [ | |
| (f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG initial overloads for Abs, List { | |
| rules: [ | |
| ({AbstractInt}) -> {AbstractInt}, | |
| ({AbstractFloat}) -> {AbstractFloat}, | |
| (i32) -> i32, | |
| (i64) -> i64, | |
| (u32) -> u32, | |
| (u64) -> u64, | |
| (f32) -> f32, | |
| (f16) -> f16, | |
| (f64) -> f64, | |
| (vec2<{AbstractInt}>) -> vec2<{AbstractInt}>, | |
| (vec2<{AbstractFloat}>) -> vec2<{AbstractFloat}>, | |
| (vec2<i32>) -> vec2<i32>, | |
| (vec2<i64>) -> vec2<i64>, | |
| (vec2<u32>) -> vec2<u32>, | |
| (vec2<u64>) -> vec2<u64>, | |
| (vec2<f32>) -> vec2<f32>, | |
| (vec2<f16>) -> vec2<f16>, | |
| (vec2<f64>) -> vec2<f64>, | |
| (vec3<{AbstractInt}>) -> vec3<{AbstractInt}>, | |
| (vec3<{AbstractFloat}>) -> vec3<{AbstractFloat}>, | |
| (vec3<i32>) -> vec3<i32>, | |
| (vec3<i64>) -> vec3<i64>, | |
| (vec3<u32>) -> vec3<u32>, | |
| (vec3<u64>) -> vec3<u64>, | |
| (vec3<f32>) -> vec3<f32>, | |
| (vec3<f16>) -> vec3<f16>, | |
| (vec3<f64>) -> vec3<f64>, | |
| (vec4<{AbstractInt}>) -> vec4<{AbstractInt}>, | |
| (vec4<{AbstractFloat}>) -> vec4<{AbstractFloat}>, | |
| (vec4<i32>) -> vec4<i32>, | |
| (vec4<i64>) -> vec4<i64>, | |
| (vec4<u32>) -> vec4<u32>, | |
| (vec4<u64>) -> vec4<u64>, | |
| (vec4<f32>) -> vec4<f32>, | |
| (vec4<f16>) -> vec4<f16>, | |
| (vec4<f64>) -> vec4<f64>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG overloads after arg 0 of type f32: List { | |
| rules: [ | |
| (f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG Resolving [15] = Math { fun: Abs, arg: [14], arg1: None, arg2: None, arg3: None } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG wgsl automatic_conversion_consensus: {AbstractFloat}, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [16] = Literal(F32(1.0)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [17] = Binary { op: Subtract, left: [16], right: [15] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG wgsl automatic_conversion_consensus: f32, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [18] = Binary { op: Multiply, left: [17], right: [5] } : Handle([0]) | |
| DEBUG Resolving [19] = Literal(AbstractFloat(1.0)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG Resolving [20] = Literal(AbstractFloat(2.0)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG wgsl automatic_conversion_consensus: f32, {AbstractFloat} | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [21] = Literal(F32(2.0)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [22] = Binary { op: Modulo, left: [4], right: [21] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [23] = Literal(AbstractFloat(1.0)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG wgsl automatic_conversion_consensus: f32, {AbstractFloat} | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [24] = Literal(F32(1.0)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [25] = Binary { op: Subtract, left: [22], right: [24] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Initial overloads: List { | |
| rules: [ | |
| ({AbstractInt}) -> {AbstractInt}, | |
| ({AbstractFloat}) -> {AbstractFloat}, | |
| (i32) -> i32, | |
| (i64) -> i64, | |
| (u32) -> u32, | |
| (u64) -> u64, | |
| (f32) -> f32, | |
| (f16) -> f16, | |
| (f64) -> f64, | |
| (vec2<{AbstractInt}>) -> vec2<{AbstractInt}>, | |
| (vec2<{AbstractFloat}>) -> vec2<{AbstractFloat}>, | |
| (vec2<i32>) -> vec2<i32>, | |
| (vec2<i64>) -> vec2<i64>, | |
| (vec2<u32>) -> vec2<u32>, | |
| (vec2<u64>) -> vec2<u64>, | |
| (vec2<f32>) -> vec2<f32>, | |
| (vec2<f16>) -> vec2<f16>, | |
| (vec2<f64>) -> vec2<f64>, | |
| (vec3<{AbstractInt}>) -> vec3<{AbstractInt}>, | |
| (vec3<{AbstractFloat}>) -> vec3<{AbstractFloat}>, | |
| (vec3<i32>) -> vec3<i32>, | |
| (vec3<i64>) -> vec3<i64>, | |
| (vec3<u32>) -> vec3<u32>, | |
| (vec3<u64>) -> vec3<u64>, | |
| (vec3<f32>) -> vec3<f32>, | |
| (vec3<f16>) -> vec3<f16>, | |
| (vec3<f64>) -> vec3<f64>, | |
| (vec4<{AbstractInt}>) -> vec4<{AbstractInt}>, | |
| (vec4<{AbstractFloat}>) -> vec4<{AbstractFloat}>, | |
| (vec4<i32>) -> vec4<i32>, | |
| (vec4<i64>) -> vec4<i64>, | |
| (vec4<u32>) -> vec4<u32>, | |
| (vec4<u64>) -> vec4<u64>, | |
| (vec4<f32>) -> vec4<f32>, | |
| (vec4<f16>) -> vec4<f16>, | |
| (vec4<f64>) -> vec4<f64>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG Supplying argument 0 of type f32 | |
| DEBUG Remaining overloads: List { | |
| rules: [ | |
| (f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG initial overloads for Abs, List { | |
| rules: [ | |
| ({AbstractInt}) -> {AbstractInt}, | |
| ({AbstractFloat}) -> {AbstractFloat}, | |
| (i32) -> i32, | |
| (i64) -> i64, | |
| (u32) -> u32, | |
| (u64) -> u64, | |
| (f32) -> f32, | |
| (f16) -> f16, | |
| (f64) -> f64, | |
| (vec2<{AbstractInt}>) -> vec2<{AbstractInt}>, | |
| (vec2<{AbstractFloat}>) -> vec2<{AbstractFloat}>, | |
| (vec2<i32>) -> vec2<i32>, | |
| (vec2<i64>) -> vec2<i64>, | |
| (vec2<u32>) -> vec2<u32>, | |
| (vec2<u64>) -> vec2<u64>, | |
| (vec2<f32>) -> vec2<f32>, | |
| (vec2<f16>) -> vec2<f16>, | |
| (vec2<f64>) -> vec2<f64>, | |
| (vec3<{AbstractInt}>) -> vec3<{AbstractInt}>, | |
| (vec3<{AbstractFloat}>) -> vec3<{AbstractFloat}>, | |
| (vec3<i32>) -> vec3<i32>, | |
| (vec3<i64>) -> vec3<i64>, | |
| (vec3<u32>) -> vec3<u32>, | |
| (vec3<u64>) -> vec3<u64>, | |
| (vec3<f32>) -> vec3<f32>, | |
| (vec3<f16>) -> vec3<f16>, | |
| (vec3<f64>) -> vec3<f64>, | |
| (vec4<{AbstractInt}>) -> vec4<{AbstractInt}>, | |
| (vec4<{AbstractFloat}>) -> vec4<{AbstractFloat}>, | |
| (vec4<i32>) -> vec4<i32>, | |
| (vec4<i64>) -> vec4<i64>, | |
| (vec4<u32>) -> vec4<u32>, | |
| (vec4<u64>) -> vec4<u64>, | |
| (vec4<f32>) -> vec4<f32>, | |
| (vec4<f16>) -> vec4<f16>, | |
| (vec4<f64>) -> vec4<f64>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG overloads after arg 0 of type f32: List { | |
| rules: [ | |
| (f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG Resolving [26] = Math { fun: Abs, arg: [25], arg1: None, arg2: None, arg3: None } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG wgsl automatic_conversion_consensus: {AbstractFloat}, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [27] = Literal(F32(1.0)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [28] = Binary { op: Subtract, left: [27], right: [26] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG wgsl automatic_conversion_consensus: f32, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [29] = Binary { op: Multiply, left: [18], right: [28] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [30] = Literal(AbstractFloat(2.0)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG wgsl automatic_conversion_consensus: f32, {AbstractFloat} | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [31] = Literal(F32(2.0)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [32] = Binary { op: Divide, left: [18], right: [31] } : Handle([0]) | |
| DEBUG wgsl automatic_conversion_consensus: f32, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [33] = Binary { op: Subtract, left: [6], right: [32] } : Handle([0]) | |
| DEBUG Resolving [34] = Splat { size: Tri, value: [33] } : Value(Vector { size: Tri, scalar: Scalar { kind: Float, width: 4 } }) | |
| DEBUG Resolving [35] = LocalVariable([0]) : Value(Pointer { base: [1], space: Function }) | |
| DEBUG Resolving [36] = Literal(AbstractFloat(0.0)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG wgsl automatic_conversion_consensus: f32, {AbstractFloat} | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [37] = Literal(F32(0.0)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [38] = Binary { op: GreaterEqual, left: [4], right: [37] } : Value(Scalar(Scalar { kind: Bool, width: 1 })) | |
| DEBUG Resolving [39] = Literal(AbstractFloat(1.0)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG wgsl automatic_conversion_consensus: f32, {AbstractFloat} | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [40] = Literal(F32(1.0)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [41] = Binary { op: Less, left: [4], right: [40] } : Value(Scalar(Scalar { kind: Bool, width: 1 })) | |
| DEBUG wgsl automatic_conversion_consensus: bool, bool | |
| DEBUG consensus: bool | |
| DEBUG Resolving [42] = Binary { op: LogicalAnd, left: [38], right: [41] } : Value(Scalar(Scalar { kind: Bool, width: 1 })) | |
| DEBUG Resolving [43] = AccessIndex { base: [35], index: 0 } : Value(ValuePointer { size: None, scalar: Scalar { kind: Float, width: 4 }, space: Function }) | |
| DEBUG Resolving [44] = Load { pointer: [43] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [45] = Binary { op: Add, left: [44], right: [18] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [46] = AccessIndex { base: [35], index: 1 } : Value(ValuePointer { size: None, scalar: Scalar { kind: Float, width: 4 }, space: Function }) | |
| DEBUG Resolving [47] = Load { pointer: [46] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [48] = Binary { op: Add, left: [47], right: [29] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [49] = Literal(AbstractFloat(1.0)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG wgsl automatic_conversion_consensus: f32, {AbstractFloat} | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [50] = Literal(F32(1.0)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [51] = Binary { op: GreaterEqual, left: [4], right: [50] } : Value(Scalar(Scalar { kind: Bool, width: 1 })) | |
| DEBUG Resolving [52] = Literal(AbstractFloat(2.0)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG wgsl automatic_conversion_consensus: f32, {AbstractFloat} | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [53] = Literal(F32(2.0)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [54] = Binary { op: Less, left: [4], right: [53] } : Value(Scalar(Scalar { kind: Bool, width: 1 })) | |
| DEBUG wgsl automatic_conversion_consensus: bool, bool | |
| DEBUG consensus: bool | |
| DEBUG Resolving [55] = Binary { op: LogicalAnd, left: [51], right: [54] } : Value(Scalar(Scalar { kind: Bool, width: 1 })) | |
| DEBUG Resolving [56] = AccessIndex { base: [35], index: 0 } : Value(ValuePointer { size: None, scalar: Scalar { kind: Float, width: 4 }, space: Function }) | |
| DEBUG Resolving [57] = Load { pointer: [56] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [58] = Binary { op: Add, left: [57], right: [29] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [59] = AccessIndex { base: [35], index: 1 } : Value(ValuePointer { size: None, scalar: Scalar { kind: Float, width: 4 }, space: Function }) | |
| DEBUG Resolving [60] = Load { pointer: [59] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [61] = Binary { op: Add, left: [60], right: [18] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [62] = Literal(AbstractFloat(2.0)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG wgsl automatic_conversion_consensus: f32, {AbstractFloat} | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [63] = Literal(F32(2.0)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [64] = Binary { op: GreaterEqual, left: [4], right: [63] } : Value(Scalar(Scalar { kind: Bool, width: 1 })) | |
| DEBUG Resolving [65] = Literal(AbstractFloat(3.0)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG wgsl automatic_conversion_consensus: f32, {AbstractFloat} | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [66] = Literal(F32(3.0)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [67] = Binary { op: Less, left: [4], right: [66] } : Value(Scalar(Scalar { kind: Bool, width: 1 })) | |
| DEBUG wgsl automatic_conversion_consensus: bool, bool | |
| DEBUG consensus: bool | |
| DEBUG Resolving [68] = Binary { op: LogicalAnd, left: [64], right: [67] } : Value(Scalar(Scalar { kind: Bool, width: 1 })) | |
| DEBUG Resolving [69] = AccessIndex { base: [35], index: 1 } : Value(ValuePointer { size: None, scalar: Scalar { kind: Float, width: 4 }, space: Function }) | |
| DEBUG Resolving [70] = Load { pointer: [69] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [71] = Binary { op: Add, left: [70], right: [18] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [72] = AccessIndex { base: [35], index: 2 } : Value(ValuePointer { size: None, scalar: Scalar { kind: Float, width: 4 }, space: Function }) | |
| DEBUG Resolving [73] = Load { pointer: [72] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [74] = Binary { op: Add, left: [73], right: [29] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [75] = Literal(AbstractFloat(3.0)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG wgsl automatic_conversion_consensus: f32, {AbstractFloat} | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [76] = Literal(F32(3.0)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [77] = Binary { op: GreaterEqual, left: [4], right: [76] } : Value(Scalar(Scalar { kind: Bool, width: 1 })) | |
| DEBUG Resolving [78] = Literal(AbstractFloat(4.0)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG wgsl automatic_conversion_consensus: f32, {AbstractFloat} | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [79] = Literal(F32(4.0)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [80] = Binary { op: Less, left: [4], right: [79] } : Value(Scalar(Scalar { kind: Bool, width: 1 })) | |
| DEBUG wgsl automatic_conversion_consensus: bool, bool | |
| DEBUG consensus: bool | |
| DEBUG Resolving [81] = Binary { op: LogicalAnd, left: [77], right: [80] } : Value(Scalar(Scalar { kind: Bool, width: 1 })) | |
| DEBUG Resolving [82] = AccessIndex { base: [35], index: 1 } : Value(ValuePointer { size: None, scalar: Scalar { kind: Float, width: 4 }, space: Function }) | |
| DEBUG Resolving [83] = Load { pointer: [82] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [84] = Binary { op: Add, left: [83], right: [29] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [85] = AccessIndex { base: [35], index: 2 } : Value(ValuePointer { size: None, scalar: Scalar { kind: Float, width: 4 }, space: Function }) | |
| DEBUG Resolving [86] = Load { pointer: [85] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [87] = Binary { op: Add, left: [86], right: [18] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [88] = Literal(AbstractFloat(4.0)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG wgsl automatic_conversion_consensus: f32, {AbstractFloat} | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [89] = Literal(F32(4.0)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [90] = Binary { op: GreaterEqual, left: [4], right: [89] } : Value(Scalar(Scalar { kind: Bool, width: 1 })) | |
| DEBUG Resolving [91] = Literal(AbstractFloat(5.0)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG wgsl automatic_conversion_consensus: f32, {AbstractFloat} | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [92] = Literal(F32(5.0)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [93] = Binary { op: Less, left: [4], right: [92] } : Value(Scalar(Scalar { kind: Bool, width: 1 })) | |
| DEBUG wgsl automatic_conversion_consensus: bool, bool | |
| DEBUG consensus: bool | |
| DEBUG Resolving [94] = Binary { op: LogicalAnd, left: [90], right: [93] } : Value(Scalar(Scalar { kind: Bool, width: 1 })) | |
| DEBUG Resolving [95] = AccessIndex { base: [35], index: 0 } : Value(ValuePointer { size: None, scalar: Scalar { kind: Float, width: 4 }, space: Function }) | |
| DEBUG Resolving [96] = Load { pointer: [95] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [97] = Binary { op: Add, left: [96], right: [29] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [98] = AccessIndex { base: [35], index: 2 } : Value(ValuePointer { size: None, scalar: Scalar { kind: Float, width: 4 }, space: Function }) | |
| DEBUG Resolving [99] = Load { pointer: [98] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [100] = Binary { op: Add, left: [99], right: [18] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [101] = AccessIndex { base: [35], index: 0 } : Value(ValuePointer { size: None, scalar: Scalar { kind: Float, width: 4 }, space: Function }) | |
| DEBUG Resolving [102] = Load { pointer: [101] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [103] = Binary { op: Add, left: [102], right: [18] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [104] = AccessIndex { base: [35], index: 2 } : Value(ValuePointer { size: None, scalar: Scalar { kind: Float, width: 4 }, space: Function }) | |
| DEBUG Resolving [105] = Load { pointer: [104] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [106] = Binary { op: Add, left: [105], right: [29] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [107] = Load { pointer: [35] } : Handle([1]) | |
| DEBUG Resolving [108] = Compose { ty: [2], components: [[107], [7]] } : Handle([2]) | |
| DEBUG Resolving [0] = FunctionArgument(0) : Handle([2]) | |
| DEBUG Resolving [1] = Literal(AbstractFloat(0.4122214708)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG Resolving [2] = AccessIndex { base: [0], index: 0 } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG wgsl automatic_conversion_consensus: {AbstractFloat}, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [3] = Literal(F32(0.41222146)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [4] = Binary { op: Multiply, left: [3], right: [2] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [5] = Literal(AbstractFloat(0.5363325363)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG Resolving [6] = AccessIndex { base: [0], index: 1 } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG wgsl automatic_conversion_consensus: {AbstractFloat}, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [7] = Literal(F32(0.53633255)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [8] = Binary { op: Multiply, left: [7], right: [6] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG wgsl automatic_conversion_consensus: f32, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [9] = Binary { op: Add, left: [4], right: [8] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [10] = Literal(AbstractFloat(0.0514459929)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG Resolving [11] = AccessIndex { base: [0], index: 2 } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG wgsl automatic_conversion_consensus: {AbstractFloat}, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [12] = Literal(F32(0.051445995)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [13] = Binary { op: Multiply, left: [12], right: [11] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG wgsl automatic_conversion_consensus: f32, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [14] = Binary { op: Add, left: [9], right: [13] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [15] = Literal(AbstractFloat(0.2119034982)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG Resolving [16] = AccessIndex { base: [0], index: 0 } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG wgsl automatic_conversion_consensus: {AbstractFloat}, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [17] = Literal(F32(0.2119035)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [18] = Binary { op: Multiply, left: [17], right: [16] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [19] = Literal(AbstractFloat(0.6806995451)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG Resolving [20] = AccessIndex { base: [0], index: 1 } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG wgsl automatic_conversion_consensus: {AbstractFloat}, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [21] = Literal(F32(0.6806995)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [22] = Binary { op: Multiply, left: [21], right: [20] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG wgsl automatic_conversion_consensus: f32, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [23] = Binary { op: Add, left: [18], right: [22] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [24] = Literal(AbstractFloat(0.1073969566)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG Resolving [25] = AccessIndex { base: [0], index: 2 } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG wgsl automatic_conversion_consensus: {AbstractFloat}, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [26] = Literal(F32(0.10739696)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [27] = Binary { op: Multiply, left: [26], right: [25] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG wgsl automatic_conversion_consensus: f32, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [28] = Binary { op: Add, left: [23], right: [27] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [29] = Literal(AbstractFloat(0.0883024619)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG Resolving [30] = AccessIndex { base: [0], index: 0 } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG wgsl automatic_conversion_consensus: {AbstractFloat}, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [31] = Literal(F32(0.08830246)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [32] = Binary { op: Multiply, left: [31], right: [30] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [33] = Literal(AbstractFloat(0.2817188376)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG Resolving [34] = AccessIndex { base: [0], index: 1 } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG wgsl automatic_conversion_consensus: {AbstractFloat}, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [35] = Literal(F32(0.28171885)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [36] = Binary { op: Multiply, left: [35], right: [34] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG wgsl automatic_conversion_consensus: f32, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [37] = Binary { op: Add, left: [32], right: [36] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [38] = Literal(AbstractFloat(0.6299787005)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG Resolving [39] = AccessIndex { base: [0], index: 2 } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG wgsl automatic_conversion_consensus: {AbstractFloat}, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [40] = Literal(F32(0.6299787)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [41] = Binary { op: Multiply, left: [40], right: [39] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG wgsl automatic_conversion_consensus: f32, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [42] = Binary { op: Add, left: [37], right: [41] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [43] = Literal(AbstractFloat(1.0)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG Resolving [44] = Literal(AbstractFloat(3.0)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG wgsl automatic_conversion_consensus: {AbstractFloat}, {AbstractFloat} | |
| DEBUG consensus: {AbstractFloat} | |
| DEBUG Resolving [45] = Literal(AbstractFloat(0.3333333333333333)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG Initial overloads: List { | |
| rules: [ | |
| ({AbstractFloat}, {AbstractFloat}) -> {AbstractFloat}, | |
| (f32, f32) -> f32, | |
| (f16, f16) -> f16, | |
| (f64, f64) -> f64, | |
| (vec2<{AbstractFloat}>, vec2<{AbstractFloat}>) -> vec2<{AbstractFloat}>, | |
| (vec2<f32>, vec2<f32>) -> vec2<f32>, | |
| (vec2<f16>, vec2<f16>) -> vec2<f16>, | |
| (vec2<f64>, vec2<f64>) -> vec2<f64>, | |
| (vec3<{AbstractFloat}>, vec3<{AbstractFloat}>) -> vec3<{AbstractFloat}>, | |
| (vec3<f32>, vec3<f32>) -> vec3<f32>, | |
| (vec3<f16>, vec3<f16>) -> vec3<f16>, | |
| (vec3<f64>, vec3<f64>) -> vec3<f64>, | |
| (vec4<{AbstractFloat}>, vec4<{AbstractFloat}>) -> vec4<{AbstractFloat}>, | |
| (vec4<f32>, vec4<f32>) -> vec4<f32>, | |
| (vec4<f16>, vec4<f16>) -> vec4<f16>, | |
| (vec4<f64>, vec4<f64>) -> vec4<f64>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG Supplying argument 0 of type f32 | |
| DEBUG Remaining overloads: List { | |
| rules: [ | |
| (f32, f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG Supplying argument 1 of type {AbstractFloat} | |
| DEBUG Remaining overloads: List { | |
| rules: [ | |
| (f32, f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG Resolving [46] = Literal(F32(0.33333334)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG initial overloads for Pow, List { | |
| rules: [ | |
| ({AbstractFloat}, {AbstractFloat}) -> {AbstractFloat}, | |
| (f32, f32) -> f32, | |
| (f16, f16) -> f16, | |
| (f64, f64) -> f64, | |
| (vec2<{AbstractFloat}>, vec2<{AbstractFloat}>) -> vec2<{AbstractFloat}>, | |
| (vec2<f32>, vec2<f32>) -> vec2<f32>, | |
| (vec2<f16>, vec2<f16>) -> vec2<f16>, | |
| (vec2<f64>, vec2<f64>) -> vec2<f64>, | |
| (vec3<{AbstractFloat}>, vec3<{AbstractFloat}>) -> vec3<{AbstractFloat}>, | |
| (vec3<f32>, vec3<f32>) -> vec3<f32>, | |
| (vec3<f16>, vec3<f16>) -> vec3<f16>, | |
| (vec3<f64>, vec3<f64>) -> vec3<f64>, | |
| (vec4<{AbstractFloat}>, vec4<{AbstractFloat}>) -> vec4<{AbstractFloat}>, | |
| (vec4<f32>, vec4<f32>) -> vec4<f32>, | |
| (vec4<f16>, vec4<f16>) -> vec4<f16>, | |
| (vec4<f64>, vec4<f64>) -> vec4<f64>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG overloads after arg 0 of type f32: List { | |
| rules: [ | |
| (f32, f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG overloads after arg 1 of type f32: List { | |
| rules: [ | |
| (f32, f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG Resolving [47] = Math { fun: Pow, arg: [14], arg1: Some([46]), arg2: None, arg3: None } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [48] = Literal(AbstractFloat(1.0)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG Resolving [49] = Literal(AbstractFloat(3.0)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG wgsl automatic_conversion_consensus: {AbstractFloat}, {AbstractFloat} | |
| DEBUG consensus: {AbstractFloat} | |
| DEBUG Resolving [50] = Literal(AbstractFloat(0.3333333333333333)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG Initial overloads: List { | |
| rules: [ | |
| ({AbstractFloat}, {AbstractFloat}) -> {AbstractFloat}, | |
| (f32, f32) -> f32, | |
| (f16, f16) -> f16, | |
| (f64, f64) -> f64, | |
| (vec2<{AbstractFloat}>, vec2<{AbstractFloat}>) -> vec2<{AbstractFloat}>, | |
| (vec2<f32>, vec2<f32>) -> vec2<f32>, | |
| (vec2<f16>, vec2<f16>) -> vec2<f16>, | |
| (vec2<f64>, vec2<f64>) -> vec2<f64>, | |
| (vec3<{AbstractFloat}>, vec3<{AbstractFloat}>) -> vec3<{AbstractFloat}>, | |
| (vec3<f32>, vec3<f32>) -> vec3<f32>, | |
| (vec3<f16>, vec3<f16>) -> vec3<f16>, | |
| (vec3<f64>, vec3<f64>) -> vec3<f64>, | |
| (vec4<{AbstractFloat}>, vec4<{AbstractFloat}>) -> vec4<{AbstractFloat}>, | |
| (vec4<f32>, vec4<f32>) -> vec4<f32>, | |
| (vec4<f16>, vec4<f16>) -> vec4<f16>, | |
| (vec4<f64>, vec4<f64>) -> vec4<f64>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG Supplying argument 0 of type f32 | |
| DEBUG Remaining overloads: List { | |
| rules: [ | |
| (f32, f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG Supplying argument 1 of type {AbstractFloat} | |
| DEBUG Remaining overloads: List { | |
| rules: [ | |
| (f32, f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG Resolving [51] = Literal(F32(0.33333334)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG initial overloads for Pow, List { | |
| rules: [ | |
| ({AbstractFloat}, {AbstractFloat}) -> {AbstractFloat}, | |
| (f32, f32) -> f32, | |
| (f16, f16) -> f16, | |
| (f64, f64) -> f64, | |
| (vec2<{AbstractFloat}>, vec2<{AbstractFloat}>) -> vec2<{AbstractFloat}>, | |
| (vec2<f32>, vec2<f32>) -> vec2<f32>, | |
| (vec2<f16>, vec2<f16>) -> vec2<f16>, | |
| (vec2<f64>, vec2<f64>) -> vec2<f64>, | |
| (vec3<{AbstractFloat}>, vec3<{AbstractFloat}>) -> vec3<{AbstractFloat}>, | |
| (vec3<f32>, vec3<f32>) -> vec3<f32>, | |
| (vec3<f16>, vec3<f16>) -> vec3<f16>, | |
| (vec3<f64>, vec3<f64>) -> vec3<f64>, | |
| (vec4<{AbstractFloat}>, vec4<{AbstractFloat}>) -> vec4<{AbstractFloat}>, | |
| (vec4<f32>, vec4<f32>) -> vec4<f32>, | |
| (vec4<f16>, vec4<f16>) -> vec4<f16>, | |
| (vec4<f64>, vec4<f64>) -> vec4<f64>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG overloads after arg 0 of type f32: List { | |
| rules: [ | |
| (f32, f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG overloads after arg 1 of type f32: List { | |
| rules: [ | |
| (f32, f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG Resolving [52] = Math { fun: Pow, arg: [28], arg1: Some([51]), arg2: None, arg3: None } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [53] = Literal(AbstractFloat(1.0)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG Resolving [54] = Literal(AbstractFloat(3.0)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG wgsl automatic_conversion_consensus: {AbstractFloat}, {AbstractFloat} | |
| DEBUG consensus: {AbstractFloat} | |
| DEBUG Resolving [55] = Literal(AbstractFloat(0.3333333333333333)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG Initial overloads: List { | |
| rules: [ | |
| ({AbstractFloat}, {AbstractFloat}) -> {AbstractFloat}, | |
| (f32, f32) -> f32, | |
| (f16, f16) -> f16, | |
| (f64, f64) -> f64, | |
| (vec2<{AbstractFloat}>, vec2<{AbstractFloat}>) -> vec2<{AbstractFloat}>, | |
| (vec2<f32>, vec2<f32>) -> vec2<f32>, | |
| (vec2<f16>, vec2<f16>) -> vec2<f16>, | |
| (vec2<f64>, vec2<f64>) -> vec2<f64>, | |
| (vec3<{AbstractFloat}>, vec3<{AbstractFloat}>) -> vec3<{AbstractFloat}>, | |
| (vec3<f32>, vec3<f32>) -> vec3<f32>, | |
| (vec3<f16>, vec3<f16>) -> vec3<f16>, | |
| (vec3<f64>, vec3<f64>) -> vec3<f64>, | |
| (vec4<{AbstractFloat}>, vec4<{AbstractFloat}>) -> vec4<{AbstractFloat}>, | |
| (vec4<f32>, vec4<f32>) -> vec4<f32>, | |
| (vec4<f16>, vec4<f16>) -> vec4<f16>, | |
| (vec4<f64>, vec4<f64>) -> vec4<f64>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG Supplying argument 0 of type f32 | |
| DEBUG Remaining overloads: List { | |
| rules: [ | |
| (f32, f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG Supplying argument 1 of type {AbstractFloat} | |
| DEBUG Remaining overloads: List { | |
| rules: [ | |
| (f32, f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG Resolving [56] = Literal(F32(0.33333334)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG initial overloads for Pow, List { | |
| rules: [ | |
| ({AbstractFloat}, {AbstractFloat}) -> {AbstractFloat}, | |
| (f32, f32) -> f32, | |
| (f16, f16) -> f16, | |
| (f64, f64) -> f64, | |
| (vec2<{AbstractFloat}>, vec2<{AbstractFloat}>) -> vec2<{AbstractFloat}>, | |
| (vec2<f32>, vec2<f32>) -> vec2<f32>, | |
| (vec2<f16>, vec2<f16>) -> vec2<f16>, | |
| (vec2<f64>, vec2<f64>) -> vec2<f64>, | |
| (vec3<{AbstractFloat}>, vec3<{AbstractFloat}>) -> vec3<{AbstractFloat}>, | |
| (vec3<f32>, vec3<f32>) -> vec3<f32>, | |
| (vec3<f16>, vec3<f16>) -> vec3<f16>, | |
| (vec3<f64>, vec3<f64>) -> vec3<f64>, | |
| (vec4<{AbstractFloat}>, vec4<{AbstractFloat}>) -> vec4<{AbstractFloat}>, | |
| (vec4<f32>, vec4<f32>) -> vec4<f32>, | |
| (vec4<f16>, vec4<f16>) -> vec4<f16>, | |
| (vec4<f64>, vec4<f64>) -> vec4<f64>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG overloads after arg 0 of type f32: List { | |
| rules: [ | |
| (f32, f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG overloads after arg 1 of type f32: List { | |
| rules: [ | |
| (f32, f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG Resolving [57] = Math { fun: Pow, arg: [42], arg1: Some([56]), arg2: None, arg3: None } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [58] = Literal(AbstractFloat(0.2104542553)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG wgsl automatic_conversion_consensus: {AbstractFloat}, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [59] = Literal(F32(0.21045426)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [60] = Binary { op: Multiply, left: [59], right: [47] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [61] = Literal(AbstractFloat(0.793617785)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG wgsl automatic_conversion_consensus: {AbstractFloat}, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [62] = Literal(F32(0.7936178)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [63] = Binary { op: Multiply, left: [62], right: [52] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG wgsl automatic_conversion_consensus: f32, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [64] = Binary { op: Add, left: [60], right: [63] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [65] = Literal(AbstractFloat(0.0040720468)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG wgsl automatic_conversion_consensus: {AbstractFloat}, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [66] = Literal(F32(0.004072047)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [67] = Binary { op: Multiply, left: [66], right: [57] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG wgsl automatic_conversion_consensus: f32, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [68] = Binary { op: Subtract, left: [64], right: [67] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [69] = Literal(AbstractFloat(1.9779984951)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG wgsl automatic_conversion_consensus: {AbstractFloat}, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [70] = Literal(F32(1.9779985)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [71] = Binary { op: Multiply, left: [70], right: [47] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [72] = Literal(AbstractFloat(2.428592205)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG wgsl automatic_conversion_consensus: {AbstractFloat}, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [73] = Literal(F32(2.4285922)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [74] = Binary { op: Multiply, left: [73], right: [52] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG wgsl automatic_conversion_consensus: f32, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [75] = Binary { op: Subtract, left: [71], right: [74] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [76] = Literal(AbstractFloat(0.4505937099)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG wgsl automatic_conversion_consensus: {AbstractFloat}, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [77] = Literal(F32(0.4505937)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [78] = Binary { op: Multiply, left: [77], right: [57] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG wgsl automatic_conversion_consensus: f32, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [79] = Binary { op: Add, left: [75], right: [78] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [80] = Literal(AbstractFloat(0.0259040371)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG wgsl automatic_conversion_consensus: {AbstractFloat}, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [81] = Literal(F32(0.025904037)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [82] = Binary { op: Multiply, left: [81], right: [47] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [83] = Literal(AbstractFloat(0.7827717662)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG wgsl automatic_conversion_consensus: {AbstractFloat}, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [84] = Literal(F32(0.78277177)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [85] = Binary { op: Multiply, left: [84], right: [52] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG wgsl automatic_conversion_consensus: f32, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [86] = Binary { op: Add, left: [82], right: [85] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [87] = Literal(AbstractFloat(0.808675766)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG wgsl automatic_conversion_consensus: {AbstractFloat}, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [88] = Literal(F32(0.80867577)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [89] = Binary { op: Multiply, left: [88], right: [57] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG wgsl automatic_conversion_consensus: f32, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [90] = Binary { op: Subtract, left: [86], right: [89] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [91] = AccessIndex { base: [0], index: 3 } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [92] = Compose { ty: [2], components: [[68], [79], [90], [91]] } : Handle([2]) | |
| DEBUG Resolving [0] = FunctionArgument(0) : Handle([2]) | |
| DEBUG Resolving [1] = AccessIndex { base: [0], index: 0 } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [2] = Literal(AbstractFloat(0.3963377774)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG Resolving [3] = AccessIndex { base: [0], index: 1 } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG wgsl automatic_conversion_consensus: {AbstractFloat}, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [4] = Literal(F32(0.39633778)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [5] = Binary { op: Multiply, left: [4], right: [3] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG wgsl automatic_conversion_consensus: f32, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [6] = Binary { op: Add, left: [1], right: [5] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [7] = Literal(AbstractFloat(0.2158037573)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG Resolving [8] = AccessIndex { base: [0], index: 2 } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG wgsl automatic_conversion_consensus: {AbstractFloat}, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [9] = Literal(F32(0.21580376)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [10] = Binary { op: Multiply, left: [9], right: [8] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG wgsl automatic_conversion_consensus: f32, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [11] = Binary { op: Add, left: [6], right: [10] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [12] = AccessIndex { base: [0], index: 0 } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [13] = Literal(AbstractFloat(0.1055613458)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG Resolving [14] = AccessIndex { base: [0], index: 1 } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG wgsl automatic_conversion_consensus: {AbstractFloat}, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [15] = Literal(F32(0.105561346)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [16] = Binary { op: Multiply, left: [15], right: [14] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG wgsl automatic_conversion_consensus: f32, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [17] = Binary { op: Subtract, left: [12], right: [16] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [18] = Literal(AbstractFloat(0.0638541728)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG Resolving [19] = AccessIndex { base: [0], index: 2 } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG wgsl automatic_conversion_consensus: {AbstractFloat}, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [20] = Literal(F32(0.06385417)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [21] = Binary { op: Multiply, left: [20], right: [19] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG wgsl automatic_conversion_consensus: f32, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [22] = Binary { op: Subtract, left: [17], right: [21] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [23] = AccessIndex { base: [0], index: 0 } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [24] = Literal(AbstractFloat(0.0894841775)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG Resolving [25] = AccessIndex { base: [0], index: 1 } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG wgsl automatic_conversion_consensus: {AbstractFloat}, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [26] = Literal(F32(0.08948418)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [27] = Binary { op: Multiply, left: [26], right: [25] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG wgsl automatic_conversion_consensus: f32, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [28] = Binary { op: Subtract, left: [23], right: [27] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [29] = Literal(AbstractFloat(1.291485548)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG Resolving [30] = AccessIndex { base: [0], index: 2 } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG wgsl automatic_conversion_consensus: {AbstractFloat}, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [31] = Literal(F32(1.2914855)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [32] = Binary { op: Multiply, left: [31], right: [30] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG wgsl automatic_conversion_consensus: f32, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [33] = Binary { op: Subtract, left: [28], right: [32] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG wgsl automatic_conversion_consensus: f32, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [34] = Binary { op: Multiply, left: [11], right: [11] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG wgsl automatic_conversion_consensus: f32, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [35] = Binary { op: Multiply, left: [34], right: [11] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG wgsl automatic_conversion_consensus: f32, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [36] = Binary { op: Multiply, left: [22], right: [22] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG wgsl automatic_conversion_consensus: f32, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [37] = Binary { op: Multiply, left: [36], right: [22] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG wgsl automatic_conversion_consensus: f32, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [38] = Binary { op: Multiply, left: [33], right: [33] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG wgsl automatic_conversion_consensus: f32, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [39] = Binary { op: Multiply, left: [38], right: [33] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [40] = Literal(AbstractFloat(4.0767416621)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG wgsl automatic_conversion_consensus: {AbstractFloat}, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [41] = Literal(F32(4.0767417)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [42] = Binary { op: Multiply, left: [41], right: [35] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [43] = Literal(AbstractFloat(3.3077115913)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG wgsl automatic_conversion_consensus: {AbstractFloat}, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [44] = Literal(F32(3.3077116)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [45] = Binary { op: Multiply, left: [44], right: [37] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG wgsl automatic_conversion_consensus: f32, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [46] = Binary { op: Subtract, left: [42], right: [45] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [47] = Literal(AbstractFloat(0.2309699292)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG wgsl automatic_conversion_consensus: {AbstractFloat}, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [48] = Literal(F32(0.23096994)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [49] = Binary { op: Multiply, left: [48], right: [39] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG wgsl automatic_conversion_consensus: f32, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [50] = Binary { op: Add, left: [46], right: [49] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [51] = Literal(AbstractFloat(1.2684380046)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG Resolving [52] = Literal(AbstractFloat(-1.2684380046)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG wgsl automatic_conversion_consensus: {AbstractFloat}, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [53] = Literal(F32(-1.268438)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [54] = Binary { op: Multiply, left: [53], right: [35] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [55] = Literal(AbstractFloat(2.6097574011)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG wgsl automatic_conversion_consensus: {AbstractFloat}, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [56] = Literal(F32(2.6097574)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [57] = Binary { op: Multiply, left: [56], right: [37] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG wgsl automatic_conversion_consensus: f32, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [58] = Binary { op: Add, left: [54], right: [57] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [59] = Literal(AbstractFloat(0.3413193965)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG wgsl automatic_conversion_consensus: {AbstractFloat}, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [60] = Literal(F32(0.34131938)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [61] = Binary { op: Multiply, left: [60], right: [39] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG wgsl automatic_conversion_consensus: f32, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [62] = Binary { op: Subtract, left: [58], right: [61] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [63] = Literal(AbstractFloat(0.0041960863)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG Resolving [64] = Literal(AbstractFloat(-0.0041960863)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG wgsl automatic_conversion_consensus: {AbstractFloat}, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [65] = Literal(F32(-0.0041960864)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [66] = Binary { op: Multiply, left: [65], right: [35] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [67] = Literal(AbstractFloat(0.7034186147)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG wgsl automatic_conversion_consensus: {AbstractFloat}, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [68] = Literal(F32(0.7034186)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [69] = Binary { op: Multiply, left: [68], right: [37] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG wgsl automatic_conversion_consensus: f32, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [70] = Binary { op: Subtract, left: [66], right: [69] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [71] = Literal(AbstractFloat(1.707614701)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG wgsl automatic_conversion_consensus: {AbstractFloat}, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [72] = Literal(F32(1.7076147)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [73] = Binary { op: Multiply, left: [72], right: [39] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG wgsl automatic_conversion_consensus: f32, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [74] = Binary { op: Add, left: [70], right: [73] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [75] = AccessIndex { base: [0], index: 3 } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [76] = Compose { ty: [2], components: [[50], [62], [74], [75]] } : Handle([2]) | |
| DEBUG Resolving [0] = FunctionArgument(0) : Handle([2]) | |
| DEBUG Resolving [1] = FunctionArgument(1) : Handle([2]) | |
| DEBUG Resolving [2] = AccessIndex { base: [1], index: 3 } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [3] = AccessIndex { base: [0], index: 3 } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [4] = Literal(AbstractFloat(1.0)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG Resolving [5] = AccessIndex { base: [1], index: 3 } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG wgsl automatic_conversion_consensus: {AbstractFloat}, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [6] = Literal(F32(1.0)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [7] = Binary { op: Subtract, left: [6], right: [5] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG wgsl automatic_conversion_consensus: f32, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [8] = Binary { op: Multiply, left: [3], right: [7] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG wgsl automatic_conversion_consensus: f32, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [9] = Binary { op: Add, left: [2], right: [8] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [10] = Swizzle { size: Tri, vector: [1], pattern: [X, Y, Z, X] } : Value(Vector { size: Tri, scalar: Scalar { kind: Float, width: 4 } }) | |
| DEBUG Resolving [11] = AccessIndex { base: [1], index: 3 } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG wgsl automatic_conversion_consensus: vec3<f32>, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [12] = Binary { op: Multiply, left: [10], right: [11] } : Value(Vector { size: Tri, scalar: Scalar { kind: Float, width: 4 } }) | |
| DEBUG Resolving [13] = Swizzle { size: Tri, vector: [0], pattern: [X, Y, Z, X] } : Value(Vector { size: Tri, scalar: Scalar { kind: Float, width: 4 } }) | |
| DEBUG Resolving [14] = AccessIndex { base: [0], index: 3 } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG wgsl automatic_conversion_consensus: vec3<f32>, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [15] = Binary { op: Multiply, left: [13], right: [14] } : Value(Vector { size: Tri, scalar: Scalar { kind: Float, width: 4 } }) | |
| DEBUG Resolving [16] = Literal(AbstractFloat(1.0)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG Resolving [17] = AccessIndex { base: [1], index: 3 } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG wgsl automatic_conversion_consensus: {AbstractFloat}, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [18] = Literal(F32(1.0)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [19] = Binary { op: Subtract, left: [18], right: [17] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG wgsl automatic_conversion_consensus: vec3<f32>, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [20] = Binary { op: Multiply, left: [15], right: [19] } : Value(Vector { size: Tri, scalar: Scalar { kind: Float, width: 4 } }) | |
| DEBUG wgsl automatic_conversion_consensus: vec3<f32>, vec3<f32> | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [21] = Binary { op: Add, left: [12], right: [20] } : Value(Vector { size: Tri, scalar: Scalar { kind: Float, width: 4 } }) | |
| DEBUG Resolving [22] = Splat { size: Tri, value: [9] } : Value(Vector { size: Tri, scalar: Scalar { kind: Float, width: 4 } }) | |
| DEBUG wgsl automatic_conversion_consensus: vec3<f32>, vec3<f32> | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [23] = Binary { op: Divide, left: [21], right: [22] } : Value(Vector { size: Tri, scalar: Scalar { kind: Float, width: 4 } }) | |
| DEBUG Resolving [24] = Compose { ty: [2], components: [[23], [9]] } : Handle([2]) | |
| DEBUG Resolving [0] = FunctionArgument(0) : Handle([0]) | |
| DEBUG Resolving [1] = FunctionArgument(1) : Handle([0]) | |
| DEBUG wgsl automatic_conversion_consensus: f32, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [2] = Binary { op: Multiply, left: [0], right: [0] } : Handle([0]) | |
| DEBUG Resolving [3] = Unary { op: Negate, expr: [2] } : Handle([0]) | |
| DEBUG Resolving [4] = Literal(AbstractFloat(2.0)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG wgsl automatic_conversion_consensus: {AbstractFloat}, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [5] = Literal(F32(2.0)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [6] = Binary { op: Multiply, left: [5], right: [1] } : Handle([0]) | |
| DEBUG wgsl automatic_conversion_consensus: f32, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [7] = Binary { op: Multiply, left: [6], right: [1] } : Handle([0]) | |
| DEBUG wgsl automatic_conversion_consensus: f32, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [8] = Binary { op: Divide, left: [3], right: [7] } : Handle([0]) | |
| DEBUG Initial overloads: List { | |
| rules: [ | |
| ({AbstractFloat}) -> {AbstractFloat}, | |
| (f32) -> f32, | |
| (f16) -> f16, | |
| (f64) -> f64, | |
| (vec2<{AbstractFloat}>) -> vec2<{AbstractFloat}>, | |
| (vec2<f32>) -> vec2<f32>, | |
| (vec2<f16>) -> vec2<f16>, | |
| (vec2<f64>) -> vec2<f64>, | |
| (vec3<{AbstractFloat}>) -> vec3<{AbstractFloat}>, | |
| (vec3<f32>) -> vec3<f32>, | |
| (vec3<f16>) -> vec3<f16>, | |
| (vec3<f64>) -> vec3<f64>, | |
| (vec4<{AbstractFloat}>) -> vec4<{AbstractFloat}>, | |
| (vec4<f32>) -> vec4<f32>, | |
| (vec4<f16>) -> vec4<f16>, | |
| (vec4<f64>) -> vec4<f64>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG Supplying argument 0 of type f32 | |
| DEBUG Remaining overloads: List { | |
| rules: [ | |
| (f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG initial overloads for Exp, List { | |
| rules: [ | |
| ({AbstractFloat}) -> {AbstractFloat}, | |
| (f32) -> f32, | |
| (f16) -> f16, | |
| (f64) -> f64, | |
| (vec2<{AbstractFloat}>) -> vec2<{AbstractFloat}>, | |
| (vec2<f32>) -> vec2<f32>, | |
| (vec2<f16>) -> vec2<f16>, | |
| (vec2<f64>) -> vec2<f64>, | |
| (vec3<{AbstractFloat}>) -> vec3<{AbstractFloat}>, | |
| (vec3<f32>) -> vec3<f32>, | |
| (vec3<f16>) -> vec3<f16>, | |
| (vec3<f64>) -> vec3<f64>, | |
| (vec4<{AbstractFloat}>) -> vec4<{AbstractFloat}>, | |
| (vec4<f32>) -> vec4<f32>, | |
| (vec4<f16>) -> vec4<f16>, | |
| (vec4<f64>) -> vec4<f64>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG overloads after arg 0 of type f32: List { | |
| rules: [ | |
| (f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG Resolving [9] = Math { fun: Exp, arg: [8], arg1: None, arg2: None, arg3: None } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [10] = Literal(AbstractFloat(2.0)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG Resolving [11] = Constant([0]) : Handle([0]) | |
| DEBUG wgsl automatic_conversion_consensus: {AbstractFloat}, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [12] = Literal(F32(2.0)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [13] = Literal(F32(3.1415925)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [14] = Literal(F32(6.283185)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Initial overloads: List { | |
| rules: [ | |
| ({AbstractFloat}) -> {AbstractFloat}, | |
| (f32) -> f32, | |
| (f16) -> f16, | |
| (f64) -> f64, | |
| (vec2<{AbstractFloat}>) -> vec2<{AbstractFloat}>, | |
| (vec2<f32>) -> vec2<f32>, | |
| (vec2<f16>) -> vec2<f16>, | |
| (vec2<f64>) -> vec2<f64>, | |
| (vec3<{AbstractFloat}>) -> vec3<{AbstractFloat}>, | |
| (vec3<f32>) -> vec3<f32>, | |
| (vec3<f16>) -> vec3<f16>, | |
| (vec3<f64>) -> vec3<f64>, | |
| (vec4<{AbstractFloat}>) -> vec4<{AbstractFloat}>, | |
| (vec4<f32>) -> vec4<f32>, | |
| (vec4<f16>) -> vec4<f16>, | |
| (vec4<f64>) -> vec4<f64>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG Supplying argument 0 of type f32 | |
| DEBUG Remaining overloads: List { | |
| rules: [ | |
| (f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG Resolving [15] = Literal(F32(2.5066283)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG wgsl automatic_conversion_consensus: f32, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [16] = Binary { op: Multiply, left: [15], right: [1] } : Handle([0]) | |
| DEBUG wgsl automatic_conversion_consensus: f32, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [17] = Binary { op: Divide, left: [9], right: [16] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [0] = FunctionArgument(0) : Handle([3]) | |
| DEBUG Initial overloads: List { | |
| rules: [ | |
| ({AbstractInt}) -> {AbstractInt}, | |
| ({AbstractFloat}) -> {AbstractFloat}, | |
| (i32) -> i32, | |
| (i64) -> i64, | |
| (u32) -> u32, | |
| (u64) -> u64, | |
| (f32) -> f32, | |
| (f16) -> f16, | |
| (f64) -> f64, | |
| (vec2<{AbstractInt}>) -> vec2<{AbstractInt}>, | |
| (vec2<{AbstractFloat}>) -> vec2<{AbstractFloat}>, | |
| (vec2<i32>) -> vec2<i32>, | |
| (vec2<i64>) -> vec2<i64>, | |
| (vec2<u32>) -> vec2<u32>, | |
| (vec2<u64>) -> vec2<u64>, | |
| (vec2<f32>) -> vec2<f32>, | |
| (vec2<f16>) -> vec2<f16>, | |
| (vec2<f64>) -> vec2<f64>, | |
| (vec3<{AbstractInt}>) -> vec3<{AbstractInt}>, | |
| (vec3<{AbstractFloat}>) -> vec3<{AbstractFloat}>, | |
| (vec3<i32>) -> vec3<i32>, | |
| (vec3<i64>) -> vec3<i64>, | |
| (vec3<u32>) -> vec3<u32>, | |
| (vec3<u64>) -> vec3<u64>, | |
| (vec3<f32>) -> vec3<f32>, | |
| (vec3<f16>) -> vec3<f16>, | |
| (vec3<f64>) -> vec3<f64>, | |
| (vec4<{AbstractInt}>) -> vec4<{AbstractInt}>, | |
| (vec4<{AbstractFloat}>) -> vec4<{AbstractFloat}>, | |
| (vec4<i32>) -> vec4<i32>, | |
| (vec4<i64>) -> vec4<i64>, | |
| (vec4<u32>) -> vec4<u32>, | |
| (vec4<u64>) -> vec4<u64>, | |
| (vec4<f32>) -> vec4<f32>, | |
| (vec4<f16>) -> vec4<f16>, | |
| (vec4<f64>) -> vec4<f64>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG Supplying argument 0 of type vec2<f32> | |
| DEBUG Remaining overloads: List { | |
| rules: [ | |
| (vec2<f32>) -> vec2<f32>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG initial overloads for Sign, List { | |
| rules: [ | |
| ({AbstractInt}) -> {AbstractInt}, | |
| ({AbstractFloat}) -> {AbstractFloat}, | |
| (i32) -> i32, | |
| (i64) -> i64, | |
| (u32) -> u32, | |
| (u64) -> u64, | |
| (f32) -> f32, | |
| (f16) -> f16, | |
| (f64) -> f64, | |
| (vec2<{AbstractInt}>) -> vec2<{AbstractInt}>, | |
| (vec2<{AbstractFloat}>) -> vec2<{AbstractFloat}>, | |
| (vec2<i32>) -> vec2<i32>, | |
| (vec2<i64>) -> vec2<i64>, | |
| (vec2<u32>) -> vec2<u32>, | |
| (vec2<u64>) -> vec2<u64>, | |
| (vec2<f32>) -> vec2<f32>, | |
| (vec2<f16>) -> vec2<f16>, | |
| (vec2<f64>) -> vec2<f64>, | |
| (vec3<{AbstractInt}>) -> vec3<{AbstractInt}>, | |
| (vec3<{AbstractFloat}>) -> vec3<{AbstractFloat}>, | |
| (vec3<i32>) -> vec3<i32>, | |
| (vec3<i64>) -> vec3<i64>, | |
| (vec3<u32>) -> vec3<u32>, | |
| (vec3<u64>) -> vec3<u64>, | |
| (vec3<f32>) -> vec3<f32>, | |
| (vec3<f16>) -> vec3<f16>, | |
| (vec3<f64>) -> vec3<f64>, | |
| (vec4<{AbstractInt}>) -> vec4<{AbstractInt}>, | |
| (vec4<{AbstractFloat}>) -> vec4<{AbstractFloat}>, | |
| (vec4<i32>) -> vec4<i32>, | |
| (vec4<i64>) -> vec4<i64>, | |
| (vec4<u32>) -> vec4<u32>, | |
| (vec4<u64>) -> vec4<u64>, | |
| (vec4<f32>) -> vec4<f32>, | |
| (vec4<f16>) -> vec4<f16>, | |
| (vec4<f64>) -> vec4<f64>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG overloads after arg 0 of type vec2<f32>: List { | |
| rules: [ | |
| (vec2<f32>) -> vec2<f32>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG Resolving [1] = Math { fun: Sign, arg: [0], arg1: None, arg2: None, arg3: None } : Value(Vector { size: Bi, scalar: Scalar { kind: Float, width: 4 } }) | |
| DEBUG Initial overloads: List { | |
| rules: [ | |
| ({AbstractInt}) -> {AbstractInt}, | |
| ({AbstractFloat}) -> {AbstractFloat}, | |
| (i32) -> i32, | |
| (i64) -> i64, | |
| (u32) -> u32, | |
| (u64) -> u64, | |
| (f32) -> f32, | |
| (f16) -> f16, | |
| (f64) -> f64, | |
| (vec2<{AbstractInt}>) -> vec2<{AbstractInt}>, | |
| (vec2<{AbstractFloat}>) -> vec2<{AbstractFloat}>, | |
| (vec2<i32>) -> vec2<i32>, | |
| (vec2<i64>) -> vec2<i64>, | |
| (vec2<u32>) -> vec2<u32>, | |
| (vec2<u64>) -> vec2<u64>, | |
| (vec2<f32>) -> vec2<f32>, | |
| (vec2<f16>) -> vec2<f16>, | |
| (vec2<f64>) -> vec2<f64>, | |
| (vec3<{AbstractInt}>) -> vec3<{AbstractInt}>, | |
| (vec3<{AbstractFloat}>) -> vec3<{AbstractFloat}>, | |
| (vec3<i32>) -> vec3<i32>, | |
| (vec3<i64>) -> vec3<i64>, | |
| (vec3<u32>) -> vec3<u32>, | |
| (vec3<u64>) -> vec3<u64>, | |
| (vec3<f32>) -> vec3<f32>, | |
| (vec3<f16>) -> vec3<f16>, | |
| (vec3<f64>) -> vec3<f64>, | |
| (vec4<{AbstractInt}>) -> vec4<{AbstractInt}>, | |
| (vec4<{AbstractFloat}>) -> vec4<{AbstractFloat}>, | |
| (vec4<i32>) -> vec4<i32>, | |
| (vec4<i64>) -> vec4<i64>, | |
| (vec4<u32>) -> vec4<u32>, | |
| (vec4<u64>) -> vec4<u64>, | |
| (vec4<f32>) -> vec4<f32>, | |
| (vec4<f16>) -> vec4<f16>, | |
| (vec4<f64>) -> vec4<f64>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG Supplying argument 0 of type vec2<f32> | |
| DEBUG Remaining overloads: List { | |
| rules: [ | |
| (vec2<f32>) -> vec2<f32>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG initial overloads for Abs, List { | |
| rules: [ | |
| ({AbstractInt}) -> {AbstractInt}, | |
| ({AbstractFloat}) -> {AbstractFloat}, | |
| (i32) -> i32, | |
| (i64) -> i64, | |
| (u32) -> u32, | |
| (u64) -> u64, | |
| (f32) -> f32, | |
| (f16) -> f16, | |
| (f64) -> f64, | |
| (vec2<{AbstractInt}>) -> vec2<{AbstractInt}>, | |
| (vec2<{AbstractFloat}>) -> vec2<{AbstractFloat}>, | |
| (vec2<i32>) -> vec2<i32>, | |
| (vec2<i64>) -> vec2<i64>, | |
| (vec2<u32>) -> vec2<u32>, | |
| (vec2<u64>) -> vec2<u64>, | |
| (vec2<f32>) -> vec2<f32>, | |
| (vec2<f16>) -> vec2<f16>, | |
| (vec2<f64>) -> vec2<f64>, | |
| (vec3<{AbstractInt}>) -> vec3<{AbstractInt}>, | |
| (vec3<{AbstractFloat}>) -> vec3<{AbstractFloat}>, | |
| (vec3<i32>) -> vec3<i32>, | |
| (vec3<i64>) -> vec3<i64>, | |
| (vec3<u32>) -> vec3<u32>, | |
| (vec3<u64>) -> vec3<u64>, | |
| (vec3<f32>) -> vec3<f32>, | |
| (vec3<f16>) -> vec3<f16>, | |
| (vec3<f64>) -> vec3<f64>, | |
| (vec4<{AbstractInt}>) -> vec4<{AbstractInt}>, | |
| (vec4<{AbstractFloat}>) -> vec4<{AbstractFloat}>, | |
| (vec4<i32>) -> vec4<i32>, | |
| (vec4<i64>) -> vec4<i64>, | |
| (vec4<u32>) -> vec4<u32>, | |
| (vec4<u64>) -> vec4<u64>, | |
| (vec4<f32>) -> vec4<f32>, | |
| (vec4<f16>) -> vec4<f16>, | |
| (vec4<f64>) -> vec4<f64>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG overloads after arg 0 of type vec2<f32>: List { | |
| rules: [ | |
| (vec2<f32>) -> vec2<f32>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG Resolving [2] = Math { fun: Abs, arg: [0], arg1: None, arg2: None, arg3: None } : Value(Vector { size: Bi, scalar: Scalar { kind: Float, width: 4 } }) | |
| DEBUG Resolving [3] = Literal(AbstractFloat(1.0)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG Resolving [4] = Literal(AbstractFloat(0.278393)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG Resolving [5] = Literal(AbstractFloat(0.230389)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG Resolving [6] = Literal(AbstractFloat(0.000972)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG Resolving [7] = Literal(AbstractFloat(0.078108)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG wgsl automatic_conversion_consensus: {AbstractFloat}, vec2<f32> | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [8] = Literal(F32(0.078108)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [9] = Binary { op: Multiply, left: [8], right: [2] } : Value(Vector { size: Bi, scalar: Scalar { kind: Float, width: 4 } }) | |
| DEBUG Resolving [10] = Splat { size: Bi, value: [6] } : Value(Vector { size: Bi, scalar: Scalar { kind: AbstractFloat, width: 8 } }) | |
| DEBUG wgsl automatic_conversion_consensus: vec2<{AbstractFloat}>, vec2<f32> | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [11] = Literal(F32(0.000972)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [12] = Splat { size: Bi, value: [11] } : Value(Vector { size: Bi, scalar: Scalar { kind: Float, width: 4 } }) | |
| DEBUG Resolving [13] = Binary { op: Add, left: [12], right: [9] } : Value(Vector { size: Bi, scalar: Scalar { kind: Float, width: 4 } }) | |
| DEBUG wgsl automatic_conversion_consensus: vec2<f32>, vec2<f32> | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [14] = Binary { op: Multiply, left: [13], right: [2] } : Value(Vector { size: Bi, scalar: Scalar { kind: Float, width: 4 } }) | |
| DEBUG Resolving [15] = Splat { size: Bi, value: [5] } : Value(Vector { size: Bi, scalar: Scalar { kind: AbstractFloat, width: 8 } }) | |
| DEBUG wgsl automatic_conversion_consensus: vec2<{AbstractFloat}>, vec2<f32> | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [16] = Literal(F32(0.230389)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [17] = Splat { size: Bi, value: [16] } : Value(Vector { size: Bi, scalar: Scalar { kind: Float, width: 4 } }) | |
| DEBUG Resolving [18] = Binary { op: Add, left: [17], right: [14] } : Value(Vector { size: Bi, scalar: Scalar { kind: Float, width: 4 } }) | |
| DEBUG wgsl automatic_conversion_consensus: vec2<f32>, vec2<f32> | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [19] = Binary { op: Multiply, left: [18], right: [2] } : Value(Vector { size: Bi, scalar: Scalar { kind: Float, width: 4 } }) | |
| DEBUG Resolving [20] = Splat { size: Bi, value: [4] } : Value(Vector { size: Bi, scalar: Scalar { kind: AbstractFloat, width: 8 } }) | |
| DEBUG wgsl automatic_conversion_consensus: vec2<{AbstractFloat}>, vec2<f32> | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [21] = Literal(F32(0.278393)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [22] = Splat { size: Bi, value: [21] } : Value(Vector { size: Bi, scalar: Scalar { kind: Float, width: 4 } }) | |
| DEBUG Resolving [23] = Binary { op: Add, left: [22], right: [19] } : Value(Vector { size: Bi, scalar: Scalar { kind: Float, width: 4 } }) | |
| DEBUG wgsl automatic_conversion_consensus: vec2<f32>, vec2<f32> | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [24] = Binary { op: Multiply, left: [23], right: [2] } : Value(Vector { size: Bi, scalar: Scalar { kind: Float, width: 4 } }) | |
| DEBUG Resolving [25] = Splat { size: Bi, value: [3] } : Value(Vector { size: Bi, scalar: Scalar { kind: AbstractFloat, width: 8 } }) | |
| DEBUG wgsl automatic_conversion_consensus: vec2<{AbstractFloat}>, vec2<f32> | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [26] = Literal(F32(1.0)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [27] = Splat { size: Bi, value: [26] } : Value(Vector { size: Bi, scalar: Scalar { kind: Float, width: 4 } }) | |
| DEBUG Resolving [28] = Binary { op: Add, left: [27], right: [24] } : Value(Vector { size: Bi, scalar: Scalar { kind: Float, width: 4 } }) | |
| DEBUG wgsl automatic_conversion_consensus: vec2<f32>, vec2<f32> | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [29] = Binary { op: Multiply, left: [28], right: [28] } : Value(Vector { size: Bi, scalar: Scalar { kind: Float, width: 4 } }) | |
| DEBUG wgsl automatic_conversion_consensus: vec2<f32>, vec2<f32> | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [30] = Binary { op: Multiply, left: [29], right: [29] } : Value(Vector { size: Bi, scalar: Scalar { kind: Float, width: 4 } }) | |
| DEBUG wgsl automatic_conversion_consensus: vec2<f32>, vec2<f32> | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [31] = Binary { op: Divide, left: [1], right: [30] } : Value(Vector { size: Bi, scalar: Scalar { kind: Float, width: 4 } }) | |
| DEBUG wgsl automatic_conversion_consensus: vec2<f32>, vec2<f32> | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [32] = Binary { op: Subtract, left: [1], right: [31] } : Value(Vector { size: Bi, scalar: Scalar { kind: Float, width: 4 } }) | |
| DEBUG Resolving [0] = FunctionArgument(0) : Handle([0]) | |
| DEBUG Resolving [1] = FunctionArgument(1) : Handle([0]) | |
| DEBUG Resolving [2] = FunctionArgument(2) : Handle([0]) | |
| DEBUG Resolving [3] = FunctionArgument(3) : Handle([0]) | |
| DEBUG Resolving [4] = FunctionArgument(4) : Handle([3]) | |
| DEBUG Resolving [5] = AccessIndex { base: [4], index: 1 } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG wgsl automatic_conversion_consensus: f32, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Initial overloads: List { | |
| rules: [ | |
| ({AbstractInt}) -> {AbstractInt}, | |
| ({AbstractFloat}) -> {AbstractFloat}, | |
| (i32) -> i32, | |
| (i64) -> i64, | |
| (u32) -> u32, | |
| (u64) -> u64, | |
| (f32) -> f32, | |
| (f16) -> f16, | |
| (f64) -> f64, | |
| (vec2<{AbstractInt}>) -> vec2<{AbstractInt}>, | |
| (vec2<{AbstractFloat}>) -> vec2<{AbstractFloat}>, | |
| (vec2<i32>) -> vec2<i32>, | |
| (vec2<i64>) -> vec2<i64>, | |
| (vec2<u32>) -> vec2<u32>, | |
| (vec2<u64>) -> vec2<u64>, | |
| (vec2<f32>) -> vec2<f32>, | |
| (vec2<f16>) -> vec2<f16>, | |
| (vec2<f64>) -> vec2<f64>, | |
| (vec3<{AbstractInt}>) -> vec3<{AbstractInt}>, | |
| (vec3<{AbstractFloat}>) -> vec3<{AbstractFloat}>, | |
| (vec3<i32>) -> vec3<i32>, | |
| (vec3<i64>) -> vec3<i64>, | |
| (vec3<u32>) -> vec3<u32>, | |
| (vec3<u64>) -> vec3<u64>, | |
| (vec3<f32>) -> vec3<f32>, | |
| (vec3<f16>) -> vec3<f16>, | |
| (vec3<f64>) -> vec3<f64>, | |
| (vec4<{AbstractInt}>) -> vec4<{AbstractInt}>, | |
| (vec4<{AbstractFloat}>) -> vec4<{AbstractFloat}>, | |
| (vec4<i32>) -> vec4<i32>, | |
| (vec4<i64>) -> vec4<i64>, | |
| (vec4<u32>) -> vec4<u32>, | |
| (vec4<u64>) -> vec4<u64>, | |
| (vec4<f32>) -> vec4<f32>, | |
| (vec4<f16>) -> vec4<f16>, | |
| (vec4<f64>) -> vec4<f64>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG Supplying argument 0 of type f32 | |
| DEBUG Remaining overloads: List { | |
| rules: [ | |
| (f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG Resolving [6] = Binary { op: Subtract, left: [5], right: [3] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG initial overloads for Abs, List { | |
| rules: [ | |
| ({AbstractInt}) -> {AbstractInt}, | |
| ({AbstractFloat}) -> {AbstractFloat}, | |
| (i32) -> i32, | |
| (i64) -> i64, | |
| (u32) -> u32, | |
| (u64) -> u64, | |
| (f32) -> f32, | |
| (f16) -> f16, | |
| (f64) -> f64, | |
| (vec2<{AbstractInt}>) -> vec2<{AbstractInt}>, | |
| (vec2<{AbstractFloat}>) -> vec2<{AbstractFloat}>, | |
| (vec2<i32>) -> vec2<i32>, | |
| (vec2<i64>) -> vec2<i64>, | |
| (vec2<u32>) -> vec2<u32>, | |
| (vec2<u64>) -> vec2<u64>, | |
| (vec2<f32>) -> vec2<f32>, | |
| (vec2<f16>) -> vec2<f16>, | |
| (vec2<f64>) -> vec2<f64>, | |
| (vec3<{AbstractInt}>) -> vec3<{AbstractInt}>, | |
| (vec3<{AbstractFloat}>) -> vec3<{AbstractFloat}>, | |
| (vec3<i32>) -> vec3<i32>, | |
| (vec3<i64>) -> vec3<i64>, | |
| (vec3<u32>) -> vec3<u32>, | |
| (vec3<u64>) -> vec3<u64>, | |
| (vec3<f32>) -> vec3<f32>, | |
| (vec3<f16>) -> vec3<f16>, | |
| (vec3<f64>) -> vec3<f64>, | |
| (vec4<{AbstractInt}>) -> vec4<{AbstractInt}>, | |
| (vec4<{AbstractFloat}>) -> vec4<{AbstractFloat}>, | |
| (vec4<i32>) -> vec4<i32>, | |
| (vec4<i64>) -> vec4<i64>, | |
| (vec4<u32>) -> vec4<u32>, | |
| (vec4<u64>) -> vec4<u64>, | |
| (vec4<f32>) -> vec4<f32>, | |
| (vec4<f16>) -> vec4<f16>, | |
| (vec4<f64>) -> vec4<f64>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG overloads after arg 0 of type f32: List { | |
| rules: [ | |
| (f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG Resolving [7] = Math { fun: Abs, arg: [1], arg1: None, arg2: None, arg3: None } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG wgsl automatic_conversion_consensus: f32, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [8] = Binary { op: Subtract, left: [6], right: [7] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [9] = Literal(AbstractFloat(0.0)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG Initial overloads: List { | |
| rules: [ | |
| ({AbstractInt}, {AbstractInt}) -> {AbstractInt}, | |
| ({AbstractFloat}, {AbstractFloat}) -> {AbstractFloat}, | |
| (i32, i32) -> i32, | |
| (i64, i64) -> i64, | |
| (u32, u32) -> u32, | |
| (u64, u64) -> u64, | |
| (f32, f32) -> f32, | |
| (f16, f16) -> f16, | |
| (f64, f64) -> f64, | |
| (vec2<{AbstractInt}>, vec2<{AbstractInt}>) -> vec2<{AbstractInt}>, | |
| (vec2<{AbstractFloat}>, vec2<{AbstractFloat}>) -> vec2<{AbstractFloat}>, | |
| (vec2<i32>, vec2<i32>) -> vec2<i32>, | |
| (vec2<i64>, vec2<i64>) -> vec2<i64>, | |
| (vec2<u32>, vec2<u32>) -> vec2<u32>, | |
| (vec2<u64>, vec2<u64>) -> vec2<u64>, | |
| (vec2<f32>, vec2<f32>) -> vec2<f32>, | |
| (vec2<f16>, vec2<f16>) -> vec2<f16>, | |
| (vec2<f64>, vec2<f64>) -> vec2<f64>, | |
| (vec3<{AbstractInt}>, vec3<{AbstractInt}>) -> vec3<{AbstractInt}>, | |
| (vec3<{AbstractFloat}>, vec3<{AbstractFloat}>) -> vec3<{AbstractFloat}>, | |
| (vec3<i32>, vec3<i32>) -> vec3<i32>, | |
| (vec3<i64>, vec3<i64>) -> vec3<i64>, | |
| (vec3<u32>, vec3<u32>) -> vec3<u32>, | |
| (vec3<u64>, vec3<u64>) -> vec3<u64>, | |
| (vec3<f32>, vec3<f32>) -> vec3<f32>, | |
| (vec3<f16>, vec3<f16>) -> vec3<f16>, | |
| (vec3<f64>, vec3<f64>) -> vec3<f64>, | |
| (vec4<{AbstractInt}>, vec4<{AbstractInt}>) -> vec4<{AbstractInt}>, | |
| (vec4<{AbstractFloat}>, vec4<{AbstractFloat}>) -> vec4<{AbstractFloat}>, | |
| (vec4<i32>, vec4<i32>) -> vec4<i32>, | |
| (vec4<i64>, vec4<i64>) -> vec4<i64>, | |
| (vec4<u32>, vec4<u32>) -> vec4<u32>, | |
| (vec4<u64>, vec4<u64>) -> vec4<u64>, | |
| (vec4<f32>, vec4<f32>) -> vec4<f32>, | |
| (vec4<f16>, vec4<f16>) -> vec4<f16>, | |
| (vec4<f64>, vec4<f64>) -> vec4<f64>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG Supplying argument 0 of type f32 | |
| DEBUG Remaining overloads: List { | |
| rules: [ | |
| (f32, f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG Supplying argument 1 of type {AbstractFloat} | |
| DEBUG Remaining overloads: List { | |
| rules: [ | |
| (f32, f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG Resolving [10] = Literal(F32(0.0)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG initial overloads for Min, List { | |
| rules: [ | |
| ({AbstractInt}, {AbstractInt}) -> {AbstractInt}, | |
| ({AbstractFloat}, {AbstractFloat}) -> {AbstractFloat}, | |
| (i32, i32) -> i32, | |
| (i64, i64) -> i64, | |
| (u32, u32) -> u32, | |
| (u64, u64) -> u64, | |
| (f32, f32) -> f32, | |
| (f16, f16) -> f16, | |
| (f64, f64) -> f64, | |
| (vec2<{AbstractInt}>, vec2<{AbstractInt}>) -> vec2<{AbstractInt}>, | |
| (vec2<{AbstractFloat}>, vec2<{AbstractFloat}>) -> vec2<{AbstractFloat}>, | |
| (vec2<i32>, vec2<i32>) -> vec2<i32>, | |
| (vec2<i64>, vec2<i64>) -> vec2<i64>, | |
| (vec2<u32>, vec2<u32>) -> vec2<u32>, | |
| (vec2<u64>, vec2<u64>) -> vec2<u64>, | |
| (vec2<f32>, vec2<f32>) -> vec2<f32>, | |
| (vec2<f16>, vec2<f16>) -> vec2<f16>, | |
| (vec2<f64>, vec2<f64>) -> vec2<f64>, | |
| (vec3<{AbstractInt}>, vec3<{AbstractInt}>) -> vec3<{AbstractInt}>, | |
| (vec3<{AbstractFloat}>, vec3<{AbstractFloat}>) -> vec3<{AbstractFloat}>, | |
| (vec3<i32>, vec3<i32>) -> vec3<i32>, | |
| (vec3<i64>, vec3<i64>) -> vec3<i64>, | |
| (vec3<u32>, vec3<u32>) -> vec3<u32>, | |
| (vec3<u64>, vec3<u64>) -> vec3<u64>, | |
| (vec3<f32>, vec3<f32>) -> vec3<f32>, | |
| (vec3<f16>, vec3<f16>) -> vec3<f16>, | |
| (vec3<f64>, vec3<f64>) -> vec3<f64>, | |
| (vec4<{AbstractInt}>, vec4<{AbstractInt}>) -> vec4<{AbstractInt}>, | |
| (vec4<{AbstractFloat}>, vec4<{AbstractFloat}>) -> vec4<{AbstractFloat}>, | |
| (vec4<i32>, vec4<i32>) -> vec4<i32>, | |
| (vec4<i64>, vec4<i64>) -> vec4<i64>, | |
| (vec4<u32>, vec4<u32>) -> vec4<u32>, | |
| (vec4<u64>, vec4<u64>) -> vec4<u64>, | |
| (vec4<f32>, vec4<f32>) -> vec4<f32>, | |
| (vec4<f16>, vec4<f16>) -> vec4<f16>, | |
| (vec4<f64>, vec4<f64>) -> vec4<f64>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG overloads after arg 0 of type f32: List { | |
| rules: [ | |
| (f32, f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG overloads after arg 1 of type f32: List { | |
| rules: [ | |
| (f32, f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG Resolving [11] = Math { fun: Min, arg: [8], arg1: Some([10]), arg2: None, arg3: None } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [12] = AccessIndex { base: [4], index: 0 } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG wgsl automatic_conversion_consensus: f32, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [13] = Binary { op: Subtract, left: [12], right: [3] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [14] = Literal(AbstractFloat(0.0)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG wgsl automatic_conversion_consensus: f32, f32 | |
| DEBUG consensus: f32 | |
| DEBUG wgsl automatic_conversion_consensus: f32, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [15] = Binary { op: Multiply, left: [3], right: [3] } : Handle([0]) | |
| DEBUG Resolving [16] = Binary { op: Multiply, left: [11], right: [11] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG wgsl automatic_conversion_consensus: f32, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [17] = Binary { op: Subtract, left: [15], right: [16] } : Handle([0]) | |
| DEBUG Initial overloads: List { | |
| rules: [ | |
| ({AbstractInt}, {AbstractInt}) -> {AbstractInt}, | |
| ({AbstractFloat}, {AbstractFloat}) -> {AbstractFloat}, | |
| (i32, i32) -> i32, | |
| (i64, i64) -> i64, | |
| (u32, u32) -> u32, | |
| (u64, u64) -> u64, | |
| (f32, f32) -> f32, | |
| (f16, f16) -> f16, | |
| (f64, f64) -> f64, | |
| (vec2<{AbstractInt}>, vec2<{AbstractInt}>) -> vec2<{AbstractInt}>, | |
| (vec2<{AbstractFloat}>, vec2<{AbstractFloat}>) -> vec2<{AbstractFloat}>, | |
| (vec2<i32>, vec2<i32>) -> vec2<i32>, | |
| (vec2<i64>, vec2<i64>) -> vec2<i64>, | |
| (vec2<u32>, vec2<u32>) -> vec2<u32>, | |
| (vec2<u64>, vec2<u64>) -> vec2<u64>, | |
| (vec2<f32>, vec2<f32>) -> vec2<f32>, | |
| (vec2<f16>, vec2<f16>) -> vec2<f16>, | |
| (vec2<f64>, vec2<f64>) -> vec2<f64>, | |
| (vec3<{AbstractInt}>, vec3<{AbstractInt}>) -> vec3<{AbstractInt}>, | |
| (vec3<{AbstractFloat}>, vec3<{AbstractFloat}>) -> vec3<{AbstractFloat}>, | |
| (vec3<i32>, vec3<i32>) -> vec3<i32>, | |
| (vec3<i64>, vec3<i64>) -> vec3<i64>, | |
| (vec3<u32>, vec3<u32>) -> vec3<u32>, | |
| (vec3<u64>, vec3<u64>) -> vec3<u64>, | |
| (vec3<f32>, vec3<f32>) -> vec3<f32>, | |
| (vec3<f16>, vec3<f16>) -> vec3<f16>, | |
| (vec3<f64>, vec3<f64>) -> vec3<f64>, | |
| (vec4<{AbstractInt}>, vec4<{AbstractInt}>) -> vec4<{AbstractInt}>, | |
| (vec4<{AbstractFloat}>, vec4<{AbstractFloat}>) -> vec4<{AbstractFloat}>, | |
| (vec4<i32>, vec4<i32>) -> vec4<i32>, | |
| (vec4<i64>, vec4<i64>) -> vec4<i64>, | |
| (vec4<u32>, vec4<u32>) -> vec4<u32>, | |
| (vec4<u64>, vec4<u64>) -> vec4<u64>, | |
| (vec4<f32>, vec4<f32>) -> vec4<f32>, | |
| (vec4<f16>, vec4<f16>) -> vec4<f16>, | |
| (vec4<f64>, vec4<f64>) -> vec4<f64>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG Supplying argument 0 of type {AbstractFloat} | |
| DEBUG Remaining overloads: List { | |
| rules: [ | |
| ({AbstractFloat}, {AbstractFloat}) -> {AbstractFloat}, | |
| (f32, f32) -> f32, | |
| (f16, f16) -> f16, | |
| (f64, f64) -> f64, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG Supplying argument 1 of type f32 | |
| DEBUG Remaining overloads: List { | |
| rules: [ | |
| (f32, f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG Resolving [18] = Literal(F32(0.0)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG initial overloads for Max, List { | |
| rules: [ | |
| ({AbstractInt}, {AbstractInt}) -> {AbstractInt}, | |
| ({AbstractFloat}, {AbstractFloat}) -> {AbstractFloat}, | |
| (i32, i32) -> i32, | |
| (i64, i64) -> i64, | |
| (u32, u32) -> u32, | |
| (u64, u64) -> u64, | |
| (f32, f32) -> f32, | |
| (f16, f16) -> f16, | |
| (f64, f64) -> f64, | |
| (vec2<{AbstractInt}>, vec2<{AbstractInt}>) -> vec2<{AbstractInt}>, | |
| (vec2<{AbstractFloat}>, vec2<{AbstractFloat}>) -> vec2<{AbstractFloat}>, | |
| (vec2<i32>, vec2<i32>) -> vec2<i32>, | |
| (vec2<i64>, vec2<i64>) -> vec2<i64>, | |
| (vec2<u32>, vec2<u32>) -> vec2<u32>, | |
| (vec2<u64>, vec2<u64>) -> vec2<u64>, | |
| (vec2<f32>, vec2<f32>) -> vec2<f32>, | |
| (vec2<f16>, vec2<f16>) -> vec2<f16>, | |
| (vec2<f64>, vec2<f64>) -> vec2<f64>, | |
| (vec3<{AbstractInt}>, vec3<{AbstractInt}>) -> vec3<{AbstractInt}>, | |
| (vec3<{AbstractFloat}>, vec3<{AbstractFloat}>) -> vec3<{AbstractFloat}>, | |
| (vec3<i32>, vec3<i32>) -> vec3<i32>, | |
| (vec3<i64>, vec3<i64>) -> vec3<i64>, | |
| (vec3<u32>, vec3<u32>) -> vec3<u32>, | |
| (vec3<u64>, vec3<u64>) -> vec3<u64>, | |
| (vec3<f32>, vec3<f32>) -> vec3<f32>, | |
| (vec3<f16>, vec3<f16>) -> vec3<f16>, | |
| (vec3<f64>, vec3<f64>) -> vec3<f64>, | |
| (vec4<{AbstractInt}>, vec4<{AbstractInt}>) -> vec4<{AbstractInt}>, | |
| (vec4<{AbstractFloat}>, vec4<{AbstractFloat}>) -> vec4<{AbstractFloat}>, | |
| (vec4<i32>, vec4<i32>) -> vec4<i32>, | |
| (vec4<i64>, vec4<i64>) -> vec4<i64>, | |
| (vec4<u32>, vec4<u32>) -> vec4<u32>, | |
| (vec4<u64>, vec4<u64>) -> vec4<u64>, | |
| (vec4<f32>, vec4<f32>) -> vec4<f32>, | |
| (vec4<f16>, vec4<f16>) -> vec4<f16>, | |
| (vec4<f64>, vec4<f64>) -> vec4<f64>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG overloads after arg 0 of type f32: List { | |
| rules: [ | |
| (f32, f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG overloads after arg 1 of type f32: List { | |
| rules: [ | |
| (f32, f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG Resolving [19] = Math { fun: Max, arg: [18], arg1: Some([17]), arg2: None, arg3: None } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Initial overloads: List { | |
| rules: [ | |
| ({AbstractFloat}) -> {AbstractFloat}, | |
| (f32) -> f32, | |
| (f16) -> f16, | |
| (f64) -> f64, | |
| (vec2<{AbstractFloat}>) -> vec2<{AbstractFloat}>, | |
| (vec2<f32>) -> vec2<f32>, | |
| (vec2<f16>) -> vec2<f16>, | |
| (vec2<f64>) -> vec2<f64>, | |
| (vec3<{AbstractFloat}>) -> vec3<{AbstractFloat}>, | |
| (vec3<f32>) -> vec3<f32>, | |
| (vec3<f16>) -> vec3<f16>, | |
| (vec3<f64>) -> vec3<f64>, | |
| (vec4<{AbstractFloat}>) -> vec4<{AbstractFloat}>, | |
| (vec4<f32>) -> vec4<f32>, | |
| (vec4<f16>) -> vec4<f16>, | |
| (vec4<f64>) -> vec4<f64>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG Supplying argument 0 of type f32 | |
| DEBUG Remaining overloads: List { | |
| rules: [ | |
| (f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG initial overloads for Sqrt, List { | |
| rules: [ | |
| ({AbstractFloat}) -> {AbstractFloat}, | |
| (f32) -> f32, | |
| (f16) -> f16, | |
| (f64) -> f64, | |
| (vec2<{AbstractFloat}>) -> vec2<{AbstractFloat}>, | |
| (vec2<f32>) -> vec2<f32>, | |
| (vec2<f16>) -> vec2<f16>, | |
| (vec2<f64>) -> vec2<f64>, | |
| (vec3<{AbstractFloat}>) -> vec3<{AbstractFloat}>, | |
| (vec3<f32>) -> vec3<f32>, | |
| (vec3<f16>) -> vec3<f16>, | |
| (vec3<f64>) -> vec3<f64>, | |
| (vec4<{AbstractFloat}>) -> vec4<{AbstractFloat}>, | |
| (vec4<f32>) -> vec4<f32>, | |
| (vec4<f16>) -> vec4<f16>, | |
| (vec4<f64>) -> vec4<f64>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG overloads after arg 0 of type f32: List { | |
| rules: [ | |
| (f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG Resolving [20] = Math { fun: Sqrt, arg: [19], arg1: None, arg2: None, arg3: None } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG wgsl automatic_conversion_consensus: f32, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [21] = Binary { op: Add, left: [13], right: [20] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [22] = Literal(AbstractFloat(0.5)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG Resolving [23] = Literal(AbstractFloat(0.5)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG Resolving [24] = Unary { op: Negate, expr: [21] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [25] = Compose { ty: [3], components: [[24], [21]] } : Handle([3]) | |
| DEBUG Resolving [26] = Splat { size: Bi, value: [0] } : Value(Vector { size: Bi, scalar: Scalar { kind: Float, width: 4 } }) | |
| DEBUG wgsl automatic_conversion_consensus: vec2<f32>, vec2<f32> | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [27] = Binary { op: Add, left: [26], right: [25] } : Value(Vector { size: Bi, scalar: Scalar { kind: Float, width: 4 } }) | |
| DEBUG Resolving [28] = Literal(AbstractFloat(0.5)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG Initial overloads: List { | |
| rules: [ | |
| ({AbstractFloat}) -> {AbstractFloat}, | |
| (f32) -> f32, | |
| (f16) -> f16, | |
| (f64) -> f64, | |
| (vec2<{AbstractFloat}>) -> vec2<{AbstractFloat}>, | |
| (vec2<f32>) -> vec2<f32>, | |
| (vec2<f16>) -> vec2<f16>, | |
| (vec2<f64>) -> vec2<f64>, | |
| (vec3<{AbstractFloat}>) -> vec3<{AbstractFloat}>, | |
| (vec3<f32>) -> vec3<f32>, | |
| (vec3<f16>) -> vec3<f16>, | |
| (vec3<f64>) -> vec3<f64>, | |
| (vec4<{AbstractFloat}>) -> vec4<{AbstractFloat}>, | |
| (vec4<f32>) -> vec4<f32>, | |
| (vec4<f16>) -> vec4<f16>, | |
| (vec4<f64>) -> vec4<f64>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG Supplying argument 0 of type {AbstractFloat} | |
| DEBUG Remaining overloads: List { | |
| rules: [ | |
| ({AbstractFloat}) -> {AbstractFloat}, | |
| (f32) -> f32, | |
| (f16) -> f16, | |
| (f64) -> f64, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG Resolving [29] = Literal(AbstractFloat(0.7071067811865476)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG wgsl automatic_conversion_consensus: {AbstractFloat}, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [30] = Literal(F32(0.70710677)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [31] = Binary { op: Divide, left: [30], right: [2] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG wgsl automatic_conversion_consensus: vec2<f32>, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [32] = Binary { op: Multiply, left: [27], right: [31] } : Value(Vector { size: Bi, scalar: Scalar { kind: Float, width: 4 } }) | |
| DEBUG Resolving [33] = CallResult([22]) : Handle([3]) | |
| DEBUG wgsl automatic_conversion_consensus: {AbstractFloat}, vec2<f32> | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [34] = Literal(F32(0.5)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [35] = Binary { op: Multiply, left: [34], right: [33] } : Handle([3]) | |
| DEBUG Resolving [36] = Splat { size: Bi, value: [22] } : Value(Vector { size: Bi, scalar: Scalar { kind: AbstractFloat, width: 8 } }) | |
| DEBUG wgsl automatic_conversion_consensus: vec2<{AbstractFloat}>, vec2<f32> | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [37] = Literal(F32(0.5)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [38] = Splat { size: Bi, value: [37] } : Value(Vector { size: Bi, scalar: Scalar { kind: Float, width: 4 } }) | |
| DEBUG Resolving [39] = Binary { op: Add, left: [38], right: [35] } : Value(Vector { size: Bi, scalar: Scalar { kind: Float, width: 4 } }) | |
| DEBUG Resolving [40] = AccessIndex { base: [39], index: 1 } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [41] = AccessIndex { base: [39], index: 0 } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG wgsl automatic_conversion_consensus: f32, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [42] = Binary { op: Subtract, left: [40], right: [41] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [0] = FunctionArgument(0) : Handle([3]) | |
| DEBUG Resolving [1] = FunctionArgument(1) : Handle([9]) | |
| DEBUG Resolving [2] = AccessIndex { base: [0], index: 0 } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [3] = Literal(AbstractFloat(0.0)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG wgsl automatic_conversion_consensus: f32, {AbstractFloat} | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [4] = Literal(F32(0.0)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [5] = Binary { op: Less, left: [2], right: [4] } : Value(Scalar(Scalar { kind: Bool, width: 1 })) | |
| DEBUG Resolving [6] = AccessIndex { base: [0], index: 1 } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [7] = Literal(AbstractFloat(0.0)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG wgsl automatic_conversion_consensus: f32, {AbstractFloat} | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [8] = Literal(F32(0.0)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [9] = Binary { op: Less, left: [6], right: [8] } : Value(Scalar(Scalar { kind: Bool, width: 1 })) | |
| DEBUG Resolving [10] = AccessIndex { base: [1], index: 0 } : Handle([0]) | |
| DEBUG Resolving [11] = AccessIndex { base: [1], index: 3 } : Handle([0]) | |
| DEBUG Resolving [12] = AccessIndex { base: [0], index: 1 } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [13] = Literal(AbstractFloat(0.0)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG wgsl automatic_conversion_consensus: f32, {AbstractFloat} | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [14] = Literal(F32(0.0)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [15] = Binary { op: Less, left: [12], right: [14] } : Value(Scalar(Scalar { kind: Bool, width: 1 })) | |
| DEBUG Resolving [16] = AccessIndex { base: [1], index: 1 } : Handle([0]) | |
| DEBUG Resolving [17] = AccessIndex { base: [1], index: 2 } : Handle([0]) | |
| DEBUG Resolving [0] = FunctionArgument(0) : Handle([3]) | |
| DEBUG Resolving [1] = FunctionArgument(1) : Handle([0]) | |
| DEBUG Resolving [2] = Literal(AbstractFloat(0.0)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG wgsl automatic_conversion_consensus: f32, {AbstractFloat} | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [3] = Literal(F32(0.0)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [4] = Binary { op: Equal, left: [1], right: [3] } : Value(Scalar(Scalar { kind: Bool, width: 1 })) | |
| DEBUG Resolving [5] = AccessIndex { base: [0], index: 0 } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [6] = AccessIndex { base: [0], index: 1 } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Initial overloads: List { | |
| rules: [ | |
| ({AbstractInt}, {AbstractInt}) -> {AbstractInt}, | |
| ({AbstractFloat}, {AbstractFloat}) -> {AbstractFloat}, | |
| (i32, i32) -> i32, | |
| (i64, i64) -> i64, | |
| (u32, u32) -> u32, | |
| (u64, u64) -> u64, | |
| (f32, f32) -> f32, | |
| (f16, f16) -> f16, | |
| (f64, f64) -> f64, | |
| (vec2<{AbstractInt}>, vec2<{AbstractInt}>) -> vec2<{AbstractInt}>, | |
| (vec2<{AbstractFloat}>, vec2<{AbstractFloat}>) -> vec2<{AbstractFloat}>, | |
| (vec2<i32>, vec2<i32>) -> vec2<i32>, | |
| (vec2<i64>, vec2<i64>) -> vec2<i64>, | |
| (vec2<u32>, vec2<u32>) -> vec2<u32>, | |
| (vec2<u64>, vec2<u64>) -> vec2<u64>, | |
| (vec2<f32>, vec2<f32>) -> vec2<f32>, | |
| (vec2<f16>, vec2<f16>) -> vec2<f16>, | |
| (vec2<f64>, vec2<f64>) -> vec2<f64>, | |
| (vec3<{AbstractInt}>, vec3<{AbstractInt}>) -> vec3<{AbstractInt}>, | |
| (vec3<{AbstractFloat}>, vec3<{AbstractFloat}>) -> vec3<{AbstractFloat}>, | |
| (vec3<i32>, vec3<i32>) -> vec3<i32>, | |
| (vec3<i64>, vec3<i64>) -> vec3<i64>, | |
| (vec3<u32>, vec3<u32>) -> vec3<u32>, | |
| (vec3<u64>, vec3<u64>) -> vec3<u64>, | |
| (vec3<f32>, vec3<f32>) -> vec3<f32>, | |
| (vec3<f16>, vec3<f16>) -> vec3<f16>, | |
| (vec3<f64>, vec3<f64>) -> vec3<f64>, | |
| (vec4<{AbstractInt}>, vec4<{AbstractInt}>) -> vec4<{AbstractInt}>, | |
| (vec4<{AbstractFloat}>, vec4<{AbstractFloat}>) -> vec4<{AbstractFloat}>, | |
| (vec4<i32>, vec4<i32>) -> vec4<i32>, | |
| (vec4<i64>, vec4<i64>) -> vec4<i64>, | |
| (vec4<u32>, vec4<u32>) -> vec4<u32>, | |
| (vec4<u64>, vec4<u64>) -> vec4<u64>, | |
| (vec4<f32>, vec4<f32>) -> vec4<f32>, | |
| (vec4<f16>, vec4<f16>) -> vec4<f16>, | |
| (vec4<f64>, vec4<f64>) -> vec4<f64>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG Supplying argument 0 of type f32 | |
| DEBUG Remaining overloads: List { | |
| rules: [ | |
| (f32, f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG Supplying argument 1 of type f32 | |
| DEBUG Remaining overloads: List { | |
| rules: [ | |
| (f32, f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG initial overloads for Max, List { | |
| rules: [ | |
| ({AbstractInt}, {AbstractInt}) -> {AbstractInt}, | |
| ({AbstractFloat}, {AbstractFloat}) -> {AbstractFloat}, | |
| (i32, i32) -> i32, | |
| (i64, i64) -> i64, | |
| (u32, u32) -> u32, | |
| (u64, u64) -> u64, | |
| (f32, f32) -> f32, | |
| (f16, f16) -> f16, | |
| (f64, f64) -> f64, | |
| (vec2<{AbstractInt}>, vec2<{AbstractInt}>) -> vec2<{AbstractInt}>, | |
| (vec2<{AbstractFloat}>, vec2<{AbstractFloat}>) -> vec2<{AbstractFloat}>, | |
| (vec2<i32>, vec2<i32>) -> vec2<i32>, | |
| (vec2<i64>, vec2<i64>) -> vec2<i64>, | |
| (vec2<u32>, vec2<u32>) -> vec2<u32>, | |
| (vec2<u64>, vec2<u64>) -> vec2<u64>, | |
| (vec2<f32>, vec2<f32>) -> vec2<f32>, | |
| (vec2<f16>, vec2<f16>) -> vec2<f16>, | |
| (vec2<f64>, vec2<f64>) -> vec2<f64>, | |
| (vec3<{AbstractInt}>, vec3<{AbstractInt}>) -> vec3<{AbstractInt}>, | |
| (vec3<{AbstractFloat}>, vec3<{AbstractFloat}>) -> vec3<{AbstractFloat}>, | |
| (vec3<i32>, vec3<i32>) -> vec3<i32>, | |
| (vec3<i64>, vec3<i64>) -> vec3<i64>, | |
| (vec3<u32>, vec3<u32>) -> vec3<u32>, | |
| (vec3<u64>, vec3<u64>) -> vec3<u64>, | |
| (vec3<f32>, vec3<f32>) -> vec3<f32>, | |
| (vec3<f16>, vec3<f16>) -> vec3<f16>, | |
| (vec3<f64>, vec3<f64>) -> vec3<f64>, | |
| (vec4<{AbstractInt}>, vec4<{AbstractInt}>) -> vec4<{AbstractInt}>, | |
| (vec4<{AbstractFloat}>, vec4<{AbstractFloat}>) -> vec4<{AbstractFloat}>, | |
| (vec4<i32>, vec4<i32>) -> vec4<i32>, | |
| (vec4<i64>, vec4<i64>) -> vec4<i64>, | |
| (vec4<u32>, vec4<u32>) -> vec4<u32>, | |
| (vec4<u64>, vec4<u64>) -> vec4<u64>, | |
| (vec4<f32>, vec4<f32>) -> vec4<f32>, | |
| (vec4<f16>, vec4<f16>) -> vec4<f16>, | |
| (vec4<f64>, vec4<f64>) -> vec4<f64>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG overloads after arg 0 of type f32: List { | |
| rules: [ | |
| (f32, f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG overloads after arg 1 of type f32: List { | |
| rules: [ | |
| (f32, f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG Resolving [7] = Math { fun: Max, arg: [5], arg1: Some([6]), arg2: None, arg3: None } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [8] = Literal(AbstractFloat(0.0)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG Resolving [9] = Literal(F32(0.0)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [10] = Splat { size: Bi, value: [9] } : Value(Vector { size: Bi, scalar: Scalar { kind: Float, width: 4 } }) | |
| DEBUG Initial overloads: List { | |
| rules: [ | |
| ({AbstractInt}, {AbstractInt}) -> {AbstractInt}, | |
| ({AbstractFloat}, {AbstractFloat}) -> {AbstractFloat}, | |
| (i32, i32) -> i32, | |
| (i64, i64) -> i64, | |
| (u32, u32) -> u32, | |
| (u64, u64) -> u64, | |
| (f32, f32) -> f32, | |
| (f16, f16) -> f16, | |
| (f64, f64) -> f64, | |
| (vec2<{AbstractInt}>, vec2<{AbstractInt}>) -> vec2<{AbstractInt}>, | |
| (vec2<{AbstractFloat}>, vec2<{AbstractFloat}>) -> vec2<{AbstractFloat}>, | |
| (vec2<i32>, vec2<i32>) -> vec2<i32>, | |
| (vec2<i64>, vec2<i64>) -> vec2<i64>, | |
| (vec2<u32>, vec2<u32>) -> vec2<u32>, | |
| (vec2<u64>, vec2<u64>) -> vec2<u64>, | |
| (vec2<f32>, vec2<f32>) -> vec2<f32>, | |
| (vec2<f16>, vec2<f16>) -> vec2<f16>, | |
| (vec2<f64>, vec2<f64>) -> vec2<f64>, | |
| (vec3<{AbstractInt}>, vec3<{AbstractInt}>) -> vec3<{AbstractInt}>, | |
| (vec3<{AbstractFloat}>, vec3<{AbstractFloat}>) -> vec3<{AbstractFloat}>, | |
| (vec3<i32>, vec3<i32>) -> vec3<i32>, | |
| (vec3<i64>, vec3<i64>) -> vec3<i64>, | |
| (vec3<u32>, vec3<u32>) -> vec3<u32>, | |
| (vec3<u64>, vec3<u64>) -> vec3<u64>, | |
| (vec3<f32>, vec3<f32>) -> vec3<f32>, | |
| (vec3<f16>, vec3<f16>) -> vec3<f16>, | |
| (vec3<f64>, vec3<f64>) -> vec3<f64>, | |
| (vec4<{AbstractInt}>, vec4<{AbstractInt}>) -> vec4<{AbstractInt}>, | |
| (vec4<{AbstractFloat}>, vec4<{AbstractFloat}>) -> vec4<{AbstractFloat}>, | |
| (vec4<i32>, vec4<i32>) -> vec4<i32>, | |
| (vec4<i64>, vec4<i64>) -> vec4<i64>, | |
| (vec4<u32>, vec4<u32>) -> vec4<u32>, | |
| (vec4<u64>, vec4<u64>) -> vec4<u64>, | |
| (vec4<f32>, vec4<f32>) -> vec4<f32>, | |
| (vec4<f16>, vec4<f16>) -> vec4<f16>, | |
| (vec4<f64>, vec4<f64>) -> vec4<f64>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG Supplying argument 0 of type vec2<f32> | |
| DEBUG Remaining overloads: List { | |
| rules: [ | |
| (vec2<f32>, vec2<f32>) -> vec2<f32>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG Supplying argument 1 of type vec2<f32> | |
| DEBUG Remaining overloads: List { | |
| rules: [ | |
| (vec2<f32>, vec2<f32>) -> vec2<f32>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG initial overloads for Max, List { | |
| rules: [ | |
| ({AbstractInt}, {AbstractInt}) -> {AbstractInt}, | |
| ({AbstractFloat}, {AbstractFloat}) -> {AbstractFloat}, | |
| (i32, i32) -> i32, | |
| (i64, i64) -> i64, | |
| (u32, u32) -> u32, | |
| (u64, u64) -> u64, | |
| (f32, f32) -> f32, | |
| (f16, f16) -> f16, | |
| (f64, f64) -> f64, | |
| (vec2<{AbstractInt}>, vec2<{AbstractInt}>) -> vec2<{AbstractInt}>, | |
| (vec2<{AbstractFloat}>, vec2<{AbstractFloat}>) -> vec2<{AbstractFloat}>, | |
| (vec2<i32>, vec2<i32>) -> vec2<i32>, | |
| (vec2<i64>, vec2<i64>) -> vec2<i64>, | |
| (vec2<u32>, vec2<u32>) -> vec2<u32>, | |
| (vec2<u64>, vec2<u64>) -> vec2<u64>, | |
| (vec2<f32>, vec2<f32>) -> vec2<f32>, | |
| (vec2<f16>, vec2<f16>) -> vec2<f16>, | |
| (vec2<f64>, vec2<f64>) -> vec2<f64>, | |
| (vec3<{AbstractInt}>, vec3<{AbstractInt}>) -> vec3<{AbstractInt}>, | |
| (vec3<{AbstractFloat}>, vec3<{AbstractFloat}>) -> vec3<{AbstractFloat}>, | |
| (vec3<i32>, vec3<i32>) -> vec3<i32>, | |
| (vec3<i64>, vec3<i64>) -> vec3<i64>, | |
| (vec3<u32>, vec3<u32>) -> vec3<u32>, | |
| (vec3<u64>, vec3<u64>) -> vec3<u64>, | |
| (vec3<f32>, vec3<f32>) -> vec3<f32>, | |
| (vec3<f16>, vec3<f16>) -> vec3<f16>, | |
| (vec3<f64>, vec3<f64>) -> vec3<f64>, | |
| (vec4<{AbstractInt}>, vec4<{AbstractInt}>) -> vec4<{AbstractInt}>, | |
| (vec4<{AbstractFloat}>, vec4<{AbstractFloat}>) -> vec4<{AbstractFloat}>, | |
| (vec4<i32>, vec4<i32>) -> vec4<i32>, | |
| (vec4<i64>, vec4<i64>) -> vec4<i64>, | |
| (vec4<u32>, vec4<u32>) -> vec4<u32>, | |
| (vec4<u64>, vec4<u64>) -> vec4<u64>, | |
| (vec4<f32>, vec4<f32>) -> vec4<f32>, | |
| (vec4<f16>, vec4<f16>) -> vec4<f16>, | |
| (vec4<f64>, vec4<f64>) -> vec4<f64>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG overloads after arg 0 of type vec2<f32>: List { | |
| rules: [ | |
| (vec2<f32>, vec2<f32>) -> vec2<f32>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG overloads after arg 1 of type vec2<f32>: List { | |
| rules: [ | |
| (vec2<f32>, vec2<f32>) -> vec2<f32>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG Resolving [11] = Math { fun: Max, arg: [10], arg1: Some([0]), arg2: None, arg3: None } : Value(Vector { size: Bi, scalar: Scalar { kind: Float, width: 4 } }) | |
| DEBUG Initial overloads: List { | |
| rules: [ | |
| (f32) -> f32, | |
| (f16) -> f16, | |
| (f64) -> f64, | |
| (vec2<f32>) -> f32, | |
| (vec2<f16>) -> f16, | |
| (vec2<f64>) -> f64, | |
| (vec3<f32>) -> f32, | |
| (vec3<f16>) -> f16, | |
| (vec3<f64>) -> f64, | |
| (vec4<f32>) -> f32, | |
| (vec4<f16>) -> f16, | |
| (vec4<f64>) -> f64, | |
| ], | |
| conclude: Scalar, | |
| } | |
| DEBUG Supplying argument 0 of type vec2<f32> | |
| DEBUG Remaining overloads: List { | |
| rules: [ | |
| (vec2<f32>) -> f32, | |
| ], | |
| conclude: Scalar, | |
| } | |
| DEBUG initial overloads for Length, List { | |
| rules: [ | |
| (f32) -> f32, | |
| (f16) -> f16, | |
| (f64) -> f64, | |
| (vec2<f32>) -> f32, | |
| (vec2<f16>) -> f16, | |
| (vec2<f64>) -> f64, | |
| (vec3<f32>) -> f32, | |
| (vec3<f16>) -> f16, | |
| (vec3<f64>) -> f64, | |
| (vec4<f32>) -> f32, | |
| (vec4<f16>) -> f16, | |
| (vec4<f64>) -> f64, | |
| ], | |
| conclude: Scalar, | |
| } | |
| DEBUG overloads after arg 0 of type vec2<f32>: List { | |
| rules: [ | |
| (vec2<f32>) -> f32, | |
| ], | |
| conclude: Scalar, | |
| } | |
| DEBUG Resolving [12] = Math { fun: Length, arg: [11], arg1: None, arg2: None, arg3: None } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [13] = Literal(AbstractFloat(0.0)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG Resolving [14] = AccessIndex { base: [0], index: 0 } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [15] = AccessIndex { base: [0], index: 1 } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Initial overloads: List { | |
| rules: [ | |
| ({AbstractInt}, {AbstractInt}) -> {AbstractInt}, | |
| ({AbstractFloat}, {AbstractFloat}) -> {AbstractFloat}, | |
| (i32, i32) -> i32, | |
| (i64, i64) -> i64, | |
| (u32, u32) -> u32, | |
| (u64, u64) -> u64, | |
| (f32, f32) -> f32, | |
| (f16, f16) -> f16, | |
| (f64, f64) -> f64, | |
| (vec2<{AbstractInt}>, vec2<{AbstractInt}>) -> vec2<{AbstractInt}>, | |
| (vec2<{AbstractFloat}>, vec2<{AbstractFloat}>) -> vec2<{AbstractFloat}>, | |
| (vec2<i32>, vec2<i32>) -> vec2<i32>, | |
| (vec2<i64>, vec2<i64>) -> vec2<i64>, | |
| (vec2<u32>, vec2<u32>) -> vec2<u32>, | |
| (vec2<u64>, vec2<u64>) -> vec2<u64>, | |
| (vec2<f32>, vec2<f32>) -> vec2<f32>, | |
| (vec2<f16>, vec2<f16>) -> vec2<f16>, | |
| (vec2<f64>, vec2<f64>) -> vec2<f64>, | |
| (vec3<{AbstractInt}>, vec3<{AbstractInt}>) -> vec3<{AbstractInt}>, | |
| (vec3<{AbstractFloat}>, vec3<{AbstractFloat}>) -> vec3<{AbstractFloat}>, | |
| (vec3<i32>, vec3<i32>) -> vec3<i32>, | |
| (vec3<i64>, vec3<i64>) -> vec3<i64>, | |
| (vec3<u32>, vec3<u32>) -> vec3<u32>, | |
| (vec3<u64>, vec3<u64>) -> vec3<u64>, | |
| (vec3<f32>, vec3<f32>) -> vec3<f32>, | |
| (vec3<f16>, vec3<f16>) -> vec3<f16>, | |
| (vec3<f64>, vec3<f64>) -> vec3<f64>, | |
| (vec4<{AbstractInt}>, vec4<{AbstractInt}>) -> vec4<{AbstractInt}>, | |
| (vec4<{AbstractFloat}>, vec4<{AbstractFloat}>) -> vec4<{AbstractFloat}>, | |
| (vec4<i32>, vec4<i32>) -> vec4<i32>, | |
| (vec4<i64>, vec4<i64>) -> vec4<i64>, | |
| (vec4<u32>, vec4<u32>) -> vec4<u32>, | |
| (vec4<u64>, vec4<u64>) -> vec4<u64>, | |
| (vec4<f32>, vec4<f32>) -> vec4<f32>, | |
| (vec4<f16>, vec4<f16>) -> vec4<f16>, | |
| (vec4<f64>, vec4<f64>) -> vec4<f64>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG Supplying argument 0 of type f32 | |
| DEBUG Remaining overloads: List { | |
| rules: [ | |
| (f32, f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG Supplying argument 1 of type f32 | |
| DEBUG Remaining overloads: List { | |
| rules: [ | |
| (f32, f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG initial overloads for Max, List { | |
| rules: [ | |
| ({AbstractInt}, {AbstractInt}) -> {AbstractInt}, | |
| ({AbstractFloat}, {AbstractFloat}) -> {AbstractFloat}, | |
| (i32, i32) -> i32, | |
| (i64, i64) -> i64, | |
| (u32, u32) -> u32, | |
| (u64, u64) -> u64, | |
| (f32, f32) -> f32, | |
| (f16, f16) -> f16, | |
| (f64, f64) -> f64, | |
| (vec2<{AbstractInt}>, vec2<{AbstractInt}>) -> vec2<{AbstractInt}>, | |
| (vec2<{AbstractFloat}>, vec2<{AbstractFloat}>) -> vec2<{AbstractFloat}>, | |
| (vec2<i32>, vec2<i32>) -> vec2<i32>, | |
| (vec2<i64>, vec2<i64>) -> vec2<i64>, | |
| (vec2<u32>, vec2<u32>) -> vec2<u32>, | |
| (vec2<u64>, vec2<u64>) -> vec2<u64>, | |
| (vec2<f32>, vec2<f32>) -> vec2<f32>, | |
| (vec2<f16>, vec2<f16>) -> vec2<f16>, | |
| (vec2<f64>, vec2<f64>) -> vec2<f64>, | |
| (vec3<{AbstractInt}>, vec3<{AbstractInt}>) -> vec3<{AbstractInt}>, | |
| (vec3<{AbstractFloat}>, vec3<{AbstractFloat}>) -> vec3<{AbstractFloat}>, | |
| (vec3<i32>, vec3<i32>) -> vec3<i32>, | |
| (vec3<i64>, vec3<i64>) -> vec3<i64>, | |
| (vec3<u32>, vec3<u32>) -> vec3<u32>, | |
| (vec3<u64>, vec3<u64>) -> vec3<u64>, | |
| (vec3<f32>, vec3<f32>) -> vec3<f32>, | |
| (vec3<f16>, vec3<f16>) -> vec3<f16>, | |
| (vec3<f64>, vec3<f64>) -> vec3<f64>, | |
| (vec4<{AbstractInt}>, vec4<{AbstractInt}>) -> vec4<{AbstractInt}>, | |
| (vec4<{AbstractFloat}>, vec4<{AbstractFloat}>) -> vec4<{AbstractFloat}>, | |
| (vec4<i32>, vec4<i32>) -> vec4<i32>, | |
| (vec4<i64>, vec4<i64>) -> vec4<i64>, | |
| (vec4<u32>, vec4<u32>) -> vec4<u32>, | |
| (vec4<u64>, vec4<u64>) -> vec4<u64>, | |
| (vec4<f32>, vec4<f32>) -> vec4<f32>, | |
| (vec4<f16>, vec4<f16>) -> vec4<f16>, | |
| (vec4<f64>, vec4<f64>) -> vec4<f64>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG overloads after arg 0 of type f32: List { | |
| rules: [ | |
| (f32, f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG overloads after arg 1 of type f32: List { | |
| rules: [ | |
| (f32, f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG Resolving [16] = Math { fun: Max, arg: [14], arg1: Some([15]), arg2: None, arg3: None } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Initial overloads: List { | |
| rules: [ | |
| ({AbstractInt}, {AbstractInt}) -> {AbstractInt}, | |
| ({AbstractFloat}, {AbstractFloat}) -> {AbstractFloat}, | |
| (i32, i32) -> i32, | |
| (i64, i64) -> i64, | |
| (u32, u32) -> u32, | |
| (u64, u64) -> u64, | |
| (f32, f32) -> f32, | |
| (f16, f16) -> f16, | |
| (f64, f64) -> f64, | |
| (vec2<{AbstractInt}>, vec2<{AbstractInt}>) -> vec2<{AbstractInt}>, | |
| (vec2<{AbstractFloat}>, vec2<{AbstractFloat}>) -> vec2<{AbstractFloat}>, | |
| (vec2<i32>, vec2<i32>) -> vec2<i32>, | |
| (vec2<i64>, vec2<i64>) -> vec2<i64>, | |
| (vec2<u32>, vec2<u32>) -> vec2<u32>, | |
| (vec2<u64>, vec2<u64>) -> vec2<u64>, | |
| (vec2<f32>, vec2<f32>) -> vec2<f32>, | |
| (vec2<f16>, vec2<f16>) -> vec2<f16>, | |
| (vec2<f64>, vec2<f64>) -> vec2<f64>, | |
| (vec3<{AbstractInt}>, vec3<{AbstractInt}>) -> vec3<{AbstractInt}>, | |
| (vec3<{AbstractFloat}>, vec3<{AbstractFloat}>) -> vec3<{AbstractFloat}>, | |
| (vec3<i32>, vec3<i32>) -> vec3<i32>, | |
| (vec3<i64>, vec3<i64>) -> vec3<i64>, | |
| (vec3<u32>, vec3<u32>) -> vec3<u32>, | |
| (vec3<u64>, vec3<u64>) -> vec3<u64>, | |
| (vec3<f32>, vec3<f32>) -> vec3<f32>, | |
| (vec3<f16>, vec3<f16>) -> vec3<f16>, | |
| (vec3<f64>, vec3<f64>) -> vec3<f64>, | |
| (vec4<{AbstractInt}>, vec4<{AbstractInt}>) -> vec4<{AbstractInt}>, | |
| (vec4<{AbstractFloat}>, vec4<{AbstractFloat}>) -> vec4<{AbstractFloat}>, | |
| (vec4<i32>, vec4<i32>) -> vec4<i32>, | |
| (vec4<i64>, vec4<i64>) -> vec4<i64>, | |
| (vec4<u32>, vec4<u32>) -> vec4<u32>, | |
| (vec4<u64>, vec4<u64>) -> vec4<u64>, | |
| (vec4<f32>, vec4<f32>) -> vec4<f32>, | |
| (vec4<f16>, vec4<f16>) -> vec4<f16>, | |
| (vec4<f64>, vec4<f64>) -> vec4<f64>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG Supplying argument 0 of type {AbstractFloat} | |
| DEBUG Remaining overloads: List { | |
| rules: [ | |
| ({AbstractFloat}, {AbstractFloat}) -> {AbstractFloat}, | |
| (f32, f32) -> f32, | |
| (f16, f16) -> f16, | |
| (f64, f64) -> f64, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG Supplying argument 1 of type f32 | |
| DEBUG Remaining overloads: List { | |
| rules: [ | |
| (f32, f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG Resolving [17] = Literal(F32(0.0)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG initial overloads for Min, List { | |
| rules: [ | |
| ({AbstractInt}, {AbstractInt}) -> {AbstractInt}, | |
| ({AbstractFloat}, {AbstractFloat}) -> {AbstractFloat}, | |
| (i32, i32) -> i32, | |
| (i64, i64) -> i64, | |
| (u32, u32) -> u32, | |
| (u64, u64) -> u64, | |
| (f32, f32) -> f32, | |
| (f16, f16) -> f16, | |
| (f64, f64) -> f64, | |
| (vec2<{AbstractInt}>, vec2<{AbstractInt}>) -> vec2<{AbstractInt}>, | |
| (vec2<{AbstractFloat}>, vec2<{AbstractFloat}>) -> vec2<{AbstractFloat}>, | |
| (vec2<i32>, vec2<i32>) -> vec2<i32>, | |
| (vec2<i64>, vec2<i64>) -> vec2<i64>, | |
| (vec2<u32>, vec2<u32>) -> vec2<u32>, | |
| (vec2<u64>, vec2<u64>) -> vec2<u64>, | |
| (vec2<f32>, vec2<f32>) -> vec2<f32>, | |
| (vec2<f16>, vec2<f16>) -> vec2<f16>, | |
| (vec2<f64>, vec2<f64>) -> vec2<f64>, | |
| (vec3<{AbstractInt}>, vec3<{AbstractInt}>) -> vec3<{AbstractInt}>, | |
| (vec3<{AbstractFloat}>, vec3<{AbstractFloat}>) -> vec3<{AbstractFloat}>, | |
| (vec3<i32>, vec3<i32>) -> vec3<i32>, | |
| (vec3<i64>, vec3<i64>) -> vec3<i64>, | |
| (vec3<u32>, vec3<u32>) -> vec3<u32>, | |
| (vec3<u64>, vec3<u64>) -> vec3<u64>, | |
| (vec3<f32>, vec3<f32>) -> vec3<f32>, | |
| (vec3<f16>, vec3<f16>) -> vec3<f16>, | |
| (vec3<f64>, vec3<f64>) -> vec3<f64>, | |
| (vec4<{AbstractInt}>, vec4<{AbstractInt}>) -> vec4<{AbstractInt}>, | |
| (vec4<{AbstractFloat}>, vec4<{AbstractFloat}>) -> vec4<{AbstractFloat}>, | |
| (vec4<i32>, vec4<i32>) -> vec4<i32>, | |
| (vec4<i64>, vec4<i64>) -> vec4<i64>, | |
| (vec4<u32>, vec4<u32>) -> vec4<u32>, | |
| (vec4<u64>, vec4<u64>) -> vec4<u64>, | |
| (vec4<f32>, vec4<f32>) -> vec4<f32>, | |
| (vec4<f16>, vec4<f16>) -> vec4<f16>, | |
| (vec4<f64>, vec4<f64>) -> vec4<f64>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG overloads after arg 0 of type f32: List { | |
| rules: [ | |
| (f32, f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG overloads after arg 1 of type f32: List { | |
| rules: [ | |
| (f32, f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG Resolving [18] = Math { fun: Min, arg: [17], arg1: Some([16]), arg2: None, arg3: None } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG wgsl automatic_conversion_consensus: f32, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [19] = Binary { op: Add, left: [12], right: [18] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG wgsl automatic_conversion_consensus: f32, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [20] = Binary { op: Subtract, left: [19], right: [1] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [0] = FunctionArgument(0) : Handle([3]) | |
| DEBUG Resolving [1] = FunctionArgument(1) : Handle([8]) | |
| DEBUG Resolving [2] = FunctionArgument(2) : Handle([9]) | |
| DEBUG Resolving [3] = AccessIndex { base: [1], index: 1 } : Handle([3]) | |
| DEBUG Resolving [4] = Literal(AbstractFloat(2.0)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG Resolving [5] = Splat { size: Bi, value: [4] } : Value(Vector { size: Bi, scalar: Scalar { kind: AbstractFloat, width: 8 } }) | |
| DEBUG wgsl automatic_conversion_consensus: vec2<f32>, vec2<{AbstractFloat}> | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [6] = Literal(F32(2.0)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [7] = Splat { size: Bi, value: [6] } : Value(Vector { size: Bi, scalar: Scalar { kind: Float, width: 4 } }) | |
| DEBUG Resolving [8] = Binary { op: Divide, left: [3], right: [7] } : Handle([3]) | |
| DEBUG Resolving [9] = AccessIndex { base: [1], index: 0 } : Handle([3]) | |
| DEBUG wgsl automatic_conversion_consensus: vec2<f32>, vec2<f32> | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [10] = Binary { op: Add, left: [9], right: [8] } : Handle([3]) | |
| DEBUG wgsl automatic_conversion_consensus: vec2<f32>, vec2<f32> | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [11] = Binary { op: Subtract, left: [0], right: [10] } : Handle([3]) | |
| DEBUG Resolving [12] = CallResult([24]) : Handle([0]) | |
| DEBUG Initial overloads: List { | |
| rules: [ | |
| ({AbstractInt}) -> {AbstractInt}, | |
| ({AbstractFloat}) -> {AbstractFloat}, | |
| (i32) -> i32, | |
| (i64) -> i64, | |
| (u32) -> u32, | |
| (u64) -> u64, | |
| (f32) -> f32, | |
| (f16) -> f16, | |
| (f64) -> f64, | |
| (vec2<{AbstractInt}>) -> vec2<{AbstractInt}>, | |
| (vec2<{AbstractFloat}>) -> vec2<{AbstractFloat}>, | |
| (vec2<i32>) -> vec2<i32>, | |
| (vec2<i64>) -> vec2<i64>, | |
| (vec2<u32>) -> vec2<u32>, | |
| (vec2<u64>) -> vec2<u64>, | |
| (vec2<f32>) -> vec2<f32>, | |
| (vec2<f16>) -> vec2<f16>, | |
| (vec2<f64>) -> vec2<f64>, | |
| (vec3<{AbstractInt}>) -> vec3<{AbstractInt}>, | |
| (vec3<{AbstractFloat}>) -> vec3<{AbstractFloat}>, | |
| (vec3<i32>) -> vec3<i32>, | |
| (vec3<i64>) -> vec3<i64>, | |
| (vec3<u32>) -> vec3<u32>, | |
| (vec3<u64>) -> vec3<u64>, | |
| (vec3<f32>) -> vec3<f32>, | |
| (vec3<f16>) -> vec3<f16>, | |
| (vec3<f64>) -> vec3<f64>, | |
| (vec4<{AbstractInt}>) -> vec4<{AbstractInt}>, | |
| (vec4<{AbstractFloat}>) -> vec4<{AbstractFloat}>, | |
| (vec4<i32>) -> vec4<i32>, | |
| (vec4<i64>) -> vec4<i64>, | |
| (vec4<u32>) -> vec4<u32>, | |
| (vec4<u64>) -> vec4<u64>, | |
| (vec4<f32>) -> vec4<f32>, | |
| (vec4<f16>) -> vec4<f16>, | |
| (vec4<f64>) -> vec4<f64>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG Supplying argument 0 of type vec2<f32> | |
| DEBUG Remaining overloads: List { | |
| rules: [ | |
| (vec2<f32>) -> vec2<f32>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG initial overloads for Abs, List { | |
| rules: [ | |
| ({AbstractInt}) -> {AbstractInt}, | |
| ({AbstractFloat}) -> {AbstractFloat}, | |
| (i32) -> i32, | |
| (i64) -> i64, | |
| (u32) -> u32, | |
| (u64) -> u64, | |
| (f32) -> f32, | |
| (f16) -> f16, | |
| (f64) -> f64, | |
| (vec2<{AbstractInt}>) -> vec2<{AbstractInt}>, | |
| (vec2<{AbstractFloat}>) -> vec2<{AbstractFloat}>, | |
| (vec2<i32>) -> vec2<i32>, | |
| (vec2<i64>) -> vec2<i64>, | |
| (vec2<u32>) -> vec2<u32>, | |
| (vec2<u64>) -> vec2<u64>, | |
| (vec2<f32>) -> vec2<f32>, | |
| (vec2<f16>) -> vec2<f16>, | |
| (vec2<f64>) -> vec2<f64>, | |
| (vec3<{AbstractInt}>) -> vec3<{AbstractInt}>, | |
| (vec3<{AbstractFloat}>) -> vec3<{AbstractFloat}>, | |
| (vec3<i32>) -> vec3<i32>, | |
| (vec3<i64>) -> vec3<i64>, | |
| (vec3<u32>) -> vec3<u32>, | |
| (vec3<u64>) -> vec3<u64>, | |
| (vec3<f32>) -> vec3<f32>, | |
| (vec3<f16>) -> vec3<f16>, | |
| (vec3<f64>) -> vec3<f64>, | |
| (vec4<{AbstractInt}>) -> vec4<{AbstractInt}>, | |
| (vec4<{AbstractFloat}>) -> vec4<{AbstractFloat}>, | |
| (vec4<i32>) -> vec4<i32>, | |
| (vec4<i64>) -> vec4<i64>, | |
| (vec4<u32>) -> vec4<u32>, | |
| (vec4<u64>) -> vec4<u64>, | |
| (vec4<f32>) -> vec4<f32>, | |
| (vec4<f16>) -> vec4<f16>, | |
| (vec4<f64>) -> vec4<f64>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG overloads after arg 0 of type vec2<f32>: List { | |
| rules: [ | |
| (vec2<f32>) -> vec2<f32>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG Resolving [13] = Math { fun: Abs, arg: [11], arg1: None, arg2: None, arg3: None } : Value(Vector { size: Bi, scalar: Scalar { kind: Float, width: 4 } }) | |
| DEBUG wgsl automatic_conversion_consensus: vec2<f32>, vec2<f32> | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [14] = Binary { op: Subtract, left: [13], right: [8] } : Value(Vector { size: Bi, scalar: Scalar { kind: Float, width: 4 } }) | |
| DEBUG Resolving [15] = Splat { size: Bi, value: [12] } : Value(Vector { size: Bi, scalar: Scalar { kind: Float, width: 4 } }) | |
| DEBUG wgsl automatic_conversion_consensus: vec2<f32>, vec2<f32> | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [16] = Binary { op: Add, left: [14], right: [15] } : Value(Vector { size: Bi, scalar: Scalar { kind: Float, width: 4 } }) | |
| DEBUG Resolving [17] = CallResult([25]) : Handle([0]) | |
| DEBUG Resolving [0] = FunctionArgument(0) : Handle([2]) | |
| DEBUG Resolving [1] = FunctionArgument(1) : Handle([0]) | |
| DEBUG Resolving [2] = AccessIndex { base: [0], index: 3 } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG wgsl automatic_conversion_consensus: f32, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [3] = Binary { op: Multiply, left: [2], right: [1] } : Handle([0]) | |
| DEBUG Resolving [4] = Literal(AbstractFloat(1.0)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG Resolving [5] = Literal(F32(1.0)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [6] = GlobalVariable([0]) : Value(Pointer { base: [5], space: Uniform }) | |
| DEBUG Resolving [7] = AccessIndex { base: [6], index: 1 } : Value(Pointer { base: [4], space: Uniform }) | |
| DEBUG Resolving [8] = Load { pointer: [7] } : Handle([4]) | |
| DEBUG Resolving [9] = Literal(U32(0)) : Value(Scalar(Scalar { kind: Uint, width: 4 })) | |
| DEBUG wgsl automatic_conversion_consensus: u32, u32 | |
| DEBUG consensus: u32 | |
| DEBUG Resolving [10] = Binary { op: NotEqual, left: [8], right: [9] } : Value(Scalar(Scalar { kind: Bool, width: 1 })) | |
| DEBUG Resolving [11] = Select { condition: [10], accept: [3], reject: [5] } : Handle([0]) | |
| DEBUG Resolving [12] = Swizzle { size: Tri, vector: [0], pattern: [X, Y, Z, X] } : Value(Vector { size: Tri, scalar: Scalar { kind: Float, width: 4 } }) | |
| DEBUG wgsl automatic_conversion_consensus: vec3<f32>, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [13] = Binary { op: Multiply, left: [12], right: [11] } : Value(Vector { size: Tri, scalar: Scalar { kind: Float, width: 4 } }) | |
| DEBUG Resolving [14] = Compose { ty: [2], components: [[13], [3]] } : Handle([2]) | |
| DEBUG Resolving [10] = Literal(I32(2)) : Value(Scalar(Scalar { kind: Sint, width: 4 })) | |
| DEBUG Resolving [11] = Literal(AbstractInt(2)) : Value(Scalar(Scalar { kind: AbstractInt, width: 8 })) | |
| DEBUG Resolving [0] = FunctionArgument(0) : Handle([4]) | |
| DEBUG Resolving [1] = FunctionArgument(1) : Handle([4]) | |
| DEBUG Resolving [2] = FunctionArgument(2) : Handle([11]) | |
| DEBUG Resolving [3] = FunctionArgument(3) : Handle([13]) | |
| DEBUG Resolving [4] = ZeroValue([24]) : Handle([24]) | |
| DEBUG Resolving [5] = LocalVariable([0]) : Value(Pointer { base: [24], space: Function }) | |
| DEBUG Resolving [6] = Literal(U32(0)) : Value(Scalar(Scalar { kind: Uint, width: 4 })) | |
| DEBUG wgsl automatic_conversion_consensus: u32, u32 | |
| DEBUG consensus: u32 | |
| DEBUG Resolving [7] = Binary { op: Equal, left: [0], right: [6] } : Value(Scalar(Scalar { kind: Bool, width: 1 })) | |
| DEBUG Resolving [8] = Literal(U32(2)) : Value(Scalar(Scalar { kind: Uint, width: 4 })) | |
| DEBUG wgsl automatic_conversion_consensus: u32, u32 | |
| DEBUG consensus: u32 | |
| DEBUG Resolving [9] = Binary { op: Equal, left: [0], right: [8] } : Value(Scalar(Scalar { kind: Bool, width: 1 })) | |
| DEBUG wgsl automatic_conversion_consensus: bool, bool | |
| DEBUG consensus: bool | |
| DEBUG Resolving [10] = Binary { op: LogicalOr, left: [7], right: [9] } : Value(Scalar(Scalar { kind: Bool, width: 1 })) | |
| DEBUG Resolving [11] = AccessIndex { base: [5], index: 0 } : Value(Pointer { base: [2], space: Function }) | |
| DEBUG Resolving [12] = CallResult([17]) : Handle([2]) | |
| DEBUG Resolving [13] = Literal(U32(1)) : Value(Scalar(Scalar { kind: Uint, width: 4 })) | |
| DEBUG wgsl automatic_conversion_consensus: u32, u32 | |
| DEBUG consensus: u32 | |
| DEBUG Resolving [14] = Binary { op: Equal, left: [0], right: [13] } : Value(Scalar(Scalar { kind: Bool, width: 1 })) | |
| DEBUG Resolving [15] = AccessIndex { base: [5], index: 1 } : Value(Pointer { base: [2], space: Function }) | |
| DEBUG Resolving [16] = Literal(AbstractInt(0)) : Value(Scalar(Scalar { kind: AbstractInt, width: 8 })) | |
| DEBUG Resolving [17] = Literal(I32(0)) : Value(Scalar(Scalar { kind: Sint, width: 4 })) | |
| DEBUG Resolving [18] = AccessIndex { base: [3], index: 0 } : Handle([12]) | |
| DEBUG Resolving [19] = AccessIndex { base: [18], index: 0 } : Handle([11]) | |
| DEBUG Resolving [20] = CallResult([17]) : Handle([2]) | |
| DEBUG Resolving [21] = AccessIndex { base: [5], index: 2 } : Value(Pointer { base: [2], space: Function }) | |
| DEBUG Resolving [22] = Literal(AbstractInt(1)) : Value(Scalar(Scalar { kind: AbstractInt, width: 8 })) | |
| DEBUG Resolving [23] = Literal(I32(1)) : Value(Scalar(Scalar { kind: Sint, width: 4 })) | |
| DEBUG Resolving [24] = AccessIndex { base: [3], index: 1 } : Handle([12]) | |
| DEBUG Resolving [25] = AccessIndex { base: [24], index: 0 } : Handle([11]) | |
| DEBUG Resolving [26] = CallResult([17]) : Handle([2]) | |
| DEBUG Resolving [27] = Literal(U32(0)) : Value(Scalar(Scalar { kind: Uint, width: 4 })) | |
| DEBUG wgsl automatic_conversion_consensus: u32, u32 | |
| DEBUG consensus: u32 | |
| DEBUG Resolving [28] = Binary { op: Equal, left: [1], right: [27] } : Value(Scalar(Scalar { kind: Bool, width: 1 })) | |
| DEBUG Resolving [29] = AccessIndex { base: [5], index: 1 } : Value(Pointer { base: [2], space: Function }) | |
| DEBUG Resolving [30] = AccessIndex { base: [5], index: 1 } : Value(Pointer { base: [2], space: Function }) | |
| DEBUG Resolving [31] = Load { pointer: [30] } : Handle([2]) | |
| DEBUG Resolving [32] = CallResult([15]) : Handle([2]) | |
| DEBUG Resolving [33] = AccessIndex { base: [5], index: 2 } : Value(Pointer { base: [2], space: Function }) | |
| DEBUG Resolving [34] = AccessIndex { base: [5], index: 2 } : Value(Pointer { base: [2], space: Function }) | |
| DEBUG Resolving [35] = Load { pointer: [34] } : Handle([2]) | |
| DEBUG Resolving [36] = CallResult([15]) : Handle([2]) | |
| DEBUG Resolving [37] = Literal(U32(1)) : Value(Scalar(Scalar { kind: Uint, width: 4 })) | |
| DEBUG wgsl automatic_conversion_consensus: u32, u32 | |
| DEBUG consensus: u32 | |
| DEBUG Resolving [38] = Binary { op: Equal, left: [1], right: [37] } : Value(Scalar(Scalar { kind: Bool, width: 1 })) | |
| DEBUG Resolving [39] = AccessIndex { base: [5], index: 1 } : Value(Pointer { base: [2], space: Function }) | |
| DEBUG Resolving [40] = AccessIndex { base: [5], index: 1 } : Value(Pointer { base: [2], space: Function }) | |
| DEBUG Resolving [41] = Load { pointer: [40] } : Handle([2]) | |
| DEBUG Resolving [42] = CallResult([18]) : Handle([2]) | |
| DEBUG Resolving [43] = AccessIndex { base: [5], index: 2 } : Value(Pointer { base: [2], space: Function }) | |
| DEBUG Resolving [44] = AccessIndex { base: [5], index: 2 } : Value(Pointer { base: [2], space: Function }) | |
| DEBUG Resolving [45] = Load { pointer: [44] } : Handle([2]) | |
| DEBUG Resolving [46] = CallResult([18]) : Handle([2]) | |
| DEBUG Resolving [47] = Load { pointer: [5] } : Handle([24]) | |
| DEBUG Resolving [0] = FunctionArgument(0) : Handle([14]) | |
| DEBUG Resolving [1] = FunctionArgument(1) : Handle([3]) | |
| DEBUG Resolving [2] = FunctionArgument(2) : Handle([8]) | |
| DEBUG Resolving [3] = FunctionArgument(3) : Handle([2]) | |
| DEBUG Resolving [4] = FunctionArgument(4) : Handle([2]) | |
| DEBUG Resolving [5] = FunctionArgument(5) : Handle([2]) | |
| DEBUG Resolving [6] = Literal(AbstractFloat(0.0)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG Resolving [7] = Literal(F32(0.0)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [8] = Splat { size: Quad, value: [7] } : Value(Vector { size: Quad, scalar: Scalar { kind: Float, width: 4 } }) | |
| DEBUG Resolving [9] = LocalVariable([0]) : Value(Pointer { base: [2], space: Function }) | |
| DEBUG Resolving [10] = AccessIndex { base: [0], index: 0 } : Handle([4]) | |
| DEBUG Resolving [11] = Literal(U32(1)) : Value(Scalar(Scalar { kind: Uint, width: 4 })) | |
| DEBUG Resolving [12] = Literal(U32(2)) : Value(Scalar(Scalar { kind: Uint, width: 4 })) | |
| DEBUG wgsl automatic_conversion_consensus: u32, u32, u32 | |
| DEBUG consensus: u32 | |
| DEBUG Resolving [13] = AccessIndex { base: [0], index: 3 } : Handle([0]) | |
| DEBUG Resolving [14] = Literal(AbstractFloat(360.0)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG wgsl automatic_conversion_consensus: f32, {AbstractFloat} | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [15] = Literal(F32(360.0)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [16] = Binary { op: Modulo, left: [13], right: [15] } : Handle([0]) | |
| DEBUG Resolving [17] = Literal(AbstractFloat(90.0)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG wgsl automatic_conversion_consensus: f32, {AbstractFloat} | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [18] = Literal(F32(90.0)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [19] = Binary { op: Subtract, left: [16], right: [18] } : Handle([0]) | |
| DEBUG Resolving [20] = Constant([0]) : Handle([0]) | |
| DEBUG wgsl automatic_conversion_consensus: f32, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [21] = Binary { op: Multiply, left: [19], right: [20] } : Handle([0]) | |
| DEBUG Resolving [22] = Literal(AbstractFloat(180.0)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG wgsl automatic_conversion_consensus: f32, {AbstractFloat} | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [23] = Literal(F32(180.0)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [24] = Binary { op: Divide, left: [21], right: [23] } : Handle([0]) | |
| DEBUG Initial overloads: List { | |
| rules: [ | |
| ({AbstractFloat}) -> {AbstractFloat}, | |
| (f32) -> f32, | |
| (f16) -> f16, | |
| (f64) -> f64, | |
| (vec2<{AbstractFloat}>) -> vec2<{AbstractFloat}>, | |
| (vec2<f32>) -> vec2<f32>, | |
| (vec2<f16>) -> vec2<f16>, | |
| (vec2<f64>) -> vec2<f64>, | |
| (vec3<{AbstractFloat}>) -> vec3<{AbstractFloat}>, | |
| (vec3<f32>) -> vec3<f32>, | |
| (vec3<f16>) -> vec3<f16>, | |
| (vec3<f64>) -> vec3<f64>, | |
| (vec4<{AbstractFloat}>) -> vec4<{AbstractFloat}>, | |
| (vec4<f32>) -> vec4<f32>, | |
| (vec4<f16>) -> vec4<f16>, | |
| (vec4<f64>) -> vec4<f64>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG Supplying argument 0 of type f32 | |
| DEBUG Remaining overloads: List { | |
| rules: [ | |
| (f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG Initial overloads: List { | |
| rules: [ | |
| ({AbstractFloat}) -> {AbstractFloat}, | |
| (f32) -> f32, | |
| (f16) -> f16, | |
| (f64) -> f64, | |
| (vec2<{AbstractFloat}>) -> vec2<{AbstractFloat}>, | |
| (vec2<f32>) -> vec2<f32>, | |
| (vec2<f16>) -> vec2<f16>, | |
| (vec2<f64>) -> vec2<f64>, | |
| (vec3<{AbstractFloat}>) -> vec3<{AbstractFloat}>, | |
| (vec3<f32>) -> vec3<f32>, | |
| (vec3<f16>) -> vec3<f16>, | |
| (vec3<f64>) -> vec3<f64>, | |
| (vec4<{AbstractFloat}>) -> vec4<{AbstractFloat}>, | |
| (vec4<f32>) -> vec4<f32>, | |
| (vec4<f16>) -> vec4<f16>, | |
| (vec4<f64>) -> vec4<f64>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG Supplying argument 0 of type f32 | |
| DEBUG Remaining overloads: List { | |
| rules: [ | |
| (f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG initial overloads for Cos, List { | |
| rules: [ | |
| ({AbstractFloat}) -> {AbstractFloat}, | |
| (f32) -> f32, | |
| (f16) -> f16, | |
| (f64) -> f64, | |
| (vec2<{AbstractFloat}>) -> vec2<{AbstractFloat}>, | |
| (vec2<f32>) -> vec2<f32>, | |
| (vec2<f16>) -> vec2<f16>, | |
| (vec2<f64>) -> vec2<f64>, | |
| (vec3<{AbstractFloat}>) -> vec3<{AbstractFloat}>, | |
| (vec3<f32>) -> vec3<f32>, | |
| (vec3<f16>) -> vec3<f16>, | |
| (vec3<f64>) -> vec3<f64>, | |
| (vec4<{AbstractFloat}>) -> vec4<{AbstractFloat}>, | |
| (vec4<f32>) -> vec4<f32>, | |
| (vec4<f16>) -> vec4<f16>, | |
| (vec4<f64>) -> vec4<f64>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG overloads after arg 0 of type f32: List { | |
| rules: [ | |
| (f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG Resolving [25] = Math { fun: Cos, arg: [24], arg1: None, arg2: None, arg3: None } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG initial overloads for Sin, List { | |
| rules: [ | |
| ({AbstractFloat}) -> {AbstractFloat}, | |
| (f32) -> f32, | |
| (f16) -> f16, | |
| (f64) -> f64, | |
| (vec2<{AbstractFloat}>) -> vec2<{AbstractFloat}>, | |
| (vec2<f32>) -> vec2<f32>, | |
| (vec2<f16>) -> vec2<f16>, | |
| (vec2<f64>) -> vec2<f64>, | |
| (vec3<{AbstractFloat}>) -> vec3<{AbstractFloat}>, | |
| (vec3<f32>) -> vec3<f32>, | |
| (vec3<f16>) -> vec3<f16>, | |
| (vec3<f64>) -> vec3<f64>, | |
| (vec4<{AbstractFloat}>) -> vec4<{AbstractFloat}>, | |
| (vec4<f32>) -> vec4<f32>, | |
| (vec4<f16>) -> vec4<f16>, | |
| (vec4<f64>) -> vec4<f64>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG overloads after arg 0 of type f32: List { | |
| rules: [ | |
| (f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG Resolving [26] = Math { fun: Sin, arg: [24], arg1: None, arg2: None, arg3: None } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [27] = Compose { ty: [3], components: [[25], [26]] } : Handle([3]) | |
| DEBUG Resolving [28] = LocalVariable([1]) : Value(Pointer { base: [3], space: Function }) | |
| DEBUG Resolving [29] = AccessIndex { base: [0], index: 4 } : Handle([13]) | |
| DEBUG Resolving [30] = Literal(AbstractInt(0)) : Value(Scalar(Scalar { kind: AbstractInt, width: 8 })) | |
| DEBUG Resolving [31] = Literal(I32(0)) : Value(Scalar(Scalar { kind: Sint, width: 4 })) | |
| DEBUG Resolving [32] = AccessIndex { base: [29], index: 0 } : Handle([12]) | |
| DEBUG Resolving [33] = AccessIndex { base: [32], index: 1 } : Handle([0]) | |
| DEBUG Resolving [34] = AccessIndex { base: [0], index: 4 } : Handle([13]) | |
| DEBUG Resolving [35] = Literal(AbstractInt(1)) : Value(Scalar(Scalar { kind: AbstractInt, width: 8 })) | |
| DEBUG Resolving [36] = Literal(I32(1)) : Value(Scalar(Scalar { kind: Sint, width: 4 })) | |
| DEBUG Resolving [37] = AccessIndex { base: [34], index: 1 } : Handle([12]) | |
| DEBUG Resolving [38] = AccessIndex { base: [37], index: 1 } : Handle([0]) | |
| DEBUG Resolving [39] = AccessIndex { base: [2], index: 1 } : Handle([3]) | |
| DEBUG Resolving [40] = AccessIndex { base: [39], index: 0 } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [41] = AccessIndex { base: [2], index: 1 } : Handle([3]) | |
| DEBUG Resolving [42] = AccessIndex { base: [41], index: 1 } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG wgsl automatic_conversion_consensus: f32, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [43] = Binary { op: Greater, left: [40], right: [42] } : Value(Scalar(Scalar { kind: Bool, width: 1 })) | |
| DEBUG Resolving [44] = AccessIndex { base: [28], index: 1 } : Value(ValuePointer { size: None, scalar: Scalar { kind: Float, width: 4 }, space: Function }) | |
| DEBUG Resolving [45] = AccessIndex { base: [2], index: 1 } : Handle([3]) | |
| DEBUG Resolving [46] = AccessIndex { base: [45], index: 1 } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [47] = AccessIndex { base: [2], index: 1 } : Handle([3]) | |
| DEBUG Resolving [48] = AccessIndex { base: [47], index: 0 } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG wgsl automatic_conversion_consensus: f32, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [49] = Binary { op: Divide, left: [46], right: [48] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [50] = Load { pointer: [44] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [51] = Binary { op: Multiply, left: [50], right: [49] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [52] = AccessIndex { base: [28], index: 0 } : Value(ValuePointer { size: None, scalar: Scalar { kind: Float, width: 4 }, space: Function }) | |
| DEBUG Resolving [53] = AccessIndex { base: [2], index: 1 } : Handle([3]) | |
| DEBUG Resolving [54] = AccessIndex { base: [53], index: 0 } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [55] = AccessIndex { base: [2], index: 1 } : Handle([3]) | |
| DEBUG Resolving [56] = AccessIndex { base: [55], index: 1 } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG wgsl automatic_conversion_consensus: f32, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [57] = Binary { op: Divide, left: [54], right: [56] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [58] = Load { pointer: [52] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [59] = Binary { op: Multiply, left: [58], right: [57] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [60] = AccessIndex { base: [2], index: 1 } : Handle([3]) | |
| DEBUG Resolving [61] = Literal(AbstractFloat(2.0)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG Resolving [62] = Splat { size: Bi, value: [61] } : Value(Vector { size: Bi, scalar: Scalar { kind: AbstractFloat, width: 8 } }) | |
| DEBUG wgsl automatic_conversion_consensus: vec2<f32>, vec2<{AbstractFloat}> | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [63] = Literal(F32(2.0)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [64] = Splat { size: Bi, value: [63] } : Value(Vector { size: Bi, scalar: Scalar { kind: Float, width: 4 } }) | |
| DEBUG Resolving [65] = Binary { op: Divide, left: [60], right: [64] } : Handle([3]) | |
| DEBUG Resolving [66] = AccessIndex { base: [2], index: 0 } : Handle([3]) | |
| DEBUG wgsl automatic_conversion_consensus: vec2<f32>, vec2<f32> | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [67] = Binary { op: Add, left: [66], right: [65] } : Handle([3]) | |
| DEBUG wgsl automatic_conversion_consensus: vec2<f32>, vec2<f32> | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [68] = Binary { op: Subtract, left: [1], right: [67] } : Handle([3]) | |
| DEBUG Resolving [69] = Load { pointer: [28] } : Handle([3]) | |
| DEBUG Initial overloads: List { | |
| rules: [ | |
| (vec2<{AbstractInt}>, vec2<{AbstractInt}>) -> {AbstractInt}, | |
| (vec2<{AbstractFloat}>, vec2<{AbstractFloat}>) -> {AbstractFloat}, | |
| (vec2<i32>, vec2<i32>) -> i32, | |
| (vec2<i64>, vec2<i64>) -> i64, | |
| (vec2<u32>, vec2<u32>) -> u32, | |
| (vec2<u64>, vec2<u64>) -> u64, | |
| (vec2<f32>, vec2<f32>) -> f32, | |
| (vec2<f16>, vec2<f16>) -> f16, | |
| (vec2<f64>, vec2<f64>) -> f64, | |
| (vec3<{AbstractInt}>, vec3<{AbstractInt}>) -> {AbstractInt}, | |
| (vec3<{AbstractFloat}>, vec3<{AbstractFloat}>) -> {AbstractFloat}, | |
| (vec3<i32>, vec3<i32>) -> i32, | |
| (vec3<i64>, vec3<i64>) -> i64, | |
| (vec3<u32>, vec3<u32>) -> u32, | |
| (vec3<u64>, vec3<u64>) -> u64, | |
| (vec3<f32>, vec3<f32>) -> f32, | |
| (vec3<f16>, vec3<f16>) -> f16, | |
| (vec3<f64>, vec3<f64>) -> f64, | |
| (vec4<{AbstractInt}>, vec4<{AbstractInt}>) -> {AbstractInt}, | |
| (vec4<{AbstractFloat}>, vec4<{AbstractFloat}>) -> {AbstractFloat}, | |
| (vec4<i32>, vec4<i32>) -> i32, | |
| (vec4<i64>, vec4<i64>) -> i64, | |
| (vec4<u32>, vec4<u32>) -> u32, | |
| (vec4<u64>, vec4<u64>) -> u64, | |
| (vec4<f32>, vec4<f32>) -> f32, | |
| (vec4<f16>, vec4<f16>) -> f16, | |
| (vec4<f64>, vec4<f64>) -> f64, | |
| ], | |
| conclude: Scalar, | |
| } | |
| DEBUG Supplying argument 0 of type vec2<f32> | |
| DEBUG Remaining overloads: List { | |
| rules: [ | |
| (vec2<f32>, vec2<f32>) -> f32, | |
| ], | |
| conclude: Scalar, | |
| } | |
| DEBUG Supplying argument 1 of type vec2<f32> | |
| DEBUG Remaining overloads: List { | |
| rules: [ | |
| (vec2<f32>, vec2<f32>) -> f32, | |
| ], | |
| conclude: Scalar, | |
| } | |
| DEBUG initial overloads for Dot, List { | |
| rules: [ | |
| (vec2<{AbstractInt}>, vec2<{AbstractInt}>) -> {AbstractInt}, | |
| (vec2<{AbstractFloat}>, vec2<{AbstractFloat}>) -> {AbstractFloat}, | |
| (vec2<i32>, vec2<i32>) -> i32, | |
| (vec2<i64>, vec2<i64>) -> i64, | |
| (vec2<u32>, vec2<u32>) -> u32, | |
| (vec2<u64>, vec2<u64>) -> u64, | |
| (vec2<f32>, vec2<f32>) -> f32, | |
| (vec2<f16>, vec2<f16>) -> f16, | |
| (vec2<f64>, vec2<f64>) -> f64, | |
| (vec3<{AbstractInt}>, vec3<{AbstractInt}>) -> {AbstractInt}, | |
| (vec3<{AbstractFloat}>, vec3<{AbstractFloat}>) -> {AbstractFloat}, | |
| (vec3<i32>, vec3<i32>) -> i32, | |
| (vec3<i64>, vec3<i64>) -> i64, | |
| (vec3<u32>, vec3<u32>) -> u32, | |
| (vec3<u64>, vec3<u64>) -> u64, | |
| (vec3<f32>, vec3<f32>) -> f32, | |
| (vec3<f16>, vec3<f16>) -> f16, | |
| (vec3<f64>, vec3<f64>) -> f64, | |
| (vec4<{AbstractInt}>, vec4<{AbstractInt}>) -> {AbstractInt}, | |
| (vec4<{AbstractFloat}>, vec4<{AbstractFloat}>) -> {AbstractFloat}, | |
| (vec4<i32>, vec4<i32>) -> i32, | |
| (vec4<i64>, vec4<i64>) -> i64, | |
| (vec4<u32>, vec4<u32>) -> u32, | |
| (vec4<u64>, vec4<u64>) -> u64, | |
| (vec4<f32>, vec4<f32>) -> f32, | |
| (vec4<f16>, vec4<f16>) -> f16, | |
| (vec4<f64>, vec4<f64>) -> f64, | |
| ], | |
| conclude: Scalar, | |
| } | |
| DEBUG overloads after arg 0 of type vec2<f32>: List { | |
| rules: [ | |
| (vec2<f32>, vec2<f32>) -> f32, | |
| ], | |
| conclude: Scalar, | |
| } | |
| DEBUG overloads after arg 1 of type vec2<f32>: List { | |
| rules: [ | |
| (vec2<f32>, vec2<f32>) -> f32, | |
| ], | |
| conclude: Scalar, | |
| } | |
| DEBUG Resolving [70] = Math { fun: Dot, arg: [68], arg1: Some([69]), arg2: None, arg3: None } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [71] = Load { pointer: [28] } : Handle([3]) | |
| DEBUG Initial overloads: List { | |
| rules: [ | |
| (f32) -> f32, | |
| (f16) -> f16, | |
| (f64) -> f64, | |
| (vec2<f32>) -> f32, | |
| (vec2<f16>) -> f16, | |
| (vec2<f64>) -> f64, | |
| (vec3<f32>) -> f32, | |
| (vec3<f16>) -> f16, | |
| (vec3<f64>) -> f64, | |
| (vec4<f32>) -> f32, | |
| (vec4<f16>) -> f16, | |
| (vec4<f64>) -> f64, | |
| ], | |
| conclude: Scalar, | |
| } | |
| DEBUG Supplying argument 0 of type vec2<f32> | |
| DEBUG Remaining overloads: List { | |
| rules: [ | |
| (vec2<f32>) -> f32, | |
| ], | |
| conclude: Scalar, | |
| } | |
| DEBUG initial overloads for Length, List { | |
| rules: [ | |
| (f32) -> f32, | |
| (f16) -> f16, | |
| (f64) -> f64, | |
| (vec2<f32>) -> f32, | |
| (vec2<f16>) -> f16, | |
| (vec2<f64>) -> f64, | |
| (vec3<f32>) -> f32, | |
| (vec3<f16>) -> f16, | |
| (vec3<f64>) -> f64, | |
| (vec4<f32>) -> f32, | |
| (vec4<f16>) -> f16, | |
| (vec4<f64>) -> f64, | |
| ], | |
| conclude: Scalar, | |
| } | |
| DEBUG overloads after arg 0 of type vec2<f32>: List { | |
| rules: [ | |
| (vec2<f32>) -> f32, | |
| ], | |
| conclude: Scalar, | |
| } | |
| DEBUG Resolving [72] = Math { fun: Length, arg: [71], arg1: None, arg2: None, arg3: None } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG wgsl automatic_conversion_consensus: f32, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [73] = Binary { op: Divide, left: [70], right: [72] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [74] = LocalVariable([2]) : Value(Pointer { base: [0], space: Function }) | |
| DEBUG Resolving [75] = AccessIndex { base: [28], index: 0 } : Value(ValuePointer { size: None, scalar: Scalar { kind: Float, width: 4 }, space: Function }) | |
| DEBUG Resolving [76] = Load { pointer: [75] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Initial overloads: List { | |
| rules: [ | |
| ({AbstractInt}) -> {AbstractInt}, | |
| ({AbstractFloat}) -> {AbstractFloat}, | |
| (i32) -> i32, | |
| (i64) -> i64, | |
| (u32) -> u32, | |
| (u64) -> u64, | |
| (f32) -> f32, | |
| (f16) -> f16, | |
| (f64) -> f64, | |
| (vec2<{AbstractInt}>) -> vec2<{AbstractInt}>, | |
| (vec2<{AbstractFloat}>) -> vec2<{AbstractFloat}>, | |
| (vec2<i32>) -> vec2<i32>, | |
| (vec2<i64>) -> vec2<i64>, | |
| (vec2<u32>) -> vec2<u32>, | |
| (vec2<u64>) -> vec2<u64>, | |
| (vec2<f32>) -> vec2<f32>, | |
| (vec2<f16>) -> vec2<f16>, | |
| (vec2<f64>) -> vec2<f64>, | |
| (vec3<{AbstractInt}>) -> vec3<{AbstractInt}>, | |
| (vec3<{AbstractFloat}>) -> vec3<{AbstractFloat}>, | |
| (vec3<i32>) -> vec3<i32>, | |
| (vec3<i64>) -> vec3<i64>, | |
| (vec3<u32>) -> vec3<u32>, | |
| (vec3<u64>) -> vec3<u64>, | |
| (vec3<f32>) -> vec3<f32>, | |
| (vec3<f16>) -> vec3<f16>, | |
| (vec3<f64>) -> vec3<f64>, | |
| (vec4<{AbstractInt}>) -> vec4<{AbstractInt}>, | |
| (vec4<{AbstractFloat}>) -> vec4<{AbstractFloat}>, | |
| (vec4<i32>) -> vec4<i32>, | |
| (vec4<i64>) -> vec4<i64>, | |
| (vec4<u32>) -> vec4<u32>, | |
| (vec4<u64>) -> vec4<u64>, | |
| (vec4<f32>) -> vec4<f32>, | |
| (vec4<f16>) -> vec4<f16>, | |
| (vec4<f64>) -> vec4<f64>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG Supplying argument 0 of type f32 | |
| DEBUG Remaining overloads: List { | |
| rules: [ | |
| (f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG initial overloads for Abs, List { | |
| rules: [ | |
| ({AbstractInt}) -> {AbstractInt}, | |
| ({AbstractFloat}) -> {AbstractFloat}, | |
| (i32) -> i32, | |
| (i64) -> i64, | |
| (u32) -> u32, | |
| (u64) -> u64, | |
| (f32) -> f32, | |
| (f16) -> f16, | |
| (f64) -> f64, | |
| (vec2<{AbstractInt}>) -> vec2<{AbstractInt}>, | |
| (vec2<{AbstractFloat}>) -> vec2<{AbstractFloat}>, | |
| (vec2<i32>) -> vec2<i32>, | |
| (vec2<i64>) -> vec2<i64>, | |
| (vec2<u32>) -> vec2<u32>, | |
| (vec2<u64>) -> vec2<u64>, | |
| (vec2<f32>) -> vec2<f32>, | |
| (vec2<f16>) -> vec2<f16>, | |
| (vec2<f64>) -> vec2<f64>, | |
| (vec3<{AbstractInt}>) -> vec3<{AbstractInt}>, | |
| (vec3<{AbstractFloat}>) -> vec3<{AbstractFloat}>, | |
| (vec3<i32>) -> vec3<i32>, | |
| (vec3<i64>) -> vec3<i64>, | |
| (vec3<u32>) -> vec3<u32>, | |
| (vec3<u64>) -> vec3<u64>, | |
| (vec3<f32>) -> vec3<f32>, | |
| (vec3<f16>) -> vec3<f16>, | |
| (vec3<f64>) -> vec3<f64>, | |
| (vec4<{AbstractInt}>) -> vec4<{AbstractInt}>, | |
| (vec4<{AbstractFloat}>) -> vec4<{AbstractFloat}>, | |
| (vec4<i32>) -> vec4<i32>, | |
| (vec4<i64>) -> vec4<i64>, | |
| (vec4<u32>) -> vec4<u32>, | |
| (vec4<u64>) -> vec4<u64>, | |
| (vec4<f32>) -> vec4<f32>, | |
| (vec4<f16>) -> vec4<f16>, | |
| (vec4<f64>) -> vec4<f64>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG overloads after arg 0 of type f32: List { | |
| rules: [ | |
| (f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG Resolving [77] = Math { fun: Abs, arg: [76], arg1: None, arg2: None, arg3: None } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [78] = AccessIndex { base: [28], index: 1 } : Value(ValuePointer { size: None, scalar: Scalar { kind: Float, width: 4 }, space: Function }) | |
| DEBUG Resolving [79] = Load { pointer: [78] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Initial overloads: List { | |
| rules: [ | |
| ({AbstractInt}) -> {AbstractInt}, | |
| ({AbstractFloat}) -> {AbstractFloat}, | |
| (i32) -> i32, | |
| (i64) -> i64, | |
| (u32) -> u32, | |
| (u64) -> u64, | |
| (f32) -> f32, | |
| (f16) -> f16, | |
| (f64) -> f64, | |
| (vec2<{AbstractInt}>) -> vec2<{AbstractInt}>, | |
| (vec2<{AbstractFloat}>) -> vec2<{AbstractFloat}>, | |
| (vec2<i32>) -> vec2<i32>, | |
| (vec2<i64>) -> vec2<i64>, | |
| (vec2<u32>) -> vec2<u32>, | |
| (vec2<u64>) -> vec2<u64>, | |
| (vec2<f32>) -> vec2<f32>, | |
| (vec2<f16>) -> vec2<f16>, | |
| (vec2<f64>) -> vec2<f64>, | |
| (vec3<{AbstractInt}>) -> vec3<{AbstractInt}>, | |
| (vec3<{AbstractFloat}>) -> vec3<{AbstractFloat}>, | |
| (vec3<i32>) -> vec3<i32>, | |
| (vec3<i64>) -> vec3<i64>, | |
| (vec3<u32>) -> vec3<u32>, | |
| (vec3<u64>) -> vec3<u64>, | |
| (vec3<f32>) -> vec3<f32>, | |
| (vec3<f16>) -> vec3<f16>, | |
| (vec3<f64>) -> vec3<f64>, | |
| (vec4<{AbstractInt}>) -> vec4<{AbstractInt}>, | |
| (vec4<{AbstractFloat}>) -> vec4<{AbstractFloat}>, | |
| (vec4<i32>) -> vec4<i32>, | |
| (vec4<i64>) -> vec4<i64>, | |
| (vec4<u32>) -> vec4<u32>, | |
| (vec4<u64>) -> vec4<u64>, | |
| (vec4<f32>) -> vec4<f32>, | |
| (vec4<f16>) -> vec4<f16>, | |
| (vec4<f64>) -> vec4<f64>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG Supplying argument 0 of type f32 | |
| DEBUG Remaining overloads: List { | |
| rules: [ | |
| (f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG initial overloads for Abs, List { | |
| rules: [ | |
| ({AbstractInt}) -> {AbstractInt}, | |
| ({AbstractFloat}) -> {AbstractFloat}, | |
| (i32) -> i32, | |
| (i64) -> i64, | |
| (u32) -> u32, | |
| (u64) -> u64, | |
| (f32) -> f32, | |
| (f16) -> f16, | |
| (f64) -> f64, | |
| (vec2<{AbstractInt}>) -> vec2<{AbstractInt}>, | |
| (vec2<{AbstractFloat}>) -> vec2<{AbstractFloat}>, | |
| (vec2<i32>) -> vec2<i32>, | |
| (vec2<i64>) -> vec2<i64>, | |
| (vec2<u32>) -> vec2<u32>, | |
| (vec2<u64>) -> vec2<u64>, | |
| (vec2<f32>) -> vec2<f32>, | |
| (vec2<f16>) -> vec2<f16>, | |
| (vec2<f64>) -> vec2<f64>, | |
| (vec3<{AbstractInt}>) -> vec3<{AbstractInt}>, | |
| (vec3<{AbstractFloat}>) -> vec3<{AbstractFloat}>, | |
| (vec3<i32>) -> vec3<i32>, | |
| (vec3<i64>) -> vec3<i64>, | |
| (vec3<u32>) -> vec3<u32>, | |
| (vec3<u64>) -> vec3<u64>, | |
| (vec3<f32>) -> vec3<f32>, | |
| (vec3<f16>) -> vec3<f16>, | |
| (vec3<f64>) -> vec3<f64>, | |
| (vec4<{AbstractInt}>) -> vec4<{AbstractInt}>, | |
| (vec4<{AbstractFloat}>) -> vec4<{AbstractFloat}>, | |
| (vec4<i32>) -> vec4<i32>, | |
| (vec4<i64>) -> vec4<i64>, | |
| (vec4<u32>) -> vec4<u32>, | |
| (vec4<u64>) -> vec4<u64>, | |
| (vec4<f32>) -> vec4<f32>, | |
| (vec4<f16>) -> vec4<f16>, | |
| (vec4<f64>) -> vec4<f64>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG overloads after arg 0 of type f32: List { | |
| rules: [ | |
| (f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG Resolving [80] = Math { fun: Abs, arg: [79], arg1: None, arg2: None, arg3: None } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG wgsl automatic_conversion_consensus: f32, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [81] = Binary { op: Greater, left: [77], right: [80] } : Value(Scalar(Scalar { kind: Bool, width: 1 })) | |
| DEBUG Resolving [82] = Load { pointer: [74] } : Handle([0]) | |
| DEBUG Resolving [83] = AccessIndex { base: [65], index: 0 } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG wgsl automatic_conversion_consensus: f32, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [84] = Binary { op: Add, left: [82], right: [83] } : Handle([0]) | |
| DEBUG Resolving [85] = AccessIndex { base: [2], index: 1 } : Handle([3]) | |
| DEBUG Resolving [86] = AccessIndex { base: [85], index: 0 } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG wgsl automatic_conversion_consensus: f32, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [87] = Binary { op: Divide, left: [84], right: [86] } : Handle([0]) | |
| DEBUG Resolving [88] = Load { pointer: [74] } : Handle([0]) | |
| DEBUG Resolving [89] = AccessIndex { base: [65], index: 1 } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG wgsl automatic_conversion_consensus: f32, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [90] = Binary { op: Add, left: [88], right: [89] } : Handle([0]) | |
| DEBUG Resolving [91] = AccessIndex { base: [2], index: 1 } : Handle([3]) | |
| DEBUG Resolving [92] = AccessIndex { base: [91], index: 1 } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG wgsl automatic_conversion_consensus: f32, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [93] = Binary { op: Divide, left: [90], right: [92] } : Handle([0]) | |
| DEBUG Resolving [94] = Load { pointer: [74] } : Handle([0]) | |
| DEBUG wgsl automatic_conversion_consensus: f32, f32 | |
| DEBUG consensus: f32 | |
| DEBUG wgsl automatic_conversion_consensus: f32, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [95] = Binary { op: Subtract, left: [94], right: [33] } : Handle([0]) | |
| DEBUG Resolving [96] = Binary { op: Subtract, left: [38], right: [33] } : Handle([0]) | |
| DEBUG wgsl automatic_conversion_consensus: f32, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [97] = Binary { op: Divide, left: [95], right: [96] } : Handle([0]) | |
| DEBUG Resolving [98] = Load { pointer: [74] } : Handle([0]) | |
| DEBUG Resolving [99] = Literal(AbstractFloat(0.0)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG Resolving [100] = Literal(AbstractFloat(1.0)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG Initial overloads: List { | |
| rules: [ | |
| ({AbstractInt}, {AbstractInt}, {AbstractInt}) -> {AbstractInt}, | |
| ({AbstractFloat}, {AbstractFloat}, {AbstractFloat}) -> {AbstractFloat}, | |
| (i32, i32, i32) -> i32, | |
| (i64, i64, i64) -> i64, | |
| (u32, u32, u32) -> u32, | |
| (u64, u64, u64) -> u64, | |
| (f32, f32, f32) -> f32, | |
| (f16, f16, f16) -> f16, | |
| (f64, f64, f64) -> f64, | |
| (vec2<{AbstractInt}>, vec2<{AbstractInt}>, vec2<{AbstractInt}>) -> vec2<{AbstractInt}>, | |
| (vec2<{AbstractFloat}>, vec2<{AbstractFloat}>, vec2<{AbstractFloat}>) -> vec2<{AbstractFloat}>, | |
| (vec2<i32>, vec2<i32>, vec2<i32>) -> vec2<i32>, | |
| (vec2<i64>, vec2<i64>, vec2<i64>) -> vec2<i64>, | |
| (vec2<u32>, vec2<u32>, vec2<u32>) -> vec2<u32>, | |
| (vec2<u64>, vec2<u64>, vec2<u64>) -> vec2<u64>, | |
| (vec2<f32>, vec2<f32>, vec2<f32>) -> vec2<f32>, | |
| (vec2<f16>, vec2<f16>, vec2<f16>) -> vec2<f16>, | |
| (vec2<f64>, vec2<f64>, vec2<f64>) -> vec2<f64>, | |
| (vec3<{AbstractInt}>, vec3<{AbstractInt}>, vec3<{AbstractInt}>) -> vec3<{AbstractInt}>, | |
| (vec3<{AbstractFloat}>, vec3<{AbstractFloat}>, vec3<{AbstractFloat}>) -> vec3<{AbstractFloat}>, | |
| (vec3<i32>, vec3<i32>, vec3<i32>) -> vec3<i32>, | |
| (vec3<i64>, vec3<i64>, vec3<i64>) -> vec3<i64>, | |
| (vec3<u32>, vec3<u32>, vec3<u32>) -> vec3<u32>, | |
| (vec3<u64>, vec3<u64>, vec3<u64>) -> vec3<u64>, | |
| (vec3<f32>, vec3<f32>, vec3<f32>) -> vec3<f32>, | |
| (vec3<f16>, vec3<f16>, vec3<f16>) -> vec3<f16>, | |
| (vec3<f64>, vec3<f64>, vec3<f64>) -> vec3<f64>, | |
| (vec4<{AbstractInt}>, vec4<{AbstractInt}>, vec4<{AbstractInt}>) -> vec4<{AbstractInt}>, | |
| (vec4<{AbstractFloat}>, vec4<{AbstractFloat}>, vec4<{AbstractFloat}>) -> vec4<{AbstractFloat}>, | |
| (vec4<i32>, vec4<i32>, vec4<i32>) -> vec4<i32>, | |
| (vec4<i64>, vec4<i64>, vec4<i64>) -> vec4<i64>, | |
| (vec4<u32>, vec4<u32>, vec4<u32>) -> vec4<u32>, | |
| (vec4<u64>, vec4<u64>, vec4<u64>) -> vec4<u64>, | |
| (vec4<f32>, vec4<f32>, vec4<f32>) -> vec4<f32>, | |
| (vec4<f16>, vec4<f16>, vec4<f16>) -> vec4<f16>, | |
| (vec4<f64>, vec4<f64>, vec4<f64>) -> vec4<f64>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG Supplying argument 0 of type f32 | |
| DEBUG Remaining overloads: List { | |
| rules: [ | |
| (f32, f32, f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG Supplying argument 1 of type {AbstractFloat} | |
| DEBUG Remaining overloads: List { | |
| rules: [ | |
| (f32, f32, f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG Supplying argument 2 of type {AbstractFloat} | |
| DEBUG Remaining overloads: List { | |
| rules: [ | |
| (f32, f32, f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG Resolving [101] = Literal(F32(0.0)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [102] = Literal(F32(1.0)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG initial overloads for Clamp, List { | |
| rules: [ | |
| ({AbstractInt}, {AbstractInt}, {AbstractInt}) -> {AbstractInt}, | |
| ({AbstractFloat}, {AbstractFloat}, {AbstractFloat}) -> {AbstractFloat}, | |
| (i32, i32, i32) -> i32, | |
| (i64, i64, i64) -> i64, | |
| (u32, u32, u32) -> u32, | |
| (u64, u64, u64) -> u64, | |
| (f32, f32, f32) -> f32, | |
| (f16, f16, f16) -> f16, | |
| (f64, f64, f64) -> f64, | |
| (vec2<{AbstractInt}>, vec2<{AbstractInt}>, vec2<{AbstractInt}>) -> vec2<{AbstractInt}>, | |
| (vec2<{AbstractFloat}>, vec2<{AbstractFloat}>, vec2<{AbstractFloat}>) -> vec2<{AbstractFloat}>, | |
| (vec2<i32>, vec2<i32>, vec2<i32>) -> vec2<i32>, | |
| (vec2<i64>, vec2<i64>, vec2<i64>) -> vec2<i64>, | |
| (vec2<u32>, vec2<u32>, vec2<u32>) -> vec2<u32>, | |
| (vec2<u64>, vec2<u64>, vec2<u64>) -> vec2<u64>, | |
| (vec2<f32>, vec2<f32>, vec2<f32>) -> vec2<f32>, | |
| (vec2<f16>, vec2<f16>, vec2<f16>) -> vec2<f16>, | |
| (vec2<f64>, vec2<f64>, vec2<f64>) -> vec2<f64>, | |
| (vec3<{AbstractInt}>, vec3<{AbstractInt}>, vec3<{AbstractInt}>) -> vec3<{AbstractInt}>, | |
| (vec3<{AbstractFloat}>, vec3<{AbstractFloat}>, vec3<{AbstractFloat}>) -> vec3<{AbstractFloat}>, | |
| (vec3<i32>, vec3<i32>, vec3<i32>) -> vec3<i32>, | |
| (vec3<i64>, vec3<i64>, vec3<i64>) -> vec3<i64>, | |
| (vec3<u32>, vec3<u32>, vec3<u32>) -> vec3<u32>, | |
| (vec3<u64>, vec3<u64>, vec3<u64>) -> vec3<u64>, | |
| (vec3<f32>, vec3<f32>, vec3<f32>) -> vec3<f32>, | |
| (vec3<f16>, vec3<f16>, vec3<f16>) -> vec3<f16>, | |
| (vec3<f64>, vec3<f64>, vec3<f64>) -> vec3<f64>, | |
| (vec4<{AbstractInt}>, vec4<{AbstractInt}>, vec4<{AbstractInt}>) -> vec4<{AbstractInt}>, | |
| (vec4<{AbstractFloat}>, vec4<{AbstractFloat}>, vec4<{AbstractFloat}>) -> vec4<{AbstractFloat}>, | |
| (vec4<i32>, vec4<i32>, vec4<i32>) -> vec4<i32>, | |
| (vec4<i64>, vec4<i64>, vec4<i64>) -> vec4<i64>, | |
| (vec4<u32>, vec4<u32>, vec4<u32>) -> vec4<u32>, | |
| (vec4<u64>, vec4<u64>, vec4<u64>) -> vec4<u64>, | |
| (vec4<f32>, vec4<f32>, vec4<f32>) -> vec4<f32>, | |
| (vec4<f16>, vec4<f16>, vec4<f16>) -> vec4<f16>, | |
| (vec4<f64>, vec4<f64>, vec4<f64>) -> vec4<f64>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG overloads after arg 0 of type f32: List { | |
| rules: [ | |
| (f32, f32, f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG overloads after arg 1 of type f32: List { | |
| rules: [ | |
| (f32, f32, f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG Resolving [103] = Math { fun: Clamp, arg: [98], arg1: Some([101]), arg2: Some([102]), arg3: None } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [104] = AccessIndex { base: [0], index: 1 } : Handle([4]) | |
| DEBUG Resolving [105] = Literal(U32(1)) : Value(Scalar(Scalar { kind: Uint, width: 4 })) | |
| DEBUG wgsl automatic_conversion_consensus: u32, u32 | |
| DEBUG consensus: u32 | |
| DEBUG Resolving [106] = Load { pointer: [74] } : Handle([0]) | |
| DEBUG Initial overloads: [ | |
| ({AbstractFloat}, {AbstractFloat}, {AbstractFloat}) -> {AbstractFloat}, | |
| ({AbstractFloat}, {AbstractFloat}, {AbstractFloat}) -> {AbstractFloat}, | |
| (vec2<{AbstractFloat}>, vec2<{AbstractFloat}>, vec2<{AbstractFloat}>) -> vec2<{AbstractFloat}>, | |
| (vec2<{AbstractFloat}>, vec2<{AbstractFloat}>, {AbstractFloat}) -> vec2<{AbstractFloat}>, | |
| (vec3<{AbstractFloat}>, vec3<{AbstractFloat}>, vec3<{AbstractFloat}>) -> vec3<{AbstractFloat}>, | |
| (vec3<{AbstractFloat}>, vec3<{AbstractFloat}>, {AbstractFloat}) -> vec3<{AbstractFloat}>, | |
| (vec4<{AbstractFloat}>, vec4<{AbstractFloat}>, vec4<{AbstractFloat}>) -> vec4<{AbstractFloat}>, | |
| (vec4<{AbstractFloat}>, vec4<{AbstractFloat}>, {AbstractFloat}) -> vec4<{AbstractFloat}>, | |
| (f32, f32, f32) -> f32, | |
| (f32, f32, f32) -> f32, | |
| (vec2<f32>, vec2<f32>, vec2<f32>) -> vec2<f32>, | |
| (vec2<f32>, vec2<f32>, f32) -> vec2<f32>, | |
| (vec3<f32>, vec3<f32>, vec3<f32>) -> vec3<f32>, | |
| (vec3<f32>, vec3<f32>, f32) -> vec3<f32>, | |
| (vec4<f32>, vec4<f32>, vec4<f32>) -> vec4<f32>, | |
| (vec4<f32>, vec4<f32>, f32) -> vec4<f32>, | |
| (f16, f16, f16) -> f16, | |
| (f16, f16, f16) -> f16, | |
| (vec2<f16>, vec2<f16>, vec2<f16>) -> vec2<f16>, | |
| (vec2<f16>, vec2<f16>, f16) -> vec2<f16>, | |
| (vec3<f16>, vec3<f16>, vec3<f16>) -> vec3<f16>, | |
| (vec3<f16>, vec3<f16>, f16) -> vec3<f16>, | |
| (vec4<f16>, vec4<f16>, vec4<f16>) -> vec4<f16>, | |
| (vec4<f16>, vec4<f16>, f16) -> vec4<f16>, | |
| (f64, f64, f64) -> f64, | |
| (f64, f64, f64) -> f64, | |
| (vec2<f64>, vec2<f64>, vec2<f64>) -> vec2<f64>, | |
| (vec2<f64>, vec2<f64>, f64) -> vec2<f64>, | |
| (vec3<f64>, vec3<f64>, vec3<f64>) -> vec3<f64>, | |
| (vec3<f64>, vec3<f64>, f64) -> vec3<f64>, | |
| (vec4<f64>, vec4<f64>, vec4<f64>) -> vec4<f64>, | |
| (vec4<f64>, vec4<f64>, f64) -> vec4<f64>, | |
| ] | |
| DEBUG Supplying argument 0 of type vec4<f32> | |
| DEBUG arg 0 of type vec4<f32> | |
| DEBUG considering rule ({AbstractFloat}, {AbstractFloat}, {AbstractFloat}) -> {AbstractFloat} | |
| DEBUG no conversion possible | |
| DEBUG considering rule ({AbstractFloat}, {AbstractFloat}, {AbstractFloat}) -> {AbstractFloat} | |
| DEBUG no conversion possible | |
| DEBUG considering rule (vec2<{AbstractFloat}>, vec2<{AbstractFloat}>, vec2<{AbstractFloat}>) -> vec2<{AbstractFloat}> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (vec2<{AbstractFloat}>, vec2<{AbstractFloat}>, {AbstractFloat}) -> vec2<{AbstractFloat}> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (vec3<{AbstractFloat}>, vec3<{AbstractFloat}>, vec3<{AbstractFloat}>) -> vec3<{AbstractFloat}> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (vec3<{AbstractFloat}>, vec3<{AbstractFloat}>, {AbstractFloat}) -> vec3<{AbstractFloat}> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (vec4<{AbstractFloat}>, vec4<{AbstractFloat}>, vec4<{AbstractFloat}>) -> vec4<{AbstractFloat}> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (vec4<{AbstractFloat}>, vec4<{AbstractFloat}>, {AbstractFloat}) -> vec4<{AbstractFloat}> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (f32, f32, f32) -> f32 | |
| DEBUG no conversion possible | |
| DEBUG considering rule (f32, f32, f32) -> f32 | |
| DEBUG no conversion possible | |
| DEBUG considering rule (vec2<f32>, vec2<f32>, vec2<f32>) -> vec2<f32> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (vec2<f32>, vec2<f32>, f32) -> vec2<f32> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (vec3<f32>, vec3<f32>, vec3<f32>) -> vec3<f32> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (vec3<f32>, vec3<f32>, f32) -> vec3<f32> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (vec4<f32>, vec4<f32>, vec4<f32>) -> vec4<f32> | |
| DEBUG types are equivalent | |
| DEBUG considering rule (vec4<f32>, vec4<f32>, f32) -> vec4<f32> | |
| DEBUG types are equivalent | |
| DEBUG considering rule (f16, f16, f16) -> f16 | |
| DEBUG no conversion possible | |
| DEBUG considering rule (f16, f16, f16) -> f16 | |
| DEBUG no conversion possible | |
| DEBUG considering rule (vec2<f16>, vec2<f16>, vec2<f16>) -> vec2<f16> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (vec2<f16>, vec2<f16>, f16) -> vec2<f16> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (vec3<f16>, vec3<f16>, vec3<f16>) -> vec3<f16> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (vec3<f16>, vec3<f16>, f16) -> vec3<f16> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (vec4<f16>, vec4<f16>, vec4<f16>) -> vec4<f16> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (vec4<f16>, vec4<f16>, f16) -> vec4<f16> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (f64, f64, f64) -> f64 | |
| DEBUG no conversion possible | |
| DEBUG considering rule (f64, f64, f64) -> f64 | |
| DEBUG no conversion possible | |
| DEBUG considering rule (vec2<f64>, vec2<f64>, vec2<f64>) -> vec2<f64> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (vec2<f64>, vec2<f64>, f64) -> vec2<f64> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (vec3<f64>, vec3<f64>, vec3<f64>) -> vec3<f64> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (vec3<f64>, vec3<f64>, f64) -> vec3<f64> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (vec4<f64>, vec4<f64>, vec4<f64>) -> vec4<f64> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (vec4<f64>, vec4<f64>, f64) -> vec4<f64> | |
| DEBUG no conversion possible | |
| DEBUG Remaining overloads: [ | |
| (vec4<f32>, vec4<f32>, vec4<f32>) -> vec4<f32>, | |
| (vec4<f32>, vec4<f32>, f32) -> vec4<f32>, | |
| ] | |
| DEBUG Supplying argument 1 of type vec4<f32> | |
| DEBUG arg 1 of type vec4<f32> | |
| DEBUG considering rule (vec4<f32>, vec4<f32>, vec4<f32>) -> vec4<f32> | |
| DEBUG types are equivalent | |
| DEBUG considering rule (vec4<f32>, vec4<f32>, f32) -> vec4<f32> | |
| DEBUG types are equivalent | |
| DEBUG Remaining overloads: [ | |
| (vec4<f32>, vec4<f32>, vec4<f32>) -> vec4<f32>, | |
| (vec4<f32>, vec4<f32>, f32) -> vec4<f32>, | |
| ] | |
| DEBUG Supplying argument 2 of type f32 | |
| DEBUG arg 2 of type f32 | |
| DEBUG considering rule (vec4<f32>, vec4<f32>, vec4<f32>) -> vec4<f32> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (vec4<f32>, vec4<f32>, f32) -> vec4<f32> | |
| DEBUG types are equivalent | |
| DEBUG Remaining overloads: [ | |
| (vec4<f32>, vec4<f32>, f32) -> vec4<f32>, | |
| ] | |
| DEBUG initial overloads for Mix, [ | |
| ({AbstractFloat}, {AbstractFloat}, {AbstractFloat}) -> {AbstractFloat}, | |
| ({AbstractFloat}, {AbstractFloat}, {AbstractFloat}) -> {AbstractFloat}, | |
| (vec2<{AbstractFloat}>, vec2<{AbstractFloat}>, vec2<{AbstractFloat}>) -> vec2<{AbstractFloat}>, | |
| (vec2<{AbstractFloat}>, vec2<{AbstractFloat}>, {AbstractFloat}) -> vec2<{AbstractFloat}>, | |
| (vec3<{AbstractFloat}>, vec3<{AbstractFloat}>, vec3<{AbstractFloat}>) -> vec3<{AbstractFloat}>, | |
| (vec3<{AbstractFloat}>, vec3<{AbstractFloat}>, {AbstractFloat}) -> vec3<{AbstractFloat}>, | |
| (vec4<{AbstractFloat}>, vec4<{AbstractFloat}>, vec4<{AbstractFloat}>) -> vec4<{AbstractFloat}>, | |
| (vec4<{AbstractFloat}>, vec4<{AbstractFloat}>, {AbstractFloat}) -> vec4<{AbstractFloat}>, | |
| (f32, f32, f32) -> f32, | |
| (f32, f32, f32) -> f32, | |
| (vec2<f32>, vec2<f32>, vec2<f32>) -> vec2<f32>, | |
| (vec2<f32>, vec2<f32>, f32) -> vec2<f32>, | |
| (vec3<f32>, vec3<f32>, vec3<f32>) -> vec3<f32>, | |
| (vec3<f32>, vec3<f32>, f32) -> vec3<f32>, | |
| (vec4<f32>, vec4<f32>, vec4<f32>) -> vec4<f32>, | |
| (vec4<f32>, vec4<f32>, f32) -> vec4<f32>, | |
| (f16, f16, f16) -> f16, | |
| (f16, f16, f16) -> f16, | |
| (vec2<f16>, vec2<f16>, vec2<f16>) -> vec2<f16>, | |
| (vec2<f16>, vec2<f16>, f16) -> vec2<f16>, | |
| (vec3<f16>, vec3<f16>, vec3<f16>) -> vec3<f16>, | |
| (vec3<f16>, vec3<f16>, f16) -> vec3<f16>, | |
| (vec4<f16>, vec4<f16>, vec4<f16>) -> vec4<f16>, | |
| (vec4<f16>, vec4<f16>, f16) -> vec4<f16>, | |
| (f64, f64, f64) -> f64, | |
| (f64, f64, f64) -> f64, | |
| (vec2<f64>, vec2<f64>, vec2<f64>) -> vec2<f64>, | |
| (vec2<f64>, vec2<f64>, f64) -> vec2<f64>, | |
| (vec3<f64>, vec3<f64>, vec3<f64>) -> vec3<f64>, | |
| (vec3<f64>, vec3<f64>, f64) -> vec3<f64>, | |
| (vec4<f64>, vec4<f64>, vec4<f64>) -> vec4<f64>, | |
| (vec4<f64>, vec4<f64>, f64) -> vec4<f64>, | |
| ] | |
| DEBUG arg 0 of type vec4<f32> | |
| DEBUG considering rule ({AbstractFloat}, {AbstractFloat}, {AbstractFloat}) -> {AbstractFloat} | |
| DEBUG no conversion possible | |
| DEBUG considering rule ({AbstractFloat}, {AbstractFloat}, {AbstractFloat}) -> {AbstractFloat} | |
| DEBUG no conversion possible | |
| DEBUG considering rule (vec2<{AbstractFloat}>, vec2<{AbstractFloat}>, vec2<{AbstractFloat}>) -> vec2<{AbstractFloat}> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (vec2<{AbstractFloat}>, vec2<{AbstractFloat}>, {AbstractFloat}) -> vec2<{AbstractFloat}> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (vec3<{AbstractFloat}>, vec3<{AbstractFloat}>, vec3<{AbstractFloat}>) -> vec3<{AbstractFloat}> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (vec3<{AbstractFloat}>, vec3<{AbstractFloat}>, {AbstractFloat}) -> vec3<{AbstractFloat}> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (vec4<{AbstractFloat}>, vec4<{AbstractFloat}>, vec4<{AbstractFloat}>) -> vec4<{AbstractFloat}> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (vec4<{AbstractFloat}>, vec4<{AbstractFloat}>, {AbstractFloat}) -> vec4<{AbstractFloat}> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (f32, f32, f32) -> f32 | |
| DEBUG no conversion possible | |
| DEBUG considering rule (f32, f32, f32) -> f32 | |
| DEBUG no conversion possible | |
| DEBUG considering rule (vec2<f32>, vec2<f32>, vec2<f32>) -> vec2<f32> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (vec2<f32>, vec2<f32>, f32) -> vec2<f32> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (vec3<f32>, vec3<f32>, vec3<f32>) -> vec3<f32> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (vec3<f32>, vec3<f32>, f32) -> vec3<f32> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (vec4<f32>, vec4<f32>, vec4<f32>) -> vec4<f32> | |
| DEBUG types are equivalent | |
| DEBUG considering rule (vec4<f32>, vec4<f32>, f32) -> vec4<f32> | |
| DEBUG types are equivalent | |
| DEBUG considering rule (f16, f16, f16) -> f16 | |
| DEBUG no conversion possible | |
| DEBUG considering rule (f16, f16, f16) -> f16 | |
| DEBUG no conversion possible | |
| DEBUG considering rule (vec2<f16>, vec2<f16>, vec2<f16>) -> vec2<f16> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (vec2<f16>, vec2<f16>, f16) -> vec2<f16> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (vec3<f16>, vec3<f16>, vec3<f16>) -> vec3<f16> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (vec3<f16>, vec3<f16>, f16) -> vec3<f16> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (vec4<f16>, vec4<f16>, vec4<f16>) -> vec4<f16> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (vec4<f16>, vec4<f16>, f16) -> vec4<f16> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (f64, f64, f64) -> f64 | |
| DEBUG no conversion possible | |
| DEBUG considering rule (f64, f64, f64) -> f64 | |
| DEBUG no conversion possible | |
| DEBUG considering rule (vec2<f64>, vec2<f64>, vec2<f64>) -> vec2<f64> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (vec2<f64>, vec2<f64>, f64) -> vec2<f64> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (vec3<f64>, vec3<f64>, vec3<f64>) -> vec3<f64> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (vec3<f64>, vec3<f64>, f64) -> vec3<f64> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (vec4<f64>, vec4<f64>, vec4<f64>) -> vec4<f64> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (vec4<f64>, vec4<f64>, f64) -> vec4<f64> | |
| DEBUG no conversion possible | |
| DEBUG overloads after arg 0 of type vec4<f32>: [ | |
| (vec4<f32>, vec4<f32>, vec4<f32>) -> vec4<f32>, | |
| (vec4<f32>, vec4<f32>, f32) -> vec4<f32>, | |
| ] | |
| DEBUG arg 1 of type vec4<f32> | |
| DEBUG considering rule (vec4<f32>, vec4<f32>, vec4<f32>) -> vec4<f32> | |
| DEBUG types are equivalent | |
| DEBUG considering rule (vec4<f32>, vec4<f32>, f32) -> vec4<f32> | |
| DEBUG types are equivalent | |
| DEBUG overloads after arg 1 of type vec4<f32>: [ | |
| (vec4<f32>, vec4<f32>, vec4<f32>) -> vec4<f32>, | |
| (vec4<f32>, vec4<f32>, f32) -> vec4<f32>, | |
| ] | |
| DEBUG Resolving [107] = Math { fun: Mix, arg: [4], arg1: Some([5]), arg2: Some([106]), arg3: None } : Value(Vector { size: Quad, scalar: Scalar { kind: Float, width: 4 } }) | |
| DEBUG Resolving [108] = CallResult([16]) : Handle([2]) | |
| DEBUG Resolving [109] = Load { pointer: [74] } : Handle([0]) | |
| DEBUG Initial overloads: [ | |
| ({AbstractFloat}, {AbstractFloat}, {AbstractFloat}) -> {AbstractFloat}, | |
| ({AbstractFloat}, {AbstractFloat}, {AbstractFloat}) -> {AbstractFloat}, | |
| (vec2<{AbstractFloat}>, vec2<{AbstractFloat}>, vec2<{AbstractFloat}>) -> vec2<{AbstractFloat}>, | |
| (vec2<{AbstractFloat}>, vec2<{AbstractFloat}>, {AbstractFloat}) -> vec2<{AbstractFloat}>, | |
| (vec3<{AbstractFloat}>, vec3<{AbstractFloat}>, vec3<{AbstractFloat}>) -> vec3<{AbstractFloat}>, | |
| (vec3<{AbstractFloat}>, vec3<{AbstractFloat}>, {AbstractFloat}) -> vec3<{AbstractFloat}>, | |
| (vec4<{AbstractFloat}>, vec4<{AbstractFloat}>, vec4<{AbstractFloat}>) -> vec4<{AbstractFloat}>, | |
| (vec4<{AbstractFloat}>, vec4<{AbstractFloat}>, {AbstractFloat}) -> vec4<{AbstractFloat}>, | |
| (f32, f32, f32) -> f32, | |
| (f32, f32, f32) -> f32, | |
| (vec2<f32>, vec2<f32>, vec2<f32>) -> vec2<f32>, | |
| (vec2<f32>, vec2<f32>, f32) -> vec2<f32>, | |
| (vec3<f32>, vec3<f32>, vec3<f32>) -> vec3<f32>, | |
| (vec3<f32>, vec3<f32>, f32) -> vec3<f32>, | |
| (vec4<f32>, vec4<f32>, vec4<f32>) -> vec4<f32>, | |
| (vec4<f32>, vec4<f32>, f32) -> vec4<f32>, | |
| (f16, f16, f16) -> f16, | |
| (f16, f16, f16) -> f16, | |
| (vec2<f16>, vec2<f16>, vec2<f16>) -> vec2<f16>, | |
| (vec2<f16>, vec2<f16>, f16) -> vec2<f16>, | |
| (vec3<f16>, vec3<f16>, vec3<f16>) -> vec3<f16>, | |
| (vec3<f16>, vec3<f16>, f16) -> vec3<f16>, | |
| (vec4<f16>, vec4<f16>, vec4<f16>) -> vec4<f16>, | |
| (vec4<f16>, vec4<f16>, f16) -> vec4<f16>, | |
| (f64, f64, f64) -> f64, | |
| (f64, f64, f64) -> f64, | |
| (vec2<f64>, vec2<f64>, vec2<f64>) -> vec2<f64>, | |
| (vec2<f64>, vec2<f64>, f64) -> vec2<f64>, | |
| (vec3<f64>, vec3<f64>, vec3<f64>) -> vec3<f64>, | |
| (vec3<f64>, vec3<f64>, f64) -> vec3<f64>, | |
| (vec4<f64>, vec4<f64>, vec4<f64>) -> vec4<f64>, | |
| (vec4<f64>, vec4<f64>, f64) -> vec4<f64>, | |
| ] | |
| DEBUG Supplying argument 0 of type vec4<f32> | |
| DEBUG arg 0 of type vec4<f32> | |
| DEBUG considering rule ({AbstractFloat}, {AbstractFloat}, {AbstractFloat}) -> {AbstractFloat} | |
| DEBUG no conversion possible | |
| DEBUG considering rule ({AbstractFloat}, {AbstractFloat}, {AbstractFloat}) -> {AbstractFloat} | |
| DEBUG no conversion possible | |
| DEBUG considering rule (vec2<{AbstractFloat}>, vec2<{AbstractFloat}>, vec2<{AbstractFloat}>) -> vec2<{AbstractFloat}> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (vec2<{AbstractFloat}>, vec2<{AbstractFloat}>, {AbstractFloat}) -> vec2<{AbstractFloat}> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (vec3<{AbstractFloat}>, vec3<{AbstractFloat}>, vec3<{AbstractFloat}>) -> vec3<{AbstractFloat}> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (vec3<{AbstractFloat}>, vec3<{AbstractFloat}>, {AbstractFloat}) -> vec3<{AbstractFloat}> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (vec4<{AbstractFloat}>, vec4<{AbstractFloat}>, vec4<{AbstractFloat}>) -> vec4<{AbstractFloat}> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (vec4<{AbstractFloat}>, vec4<{AbstractFloat}>, {AbstractFloat}) -> vec4<{AbstractFloat}> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (f32, f32, f32) -> f32 | |
| DEBUG no conversion possible | |
| DEBUG considering rule (f32, f32, f32) -> f32 | |
| DEBUG no conversion possible | |
| DEBUG considering rule (vec2<f32>, vec2<f32>, vec2<f32>) -> vec2<f32> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (vec2<f32>, vec2<f32>, f32) -> vec2<f32> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (vec3<f32>, vec3<f32>, vec3<f32>) -> vec3<f32> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (vec3<f32>, vec3<f32>, f32) -> vec3<f32> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (vec4<f32>, vec4<f32>, vec4<f32>) -> vec4<f32> | |
| DEBUG types are equivalent | |
| DEBUG considering rule (vec4<f32>, vec4<f32>, f32) -> vec4<f32> | |
| DEBUG types are equivalent | |
| DEBUG considering rule (f16, f16, f16) -> f16 | |
| DEBUG no conversion possible | |
| DEBUG considering rule (f16, f16, f16) -> f16 | |
| DEBUG no conversion possible | |
| DEBUG considering rule (vec2<f16>, vec2<f16>, vec2<f16>) -> vec2<f16> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (vec2<f16>, vec2<f16>, f16) -> vec2<f16> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (vec3<f16>, vec3<f16>, vec3<f16>) -> vec3<f16> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (vec3<f16>, vec3<f16>, f16) -> vec3<f16> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (vec4<f16>, vec4<f16>, vec4<f16>) -> vec4<f16> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (vec4<f16>, vec4<f16>, f16) -> vec4<f16> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (f64, f64, f64) -> f64 | |
| DEBUG no conversion possible | |
| DEBUG considering rule (f64, f64, f64) -> f64 | |
| DEBUG no conversion possible | |
| DEBUG considering rule (vec2<f64>, vec2<f64>, vec2<f64>) -> vec2<f64> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (vec2<f64>, vec2<f64>, f64) -> vec2<f64> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (vec3<f64>, vec3<f64>, vec3<f64>) -> vec3<f64> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (vec3<f64>, vec3<f64>, f64) -> vec3<f64> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (vec4<f64>, vec4<f64>, vec4<f64>) -> vec4<f64> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (vec4<f64>, vec4<f64>, f64) -> vec4<f64> | |
| DEBUG no conversion possible | |
| DEBUG Remaining overloads: [ | |
| (vec4<f32>, vec4<f32>, vec4<f32>) -> vec4<f32>, | |
| (vec4<f32>, vec4<f32>, f32) -> vec4<f32>, | |
| ] | |
| DEBUG Supplying argument 1 of type vec4<f32> | |
| DEBUG arg 1 of type vec4<f32> | |
| DEBUG considering rule (vec4<f32>, vec4<f32>, vec4<f32>) -> vec4<f32> | |
| DEBUG types are equivalent | |
| DEBUG considering rule (vec4<f32>, vec4<f32>, f32) -> vec4<f32> | |
| DEBUG types are equivalent | |
| DEBUG Remaining overloads: [ | |
| (vec4<f32>, vec4<f32>, vec4<f32>) -> vec4<f32>, | |
| (vec4<f32>, vec4<f32>, f32) -> vec4<f32>, | |
| ] | |
| DEBUG Supplying argument 2 of type f32 | |
| DEBUG arg 2 of type f32 | |
| DEBUG considering rule (vec4<f32>, vec4<f32>, vec4<f32>) -> vec4<f32> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (vec4<f32>, vec4<f32>, f32) -> vec4<f32> | |
| DEBUG types are equivalent | |
| DEBUG Remaining overloads: [ | |
| (vec4<f32>, vec4<f32>, f32) -> vec4<f32>, | |
| ] | |
| DEBUG initial overloads for Mix, [ | |
| ({AbstractFloat}, {AbstractFloat}, {AbstractFloat}) -> {AbstractFloat}, | |
| ({AbstractFloat}, {AbstractFloat}, {AbstractFloat}) -> {AbstractFloat}, | |
| (vec2<{AbstractFloat}>, vec2<{AbstractFloat}>, vec2<{AbstractFloat}>) -> vec2<{AbstractFloat}>, | |
| (vec2<{AbstractFloat}>, vec2<{AbstractFloat}>, {AbstractFloat}) -> vec2<{AbstractFloat}>, | |
| (vec3<{AbstractFloat}>, vec3<{AbstractFloat}>, vec3<{AbstractFloat}>) -> vec3<{AbstractFloat}>, | |
| (vec3<{AbstractFloat}>, vec3<{AbstractFloat}>, {AbstractFloat}) -> vec3<{AbstractFloat}>, | |
| (vec4<{AbstractFloat}>, vec4<{AbstractFloat}>, vec4<{AbstractFloat}>) -> vec4<{AbstractFloat}>, | |
| (vec4<{AbstractFloat}>, vec4<{AbstractFloat}>, {AbstractFloat}) -> vec4<{AbstractFloat}>, | |
| (f32, f32, f32) -> f32, | |
| (f32, f32, f32) -> f32, | |
| (vec2<f32>, vec2<f32>, vec2<f32>) -> vec2<f32>, | |
| (vec2<f32>, vec2<f32>, f32) -> vec2<f32>, | |
| (vec3<f32>, vec3<f32>, vec3<f32>) -> vec3<f32>, | |
| (vec3<f32>, vec3<f32>, f32) -> vec3<f32>, | |
| (vec4<f32>, vec4<f32>, vec4<f32>) -> vec4<f32>, | |
| (vec4<f32>, vec4<f32>, f32) -> vec4<f32>, | |
| (f16, f16, f16) -> f16, | |
| (f16, f16, f16) -> f16, | |
| (vec2<f16>, vec2<f16>, vec2<f16>) -> vec2<f16>, | |
| (vec2<f16>, vec2<f16>, f16) -> vec2<f16>, | |
| (vec3<f16>, vec3<f16>, vec3<f16>) -> vec3<f16>, | |
| (vec3<f16>, vec3<f16>, f16) -> vec3<f16>, | |
| (vec4<f16>, vec4<f16>, vec4<f16>) -> vec4<f16>, | |
| (vec4<f16>, vec4<f16>, f16) -> vec4<f16>, | |
| (f64, f64, f64) -> f64, | |
| (f64, f64, f64) -> f64, | |
| (vec2<f64>, vec2<f64>, vec2<f64>) -> vec2<f64>, | |
| (vec2<f64>, vec2<f64>, f64) -> vec2<f64>, | |
| (vec3<f64>, vec3<f64>, vec3<f64>) -> vec3<f64>, | |
| (vec3<f64>, vec3<f64>, f64) -> vec3<f64>, | |
| (vec4<f64>, vec4<f64>, vec4<f64>) -> vec4<f64>, | |
| (vec4<f64>, vec4<f64>, f64) -> vec4<f64>, | |
| ] | |
| DEBUG arg 0 of type vec4<f32> | |
| DEBUG considering rule ({AbstractFloat}, {AbstractFloat}, {AbstractFloat}) -> {AbstractFloat} | |
| DEBUG no conversion possible | |
| DEBUG considering rule ({AbstractFloat}, {AbstractFloat}, {AbstractFloat}) -> {AbstractFloat} | |
| DEBUG no conversion possible | |
| DEBUG considering rule (vec2<{AbstractFloat}>, vec2<{AbstractFloat}>, vec2<{AbstractFloat}>) -> vec2<{AbstractFloat}> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (vec2<{AbstractFloat}>, vec2<{AbstractFloat}>, {AbstractFloat}) -> vec2<{AbstractFloat}> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (vec3<{AbstractFloat}>, vec3<{AbstractFloat}>, vec3<{AbstractFloat}>) -> vec3<{AbstractFloat}> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (vec3<{AbstractFloat}>, vec3<{AbstractFloat}>, {AbstractFloat}) -> vec3<{AbstractFloat}> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (vec4<{AbstractFloat}>, vec4<{AbstractFloat}>, vec4<{AbstractFloat}>) -> vec4<{AbstractFloat}> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (vec4<{AbstractFloat}>, vec4<{AbstractFloat}>, {AbstractFloat}) -> vec4<{AbstractFloat}> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (f32, f32, f32) -> f32 | |
| DEBUG no conversion possible | |
| DEBUG considering rule (f32, f32, f32) -> f32 | |
| DEBUG no conversion possible | |
| DEBUG considering rule (vec2<f32>, vec2<f32>, vec2<f32>) -> vec2<f32> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (vec2<f32>, vec2<f32>, f32) -> vec2<f32> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (vec3<f32>, vec3<f32>, vec3<f32>) -> vec3<f32> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (vec3<f32>, vec3<f32>, f32) -> vec3<f32> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (vec4<f32>, vec4<f32>, vec4<f32>) -> vec4<f32> | |
| DEBUG types are equivalent | |
| DEBUG considering rule (vec4<f32>, vec4<f32>, f32) -> vec4<f32> | |
| DEBUG types are equivalent | |
| DEBUG considering rule (f16, f16, f16) -> f16 | |
| DEBUG no conversion possible | |
| DEBUG considering rule (f16, f16, f16) -> f16 | |
| DEBUG no conversion possible | |
| DEBUG considering rule (vec2<f16>, vec2<f16>, vec2<f16>) -> vec2<f16> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (vec2<f16>, vec2<f16>, f16) -> vec2<f16> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (vec3<f16>, vec3<f16>, vec3<f16>) -> vec3<f16> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (vec3<f16>, vec3<f16>, f16) -> vec3<f16> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (vec4<f16>, vec4<f16>, vec4<f16>) -> vec4<f16> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (vec4<f16>, vec4<f16>, f16) -> vec4<f16> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (f64, f64, f64) -> f64 | |
| DEBUG no conversion possible | |
| DEBUG considering rule (f64, f64, f64) -> f64 | |
| DEBUG no conversion possible | |
| DEBUG considering rule (vec2<f64>, vec2<f64>, vec2<f64>) -> vec2<f64> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (vec2<f64>, vec2<f64>, f64) -> vec2<f64> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (vec3<f64>, vec3<f64>, vec3<f64>) -> vec3<f64> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (vec3<f64>, vec3<f64>, f64) -> vec3<f64> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (vec4<f64>, vec4<f64>, vec4<f64>) -> vec4<f64> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (vec4<f64>, vec4<f64>, f64) -> vec4<f64> | |
| DEBUG no conversion possible | |
| DEBUG overloads after arg 0 of type vec4<f32>: [ | |
| (vec4<f32>, vec4<f32>, vec4<f32>) -> vec4<f32>, | |
| (vec4<f32>, vec4<f32>, f32) -> vec4<f32>, | |
| ] | |
| DEBUG arg 1 of type vec4<f32> | |
| DEBUG considering rule (vec4<f32>, vec4<f32>, vec4<f32>) -> vec4<f32> | |
| DEBUG types are equivalent | |
| DEBUG considering rule (vec4<f32>, vec4<f32>, f32) -> vec4<f32> | |
| DEBUG types are equivalent | |
| DEBUG overloads after arg 1 of type vec4<f32>: [ | |
| (vec4<f32>, vec4<f32>, vec4<f32>) -> vec4<f32>, | |
| (vec4<f32>, vec4<f32>, f32) -> vec4<f32>, | |
| ] | |
| DEBUG Resolving [110] = Math { fun: Mix, arg: [4], arg1: Some([5]), arg2: Some([109]), arg3: None } : Value(Vector { size: Quad, scalar: Scalar { kind: Float, width: 4 } }) | |
| DEBUG Resolving [111] = CallResult([19]) : Handle([2]) | |
| DEBUG Resolving [112] = AccessIndex { base: [0], index: 3 } : Handle([0]) | |
| DEBUG Resolving [113] = Literal(F32(65535.0)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG wgsl automatic_conversion_consensus: f32, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [114] = Binary { op: Divide, left: [112], right: [113] } : Handle([0]) | |
| DEBUG Resolving [115] = Literal(F32(255.0)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG wgsl automatic_conversion_consensus: f32, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [116] = Binary { op: Divide, left: [114], right: [115] } : Handle([0]) | |
| DEBUG Resolving [117] = Literal(F32(65535.0)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG wgsl automatic_conversion_consensus: f32, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [118] = Binary { op: Modulo, left: [112], right: [117] } : Handle([0]) | |
| DEBUG Resolving [119] = Literal(F32(255.0)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG wgsl automatic_conversion_consensus: f32, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [120] = Binary { op: Divide, left: [118], right: [119] } : Handle([0]) | |
| DEBUG wgsl automatic_conversion_consensus: f32, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [121] = Binary { op: Add, left: [116], right: [120] } : Handle([0]) | |
| DEBUG Resolving [122] = Constant([0]) : Handle([0]) | |
| DEBUG Resolving [123] = Literal(AbstractFloat(4.0)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG wgsl automatic_conversion_consensus: f32, {AbstractFloat} | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [124] = Literal(F32(4.0)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [125] = Literal(F32(3.1415925)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [126] = Literal(F32(0.7853981)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Initial overloads: List { | |
| rules: [ | |
| ({AbstractFloat}) -> {AbstractFloat}, | |
| (f32) -> f32, | |
| (f16) -> f16, | |
| (f64) -> f64, | |
| (vec2<{AbstractFloat}>) -> vec2<{AbstractFloat}>, | |
| (vec2<f32>) -> vec2<f32>, | |
| (vec2<f16>) -> vec2<f16>, | |
| (vec2<f64>) -> vec2<f64>, | |
| (vec3<{AbstractFloat}>) -> vec3<{AbstractFloat}>, | |
| (vec3<f32>) -> vec3<f32>, | |
| (vec3<f16>) -> vec3<f16>, | |
| (vec3<f64>) -> vec3<f64>, | |
| (vec4<{AbstractFloat}>) -> vec4<{AbstractFloat}>, | |
| (vec4<f32>) -> vec4<f32>, | |
| (vec4<f16>) -> vec4<f16>, | |
| (vec4<f64>) -> vec4<f64>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG Supplying argument 0 of type f32 | |
| DEBUG Remaining overloads: List { | |
| rules: [ | |
| (f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG initial overloads for Sin, List { | |
| rules: [ | |
| ({AbstractFloat}) -> {AbstractFloat}, | |
| (f32) -> f32, | |
| (f16) -> f16, | |
| (f64) -> f64, | |
| (vec2<{AbstractFloat}>) -> vec2<{AbstractFloat}>, | |
| (vec2<f32>) -> vec2<f32>, | |
| (vec2<f16>) -> vec2<f16>, | |
| (vec2<f64>) -> vec2<f64>, | |
| (vec3<{AbstractFloat}>) -> vec3<{AbstractFloat}>, | |
| (vec3<f32>) -> vec3<f32>, | |
| (vec3<f16>) -> vec3<f16>, | |
| (vec3<f64>) -> vec3<f64>, | |
| (vec4<{AbstractFloat}>) -> vec4<{AbstractFloat}>, | |
| (vec4<f32>) -> vec4<f32>, | |
| (vec4<f16>) -> vec4<f16>, | |
| (vec4<f64>) -> vec4<f64>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG overloads after arg 0 of type f32: List { | |
| rules: [ | |
| (f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG Resolving [127] = Math { fun: Sin, arg: [126], arg1: None, arg2: None, arg3: None } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG wgsl automatic_conversion_consensus: f32, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [128] = Binary { op: Multiply, left: [121], right: [127] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Initial overloads: List { | |
| rules: [ | |
| ({AbstractFloat}) -> {AbstractFloat}, | |
| (f32) -> f32, | |
| (f16) -> f16, | |
| (f64) -> f64, | |
| (vec2<{AbstractFloat}>) -> vec2<{AbstractFloat}>, | |
| (vec2<f32>) -> vec2<f32>, | |
| (vec2<f16>) -> vec2<f16>, | |
| (vec2<f64>) -> vec2<f64>, | |
| (vec3<{AbstractFloat}>) -> vec3<{AbstractFloat}>, | |
| (vec3<f32>) -> vec3<f32>, | |
| (vec3<f16>) -> vec3<f16>, | |
| (vec3<f64>) -> vec3<f64>, | |
| (vec4<{AbstractFloat}>) -> vec4<{AbstractFloat}>, | |
| (vec4<f32>) -> vec4<f32>, | |
| (vec4<f16>) -> vec4<f16>, | |
| (vec4<f64>) -> vec4<f64>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG Supplying argument 0 of type f32 | |
| DEBUG Remaining overloads: List { | |
| rules: [ | |
| (f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG Initial overloads: List { | |
| rules: [ | |
| ({AbstractFloat}) -> {AbstractFloat}, | |
| (f32) -> f32, | |
| (f16) -> f16, | |
| (f64) -> f64, | |
| (vec2<{AbstractFloat}>) -> vec2<{AbstractFloat}>, | |
| (vec2<f32>) -> vec2<f32>, | |
| (vec2<f16>) -> vec2<f16>, | |
| (vec2<f64>) -> vec2<f64>, | |
| (vec3<{AbstractFloat}>) -> vec3<{AbstractFloat}>, | |
| (vec3<f32>) -> vec3<f32>, | |
| (vec3<f16>) -> vec3<f16>, | |
| (vec3<f64>) -> vec3<f64>, | |
| (vec4<{AbstractFloat}>) -> vec4<{AbstractFloat}>, | |
| (vec4<f32>) -> vec4<f32>, | |
| (vec4<f16>) -> vec4<f16>, | |
| (vec4<f64>) -> vec4<f64>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG Supplying argument 0 of type f32 | |
| DEBUG Remaining overloads: List { | |
| rules: [ | |
| (f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG Initial overloads: List { | |
| rules: [ | |
| ({AbstractFloat}) -> {AbstractFloat}, | |
| (f32) -> f32, | |
| (f16) -> f16, | |
| (f64) -> f64, | |
| (vec2<{AbstractFloat}>) -> vec2<{AbstractFloat}>, | |
| (vec2<f32>) -> vec2<f32>, | |
| (vec2<f16>) -> vec2<f16>, | |
| (vec2<f64>) -> vec2<f64>, | |
| (vec3<{AbstractFloat}>) -> vec3<{AbstractFloat}>, | |
| (vec3<f32>) -> vec3<f32>, | |
| (vec3<f16>) -> vec3<f16>, | |
| (vec3<f64>) -> vec3<f64>, | |
| (vec4<{AbstractFloat}>) -> vec4<{AbstractFloat}>, | |
| (vec4<f32>) -> vec4<f32>, | |
| (vec4<f16>) -> vec4<f16>, | |
| (vec4<f64>) -> vec4<f64>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG Supplying argument 0 of type f32 | |
| DEBUG Remaining overloads: List { | |
| rules: [ | |
| (f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG Initial overloads: List { | |
| rules: [ | |
| ({AbstractFloat}) -> {AbstractFloat}, | |
| (f32) -> f32, | |
| (f16) -> f16, | |
| (f64) -> f64, | |
| (vec2<{AbstractFloat}>) -> vec2<{AbstractFloat}>, | |
| (vec2<f32>) -> vec2<f32>, | |
| (vec2<f16>) -> vec2<f16>, | |
| (vec2<f64>) -> vec2<f64>, | |
| (vec3<{AbstractFloat}>) -> vec3<{AbstractFloat}>, | |
| (vec3<f32>) -> vec3<f32>, | |
| (vec3<f16>) -> vec3<f16>, | |
| (vec3<f64>) -> vec3<f64>, | |
| (vec4<{AbstractFloat}>) -> vec4<{AbstractFloat}>, | |
| (vec4<f32>) -> vec4<f32>, | |
| (vec4<f16>) -> vec4<f16>, | |
| (vec4<f64>) -> vec4<f64>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG Supplying argument 0 of type f32 | |
| DEBUG Remaining overloads: List { | |
| rules: [ | |
| (f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG initial overloads for Cos, List { | |
| rules: [ | |
| ({AbstractFloat}) -> {AbstractFloat}, | |
| (f32) -> f32, | |
| (f16) -> f16, | |
| (f64) -> f64, | |
| (vec2<{AbstractFloat}>) -> vec2<{AbstractFloat}>, | |
| (vec2<f32>) -> vec2<f32>, | |
| (vec2<f16>) -> vec2<f16>, | |
| (vec2<f64>) -> vec2<f64>, | |
| (vec3<{AbstractFloat}>) -> vec3<{AbstractFloat}>, | |
| (vec3<f32>) -> vec3<f32>, | |
| (vec3<f16>) -> vec3<f16>, | |
| (vec3<f64>) -> vec3<f64>, | |
| (vec4<{AbstractFloat}>) -> vec4<{AbstractFloat}>, | |
| (vec4<f32>) -> vec4<f32>, | |
| (vec4<f16>) -> vec4<f16>, | |
| (vec4<f64>) -> vec4<f64>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG overloads after arg 0 of type f32: List { | |
| rules: [ | |
| (f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG Resolving [129] = Math { fun: Cos, arg: [126], arg1: None, arg2: None, arg3: None } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG initial overloads for Sin, List { | |
| rules: [ | |
| ({AbstractFloat}) -> {AbstractFloat}, | |
| (f32) -> f32, | |
| (f16) -> f16, | |
| (f64) -> f64, | |
| (vec2<{AbstractFloat}>) -> vec2<{AbstractFloat}>, | |
| (vec2<f32>) -> vec2<f32>, | |
| (vec2<f16>) -> vec2<f16>, | |
| (vec2<f64>) -> vec2<f64>, | |
| (vec3<{AbstractFloat}>) -> vec3<{AbstractFloat}>, | |
| (vec3<f32>) -> vec3<f32>, | |
| (vec3<f16>) -> vec3<f16>, | |
| (vec3<f64>) -> vec3<f64>, | |
| (vec4<{AbstractFloat}>) -> vec4<{AbstractFloat}>, | |
| (vec4<f32>) -> vec4<f32>, | |
| (vec4<f16>) -> vec4<f16>, | |
| (vec4<f64>) -> vec4<f64>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG overloads after arg 0 of type f32: List { | |
| rules: [ | |
| (f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG Resolving [130] = Math { fun: Sin, arg: [126], arg1: None, arg2: None, arg3: None } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [131] = Unary { op: Negate, expr: [130] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG initial overloads for Sin, List { | |
| rules: [ | |
| ({AbstractFloat}) -> {AbstractFloat}, | |
| (f32) -> f32, | |
| (f16) -> f16, | |
| (f64) -> f64, | |
| (vec2<{AbstractFloat}>) -> vec2<{AbstractFloat}>, | |
| (vec2<f32>) -> vec2<f32>, | |
| (vec2<f16>) -> vec2<f16>, | |
| (vec2<f64>) -> vec2<f64>, | |
| (vec3<{AbstractFloat}>) -> vec3<{AbstractFloat}>, | |
| (vec3<f32>) -> vec3<f32>, | |
| (vec3<f16>) -> vec3<f16>, | |
| (vec3<f64>) -> vec3<f64>, | |
| (vec4<{AbstractFloat}>) -> vec4<{AbstractFloat}>, | |
| (vec4<f32>) -> vec4<f32>, | |
| (vec4<f16>) -> vec4<f16>, | |
| (vec4<f64>) -> vec4<f64>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG overloads after arg 0 of type f32: List { | |
| rules: [ | |
| (f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG Resolving [132] = Math { fun: Sin, arg: [126], arg1: None, arg2: None, arg3: None } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG initial overloads for Cos, List { | |
| rules: [ | |
| ({AbstractFloat}) -> {AbstractFloat}, | |
| (f32) -> f32, | |
| (f16) -> f16, | |
| (f64) -> f64, | |
| (vec2<{AbstractFloat}>) -> vec2<{AbstractFloat}>, | |
| (vec2<f32>) -> vec2<f32>, | |
| (vec2<f16>) -> vec2<f16>, | |
| (vec2<f64>) -> vec2<f64>, | |
| (vec3<{AbstractFloat}>) -> vec3<{AbstractFloat}>, | |
| (vec3<f32>) -> vec3<f32>, | |
| (vec3<f16>) -> vec3<f16>, | |
| (vec3<f64>) -> vec3<f64>, | |
| (vec4<{AbstractFloat}>) -> vec4<{AbstractFloat}>, | |
| (vec4<f32>) -> vec4<f32>, | |
| (vec4<f16>) -> vec4<f16>, | |
| (vec4<f64>) -> vec4<f64>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG overloads after arg 0 of type f32: List { | |
| rules: [ | |
| (f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG Resolving [133] = Math { fun: Cos, arg: [126], arg1: None, arg2: None, arg3: None } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [134] = Compose { ty: [3], components: [[129], [131]] } : Handle([3]) | |
| DEBUG Resolving [135] = Compose { ty: [3], components: [[132], [133]] } : Handle([3]) | |
| DEBUG Resolving [136] = Compose { ty: [20], components: [[134], [135]] } : Handle([20]) | |
| DEBUG Resolving [137] = AccessIndex { base: [2], index: 0 } : Handle([3]) | |
| DEBUG wgsl automatic_conversion_consensus: vec2<f32>, vec2<f32> | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [138] = Binary { op: Subtract, left: [1], right: [137] } : Handle([3]) | |
| DEBUG wgsl automatic_conversion_consensus: mat2x2<f32>, vec2<f32> | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [139] = Binary { op: Multiply, left: [136], right: [138] } : Value(Vector { size: Bi, scalar: Scalar { kind: Float, width: 4 } }) | |
| DEBUG Resolving [140] = AccessIndex { base: [139], index: 0 } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG wgsl automatic_conversion_consensus: f32, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [141] = Binary { op: Modulo, left: [140], right: [128] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG wgsl automatic_conversion_consensus: f32, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [142] = Binary { op: Subtract, left: [128], right: [141] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Initial overloads: List { | |
| rules: [ | |
| ({AbstractInt}, {AbstractInt}) -> {AbstractInt}, | |
| ({AbstractFloat}, {AbstractFloat}) -> {AbstractFloat}, | |
| (i32, i32) -> i32, | |
| (i64, i64) -> i64, | |
| (u32, u32) -> u32, | |
| (u64, u64) -> u64, | |
| (f32, f32) -> f32, | |
| (f16, f16) -> f16, | |
| (f64, f64) -> f64, | |
| (vec2<{AbstractInt}>, vec2<{AbstractInt}>) -> vec2<{AbstractInt}>, | |
| (vec2<{AbstractFloat}>, vec2<{AbstractFloat}>) -> vec2<{AbstractFloat}>, | |
| (vec2<i32>, vec2<i32>) -> vec2<i32>, | |
| (vec2<i64>, vec2<i64>) -> vec2<i64>, | |
| (vec2<u32>, vec2<u32>) -> vec2<u32>, | |
| (vec2<u64>, vec2<u64>) -> vec2<u64>, | |
| (vec2<f32>, vec2<f32>) -> vec2<f32>, | |
| (vec2<f16>, vec2<f16>) -> vec2<f16>, | |
| (vec2<f64>, vec2<f64>) -> vec2<f64>, | |
| (vec3<{AbstractInt}>, vec3<{AbstractInt}>) -> vec3<{AbstractInt}>, | |
| (vec3<{AbstractFloat}>, vec3<{AbstractFloat}>) -> vec3<{AbstractFloat}>, | |
| (vec3<i32>, vec3<i32>) -> vec3<i32>, | |
| (vec3<i64>, vec3<i64>) -> vec3<i64>, | |
| (vec3<u32>, vec3<u32>) -> vec3<u32>, | |
| (vec3<u64>, vec3<u64>) -> vec3<u64>, | |
| (vec3<f32>, vec3<f32>) -> vec3<f32>, | |
| (vec3<f16>, vec3<f16>) -> vec3<f16>, | |
| (vec3<f64>, vec3<f64>) -> vec3<f64>, | |
| (vec4<{AbstractInt}>, vec4<{AbstractInt}>) -> vec4<{AbstractInt}>, | |
| (vec4<{AbstractFloat}>, vec4<{AbstractFloat}>) -> vec4<{AbstractFloat}>, | |
| (vec4<i32>, vec4<i32>) -> vec4<i32>, | |
| (vec4<i64>, vec4<i64>) -> vec4<i64>, | |
| (vec4<u32>, vec4<u32>) -> vec4<u32>, | |
| (vec4<u64>, vec4<u64>) -> vec4<u64>, | |
| (vec4<f32>, vec4<f32>) -> vec4<f32>, | |
| (vec4<f16>, vec4<f16>) -> vec4<f16>, | |
| (vec4<f64>, vec4<f64>) -> vec4<f64>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG Supplying argument 0 of type f32 | |
| DEBUG Remaining overloads: List { | |
| rules: [ | |
| (f32, f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG Supplying argument 1 of type f32 | |
| DEBUG Remaining overloads: List { | |
| rules: [ | |
| (f32, f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG wgsl automatic_conversion_consensus: f32, f32 | |
| DEBUG consensus: f32 | |
| DEBUG initial overloads for Min, List { | |
| rules: [ | |
| ({AbstractInt}, {AbstractInt}) -> {AbstractInt}, | |
| ({AbstractFloat}, {AbstractFloat}) -> {AbstractFloat}, | |
| (i32, i32) -> i32, | |
| (i64, i64) -> i64, | |
| (u32, u32) -> u32, | |
| (u64, u64) -> u64, | |
| (f32, f32) -> f32, | |
| (f16, f16) -> f16, | |
| (f64, f64) -> f64, | |
| (vec2<{AbstractInt}>, vec2<{AbstractInt}>) -> vec2<{AbstractInt}>, | |
| (vec2<{AbstractFloat}>, vec2<{AbstractFloat}>) -> vec2<{AbstractFloat}>, | |
| (vec2<i32>, vec2<i32>) -> vec2<i32>, | |
| (vec2<i64>, vec2<i64>) -> vec2<i64>, | |
| (vec2<u32>, vec2<u32>) -> vec2<u32>, | |
| (vec2<u64>, vec2<u64>) -> vec2<u64>, | |
| (vec2<f32>, vec2<f32>) -> vec2<f32>, | |
| (vec2<f16>, vec2<f16>) -> vec2<f16>, | |
| (vec2<f64>, vec2<f64>) -> vec2<f64>, | |
| (vec3<{AbstractInt}>, vec3<{AbstractInt}>) -> vec3<{AbstractInt}>, | |
| (vec3<{AbstractFloat}>, vec3<{AbstractFloat}>) -> vec3<{AbstractFloat}>, | |
| (vec3<i32>, vec3<i32>) -> vec3<i32>, | |
| (vec3<i64>, vec3<i64>) -> vec3<i64>, | |
| (vec3<u32>, vec3<u32>) -> vec3<u32>, | |
| (vec3<u64>, vec3<u64>) -> vec3<u64>, | |
| (vec3<f32>, vec3<f32>) -> vec3<f32>, | |
| (vec3<f16>, vec3<f16>) -> vec3<f16>, | |
| (vec3<f64>, vec3<f64>) -> vec3<f64>, | |
| (vec4<{AbstractInt}>, vec4<{AbstractInt}>) -> vec4<{AbstractInt}>, | |
| (vec4<{AbstractFloat}>, vec4<{AbstractFloat}>) -> vec4<{AbstractFloat}>, | |
| (vec4<i32>, vec4<i32>) -> vec4<i32>, | |
| (vec4<i64>, vec4<i64>) -> vec4<i64>, | |
| (vec4<u32>, vec4<u32>) -> vec4<u32>, | |
| (vec4<u64>, vec4<u64>) -> vec4<u64>, | |
| (vec4<f32>, vec4<f32>) -> vec4<f32>, | |
| (vec4<f16>, vec4<f16>) -> vec4<f16>, | |
| (vec4<f64>, vec4<f64>) -> vec4<f64>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG overloads after arg 0 of type f32: List { | |
| rules: [ | |
| (f32, f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG overloads after arg 1 of type f32: List { | |
| rules: [ | |
| (f32, f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG Resolving [143] = Math { fun: Min, arg: [141], arg1: Some([142]), arg2: None, arg3: None } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [144] = Binary { op: Divide, left: [116], right: [121] } : Handle([0]) | |
| DEBUG wgsl automatic_conversion_consensus: f32, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [145] = Binary { op: Multiply, left: [128], right: [144] } : Handle([0]) | |
| DEBUG Resolving [146] = Literal(F32(2.0)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG wgsl automatic_conversion_consensus: f32, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [147] = Binary { op: Divide, left: [145], right: [146] } : Handle([0]) | |
| DEBUG wgsl automatic_conversion_consensus: f32, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [148] = Binary { op: Subtract, left: [143], right: [147] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [149] = AccessIndex { base: [9], index: 3 } : Value(ValuePointer { size: None, scalar: Scalar { kind: Float, width: 4 }, space: Function }) | |
| DEBUG Resolving [150] = Literal(AbstractFloat(0.5)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG wgsl automatic_conversion_consensus: {AbstractFloat}, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [151] = Literal(F32(0.5)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [152] = Binary { op: Subtract, left: [151], right: [148] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Initial overloads: List { | |
| rules: [ | |
| ({AbstractFloat}) -> {AbstractFloat}, | |
| (f32) -> f32, | |
| (f16) -> f16, | |
| (f64) -> f64, | |
| (vec2<{AbstractFloat}>) -> vec2<{AbstractFloat}>, | |
| (vec2<f32>) -> vec2<f32>, | |
| (vec2<f16>) -> vec2<f16>, | |
| (vec2<f64>) -> vec2<f64>, | |
| (vec3<{AbstractFloat}>) -> vec3<{AbstractFloat}>, | |
| (vec3<f32>) -> vec3<f32>, | |
| (vec3<f16>) -> vec3<f16>, | |
| (vec3<f64>) -> vec3<f64>, | |
| (vec4<{AbstractFloat}>) -> vec4<{AbstractFloat}>, | |
| (vec4<f32>) -> vec4<f32>, | |
| (vec4<f16>) -> vec4<f16>, | |
| (vec4<f64>) -> vec4<f64>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG Supplying argument 0 of type f32 | |
| DEBUG Remaining overloads: List { | |
| rules: [ | |
| (f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG initial overloads for Saturate, List { | |
| rules: [ | |
| ({AbstractFloat}) -> {AbstractFloat}, | |
| (f32) -> f32, | |
| (f16) -> f16, | |
| (f64) -> f64, | |
| (vec2<{AbstractFloat}>) -> vec2<{AbstractFloat}>, | |
| (vec2<f32>) -> vec2<f32>, | |
| (vec2<f16>) -> vec2<f16>, | |
| (vec2<f64>) -> vec2<f64>, | |
| (vec3<{AbstractFloat}>) -> vec3<{AbstractFloat}>, | |
| (vec3<f32>) -> vec3<f32>, | |
| (vec3<f16>) -> vec3<f16>, | |
| (vec3<f64>) -> vec3<f64>, | |
| (vec4<{AbstractFloat}>) -> vec4<{AbstractFloat}>, | |
| (vec4<f32>) -> vec4<f32>, | |
| (vec4<f16>) -> vec4<f16>, | |
| (vec4<f64>) -> vec4<f64>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG overloads after arg 0 of type f32: List { | |
| rules: [ | |
| (f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG Resolving [153] = Math { fun: Saturate, arg: [152], arg1: None, arg2: None, arg3: None } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [154] = Load { pointer: [149] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [155] = Binary { op: Multiply, left: [154], right: [153] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [156] = Load { pointer: [9] } : Handle([2]) | |
| DEBUG Resolving [12] = Literal(I32(2)) : Value(Scalar(Scalar { kind: Sint, width: 4 })) | |
| DEBUG Resolving [13] = Literal(AbstractInt(0)) : Value(Scalar(Scalar { kind: AbstractInt, width: 8 })) | |
| DEBUG Resolving [14] = Literal(I32(0)) : Value(Scalar(Scalar { kind: Sint, width: 4 })) | |
| DEBUG Resolving [15] = Literal(AbstractInt(1)) : Value(Scalar(Scalar { kind: AbstractInt, width: 8 })) | |
| DEBUG Resolving [16] = Literal(I32(1)) : Value(Scalar(Scalar { kind: Sint, width: 4 })) | |
| DEBUG Resolving [17] = Literal(AbstractInt(2)) : Value(Scalar(Scalar { kind: AbstractInt, width: 8 })) | |
| DEBUG Resolving [18] = Literal(I32(2)) : Value(Scalar(Scalar { kind: Sint, width: 4 })) | |
| DEBUG Resolving [19] = Literal(AbstractInt(3)) : Value(Scalar(Scalar { kind: AbstractInt, width: 8 })) | |
| DEBUG Resolving [20] = Literal(I32(3)) : Value(Scalar(Scalar { kind: Sint, width: 4 })) | |
| DEBUG Resolving [21] = Literal(AbstractInt(4)) : Value(Scalar(Scalar { kind: AbstractInt, width: 8 })) | |
| DEBUG Resolving [22] = Literal(I32(4)) : Value(Scalar(Scalar { kind: Sint, width: 4 })) | |
| DEBUG Resolving [23] = Literal(AbstractInt(5)) : Value(Scalar(Scalar { kind: AbstractInt, width: 8 })) | |
| DEBUG Resolving [0] = FunctionArgument(0) : Handle([4]) | |
| DEBUG Resolving [1] = FunctionArgument(1) : Handle([4]) | |
| DEBUG Resolving [2] = Literal(U32(1)) : Value(Scalar(Scalar { kind: Uint, width: 4 })) | |
| DEBUG wgsl automatic_conversion_consensus: u32, u32 | |
| DEBUG consensus: u32 | |
| DEBUG Resolving [3] = Binary { op: And, left: [0], right: [2] } : Handle([4]) | |
| DEBUG Resolving [4] = As { expr: [3], kind: Float, convert: Some(4) } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [5] = Literal(AbstractFloat(0.5)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG Resolving [6] = Literal(U32(2)) : Value(Scalar(Scalar { kind: Uint, width: 4 })) | |
| DEBUG wgsl automatic_conversion_consensus: u32, u32 | |
| DEBUG consensus: u32 | |
| DEBUG Resolving [7] = Binary { op: And, left: [0], right: [6] } : Handle([4]) | |
| DEBUG Resolving [8] = As { expr: [7], kind: Float, convert: Some(4) } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG wgsl automatic_conversion_consensus: {AbstractFloat}, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [9] = Literal(F32(0.5)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [10] = Binary { op: Multiply, left: [9], right: [8] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [11] = Compose { ty: [3], components: [[4], [10]] } : Handle([3]) | |
| DEBUG Resolving [12] = GlobalVariable([5]) : Value(Pointer { base: [26], space: Storage { access: StorageAccess(LOAD) } }) | |
| DEBUG Resolving [13] = Access { base: [12], index: [1] } : Value(Pointer { base: [25], space: Storage { access: StorageAccess(LOAD) } }) | |
| DEBUG Resolving [14] = Load { pointer: [13] } : Handle([25]) | |
| DEBUG Resolving [15] = ZeroValue([27]) : Handle([27]) | |
| DEBUG Resolving [16] = LocalVariable([0]) : Value(Pointer { base: [27], space: Function }) | |
| DEBUG Resolving [17] = AccessIndex { base: [16], index: 0 } : Value(Pointer { base: [2], space: Function }) | |
| DEBUG Resolving [18] = AccessIndex { base: [14], index: 2 } : Handle([8]) | |
| DEBUG Resolving [19] = CallResult([6]) : Handle([2]) | |
| DEBUG Resolving [20] = AccessIndex { base: [14], index: 4 } : Handle([14]) | |
| DEBUG Resolving [21] = AccessIndex { base: [20], index: 0 } : Handle([4]) | |
| DEBUG Resolving [22] = AccessIndex { base: [14], index: 4 } : Handle([14]) | |
| DEBUG Resolving [23] = AccessIndex { base: [22], index: 1 } : Handle([4]) | |
| DEBUG Resolving [24] = AccessIndex { base: [14], index: 4 } : Handle([14]) | |
| DEBUG Resolving [25] = AccessIndex { base: [24], index: 2 } : Handle([11]) | |
| DEBUG Resolving [26] = AccessIndex { base: [14], index: 4 } : Handle([14]) | |
| DEBUG Resolving [27] = AccessIndex { base: [26], index: 4 } : Handle([13]) | |
| DEBUG Resolving [28] = CallResult([28]) : Handle([24]) | |
| DEBUG Resolving [29] = AccessIndex { base: [16], index: 4 } : Value(Pointer { base: [2], space: Function }) | |
| DEBUG Resolving [30] = AccessIndex { base: [28], index: 0 } : Handle([2]) | |
| DEBUG Resolving [31] = AccessIndex { base: [16], index: 5 } : Value(Pointer { base: [2], space: Function }) | |
| DEBUG Resolving [32] = AccessIndex { base: [28], index: 1 } : Handle([2]) | |
| DEBUG Resolving [33] = AccessIndex { base: [16], index: 6 } : Value(Pointer { base: [2], space: Function }) | |
| DEBUG Resolving [34] = AccessIndex { base: [28], index: 2 } : Handle([2]) | |
| DEBUG Resolving [35] = AccessIndex { base: [16], index: 1 } : Value(Pointer { base: [2], space: Function }) | |
| DEBUG Resolving [36] = AccessIndex { base: [14], index: 5 } : Handle([11]) | |
| DEBUG Resolving [37] = CallResult([17]) : Handle([2]) | |
| DEBUG Resolving [38] = AccessIndex { base: [16], index: 2 } : Value(Pointer { base: [4], space: Function }) | |
| DEBUG Resolving [39] = AccessIndex { base: [16], index: 3 } : Value(Pointer { base: [2], space: Function }) | |
| DEBUG Resolving [40] = AccessIndex { base: [14], index: 2 } : Handle([8]) | |
| DEBUG Resolving [41] = AccessIndex { base: [14], index: 3 } : Handle([8]) | |
| DEBUG Resolving [42] = CallResult([10]) : Handle([2]) | |
| DEBUG Resolving [43] = Load { pointer: [16] } : Handle([27]) | |
| DEBUG Resolving [0] = FunctionArgument(0) : Handle([3]) | |
| DEBUG Resolving [1] = FunctionArgument(1) : Handle([3]) | |
| DEBUG wgsl automatic_conversion_consensus: vec2<f32>, vec2<f32> | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [2] = Binary { op: Divide, left: [0], right: [1] } : Handle([3]) | |
| DEBUG Initial overloads: List { | |
| rules: [ | |
| (f32) -> f32, | |
| (f16) -> f16, | |
| (f64) -> f64, | |
| (vec2<f32>) -> f32, | |
| (vec2<f16>) -> f16, | |
| (vec2<f64>) -> f64, | |
| (vec3<f32>) -> f32, | |
| (vec3<f16>) -> f16, | |
| (vec3<f64>) -> f64, | |
| (vec4<f32>) -> f32, | |
| (vec4<f16>) -> f16, | |
| (vec4<f64>) -> f64, | |
| ], | |
| conclude: Scalar, | |
| } | |
| DEBUG Supplying argument 0 of type vec2<f32> | |
| DEBUG Remaining overloads: List { | |
| rules: [ | |
| (vec2<f32>) -> f32, | |
| ], | |
| conclude: Scalar, | |
| } | |
| DEBUG initial overloads for Length, List { | |
| rules: [ | |
| (f32) -> f32, | |
| (f16) -> f16, | |
| (f64) -> f64, | |
| (vec2<f32>) -> f32, | |
| (vec2<f16>) -> f16, | |
| (vec2<f64>) -> f64, | |
| (vec3<f32>) -> f32, | |
| (vec3<f16>) -> f16, | |
| (vec3<f64>) -> f64, | |
| (vec4<f32>) -> f32, | |
| (vec4<f16>) -> f16, | |
| (vec4<f64>) -> f64, | |
| ], | |
| conclude: Scalar, | |
| } | |
| DEBUG overloads after arg 0 of type vec2<f32>: List { | |
| rules: [ | |
| (vec2<f32>) -> f32, | |
| ], | |
| conclude: Scalar, | |
| } | |
| DEBUG Resolving [3] = Math { fun: Length, arg: [2], arg1: None, arg2: None, arg3: None } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [4] = Literal(AbstractFloat(1.0)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG wgsl automatic_conversion_consensus: f32, {AbstractFloat} | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [5] = Literal(F32(1.0)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [6] = Binary { op: Subtract, left: [3], right: [5] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [7] = AccessIndex { base: [1], index: 0 } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [8] = AccessIndex { base: [1], index: 1 } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG wgsl automatic_conversion_consensus: f32, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [9] = Binary { op: Add, left: [7], right: [8] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG wgsl automatic_conversion_consensus: f32, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [10] = Binary { op: Multiply, left: [6], right: [9] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [11] = Literal(AbstractFloat(0.5)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG Resolving [12] = Literal(AbstractFloat(-0.5)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG wgsl automatic_conversion_consensus: f32, {AbstractFloat} | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [13] = Literal(F32(-0.5)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [14] = Binary { op: Multiply, left: [10], right: [13] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [0] = FunctionArgument(0) : Handle([0]) | |
| DEBUG Resolving [1] = FunctionArgument(1) : Handle([0]) | |
| DEBUG Resolving [2] = Literal(AbstractFloat(0.0)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG wgsl automatic_conversion_consensus: f32, {AbstractFloat} | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [3] = Literal(F32(0.0)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [4] = Binary { op: Equal, left: [0], right: [3] } : Value(Scalar(Scalar { kind: Bool, width: 1 })) | |
| DEBUG Resolving [5] = Literal(AbstractFloat(0.0)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG wgsl automatic_conversion_consensus: f32, {AbstractFloat} | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [6] = Literal(F32(0.0)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [7] = Binary { op: Equal, left: [1], right: [6] } : Value(Scalar(Scalar { kind: Bool, width: 1 })) | |
| DEBUG Initial overloads: List { | |
| rules: [ | |
| ({AbstractInt}, {AbstractInt}) -> {AbstractInt}, | |
| ({AbstractFloat}, {AbstractFloat}) -> {AbstractFloat}, | |
| (i32, i32) -> i32, | |
| (i64, i64) -> i64, | |
| (u32, u32) -> u32, | |
| (u64, u64) -> u64, | |
| (f32, f32) -> f32, | |
| (f16, f16) -> f16, | |
| (f64, f64) -> f64, | |
| (vec2<{AbstractInt}>, vec2<{AbstractInt}>) -> vec2<{AbstractInt}>, | |
| (vec2<{AbstractFloat}>, vec2<{AbstractFloat}>) -> vec2<{AbstractFloat}>, | |
| (vec2<i32>, vec2<i32>) -> vec2<i32>, | |
| (vec2<i64>, vec2<i64>) -> vec2<i64>, | |
| (vec2<u32>, vec2<u32>) -> vec2<u32>, | |
| (vec2<u64>, vec2<u64>) -> vec2<u64>, | |
| (vec2<f32>, vec2<f32>) -> vec2<f32>, | |
| (vec2<f16>, vec2<f16>) -> vec2<f16>, | |
| (vec2<f64>, vec2<f64>) -> vec2<f64>, | |
| (vec3<{AbstractInt}>, vec3<{AbstractInt}>) -> vec3<{AbstractInt}>, | |
| (vec3<{AbstractFloat}>, vec3<{AbstractFloat}>) -> vec3<{AbstractFloat}>, | |
| (vec3<i32>, vec3<i32>) -> vec3<i32>, | |
| (vec3<i64>, vec3<i64>) -> vec3<i64>, | |
| (vec3<u32>, vec3<u32>) -> vec3<u32>, | |
| (vec3<u64>, vec3<u64>) -> vec3<u64>, | |
| (vec3<f32>, vec3<f32>) -> vec3<f32>, | |
| (vec3<f16>, vec3<f16>) -> vec3<f16>, | |
| (vec3<f64>, vec3<f64>) -> vec3<f64>, | |
| (vec4<{AbstractInt}>, vec4<{AbstractInt}>) -> vec4<{AbstractInt}>, | |
| (vec4<{AbstractFloat}>, vec4<{AbstractFloat}>) -> vec4<{AbstractFloat}>, | |
| (vec4<i32>, vec4<i32>) -> vec4<i32>, | |
| (vec4<i64>, vec4<i64>) -> vec4<i64>, | |
| (vec4<u32>, vec4<u32>) -> vec4<u32>, | |
| (vec4<u64>, vec4<u64>) -> vec4<u64>, | |
| (vec4<f32>, vec4<f32>) -> vec4<f32>, | |
| (vec4<f16>, vec4<f16>) -> vec4<f16>, | |
| (vec4<f64>, vec4<f64>) -> vec4<f64>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG Supplying argument 0 of type f32 | |
| DEBUG Remaining overloads: List { | |
| rules: [ | |
| (f32, f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG Supplying argument 1 of type f32 | |
| DEBUG Remaining overloads: List { | |
| rules: [ | |
| (f32, f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG initial overloads for Min, List { | |
| rules: [ | |
| ({AbstractInt}, {AbstractInt}) -> {AbstractInt}, | |
| ({AbstractFloat}, {AbstractFloat}) -> {AbstractFloat}, | |
| (i32, i32) -> i32, | |
| (i64, i64) -> i64, | |
| (u32, u32) -> u32, | |
| (u64, u64) -> u64, | |
| (f32, f32) -> f32, | |
| (f16, f16) -> f16, | |
| (f64, f64) -> f64, | |
| (vec2<{AbstractInt}>, vec2<{AbstractInt}>) -> vec2<{AbstractInt}>, | |
| (vec2<{AbstractFloat}>, vec2<{AbstractFloat}>) -> vec2<{AbstractFloat}>, | |
| (vec2<i32>, vec2<i32>) -> vec2<i32>, | |
| (vec2<i64>, vec2<i64>) -> vec2<i64>, | |
| (vec2<u32>, vec2<u32>) -> vec2<u32>, | |
| (vec2<u64>, vec2<u64>) -> vec2<u64>, | |
| (vec2<f32>, vec2<f32>) -> vec2<f32>, | |
| (vec2<f16>, vec2<f16>) -> vec2<f16>, | |
| (vec2<f64>, vec2<f64>) -> vec2<f64>, | |
| (vec3<{AbstractInt}>, vec3<{AbstractInt}>) -> vec3<{AbstractInt}>, | |
| (vec3<{AbstractFloat}>, vec3<{AbstractFloat}>) -> vec3<{AbstractFloat}>, | |
| (vec3<i32>, vec3<i32>) -> vec3<i32>, | |
| (vec3<i64>, vec3<i64>) -> vec3<i64>, | |
| (vec3<u32>, vec3<u32>) -> vec3<u32>, | |
| (vec3<u64>, vec3<u64>) -> vec3<u64>, | |
| (vec3<f32>, vec3<f32>) -> vec3<f32>, | |
| (vec3<f16>, vec3<f16>) -> vec3<f16>, | |
| (vec3<f64>, vec3<f64>) -> vec3<f64>, | |
| (vec4<{AbstractInt}>, vec4<{AbstractInt}>) -> vec4<{AbstractInt}>, | |
| (vec4<{AbstractFloat}>, vec4<{AbstractFloat}>) -> vec4<{AbstractFloat}>, | |
| (vec4<i32>, vec4<i32>) -> vec4<i32>, | |
| (vec4<i64>, vec4<i64>) -> vec4<i64>, | |
| (vec4<u32>, vec4<u32>) -> vec4<u32>, | |
| (vec4<u64>, vec4<u64>) -> vec4<u64>, | |
| (vec4<f32>, vec4<f32>) -> vec4<f32>, | |
| (vec4<f16>, vec4<f16>) -> vec4<f16>, | |
| (vec4<f64>, vec4<f64>) -> vec4<f64>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG overloads after arg 0 of type f32: List { | |
| rules: [ | |
| (f32, f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG overloads after arg 1 of type f32: List { | |
| rules: [ | |
| (f32, f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG Resolving [8] = Math { fun: Min, arg: [0], arg1: Some([1]), arg2: None, arg3: None } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [0] = FunctionArgument(0) : Handle([0]) | |
| DEBUG Resolving [1] = FunctionArgument(1) : Handle([0]) | |
| DEBUG wgsl automatic_conversion_consensus: f32, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [2] = Binary { op: Divide, left: [0], right: [1] } : Handle([0]) | |
| DEBUG Initial overloads: List { | |
| rules: [ | |
| ({AbstractFloat}) -> {AbstractFloat}, | |
| (f32) -> f32, | |
| (f16) -> f16, | |
| (f64) -> f64, | |
| (vec2<{AbstractFloat}>) -> vec2<{AbstractFloat}>, | |
| (vec2<f32>) -> vec2<f32>, | |
| (vec2<f16>) -> vec2<f16>, | |
| (vec2<f64>) -> vec2<f64>, | |
| (vec3<{AbstractFloat}>) -> vec3<{AbstractFloat}>, | |
| (vec3<f32>) -> vec3<f32>, | |
| (vec3<f16>) -> vec3<f16>, | |
| (vec3<f64>) -> vec3<f64>, | |
| (vec4<{AbstractFloat}>) -> vec4<{AbstractFloat}>, | |
| (vec4<f32>) -> vec4<f32>, | |
| (vec4<f16>) -> vec4<f16>, | |
| (vec4<f64>) -> vec4<f64>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG Supplying argument 0 of type f32 | |
| DEBUG Remaining overloads: List { | |
| rules: [ | |
| (f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG initial overloads for Trunc, List { | |
| rules: [ | |
| ({AbstractFloat}) -> {AbstractFloat}, | |
| (f32) -> f32, | |
| (f16) -> f16, | |
| (f64) -> f64, | |
| (vec2<{AbstractFloat}>) -> vec2<{AbstractFloat}>, | |
| (vec2<f32>) -> vec2<f32>, | |
| (vec2<f16>) -> vec2<f16>, | |
| (vec2<f64>) -> vec2<f64>, | |
| (vec3<{AbstractFloat}>) -> vec3<{AbstractFloat}>, | |
| (vec3<f32>) -> vec3<f32>, | |
| (vec3<f16>) -> vec3<f16>, | |
| (vec3<f64>) -> vec3<f64>, | |
| (vec4<{AbstractFloat}>) -> vec4<{AbstractFloat}>, | |
| (vec4<f32>) -> vec4<f32>, | |
| (vec4<f16>) -> vec4<f16>, | |
| (vec4<f64>) -> vec4<f64>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG overloads after arg 0 of type f32: List { | |
| rules: [ | |
| (f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG Resolving [3] = Math { fun: Trunc, arg: [2], arg1: None, arg2: None, arg3: None } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG wgsl automatic_conversion_consensus: f32, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [4] = Binary { op: Multiply, left: [1], right: [3] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG wgsl automatic_conversion_consensus: f32, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [5] = Binary { op: Subtract, left: [0], right: [4] } : Handle([0]) | |
| DEBUG Resolving [0] = FunctionArgument(0) : Handle([0]) | |
| DEBUG Resolving [1] = FunctionArgument(1) : Handle([0]) | |
| DEBUG Resolving [2] = FunctionArgument(2) : Handle([0]) | |
| DEBUG Resolving [3] = FunctionArgument(3) : Handle([0]) | |
| DEBUG Resolving [4] = FunctionArgument(4) : Handle([0]) | |
| DEBUG Resolving [5] = Literal(AbstractInt(2)) : Value(Scalar(Scalar { kind: AbstractInt, width: 8 })) | |
| DEBUG wgsl automatic_conversion_consensus: f32, {AbstractInt} | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [6] = Literal(F32(2.0)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [7] = Binary { op: Divide, left: [1], right: [6] } : Handle([0]) | |
| DEBUG Resolving [8] = Literal(AbstractInt(2)) : Value(Scalar(Scalar { kind: AbstractInt, width: 8 })) | |
| DEBUG wgsl automatic_conversion_consensus: f32, {AbstractInt} | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [9] = Literal(F32(2.0)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [10] = Binary { op: Divide, left: [2], right: [9] } : Handle([0]) | |
| DEBUG wgsl automatic_conversion_consensus: f32, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [11] = Binary { op: Add, left: [0], right: [7] } : Handle([0]) | |
| DEBUG wgsl automatic_conversion_consensus: f32, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [12] = Binary { op: Subtract, left: [11], right: [10] } : Handle([0]) | |
| DEBUG Resolving [13] = CallResult([32]) : Handle([0]) | |
| DEBUG wgsl automatic_conversion_consensus: f32, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [14] = Binary { op: Subtract, left: [13], right: [7] } : Handle([0]) | |
| DEBUG Initial overloads: List { | |
| rules: [ | |
| ({AbstractInt}) -> {AbstractInt}, | |
| ({AbstractFloat}) -> {AbstractFloat}, | |
| (i32) -> i32, | |
| (i64) -> i64, | |
| (u32) -> u32, | |
| (u64) -> u64, | |
| (f32) -> f32, | |
| (f16) -> f16, | |
| (f64) -> f64, | |
| (vec2<{AbstractInt}>) -> vec2<{AbstractInt}>, | |
| (vec2<{AbstractFloat}>) -> vec2<{AbstractFloat}>, | |
| (vec2<i32>) -> vec2<i32>, | |
| (vec2<i64>) -> vec2<i64>, | |
| (vec2<u32>) -> vec2<u32>, | |
| (vec2<u64>) -> vec2<u64>, | |
| (vec2<f32>) -> vec2<f32>, | |
| (vec2<f16>) -> vec2<f16>, | |
| (vec2<f64>) -> vec2<f64>, | |
| (vec3<{AbstractInt}>) -> vec3<{AbstractInt}>, | |
| (vec3<{AbstractFloat}>) -> vec3<{AbstractFloat}>, | |
| (vec3<i32>) -> vec3<i32>, | |
| (vec3<i64>) -> vec3<i64>, | |
| (vec3<u32>) -> vec3<u32>, | |
| (vec3<u64>) -> vec3<u64>, | |
| (vec3<f32>) -> vec3<f32>, | |
| (vec3<f16>) -> vec3<f16>, | |
| (vec3<f64>) -> vec3<f64>, | |
| (vec4<{AbstractInt}>) -> vec4<{AbstractInt}>, | |
| (vec4<{AbstractFloat}>) -> vec4<{AbstractFloat}>, | |
| (vec4<i32>) -> vec4<i32>, | |
| (vec4<i64>) -> vec4<i64>, | |
| (vec4<u32>) -> vec4<u32>, | |
| (vec4<u64>) -> vec4<u64>, | |
| (vec4<f32>) -> vec4<f32>, | |
| (vec4<f16>) -> vec4<f16>, | |
| (vec4<f64>) -> vec4<f64>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG Supplying argument 0 of type f32 | |
| DEBUG Remaining overloads: List { | |
| rules: [ | |
| (f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG initial overloads for Abs, List { | |
| rules: [ | |
| ({AbstractInt}) -> {AbstractInt}, | |
| ({AbstractFloat}) -> {AbstractFloat}, | |
| (i32) -> i32, | |
| (i64) -> i64, | |
| (u32) -> u32, | |
| (u64) -> u64, | |
| (f32) -> f32, | |
| (f16) -> f16, | |
| (f64) -> f64, | |
| (vec2<{AbstractInt}>) -> vec2<{AbstractInt}>, | |
| (vec2<{AbstractFloat}>) -> vec2<{AbstractFloat}>, | |
| (vec2<i32>) -> vec2<i32>, | |
| (vec2<i64>) -> vec2<i64>, | |
| (vec2<u32>) -> vec2<u32>, | |
| (vec2<u64>) -> vec2<u64>, | |
| (vec2<f32>) -> vec2<f32>, | |
| (vec2<f16>) -> vec2<f16>, | |
| (vec2<f64>) -> vec2<f64>, | |
| (vec3<{AbstractInt}>) -> vec3<{AbstractInt}>, | |
| (vec3<{AbstractFloat}>) -> vec3<{AbstractFloat}>, | |
| (vec3<i32>) -> vec3<i32>, | |
| (vec3<i64>) -> vec3<i64>, | |
| (vec3<u32>) -> vec3<u32>, | |
| (vec3<u64>) -> vec3<u64>, | |
| (vec3<f32>) -> vec3<f32>, | |
| (vec3<f16>) -> vec3<f16>, | |
| (vec3<f64>) -> vec3<f64>, | |
| (vec4<{AbstractInt}>) -> vec4<{AbstractInt}>, | |
| (vec4<{AbstractFloat}>) -> vec4<{AbstractFloat}>, | |
| (vec4<i32>) -> vec4<i32>, | |
| (vec4<i64>) -> vec4<i64>, | |
| (vec4<u32>) -> vec4<u32>, | |
| (vec4<u64>) -> vec4<u64>, | |
| (vec4<f32>) -> vec4<f32>, | |
| (vec4<f16>) -> vec4<f16>, | |
| (vec4<f64>) -> vec4<f64>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG overloads after arg 0 of type f32: List { | |
| rules: [ | |
| (f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG Resolving [15] = Math { fun: Abs, arg: [14], arg1: None, arg2: None, arg3: None } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG wgsl automatic_conversion_consensus: f32, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [16] = Binary { op: Subtract, left: [15], right: [10] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG wgsl automatic_conversion_consensus: f32, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [17] = Binary { op: Divide, left: [16], right: [3] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG wgsl automatic_conversion_consensus: f32, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [18] = Binary { op: Subtract, left: [4], right: [17] } : Handle([0]) | |
| DEBUG Initial overloads: List { | |
| rules: [ | |
| ({AbstractFloat}) -> {AbstractFloat}, | |
| (f32) -> f32, | |
| (f16) -> f16, | |
| (f64) -> f64, | |
| (vec2<{AbstractFloat}>) -> vec2<{AbstractFloat}>, | |
| (vec2<f32>) -> vec2<f32>, | |
| (vec2<f16>) -> vec2<f16>, | |
| (vec2<f64>) -> vec2<f64>, | |
| (vec3<{AbstractFloat}>) -> vec3<{AbstractFloat}>, | |
| (vec3<f32>) -> vec3<f32>, | |
| (vec3<f16>) -> vec3<f16>, | |
| (vec3<f64>) -> vec3<f64>, | |
| (vec4<{AbstractFloat}>) -> vec4<{AbstractFloat}>, | |
| (vec4<f32>) -> vec4<f32>, | |
| (vec4<f16>) -> vec4<f16>, | |
| (vec4<f64>) -> vec4<f64>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG Supplying argument 0 of type f32 | |
| DEBUG Remaining overloads: List { | |
| rules: [ | |
| (f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG initial overloads for Saturate, List { | |
| rules: [ | |
| ({AbstractFloat}) -> {AbstractFloat}, | |
| (f32) -> f32, | |
| (f16) -> f16, | |
| (f64) -> f64, | |
| (vec2<{AbstractFloat}>) -> vec2<{AbstractFloat}>, | |
| (vec2<f32>) -> vec2<f32>, | |
| (vec2<f16>) -> vec2<f16>, | |
| (vec2<f64>) -> vec2<f64>, | |
| (vec3<{AbstractFloat}>) -> vec3<{AbstractFloat}>, | |
| (vec3<f32>) -> vec3<f32>, | |
| (vec3<f16>) -> vec3<f16>, | |
| (vec3<f64>) -> vec3<f64>, | |
| (vec4<{AbstractFloat}>) -> vec4<{AbstractFloat}>, | |
| (vec4<f32>) -> vec4<f32>, | |
| (vec4<f16>) -> vec4<f16>, | |
| (vec4<f64>) -> vec4<f64>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG overloads after arg 0 of type f32: List { | |
| rules: [ | |
| (f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG Resolving [19] = Math { fun: Saturate, arg: [18], arg1: None, arg2: None, arg3: None } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [24] = Literal(I32(5)) : Value(Scalar(Scalar { kind: Sint, width: 4 })) | |
| DEBUG Resolving [25] = Literal(AbstractInt(0)) : Value(Scalar(Scalar { kind: AbstractInt, width: 8 })) | |
| DEBUG Resolving [0] = FunctionArgument(0) : Handle([27]) | |
| DEBUG Resolving [1] = AccessIndex { base: [0], index: 3 } : Handle([2]) | |
| DEBUG Resolving [2] = Literal(AbstractFloat(0.0)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG Resolving [3] = Literal(F32(0.0)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [4] = Splat { size: Quad, value: [3] } : Value(Vector { size: Quad, scalar: Scalar { kind: Float, width: 4 } }) | |
| DEBUG wgsl automatic_conversion_consensus: vec4<f32>, vec4<f32> | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [5] = Binary { op: Less, left: [1], right: [4] } : Value(Vector { size: Quad, scalar: Scalar { kind: Bool, width: 1 } }) | |
| DEBUG Resolving [6] = Relational { fun: Any, argument: [5] } : Value(Scalar(Scalar { kind: Bool, width: 1 })) | |
| DEBUG Resolving [7] = Literal(AbstractFloat(0.0)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG Resolving [8] = Literal(F32(0.0)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [9] = Splat { size: Quad, value: [8] } : Value(Vector { size: Quad, scalar: Scalar { kind: Float, width: 4 } }) | |
| DEBUG Resolving [10] = GlobalVariable([5]) : Value(Pointer { base: [26], space: Storage { access: StorageAccess(LOAD) } }) | |
| DEBUG Resolving [11] = AccessIndex { base: [0], index: 2 } : Handle([4]) | |
| DEBUG Resolving [12] = Access { base: [10], index: [11] } : Value(Pointer { base: [25], space: Storage { access: StorageAccess(LOAD) } }) | |
| DEBUG Resolving [13] = Load { pointer: [12] } : Handle([25]) | |
| DEBUG Resolving [14] = AccessIndex { base: [13], index: 4 } : Handle([14]) | |
| DEBUG Resolving [15] = AccessIndex { base: [0], index: 0 } : Handle([2]) | |
| DEBUG Resolving [16] = Swizzle { size: Bi, vector: [15], pattern: [X, Y, X, X] } : Value(Vector { size: Bi, scalar: Scalar { kind: Float, width: 4 } }) | |
| DEBUG Resolving [17] = AccessIndex { base: [13], index: 2 } : Handle([8]) | |
| DEBUG Resolving [18] = AccessIndex { base: [0], index: 4 } : Handle([2]) | |
| DEBUG Resolving [19] = AccessIndex { base: [0], index: 5 } : Handle([2]) | |
| DEBUG Resolving [20] = AccessIndex { base: [0], index: 6 } : Handle([2]) | |
| DEBUG Resolving [21] = CallResult([29]) : Handle([2]) | |
| DEBUG Resolving [22] = AccessIndex { base: [13], index: 6 } : Handle([9]) | |
| DEBUG Resolving [23] = AccessIndex { base: [22], index: 0 } : Handle([0]) | |
| DEBUG Resolving [24] = Literal(AbstractFloat(0.0)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG wgsl automatic_conversion_consensus: f32, {AbstractFloat} | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [25] = Literal(F32(0.0)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [26] = Binary { op: Equal, left: [23], right: [25] } : Value(Scalar(Scalar { kind: Bool, width: 1 })) | |
| DEBUG Resolving [27] = AccessIndex { base: [13], index: 6 } : Handle([9]) | |
| DEBUG Resolving [28] = AccessIndex { base: [27], index: 3 } : Handle([0]) | |
| DEBUG Resolving [29] = Literal(AbstractFloat(0.0)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG wgsl automatic_conversion_consensus: f32, {AbstractFloat} | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [30] = Literal(F32(0.0)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [31] = Binary { op: Equal, left: [28], right: [30] } : Value(Scalar(Scalar { kind: Bool, width: 1 })) | |
| DEBUG wgsl automatic_conversion_consensus: bool, bool | |
| DEBUG consensus: bool | |
| DEBUG Resolving [32] = Binary { op: LogicalAnd, left: [26], right: [31] } : Value(Scalar(Scalar { kind: Bool, width: 1 })) | |
| DEBUG Resolving [33] = AccessIndex { base: [13], index: 6 } : Handle([9]) | |
| DEBUG Resolving [34] = AccessIndex { base: [33], index: 1 } : Handle([0]) | |
| DEBUG Resolving [35] = Literal(AbstractFloat(0.0)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG wgsl automatic_conversion_consensus: f32, {AbstractFloat} | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [36] = Literal(F32(0.0)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [37] = Binary { op: Equal, left: [34], right: [36] } : Value(Scalar(Scalar { kind: Bool, width: 1 })) | |
| DEBUG wgsl automatic_conversion_consensus: bool, bool | |
| DEBUG consensus: bool | |
| DEBUG Resolving [38] = Binary { op: LogicalAnd, left: [32], right: [37] } : Value(Scalar(Scalar { kind: Bool, width: 1 })) | |
| DEBUG Resolving [39] = AccessIndex { base: [13], index: 6 } : Handle([9]) | |
| DEBUG Resolving [40] = AccessIndex { base: [39], index: 2 } : Handle([0]) | |
| DEBUG Resolving [41] = Literal(AbstractFloat(0.0)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG wgsl automatic_conversion_consensus: f32, {AbstractFloat} | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [42] = Literal(F32(0.0)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [43] = Binary { op: Equal, left: [40], right: [42] } : Value(Scalar(Scalar { kind: Bool, width: 1 })) | |
| DEBUG wgsl automatic_conversion_consensus: bool, bool | |
| DEBUG consensus: bool | |
| DEBUG Resolving [44] = Binary { op: LogicalAnd, left: [38], right: [43] } : Value(Scalar(Scalar { kind: Bool, width: 1 })) | |
| DEBUG Resolving [45] = AccessIndex { base: [13], index: 7 } : Handle([10]) | |
| DEBUG Resolving [46] = AccessIndex { base: [45], index: 0 } : Handle([0]) | |
| DEBUG Resolving [47] = Literal(AbstractFloat(0.0)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG wgsl automatic_conversion_consensus: f32, {AbstractFloat} | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [48] = Literal(F32(0.0)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [49] = Binary { op: Equal, left: [46], right: [48] } : Value(Scalar(Scalar { kind: Bool, width: 1 })) | |
| DEBUG Resolving [50] = AccessIndex { base: [13], index: 7 } : Handle([10]) | |
| DEBUG Resolving [51] = AccessIndex { base: [50], index: 3 } : Handle([0]) | |
| DEBUG Resolving [52] = Literal(AbstractFloat(0.0)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG wgsl automatic_conversion_consensus: f32, {AbstractFloat} | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [53] = Literal(F32(0.0)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [54] = Binary { op: Equal, left: [51], right: [53] } : Value(Scalar(Scalar { kind: Bool, width: 1 })) | |
| DEBUG wgsl automatic_conversion_consensus: bool, bool | |
| DEBUG consensus: bool | |
| DEBUG Resolving [55] = Binary { op: LogicalAnd, left: [49], right: [54] } : Value(Scalar(Scalar { kind: Bool, width: 1 })) | |
| DEBUG Resolving [56] = AccessIndex { base: [13], index: 7 } : Handle([10]) | |
| DEBUG Resolving [57] = AccessIndex { base: [56], index: 1 } : Handle([0]) | |
| DEBUG Resolving [58] = Literal(AbstractFloat(0.0)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG wgsl automatic_conversion_consensus: f32, {AbstractFloat} | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [59] = Literal(F32(0.0)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [60] = Binary { op: Equal, left: [57], right: [59] } : Value(Scalar(Scalar { kind: Bool, width: 1 })) | |
| DEBUG wgsl automatic_conversion_consensus: bool, bool | |
| DEBUG consensus: bool | |
| DEBUG Resolving [61] = Binary { op: LogicalAnd, left: [55], right: [60] } : Value(Scalar(Scalar { kind: Bool, width: 1 })) | |
| DEBUG Resolving [62] = AccessIndex { base: [13], index: 7 } : Handle([10]) | |
| DEBUG Resolving [63] = AccessIndex { base: [62], index: 2 } : Handle([0]) | |
| DEBUG Resolving [64] = Literal(AbstractFloat(0.0)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG wgsl automatic_conversion_consensus: f32, {AbstractFloat} | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [65] = Literal(F32(0.0)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [66] = Binary { op: Equal, left: [63], right: [65] } : Value(Scalar(Scalar { kind: Bool, width: 1 })) | |
| DEBUG wgsl automatic_conversion_consensus: bool, bool | |
| DEBUG consensus: bool | |
| DEBUG Resolving [67] = Binary { op: LogicalAnd, left: [61], right: [66] } : Value(Scalar(Scalar { kind: Bool, width: 1 })) | |
| DEBUG wgsl automatic_conversion_consensus: bool, bool | |
| DEBUG consensus: bool | |
| DEBUG Resolving [68] = Binary { op: LogicalAnd, left: [67], right: [44] } : Value(Scalar(Scalar { kind: Bool, width: 1 })) | |
| DEBUG Resolving [69] = Literal(AbstractFloat(1.0)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG Resolving [70] = Literal(F32(1.0)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [71] = CallResult([27]) : Handle([2]) | |
| DEBUG Resolving [72] = AccessIndex { base: [13], index: 2 } : Handle([8]) | |
| DEBUG Resolving [73] = AccessIndex { base: [72], index: 1 } : Handle([3]) | |
| DEBUG Resolving [74] = Literal(AbstractFloat(2.0)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG Resolving [75] = Splat { size: Bi, value: [74] } : Value(Vector { size: Bi, scalar: Scalar { kind: AbstractFloat, width: 8 } }) | |
| DEBUG wgsl automatic_conversion_consensus: vec2<f32>, vec2<{AbstractFloat}> | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [76] = Literal(F32(2.0)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [77] = Splat { size: Bi, value: [76] } : Value(Vector { size: Bi, scalar: Scalar { kind: Float, width: 4 } }) | |
| DEBUG Resolving [78] = Binary { op: Divide, left: [73], right: [77] } : Handle([3]) | |
| DEBUG Resolving [79] = AccessIndex { base: [0], index: 0 } : Handle([2]) | |
| DEBUG Resolving [80] = Swizzle { size: Bi, vector: [79], pattern: [X, Y, X, X] } : Value(Vector { size: Bi, scalar: Scalar { kind: Float, width: 4 } }) | |
| DEBUG Resolving [81] = AccessIndex { base: [13], index: 2 } : Handle([8]) | |
| DEBUG Resolving [82] = AccessIndex { base: [81], index: 0 } : Handle([3]) | |
| DEBUG wgsl automatic_conversion_consensus: vec2<f32>, vec2<f32> | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [83] = Binary { op: Subtract, left: [80], right: [82] } : Value(Vector { size: Bi, scalar: Scalar { kind: Float, width: 4 } }) | |
| DEBUG wgsl automatic_conversion_consensus: vec2<f32>, vec2<f32> | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [84] = Binary { op: Subtract, left: [83], right: [78] } : Value(Vector { size: Bi, scalar: Scalar { kind: Float, width: 4 } }) | |
| DEBUG Resolving [85] = Literal(AbstractFloat(0.5)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG Resolving [86] = Literal(F32(0.5)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [87] = AccessIndex { base: [13], index: 6 } : Handle([9]) | |
| DEBUG Resolving [88] = CallResult([24]) : Handle([0]) | |
| DEBUG Resolving [89] = AccessIndex { base: [13], index: 7 } : Handle([10]) | |
| DEBUG Resolving [90] = AccessIndex { base: [89], index: 1 } : Handle([0]) | |
| DEBUG Resolving [91] = AccessIndex { base: [13], index: 7 } : Handle([10]) | |
| DEBUG Resolving [92] = AccessIndex { base: [91], index: 3 } : Handle([0]) | |
| DEBUG Resolving [93] = AccessIndex { base: [84], index: 0 } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [94] = Literal(AbstractFloat(0.0)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG wgsl automatic_conversion_consensus: f32, {AbstractFloat} | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [95] = Literal(F32(0.0)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [96] = Binary { op: Less, left: [93], right: [95] } : Value(Scalar(Scalar { kind: Bool, width: 1 })) | |
| DEBUG Resolving [97] = Select { condition: [96], accept: [92], reject: [90] } : Handle([0]) | |
| DEBUG Resolving [98] = AccessIndex { base: [13], index: 7 } : Handle([10]) | |
| DEBUG Resolving [99] = AccessIndex { base: [98], index: 2 } : Handle([0]) | |
| DEBUG Resolving [100] = AccessIndex { base: [13], index: 7 } : Handle([10]) | |
| DEBUG Resolving [101] = AccessIndex { base: [100], index: 0 } : Handle([0]) | |
| DEBUG Resolving [102] = AccessIndex { base: [84], index: 1 } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [103] = Literal(AbstractFloat(0.0)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG wgsl automatic_conversion_consensus: f32, {AbstractFloat} | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [104] = Literal(F32(0.0)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [105] = Binary { op: Less, left: [102], right: [104] } : Value(Scalar(Scalar { kind: Bool, width: 1 })) | |
| DEBUG Resolving [106] = Select { condition: [105], accept: [101], reject: [99] } : Handle([0]) | |
| DEBUG Resolving [107] = Compose { ty: [3], components: [[97], [106]] } : Handle([3]) | |
| DEBUG Resolving [108] = AccessIndex { base: [107], index: 0 } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [109] = Unary { op: Negate, expr: [86] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [110] = AccessIndex { base: [107], index: 0 } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [111] = Literal(AbstractFloat(0.0)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG wgsl automatic_conversion_consensus: f32, {AbstractFloat} | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [112] = Literal(F32(0.0)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [113] = Binary { op: Equal, left: [110], right: [112] } : Value(Scalar(Scalar { kind: Bool, width: 1 })) | |
| DEBUG Resolving [114] = Select { condition: [113], accept: [109], reject: [108] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [115] = AccessIndex { base: [107], index: 1 } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [116] = Unary { op: Negate, expr: [86] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [117] = AccessIndex { base: [107], index: 1 } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [118] = Literal(AbstractFloat(0.0)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG wgsl automatic_conversion_consensus: f32, {AbstractFloat} | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [119] = Literal(F32(0.0)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [120] = Binary { op: Equal, left: [117], right: [119] } : Value(Scalar(Scalar { kind: Bool, width: 1 })) | |
| DEBUG Resolving [121] = Select { condition: [120], accept: [116], reject: [115] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [122] = Compose { ty: [3], components: [[114], [121]] } : Handle([3]) | |
| DEBUG Initial overloads: List { | |
| rules: [ | |
| ({AbstractInt}) -> {AbstractInt}, | |
| ({AbstractFloat}) -> {AbstractFloat}, | |
| (i32) -> i32, | |
| (i64) -> i64, | |
| (u32) -> u32, | |
| (u64) -> u64, | |
| (f32) -> f32, | |
| (f16) -> f16, | |
| (f64) -> f64, | |
| (vec2<{AbstractInt}>) -> vec2<{AbstractInt}>, | |
| (vec2<{AbstractFloat}>) -> vec2<{AbstractFloat}>, | |
| (vec2<i32>) -> vec2<i32>, | |
| (vec2<i64>) -> vec2<i64>, | |
| (vec2<u32>) -> vec2<u32>, | |
| (vec2<u64>) -> vec2<u64>, | |
| (vec2<f32>) -> vec2<f32>, | |
| (vec2<f16>) -> vec2<f16>, | |
| (vec2<f64>) -> vec2<f64>, | |
| (vec3<{AbstractInt}>) -> vec3<{AbstractInt}>, | |
| (vec3<{AbstractFloat}>) -> vec3<{AbstractFloat}>, | |
| (vec3<i32>) -> vec3<i32>, | |
| (vec3<i64>) -> vec3<i64>, | |
| (vec3<u32>) -> vec3<u32>, | |
| (vec3<u64>) -> vec3<u64>, | |
| (vec3<f32>) -> vec3<f32>, | |
| (vec3<f16>) -> vec3<f16>, | |
| (vec3<f64>) -> vec3<f64>, | |
| (vec4<{AbstractInt}>) -> vec4<{AbstractInt}>, | |
| (vec4<{AbstractFloat}>) -> vec4<{AbstractFloat}>, | |
| (vec4<i32>) -> vec4<i32>, | |
| (vec4<i64>) -> vec4<i64>, | |
| (vec4<u32>) -> vec4<u32>, | |
| (vec4<u64>) -> vec4<u64>, | |
| (vec4<f32>) -> vec4<f32>, | |
| (vec4<f16>) -> vec4<f16>, | |
| (vec4<f64>) -> vec4<f64>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG Supplying argument 0 of type vec2<f32> | |
| DEBUG Remaining overloads: List { | |
| rules: [ | |
| (vec2<f32>) -> vec2<f32>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG initial overloads for Abs, List { | |
| rules: [ | |
| ({AbstractInt}) -> {AbstractInt}, | |
| ({AbstractFloat}) -> {AbstractFloat}, | |
| (i32) -> i32, | |
| (i64) -> i64, | |
| (u32) -> u32, | |
| (u64) -> u64, | |
| (f32) -> f32, | |
| (f16) -> f16, | |
| (f64) -> f64, | |
| (vec2<{AbstractInt}>) -> vec2<{AbstractInt}>, | |
| (vec2<{AbstractFloat}>) -> vec2<{AbstractFloat}>, | |
| (vec2<i32>) -> vec2<i32>, | |
| (vec2<i64>) -> vec2<i64>, | |
| (vec2<u32>) -> vec2<u32>, | |
| (vec2<u64>) -> vec2<u64>, | |
| (vec2<f32>) -> vec2<f32>, | |
| (vec2<f16>) -> vec2<f16>, | |
| (vec2<f64>) -> vec2<f64>, | |
| (vec3<{AbstractInt}>) -> vec3<{AbstractInt}>, | |
| (vec3<{AbstractFloat}>) -> vec3<{AbstractFloat}>, | |
| (vec3<i32>) -> vec3<i32>, | |
| (vec3<i64>) -> vec3<i64>, | |
| (vec3<u32>) -> vec3<u32>, | |
| (vec3<u64>) -> vec3<u64>, | |
| (vec3<f32>) -> vec3<f32>, | |
| (vec3<f16>) -> vec3<f16>, | |
| (vec3<f64>) -> vec3<f64>, | |
| (vec4<{AbstractInt}>) -> vec4<{AbstractInt}>, | |
| (vec4<{AbstractFloat}>) -> vec4<{AbstractFloat}>, | |
| (vec4<i32>) -> vec4<i32>, | |
| (vec4<i64>) -> vec4<i64>, | |
| (vec4<u32>) -> vec4<u32>, | |
| (vec4<u64>) -> vec4<u64>, | |
| (vec4<f32>) -> vec4<f32>, | |
| (vec4<f16>) -> vec4<f16>, | |
| (vec4<f64>) -> vec4<f64>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG overloads after arg 0 of type vec2<f32>: List { | |
| rules: [ | |
| (vec2<f32>) -> vec2<f32>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG Resolving [123] = Math { fun: Abs, arg: [84], arg1: None, arg2: None, arg3: None } : Value(Vector { size: Bi, scalar: Scalar { kind: Float, width: 4 } }) | |
| DEBUG wgsl automatic_conversion_consensus: vec2<f32>, vec2<f32> | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [124] = Binary { op: Subtract, left: [123], right: [78] } : Value(Vector { size: Bi, scalar: Scalar { kind: Float, width: 4 } }) | |
| DEBUG Resolving [125] = Splat { size: Bi, value: [88] } : Value(Vector { size: Bi, scalar: Scalar { kind: Float, width: 4 } }) | |
| DEBUG wgsl automatic_conversion_consensus: vec2<f32>, vec2<f32> | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [126] = Binary { op: Add, left: [124], right: [125] } : Value(Vector { size: Bi, scalar: Scalar { kind: Float, width: 4 } }) | |
| DEBUG Resolving [127] = AccessIndex { base: [126], index: 0 } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [128] = Literal(AbstractInt(0)) : Value(Scalar(Scalar { kind: AbstractInt, width: 8 })) | |
| DEBUG wgsl automatic_conversion_consensus: f32, {AbstractInt} | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [129] = Literal(F32(0.0)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [130] = Binary { op: GreaterEqual, left: [127], right: [129] } : Value(Scalar(Scalar { kind: Bool, width: 1 })) | |
| DEBUG Resolving [131] = AccessIndex { base: [126], index: 1 } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [132] = Literal(AbstractInt(0)) : Value(Scalar(Scalar { kind: AbstractInt, width: 8 })) | |
| DEBUG wgsl automatic_conversion_consensus: f32, {AbstractInt} | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [133] = Literal(F32(0.0)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [134] = Binary { op: GreaterEqual, left: [131], right: [133] } : Value(Scalar(Scalar { kind: Bool, width: 1 })) | |
| DEBUG wgsl automatic_conversion_consensus: bool, bool | |
| DEBUG consensus: bool | |
| DEBUG Resolving [135] = Binary { op: LogicalAnd, left: [130], right: [134] } : Value(Scalar(Scalar { kind: Bool, width: 1 })) | |
| DEBUG wgsl automatic_conversion_consensus: vec2<f32>, vec2<f32> | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [136] = Binary { op: Add, left: [124], right: [122] } : Value(Vector { size: Bi, scalar: Scalar { kind: Float, width: 4 } }) | |
| DEBUG Resolving [137] = AccessIndex { base: [136], index: 0 } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [138] = Literal(AbstractInt(0)) : Value(Scalar(Scalar { kind: AbstractInt, width: 8 })) | |
| DEBUG wgsl automatic_conversion_consensus: f32, {AbstractInt} | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [139] = Literal(F32(0.0)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [140] = Binary { op: Greater, left: [137], right: [139] } : Value(Scalar(Scalar { kind: Bool, width: 1 })) | |
| DEBUG Resolving [141] = AccessIndex { base: [136], index: 1 } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [142] = Literal(AbstractInt(0)) : Value(Scalar(Scalar { kind: AbstractInt, width: 8 })) | |
| DEBUG wgsl automatic_conversion_consensus: f32, {AbstractInt} | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [143] = Literal(F32(0.0)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [144] = Binary { op: Greater, left: [141], right: [143] } : Value(Scalar(Scalar { kind: Bool, width: 1 })) | |
| DEBUG wgsl automatic_conversion_consensus: bool, bool | |
| DEBUG consensus: bool | |
| DEBUG Resolving [145] = Binary { op: LogicalOr, left: [140], right: [144] } : Value(Scalar(Scalar { kind: Bool, width: 1 })) | |
| DEBUG Resolving [146] = AccessIndex { base: [136], index: 0 } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [147] = Unary { op: Negate, expr: [86] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG wgsl automatic_conversion_consensus: f32, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [148] = Binary { op: Less, left: [146], right: [147] } : Value(Scalar(Scalar { kind: Bool, width: 1 })) | |
| DEBUG Resolving [149] = AccessIndex { base: [136], index: 1 } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [150] = Unary { op: Negate, expr: [86] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG wgsl automatic_conversion_consensus: f32, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [151] = Binary { op: Less, left: [149], right: [150] } : Value(Scalar(Scalar { kind: Bool, width: 1 })) | |
| DEBUG wgsl automatic_conversion_consensus: bool, bool | |
| DEBUG consensus: bool | |
| DEBUG Resolving [152] = Binary { op: LogicalAnd, left: [148], right: [151] } : Value(Scalar(Scalar { kind: Bool, width: 1 })) | |
| DEBUG Resolving [153] = Unary { op: LogicalNot, expr: [135] } : Value(Scalar(Scalar { kind: Bool, width: 1 })) | |
| DEBUG wgsl automatic_conversion_consensus: bool, bool | |
| DEBUG consensus: bool | |
| DEBUG Resolving [154] = Binary { op: LogicalAnd, left: [152], right: [153] } : Value(Scalar(Scalar { kind: Bool, width: 1 })) | |
| DEBUG Resolving [155] = Literal(AbstractFloat(1.0)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG Resolving [156] = Literal(F32(1.0)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [157] = CallResult([27]) : Handle([2]) | |
| DEBUG Resolving [158] = CallResult([25]) : Handle([0]) | |
| DEBUG Resolving [159] = Literal(AbstractFloat(0.0)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG Resolving [160] = Literal(F32(0.0)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [161] = LocalVariable([0]) : Value(Pointer { base: [0], space: Function }) | |
| DEBUG Resolving [162] = AccessIndex { base: [126], index: 0 } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [163] = Literal(AbstractInt(0)) : Value(Scalar(Scalar { kind: AbstractInt, width: 8 })) | |
| DEBUG wgsl automatic_conversion_consensus: f32, {AbstractInt} | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [164] = Literal(F32(0.0)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [165] = Binary { op: LessEqual, left: [162], right: [164] } : Value(Scalar(Scalar { kind: Bool, width: 1 })) | |
| DEBUG Resolving [166] = AccessIndex { base: [126], index: 1 } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [167] = Literal(AbstractInt(0)) : Value(Scalar(Scalar { kind: AbstractInt, width: 8 })) | |
| DEBUG wgsl automatic_conversion_consensus: f32, {AbstractInt} | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [168] = Literal(F32(0.0)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [169] = Binary { op: LessEqual, left: [166], right: [168] } : Value(Scalar(Scalar { kind: Bool, width: 1 })) | |
| DEBUG wgsl automatic_conversion_consensus: bool, bool | |
| DEBUG consensus: bool | |
| DEBUG Resolving [170] = Binary { op: LogicalOr, left: [165], right: [169] } : Value(Scalar(Scalar { kind: Bool, width: 1 })) | |
| DEBUG Resolving [171] = AccessIndex { base: [136], index: 0 } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [172] = AccessIndex { base: [136], index: 1 } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Initial overloads: List { | |
| rules: [ | |
| ({AbstractInt}, {AbstractInt}) -> {AbstractInt}, | |
| ({AbstractFloat}, {AbstractFloat}) -> {AbstractFloat}, | |
| (i32, i32) -> i32, | |
| (i64, i64) -> i64, | |
| (u32, u32) -> u32, | |
| (u64, u64) -> u64, | |
| (f32, f32) -> f32, | |
| (f16, f16) -> f16, | |
| (f64, f64) -> f64, | |
| (vec2<{AbstractInt}>, vec2<{AbstractInt}>) -> vec2<{AbstractInt}>, | |
| (vec2<{AbstractFloat}>, vec2<{AbstractFloat}>) -> vec2<{AbstractFloat}>, | |
| (vec2<i32>, vec2<i32>) -> vec2<i32>, | |
| (vec2<i64>, vec2<i64>) -> vec2<i64>, | |
| (vec2<u32>, vec2<u32>) -> vec2<u32>, | |
| (vec2<u64>, vec2<u64>) -> vec2<u64>, | |
| (vec2<f32>, vec2<f32>) -> vec2<f32>, | |
| (vec2<f16>, vec2<f16>) -> vec2<f16>, | |
| (vec2<f64>, vec2<f64>) -> vec2<f64>, | |
| (vec3<{AbstractInt}>, vec3<{AbstractInt}>) -> vec3<{AbstractInt}>, | |
| (vec3<{AbstractFloat}>, vec3<{AbstractFloat}>) -> vec3<{AbstractFloat}>, | |
| (vec3<i32>, vec3<i32>) -> vec3<i32>, | |
| (vec3<i64>, vec3<i64>) -> vec3<i64>, | |
| (vec3<u32>, vec3<u32>) -> vec3<u32>, | |
| (vec3<u64>, vec3<u64>) -> vec3<u64>, | |
| (vec3<f32>, vec3<f32>) -> vec3<f32>, | |
| (vec3<f16>, vec3<f16>) -> vec3<f16>, | |
| (vec3<f64>, vec3<f64>) -> vec3<f64>, | |
| (vec4<{AbstractInt}>, vec4<{AbstractInt}>) -> vec4<{AbstractInt}>, | |
| (vec4<{AbstractFloat}>, vec4<{AbstractFloat}>) -> vec4<{AbstractFloat}>, | |
| (vec4<i32>, vec4<i32>) -> vec4<i32>, | |
| (vec4<i64>, vec4<i64>) -> vec4<i64>, | |
| (vec4<u32>, vec4<u32>) -> vec4<u32>, | |
| (vec4<u64>, vec4<u64>) -> vec4<u64>, | |
| (vec4<f32>, vec4<f32>) -> vec4<f32>, | |
| (vec4<f16>, vec4<f16>) -> vec4<f16>, | |
| (vec4<f64>, vec4<f64>) -> vec4<f64>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG Supplying argument 0 of type f32 | |
| DEBUG Remaining overloads: List { | |
| rules: [ | |
| (f32, f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG Supplying argument 1 of type f32 | |
| DEBUG Remaining overloads: List { | |
| rules: [ | |
| (f32, f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG initial overloads for Max, List { | |
| rules: [ | |
| ({AbstractInt}, {AbstractInt}) -> {AbstractInt}, | |
| ({AbstractFloat}, {AbstractFloat}) -> {AbstractFloat}, | |
| (i32, i32) -> i32, | |
| (i64, i64) -> i64, | |
| (u32, u32) -> u32, | |
| (u64, u64) -> u64, | |
| (f32, f32) -> f32, | |
| (f16, f16) -> f16, | |
| (f64, f64) -> f64, | |
| (vec2<{AbstractInt}>, vec2<{AbstractInt}>) -> vec2<{AbstractInt}>, | |
| (vec2<{AbstractFloat}>, vec2<{AbstractFloat}>) -> vec2<{AbstractFloat}>, | |
| (vec2<i32>, vec2<i32>) -> vec2<i32>, | |
| (vec2<i64>, vec2<i64>) -> vec2<i64>, | |
| (vec2<u32>, vec2<u32>) -> vec2<u32>, | |
| (vec2<u64>, vec2<u64>) -> vec2<u64>, | |
| (vec2<f32>, vec2<f32>) -> vec2<f32>, | |
| (vec2<f16>, vec2<f16>) -> vec2<f16>, | |
| (vec2<f64>, vec2<f64>) -> vec2<f64>, | |
| (vec3<{AbstractInt}>, vec3<{AbstractInt}>) -> vec3<{AbstractInt}>, | |
| (vec3<{AbstractFloat}>, vec3<{AbstractFloat}>) -> vec3<{AbstractFloat}>, | |
| (vec3<i32>, vec3<i32>) -> vec3<i32>, | |
| (vec3<i64>, vec3<i64>) -> vec3<i64>, | |
| (vec3<u32>, vec3<u32>) -> vec3<u32>, | |
| (vec3<u64>, vec3<u64>) -> vec3<u64>, | |
| (vec3<f32>, vec3<f32>) -> vec3<f32>, | |
| (vec3<f16>, vec3<f16>) -> vec3<f16>, | |
| (vec3<f64>, vec3<f64>) -> vec3<f64>, | |
| (vec4<{AbstractInt}>, vec4<{AbstractInt}>) -> vec4<{AbstractInt}>, | |
| (vec4<{AbstractFloat}>, vec4<{AbstractFloat}>) -> vec4<{AbstractFloat}>, | |
| (vec4<i32>, vec4<i32>) -> vec4<i32>, | |
| (vec4<i64>, vec4<i64>) -> vec4<i64>, | |
| (vec4<u32>, vec4<u32>) -> vec4<u32>, | |
| (vec4<u64>, vec4<u64>) -> vec4<u64>, | |
| (vec4<f32>, vec4<f32>) -> vec4<f32>, | |
| (vec4<f16>, vec4<f16>) -> vec4<f16>, | |
| (vec4<f64>, vec4<f64>) -> vec4<f64>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG overloads after arg 0 of type f32: List { | |
| rules: [ | |
| (f32, f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG overloads after arg 1 of type f32: List { | |
| rules: [ | |
| (f32, f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG Resolving [173] = Math { fun: Max, arg: [171], arg1: Some([172]), arg2: None, arg3: None } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [174] = Unary { op: Negate, expr: [173] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [175] = Literal(AbstractFloat(1.0)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG Resolving [176] = Literal(AbstractFloat(-1.0)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG Resolving [177] = Literal(F32(-1.0)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [178] = AccessIndex { base: [122], index: 0 } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [179] = AccessIndex { base: [122], index: 1 } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG wgsl automatic_conversion_consensus: f32, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [180] = Binary { op: Equal, left: [178], right: [179] } : Value(Scalar(Scalar { kind: Bool, width: 1 })) | |
| DEBUG Resolving [181] = AccessIndex { base: [122], index: 0 } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG wgsl automatic_conversion_consensus: f32, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [182] = Binary { op: Add, left: [158], right: [181] } : Handle([0]) | |
| DEBUG Resolving [183] = Unary { op: Negate, expr: [182] } : Handle([0]) | |
| DEBUG Resolving [184] = Literal(AbstractFloat(0.0)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG Resolving [185] = Literal(F32(0.0)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [186] = Splat { size: Bi, value: [185] } : Value(Vector { size: Bi, scalar: Scalar { kind: Float, width: 4 } }) | |
| DEBUG Resolving [187] = Splat { size: Bi, value: [88] } : Value(Vector { size: Bi, scalar: Scalar { kind: Float, width: 4 } }) | |
| DEBUG wgsl automatic_conversion_consensus: vec2<f32>, vec2<f32> | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [188] = Binary { op: Subtract, left: [187], right: [122] } : Value(Vector { size: Bi, scalar: Scalar { kind: Float, width: 4 } }) | |
| DEBUG Initial overloads: List { | |
| rules: [ | |
| ({AbstractInt}, {AbstractInt}) -> {AbstractInt}, | |
| ({AbstractFloat}, {AbstractFloat}) -> {AbstractFloat}, | |
| (i32, i32) -> i32, | |
| (i64, i64) -> i64, | |
| (u32, u32) -> u32, | |
| (u64, u64) -> u64, | |
| (f32, f32) -> f32, | |
| (f16, f16) -> f16, | |
| (f64, f64) -> f64, | |
| (vec2<{AbstractInt}>, vec2<{AbstractInt}>) -> vec2<{AbstractInt}>, | |
| (vec2<{AbstractFloat}>, vec2<{AbstractFloat}>) -> vec2<{AbstractFloat}>, | |
| (vec2<i32>, vec2<i32>) -> vec2<i32>, | |
| (vec2<i64>, vec2<i64>) -> vec2<i64>, | |
| (vec2<u32>, vec2<u32>) -> vec2<u32>, | |
| (vec2<u64>, vec2<u64>) -> vec2<u64>, | |
| (vec2<f32>, vec2<f32>) -> vec2<f32>, | |
| (vec2<f16>, vec2<f16>) -> vec2<f16>, | |
| (vec2<f64>, vec2<f64>) -> vec2<f64>, | |
| (vec3<{AbstractInt}>, vec3<{AbstractInt}>) -> vec3<{AbstractInt}>, | |
| (vec3<{AbstractFloat}>, vec3<{AbstractFloat}>) -> vec3<{AbstractFloat}>, | |
| (vec3<i32>, vec3<i32>) -> vec3<i32>, | |
| (vec3<i64>, vec3<i64>) -> vec3<i64>, | |
| (vec3<u32>, vec3<u32>) -> vec3<u32>, | |
| (vec3<u64>, vec3<u64>) -> vec3<u64>, | |
| (vec3<f32>, vec3<f32>) -> vec3<f32>, | |
| (vec3<f16>, vec3<f16>) -> vec3<f16>, | |
| (vec3<f64>, vec3<f64>) -> vec3<f64>, | |
| (vec4<{AbstractInt}>, vec4<{AbstractInt}>) -> vec4<{AbstractInt}>, | |
| (vec4<{AbstractFloat}>, vec4<{AbstractFloat}>) -> vec4<{AbstractFloat}>, | |
| (vec4<i32>, vec4<i32>) -> vec4<i32>, | |
| (vec4<i64>, vec4<i64>) -> vec4<i64>, | |
| (vec4<u32>, vec4<u32>) -> vec4<u32>, | |
| (vec4<u64>, vec4<u64>) -> vec4<u64>, | |
| (vec4<f32>, vec4<f32>) -> vec4<f32>, | |
| (vec4<f16>, vec4<f16>) -> vec4<f16>, | |
| (vec4<f64>, vec4<f64>) -> vec4<f64>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG Supplying argument 0 of type vec2<f32> | |
| DEBUG Remaining overloads: List { | |
| rules: [ | |
| (vec2<f32>, vec2<f32>) -> vec2<f32>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG Supplying argument 1 of type vec2<f32> | |
| DEBUG Remaining overloads: List { | |
| rules: [ | |
| (vec2<f32>, vec2<f32>) -> vec2<f32>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG initial overloads for Max, List { | |
| rules: [ | |
| ({AbstractInt}, {AbstractInt}) -> {AbstractInt}, | |
| ({AbstractFloat}, {AbstractFloat}) -> {AbstractFloat}, | |
| (i32, i32) -> i32, | |
| (i64, i64) -> i64, | |
| (u32, u32) -> u32, | |
| (u64, u64) -> u64, | |
| (f32, f32) -> f32, | |
| (f16, f16) -> f16, | |
| (f64, f64) -> f64, | |
| (vec2<{AbstractInt}>, vec2<{AbstractInt}>) -> vec2<{AbstractInt}>, | |
| (vec2<{AbstractFloat}>, vec2<{AbstractFloat}>) -> vec2<{AbstractFloat}>, | |
| (vec2<i32>, vec2<i32>) -> vec2<i32>, | |
| (vec2<i64>, vec2<i64>) -> vec2<i64>, | |
| (vec2<u32>, vec2<u32>) -> vec2<u32>, | |
| (vec2<u64>, vec2<u64>) -> vec2<u64>, | |
| (vec2<f32>, vec2<f32>) -> vec2<f32>, | |
| (vec2<f16>, vec2<f16>) -> vec2<f16>, | |
| (vec2<f64>, vec2<f64>) -> vec2<f64>, | |
| (vec3<{AbstractInt}>, vec3<{AbstractInt}>) -> vec3<{AbstractInt}>, | |
| (vec3<{AbstractFloat}>, vec3<{AbstractFloat}>) -> vec3<{AbstractFloat}>, | |
| (vec3<i32>, vec3<i32>) -> vec3<i32>, | |
| (vec3<i64>, vec3<i64>) -> vec3<i64>, | |
| (vec3<u32>, vec3<u32>) -> vec3<u32>, | |
| (vec3<u64>, vec3<u64>) -> vec3<u64>, | |
| (vec3<f32>, vec3<f32>) -> vec3<f32>, | |
| (vec3<f16>, vec3<f16>) -> vec3<f16>, | |
| (vec3<f64>, vec3<f64>) -> vec3<f64>, | |
| (vec4<{AbstractInt}>, vec4<{AbstractInt}>) -> vec4<{AbstractInt}>, | |
| (vec4<{AbstractFloat}>, vec4<{AbstractFloat}>) -> vec4<{AbstractFloat}>, | |
| (vec4<i32>, vec4<i32>) -> vec4<i32>, | |
| (vec4<i64>, vec4<i64>) -> vec4<i64>, | |
| (vec4<u32>, vec4<u32>) -> vec4<u32>, | |
| (vec4<u64>, vec4<u64>) -> vec4<u64>, | |
| (vec4<f32>, vec4<f32>) -> vec4<f32>, | |
| (vec4<f16>, vec4<f16>) -> vec4<f16>, | |
| (vec4<f64>, vec4<f64>) -> vec4<f64>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG overloads after arg 0 of type vec2<f32>: List { | |
| rules: [ | |
| (vec2<f32>, vec2<f32>) -> vec2<f32>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG overloads after arg 1 of type vec2<f32>: List { | |
| rules: [ | |
| (vec2<f32>, vec2<f32>) -> vec2<f32>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG Resolving [189] = Math { fun: Max, arg: [186], arg1: Some([188]), arg2: None, arg3: None } : Value(Vector { size: Bi, scalar: Scalar { kind: Float, width: 4 } }) | |
| DEBUG Resolving [190] = CallResult([30]) : Handle([0]) | |
| DEBUG Resolving [191] = Load { pointer: [161] } : Handle([0]) | |
| DEBUG Initial overloads: List { | |
| rules: [ | |
| ({AbstractInt}, {AbstractInt}) -> {AbstractInt}, | |
| ({AbstractFloat}, {AbstractFloat}) -> {AbstractFloat}, | |
| (i32, i32) -> i32, | |
| (i64, i64) -> i64, | |
| (u32, u32) -> u32, | |
| (u64, u64) -> u64, | |
| (f32, f32) -> f32, | |
| (f16, f16) -> f16, | |
| (f64, f64) -> f64, | |
| (vec2<{AbstractInt}>, vec2<{AbstractInt}>) -> vec2<{AbstractInt}>, | |
| (vec2<{AbstractFloat}>, vec2<{AbstractFloat}>) -> vec2<{AbstractFloat}>, | |
| (vec2<i32>, vec2<i32>) -> vec2<i32>, | |
| (vec2<i64>, vec2<i64>) -> vec2<i64>, | |
| (vec2<u32>, vec2<u32>) -> vec2<u32>, | |
| (vec2<u64>, vec2<u64>) -> vec2<u64>, | |
| (vec2<f32>, vec2<f32>) -> vec2<f32>, | |
| (vec2<f16>, vec2<f16>) -> vec2<f16>, | |
| (vec2<f64>, vec2<f64>) -> vec2<f64>, | |
| (vec3<{AbstractInt}>, vec3<{AbstractInt}>) -> vec3<{AbstractInt}>, | |
| (vec3<{AbstractFloat}>, vec3<{AbstractFloat}>) -> vec3<{AbstractFloat}>, | |
| (vec3<i32>, vec3<i32>) -> vec3<i32>, | |
| (vec3<i64>, vec3<i64>) -> vec3<i64>, | |
| (vec3<u32>, vec3<u32>) -> vec3<u32>, | |
| (vec3<u64>, vec3<u64>) -> vec3<u64>, | |
| (vec3<f32>, vec3<f32>) -> vec3<f32>, | |
| (vec3<f16>, vec3<f16>) -> vec3<f16>, | |
| (vec3<f64>, vec3<f64>) -> vec3<f64>, | |
| (vec4<{AbstractInt}>, vec4<{AbstractInt}>) -> vec4<{AbstractInt}>, | |
| (vec4<{AbstractFloat}>, vec4<{AbstractFloat}>) -> vec4<{AbstractFloat}>, | |
| (vec4<i32>, vec4<i32>) -> vec4<i32>, | |
| (vec4<i64>, vec4<i64>) -> vec4<i64>, | |
| (vec4<u32>, vec4<u32>) -> vec4<u32>, | |
| (vec4<u64>, vec4<u64>) -> vec4<u64>, | |
| (vec4<f32>, vec4<f32>) -> vec4<f32>, | |
| (vec4<f16>, vec4<f16>) -> vec4<f16>, | |
| (vec4<f64>, vec4<f64>) -> vec4<f64>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG Supplying argument 0 of type f32 | |
| DEBUG Remaining overloads: List { | |
| rules: [ | |
| (f32, f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG Supplying argument 1 of type f32 | |
| DEBUG Remaining overloads: List { | |
| rules: [ | |
| (f32, f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG initial overloads for Max, List { | |
| rules: [ | |
| ({AbstractInt}, {AbstractInt}) -> {AbstractInt}, | |
| ({AbstractFloat}, {AbstractFloat}) -> {AbstractFloat}, | |
| (i32, i32) -> i32, | |
| (i64, i64) -> i64, | |
| (u32, u32) -> u32, | |
| (u64, u64) -> u64, | |
| (f32, f32) -> f32, | |
| (f16, f16) -> f16, | |
| (f64, f64) -> f64, | |
| (vec2<{AbstractInt}>, vec2<{AbstractInt}>) -> vec2<{AbstractInt}>, | |
| (vec2<{AbstractFloat}>, vec2<{AbstractFloat}>) -> vec2<{AbstractFloat}>, | |
| (vec2<i32>, vec2<i32>) -> vec2<i32>, | |
| (vec2<i64>, vec2<i64>) -> vec2<i64>, | |
| (vec2<u32>, vec2<u32>) -> vec2<u32>, | |
| (vec2<u64>, vec2<u64>) -> vec2<u64>, | |
| (vec2<f32>, vec2<f32>) -> vec2<f32>, | |
| (vec2<f16>, vec2<f16>) -> vec2<f16>, | |
| (vec2<f64>, vec2<f64>) -> vec2<f64>, | |
| (vec3<{AbstractInt}>, vec3<{AbstractInt}>) -> vec3<{AbstractInt}>, | |
| (vec3<{AbstractFloat}>, vec3<{AbstractFloat}>) -> vec3<{AbstractFloat}>, | |
| (vec3<i32>, vec3<i32>) -> vec3<i32>, | |
| (vec3<i64>, vec3<i64>) -> vec3<i64>, | |
| (vec3<u32>, vec3<u32>) -> vec3<u32>, | |
| (vec3<u64>, vec3<u64>) -> vec3<u64>, | |
| (vec3<f32>, vec3<f32>) -> vec3<f32>, | |
| (vec3<f16>, vec3<f16>) -> vec3<f16>, | |
| (vec3<f64>, vec3<f64>) -> vec3<f64>, | |
| (vec4<{AbstractInt}>, vec4<{AbstractInt}>) -> vec4<{AbstractInt}>, | |
| (vec4<{AbstractFloat}>, vec4<{AbstractFloat}>) -> vec4<{AbstractFloat}>, | |
| (vec4<i32>, vec4<i32>) -> vec4<i32>, | |
| (vec4<i64>, vec4<i64>) -> vec4<i64>, | |
| (vec4<u32>, vec4<u32>) -> vec4<u32>, | |
| (vec4<u64>, vec4<u64>) -> vec4<u64>, | |
| (vec4<f32>, vec4<f32>) -> vec4<f32>, | |
| (vec4<f16>, vec4<f16>) -> vec4<f16>, | |
| (vec4<f64>, vec4<f64>) -> vec4<f64>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG overloads after arg 0 of type f32: List { | |
| rules: [ | |
| (f32, f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG overloads after arg 1 of type f32: List { | |
| rules: [ | |
| (f32, f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG Resolving [192] = Math { fun: Max, arg: [191], arg1: Some([158]), arg2: None, arg3: None } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG wgsl automatic_conversion_consensus: f32, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [193] = LocalVariable([1]) : Value(Pointer { base: [2], space: Function }) | |
| DEBUG Resolving [194] = Binary { op: Less, left: [192], right: [86] } : Value(Scalar(Scalar { kind: Bool, width: 1 })) | |
| DEBUG Resolving [195] = AccessIndex { base: [0], index: 1 } : Handle([2]) | |
| DEBUG Resolving [196] = LocalVariable([2]) : Value(Pointer { base: [2], space: Function }) | |
| DEBUG Resolving [197] = AccessIndex { base: [13], index: 1 } : Handle([4]) | |
| DEBUG Resolving [198] = Literal(AbstractInt(1)) : Value(Scalar(Scalar { kind: AbstractInt, width: 8 })) | |
| DEBUG wgsl automatic_conversion_consensus: u32, {AbstractInt} | |
| DEBUG consensus: u32 | |
| DEBUG Resolving [199] = Literal(U32(1)) : Value(Scalar(Scalar { kind: Uint, width: 4 })) | |
| DEBUG Resolving [200] = Binary { op: Equal, left: [197], right: [199] } : Value(Scalar(Scalar { kind: Bool, width: 1 })) | |
| DEBUG Resolving [201] = Literal(AbstractFloat(0.0)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG Resolving [202] = Literal(F32(0.0)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [203] = LocalVariable([3]) : Value(Pointer { base: [0], space: Function }) | |
| DEBUG Resolving [204] = Literal(AbstractFloat(0.0)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG Resolving [205] = Literal(F32(0.0)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [206] = LocalVariable([4]) : Value(Pointer { base: [0], space: Function }) | |
| DEBUG Resolving [207] = Literal(AbstractFloat(2.0)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG Resolving [208] = Literal(F32(2.0)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [209] = Literal(AbstractFloat(1.0)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG Resolving [210] = Literal(F32(1.0)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG wgsl automatic_conversion_consensus: f32, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [211] = Binary { op: Add, left: [208], right: [210] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [212] = Literal(AbstractFloat(0.0)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG Resolving [213] = Literal(F32(0.0)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [214] = LocalVariable([5]) : Value(Pointer { base: [0], space: Function }) | |
| DEBUG Resolving [215] = Literal(AbstractFloat(1.0)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG wgsl automatic_conversion_consensus: {AbstractFloat}, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [216] = Literal(F32(1.0)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [217] = Binary { op: Divide, left: [216], right: [211] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [218] = AccessIndex { base: [126], index: 0 } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [219] = AccessIndex { base: [126], index: 1 } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG wgsl automatic_conversion_consensus: f32, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [220] = Binary { op: Less, left: [218], right: [219] } : Value(Scalar(Scalar { kind: Bool, width: 1 })) | |
| DEBUG Resolving [221] = AccessIndex { base: [13], index: 7 } : Handle([10]) | |
| DEBUG Resolving [222] = AccessIndex { base: [221], index: 2 } : Handle([0]) | |
| DEBUG Resolving [223] = AccessIndex { base: [13], index: 7 } : Handle([10]) | |
| DEBUG Resolving [224] = AccessIndex { base: [223], index: 0 } : Handle([0]) | |
| DEBUG Initial overloads: List { | |
| rules: [ | |
| ({AbstractInt}, {AbstractInt}) -> {AbstractInt}, | |
| ({AbstractFloat}, {AbstractFloat}) -> {AbstractFloat}, | |
| (i32, i32) -> i32, | |
| (i64, i64) -> i64, | |
| (u32, u32) -> u32, | |
| (u64, u64) -> u64, | |
| (f32, f32) -> f32, | |
| (f16, f16) -> f16, | |
| (f64, f64) -> f64, | |
| (vec2<{AbstractInt}>, vec2<{AbstractInt}>) -> vec2<{AbstractInt}>, | |
| (vec2<{AbstractFloat}>, vec2<{AbstractFloat}>) -> vec2<{AbstractFloat}>, | |
| (vec2<i32>, vec2<i32>) -> vec2<i32>, | |
| (vec2<i64>, vec2<i64>) -> vec2<i64>, | |
| (vec2<u32>, vec2<u32>) -> vec2<u32>, | |
| (vec2<u64>, vec2<u64>) -> vec2<u64>, | |
| (vec2<f32>, vec2<f32>) -> vec2<f32>, | |
| (vec2<f16>, vec2<f16>) -> vec2<f16>, | |
| (vec2<f64>, vec2<f64>) -> vec2<f64>, | |
| (vec3<{AbstractInt}>, vec3<{AbstractInt}>) -> vec3<{AbstractInt}>, | |
| (vec3<{AbstractFloat}>, vec3<{AbstractFloat}>) -> vec3<{AbstractFloat}>, | |
| (vec3<i32>, vec3<i32>) -> vec3<i32>, | |
| (vec3<i64>, vec3<i64>) -> vec3<i64>, | |
| (vec3<u32>, vec3<u32>) -> vec3<u32>, | |
| (vec3<u64>, vec3<u64>) -> vec3<u64>, | |
| (vec3<f32>, vec3<f32>) -> vec3<f32>, | |
| (vec3<f16>, vec3<f16>) -> vec3<f16>, | |
| (vec3<f64>, vec3<f64>) -> vec3<f64>, | |
| (vec4<{AbstractInt}>, vec4<{AbstractInt}>) -> vec4<{AbstractInt}>, | |
| (vec4<{AbstractFloat}>, vec4<{AbstractFloat}>) -> vec4<{AbstractFloat}>, | |
| (vec4<i32>, vec4<i32>) -> vec4<i32>, | |
| (vec4<i64>, vec4<i64>) -> vec4<i64>, | |
| (vec4<u32>, vec4<u32>) -> vec4<u32>, | |
| (vec4<u64>, vec4<u64>) -> vec4<u64>, | |
| (vec4<f32>, vec4<f32>) -> vec4<f32>, | |
| (vec4<f16>, vec4<f16>) -> vec4<f16>, | |
| (vec4<f64>, vec4<f64>) -> vec4<f64>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG Supplying argument 0 of type f32 | |
| DEBUG Remaining overloads: List { | |
| rules: [ | |
| (f32, f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG Supplying argument 1 of type f32 | |
| DEBUG Remaining overloads: List { | |
| rules: [ | |
| (f32, f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG initial overloads for Max, List { | |
| rules: [ | |
| ({AbstractInt}, {AbstractInt}) -> {AbstractInt}, | |
| ({AbstractFloat}, {AbstractFloat}) -> {AbstractFloat}, | |
| (i32, i32) -> i32, | |
| (i64, i64) -> i64, | |
| (u32, u32) -> u32, | |
| (u64, u64) -> u64, | |
| (f32, f32) -> f32, | |
| (f16, f16) -> f16, | |
| (f64, f64) -> f64, | |
| (vec2<{AbstractInt}>, vec2<{AbstractInt}>) -> vec2<{AbstractInt}>, | |
| (vec2<{AbstractFloat}>, vec2<{AbstractFloat}>) -> vec2<{AbstractFloat}>, | |
| (vec2<i32>, vec2<i32>) -> vec2<i32>, | |
| (vec2<i64>, vec2<i64>) -> vec2<i64>, | |
| (vec2<u32>, vec2<u32>) -> vec2<u32>, | |
| (vec2<u64>, vec2<u64>) -> vec2<u64>, | |
| (vec2<f32>, vec2<f32>) -> vec2<f32>, | |
| (vec2<f16>, vec2<f16>) -> vec2<f16>, | |
| (vec2<f64>, vec2<f64>) -> vec2<f64>, | |
| (vec3<{AbstractInt}>, vec3<{AbstractInt}>) -> vec3<{AbstractInt}>, | |
| (vec3<{AbstractFloat}>, vec3<{AbstractFloat}>) -> vec3<{AbstractFloat}>, | |
| (vec3<i32>, vec3<i32>) -> vec3<i32>, | |
| (vec3<i64>, vec3<i64>) -> vec3<i64>, | |
| (vec3<u32>, vec3<u32>) -> vec3<u32>, | |
| (vec3<u64>, vec3<u64>) -> vec3<u64>, | |
| (vec3<f32>, vec3<f32>) -> vec3<f32>, | |
| (vec3<f16>, vec3<f16>) -> vec3<f16>, | |
| (vec3<f64>, vec3<f64>) -> vec3<f64>, | |
| (vec4<{AbstractInt}>, vec4<{AbstractInt}>) -> vec4<{AbstractInt}>, | |
| (vec4<{AbstractFloat}>, vec4<{AbstractFloat}>) -> vec4<{AbstractFloat}>, | |
| (vec4<i32>, vec4<i32>) -> vec4<i32>, | |
| (vec4<i64>, vec4<i64>) -> vec4<i64>, | |
| (vec4<u32>, vec4<u32>) -> vec4<u32>, | |
| (vec4<u64>, vec4<u64>) -> vec4<u64>, | |
| (vec4<f32>, vec4<f32>) -> vec4<f32>, | |
| (vec4<f16>, vec4<f16>) -> vec4<f16>, | |
| (vec4<f64>, vec4<f64>) -> vec4<f64>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG overloads after arg 0 of type f32: List { | |
| rules: [ | |
| (f32, f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG overloads after arg 1 of type f32: List { | |
| rules: [ | |
| (f32, f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG Resolving [225] = Math { fun: Max, arg: [222], arg1: Some([224]), arg2: None, arg3: None } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [226] = AccessIndex { base: [13], index: 7 } : Handle([10]) | |
| DEBUG Resolving [227] = AccessIndex { base: [226], index: 1 } : Handle([0]) | |
| DEBUG Resolving [228] = AccessIndex { base: [13], index: 7 } : Handle([10]) | |
| DEBUG Resolving [229] = AccessIndex { base: [228], index: 3 } : Handle([0]) | |
| DEBUG Initial overloads: List { | |
| rules: [ | |
| ({AbstractInt}, {AbstractInt}) -> {AbstractInt}, | |
| ({AbstractFloat}, {AbstractFloat}) -> {AbstractFloat}, | |
| (i32, i32) -> i32, | |
| (i64, i64) -> i64, | |
| (u32, u32) -> u32, | |
| (u64, u64) -> u64, | |
| (f32, f32) -> f32, | |
| (f16, f16) -> f16, | |
| (f64, f64) -> f64, | |
| (vec2<{AbstractInt}>, vec2<{AbstractInt}>) -> vec2<{AbstractInt}>, | |
| (vec2<{AbstractFloat}>, vec2<{AbstractFloat}>) -> vec2<{AbstractFloat}>, | |
| (vec2<i32>, vec2<i32>) -> vec2<i32>, | |
| (vec2<i64>, vec2<i64>) -> vec2<i64>, | |
| (vec2<u32>, vec2<u32>) -> vec2<u32>, | |
| (vec2<u64>, vec2<u64>) -> vec2<u64>, | |
| (vec2<f32>, vec2<f32>) -> vec2<f32>, | |
| (vec2<f16>, vec2<f16>) -> vec2<f16>, | |
| (vec2<f64>, vec2<f64>) -> vec2<f64>, | |
| (vec3<{AbstractInt}>, vec3<{AbstractInt}>) -> vec3<{AbstractInt}>, | |
| (vec3<{AbstractFloat}>, vec3<{AbstractFloat}>) -> vec3<{AbstractFloat}>, | |
| (vec3<i32>, vec3<i32>) -> vec3<i32>, | |
| (vec3<i64>, vec3<i64>) -> vec3<i64>, | |
| (vec3<u32>, vec3<u32>) -> vec3<u32>, | |
| (vec3<u64>, vec3<u64>) -> vec3<u64>, | |
| (vec3<f32>, vec3<f32>) -> vec3<f32>, | |
| (vec3<f16>, vec3<f16>) -> vec3<f16>, | |
| (vec3<f64>, vec3<f64>) -> vec3<f64>, | |
| (vec4<{AbstractInt}>, vec4<{AbstractInt}>) -> vec4<{AbstractInt}>, | |
| (vec4<{AbstractFloat}>, vec4<{AbstractFloat}>) -> vec4<{AbstractFloat}>, | |
| (vec4<i32>, vec4<i32>) -> vec4<i32>, | |
| (vec4<i64>, vec4<i64>) -> vec4<i64>, | |
| (vec4<u32>, vec4<u32>) -> vec4<u32>, | |
| (vec4<u64>, vec4<u64>) -> vec4<u64>, | |
| (vec4<f32>, vec4<f32>) -> vec4<f32>, | |
| (vec4<f16>, vec4<f16>) -> vec4<f16>, | |
| (vec4<f64>, vec4<f64>) -> vec4<f64>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG Supplying argument 0 of type f32 | |
| DEBUG Remaining overloads: List { | |
| rules: [ | |
| (f32, f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG Supplying argument 1 of type f32 | |
| DEBUG Remaining overloads: List { | |
| rules: [ | |
| (f32, f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG initial overloads for Max, List { | |
| rules: [ | |
| ({AbstractInt}, {AbstractInt}) -> {AbstractInt}, | |
| ({AbstractFloat}, {AbstractFloat}) -> {AbstractFloat}, | |
| (i32, i32) -> i32, | |
| (i64, i64) -> i64, | |
| (u32, u32) -> u32, | |
| (u64, u64) -> u64, | |
| (f32, f32) -> f32, | |
| (f16, f16) -> f16, | |
| (f64, f64) -> f64, | |
| (vec2<{AbstractInt}>, vec2<{AbstractInt}>) -> vec2<{AbstractInt}>, | |
| (vec2<{AbstractFloat}>, vec2<{AbstractFloat}>) -> vec2<{AbstractFloat}>, | |
| (vec2<i32>, vec2<i32>) -> vec2<i32>, | |
| (vec2<i64>, vec2<i64>) -> vec2<i64>, | |
| (vec2<u32>, vec2<u32>) -> vec2<u32>, | |
| (vec2<u64>, vec2<u64>) -> vec2<u64>, | |
| (vec2<f32>, vec2<f32>) -> vec2<f32>, | |
| (vec2<f16>, vec2<f16>) -> vec2<f16>, | |
| (vec2<f64>, vec2<f64>) -> vec2<f64>, | |
| (vec3<{AbstractInt}>, vec3<{AbstractInt}>) -> vec3<{AbstractInt}>, | |
| (vec3<{AbstractFloat}>, vec3<{AbstractFloat}>) -> vec3<{AbstractFloat}>, | |
| (vec3<i32>, vec3<i32>) -> vec3<i32>, | |
| (vec3<i64>, vec3<i64>) -> vec3<i64>, | |
| (vec3<u32>, vec3<u32>) -> vec3<u32>, | |
| (vec3<u64>, vec3<u64>) -> vec3<u64>, | |
| (vec3<f32>, vec3<f32>) -> vec3<f32>, | |
| (vec3<f16>, vec3<f16>) -> vec3<f16>, | |
| (vec3<f64>, vec3<f64>) -> vec3<f64>, | |
| (vec4<{AbstractInt}>, vec4<{AbstractInt}>) -> vec4<{AbstractInt}>, | |
| (vec4<{AbstractFloat}>, vec4<{AbstractFloat}>) -> vec4<{AbstractFloat}>, | |
| (vec4<i32>, vec4<i32>) -> vec4<i32>, | |
| (vec4<i64>, vec4<i64>) -> vec4<i64>, | |
| (vec4<u32>, vec4<u32>) -> vec4<u32>, | |
| (vec4<u64>, vec4<u64>) -> vec4<u64>, | |
| (vec4<f32>, vec4<f32>) -> vec4<f32>, | |
| (vec4<f16>, vec4<f16>) -> vec4<f16>, | |
| (vec4<f64>, vec4<f64>) -> vec4<f64>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG overloads after arg 0 of type f32: List { | |
| rules: [ | |
| (f32, f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG overloads after arg 1 of type f32: List { | |
| rules: [ | |
| (f32, f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG Resolving [230] = Math { fun: Max, arg: [227], arg1: Some([229]), arg2: None, arg3: None } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [231] = Compose { ty: [3], components: [[225], [230]] } : Handle([3]) | |
| DEBUG Resolving [232] = AccessIndex { base: [231], index: 1 } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [233] = AccessIndex { base: [231], index: 0 } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [234] = Select { condition: [220], accept: [233], reject: [232] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG wgsl automatic_conversion_consensus: f32, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [235] = Binary { op: Divide, left: [217], right: [234] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [236] = AccessIndex { base: [83], index: 1 } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [237] = AccessIndex { base: [83], index: 0 } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [238] = Select { condition: [220], accept: [237], reject: [236] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [239] = Load { pointer: [214] } : Handle([0]) | |
| DEBUG wgsl automatic_conversion_consensus: f32, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [240] = Binary { op: Multiply, left: [238], right: [239] } : Handle([0]) | |
| DEBUG Resolving [241] = AccessIndex { base: [73], index: 1 } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [242] = AccessIndex { base: [73], index: 0 } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [243] = Select { condition: [220], accept: [242], reject: [241] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [244] = Load { pointer: [214] } : Handle([0]) | |
| DEBUG wgsl automatic_conversion_consensus: f32, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [245] = Binary { op: Multiply, left: [243], right: [244] } : Handle([0]) | |
| DEBUG Resolving [246] = AccessIndex { base: [13], index: 6 } : Handle([9]) | |
| DEBUG Resolving [247] = AccessIndex { base: [246], index: 1 } : Handle([0]) | |
| DEBUG Resolving [248] = AccessIndex { base: [13], index: 6 } : Handle([9]) | |
| DEBUG Resolving [249] = AccessIndex { base: [248], index: 2 } : Handle([0]) | |
| DEBUG Resolving [250] = AccessIndex { base: [13], index: 6 } : Handle([9]) | |
| DEBUG Resolving [251] = AccessIndex { base: [250], index: 3 } : Handle([0]) | |
| DEBUG Resolving [252] = AccessIndex { base: [13], index: 6 } : Handle([9]) | |
| DEBUG Resolving [253] = AccessIndex { base: [252], index: 0 } : Handle([0]) | |
| DEBUG Resolving [254] = AccessIndex { base: [13], index: 7 } : Handle([10]) | |
| DEBUG Resolving [255] = AccessIndex { base: [254], index: 0 } : Handle([0]) | |
| DEBUG Resolving [256] = AccessIndex { base: [13], index: 7 } : Handle([10]) | |
| DEBUG Resolving [257] = AccessIndex { base: [256], index: 1 } : Handle([0]) | |
| DEBUG Resolving [258] = AccessIndex { base: [13], index: 7 } : Handle([10]) | |
| DEBUG Resolving [259] = AccessIndex { base: [258], index: 2 } : Handle([0]) | |
| DEBUG Resolving [260] = AccessIndex { base: [13], index: 7 } : Handle([10]) | |
| DEBUG Resolving [261] = AccessIndex { base: [260], index: 3 } : Handle([0]) | |
| DEBUG wgsl automatic_conversion_consensus: f32, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [262] = Binary { op: Divide, left: [217], right: [255] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [263] = Literal(AbstractFloat(0.0)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG Resolving [264] = Literal(F32(0.0)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [265] = Literal(AbstractFloat(0.0)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG wgsl automatic_conversion_consensus: f32, {AbstractFloat} | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [266] = Literal(F32(0.0)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [267] = Binary { op: LessEqual, left: [255], right: [266] } : Value(Scalar(Scalar { kind: Bool, width: 1 })) | |
| DEBUG Resolving [268] = Select { condition: [267], accept: [264], reject: [262] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG wgsl automatic_conversion_consensus: f32, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [269] = Binary { op: Divide, left: [217], right: [257] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [270] = Literal(AbstractFloat(0.0)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG Resolving [271] = Literal(F32(0.0)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [272] = Literal(AbstractFloat(0.0)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG wgsl automatic_conversion_consensus: f32, {AbstractFloat} | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [273] = Literal(F32(0.0)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [274] = Binary { op: LessEqual, left: [257], right: [273] } : Value(Scalar(Scalar { kind: Bool, width: 1 })) | |
| DEBUG Resolving [275] = Select { condition: [274], accept: [271], reject: [269] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG wgsl automatic_conversion_consensus: f32, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [276] = Binary { op: Divide, left: [217], right: [259] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [277] = Literal(AbstractFloat(0.0)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG Resolving [278] = Literal(F32(0.0)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [279] = Literal(AbstractFloat(0.0)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG wgsl automatic_conversion_consensus: f32, {AbstractFloat} | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [280] = Literal(F32(0.0)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [281] = Binary { op: LessEqual, left: [259], right: [280] } : Value(Scalar(Scalar { kind: Bool, width: 1 })) | |
| DEBUG Resolving [282] = Select { condition: [281], accept: [278], reject: [276] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG wgsl automatic_conversion_consensus: f32, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [283] = Binary { op: Divide, left: [217], right: [261] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [284] = Literal(AbstractFloat(0.0)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG Resolving [285] = Literal(F32(0.0)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [286] = Literal(AbstractFloat(0.0)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG wgsl automatic_conversion_consensus: f32, {AbstractFloat} | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [287] = Literal(F32(0.0)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [288] = Binary { op: LessEqual, left: [261], right: [287] } : Value(Scalar(Scalar { kind: Bool, width: 1 })) | |
| DEBUG Resolving [289] = Select { condition: [288], accept: [285], reject: [283] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [290] = AccessIndex { base: [73], index: 0 } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG wgsl automatic_conversion_consensus: f32, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [291] = Binary { op: Subtract, left: [290], right: [253] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG wgsl automatic_conversion_consensus: f32, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [292] = Binary { op: Subtract, left: [291], right: [247] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG wgsl automatic_conversion_consensus: f32, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [293] = Binary { op: Multiply, left: [292], right: [268] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [294] = AccessIndex { base: [73], index: 1 } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG wgsl automatic_conversion_consensus: f32, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [295] = Binary { op: Subtract, left: [294], right: [247] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG wgsl automatic_conversion_consensus: f32, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [296] = Binary { op: Subtract, left: [295], right: [249] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG wgsl automatic_conversion_consensus: f32, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [297] = Binary { op: Multiply, left: [296], right: [275] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [298] = AccessIndex { base: [73], index: 0 } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG wgsl automatic_conversion_consensus: f32, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [299] = Binary { op: Subtract, left: [298], right: [249] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG wgsl automatic_conversion_consensus: f32, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [300] = Binary { op: Subtract, left: [299], right: [251] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG wgsl automatic_conversion_consensus: f32, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [301] = Binary { op: Multiply, left: [300], right: [282] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [302] = AccessIndex { base: [73], index: 1 } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG wgsl automatic_conversion_consensus: f32, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [303] = Binary { op: Subtract, left: [302], right: [251] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG wgsl automatic_conversion_consensus: f32, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [304] = Binary { op: Subtract, left: [303], right: [253] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG wgsl automatic_conversion_consensus: f32, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [305] = Binary { op: Multiply, left: [304], right: [289] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [306] = CallResult([31]) : Handle([0]) | |
| DEBUG Resolving [307] = CallResult([31]) : Handle([0]) | |
| DEBUG Resolving [308] = CallResult([31]) : Handle([0]) | |
| DEBUG Resolving [309] = CallResult([31]) : Handle([0]) | |
| DEBUG Resolving [310] = Constant([0]) : Handle([0]) | |
| DEBUG Resolving [311] = Literal(AbstractFloat(2.0)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG wgsl automatic_conversion_consensus: f32, {AbstractFloat} | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [312] = Literal(F32(2.0)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [313] = Literal(F32(3.1415925)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [314] = Literal(F32(1.5707963)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG wgsl automatic_conversion_consensus: f32, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [315] = Binary { op: Multiply, left: [247], right: [314] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG wgsl automatic_conversion_consensus: f32, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [316] = Binary { op: Multiply, left: [315], right: [306] } : Handle([0]) | |
| DEBUG Resolving [317] = Constant([0]) : Handle([0]) | |
| DEBUG Resolving [318] = Literal(AbstractFloat(2.0)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG wgsl automatic_conversion_consensus: f32, {AbstractFloat} | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [319] = Literal(F32(2.0)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [320] = Literal(F32(3.1415925)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [321] = Literal(F32(1.5707963)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG wgsl automatic_conversion_consensus: f32, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [322] = Binary { op: Multiply, left: [249], right: [321] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG wgsl automatic_conversion_consensus: f32, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [323] = Binary { op: Multiply, left: [322], right: [307] } : Handle([0]) | |
| DEBUG Resolving [324] = Constant([0]) : Handle([0]) | |
| DEBUG Resolving [325] = Literal(AbstractFloat(2.0)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG wgsl automatic_conversion_consensus: f32, {AbstractFloat} | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [326] = Literal(F32(2.0)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [327] = Literal(F32(3.1415925)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [328] = Literal(F32(1.5707963)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG wgsl automatic_conversion_consensus: f32, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [329] = Binary { op: Multiply, left: [251], right: [328] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG wgsl automatic_conversion_consensus: f32, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [330] = Binary { op: Multiply, left: [329], right: [308] } : Handle([0]) | |
| DEBUG Resolving [331] = Constant([0]) : Handle([0]) | |
| DEBUG Resolving [332] = Literal(AbstractFloat(2.0)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG wgsl automatic_conversion_consensus: f32, {AbstractFloat} | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [333] = Literal(F32(2.0)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [334] = Literal(F32(3.1415925)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [335] = Literal(F32(1.5707963)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG wgsl automatic_conversion_consensus: f32, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [336] = Binary { op: Multiply, left: [253], right: [335] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG wgsl automatic_conversion_consensus: f32, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [337] = Binary { op: Multiply, left: [336], right: [309] } : Handle([0]) | |
| DEBUG wgsl automatic_conversion_consensus: f32, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [338] = Binary { op: Add, left: [293], right: [316] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG wgsl automatic_conversion_consensus: f32, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [339] = Binary { op: Add, left: [338], right: [297] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG wgsl automatic_conversion_consensus: f32, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [340] = Binary { op: Add, left: [339], right: [323] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG wgsl automatic_conversion_consensus: f32, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [341] = Binary { op: Add, left: [340], right: [301] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG wgsl automatic_conversion_consensus: f32, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [342] = Binary { op: Add, left: [341], right: [330] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG wgsl automatic_conversion_consensus: f32, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [343] = Binary { op: Add, left: [342], right: [305] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG wgsl automatic_conversion_consensus: f32, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [344] = Binary { op: Add, left: [343], right: [337] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [345] = AccessIndex { base: [126], index: 1 } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [346] = AccessIndex { base: [126], index: 0 } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Initial overloads: List { | |
| rules: [ | |
| ({AbstractFloat}, {AbstractFloat}) -> {AbstractFloat}, | |
| (f32, f32) -> f32, | |
| (f16, f16) -> f16, | |
| (f64, f64) -> f64, | |
| (vec2<{AbstractFloat}>, vec2<{AbstractFloat}>) -> vec2<{AbstractFloat}>, | |
| (vec2<f32>, vec2<f32>) -> vec2<f32>, | |
| (vec2<f16>, vec2<f16>) -> vec2<f16>, | |
| (vec2<f64>, vec2<f64>) -> vec2<f64>, | |
| (vec3<{AbstractFloat}>, vec3<{AbstractFloat}>) -> vec3<{AbstractFloat}>, | |
| (vec3<f32>, vec3<f32>) -> vec3<f32>, | |
| (vec3<f16>, vec3<f16>) -> vec3<f16>, | |
| (vec3<f64>, vec3<f64>) -> vec3<f64>, | |
| (vec4<{AbstractFloat}>, vec4<{AbstractFloat}>) -> vec4<{AbstractFloat}>, | |
| (vec4<f32>, vec4<f32>) -> vec4<f32>, | |
| (vec4<f16>, vec4<f16>) -> vec4<f16>, | |
| (vec4<f64>, vec4<f64>) -> vec4<f64>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG Supplying argument 0 of type f32 | |
| DEBUG Remaining overloads: List { | |
| rules: [ | |
| (f32, f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG Supplying argument 1 of type f32 | |
| DEBUG Remaining overloads: List { | |
| rules: [ | |
| (f32, f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG initial overloads for Atan2, List { | |
| rules: [ | |
| ({AbstractFloat}, {AbstractFloat}) -> {AbstractFloat}, | |
| (f32, f32) -> f32, | |
| (f16, f16) -> f16, | |
| (f64, f64) -> f64, | |
| (vec2<{AbstractFloat}>, vec2<{AbstractFloat}>) -> vec2<{AbstractFloat}>, | |
| (vec2<f32>, vec2<f32>) -> vec2<f32>, | |
| (vec2<f16>, vec2<f16>) -> vec2<f16>, | |
| (vec2<f64>, vec2<f64>) -> vec2<f64>, | |
| (vec3<{AbstractFloat}>, vec3<{AbstractFloat}>) -> vec3<{AbstractFloat}>, | |
| (vec3<f32>, vec3<f32>) -> vec3<f32>, | |
| (vec3<f16>, vec3<f16>) -> vec3<f16>, | |
| (vec3<f64>, vec3<f64>) -> vec3<f64>, | |
| (vec4<{AbstractFloat}>, vec4<{AbstractFloat}>) -> vec4<{AbstractFloat}>, | |
| (vec4<f32>, vec4<f32>) -> vec4<f32>, | |
| (vec4<f16>, vec4<f16>) -> vec4<f16>, | |
| (vec4<f64>, vec4<f64>) -> vec4<f64>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG overloads after arg 0 of type f32: List { | |
| rules: [ | |
| (f32, f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG overloads after arg 1 of type f32: List { | |
| rules: [ | |
| (f32, f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG Resolving [347] = Math { fun: Atan2, arg: [345], arg1: Some([346]), arg2: None, arg3: None } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG wgsl automatic_conversion_consensus: f32, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [348] = Binary { op: Multiply, left: [347], right: [88] } : Handle([0]) | |
| DEBUG Resolving [349] = AccessIndex { base: [84], index: 0 } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [350] = Literal(AbstractFloat(0.0)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG wgsl automatic_conversion_consensus: f32, {AbstractFloat} | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [351] = Literal(F32(0.0)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [352] = Binary { op: GreaterEqual, left: [349], right: [351] } : Value(Scalar(Scalar { kind: Bool, width: 1 })) | |
| DEBUG Resolving [353] = AccessIndex { base: [84], index: 1 } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [354] = Literal(AbstractFloat(0.0)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG wgsl automatic_conversion_consensus: f32, {AbstractFloat} | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [355] = Literal(F32(0.0)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [356] = Binary { op: Less, left: [353], right: [355] } : Value(Scalar(Scalar { kind: Bool, width: 1 })) | |
| DEBUG Resolving [357] = Load { pointer: [214] } : Handle([0]) | |
| DEBUG wgsl automatic_conversion_consensus: f32, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [358] = Binary { op: Multiply, left: [348], right: [357] } : Handle([0]) | |
| DEBUG wgsl automatic_conversion_consensus: f32, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [359] = Binary { op: Subtract, left: [338], right: [358] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [360] = Load { pointer: [214] } : Handle([0]) | |
| DEBUG wgsl automatic_conversion_consensus: f32, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [361] = Binary { op: Multiply, left: [348], right: [360] } : Handle([0]) | |
| DEBUG wgsl automatic_conversion_consensus: f32, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [362] = Binary { op: Add, left: [339], right: [361] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [363] = AccessIndex { base: [84], index: 1 } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [364] = Literal(AbstractFloat(0.0)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG wgsl automatic_conversion_consensus: f32, {AbstractFloat} | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [365] = Literal(F32(0.0)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [366] = Binary { op: GreaterEqual, left: [363], right: [365] } : Value(Scalar(Scalar { kind: Bool, width: 1 })) | |
| DEBUG Resolving [367] = Load { pointer: [214] } : Handle([0]) | |
| DEBUG wgsl automatic_conversion_consensus: f32, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [368] = Binary { op: Multiply, left: [348], right: [367] } : Handle([0]) | |
| DEBUG wgsl automatic_conversion_consensus: f32, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [369] = Binary { op: Subtract, left: [342], right: [368] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [370] = Load { pointer: [214] } : Handle([0]) | |
| DEBUG wgsl automatic_conversion_consensus: f32, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [371] = Binary { op: Multiply, left: [348], right: [370] } : Handle([0]) | |
| DEBUG wgsl automatic_conversion_consensus: f32, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [372] = Binary { op: Add, left: [343], right: [371] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [373] = AccessIndex { base: [126], index: 0 } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [374] = AccessIndex { base: [126], index: 1 } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG wgsl automatic_conversion_consensus: f32, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [375] = Binary { op: Less, left: [373], right: [374] } : Value(Scalar(Scalar { kind: Bool, width: 1 })) | |
| DEBUG Resolving [376] = AccessIndex { base: [84], index: 1 } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [377] = Literal(AbstractFloat(0.0)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG wgsl automatic_conversion_consensus: f32, {AbstractFloat} | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [378] = Literal(F32(0.0)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [379] = Binary { op: Less, left: [376], right: [378] } : Value(Scalar(Scalar { kind: Bool, width: 1 })) | |
| DEBUG Resolving [380] = AccessIndex { base: [83], index: 0 } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG wgsl automatic_conversion_consensus: f32, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [381] = Binary { op: Subtract, left: [380], right: [253] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [382] = Load { pointer: [214] } : Handle([0]) | |
| DEBUG wgsl automatic_conversion_consensus: f32, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [383] = Binary { op: Multiply, left: [381], right: [382] } : Handle([0]) | |
| DEBUG Resolving [384] = AccessIndex { base: [83], index: 0 } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG wgsl automatic_conversion_consensus: f32, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [385] = Binary { op: Subtract, left: [384], right: [251] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [386] = Load { pointer: [214] } : Handle([0]) | |
| DEBUG wgsl automatic_conversion_consensus: f32, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [387] = Binary { op: Multiply, left: [385], right: [386] } : Handle([0]) | |
| DEBUG wgsl automatic_conversion_consensus: f32, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [388] = Binary { op: Subtract, left: [341], right: [387] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [389] = AccessIndex { base: [84], index: 0 } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [390] = Literal(AbstractFloat(0.0)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG wgsl automatic_conversion_consensus: f32, {AbstractFloat} | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [391] = Literal(F32(0.0)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [392] = Binary { op: Less, left: [389], right: [391] } : Value(Scalar(Scalar { kind: Bool, width: 1 })) | |
| DEBUG Resolving [393] = AccessIndex { base: [83], index: 1 } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG wgsl automatic_conversion_consensus: f32, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [394] = Binary { op: Subtract, left: [393], right: [253] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [395] = Load { pointer: [214] } : Handle([0]) | |
| DEBUG wgsl automatic_conversion_consensus: f32, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [396] = Binary { op: Multiply, left: [394], right: [395] } : Handle([0]) | |
| DEBUG wgsl automatic_conversion_consensus: f32, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [397] = Binary { op: Subtract, left: [343], right: [396] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [398] = AccessIndex { base: [83], index: 1 } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG wgsl automatic_conversion_consensus: f32, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [399] = Binary { op: Subtract, left: [398], right: [247] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [400] = Load { pointer: [214] } : Handle([0]) | |
| DEBUG wgsl automatic_conversion_consensus: f32, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [401] = Binary { op: Multiply, left: [399], right: [400] } : Handle([0]) | |
| DEBUG wgsl automatic_conversion_consensus: f32, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [402] = Binary { op: Add, left: [338], right: [401] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG wgsl automatic_conversion_consensus: f32, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [403] = Binary { op: Divide, left: [208], right: [211] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG wgsl automatic_conversion_consensus: f32, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [404] = Binary { op: Divide, left: [210], right: [211] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [405] = Literal(AbstractFloat(0.0)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG Resolving [406] = Literal(F32(0.0)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [407] = Select { condition: [44], accept: [403], reject: [406] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [408] = Load { pointer: [206] } : Handle([0]) | |
| DEBUG Resolving [409] = Binary { op: Subtract, left: [408], right: [407] } : Handle([0]) | |
| DEBUG Resolving [410] = Load { pointer: [206] } : Handle([0]) | |
| DEBUG Resolving [411] = Literal(AbstractFloat(1.0)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG wgsl automatic_conversion_consensus: f32, {AbstractFloat} | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [412] = Literal(F32(1.0)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [413] = Binary { op: GreaterEqual, left: [410], right: [412] } : Value(Scalar(Scalar { kind: Bool, width: 1 })) | |
| DEBUG Resolving [414] = Load { pointer: [206] } : Handle([0]) | |
| DEBUG Initial overloads: List { | |
| rules: [ | |
| ({AbstractFloat}) -> {AbstractFloat}, | |
| (f32) -> f32, | |
| (f16) -> f16, | |
| (f64) -> f64, | |
| (vec2<{AbstractFloat}>) -> vec2<{AbstractFloat}>, | |
| (vec2<f32>) -> vec2<f32>, | |
| (vec2<f16>) -> vec2<f16>, | |
| (vec2<f64>) -> vec2<f64>, | |
| (vec3<{AbstractFloat}>) -> vec3<{AbstractFloat}>, | |
| (vec3<f32>) -> vec3<f32>, | |
| (vec3<f16>) -> vec3<f16>, | |
| (vec3<f64>) -> vec3<f64>, | |
| (vec4<{AbstractFloat}>) -> vec4<{AbstractFloat}>, | |
| (vec4<f32>) -> vec4<f32>, | |
| (vec4<f16>) -> vec4<f16>, | |
| (vec4<f64>) -> vec4<f64>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG Supplying argument 0 of type f32 | |
| DEBUG Remaining overloads: List { | |
| rules: [ | |
| (f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG initial overloads for Floor, List { | |
| rules: [ | |
| ({AbstractFloat}) -> {AbstractFloat}, | |
| (f32) -> f32, | |
| (f16) -> f16, | |
| (f64) -> f64, | |
| (vec2<{AbstractFloat}>) -> vec2<{AbstractFloat}>, | |
| (vec2<f32>) -> vec2<f32>, | |
| (vec2<f16>) -> vec2<f16>, | |
| (vec2<f64>) -> vec2<f64>, | |
| (vec3<{AbstractFloat}>) -> vec3<{AbstractFloat}>, | |
| (vec3<f32>) -> vec3<f32>, | |
| (vec3<f16>) -> vec3<f16>, | |
| (vec3<f64>) -> vec3<f64>, | |
| (vec4<{AbstractFloat}>) -> vec4<{AbstractFloat}>, | |
| (vec4<f32>) -> vec4<f32>, | |
| (vec4<f16>) -> vec4<f16>, | |
| (vec4<f64>) -> vec4<f64>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG overloads after arg 0 of type f32: List { | |
| rules: [ | |
| (f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG Resolving [415] = Math { fun: Floor, arg: [414], arg1: None, arg2: None, arg3: None } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [416] = Load { pointer: [206] } : Handle([0]) | |
| DEBUG wgsl automatic_conversion_consensus: f32, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [417] = Binary { op: Divide, left: [416], right: [415] } : Handle([0]) | |
| DEBUG Resolving [418] = AccessIndex { base: [196], index: 3 } : Value(ValuePointer { size: None, scalar: Scalar { kind: Float, width: 4 }, space: Function }) | |
| DEBUG Resolving [419] = Load { pointer: [203] } : Handle([0]) | |
| DEBUG Resolving [420] = Load { pointer: [214] } : Handle([0]) | |
| DEBUG Resolving [421] = CallResult([33]) : Handle([0]) | |
| DEBUG Resolving [422] = Load { pointer: [418] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [423] = Binary { op: Multiply, left: [422], right: [421] } : Handle([0]) | |
| DEBUG Resolving [424] = Load { pointer: [206] } : Handle([0]) | |
| DEBUG wgsl automatic_conversion_consensus: f32, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [425] = Binary { op: Subtract, left: [424], right: [403] } : Handle([0]) | |
| DEBUG Resolving [426] = Literal(AbstractFloat(0.0)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG wgsl automatic_conversion_consensus: f32, {AbstractFloat} | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [427] = Literal(F32(0.0)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [428] = Binary { op: Greater, left: [425], right: [427] } : Value(Scalar(Scalar { kind: Bool, width: 1 })) | |
| DEBUG wgsl automatic_conversion_consensus: f32, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [429] = Binary { op: Add, left: [403], right: [425] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [430] = AccessIndex { base: [196], index: 3 } : Value(ValuePointer { size: None, scalar: Scalar { kind: Float, width: 4 }, space: Function }) | |
| DEBUG Resolving [431] = Load { pointer: [203] } : Handle([0]) | |
| DEBUG Resolving [432] = Load { pointer: [214] } : Handle([0]) | |
| DEBUG Resolving [433] = CallResult([33]) : Handle([0]) | |
| DEBUG Resolving [434] = Load { pointer: [430] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [435] = Binary { op: Multiply, left: [434], right: [433] } : Handle([0]) | |
| DEBUG Resolving [436] = Load { pointer: [196] } : Handle([2]) | |
| DEBUG Resolving [437] = CallResult([20]) : Handle([2]) | |
| DEBUG Resolving [438] = Load { pointer: [161] } : Handle([0]) | |
| DEBUG wgsl automatic_conversion_consensus: f32, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [439] = Binary { op: Subtract, left: [86], right: [438] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Initial overloads: List { | |
| rules: [ | |
| ({AbstractFloat}) -> {AbstractFloat}, | |
| (f32) -> f32, | |
| (f16) -> f16, | |
| (f64) -> f64, | |
| (vec2<{AbstractFloat}>) -> vec2<{AbstractFloat}>, | |
| (vec2<f32>) -> vec2<f32>, | |
| (vec2<f16>) -> vec2<f16>, | |
| (vec2<f64>) -> vec2<f64>, | |
| (vec3<{AbstractFloat}>) -> vec3<{AbstractFloat}>, | |
| (vec3<f32>) -> vec3<f32>, | |
| (vec3<f16>) -> vec3<f16>, | |
| (vec3<f64>) -> vec3<f64>, | |
| (vec4<{AbstractFloat}>) -> vec4<{AbstractFloat}>, | |
| (vec4<f32>) -> vec4<f32>, | |
| (vec4<f16>) -> vec4<f16>, | |
| (vec4<f64>) -> vec4<f64>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG Supplying argument 0 of type f32 | |
| DEBUG Remaining overloads: List { | |
| rules: [ | |
| (f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG initial overloads for Saturate, List { | |
| rules: [ | |
| ({AbstractFloat}) -> {AbstractFloat}, | |
| (f32) -> f32, | |
| (f16) -> f16, | |
| (f64) -> f64, | |
| (vec2<{AbstractFloat}>) -> vec2<{AbstractFloat}>, | |
| (vec2<f32>) -> vec2<f32>, | |
| (vec2<f16>) -> vec2<f16>, | |
| (vec2<f64>) -> vec2<f64>, | |
| (vec3<{AbstractFloat}>) -> vec3<{AbstractFloat}>, | |
| (vec3<f32>) -> vec3<f32>, | |
| (vec3<f16>) -> vec3<f16>, | |
| (vec3<f64>) -> vec3<f64>, | |
| (vec4<{AbstractFloat}>) -> vec4<{AbstractFloat}>, | |
| (vec4<f32>) -> vec4<f32>, | |
| (vec4<f16>) -> vec4<f16>, | |
| (vec4<f64>) -> vec4<f64>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG overloads after arg 0 of type f32: List { | |
| rules: [ | |
| (f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG Resolving [440] = Math { fun: Saturate, arg: [439], arg1: None, arg2: None, arg3: None } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Initial overloads: [ | |
| ({AbstractFloat}, {AbstractFloat}, {AbstractFloat}) -> {AbstractFloat}, | |
| ({AbstractFloat}, {AbstractFloat}, {AbstractFloat}) -> {AbstractFloat}, | |
| (vec2<{AbstractFloat}>, vec2<{AbstractFloat}>, vec2<{AbstractFloat}>) -> vec2<{AbstractFloat}>, | |
| (vec2<{AbstractFloat}>, vec2<{AbstractFloat}>, {AbstractFloat}) -> vec2<{AbstractFloat}>, | |
| (vec3<{AbstractFloat}>, vec3<{AbstractFloat}>, vec3<{AbstractFloat}>) -> vec3<{AbstractFloat}>, | |
| (vec3<{AbstractFloat}>, vec3<{AbstractFloat}>, {AbstractFloat}) -> vec3<{AbstractFloat}>, | |
| (vec4<{AbstractFloat}>, vec4<{AbstractFloat}>, vec4<{AbstractFloat}>) -> vec4<{AbstractFloat}>, | |
| (vec4<{AbstractFloat}>, vec4<{AbstractFloat}>, {AbstractFloat}) -> vec4<{AbstractFloat}>, | |
| (f32, f32, f32) -> f32, | |
| (f32, f32, f32) -> f32, | |
| (vec2<f32>, vec2<f32>, vec2<f32>) -> vec2<f32>, | |
| (vec2<f32>, vec2<f32>, f32) -> vec2<f32>, | |
| (vec3<f32>, vec3<f32>, vec3<f32>) -> vec3<f32>, | |
| (vec3<f32>, vec3<f32>, f32) -> vec3<f32>, | |
| (vec4<f32>, vec4<f32>, vec4<f32>) -> vec4<f32>, | |
| (vec4<f32>, vec4<f32>, f32) -> vec4<f32>, | |
| (f16, f16, f16) -> f16, | |
| (f16, f16, f16) -> f16, | |
| (vec2<f16>, vec2<f16>, vec2<f16>) -> vec2<f16>, | |
| (vec2<f16>, vec2<f16>, f16) -> vec2<f16>, | |
| (vec3<f16>, vec3<f16>, vec3<f16>) -> vec3<f16>, | |
| (vec3<f16>, vec3<f16>, f16) -> vec3<f16>, | |
| (vec4<f16>, vec4<f16>, vec4<f16>) -> vec4<f16>, | |
| (vec4<f16>, vec4<f16>, f16) -> vec4<f16>, | |
| (f64, f64, f64) -> f64, | |
| (f64, f64, f64) -> f64, | |
| (vec2<f64>, vec2<f64>, vec2<f64>) -> vec2<f64>, | |
| (vec2<f64>, vec2<f64>, f64) -> vec2<f64>, | |
| (vec3<f64>, vec3<f64>, vec3<f64>) -> vec3<f64>, | |
| (vec3<f64>, vec3<f64>, f64) -> vec3<f64>, | |
| (vec4<f64>, vec4<f64>, vec4<f64>) -> vec4<f64>, | |
| (vec4<f64>, vec4<f64>, f64) -> vec4<f64>, | |
| ] | |
| DEBUG Supplying argument 0 of type vec4<f32> | |
| DEBUG arg 0 of type vec4<f32> | |
| DEBUG considering rule ({AbstractFloat}, {AbstractFloat}, {AbstractFloat}) -> {AbstractFloat} | |
| DEBUG no conversion possible | |
| DEBUG considering rule ({AbstractFloat}, {AbstractFloat}, {AbstractFloat}) -> {AbstractFloat} | |
| DEBUG no conversion possible | |
| DEBUG considering rule (vec2<{AbstractFloat}>, vec2<{AbstractFloat}>, vec2<{AbstractFloat}>) -> vec2<{AbstractFloat}> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (vec2<{AbstractFloat}>, vec2<{AbstractFloat}>, {AbstractFloat}) -> vec2<{AbstractFloat}> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (vec3<{AbstractFloat}>, vec3<{AbstractFloat}>, vec3<{AbstractFloat}>) -> vec3<{AbstractFloat}> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (vec3<{AbstractFloat}>, vec3<{AbstractFloat}>, {AbstractFloat}) -> vec3<{AbstractFloat}> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (vec4<{AbstractFloat}>, vec4<{AbstractFloat}>, vec4<{AbstractFloat}>) -> vec4<{AbstractFloat}> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (vec4<{AbstractFloat}>, vec4<{AbstractFloat}>, {AbstractFloat}) -> vec4<{AbstractFloat}> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (f32, f32, f32) -> f32 | |
| DEBUG no conversion possible | |
| DEBUG considering rule (f32, f32, f32) -> f32 | |
| DEBUG no conversion possible | |
| DEBUG considering rule (vec2<f32>, vec2<f32>, vec2<f32>) -> vec2<f32> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (vec2<f32>, vec2<f32>, f32) -> vec2<f32> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (vec3<f32>, vec3<f32>, vec3<f32>) -> vec3<f32> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (vec3<f32>, vec3<f32>, f32) -> vec3<f32> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (vec4<f32>, vec4<f32>, vec4<f32>) -> vec4<f32> | |
| DEBUG types are equivalent | |
| DEBUG considering rule (vec4<f32>, vec4<f32>, f32) -> vec4<f32> | |
| DEBUG types are equivalent | |
| DEBUG considering rule (f16, f16, f16) -> f16 | |
| DEBUG no conversion possible | |
| DEBUG considering rule (f16, f16, f16) -> f16 | |
| DEBUG no conversion possible | |
| DEBUG considering rule (vec2<f16>, vec2<f16>, vec2<f16>) -> vec2<f16> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (vec2<f16>, vec2<f16>, f16) -> vec2<f16> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (vec3<f16>, vec3<f16>, vec3<f16>) -> vec3<f16> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (vec3<f16>, vec3<f16>, f16) -> vec3<f16> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (vec4<f16>, vec4<f16>, vec4<f16>) -> vec4<f16> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (vec4<f16>, vec4<f16>, f16) -> vec4<f16> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (f64, f64, f64) -> f64 | |
| DEBUG no conversion possible | |
| DEBUG considering rule (f64, f64, f64) -> f64 | |
| DEBUG no conversion possible | |
| DEBUG considering rule (vec2<f64>, vec2<f64>, vec2<f64>) -> vec2<f64> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (vec2<f64>, vec2<f64>, f64) -> vec2<f64> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (vec3<f64>, vec3<f64>, vec3<f64>) -> vec3<f64> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (vec3<f64>, vec3<f64>, f64) -> vec3<f64> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (vec4<f64>, vec4<f64>, vec4<f64>) -> vec4<f64> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (vec4<f64>, vec4<f64>, f64) -> vec4<f64> | |
| DEBUG no conversion possible | |
| DEBUG Remaining overloads: [ | |
| (vec4<f32>, vec4<f32>, vec4<f32>) -> vec4<f32>, | |
| (vec4<f32>, vec4<f32>, f32) -> vec4<f32>, | |
| ] | |
| DEBUG Supplying argument 1 of type vec4<f32> | |
| DEBUG arg 1 of type vec4<f32> | |
| DEBUG considering rule (vec4<f32>, vec4<f32>, vec4<f32>) -> vec4<f32> | |
| DEBUG types are equivalent | |
| DEBUG considering rule (vec4<f32>, vec4<f32>, f32) -> vec4<f32> | |
| DEBUG types are equivalent | |
| DEBUG Remaining overloads: [ | |
| (vec4<f32>, vec4<f32>, vec4<f32>) -> vec4<f32>, | |
| (vec4<f32>, vec4<f32>, f32) -> vec4<f32>, | |
| ] | |
| DEBUG Supplying argument 2 of type f32 | |
| DEBUG arg 2 of type f32 | |
| DEBUG considering rule (vec4<f32>, vec4<f32>, vec4<f32>) -> vec4<f32> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (vec4<f32>, vec4<f32>, f32) -> vec4<f32> | |
| DEBUG types are equivalent | |
| DEBUG Remaining overloads: [ | |
| (vec4<f32>, vec4<f32>, f32) -> vec4<f32>, | |
| ] | |
| DEBUG initial overloads for Mix, [ | |
| ({AbstractFloat}, {AbstractFloat}, {AbstractFloat}) -> {AbstractFloat}, | |
| ({AbstractFloat}, {AbstractFloat}, {AbstractFloat}) -> {AbstractFloat}, | |
| (vec2<{AbstractFloat}>, vec2<{AbstractFloat}>, vec2<{AbstractFloat}>) -> vec2<{AbstractFloat}>, | |
| (vec2<{AbstractFloat}>, vec2<{AbstractFloat}>, {AbstractFloat}) -> vec2<{AbstractFloat}>, | |
| (vec3<{AbstractFloat}>, vec3<{AbstractFloat}>, vec3<{AbstractFloat}>) -> vec3<{AbstractFloat}>, | |
| (vec3<{AbstractFloat}>, vec3<{AbstractFloat}>, {AbstractFloat}) -> vec3<{AbstractFloat}>, | |
| (vec4<{AbstractFloat}>, vec4<{AbstractFloat}>, vec4<{AbstractFloat}>) -> vec4<{AbstractFloat}>, | |
| (vec4<{AbstractFloat}>, vec4<{AbstractFloat}>, {AbstractFloat}) -> vec4<{AbstractFloat}>, | |
| (f32, f32, f32) -> f32, | |
| (f32, f32, f32) -> f32, | |
| (vec2<f32>, vec2<f32>, vec2<f32>) -> vec2<f32>, | |
| (vec2<f32>, vec2<f32>, f32) -> vec2<f32>, | |
| (vec3<f32>, vec3<f32>, vec3<f32>) -> vec3<f32>, | |
| (vec3<f32>, vec3<f32>, f32) -> vec3<f32>, | |
| (vec4<f32>, vec4<f32>, vec4<f32>) -> vec4<f32>, | |
| (vec4<f32>, vec4<f32>, f32) -> vec4<f32>, | |
| (f16, f16, f16) -> f16, | |
| (f16, f16, f16) -> f16, | |
| (vec2<f16>, vec2<f16>, vec2<f16>) -> vec2<f16>, | |
| (vec2<f16>, vec2<f16>, f16) -> vec2<f16>, | |
| (vec3<f16>, vec3<f16>, vec3<f16>) -> vec3<f16>, | |
| (vec3<f16>, vec3<f16>, f16) -> vec3<f16>, | |
| (vec4<f16>, vec4<f16>, vec4<f16>) -> vec4<f16>, | |
| (vec4<f16>, vec4<f16>, f16) -> vec4<f16>, | |
| (f64, f64, f64) -> f64, | |
| (f64, f64, f64) -> f64, | |
| (vec2<f64>, vec2<f64>, vec2<f64>) -> vec2<f64>, | |
| (vec2<f64>, vec2<f64>, f64) -> vec2<f64>, | |
| (vec3<f64>, vec3<f64>, vec3<f64>) -> vec3<f64>, | |
| (vec3<f64>, vec3<f64>, f64) -> vec3<f64>, | |
| (vec4<f64>, vec4<f64>, vec4<f64>) -> vec4<f64>, | |
| (vec4<f64>, vec4<f64>, f64) -> vec4<f64>, | |
| ] | |
| DEBUG arg 0 of type vec4<f32> | |
| DEBUG considering rule ({AbstractFloat}, {AbstractFloat}, {AbstractFloat}) -> {AbstractFloat} | |
| DEBUG no conversion possible | |
| DEBUG considering rule ({AbstractFloat}, {AbstractFloat}, {AbstractFloat}) -> {AbstractFloat} | |
| DEBUG no conversion possible | |
| DEBUG considering rule (vec2<{AbstractFloat}>, vec2<{AbstractFloat}>, vec2<{AbstractFloat}>) -> vec2<{AbstractFloat}> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (vec2<{AbstractFloat}>, vec2<{AbstractFloat}>, {AbstractFloat}) -> vec2<{AbstractFloat}> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (vec3<{AbstractFloat}>, vec3<{AbstractFloat}>, vec3<{AbstractFloat}>) -> vec3<{AbstractFloat}> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (vec3<{AbstractFloat}>, vec3<{AbstractFloat}>, {AbstractFloat}) -> vec3<{AbstractFloat}> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (vec4<{AbstractFloat}>, vec4<{AbstractFloat}>, vec4<{AbstractFloat}>) -> vec4<{AbstractFloat}> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (vec4<{AbstractFloat}>, vec4<{AbstractFloat}>, {AbstractFloat}) -> vec4<{AbstractFloat}> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (f32, f32, f32) -> f32 | |
| DEBUG no conversion possible | |
| DEBUG considering rule (f32, f32, f32) -> f32 | |
| DEBUG no conversion possible | |
| DEBUG considering rule (vec2<f32>, vec2<f32>, vec2<f32>) -> vec2<f32> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (vec2<f32>, vec2<f32>, f32) -> vec2<f32> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (vec3<f32>, vec3<f32>, vec3<f32>) -> vec3<f32> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (vec3<f32>, vec3<f32>, f32) -> vec3<f32> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (vec4<f32>, vec4<f32>, vec4<f32>) -> vec4<f32> | |
| DEBUG types are equivalent | |
| DEBUG considering rule (vec4<f32>, vec4<f32>, f32) -> vec4<f32> | |
| DEBUG types are equivalent | |
| DEBUG considering rule (f16, f16, f16) -> f16 | |
| DEBUG no conversion possible | |
| DEBUG considering rule (f16, f16, f16) -> f16 | |
| DEBUG no conversion possible | |
| DEBUG considering rule (vec2<f16>, vec2<f16>, vec2<f16>) -> vec2<f16> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (vec2<f16>, vec2<f16>, f16) -> vec2<f16> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (vec3<f16>, vec3<f16>, vec3<f16>) -> vec3<f16> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (vec3<f16>, vec3<f16>, f16) -> vec3<f16> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (vec4<f16>, vec4<f16>, vec4<f16>) -> vec4<f16> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (vec4<f16>, vec4<f16>, f16) -> vec4<f16> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (f64, f64, f64) -> f64 | |
| DEBUG no conversion possible | |
| DEBUG considering rule (f64, f64, f64) -> f64 | |
| DEBUG no conversion possible | |
| DEBUG considering rule (vec2<f64>, vec2<f64>, vec2<f64>) -> vec2<f64> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (vec2<f64>, vec2<f64>, f64) -> vec2<f64> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (vec3<f64>, vec3<f64>, vec3<f64>) -> vec3<f64> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (vec3<f64>, vec3<f64>, f64) -> vec3<f64> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (vec4<f64>, vec4<f64>, vec4<f64>) -> vec4<f64> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (vec4<f64>, vec4<f64>, f64) -> vec4<f64> | |
| DEBUG no conversion possible | |
| DEBUG overloads after arg 0 of type vec4<f32>: [ | |
| (vec4<f32>, vec4<f32>, vec4<f32>) -> vec4<f32>, | |
| (vec4<f32>, vec4<f32>, f32) -> vec4<f32>, | |
| ] | |
| DEBUG arg 1 of type vec4<f32> | |
| DEBUG considering rule (vec4<f32>, vec4<f32>, vec4<f32>) -> vec4<f32> | |
| DEBUG types are equivalent | |
| DEBUG considering rule (vec4<f32>, vec4<f32>, f32) -> vec4<f32> | |
| DEBUG types are equivalent | |
| DEBUG overloads after arg 1 of type vec4<f32>: [ | |
| (vec4<f32>, vec4<f32>, vec4<f32>) -> vec4<f32>, | |
| (vec4<f32>, vec4<f32>, f32) -> vec4<f32>, | |
| ] | |
| DEBUG Resolving [441] = Math { fun: Mix, arg: [21], arg1: Some([437]), arg2: Some([440]), arg3: None } : Value(Vector { size: Quad, scalar: Scalar { kind: Float, width: 4 } }) | |
| DEBUG Resolving [442] = Load { pointer: [193] } : Handle([2]) | |
| DEBUG wgsl automatic_conversion_consensus: f32, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [443] = Binary { op: Subtract, left: [86], right: [158] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Initial overloads: List { | |
| rules: [ | |
| ({AbstractFloat}) -> {AbstractFloat}, | |
| (f32) -> f32, | |
| (f16) -> f16, | |
| (f64) -> f64, | |
| (vec2<{AbstractFloat}>) -> vec2<{AbstractFloat}>, | |
| (vec2<f32>) -> vec2<f32>, | |
| (vec2<f16>) -> vec2<f16>, | |
| (vec2<f64>) -> vec2<f64>, | |
| (vec3<{AbstractFloat}>) -> vec3<{AbstractFloat}>, | |
| (vec3<f32>) -> vec3<f32>, | |
| (vec3<f16>) -> vec3<f16>, | |
| (vec3<f64>) -> vec3<f64>, | |
| (vec4<{AbstractFloat}>) -> vec4<{AbstractFloat}>, | |
| (vec4<f32>) -> vec4<f32>, | |
| (vec4<f16>) -> vec4<f16>, | |
| (vec4<f64>) -> vec4<f64>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG Supplying argument 0 of type f32 | |
| DEBUG Remaining overloads: List { | |
| rules: [ | |
| (f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG initial overloads for Saturate, List { | |
| rules: [ | |
| ({AbstractFloat}) -> {AbstractFloat}, | |
| (f32) -> f32, | |
| (f16) -> f16, | |
| (f64) -> f64, | |
| (vec2<{AbstractFloat}>) -> vec2<{AbstractFloat}>, | |
| (vec2<f32>) -> vec2<f32>, | |
| (vec2<f16>) -> vec2<f16>, | |
| (vec2<f64>) -> vec2<f64>, | |
| (vec3<{AbstractFloat}>) -> vec3<{AbstractFloat}>, | |
| (vec3<f32>) -> vec3<f32>, | |
| (vec3<f16>) -> vec3<f16>, | |
| (vec3<f64>) -> vec3<f64>, | |
| (vec4<{AbstractFloat}>) -> vec4<{AbstractFloat}>, | |
| (vec4<f32>) -> vec4<f32>, | |
| (vec4<f16>) -> vec4<f16>, | |
| (vec4<f64>) -> vec4<f64>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG overloads after arg 0 of type f32: List { | |
| rules: [ | |
| (f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG Resolving [444] = Math { fun: Saturate, arg: [443], arg1: None, arg2: None, arg3: None } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [445] = CallResult([27]) : Handle([2]) | |
| DEBUG Resolving [26] = Literal(I32(0)) : Value(Scalar(Scalar { kind: Sint, width: 4 })) | |
| DEBUG Resolving [27] = Literal(AbstractInt(0)) : Value(Scalar(Scalar { kind: AbstractInt, width: 8 })) | |
| DEBUG Resolving [28] = Literal(I32(0)) : Value(Scalar(Scalar { kind: Sint, width: 4 })) | |
| DEBUG Resolving [29] = Literal(AbstractInt(1)) : Value(Scalar(Scalar { kind: AbstractInt, width: 8 })) | |
| DEBUG Resolving [30] = Literal(I32(1)) : Value(Scalar(Scalar { kind: Sint, width: 4 })) | |
| DEBUG Resolving [31] = Literal(AbstractInt(3)) : Value(Scalar(Scalar { kind: AbstractInt, width: 8 })) | |
| DEBUG Resolving [0] = FunctionArgument(0) : Handle([4]) | |
| DEBUG Resolving [1] = FunctionArgument(1) : Handle([4]) | |
| DEBUG Resolving [2] = Literal(U32(1)) : Value(Scalar(Scalar { kind: Uint, width: 4 })) | |
| DEBUG wgsl automatic_conversion_consensus: u32, u32 | |
| DEBUG consensus: u32 | |
| DEBUG Resolving [3] = Binary { op: And, left: [0], right: [2] } : Handle([4]) | |
| DEBUG Resolving [4] = As { expr: [3], kind: Float, convert: Some(4) } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [5] = Literal(AbstractFloat(0.5)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG Resolving [6] = Literal(U32(2)) : Value(Scalar(Scalar { kind: Uint, width: 4 })) | |
| DEBUG wgsl automatic_conversion_consensus: u32, u32 | |
| DEBUG consensus: u32 | |
| DEBUG Resolving [7] = Binary { op: And, left: [0], right: [6] } : Handle([4]) | |
| DEBUG Resolving [8] = As { expr: [7], kind: Float, convert: Some(4) } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG wgsl automatic_conversion_consensus: {AbstractFloat}, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [9] = Literal(F32(0.5)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [10] = Binary { op: Multiply, left: [9], right: [8] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [11] = Compose { ty: [3], components: [[4], [10]] } : Handle([3]) | |
| DEBUG Resolving [12] = GlobalVariable([6]) : Value(Pointer { base: [29], space: Storage { access: StorageAccess(LOAD) } }) | |
| DEBUG Resolving [13] = Access { base: [12], index: [1] } : Value(Pointer { base: [28], space: Storage { access: StorageAccess(LOAD) } }) | |
| DEBUG Resolving [14] = Load { pointer: [13] } : Handle([28]) | |
| DEBUG Resolving [15] = LocalVariable([0]) : Value(Pointer { base: [28], space: Function }) | |
| DEBUG Resolving [16] = Literal(AbstractFloat(3.0)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG Resolving [17] = AccessIndex { base: [15], index: 1 } : Value(Pointer { base: [0], space: Function }) | |
| DEBUG Resolving [18] = Load { pointer: [17] } : Handle([0]) | |
| DEBUG wgsl automatic_conversion_consensus: {AbstractFloat}, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [19] = Literal(F32(3.0)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [20] = Binary { op: Multiply, left: [19], right: [18] } : Handle([0]) | |
| DEBUG Resolving [21] = AccessIndex { base: [15], index: 2 } : Value(Pointer { base: [8], space: Function }) | |
| DEBUG Resolving [22] = AccessIndex { base: [21], index: 0 } : Value(Pointer { base: [3], space: Function }) | |
| DEBUG Resolving [23] = Splat { size: Bi, value: [20] } : Value(Vector { size: Bi, scalar: Scalar { kind: Float, width: 4 } }) | |
| DEBUG Resolving [24] = Load { pointer: [22] } : Handle([3]) | |
| DEBUG Resolving [25] = Binary { op: Subtract, left: [24], right: [23] } : Handle([3]) | |
| DEBUG Resolving [26] = AccessIndex { base: [15], index: 2 } : Value(Pointer { base: [8], space: Function }) | |
| DEBUG Resolving [27] = AccessIndex { base: [26], index: 1 } : Value(Pointer { base: [3], space: Function }) | |
| DEBUG Resolving [28] = Literal(AbstractFloat(2.0)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG Resolving [29] = Splat { size: Bi, value: [20] } : Value(Vector { size: Bi, scalar: Scalar { kind: Float, width: 4 } }) | |
| DEBUG wgsl automatic_conversion_consensus: {AbstractFloat}, vec2<f32> | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [30] = Literal(F32(2.0)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [31] = Binary { op: Multiply, left: [30], right: [29] } : Value(Vector { size: Bi, scalar: Scalar { kind: Float, width: 4 } }) | |
| DEBUG Resolving [32] = Load { pointer: [27] } : Handle([3]) | |
| DEBUG Resolving [33] = Binary { op: Add, left: [32], right: [31] } : Handle([3]) | |
| DEBUG Resolving [34] = ZeroValue([30]) : Handle([30]) | |
| DEBUG Resolving [35] = LocalVariable([1]) : Value(Pointer { base: [30], space: Function }) | |
| DEBUG Resolving [36] = AccessIndex { base: [35], index: 0 } : Value(Pointer { base: [2], space: Function }) | |
| DEBUG Resolving [37] = AccessIndex { base: [15], index: 2 } : Value(Pointer { base: [8], space: Function }) | |
| DEBUG Resolving [38] = Load { pointer: [37] } : Handle([8]) | |
| DEBUG Resolving [39] = CallResult([6]) : Handle([2]) | |
| DEBUG Resolving [40] = AccessIndex { base: [35], index: 1 } : Value(Pointer { base: [2], space: Function }) | |
| DEBUG Resolving [41] = AccessIndex { base: [15], index: 5 } : Value(Pointer { base: [11], space: Function }) | |
| DEBUG Resolving [42] = Load { pointer: [41] } : Handle([11]) | |
| DEBUG Resolving [43] = CallResult([17]) : Handle([2]) | |
| DEBUG Resolving [44] = AccessIndex { base: [35], index: 2 } : Value(Pointer { base: [4], space: Function }) | |
| DEBUG Resolving [45] = AccessIndex { base: [35], index: 3 } : Value(Pointer { base: [2], space: Function }) | |
| DEBUG Resolving [46] = AccessIndex { base: [15], index: 2 } : Value(Pointer { base: [8], space: Function }) | |
| DEBUG Resolving [47] = Load { pointer: [46] } : Handle([8]) | |
| DEBUG Resolving [48] = AccessIndex { base: [15], index: 4 } : Value(Pointer { base: [8], space: Function }) | |
| DEBUG Resolving [49] = Load { pointer: [48] } : Handle([8]) | |
| DEBUG Resolving [50] = CallResult([10]) : Handle([2]) | |
| DEBUG Resolving [51] = Load { pointer: [35] } : Handle([30]) | |
| DEBUG Resolving [32] = Literal(I32(3)) : Value(Scalar(Scalar { kind: Sint, width: 4 })) | |
| DEBUG Resolving [33] = Literal(AbstractInt(0)) : Value(Scalar(Scalar { kind: AbstractInt, width: 8 })) | |
| DEBUG Resolving [0] = FunctionArgument(0) : Handle([30]) | |
| DEBUG Resolving [1] = AccessIndex { base: [0], index: 3 } : Handle([2]) | |
| DEBUG Resolving [2] = Literal(AbstractFloat(0.0)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG Resolving [3] = Literal(F32(0.0)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [4] = Splat { size: Quad, value: [3] } : Value(Vector { size: Quad, scalar: Scalar { kind: Float, width: 4 } }) | |
| DEBUG wgsl automatic_conversion_consensus: vec4<f32>, vec4<f32> | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [5] = Binary { op: Less, left: [1], right: [4] } : Value(Vector { size: Quad, scalar: Scalar { kind: Bool, width: 1 } }) | |
| DEBUG Resolving [6] = Relational { fun: Any, argument: [5] } : Value(Scalar(Scalar { kind: Bool, width: 1 })) | |
| DEBUG Resolving [7] = Literal(AbstractFloat(0.0)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG Resolving [8] = Literal(F32(0.0)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [9] = Splat { size: Quad, value: [8] } : Value(Vector { size: Quad, scalar: Scalar { kind: Float, width: 4 } }) | |
| DEBUG Resolving [10] = GlobalVariable([6]) : Value(Pointer { base: [29], space: Storage { access: StorageAccess(LOAD) } }) | |
| DEBUG Resolving [11] = AccessIndex { base: [0], index: 2 } : Handle([4]) | |
| DEBUG Resolving [12] = Access { base: [10], index: [11] } : Value(Pointer { base: [28], space: Storage { access: StorageAccess(LOAD) } }) | |
| DEBUG Resolving [13] = Load { pointer: [12] } : Handle([28]) | |
| DEBUG Resolving [14] = AccessIndex { base: [13], index: 2 } : Handle([8]) | |
| DEBUG Resolving [15] = AccessIndex { base: [14], index: 1 } : Handle([3]) | |
| DEBUG Resolving [16] = Literal(AbstractFloat(2.0)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG Resolving [17] = Splat { size: Bi, value: [16] } : Value(Vector { size: Bi, scalar: Scalar { kind: AbstractFloat, width: 8 } }) | |
| DEBUG wgsl automatic_conversion_consensus: vec2<f32>, vec2<{AbstractFloat}> | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [18] = Literal(F32(2.0)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [19] = Splat { size: Bi, value: [18] } : Value(Vector { size: Bi, scalar: Scalar { kind: Float, width: 4 } }) | |
| DEBUG Resolving [20] = Binary { op: Divide, left: [15], right: [19] } : Handle([3]) | |
| DEBUG Resolving [21] = AccessIndex { base: [13], index: 2 } : Handle([8]) | |
| DEBUG Resolving [22] = AccessIndex { base: [21], index: 0 } : Handle([3]) | |
| DEBUG wgsl automatic_conversion_consensus: vec2<f32>, vec2<f32> | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [23] = Binary { op: Add, left: [22], right: [20] } : Handle([3]) | |
| DEBUG Resolving [24] = AccessIndex { base: [0], index: 0 } : Handle([2]) | |
| DEBUG Resolving [25] = Swizzle { size: Bi, vector: [24], pattern: [X, Y, X, X] } : Value(Vector { size: Bi, scalar: Scalar { kind: Float, width: 4 } }) | |
| DEBUG wgsl automatic_conversion_consensus: vec2<f32>, vec2<f32> | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [26] = Binary { op: Subtract, left: [25], right: [23] } : Value(Vector { size: Bi, scalar: Scalar { kind: Float, width: 4 } }) | |
| DEBUG Resolving [27] = AccessIndex { base: [13], index: 3 } : Handle([9]) | |
| DEBUG Resolving [28] = CallResult([24]) : Handle([0]) | |
| DEBUG Resolving [29] = AccessIndex { base: [26], index: 1 } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [30] = AccessIndex { base: [20], index: 1 } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG wgsl automatic_conversion_consensus: f32, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [31] = Binary { op: Subtract, left: [29], right: [30] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [32] = AccessIndex { base: [26], index: 1 } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [33] = AccessIndex { base: [20], index: 1 } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG wgsl automatic_conversion_consensus: f32, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [34] = Binary { op: Add, left: [32], right: [33] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [35] = Literal(AbstractFloat(3.0)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG Resolving [36] = Literal(AbstractFloat(-3.0)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG Resolving [37] = AccessIndex { base: [13], index: 1 } : Handle([0]) | |
| DEBUG wgsl automatic_conversion_consensus: {AbstractFloat}, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [38] = Literal(F32(-3.0)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [39] = Binary { op: Multiply, left: [38], right: [37] } : Handle([0]) | |
| DEBUG Initial overloads: List { | |
| rules: [ | |
| ({AbstractInt}, {AbstractInt}, {AbstractInt}) -> {AbstractInt}, | |
| ({AbstractFloat}, {AbstractFloat}, {AbstractFloat}) -> {AbstractFloat}, | |
| (i32, i32, i32) -> i32, | |
| (i64, i64, i64) -> i64, | |
| (u32, u32, u32) -> u32, | |
| (u64, u64, u64) -> u64, | |
| (f32, f32, f32) -> f32, | |
| (f16, f16, f16) -> f16, | |
| (f64, f64, f64) -> f64, | |
| (vec2<{AbstractInt}>, vec2<{AbstractInt}>, vec2<{AbstractInt}>) -> vec2<{AbstractInt}>, | |
| (vec2<{AbstractFloat}>, vec2<{AbstractFloat}>, vec2<{AbstractFloat}>) -> vec2<{AbstractFloat}>, | |
| (vec2<i32>, vec2<i32>, vec2<i32>) -> vec2<i32>, | |
| (vec2<i64>, vec2<i64>, vec2<i64>) -> vec2<i64>, | |
| (vec2<u32>, vec2<u32>, vec2<u32>) -> vec2<u32>, | |
| (vec2<u64>, vec2<u64>, vec2<u64>) -> vec2<u64>, | |
| (vec2<f32>, vec2<f32>, vec2<f32>) -> vec2<f32>, | |
| (vec2<f16>, vec2<f16>, vec2<f16>) -> vec2<f16>, | |
| (vec2<f64>, vec2<f64>, vec2<f64>) -> vec2<f64>, | |
| (vec3<{AbstractInt}>, vec3<{AbstractInt}>, vec3<{AbstractInt}>) -> vec3<{AbstractInt}>, | |
| (vec3<{AbstractFloat}>, vec3<{AbstractFloat}>, vec3<{AbstractFloat}>) -> vec3<{AbstractFloat}>, | |
| (vec3<i32>, vec3<i32>, vec3<i32>) -> vec3<i32>, | |
| (vec3<i64>, vec3<i64>, vec3<i64>) -> vec3<i64>, | |
| (vec3<u32>, vec3<u32>, vec3<u32>) -> vec3<u32>, | |
| (vec3<u64>, vec3<u64>, vec3<u64>) -> vec3<u64>, | |
| (vec3<f32>, vec3<f32>, vec3<f32>) -> vec3<f32>, | |
| (vec3<f16>, vec3<f16>, vec3<f16>) -> vec3<f16>, | |
| (vec3<f64>, vec3<f64>, vec3<f64>) -> vec3<f64>, | |
| (vec4<{AbstractInt}>, vec4<{AbstractInt}>, vec4<{AbstractInt}>) -> vec4<{AbstractInt}>, | |
| (vec4<{AbstractFloat}>, vec4<{AbstractFloat}>, vec4<{AbstractFloat}>) -> vec4<{AbstractFloat}>, | |
| (vec4<i32>, vec4<i32>, vec4<i32>) -> vec4<i32>, | |
| (vec4<i64>, vec4<i64>, vec4<i64>) -> vec4<i64>, | |
| (vec4<u32>, vec4<u32>, vec4<u32>) -> vec4<u32>, | |
| (vec4<u64>, vec4<u64>, vec4<u64>) -> vec4<u64>, | |
| (vec4<f32>, vec4<f32>, vec4<f32>) -> vec4<f32>, | |
| (vec4<f16>, vec4<f16>, vec4<f16>) -> vec4<f16>, | |
| (vec4<f64>, vec4<f64>, vec4<f64>) -> vec4<f64>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG Supplying argument 0 of type f32 | |
| DEBUG Remaining overloads: List { | |
| rules: [ | |
| (f32, f32, f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG Supplying argument 1 of type f32 | |
| DEBUG Remaining overloads: List { | |
| rules: [ | |
| (f32, f32, f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG Supplying argument 2 of type f32 | |
| DEBUG Remaining overloads: List { | |
| rules: [ | |
| (f32, f32, f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG initial overloads for Clamp, List { | |
| rules: [ | |
| ({AbstractInt}, {AbstractInt}, {AbstractInt}) -> {AbstractInt}, | |
| ({AbstractFloat}, {AbstractFloat}, {AbstractFloat}) -> {AbstractFloat}, | |
| (i32, i32, i32) -> i32, | |
| (i64, i64, i64) -> i64, | |
| (u32, u32, u32) -> u32, | |
| (u64, u64, u64) -> u64, | |
| (f32, f32, f32) -> f32, | |
| (f16, f16, f16) -> f16, | |
| (f64, f64, f64) -> f64, | |
| (vec2<{AbstractInt}>, vec2<{AbstractInt}>, vec2<{AbstractInt}>) -> vec2<{AbstractInt}>, | |
| (vec2<{AbstractFloat}>, vec2<{AbstractFloat}>, vec2<{AbstractFloat}>) -> vec2<{AbstractFloat}>, | |
| (vec2<i32>, vec2<i32>, vec2<i32>) -> vec2<i32>, | |
| (vec2<i64>, vec2<i64>, vec2<i64>) -> vec2<i64>, | |
| (vec2<u32>, vec2<u32>, vec2<u32>) -> vec2<u32>, | |
| (vec2<u64>, vec2<u64>, vec2<u64>) -> vec2<u64>, | |
| (vec2<f32>, vec2<f32>, vec2<f32>) -> vec2<f32>, | |
| (vec2<f16>, vec2<f16>, vec2<f16>) -> vec2<f16>, | |
| (vec2<f64>, vec2<f64>, vec2<f64>) -> vec2<f64>, | |
| (vec3<{AbstractInt}>, vec3<{AbstractInt}>, vec3<{AbstractInt}>) -> vec3<{AbstractInt}>, | |
| (vec3<{AbstractFloat}>, vec3<{AbstractFloat}>, vec3<{AbstractFloat}>) -> vec3<{AbstractFloat}>, | |
| (vec3<i32>, vec3<i32>, vec3<i32>) -> vec3<i32>, | |
| (vec3<i64>, vec3<i64>, vec3<i64>) -> vec3<i64>, | |
| (vec3<u32>, vec3<u32>, vec3<u32>) -> vec3<u32>, | |
| (vec3<u64>, vec3<u64>, vec3<u64>) -> vec3<u64>, | |
| (vec3<f32>, vec3<f32>, vec3<f32>) -> vec3<f32>, | |
| (vec3<f16>, vec3<f16>, vec3<f16>) -> vec3<f16>, | |
| (vec3<f64>, vec3<f64>, vec3<f64>) -> vec3<f64>, | |
| (vec4<{AbstractInt}>, vec4<{AbstractInt}>, vec4<{AbstractInt}>) -> vec4<{AbstractInt}>, | |
| (vec4<{AbstractFloat}>, vec4<{AbstractFloat}>, vec4<{AbstractFloat}>) -> vec4<{AbstractFloat}>, | |
| (vec4<i32>, vec4<i32>, vec4<i32>) -> vec4<i32>, | |
| (vec4<i64>, vec4<i64>, vec4<i64>) -> vec4<i64>, | |
| (vec4<u32>, vec4<u32>, vec4<u32>) -> vec4<u32>, | |
| (vec4<u64>, vec4<u64>, vec4<u64>) -> vec4<u64>, | |
| (vec4<f32>, vec4<f32>, vec4<f32>) -> vec4<f32>, | |
| (vec4<f16>, vec4<f16>, vec4<f16>) -> vec4<f16>, | |
| (vec4<f64>, vec4<f64>, vec4<f64>) -> vec4<f64>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG overloads after arg 0 of type f32: List { | |
| rules: [ | |
| (f32, f32, f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG overloads after arg 1 of type f32: List { | |
| rules: [ | |
| (f32, f32, f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG Resolving [40] = Math { fun: Clamp, arg: [39], arg1: Some([31]), arg2: Some([34]), arg3: None } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [41] = Literal(AbstractFloat(3.0)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG Resolving [42] = AccessIndex { base: [13], index: 1 } : Handle([0]) | |
| DEBUG wgsl automatic_conversion_consensus: {AbstractFloat}, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [43] = Literal(F32(3.0)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [44] = Binary { op: Multiply, left: [43], right: [42] } : Handle([0]) | |
| DEBUG Initial overloads: List { | |
| rules: [ | |
| ({AbstractInt}, {AbstractInt}, {AbstractInt}) -> {AbstractInt}, | |
| ({AbstractFloat}, {AbstractFloat}, {AbstractFloat}) -> {AbstractFloat}, | |
| (i32, i32, i32) -> i32, | |
| (i64, i64, i64) -> i64, | |
| (u32, u32, u32) -> u32, | |
| (u64, u64, u64) -> u64, | |
| (f32, f32, f32) -> f32, | |
| (f16, f16, f16) -> f16, | |
| (f64, f64, f64) -> f64, | |
| (vec2<{AbstractInt}>, vec2<{AbstractInt}>, vec2<{AbstractInt}>) -> vec2<{AbstractInt}>, | |
| (vec2<{AbstractFloat}>, vec2<{AbstractFloat}>, vec2<{AbstractFloat}>) -> vec2<{AbstractFloat}>, | |
| (vec2<i32>, vec2<i32>, vec2<i32>) -> vec2<i32>, | |
| (vec2<i64>, vec2<i64>, vec2<i64>) -> vec2<i64>, | |
| (vec2<u32>, vec2<u32>, vec2<u32>) -> vec2<u32>, | |
| (vec2<u64>, vec2<u64>, vec2<u64>) -> vec2<u64>, | |
| (vec2<f32>, vec2<f32>, vec2<f32>) -> vec2<f32>, | |
| (vec2<f16>, vec2<f16>, vec2<f16>) -> vec2<f16>, | |
| (vec2<f64>, vec2<f64>, vec2<f64>) -> vec2<f64>, | |
| (vec3<{AbstractInt}>, vec3<{AbstractInt}>, vec3<{AbstractInt}>) -> vec3<{AbstractInt}>, | |
| (vec3<{AbstractFloat}>, vec3<{AbstractFloat}>, vec3<{AbstractFloat}>) -> vec3<{AbstractFloat}>, | |
| (vec3<i32>, vec3<i32>, vec3<i32>) -> vec3<i32>, | |
| (vec3<i64>, vec3<i64>, vec3<i64>) -> vec3<i64>, | |
| (vec3<u32>, vec3<u32>, vec3<u32>) -> vec3<u32>, | |
| (vec3<u64>, vec3<u64>, vec3<u64>) -> vec3<u64>, | |
| (vec3<f32>, vec3<f32>, vec3<f32>) -> vec3<f32>, | |
| (vec3<f16>, vec3<f16>, vec3<f16>) -> vec3<f16>, | |
| (vec3<f64>, vec3<f64>, vec3<f64>) -> vec3<f64>, | |
| (vec4<{AbstractInt}>, vec4<{AbstractInt}>, vec4<{AbstractInt}>) -> vec4<{AbstractInt}>, | |
| (vec4<{AbstractFloat}>, vec4<{AbstractFloat}>, vec4<{AbstractFloat}>) -> vec4<{AbstractFloat}>, | |
| (vec4<i32>, vec4<i32>, vec4<i32>) -> vec4<i32>, | |
| (vec4<i64>, vec4<i64>, vec4<i64>) -> vec4<i64>, | |
| (vec4<u32>, vec4<u32>, vec4<u32>) -> vec4<u32>, | |
| (vec4<u64>, vec4<u64>, vec4<u64>) -> vec4<u64>, | |
| (vec4<f32>, vec4<f32>, vec4<f32>) -> vec4<f32>, | |
| (vec4<f16>, vec4<f16>, vec4<f16>) -> vec4<f16>, | |
| (vec4<f64>, vec4<f64>, vec4<f64>) -> vec4<f64>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG Supplying argument 0 of type f32 | |
| DEBUG Remaining overloads: List { | |
| rules: [ | |
| (f32, f32, f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG Supplying argument 1 of type f32 | |
| DEBUG Remaining overloads: List { | |
| rules: [ | |
| (f32, f32, f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG Supplying argument 2 of type f32 | |
| DEBUG Remaining overloads: List { | |
| rules: [ | |
| (f32, f32, f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG initial overloads for Clamp, List { | |
| rules: [ | |
| ({AbstractInt}, {AbstractInt}, {AbstractInt}) -> {AbstractInt}, | |
| ({AbstractFloat}, {AbstractFloat}, {AbstractFloat}) -> {AbstractFloat}, | |
| (i32, i32, i32) -> i32, | |
| (i64, i64, i64) -> i64, | |
| (u32, u32, u32) -> u32, | |
| (u64, u64, u64) -> u64, | |
| (f32, f32, f32) -> f32, | |
| (f16, f16, f16) -> f16, | |
| (f64, f64, f64) -> f64, | |
| (vec2<{AbstractInt}>, vec2<{AbstractInt}>, vec2<{AbstractInt}>) -> vec2<{AbstractInt}>, | |
| (vec2<{AbstractFloat}>, vec2<{AbstractFloat}>, vec2<{AbstractFloat}>) -> vec2<{AbstractFloat}>, | |
| (vec2<i32>, vec2<i32>, vec2<i32>) -> vec2<i32>, | |
| (vec2<i64>, vec2<i64>, vec2<i64>) -> vec2<i64>, | |
| (vec2<u32>, vec2<u32>, vec2<u32>) -> vec2<u32>, | |
| (vec2<u64>, vec2<u64>, vec2<u64>) -> vec2<u64>, | |
| (vec2<f32>, vec2<f32>, vec2<f32>) -> vec2<f32>, | |
| (vec2<f16>, vec2<f16>, vec2<f16>) -> vec2<f16>, | |
| (vec2<f64>, vec2<f64>, vec2<f64>) -> vec2<f64>, | |
| (vec3<{AbstractInt}>, vec3<{AbstractInt}>, vec3<{AbstractInt}>) -> vec3<{AbstractInt}>, | |
| (vec3<{AbstractFloat}>, vec3<{AbstractFloat}>, vec3<{AbstractFloat}>) -> vec3<{AbstractFloat}>, | |
| (vec3<i32>, vec3<i32>, vec3<i32>) -> vec3<i32>, | |
| (vec3<i64>, vec3<i64>, vec3<i64>) -> vec3<i64>, | |
| (vec3<u32>, vec3<u32>, vec3<u32>) -> vec3<u32>, | |
| (vec3<u64>, vec3<u64>, vec3<u64>) -> vec3<u64>, | |
| (vec3<f32>, vec3<f32>, vec3<f32>) -> vec3<f32>, | |
| (vec3<f16>, vec3<f16>, vec3<f16>) -> vec3<f16>, | |
| (vec3<f64>, vec3<f64>, vec3<f64>) -> vec3<f64>, | |
| (vec4<{AbstractInt}>, vec4<{AbstractInt}>, vec4<{AbstractInt}>) -> vec4<{AbstractInt}>, | |
| (vec4<{AbstractFloat}>, vec4<{AbstractFloat}>, vec4<{AbstractFloat}>) -> vec4<{AbstractFloat}>, | |
| (vec4<i32>, vec4<i32>, vec4<i32>) -> vec4<i32>, | |
| (vec4<i64>, vec4<i64>, vec4<i64>) -> vec4<i64>, | |
| (vec4<u32>, vec4<u32>, vec4<u32>) -> vec4<u32>, | |
| (vec4<u64>, vec4<u64>, vec4<u64>) -> vec4<u64>, | |
| (vec4<f32>, vec4<f32>, vec4<f32>) -> vec4<f32>, | |
| (vec4<f16>, vec4<f16>, vec4<f16>) -> vec4<f16>, | |
| (vec4<f64>, vec4<f64>, vec4<f64>) -> vec4<f64>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG overloads after arg 0 of type f32: List { | |
| rules: [ | |
| (f32, f32, f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG overloads after arg 1 of type f32: List { | |
| rules: [ | |
| (f32, f32, f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG Resolving [45] = Math { fun: Clamp, arg: [44], arg1: Some([31]), arg2: Some([34]), arg3: None } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG wgsl automatic_conversion_consensus: f32, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [46] = Binary { op: Subtract, left: [45], right: [40] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [47] = Literal(AbstractFloat(4.0)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG wgsl automatic_conversion_consensus: f32, {AbstractFloat} | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [48] = Literal(F32(4.0)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [49] = Binary { op: Divide, left: [46], right: [48] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [50] = Literal(AbstractFloat(0.5)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG wgsl automatic_conversion_consensus: f32, {AbstractFloat} | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [51] = Literal(F32(0.5)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [52] = Binary { op: Multiply, left: [49], right: [51] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG wgsl automatic_conversion_consensus: f32, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [53] = Binary { op: Add, left: [40], right: [52] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [54] = LocalVariable([0]) : Value(Pointer { base: [0], space: Function }) | |
| DEBUG Resolving [55] = Literal(AbstractFloat(0.0)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG Resolving [56] = Literal(F32(0.0)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [57] = LocalVariable([1]) : Value(Pointer { base: [0], space: Function }) | |
| DEBUG Resolving [58] = Literal(AbstractInt(0)) : Value(Scalar(Scalar { kind: AbstractInt, width: 8 })) | |
| DEBUG Resolving [59] = Literal(I32(0)) : Value(Scalar(Scalar { kind: Sint, width: 4 })) | |
| DEBUG Resolving [60] = LocalVariable([2]) : Value(Pointer { base: [16], space: Function }) | |
| DEBUG Resolving [61] = Load { pointer: [60] } : Handle([16]) | |
| DEBUG Resolving [62] = Literal(AbstractInt(4)) : Value(Scalar(Scalar { kind: AbstractInt, width: 8 })) | |
| DEBUG wgsl automatic_conversion_consensus: i32, {AbstractInt} | |
| DEBUG consensus: i32 | |
| DEBUG Resolving [63] = Literal(I32(4)) : Value(Scalar(Scalar { kind: Sint, width: 4 })) | |
| DEBUG Resolving [64] = Binary { op: Less, left: [61], right: [63] } : Value(Scalar(Scalar { kind: Bool, width: 1 })) | |
| DEBUG Resolving [65] = AccessIndex { base: [26], index: 0 } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [66] = AccessIndex { base: [26], index: 1 } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [67] = Load { pointer: [54] } : Handle([0]) | |
| DEBUG wgsl automatic_conversion_consensus: f32, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [68] = Binary { op: Subtract, left: [66], right: [67] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [69] = AccessIndex { base: [13], index: 1 } : Handle([0]) | |
| DEBUG Resolving [70] = CallResult([23]) : Handle([0]) | |
| DEBUG Resolving [71] = Load { pointer: [54] } : Handle([0]) | |
| DEBUG Resolving [72] = AccessIndex { base: [13], index: 1 } : Handle([0]) | |
| DEBUG Resolving [73] = CallResult([21]) : Handle([0]) | |
| DEBUG wgsl automatic_conversion_consensus: f32, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [74] = Binary { op: Multiply, left: [70], right: [73] } : Handle([0]) | |
| DEBUG wgsl automatic_conversion_consensus: f32, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [75] = Binary { op: Multiply, left: [74], right: [49] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [76] = Load { pointer: [57] } : Handle([0]) | |
| DEBUG Resolving [77] = Binary { op: Add, left: [76], right: [75] } : Handle([0]) | |
| DEBUG Resolving [78] = Load { pointer: [54] } : Handle([0]) | |
| DEBUG Resolving [79] = Binary { op: Add, left: [78], right: [49] } : Handle([0]) | |
| DEBUG Resolving [80] = Literal(AbstractInt(1)) : Value(Scalar(Scalar { kind: AbstractInt, width: 8 })) | |
| DEBUG Resolving [81] = Literal(I32(1)) : Value(Scalar(Scalar { kind: Sint, width: 4 })) | |
| DEBUG Resolving [82] = Load { pointer: [60] } : Handle([16]) | |
| DEBUG Resolving [83] = Binary { op: Add, left: [82], right: [81] } : Handle([16]) | |
| DEBUG Resolving [84] = AccessIndex { base: [0], index: 1 } : Handle([2]) | |
| DEBUG Resolving [85] = Load { pointer: [57] } : Handle([0]) | |
| DEBUG Resolving [86] = CallResult([27]) : Handle([2]) | |
| DEBUG Resolving [34] = Literal(I32(0)) : Value(Scalar(Scalar { kind: Sint, width: 4 })) | |
| DEBUG Resolving [35] = Literal(AbstractInt(0)) : Value(Scalar(Scalar { kind: AbstractInt, width: 8 })) | |
| DEBUG Resolving [36] = Literal(I32(0)) : Value(Scalar(Scalar { kind: Sint, width: 4 })) | |
| DEBUG Resolving [37] = Literal(AbstractInt(1)) : Value(Scalar(Scalar { kind: AbstractInt, width: 8 })) | |
| DEBUG Resolving [38] = Literal(I32(1)) : Value(Scalar(Scalar { kind: Sint, width: 4 })) | |
| DEBUG Resolving [39] = Literal(AbstractInt(3)) : Value(Scalar(Scalar { kind: AbstractInt, width: 8 })) | |
| DEBUG Resolving [0] = FunctionArgument(0) : Handle([4]) | |
| DEBUG Resolving [1] = GlobalVariable([7]) : Value(Pointer { base: [32], space: Storage { access: StorageAccess(LOAD) } }) | |
| DEBUG Resolving [2] = Access { base: [1], index: [0] } : Value(Pointer { base: [31], space: Storage { access: StorageAccess(LOAD) } }) | |
| DEBUG Resolving [3] = Load { pointer: [2] } : Handle([31]) | |
| DEBUG Resolving [4] = ZeroValue([33]) : Handle([33]) | |
| DEBUG Resolving [5] = LocalVariable([0]) : Value(Pointer { base: [33], space: Function }) | |
| DEBUG Resolving [6] = AccessIndex { base: [5], index: 0 } : Value(Pointer { base: [2], space: Function }) | |
| DEBUG Resolving [7] = AccessIndex { base: [3], index: 0 } : Handle([3]) | |
| DEBUG Resolving [8] = CallResult([5]) : Handle([2]) | |
| DEBUG Resolving [9] = AccessIndex { base: [5], index: 1 } : Value(Pointer { base: [3], space: Function }) | |
| DEBUG Resolving [10] = AccessIndex { base: [3], index: 1 } : Handle([3]) | |
| DEBUG Resolving [11] = AccessIndex { base: [5], index: 2 } : Value(Pointer { base: [4], space: Function }) | |
| DEBUG Resolving [12] = AccessIndex { base: [5], index: 3 } : Value(Pointer { base: [2], space: Function }) | |
| DEBUG Resolving [13] = AccessIndex { base: [3], index: 0 } : Handle([3]) | |
| DEBUG Resolving [14] = AccessIndex { base: [3], index: 3 } : Handle([8]) | |
| DEBUG Resolving [15] = CallResult([9]) : Handle([2]) | |
| DEBUG Resolving [16] = Load { pointer: [5] } : Handle([33]) | |
| DEBUG Resolving [40] = Literal(I32(3)) : Value(Scalar(Scalar { kind: Sint, width: 4 })) | |
| DEBUG Resolving [41] = Literal(AbstractInt(0)) : Value(Scalar(Scalar { kind: AbstractInt, width: 8 })) | |
| DEBUG Resolving [0] = FunctionArgument(0) : Handle([33]) | |
| DEBUG Resolving [1] = AccessIndex { base: [0], index: 1 } : Handle([3]) | |
| DEBUG Resolving [2] = Derivative { axis: X, ctrl: None, expr: [1] } : Handle([3]) | |
| DEBUG Resolving [3] = AccessIndex { base: [0], index: 1 } : Handle([3]) | |
| DEBUG Resolving [4] = Derivative { axis: Y, ctrl: None, expr: [3] } : Handle([3]) | |
| DEBUG Resolving [5] = AccessIndex { base: [0], index: 3 } : Handle([2]) | |
| DEBUG Resolving [6] = Literal(AbstractFloat(0.0)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG Resolving [7] = Literal(F32(0.0)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [8] = Splat { size: Quad, value: [7] } : Value(Vector { size: Quad, scalar: Scalar { kind: Float, width: 4 } }) | |
| DEBUG wgsl automatic_conversion_consensus: vec4<f32>, vec4<f32> | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [9] = Binary { op: Less, left: [5], right: [8] } : Value(Vector { size: Quad, scalar: Scalar { kind: Bool, width: 1 } }) | |
| DEBUG Resolving [10] = Relational { fun: Any, argument: [9] } : Value(Scalar(Scalar { kind: Bool, width: 1 })) | |
| DEBUG Resolving [11] = Literal(AbstractFloat(0.0)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG Resolving [12] = Literal(F32(0.0)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [13] = Splat { size: Quad, value: [12] } : Value(Vector { size: Quad, scalar: Scalar { kind: Float, width: 4 } }) | |
| DEBUG Resolving [14] = GlobalVariable([7]) : Value(Pointer { base: [32], space: Storage { access: StorageAccess(LOAD) } }) | |
| DEBUG Resolving [15] = AccessIndex { base: [0], index: 2 } : Handle([4]) | |
| DEBUG Resolving [16] = Access { base: [14], index: [15] } : Value(Pointer { base: [31], space: Storage { access: StorageAccess(LOAD) } }) | |
| DEBUG Resolving [17] = Load { pointer: [16] } : Handle([31]) | |
| DEBUG Resolving [18] = AccessIndex { base: [17], index: 2 } : Handle([14]) | |
| DEBUG Resolving [19] = AccessIndex { base: [17], index: 3 } : Handle([8]) | |
| DEBUG Resolving [20] = LocalVariable([0]) : Value(Pointer { base: [0], space: Function }) | |
| DEBUG Resolving [21] = AccessIndex { base: [2], index: 0 } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [22] = AccessIndex { base: [4], index: 0 } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [23] = Compose { ty: [3], components: [[21], [22]] } : Handle([3]) | |
| DEBUG Initial overloads: List { | |
| rules: [ | |
| (f32) -> f32, | |
| (f16) -> f16, | |
| (f64) -> f64, | |
| (vec2<f32>) -> f32, | |
| (vec2<f16>) -> f16, | |
| (vec2<f64>) -> f64, | |
| (vec3<f32>) -> f32, | |
| (vec3<f16>) -> f16, | |
| (vec3<f64>) -> f64, | |
| (vec4<f32>) -> f32, | |
| (vec4<f16>) -> f16, | |
| (vec4<f64>) -> f64, | |
| ], | |
| conclude: Scalar, | |
| } | |
| DEBUG Supplying argument 0 of type vec2<f32> | |
| DEBUG Remaining overloads: List { | |
| rules: [ | |
| (vec2<f32>) -> f32, | |
| ], | |
| conclude: Scalar, | |
| } | |
| DEBUG initial overloads for Length, List { | |
| rules: [ | |
| (f32) -> f32, | |
| (f16) -> f16, | |
| (f64) -> f64, | |
| (vec2<f32>) -> f32, | |
| (vec2<f16>) -> f16, | |
| (vec2<f64>) -> f64, | |
| (vec3<f32>) -> f32, | |
| (vec3<f16>) -> f16, | |
| (vec3<f64>) -> f64, | |
| (vec4<f32>) -> f32, | |
| (vec4<f16>) -> f16, | |
| (vec4<f64>) -> f64, | |
| ], | |
| conclude: Scalar, | |
| } | |
| DEBUG overloads after arg 0 of type vec2<f32>: List { | |
| rules: [ | |
| (vec2<f32>) -> f32, | |
| ], | |
| conclude: Scalar, | |
| } | |
| DEBUG Resolving [24] = Math { fun: Length, arg: [23], arg1: None, arg2: None, arg3: None } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [25] = Literal(AbstractFloat(0.001)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG wgsl automatic_conversion_consensus: f32, {AbstractFloat} | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [26] = Literal(F32(0.001)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [27] = Binary { op: Less, left: [24], right: [26] } : Value(Scalar(Scalar { kind: Bool, width: 1 })) | |
| DEBUG Resolving [28] = Literal(AbstractFloat(1.0)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG Resolving [29] = Literal(F32(1.0)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [30] = Literal(AbstractFloat(2.0)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG Resolving [31] = AccessIndex { base: [0], index: 1 } : Handle([3]) | |
| DEBUG Resolving [32] = Swizzle { size: Bi, vector: [31], pattern: [X, X, X, X] } : Value(Vector { size: Bi, scalar: Scalar { kind: Float, width: 4 } }) | |
| DEBUG wgsl automatic_conversion_consensus: {AbstractFloat}, vec2<f32> | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [33] = Literal(F32(2.0)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [34] = Binary { op: Multiply, left: [33], right: [32] } : Value(Vector { size: Bi, scalar: Scalar { kind: Float, width: 4 } }) | |
| DEBUG Resolving [35] = AccessIndex { base: [2], index: 0 } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [36] = AccessIndex { base: [4], index: 0 } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [37] = Compose { ty: [3], components: [[35], [36]] } : Handle([3]) | |
| DEBUG wgsl automatic_conversion_consensus: vec2<f32>, vec2<f32> | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [38] = Binary { op: Multiply, left: [34], right: [37] } : Value(Vector { size: Bi, scalar: Scalar { kind: Float, width: 4 } }) | |
| DEBUG Resolving [39] = AccessIndex { base: [2], index: 1 } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [40] = AccessIndex { base: [4], index: 1 } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [41] = Compose { ty: [3], components: [[39], [40]] } : Handle([3]) | |
| DEBUG wgsl automatic_conversion_consensus: vec2<f32>, vec2<f32> | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [42] = Binary { op: Subtract, left: [38], right: [41] } : Value(Vector { size: Bi, scalar: Scalar { kind: Float, width: 4 } }) | |
| DEBUG Resolving [43] = AccessIndex { base: [0], index: 1 } : Handle([3]) | |
| DEBUG Resolving [44] = AccessIndex { base: [43], index: 0 } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [45] = AccessIndex { base: [0], index: 1 } : Handle([3]) | |
| DEBUG Resolving [46] = AccessIndex { base: [45], index: 0 } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG wgsl automatic_conversion_consensus: f32, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [47] = Binary { op: Multiply, left: [44], right: [46] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [48] = AccessIndex { base: [0], index: 1 } : Handle([3]) | |
| DEBUG Resolving [49] = AccessIndex { base: [48], index: 1 } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG wgsl automatic_conversion_consensus: f32, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [50] = Binary { op: Subtract, left: [47], right: [49] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Initial overloads: List { | |
| rules: [ | |
| (f32) -> f32, | |
| (f16) -> f16, | |
| (f64) -> f64, | |
| (vec2<f32>) -> f32, | |
| (vec2<f16>) -> f16, | |
| (vec2<f64>) -> f64, | |
| (vec3<f32>) -> f32, | |
| (vec3<f16>) -> f16, | |
| (vec3<f64>) -> f64, | |
| (vec4<f32>) -> f32, | |
| (vec4<f16>) -> f16, | |
| (vec4<f64>) -> f64, | |
| ], | |
| conclude: Scalar, | |
| } | |
| DEBUG Supplying argument 0 of type vec2<f32> | |
| DEBUG Remaining overloads: List { | |
| rules: [ | |
| (vec2<f32>) -> f32, | |
| ], | |
| conclude: Scalar, | |
| } | |
| DEBUG initial overloads for Length, List { | |
| rules: [ | |
| (f32) -> f32, | |
| (f16) -> f16, | |
| (f64) -> f64, | |
| (vec2<f32>) -> f32, | |
| (vec2<f16>) -> f16, | |
| (vec2<f64>) -> f64, | |
| (vec3<f32>) -> f32, | |
| (vec3<f16>) -> f16, | |
| (vec3<f64>) -> f64, | |
| (vec4<f32>) -> f32, | |
| (vec4<f16>) -> f16, | |
| (vec4<f64>) -> f64, | |
| ], | |
| conclude: Scalar, | |
| } | |
| DEBUG overloads after arg 0 of type vec2<f32>: List { | |
| rules: [ | |
| (vec2<f32>) -> f32, | |
| ], | |
| conclude: Scalar, | |
| } | |
| DEBUG Resolving [51] = Math { fun: Length, arg: [42], arg1: None, arg2: None, arg3: None } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG wgsl automatic_conversion_consensus: f32, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [52] = Binary { op: Divide, left: [50], right: [51] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [53] = Literal(AbstractFloat(0.5)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG wgsl automatic_conversion_consensus: {AbstractFloat}, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [54] = Literal(F32(0.5)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [55] = Binary { op: Subtract, left: [54], right: [52] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Initial overloads: List { | |
| rules: [ | |
| ({AbstractFloat}) -> {AbstractFloat}, | |
| (f32) -> f32, | |
| (f16) -> f16, | |
| (f64) -> f64, | |
| (vec2<{AbstractFloat}>) -> vec2<{AbstractFloat}>, | |
| (vec2<f32>) -> vec2<f32>, | |
| (vec2<f16>) -> vec2<f16>, | |
| (vec2<f64>) -> vec2<f64>, | |
| (vec3<{AbstractFloat}>) -> vec3<{AbstractFloat}>, | |
| (vec3<f32>) -> vec3<f32>, | |
| (vec3<f16>) -> vec3<f16>, | |
| (vec3<f64>) -> vec3<f64>, | |
| (vec4<{AbstractFloat}>) -> vec4<{AbstractFloat}>, | |
| (vec4<f32>) -> vec4<f32>, | |
| (vec4<f16>) -> vec4<f16>, | |
| (vec4<f64>) -> vec4<f64>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG Supplying argument 0 of type f32 | |
| DEBUG Remaining overloads: List { | |
| rules: [ | |
| (f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG initial overloads for Saturate, List { | |
| rules: [ | |
| ({AbstractFloat}) -> {AbstractFloat}, | |
| (f32) -> f32, | |
| (f16) -> f16, | |
| (f64) -> f64, | |
| (vec2<{AbstractFloat}>) -> vec2<{AbstractFloat}>, | |
| (vec2<f32>) -> vec2<f32>, | |
| (vec2<f16>) -> vec2<f16>, | |
| (vec2<f64>) -> vec2<f64>, | |
| (vec3<{AbstractFloat}>) -> vec3<{AbstractFloat}>, | |
| (vec3<f32>) -> vec3<f32>, | |
| (vec3<f16>) -> vec3<f16>, | |
| (vec3<f64>) -> vec3<f64>, | |
| (vec4<{AbstractFloat}>) -> vec4<{AbstractFloat}>, | |
| (vec4<f32>) -> vec4<f32>, | |
| (vec4<f16>) -> vec4<f16>, | |
| (vec4<f64>) -> vec4<f64>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG overloads after arg 0 of type f32: List { | |
| rules: [ | |
| (f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG Resolving [56] = Math { fun: Saturate, arg: [55], arg1: None, arg2: None, arg3: None } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [57] = AccessIndex { base: [18], index: 0 } : Handle([4]) | |
| DEBUG Resolving [58] = AccessIndex { base: [18], index: 1 } : Handle([4]) | |
| DEBUG Resolving [59] = AccessIndex { base: [18], index: 2 } : Handle([11]) | |
| DEBUG Resolving [60] = AccessIndex { base: [18], index: 4 } : Handle([13]) | |
| DEBUG Resolving [61] = CallResult([28]) : Handle([24]) | |
| DEBUG Resolving [62] = AccessIndex { base: [0], index: 0 } : Handle([2]) | |
| DEBUG Resolving [63] = Swizzle { size: Bi, vector: [62], pattern: [X, Y, X, X] } : Value(Vector { size: Bi, scalar: Scalar { kind: Float, width: 4 } }) | |
| DEBUG Resolving [64] = AccessIndex { base: [61], index: 0 } : Handle([2]) | |
| DEBUG Resolving [65] = AccessIndex { base: [61], index: 1 } : Handle([2]) | |
| DEBUG Resolving [66] = AccessIndex { base: [61], index: 2 } : Handle([2]) | |
| DEBUG Resolving [67] = CallResult([29]) : Handle([2]) | |
| DEBUG Resolving [68] = Swizzle { size: Tri, vector: [67], pattern: [X, Y, Z, X] } : Value(Vector { size: Tri, scalar: Scalar { kind: Float, width: 4 } }) | |
| DEBUG Resolving [69] = AccessIndex { base: [67], index: 3 } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG wgsl automatic_conversion_consensus: vec3<f32>, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [70] = Binary { op: Multiply, left: [68], right: [69] } : Value(Vector { size: Tri, scalar: Scalar { kind: Float, width: 4 } }) | |
| DEBUG Resolving [71] = Load { pointer: [20] } : Handle([0]) | |
| DEBUG wgsl automatic_conversion_consensus: vec3<f32>, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [72] = Binary { op: Multiply, left: [70], right: [71] } : Value(Vector { size: Tri, scalar: Scalar { kind: Float, width: 4 } }) | |
| DEBUG Resolving [73] = AccessIndex { base: [67], index: 3 } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [74] = Load { pointer: [20] } : Handle([0]) | |
| DEBUG wgsl automatic_conversion_consensus: f32, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [75] = Binary { op: Multiply, left: [73], right: [74] } : Handle([0]) | |
| DEBUG Resolving [76] = Compose { ty: [2], components: [[72], [75]] } : Handle([2]) | |
| DEBUG Resolving [42] = Literal(I32(0)) : Value(Scalar(Scalar { kind: Sint, width: 4 })) | |
| DEBUG Resolving [43] = Literal(AbstractInt(0)) : Value(Scalar(Scalar { kind: AbstractInt, width: 8 })) | |
| DEBUG Resolving [0] = FunctionArgument(0) : Handle([4]) | |
| DEBUG Resolving [1] = FunctionArgument(1) : Handle([4]) | |
| DEBUG Resolving [2] = Literal(U32(1)) : Value(Scalar(Scalar { kind: Uint, width: 4 })) | |
| DEBUG wgsl automatic_conversion_consensus: u32, u32 | |
| DEBUG consensus: u32 | |
| DEBUG Resolving [3] = Binary { op: And, left: [0], right: [2] } : Handle([4]) | |
| DEBUG Resolving [4] = As { expr: [3], kind: Float, convert: Some(4) } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [5] = Literal(AbstractFloat(0.5)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG Resolving [6] = Literal(U32(2)) : Value(Scalar(Scalar { kind: Uint, width: 4 })) | |
| DEBUG wgsl automatic_conversion_consensus: u32, u32 | |
| DEBUG consensus: u32 | |
| DEBUG Resolving [7] = Binary { op: And, left: [0], right: [6] } : Handle([4]) | |
| DEBUG Resolving [8] = As { expr: [7], kind: Float, convert: Some(4) } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG wgsl automatic_conversion_consensus: {AbstractFloat}, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [9] = Literal(F32(0.5)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [10] = Binary { op: Multiply, left: [9], right: [8] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [11] = Compose { ty: [3], components: [[4], [10]] } : Handle([3]) | |
| DEBUG Resolving [12] = GlobalVariable([8]) : Value(Pointer { base: [35], space: Storage { access: StorageAccess(LOAD) } }) | |
| DEBUG Resolving [13] = Access { base: [12], index: [1] } : Value(Pointer { base: [34], space: Storage { access: StorageAccess(LOAD) } }) | |
| DEBUG Resolving [14] = Load { pointer: [13] } : Handle([34]) | |
| DEBUG Resolving [15] = AccessIndex { base: [14], index: 0 } : Handle([8]) | |
| DEBUG Resolving [16] = CallResult([6]) : Handle([2]) | |
| DEBUG Resolving [17] = AccessIndex { base: [14], index: 0 } : Handle([8]) | |
| DEBUG Resolving [18] = AccessIndex { base: [17], index: 0 } : Handle([3]) | |
| DEBUG Resolving [19] = AccessIndex { base: [14], index: 0 } : Handle([8]) | |
| DEBUG Resolving [20] = AccessIndex { base: [19], index: 1 } : Handle([3]) | |
| DEBUG wgsl automatic_conversion_consensus: vec2<f32>, vec2<f32> | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [21] = Binary { op: Multiply, left: [11], right: [20] } : Handle([3]) | |
| DEBUG wgsl automatic_conversion_consensus: vec2<f32>, vec2<f32> | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [22] = Binary { op: Add, left: [18], right: [21] } : Handle([3]) | |
| DEBUG Resolving [23] = GlobalVariable([0]) : Value(Pointer { base: [5], space: Uniform }) | |
| DEBUG Resolving [24] = AccessIndex { base: [23], index: 0 } : Value(Pointer { base: [3], space: Uniform }) | |
| DEBUG Resolving [25] = Load { pointer: [24] } : Handle([3]) | |
| DEBUG wgsl automatic_conversion_consensus: vec2<f32>, vec2<f32> | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [26] = Binary { op: Divide, left: [22], right: [25] } : Handle([3]) | |
| DEBUG Resolving [27] = ZeroValue([36]) : Handle([36]) | |
| DEBUG Resolving [28] = LocalVariable([0]) : Value(Pointer { base: [36], space: Function }) | |
| DEBUG Resolving [29] = AccessIndex { base: [28], index: 0 } : Value(Pointer { base: [2], space: Function }) | |
| DEBUG Resolving [30] = AccessIndex { base: [28], index: 1 } : Value(Pointer { base: [3], space: Function }) | |
| DEBUG Resolving [31] = Load { pointer: [28] } : Handle([36]) | |
| DEBUG Resolving [44] = Literal(I32(0)) : Value(Scalar(Scalar { kind: Sint, width: 4 })) | |
| DEBUG Resolving [45] = Literal(AbstractInt(0)) : Value(Scalar(Scalar { kind: AbstractInt, width: 8 })) | |
| DEBUG Resolving [0] = FunctionArgument(0) : Handle([36]) | |
| DEBUG Resolving [1] = GlobalVariable([3]) : Handle([6]) | |
| DEBUG Resolving [2] = GlobalVariable([4]) : Handle([7]) | |
| DEBUG Resolving [3] = AccessIndex { base: [0], index: 1 } : Handle([3]) | |
| DEBUG Resolving [4] = ImageSample { image: [1], sampler: [2], gather: None, coordinate: [3], array_index: None, offset: None, level: Auto, depth_ref: None } : Value(Vector { size: Quad, scalar: Scalar { kind: Float, width: 4 } }) | |
| DEBUG Resolving [46] = Literal(I32(0)) : Value(Scalar(Scalar { kind: Sint, width: 4 })) | |
| DEBUG Resolving [47] = Literal(AbstractInt(0)) : Value(Scalar(Scalar { kind: AbstractInt, width: 8 })) | |
| DEBUG Resolving [48] = Literal(I32(0)) : Value(Scalar(Scalar { kind: Sint, width: 4 })) | |
| DEBUG Resolving [49] = Literal(AbstractInt(1)) : Value(Scalar(Scalar { kind: AbstractInt, width: 8 })) | |
| DEBUG Resolving [50] = Literal(I32(1)) : Value(Scalar(Scalar { kind: Sint, width: 4 })) | |
| DEBUG Resolving [51] = Literal(AbstractInt(3)) : Value(Scalar(Scalar { kind: AbstractInt, width: 8 })) | |
| DEBUG Resolving [0] = FunctionArgument(0) : Handle([4]) | |
| DEBUG Resolving [1] = FunctionArgument(1) : Handle([4]) | |
| DEBUG Resolving [2] = Literal(U32(1)) : Value(Scalar(Scalar { kind: Uint, width: 4 })) | |
| DEBUG wgsl automatic_conversion_consensus: u32, u32 | |
| DEBUG consensus: u32 | |
| DEBUG Resolving [3] = Binary { op: And, left: [0], right: [2] } : Handle([4]) | |
| DEBUG Resolving [4] = As { expr: [3], kind: Float, convert: Some(4) } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [5] = Literal(AbstractFloat(0.5)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG Resolving [6] = Literal(U32(2)) : Value(Scalar(Scalar { kind: Uint, width: 4 })) | |
| DEBUG wgsl automatic_conversion_consensus: u32, u32 | |
| DEBUG consensus: u32 | |
| DEBUG Resolving [7] = Binary { op: And, left: [0], right: [6] } : Handle([4]) | |
| DEBUG Resolving [8] = As { expr: [7], kind: Float, convert: Some(4) } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG wgsl automatic_conversion_consensus: {AbstractFloat}, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [9] = Literal(F32(0.5)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [10] = Binary { op: Multiply, left: [9], right: [8] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [11] = Compose { ty: [3], components: [[4], [10]] } : Handle([3]) | |
| DEBUG Resolving [12] = GlobalVariable([9]) : Value(Pointer { base: [38], space: Storage { access: StorageAccess(LOAD) } }) | |
| DEBUG Resolving [13] = Access { base: [12], index: [1] } : Value(Pointer { base: [37], space: Storage { access: StorageAccess(LOAD) } }) | |
| DEBUG Resolving [14] = Load { pointer: [13] } : Handle([37]) | |
| DEBUG Resolving [15] = ZeroValue([39]) : Handle([39]) | |
| DEBUG Resolving [16] = LocalVariable([0]) : Value(Pointer { base: [39], space: Function }) | |
| DEBUG Resolving [17] = AccessIndex { base: [16], index: 0 } : Value(Pointer { base: [2], space: Function }) | |
| DEBUG Resolving [18] = AccessIndex { base: [14], index: 2 } : Handle([8]) | |
| DEBUG Resolving [19] = CallResult([6]) : Handle([2]) | |
| DEBUG Resolving [20] = AccessIndex { base: [16], index: 1 } : Value(Pointer { base: [2], space: Function }) | |
| DEBUG Resolving [21] = AccessIndex { base: [14], index: 4 } : Handle([11]) | |
| DEBUG Resolving [22] = CallResult([17]) : Handle([2]) | |
| DEBUG Resolving [23] = AccessIndex { base: [16], index: 2 } : Value(Pointer { base: [4], space: Function }) | |
| DEBUG Resolving [24] = AccessIndex { base: [16], index: 3 } : Value(Pointer { base: [2], space: Function }) | |
| DEBUG Resolving [25] = AccessIndex { base: [14], index: 2 } : Handle([8]) | |
| DEBUG Resolving [26] = AccessIndex { base: [14], index: 3 } : Handle([8]) | |
| DEBUG Resolving [27] = CallResult([10]) : Handle([2]) | |
| DEBUG Resolving [28] = Load { pointer: [16] } : Handle([39]) | |
| DEBUG Resolving [52] = Literal(I32(3)) : Value(Scalar(Scalar { kind: Sint, width: 4 })) | |
| DEBUG Resolving [53] = Literal(AbstractInt(0)) : Value(Scalar(Scalar { kind: AbstractInt, width: 8 })) | |
| DEBUG Resolving [0] = FunctionArgument(0) : Handle([39]) | |
| DEBUG Resolving [1] = Literal(AbstractFloat(2.0)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG Resolving [2] = Literal(F32(2.0)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [3] = Literal(AbstractFloat(0.8)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG Resolving [4] = Literal(F32(0.8)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [5] = AccessIndex { base: [0], index: 3 } : Handle([2]) | |
| DEBUG Resolving [6] = Literal(AbstractFloat(0.0)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG Resolving [7] = Literal(F32(0.0)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [8] = Splat { size: Quad, value: [7] } : Value(Vector { size: Quad, scalar: Scalar { kind: Float, width: 4 } }) | |
| DEBUG wgsl automatic_conversion_consensus: vec4<f32>, vec4<f32> | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [9] = Binary { op: Less, left: [5], right: [8] } : Value(Vector { size: Quad, scalar: Scalar { kind: Bool, width: 1 } }) | |
| DEBUG Resolving [10] = Relational { fun: Any, argument: [9] } : Value(Scalar(Scalar { kind: Bool, width: 1 })) | |
| DEBUG Resolving [11] = Literal(AbstractFloat(0.0)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG Resolving [12] = Literal(F32(0.0)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [13] = Splat { size: Quad, value: [12] } : Value(Vector { size: Quad, scalar: Scalar { kind: Float, width: 4 } }) | |
| DEBUG Resolving [14] = GlobalVariable([9]) : Value(Pointer { base: [38], space: Storage { access: StorageAccess(LOAD) } }) | |
| DEBUG Resolving [15] = AccessIndex { base: [0], index: 2 } : Handle([4]) | |
| DEBUG Resolving [16] = Access { base: [14], index: [15] } : Value(Pointer { base: [37], space: Storage { access: StorageAccess(LOAD) } }) | |
| DEBUG Resolving [17] = Load { pointer: [16] } : Handle([37]) | |
| DEBUG Resolving [18] = AccessIndex { base: [17], index: 6 } : Handle([4]) | |
| DEBUG Resolving [19] = Literal(U32(255)) : Value(Scalar(Scalar { kind: Uint, width: 4 })) | |
| DEBUG wgsl automatic_conversion_consensus: u32, u32 | |
| DEBUG consensus: u32 | |
| DEBUG Resolving [20] = Binary { op: And, left: [18], right: [19] } : Handle([4]) | |
| DEBUG Resolving [21] = Literal(U32(0)) : Value(Scalar(Scalar { kind: Uint, width: 4 })) | |
| DEBUG wgsl automatic_conversion_consensus: u32, u32 | |
| DEBUG consensus: u32 | |
| DEBUG Resolving [22] = Binary { op: Equal, left: [20], right: [21] } : Value(Scalar(Scalar { kind: Bool, width: 1 })) | |
| DEBUG Resolving [23] = AccessIndex { base: [0], index: 1 } : Handle([2]) | |
| DEBUG Resolving [24] = AccessIndex { base: [0], index: 1 } : Handle([2]) | |
| DEBUG Resolving [25] = AccessIndex { base: [24], index: 3 } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [26] = CallResult([27]) : Handle([2]) | |
| DEBUG Resolving [27] = AccessIndex { base: [17], index: 5 } : Handle([0]) | |
| DEBUG Resolving [28] = Literal(AbstractFloat(0.5)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG wgsl automatic_conversion_consensus: f32, {AbstractFloat} | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [29] = Literal(F32(0.5)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [30] = Binary { op: Multiply, left: [27], right: [29] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [31] = AccessIndex { base: [0], index: 0 } : Handle([2]) | |
| DEBUG Resolving [32] = Swizzle { size: Bi, vector: [31], pattern: [X, Y, X, X] } : Value(Vector { size: Bi, scalar: Scalar { kind: Float, width: 4 } }) | |
| DEBUG Resolving [33] = AccessIndex { base: [17], index: 2 } : Handle([8]) | |
| DEBUG Resolving [34] = AccessIndex { base: [33], index: 0 } : Handle([3]) | |
| DEBUG wgsl automatic_conversion_consensus: vec2<f32>, vec2<f32> | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [35] = Binary { op: Subtract, left: [32], right: [34] } : Value(Vector { size: Bi, scalar: Scalar { kind: Float, width: 4 } }) | |
| DEBUG Resolving [36] = AccessIndex { base: [17], index: 2 } : Handle([8]) | |
| DEBUG Resolving [37] = AccessIndex { base: [36], index: 1 } : Handle([3]) | |
| DEBUG Resolving [38] = AccessIndex { base: [37], index: 1 } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [39] = Splat { size: Bi, value: [38] } : Value(Vector { size: Bi, scalar: Scalar { kind: Float, width: 4 } }) | |
| DEBUG wgsl automatic_conversion_consensus: vec2<f32>, vec2<f32> | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [40] = Binary { op: Divide, left: [35], right: [39] } : Value(Vector { size: Bi, scalar: Scalar { kind: Float, width: 4 } }) | |
| DEBUG Resolving [41] = Literal(AbstractFloat(0.0)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG Resolving [42] = Literal(AbstractFloat(0.5)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG Resolving [43] = Literal(F32(0.0)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [44] = Literal(F32(0.5)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [45] = Compose { ty: [3], components: [[43], [44]] } : Handle([3]) | |
| DEBUG wgsl automatic_conversion_consensus: vec2<f32>, vec2<f32> | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [46] = Binary { op: Subtract, left: [40], right: [45] } : Value(Vector { size: Bi, scalar: Scalar { kind: Float, width: 4 } }) | |
| DEBUG Resolving [47] = Constant([0]) : Handle([0]) | |
| DEBUG wgsl automatic_conversion_consensus: f32, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [48] = Literal(F32(3.1415925)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [49] = Literal(F32(6.283185)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [50] = AccessIndex { base: [17], index: 5 } : Handle([0]) | |
| DEBUG wgsl automatic_conversion_consensus: f32, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [51] = Binary { op: Multiply, left: [49], right: [50] } : Handle([0]) | |
| DEBUG Resolving [52] = AccessIndex { base: [17], index: 2 } : Handle([8]) | |
| DEBUG Resolving [53] = AccessIndex { base: [52], index: 1 } : Handle([3]) | |
| DEBUG Resolving [54] = AccessIndex { base: [53], index: 1 } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG wgsl automatic_conversion_consensus: f32, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [55] = Binary { op: Divide, left: [51], right: [54] } : Handle([0]) | |
| DEBUG Resolving [56] = AccessIndex { base: [17], index: 5 } : Handle([0]) | |
| DEBUG wgsl automatic_conversion_consensus: f32, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [57] = Binary { op: Multiply, left: [56], right: [4] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [58] = AccessIndex { base: [17], index: 2 } : Handle([8]) | |
| DEBUG Resolving [59] = AccessIndex { base: [58], index: 1 } : Handle([3]) | |
| DEBUG Resolving [60] = AccessIndex { base: [59], index: 1 } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG wgsl automatic_conversion_consensus: f32, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [61] = Binary { op: Divide, left: [57], right: [60] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [62] = AccessIndex { base: [46], index: 0 } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG wgsl automatic_conversion_consensus: f32, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [63] = Binary { op: Multiply, left: [62], right: [55] } : Handle([0]) | |
| DEBUG Initial overloads: List { | |
| rules: [ | |
| ({AbstractFloat}) -> {AbstractFloat}, | |
| (f32) -> f32, | |
| (f16) -> f16, | |
| (f64) -> f64, | |
| (vec2<{AbstractFloat}>) -> vec2<{AbstractFloat}>, | |
| (vec2<f32>) -> vec2<f32>, | |
| (vec2<f16>) -> vec2<f16>, | |
| (vec2<f64>) -> vec2<f64>, | |
| (vec3<{AbstractFloat}>) -> vec3<{AbstractFloat}>, | |
| (vec3<f32>) -> vec3<f32>, | |
| (vec3<f16>) -> vec3<f16>, | |
| (vec3<f64>) -> vec3<f64>, | |
| (vec4<{AbstractFloat}>) -> vec4<{AbstractFloat}>, | |
| (vec4<f32>) -> vec4<f32>, | |
| (vec4<f16>) -> vec4<f16>, | |
| (vec4<f64>) -> vec4<f64>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG Supplying argument 0 of type f32 | |
| DEBUG Remaining overloads: List { | |
| rules: [ | |
| (f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG initial overloads for Sin, List { | |
| rules: [ | |
| ({AbstractFloat}) -> {AbstractFloat}, | |
| (f32) -> f32, | |
| (f16) -> f16, | |
| (f64) -> f64, | |
| (vec2<{AbstractFloat}>) -> vec2<{AbstractFloat}>, | |
| (vec2<f32>) -> vec2<f32>, | |
| (vec2<f16>) -> vec2<f16>, | |
| (vec2<f64>) -> vec2<f64>, | |
| (vec3<{AbstractFloat}>) -> vec3<{AbstractFloat}>, | |
| (vec3<f32>) -> vec3<f32>, | |
| (vec3<f16>) -> vec3<f16>, | |
| (vec3<f64>) -> vec3<f64>, | |
| (vec4<{AbstractFloat}>) -> vec4<{AbstractFloat}>, | |
| (vec4<f32>) -> vec4<f32>, | |
| (vec4<f16>) -> vec4<f16>, | |
| (vec4<f64>) -> vec4<f64>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG overloads after arg 0 of type f32: List { | |
| rules: [ | |
| (f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG Resolving [64] = Math { fun: Sin, arg: [63], arg1: None, arg2: None, arg3: None } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG wgsl automatic_conversion_consensus: f32, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [65] = Binary { op: Multiply, left: [64], right: [61] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [66] = AccessIndex { base: [46], index: 0 } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG wgsl automatic_conversion_consensus: f32, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [67] = Binary { op: Multiply, left: [66], right: [55] } : Handle([0]) | |
| DEBUG Initial overloads: List { | |
| rules: [ | |
| ({AbstractFloat}) -> {AbstractFloat}, | |
| (f32) -> f32, | |
| (f16) -> f16, | |
| (f64) -> f64, | |
| (vec2<{AbstractFloat}>) -> vec2<{AbstractFloat}>, | |
| (vec2<f32>) -> vec2<f32>, | |
| (vec2<f16>) -> vec2<f16>, | |
| (vec2<f64>) -> vec2<f64>, | |
| (vec3<{AbstractFloat}>) -> vec3<{AbstractFloat}>, | |
| (vec3<f32>) -> vec3<f32>, | |
| (vec3<f16>) -> vec3<f16>, | |
| (vec3<f64>) -> vec3<f64>, | |
| (vec4<{AbstractFloat}>) -> vec4<{AbstractFloat}>, | |
| (vec4<f32>) -> vec4<f32>, | |
| (vec4<f16>) -> vec4<f16>, | |
| (vec4<f64>) -> vec4<f64>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG Supplying argument 0 of type f32 | |
| DEBUG Remaining overloads: List { | |
| rules: [ | |
| (f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG initial overloads for Cos, List { | |
| rules: [ | |
| ({AbstractFloat}) -> {AbstractFloat}, | |
| (f32) -> f32, | |
| (f16) -> f16, | |
| (f64) -> f64, | |
| (vec2<{AbstractFloat}>) -> vec2<{AbstractFloat}>, | |
| (vec2<f32>) -> vec2<f32>, | |
| (vec2<f16>) -> vec2<f16>, | |
| (vec2<f64>) -> vec2<f64>, | |
| (vec3<{AbstractFloat}>) -> vec3<{AbstractFloat}>, | |
| (vec3<f32>) -> vec3<f32>, | |
| (vec3<f16>) -> vec3<f16>, | |
| (vec3<f64>) -> vec3<f64>, | |
| (vec4<{AbstractFloat}>) -> vec4<{AbstractFloat}>, | |
| (vec4<f32>) -> vec4<f32>, | |
| (vec4<f16>) -> vec4<f16>, | |
| (vec4<f64>) -> vec4<f64>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG overloads after arg 0 of type f32: List { | |
| rules: [ | |
| (f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG Resolving [68] = Math { fun: Cos, arg: [67], arg1: None, arg2: None, arg3: None } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG wgsl automatic_conversion_consensus: f32, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [69] = Binary { op: Multiply, left: [68], right: [61] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG wgsl automatic_conversion_consensus: f32, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [70] = Binary { op: Multiply, left: [69], right: [55] } : Handle([0]) | |
| DEBUG Resolving [71] = AccessIndex { base: [46], index: 1 } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG wgsl automatic_conversion_consensus: f32, f32 | |
| DEBUG consensus: f32 | |
| DEBUG wgsl automatic_conversion_consensus: f32, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [72] = Binary { op: Subtract, left: [71], right: [65] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [73] = Literal(AbstractFloat(1.0)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG Resolving [74] = Binary { op: Multiply, left: [70], right: [70] } : Handle([0]) | |
| DEBUG wgsl automatic_conversion_consensus: {AbstractFloat}, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [75] = Literal(F32(1.0)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [76] = Binary { op: Add, left: [75], right: [74] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Initial overloads: List { | |
| rules: [ | |
| ({AbstractFloat}) -> {AbstractFloat}, | |
| (f32) -> f32, | |
| (f16) -> f16, | |
| (f64) -> f64, | |
| (vec2<{AbstractFloat}>) -> vec2<{AbstractFloat}>, | |
| (vec2<f32>) -> vec2<f32>, | |
| (vec2<f16>) -> vec2<f16>, | |
| (vec2<f64>) -> vec2<f64>, | |
| (vec3<{AbstractFloat}>) -> vec3<{AbstractFloat}>, | |
| (vec3<f32>) -> vec3<f32>, | |
| (vec3<f16>) -> vec3<f16>, | |
| (vec3<f64>) -> vec3<f64>, | |
| (vec4<{AbstractFloat}>) -> vec4<{AbstractFloat}>, | |
| (vec4<f32>) -> vec4<f32>, | |
| (vec4<f16>) -> vec4<f16>, | |
| (vec4<f64>) -> vec4<f64>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG Supplying argument 0 of type f32 | |
| DEBUG Remaining overloads: List { | |
| rules: [ | |
| (f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG initial overloads for Sqrt, List { | |
| rules: [ | |
| ({AbstractFloat}) -> {AbstractFloat}, | |
| (f32) -> f32, | |
| (f16) -> f16, | |
| (f64) -> f64, | |
| (vec2<{AbstractFloat}>) -> vec2<{AbstractFloat}>, | |
| (vec2<f32>) -> vec2<f32>, | |
| (vec2<f16>) -> vec2<f16>, | |
| (vec2<f64>) -> vec2<f64>, | |
| (vec3<{AbstractFloat}>) -> vec3<{AbstractFloat}>, | |
| (vec3<f32>) -> vec3<f32>, | |
| (vec3<f16>) -> vec3<f16>, | |
| (vec3<f64>) -> vec3<f64>, | |
| (vec4<{AbstractFloat}>) -> vec4<{AbstractFloat}>, | |
| (vec4<f32>) -> vec4<f32>, | |
| (vec4<f16>) -> vec4<f16>, | |
| (vec4<f64>) -> vec4<f64>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG overloads after arg 0 of type f32: List { | |
| rules: [ | |
| (f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG Resolving [77] = Math { fun: Sqrt, arg: [76], arg1: None, arg2: None, arg3: None } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG wgsl automatic_conversion_consensus: f32, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [78] = Binary { op: Divide, left: [72], right: [77] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [79] = AccessIndex { base: [17], index: 2 } : Handle([8]) | |
| DEBUG Resolving [80] = AccessIndex { base: [79], index: 1 } : Handle([3]) | |
| DEBUG Resolving [81] = AccessIndex { base: [80], index: 1 } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG wgsl automatic_conversion_consensus: f32, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [82] = Binary { op: Multiply, left: [78], right: [81] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG wgsl automatic_conversion_consensus: f32, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [83] = Binary { op: Subtract, left: [82], right: [30] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG wgsl automatic_conversion_consensus: f32, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [84] = Binary { op: Add, left: [82], right: [30] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [85] = Literal(AbstractFloat(0.5)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG Resolving [86] = Unary { op: Negate, expr: [84] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Initial overloads: List { | |
| rules: [ | |
| ({AbstractInt}, {AbstractInt}) -> {AbstractInt}, | |
| ({AbstractFloat}, {AbstractFloat}) -> {AbstractFloat}, | |
| (i32, i32) -> i32, | |
| (i64, i64) -> i64, | |
| (u32, u32) -> u32, | |
| (u64, u64) -> u64, | |
| (f32, f32) -> f32, | |
| (f16, f16) -> f16, | |
| (f64, f64) -> f64, | |
| (vec2<{AbstractInt}>, vec2<{AbstractInt}>) -> vec2<{AbstractInt}>, | |
| (vec2<{AbstractFloat}>, vec2<{AbstractFloat}>) -> vec2<{AbstractFloat}>, | |
| (vec2<i32>, vec2<i32>) -> vec2<i32>, | |
| (vec2<i64>, vec2<i64>) -> vec2<i64>, | |
| (vec2<u32>, vec2<u32>) -> vec2<u32>, | |
| (vec2<u64>, vec2<u64>) -> vec2<u64>, | |
| (vec2<f32>, vec2<f32>) -> vec2<f32>, | |
| (vec2<f16>, vec2<f16>) -> vec2<f16>, | |
| (vec2<f64>, vec2<f64>) -> vec2<f64>, | |
| (vec3<{AbstractInt}>, vec3<{AbstractInt}>) -> vec3<{AbstractInt}>, | |
| (vec3<{AbstractFloat}>, vec3<{AbstractFloat}>) -> vec3<{AbstractFloat}>, | |
| (vec3<i32>, vec3<i32>) -> vec3<i32>, | |
| (vec3<i64>, vec3<i64>) -> vec3<i64>, | |
| (vec3<u32>, vec3<u32>) -> vec3<u32>, | |
| (vec3<u64>, vec3<u64>) -> vec3<u64>, | |
| (vec3<f32>, vec3<f32>) -> vec3<f32>, | |
| (vec3<f16>, vec3<f16>) -> vec3<f16>, | |
| (vec3<f64>, vec3<f64>) -> vec3<f64>, | |
| (vec4<{AbstractInt}>, vec4<{AbstractInt}>) -> vec4<{AbstractInt}>, | |
| (vec4<{AbstractFloat}>, vec4<{AbstractFloat}>) -> vec4<{AbstractFloat}>, | |
| (vec4<i32>, vec4<i32>) -> vec4<i32>, | |
| (vec4<i64>, vec4<i64>) -> vec4<i64>, | |
| (vec4<u32>, vec4<u32>) -> vec4<u32>, | |
| (vec4<u64>, vec4<u64>) -> vec4<u64>, | |
| (vec4<f32>, vec4<f32>) -> vec4<f32>, | |
| (vec4<f16>, vec4<f16>) -> vec4<f16>, | |
| (vec4<f64>, vec4<f64>) -> vec4<f64>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG Supplying argument 0 of type f32 | |
| DEBUG Remaining overloads: List { | |
| rules: [ | |
| (f32, f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG Supplying argument 1 of type f32 | |
| DEBUG Remaining overloads: List { | |
| rules: [ | |
| (f32, f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG initial overloads for Max, List { | |
| rules: [ | |
| ({AbstractInt}, {AbstractInt}) -> {AbstractInt}, | |
| ({AbstractFloat}, {AbstractFloat}) -> {AbstractFloat}, | |
| (i32, i32) -> i32, | |
| (i64, i64) -> i64, | |
| (u32, u32) -> u32, | |
| (u64, u64) -> u64, | |
| (f32, f32) -> f32, | |
| (f16, f16) -> f16, | |
| (f64, f64) -> f64, | |
| (vec2<{AbstractInt}>, vec2<{AbstractInt}>) -> vec2<{AbstractInt}>, | |
| (vec2<{AbstractFloat}>, vec2<{AbstractFloat}>) -> vec2<{AbstractFloat}>, | |
| (vec2<i32>, vec2<i32>) -> vec2<i32>, | |
| (vec2<i64>, vec2<i64>) -> vec2<i64>, | |
| (vec2<u32>, vec2<u32>) -> vec2<u32>, | |
| (vec2<u64>, vec2<u64>) -> vec2<u64>, | |
| (vec2<f32>, vec2<f32>) -> vec2<f32>, | |
| (vec2<f16>, vec2<f16>) -> vec2<f16>, | |
| (vec2<f64>, vec2<f64>) -> vec2<f64>, | |
| (vec3<{AbstractInt}>, vec3<{AbstractInt}>) -> vec3<{AbstractInt}>, | |
| (vec3<{AbstractFloat}>, vec3<{AbstractFloat}>) -> vec3<{AbstractFloat}>, | |
| (vec3<i32>, vec3<i32>) -> vec3<i32>, | |
| (vec3<i64>, vec3<i64>) -> vec3<i64>, | |
| (vec3<u32>, vec3<u32>) -> vec3<u32>, | |
| (vec3<u64>, vec3<u64>) -> vec3<u64>, | |
| (vec3<f32>, vec3<f32>) -> vec3<f32>, | |
| (vec3<f16>, vec3<f16>) -> vec3<f16>, | |
| (vec3<f64>, vec3<f64>) -> vec3<f64>, | |
| (vec4<{AbstractInt}>, vec4<{AbstractInt}>) -> vec4<{AbstractInt}>, | |
| (vec4<{AbstractFloat}>, vec4<{AbstractFloat}>) -> vec4<{AbstractFloat}>, | |
| (vec4<i32>, vec4<i32>) -> vec4<i32>, | |
| (vec4<i64>, vec4<i64>) -> vec4<i64>, | |
| (vec4<u32>, vec4<u32>) -> vec4<u32>, | |
| (vec4<u64>, vec4<u64>) -> vec4<u64>, | |
| (vec4<f32>, vec4<f32>) -> vec4<f32>, | |
| (vec4<f16>, vec4<f16>) -> vec4<f16>, | |
| (vec4<f64>, vec4<f64>) -> vec4<f64>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG overloads after arg 0 of type f32: List { | |
| rules: [ | |
| (f32, f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG overloads after arg 1 of type f32: List { | |
| rules: [ | |
| (f32, f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG Resolving [87] = Math { fun: Max, arg: [86], arg1: Some([83]), arg2: None, arg3: None } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG wgsl automatic_conversion_consensus: {AbstractFloat}, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [88] = Literal(F32(0.5)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [89] = Binary { op: Subtract, left: [88], right: [87] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Initial overloads: List { | |
| rules: [ | |
| ({AbstractFloat}) -> {AbstractFloat}, | |
| (f32) -> f32, | |
| (f16) -> f16, | |
| (f64) -> f64, | |
| (vec2<{AbstractFloat}>) -> vec2<{AbstractFloat}>, | |
| (vec2<f32>) -> vec2<f32>, | |
| (vec2<f16>) -> vec2<f16>, | |
| (vec2<f64>) -> vec2<f64>, | |
| (vec3<{AbstractFloat}>) -> vec3<{AbstractFloat}>, | |
| (vec3<f32>) -> vec3<f32>, | |
| (vec3<f16>) -> vec3<f16>, | |
| (vec3<f64>) -> vec3<f64>, | |
| (vec4<{AbstractFloat}>) -> vec4<{AbstractFloat}>, | |
| (vec4<f32>) -> vec4<f32>, | |
| (vec4<f16>) -> vec4<f16>, | |
| (vec4<f64>) -> vec4<f64>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG Supplying argument 0 of type f32 | |
| DEBUG Remaining overloads: List { | |
| rules: [ | |
| (f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG initial overloads for Saturate, List { | |
| rules: [ | |
| ({AbstractFloat}) -> {AbstractFloat}, | |
| (f32) -> f32, | |
| (f16) -> f16, | |
| (f64) -> f64, | |
| (vec2<{AbstractFloat}>) -> vec2<{AbstractFloat}>, | |
| (vec2<f32>) -> vec2<f32>, | |
| (vec2<f16>) -> vec2<f16>, | |
| (vec2<f64>) -> vec2<f64>, | |
| (vec3<{AbstractFloat}>) -> vec3<{AbstractFloat}>, | |
| (vec3<f32>) -> vec3<f32>, | |
| (vec3<f16>) -> vec3<f16>, | |
| (vec3<f64>) -> vec3<f64>, | |
| (vec4<{AbstractFloat}>) -> vec4<{AbstractFloat}>, | |
| (vec4<f32>) -> vec4<f32>, | |
| (vec4<f16>) -> vec4<f16>, | |
| (vec4<f64>) -> vec4<f64>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG overloads after arg 0 of type f32: List { | |
| rules: [ | |
| (f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG Resolving [90] = Math { fun: Saturate, arg: [89], arg1: None, arg2: None, arg3: None } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [91] = AccessIndex { base: [0], index: 1 } : Handle([2]) | |
| DEBUG Resolving [92] = AccessIndex { base: [0], index: 1 } : Handle([2]) | |
| DEBUG Resolving [93] = AccessIndex { base: [92], index: 3 } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG wgsl automatic_conversion_consensus: f32, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [94] = Binary { op: Multiply, left: [90], right: [93] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [95] = CallResult([27]) : Handle([2]) | |
| DEBUG Resolving [54] = Literal(I32(0)) : Value(Scalar(Scalar { kind: Sint, width: 4 })) | |
| DEBUG Resolving [55] = Literal(AbstractInt(0)) : Value(Scalar(Scalar { kind: AbstractInt, width: 8 })) | |
| DEBUG Resolving [56] = Literal(I32(0)) : Value(Scalar(Scalar { kind: Sint, width: 4 })) | |
| DEBUG Resolving [57] = Literal(AbstractInt(1)) : Value(Scalar(Scalar { kind: AbstractInt, width: 8 })) | |
| DEBUG Resolving [58] = Literal(I32(1)) : Value(Scalar(Scalar { kind: Sint, width: 4 })) | |
| DEBUG Resolving [59] = Literal(AbstractInt(3)) : Value(Scalar(Scalar { kind: AbstractInt, width: 8 })) | |
| DEBUG Resolving [0] = FunctionArgument(0) : Handle([4]) | |
| DEBUG Resolving [1] = FunctionArgument(1) : Handle([4]) | |
| DEBUG Resolving [2] = Literal(U32(1)) : Value(Scalar(Scalar { kind: Uint, width: 4 })) | |
| DEBUG wgsl automatic_conversion_consensus: u32, u32 | |
| DEBUG consensus: u32 | |
| DEBUG Resolving [3] = Binary { op: And, left: [0], right: [2] } : Handle([4]) | |
| DEBUG Resolving [4] = As { expr: [3], kind: Float, convert: Some(4) } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [5] = Literal(AbstractFloat(0.5)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG Resolving [6] = Literal(U32(2)) : Value(Scalar(Scalar { kind: Uint, width: 4 })) | |
| DEBUG wgsl automatic_conversion_consensus: u32, u32 | |
| DEBUG consensus: u32 | |
| DEBUG Resolving [7] = Binary { op: And, left: [0], right: [6] } : Handle([4]) | |
| DEBUG Resolving [8] = As { expr: [7], kind: Float, convert: Some(4) } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG wgsl automatic_conversion_consensus: {AbstractFloat}, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [9] = Literal(F32(0.5)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [10] = Binary { op: Multiply, left: [9], right: [8] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [11] = Compose { ty: [3], components: [[4], [10]] } : Handle([3]) | |
| DEBUG Resolving [12] = GlobalVariable([10]) : Value(Pointer { base: [41], space: Storage { access: StorageAccess(LOAD) } }) | |
| DEBUG Resolving [13] = Access { base: [12], index: [1] } : Value(Pointer { base: [40], space: Storage { access: StorageAccess(LOAD) } }) | |
| DEBUG Resolving [14] = Load { pointer: [13] } : Handle([40]) | |
| DEBUG Resolving [15] = ZeroValue([42]) : Handle([42]) | |
| DEBUG Resolving [16] = LocalVariable([0]) : Value(Pointer { base: [42], space: Function }) | |
| DEBUG Resolving [17] = AccessIndex { base: [16], index: 0 } : Value(Pointer { base: [2], space: Function }) | |
| DEBUG Resolving [18] = AccessIndex { base: [14], index: 2 } : Handle([8]) | |
| DEBUG Resolving [19] = AccessIndex { base: [14], index: 6 } : Handle([21]) | |
| DEBUG Resolving [20] = CallResult([7]) : Handle([2]) | |
| DEBUG Resolving [21] = AccessIndex { base: [16], index: 1 } : Value(Pointer { base: [3], space: Function }) | |
| DEBUG Resolving [22] = AccessIndex { base: [14], index: 5 } : Handle([19]) | |
| DEBUG Resolving [23] = CallResult([8]) : Handle([3]) | |
| DEBUG Resolving [24] = AccessIndex { base: [16], index: 2 } : Value(Pointer { base: [2], space: Function }) | |
| DEBUG Resolving [25] = AccessIndex { base: [14], index: 4 } : Handle([11]) | |
| DEBUG Resolving [26] = CallResult([17]) : Handle([2]) | |
| DEBUG Resolving [27] = AccessIndex { base: [16], index: 3 } : Value(Pointer { base: [2], space: Function }) | |
| DEBUG Resolving [28] = AccessIndex { base: [14], index: 2 } : Handle([8]) | |
| DEBUG Resolving [29] = AccessIndex { base: [14], index: 3 } : Handle([8]) | |
| DEBUG Resolving [30] = AccessIndex { base: [14], index: 6 } : Handle([21]) | |
| DEBUG Resolving [31] = CallResult([11]) : Handle([2]) | |
| DEBUG Resolving [32] = Load { pointer: [16] } : Handle([42]) | |
| DEBUG Resolving [60] = Literal(I32(3)) : Value(Scalar(Scalar { kind: Sint, width: 4 })) | |
| DEBUG Resolving [61] = Literal(AbstractInt(0)) : Value(Scalar(Scalar { kind: AbstractInt, width: 8 })) | |
| DEBUG Resolving [0] = FunctionArgument(0) : Handle([42]) | |
| DEBUG Resolving [1] = GlobalVariable([3]) : Handle([6]) | |
| DEBUG Resolving [2] = GlobalVariable([4]) : Handle([7]) | |
| DEBUG Resolving [3] = AccessIndex { base: [0], index: 1 } : Handle([3]) | |
| DEBUG Resolving [4] = ImageSample { image: [1], sampler: [2], gather: None, coordinate: [3], array_index: None, offset: None, level: Auto, depth_ref: None } : Value(Vector { size: Quad, scalar: Scalar { kind: Float, width: 4 } }) | |
| DEBUG Resolving [5] = AccessIndex { base: [4], index: 0 } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [6] = AccessIndex { base: [0], index: 2 } : Handle([2]) | |
| DEBUG Resolving [7] = Swizzle { size: Tri, vector: [6], pattern: [X, Y, Z, X] } : Value(Vector { size: Tri, scalar: Scalar { kind: Float, width: 4 } }) | |
| DEBUG Resolving [8] = GlobalVariable([2]) : Value(Pointer { base: [0], space: Uniform }) | |
| DEBUG Resolving [9] = Load { pointer: [8] } : Handle([0]) | |
| DEBUG Resolving [10] = GlobalVariable([1]) : Value(Pointer { base: [2], space: Uniform }) | |
| DEBUG Resolving [11] = Load { pointer: [10] } : Handle([2]) | |
| DEBUG Resolving [12] = CallResult([4]) : Handle([0]) | |
| DEBUG Resolving [13] = AccessIndex { base: [0], index: 3 } : Handle([2]) | |
| DEBUG Resolving [14] = Literal(AbstractFloat(0.0)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG Resolving [15] = Literal(F32(0.0)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [16] = Splat { size: Quad, value: [15] } : Value(Vector { size: Quad, scalar: Scalar { kind: Float, width: 4 } }) | |
| DEBUG wgsl automatic_conversion_consensus: vec4<f32>, vec4<f32> | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [17] = Binary { op: Less, left: [13], right: [16] } : Value(Vector { size: Quad, scalar: Scalar { kind: Bool, width: 1 } }) | |
| DEBUG Resolving [18] = Relational { fun: Any, argument: [17] } : Value(Scalar(Scalar { kind: Bool, width: 1 })) | |
| DEBUG Resolving [19] = Literal(AbstractFloat(0.0)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG Resolving [20] = Literal(F32(0.0)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [21] = Splat { size: Quad, value: [20] } : Value(Vector { size: Quad, scalar: Scalar { kind: Float, width: 4 } }) | |
| DEBUG Resolving [22] = AccessIndex { base: [0], index: 2 } : Handle([2]) | |
| DEBUG Resolving [23] = CallResult([27]) : Handle([2]) | |
| DEBUG Resolving [62] = Literal(I32(0)) : Value(Scalar(Scalar { kind: Sint, width: 4 })) | |
| DEBUG Resolving [63] = Literal(AbstractInt(0)) : Value(Scalar(Scalar { kind: AbstractInt, width: 8 })) | |
| DEBUG Resolving [64] = Literal(I32(0)) : Value(Scalar(Scalar { kind: Sint, width: 4 })) | |
| DEBUG Resolving [65] = Literal(AbstractInt(1)) : Value(Scalar(Scalar { kind: AbstractInt, width: 8 })) | |
| DEBUG Resolving [66] = Literal(I32(1)) : Value(Scalar(Scalar { kind: Sint, width: 4 })) | |
| DEBUG Resolving [67] = Literal(AbstractInt(3)) : Value(Scalar(Scalar { kind: AbstractInt, width: 8 })) | |
| DEBUG Resolving [0] = FunctionArgument(0) : Handle([4]) | |
| DEBUG Resolving [1] = FunctionArgument(1) : Handle([4]) | |
| DEBUG Resolving [2] = Literal(U32(1)) : Value(Scalar(Scalar { kind: Uint, width: 4 })) | |
| DEBUG wgsl automatic_conversion_consensus: u32, u32 | |
| DEBUG consensus: u32 | |
| DEBUG Resolving [3] = Binary { op: And, left: [0], right: [2] } : Handle([4]) | |
| DEBUG Resolving [4] = As { expr: [3], kind: Float, convert: Some(4) } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [5] = Literal(AbstractFloat(0.5)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG Resolving [6] = Literal(U32(2)) : Value(Scalar(Scalar { kind: Uint, width: 4 })) | |
| DEBUG wgsl automatic_conversion_consensus: u32, u32 | |
| DEBUG consensus: u32 | |
| DEBUG Resolving [7] = Binary { op: And, left: [0], right: [6] } : Handle([4]) | |
| DEBUG Resolving [8] = As { expr: [7], kind: Float, convert: Some(4) } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG wgsl automatic_conversion_consensus: {AbstractFloat}, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [9] = Literal(F32(0.5)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [10] = Binary { op: Multiply, left: [9], right: [8] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [11] = Compose { ty: [3], components: [[4], [10]] } : Handle([3]) | |
| DEBUG Resolving [12] = GlobalVariable([11]) : Value(Pointer { base: [44], space: Storage { access: StorageAccess(LOAD) } }) | |
| DEBUG Resolving [13] = Access { base: [12], index: [1] } : Value(Pointer { base: [43], space: Storage { access: StorageAccess(LOAD) } }) | |
| DEBUG Resolving [14] = Load { pointer: [13] } : Handle([43]) | |
| DEBUG Resolving [15] = ZeroValue([45]) : Handle([45]) | |
| DEBUG Resolving [16] = LocalVariable([0]) : Value(Pointer { base: [45], space: Function }) | |
| DEBUG Resolving [17] = AccessIndex { base: [16], index: 0 } : Value(Pointer { base: [2], space: Function }) | |
| DEBUG Resolving [18] = AccessIndex { base: [14], index: 4 } : Handle([8]) | |
| DEBUG Resolving [19] = CallResult([6]) : Handle([2]) | |
| DEBUG Resolving [20] = AccessIndex { base: [16], index: 1 } : Value(Pointer { base: [3], space: Function }) | |
| DEBUG Resolving [21] = AccessIndex { base: [14], index: 7 } : Handle([19]) | |
| DEBUG Resolving [22] = CallResult([8]) : Handle([3]) | |
| DEBUG Resolving [23] = AccessIndex { base: [16], index: 2 } : Value(Pointer { base: [4], space: Function }) | |
| DEBUG Resolving [24] = AccessIndex { base: [16], index: 3 } : Value(Pointer { base: [2], space: Function }) | |
| DEBUG Resolving [25] = AccessIndex { base: [14], index: 4 } : Handle([8]) | |
| DEBUG Resolving [26] = AccessIndex { base: [14], index: 5 } : Handle([8]) | |
| DEBUG Resolving [27] = CallResult([10]) : Handle([2]) | |
| DEBUG Resolving [28] = Load { pointer: [16] } : Handle([45]) | |
| DEBUG Resolving [68] = Literal(I32(3)) : Value(Scalar(Scalar { kind: Sint, width: 4 })) | |
| DEBUG Resolving [69] = Literal(AbstractInt(0)) : Value(Scalar(Scalar { kind: AbstractInt, width: 8 })) | |
| DEBUG Resolving [0] = FunctionArgument(0) : Handle([45]) | |
| DEBUG Resolving [1] = GlobalVariable([3]) : Handle([6]) | |
| DEBUG Resolving [2] = GlobalVariable([4]) : Handle([7]) | |
| DEBUG Resolving [3] = AccessIndex { base: [0], index: 1 } : Handle([3]) | |
| DEBUG Resolving [4] = ImageSample { image: [1], sampler: [2], gather: None, coordinate: [3], array_index: None, offset: None, level: Auto, depth_ref: None } : Value(Vector { size: Quad, scalar: Scalar { kind: Float, width: 4 } }) | |
| DEBUG Resolving [5] = AccessIndex { base: [0], index: 3 } : Handle([2]) | |
| DEBUG Resolving [6] = Literal(AbstractFloat(0.0)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG Resolving [7] = Literal(F32(0.0)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [8] = Splat { size: Quad, value: [7] } : Value(Vector { size: Quad, scalar: Scalar { kind: Float, width: 4 } }) | |
| DEBUG wgsl automatic_conversion_consensus: vec4<f32>, vec4<f32> | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [9] = Binary { op: Less, left: [5], right: [8] } : Value(Vector { size: Quad, scalar: Scalar { kind: Bool, width: 1 } }) | |
| DEBUG Resolving [10] = Relational { fun: Any, argument: [9] } : Value(Scalar(Scalar { kind: Bool, width: 1 })) | |
| DEBUG Resolving [11] = Literal(AbstractFloat(0.0)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG Resolving [12] = Literal(F32(0.0)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [13] = Splat { size: Quad, value: [12] } : Value(Vector { size: Quad, scalar: Scalar { kind: Float, width: 4 } }) | |
| DEBUG Resolving [14] = GlobalVariable([11]) : Value(Pointer { base: [44], space: Storage { access: StorageAccess(LOAD) } }) | |
| DEBUG Resolving [15] = AccessIndex { base: [0], index: 2 } : Handle([4]) | |
| DEBUG Resolving [16] = Access { base: [14], index: [15] } : Value(Pointer { base: [43], space: Storage { access: StorageAccess(LOAD) } }) | |
| DEBUG Resolving [17] = Load { pointer: [16] } : Handle([43]) | |
| DEBUG Resolving [18] = AccessIndex { base: [0], index: 0 } : Handle([2]) | |
| DEBUG Resolving [19] = Swizzle { size: Bi, vector: [18], pattern: [X, Y, X, X] } : Value(Vector { size: Bi, scalar: Scalar { kind: Float, width: 4 } }) | |
| DEBUG Resolving [20] = AccessIndex { base: [17], index: 4 } : Handle([8]) | |
| DEBUG Resolving [21] = AccessIndex { base: [17], index: 6 } : Handle([9]) | |
| DEBUG Resolving [22] = CallResult([26]) : Handle([0]) | |
| DEBUG Resolving [23] = LocalVariable([0]) : Value(Pointer { base: [2], space: Function }) | |
| DEBUG Resolving [24] = AccessIndex { base: [17], index: 2 } : Handle([4]) | |
| DEBUG Resolving [25] = Literal(U32(255)) : Value(Scalar(Scalar { kind: Uint, width: 4 })) | |
| DEBUG wgsl automatic_conversion_consensus: u32, u32 | |
| DEBUG consensus: u32 | |
| DEBUG Resolving [26] = Binary { op: And, left: [24], right: [25] } : Handle([4]) | |
| DEBUG Resolving [27] = Literal(U32(0)) : Value(Scalar(Scalar { kind: Uint, width: 4 })) | |
| DEBUG wgsl automatic_conversion_consensus: u32, u32 | |
| DEBUG consensus: u32 | |
| DEBUG Resolving [28] = Binary { op: NotEqual, left: [26], right: [27] } : Value(Scalar(Scalar { kind: Bool, width: 1 })) | |
| DEBUG Resolving [29] = Load { pointer: [23] } : Handle([2]) | |
| DEBUG Resolving [30] = Swizzle { size: Tri, vector: [29], pattern: [X, Y, Z, X] } : Value(Vector { size: Tri, scalar: Scalar { kind: Float, width: 4 } }) | |
| DEBUG Resolving [31] = Constant([1]) : Handle([1]) | |
| DEBUG Initial overloads: List { | |
| rules: [ | |
| (vec2<{AbstractInt}>, vec2<{AbstractInt}>) -> {AbstractInt}, | |
| (vec2<{AbstractFloat}>, vec2<{AbstractFloat}>) -> {AbstractFloat}, | |
| (vec2<i32>, vec2<i32>) -> i32, | |
| (vec2<i64>, vec2<i64>) -> i64, | |
| (vec2<u32>, vec2<u32>) -> u32, | |
| (vec2<u64>, vec2<u64>) -> u64, | |
| (vec2<f32>, vec2<f32>) -> f32, | |
| (vec2<f16>, vec2<f16>) -> f16, | |
| (vec2<f64>, vec2<f64>) -> f64, | |
| (vec3<{AbstractInt}>, vec3<{AbstractInt}>) -> {AbstractInt}, | |
| (vec3<{AbstractFloat}>, vec3<{AbstractFloat}>) -> {AbstractFloat}, | |
| (vec3<i32>, vec3<i32>) -> i32, | |
| (vec3<i64>, vec3<i64>) -> i64, | |
| (vec3<u32>, vec3<u32>) -> u32, | |
| (vec3<u64>, vec3<u64>) -> u64, | |
| (vec3<f32>, vec3<f32>) -> f32, | |
| (vec3<f16>, vec3<f16>) -> f16, | |
| (vec3<f64>, vec3<f64>) -> f64, | |
| (vec4<{AbstractInt}>, vec4<{AbstractInt}>) -> {AbstractInt}, | |
| (vec4<{AbstractFloat}>, vec4<{AbstractFloat}>) -> {AbstractFloat}, | |
| (vec4<i32>, vec4<i32>) -> i32, | |
| (vec4<i64>, vec4<i64>) -> i64, | |
| (vec4<u32>, vec4<u32>) -> u32, | |
| (vec4<u64>, vec4<u64>) -> u64, | |
| (vec4<f32>, vec4<f32>) -> f32, | |
| (vec4<f16>, vec4<f16>) -> f16, | |
| (vec4<f64>, vec4<f64>) -> f64, | |
| ], | |
| conclude: Scalar, | |
| } | |
| DEBUG Supplying argument 0 of type vec3<f32> | |
| DEBUG Remaining overloads: List { | |
| rules: [ | |
| (vec3<f32>, vec3<f32>) -> f32, | |
| ], | |
| conclude: Scalar, | |
| } | |
| DEBUG Supplying argument 1 of type vec3<f32> | |
| DEBUG Remaining overloads: List { | |
| rules: [ | |
| (vec3<f32>, vec3<f32>) -> f32, | |
| ], | |
| conclude: Scalar, | |
| } | |
| DEBUG initial overloads for Dot, List { | |
| rules: [ | |
| (vec2<{AbstractInt}>, vec2<{AbstractInt}>) -> {AbstractInt}, | |
| (vec2<{AbstractFloat}>, vec2<{AbstractFloat}>) -> {AbstractFloat}, | |
| (vec2<i32>, vec2<i32>) -> i32, | |
| (vec2<i64>, vec2<i64>) -> i64, | |
| (vec2<u32>, vec2<u32>) -> u32, | |
| (vec2<u64>, vec2<u64>) -> u64, | |
| (vec2<f32>, vec2<f32>) -> f32, | |
| (vec2<f16>, vec2<f16>) -> f16, | |
| (vec2<f64>, vec2<f64>) -> f64, | |
| (vec3<{AbstractInt}>, vec3<{AbstractInt}>) -> {AbstractInt}, | |
| (vec3<{AbstractFloat}>, vec3<{AbstractFloat}>) -> {AbstractFloat}, | |
| (vec3<i32>, vec3<i32>) -> i32, | |
| (vec3<i64>, vec3<i64>) -> i64, | |
| (vec3<u32>, vec3<u32>) -> u32, | |
| (vec3<u64>, vec3<u64>) -> u64, | |
| (vec3<f32>, vec3<f32>) -> f32, | |
| (vec3<f16>, vec3<f16>) -> f16, | |
| (vec3<f64>, vec3<f64>) -> f64, | |
| (vec4<{AbstractInt}>, vec4<{AbstractInt}>) -> {AbstractInt}, | |
| (vec4<{AbstractFloat}>, vec4<{AbstractFloat}>) -> {AbstractFloat}, | |
| (vec4<i32>, vec4<i32>) -> i32, | |
| (vec4<i64>, vec4<i64>) -> i64, | |
| (vec4<u32>, vec4<u32>) -> u32, | |
| (vec4<u64>, vec4<u64>) -> u64, | |
| (vec4<f32>, vec4<f32>) -> f32, | |
| (vec4<f16>, vec4<f16>) -> f16, | |
| (vec4<f64>, vec4<f64>) -> f64, | |
| ], | |
| conclude: Scalar, | |
| } | |
| DEBUG overloads after arg 0 of type vec3<f32>: List { | |
| rules: [ | |
| (vec3<f32>, vec3<f32>) -> f32, | |
| ], | |
| conclude: Scalar, | |
| } | |
| DEBUG overloads after arg 1 of type vec3<f32>: List { | |
| rules: [ | |
| (vec3<f32>, vec3<f32>) -> f32, | |
| ], | |
| conclude: Scalar, | |
| } | |
| DEBUG Resolving [32] = Math { fun: Dot, arg: [30], arg1: Some([31]), arg2: None, arg3: None } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [33] = Splat { size: Tri, value: [32] } : Value(Vector { size: Tri, scalar: Scalar { kind: Float, width: 4 } }) | |
| DEBUG Resolving [34] = AccessIndex { base: [4], index: 3 } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [35] = Compose { ty: [2], components: [[33], [34]] } : Handle([2]) | |
| DEBUG Resolving [36] = Load { pointer: [23] } : Handle([2]) | |
| DEBUG Resolving [37] = AccessIndex { base: [17], index: 3 } : Handle([0]) | |
| DEBUG Resolving [38] = Literal(AbstractFloat(0.5)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG wgsl automatic_conversion_consensus: {AbstractFloat}, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [39] = Literal(F32(0.5)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [40] = Binary { op: Subtract, left: [39], right: [22] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Initial overloads: List { | |
| rules: [ | |
| ({AbstractFloat}) -> {AbstractFloat}, | |
| (f32) -> f32, | |
| (f16) -> f16, | |
| (f64) -> f64, | |
| (vec2<{AbstractFloat}>) -> vec2<{AbstractFloat}>, | |
| (vec2<f32>) -> vec2<f32>, | |
| (vec2<f16>) -> vec2<f16>, | |
| (vec2<f64>) -> vec2<f64>, | |
| (vec3<{AbstractFloat}>) -> vec3<{AbstractFloat}>, | |
| (vec3<f32>) -> vec3<f32>, | |
| (vec3<f16>) -> vec3<f16>, | |
| (vec3<f64>) -> vec3<f64>, | |
| (vec4<{AbstractFloat}>) -> vec4<{AbstractFloat}>, | |
| (vec4<f32>) -> vec4<f32>, | |
| (vec4<f16>) -> vec4<f16>, | |
| (vec4<f64>) -> vec4<f64>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG Supplying argument 0 of type f32 | |
| DEBUG Remaining overloads: List { | |
| rules: [ | |
| (f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG initial overloads for Saturate, List { | |
| rules: [ | |
| ({AbstractFloat}) -> {AbstractFloat}, | |
| (f32) -> f32, | |
| (f16) -> f16, | |
| (f64) -> f64, | |
| (vec2<{AbstractFloat}>) -> vec2<{AbstractFloat}>, | |
| (vec2<f32>) -> vec2<f32>, | |
| (vec2<f16>) -> vec2<f16>, | |
| (vec2<f64>) -> vec2<f64>, | |
| (vec3<{AbstractFloat}>) -> vec3<{AbstractFloat}>, | |
| (vec3<f32>) -> vec3<f32>, | |
| (vec3<f16>) -> vec3<f16>, | |
| (vec3<f64>) -> vec3<f64>, | |
| (vec4<{AbstractFloat}>) -> vec4<{AbstractFloat}>, | |
| (vec4<f32>) -> vec4<f32>, | |
| (vec4<f16>) -> vec4<f16>, | |
| (vec4<f64>) -> vec4<f64>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG overloads after arg 0 of type f32: List { | |
| rules: [ | |
| (f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG Resolving [41] = Math { fun: Saturate, arg: [40], arg1: None, arg2: None, arg3: None } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG wgsl automatic_conversion_consensus: f32, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [42] = Binary { op: Multiply, left: [37], right: [41] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [43] = CallResult([27]) : Handle([2]) | |
| DEBUG Resolving [70] = Literal(I32(0)) : Value(Scalar(Scalar { kind: Sint, width: 4 })) | |
| DEBUG Resolving [71] = Literal(F32(1.0)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [72] = Literal(F32(1.0)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [73] = Literal(F32(1.0)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [74] = Literal(AbstractFloat(0.0)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG Resolving [75] = Literal(F32(0.0)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [76] = Compose { ty: [2], components: [[71], [72], [73], [75]] } : Handle([2]) | |
| DEBUG Resolving [77] = Literal(F32(0.0)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [78] = Literal(F32(0.3441)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [79] = Literal(F32(-0.3441)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [80] = Literal(F32(1.772)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [81] = Literal(AbstractFloat(0.0)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG Resolving [82] = Literal(F32(0.0)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [83] = Compose { ty: [2], components: [[77], [79], [80], [82]] } : Handle([2]) | |
| DEBUG Resolving [84] = Literal(F32(1.402)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [85] = Literal(F32(0.7141)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [86] = Literal(F32(-0.7141)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [87] = Literal(F32(0.0)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [88] = Literal(AbstractFloat(0.0)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG Resolving [89] = Literal(F32(0.0)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [90] = Compose { ty: [2], components: [[84], [86], [87], [89]] } : Handle([2]) | |
| DEBUG Resolving [91] = Literal(F32(0.701)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [92] = Literal(F32(-0.701)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [93] = Literal(F32(0.5291)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [94] = Literal(F32(0.886)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [95] = Literal(F32(-0.886)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [96] = Literal(AbstractFloat(1.0)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG Resolving [97] = Literal(F32(1.0)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [98] = Compose { ty: [2], components: [[92], [93], [95], [97]] } : Handle([2]) | |
| DEBUG Resolving [99] = Compose { ty: [47], components: [[76], [83], [90], [98]] } : Handle([47]) | |
| DEBUG Resolving [100] = Literal(AbstractInt(0)) : Value(Scalar(Scalar { kind: AbstractInt, width: 8 })) | |
| DEBUG Resolving [101] = Literal(I32(0)) : Value(Scalar(Scalar { kind: Sint, width: 4 })) | |
| DEBUG Resolving [102] = Literal(AbstractInt(3)) : Value(Scalar(Scalar { kind: AbstractInt, width: 8 })) | |
| DEBUG Resolving [0] = FunctionArgument(0) : Handle([4]) | |
| DEBUG Resolving [1] = Literal(U32(1)) : Value(Scalar(Scalar { kind: Uint, width: 4 })) | |
| DEBUG wgsl automatic_conversion_consensus: u32, u32 | |
| DEBUG consensus: u32 | |
| DEBUG Resolving [2] = Binary { op: And, left: [0], right: [1] } : Handle([4]) | |
| DEBUG Resolving [3] = As { expr: [2], kind: Float, convert: Some(4) } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [4] = Literal(AbstractFloat(0.5)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG Resolving [5] = Literal(U32(2)) : Value(Scalar(Scalar { kind: Uint, width: 4 })) | |
| DEBUG wgsl automatic_conversion_consensus: u32, u32 | |
| DEBUG consensus: u32 | |
| DEBUG Resolving [6] = Binary { op: And, left: [0], right: [5] } : Handle([4]) | |
| DEBUG Resolving [7] = As { expr: [6], kind: Float, convert: Some(4) } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG wgsl automatic_conversion_consensus: {AbstractFloat}, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [8] = Literal(F32(0.5)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [9] = Binary { op: Multiply, left: [8], right: [7] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [10] = Compose { ty: [3], components: [[3], [9]] } : Handle([3]) | |
| DEBUG Resolving [11] = ZeroValue([48]) : Handle([48]) | |
| DEBUG Resolving [12] = LocalVariable([0]) : Value(Pointer { base: [48], space: Function }) | |
| DEBUG Resolving [13] = AccessIndex { base: [12], index: 0 } : Value(Pointer { base: [2], space: Function }) | |
| DEBUG Resolving [14] = GlobalVariable([12]) : Value(Pointer { base: [46], space: Uniform }) | |
| DEBUG Resolving [15] = AccessIndex { base: [14], index: 0 } : Value(Pointer { base: [8], space: Uniform }) | |
| DEBUG Resolving [16] = Load { pointer: [15] } : Handle([8]) | |
| DEBUG Resolving [17] = CallResult([6]) : Handle([2]) | |
| DEBUG Resolving [18] = AccessIndex { base: [12], index: 1 } : Value(Pointer { base: [3], space: Function }) | |
| DEBUG Resolving [19] = AccessIndex { base: [12], index: 2 } : Value(Pointer { base: [2], space: Function }) | |
| DEBUG Resolving [20] = GlobalVariable([12]) : Value(Pointer { base: [46], space: Uniform }) | |
| DEBUG Resolving [21] = AccessIndex { base: [20], index: 0 } : Value(Pointer { base: [8], space: Uniform }) | |
| DEBUG Resolving [22] = Load { pointer: [21] } : Handle([8]) | |
| DEBUG Resolving [23] = GlobalVariable([12]) : Value(Pointer { base: [46], space: Uniform }) | |
| DEBUG Resolving [24] = AccessIndex { base: [23], index: 1 } : Value(Pointer { base: [8], space: Uniform }) | |
| DEBUG Resolving [25] = Load { pointer: [24] } : Handle([8]) | |
| DEBUG Resolving [26] = CallResult([10]) : Handle([2]) | |
| DEBUG Resolving [27] = Load { pointer: [12] } : Handle([48]) | |
| DEBUG Resolving [103] = Literal(I32(3)) : Value(Scalar(Scalar { kind: Sint, width: 4 })) | |
| DEBUG Resolving [104] = Literal(AbstractInt(0)) : Value(Scalar(Scalar { kind: AbstractInt, width: 8 })) | |
| DEBUG Resolving [0] = FunctionArgument(0) : Handle([48]) | |
| DEBUG Resolving [1] = AccessIndex { base: [0], index: 2 } : Handle([2]) | |
| DEBUG Resolving [2] = Literal(AbstractFloat(0.0)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG Resolving [3] = Literal(F32(0.0)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [4] = Splat { size: Quad, value: [3] } : Value(Vector { size: Quad, scalar: Scalar { kind: Float, width: 4 } }) | |
| DEBUG wgsl automatic_conversion_consensus: vec4<f32>, vec4<f32> | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [5] = Binary { op: Less, left: [1], right: [4] } : Value(Vector { size: Quad, scalar: Scalar { kind: Bool, width: 1 } }) | |
| DEBUG Resolving [6] = Relational { fun: Any, argument: [5] } : Value(Scalar(Scalar { kind: Bool, width: 1 })) | |
| DEBUG Resolving [7] = Literal(AbstractFloat(0.0)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG Resolving [8] = Literal(F32(0.0)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [9] = Splat { size: Quad, value: [8] } : Value(Vector { size: Quad, scalar: Scalar { kind: Float, width: 4 } }) | |
| DEBUG Resolving [10] = GlobalVariable([13]) : Handle([6]) | |
| DEBUG Resolving [11] = GlobalVariable([15]) : Handle([7]) | |
| DEBUG Resolving [12] = AccessIndex { base: [0], index: 1 } : Handle([3]) | |
| DEBUG Resolving [13] = Literal(AbstractFloat(0.0)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG Resolving [14] = Literal(F32(0.0)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [15] = ImageSample { image: [10], sampler: [11], gather: None, coordinate: [12], array_index: None, offset: None, level: Exact([14]), depth_ref: None } : Value(Vector { size: Quad, scalar: Scalar { kind: Float, width: 4 } }) | |
| DEBUG Resolving [16] = AccessIndex { base: [15], index: 0 } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [17] = GlobalVariable([14]) : Handle([6]) | |
| DEBUG Resolving [18] = GlobalVariable([15]) : Handle([7]) | |
| DEBUG Resolving [19] = AccessIndex { base: [0], index: 1 } : Handle([3]) | |
| DEBUG Resolving [20] = Literal(AbstractFloat(0.0)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG Resolving [21] = Literal(F32(0.0)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [22] = ImageSample { image: [17], sampler: [18], gather: None, coordinate: [19], array_index: None, offset: None, level: Exact([21]), depth_ref: None } : Value(Vector { size: Quad, scalar: Scalar { kind: Float, width: 4 } }) | |
| DEBUG Resolving [23] = Swizzle { size: Bi, vector: [22], pattern: [X, Y, X, X] } : Value(Vector { size: Bi, scalar: Scalar { kind: Float, width: 4 } }) | |
| DEBUG Resolving [24] = Literal(AbstractFloat(1.0)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG Resolving [25] = Literal(F32(1.0)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [26] = Compose { ty: [2], components: [[16], [23], [25]] } : Handle([2]) | |
| DEBUG Resolving [27] = Constant([2]) : Handle([47]) | |
| DEBUG wgsl automatic_conversion_consensus: mat4x4<f32>, vec4<f32> | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [28] = Binary { op: Multiply, left: [27], right: [26] } : Value(Vector { size: Quad, scalar: Scalar { kind: Float, width: 4 } }) | |
| DEBUG var GlobalVariable { name: Some("globals"), space: Uniform, binding: None, ty: [5], init: None } | |
| DEBUG var GlobalVariable { name: Some("gamma_ratios"), space: Uniform, binding: None, ty: [2], init: None } | |
| DEBUG var GlobalVariable { name: Some("grayscale_enhanced_contrast"), space: Uniform, binding: None, ty: [0], init: None } | |
| DEBUG var GlobalVariable { name: Some("t_sprite"), space: Handle, binding: None, ty: [6], init: None } | |
| DEBUG var GlobalVariable { name: Some("s_sprite"), space: Handle, binding: None, ty: [7], init: None } | |
| DEBUG var GlobalVariable { name: Some("b_quads"), space: Storage { access: StorageAccess(LOAD) }, binding: None, ty: [24], init: None } | |
| DEBUG var GlobalVariable { name: Some("b_shadows"), space: Storage { access: StorageAccess(LOAD) }, binding: None, ty: [27], init: None } | |
| DEBUG var GlobalVariable { name: Some("b_path_vertices"), space: Storage { access: StorageAccess(LOAD) }, binding: None, ty: [30], init: None } | |
| DEBUG var GlobalVariable { name: Some("b_path_sprites"), space: Storage { access: StorageAccess(LOAD) }, binding: None, ty: [33], init: None } | |
| DEBUG var GlobalVariable { name: Some("b_underlines"), space: Storage { access: StorageAccess(LOAD) }, binding: None, ty: [36], init: None } | |
| DEBUG var GlobalVariable { name: Some("b_mono_sprites"), space: Storage { access: StorageAccess(LOAD) }, binding: None, ty: [39], init: None } | |
| DEBUG var GlobalVariable { name: Some("b_poly_sprites"), space: Storage { access: StorageAccess(LOAD) }, binding: None, ty: [42], init: None } | |
| DEBUG var GlobalVariable { name: Some("surface_locals"), space: Uniform, binding: None, ty: [44], init: None } | |
| DEBUG var GlobalVariable { name: Some("t_y"), space: Handle, binding: None, ty: [6], init: None } | |
| DEBUG var GlobalVariable { name: Some("t_cb_cr"), space: Handle, binding: None, ty: [6], init: None } | |
| DEBUG var GlobalVariable { name: Some("s_surface"), space: Handle, binding: None, ty: [7], init: None } | |
| DEBUG initial overloads for Dot, List { | |
| rules: [ | |
| (vec2<{AbstractInt}>, vec2<{AbstractInt}>) -> {AbstractInt}, | |
| (vec2<{AbstractFloat}>, vec2<{AbstractFloat}>) -> {AbstractFloat}, | |
| (vec2<i32>, vec2<i32>) -> i32, | |
| (vec2<i64>, vec2<i64>) -> i64, | |
| (vec2<u32>, vec2<u32>) -> u32, | |
| (vec2<u64>, vec2<u64>) -> u64, | |
| (vec2<f32>, vec2<f32>) -> f32, | |
| (vec2<f16>, vec2<f16>) -> f16, | |
| (vec2<f64>, vec2<f64>) -> f64, | |
| (vec3<{AbstractInt}>, vec3<{AbstractInt}>) -> {AbstractInt}, | |
| (vec3<{AbstractFloat}>, vec3<{AbstractFloat}>) -> {AbstractFloat}, | |
| (vec3<i32>, vec3<i32>) -> i32, | |
| (vec3<i64>, vec3<i64>) -> i64, | |
| (vec3<u32>, vec3<u32>) -> u32, | |
| (vec3<u64>, vec3<u64>) -> u64, | |
| (vec3<f32>, vec3<f32>) -> f32, | |
| (vec3<f16>, vec3<f16>) -> f16, | |
| (vec3<f64>, vec3<f64>) -> f64, | |
| (vec4<{AbstractInt}>, vec4<{AbstractInt}>) -> {AbstractInt}, | |
| (vec4<{AbstractFloat}>, vec4<{AbstractFloat}>) -> {AbstractFloat}, | |
| (vec4<i32>, vec4<i32>) -> i32, | |
| (vec4<i64>, vec4<i64>) -> i64, | |
| (vec4<u32>, vec4<u32>) -> u32, | |
| (vec4<u64>, vec4<u64>) -> u64, | |
| (vec4<f32>, vec4<f32>) -> f32, | |
| (vec4<f16>, vec4<f16>) -> f16, | |
| (vec4<f64>, vec4<f64>) -> f64, | |
| ], | |
| conclude: Scalar, | |
| } | |
| DEBUG overloads after arg 0 of type vec3<f32>: List { | |
| rules: [ | |
| (vec3<f32>, vec3<f32>) -> f32, | |
| ], | |
| conclude: Scalar, | |
| } | |
| DEBUG overloads after arg 1 of type vec3<f32>: List { | |
| rules: [ | |
| (vec3<f32>, vec3<f32>) -> f32, | |
| ], | |
| conclude: Scalar, | |
| } | |
| DEBUG initial overloads for Dot: List { | |
| rules: [ | |
| (vec2<{AbstractInt}>, vec2<{AbstractInt}>) -> {AbstractInt}, | |
| (vec2<{AbstractFloat}>, vec2<{AbstractFloat}>) -> {AbstractFloat}, | |
| (vec2<i32>, vec2<i32>) -> i32, | |
| (vec2<i64>, vec2<i64>) -> i64, | |
| (vec2<u32>, vec2<u32>) -> u32, | |
| (vec2<u64>, vec2<u64>) -> u64, | |
| (vec2<f32>, vec2<f32>) -> f32, | |
| (vec2<f16>, vec2<f16>) -> f16, | |
| (vec2<f64>, vec2<f64>) -> f64, | |
| (vec3<{AbstractInt}>, vec3<{AbstractInt}>) -> {AbstractInt}, | |
| (vec3<{AbstractFloat}>, vec3<{AbstractFloat}>) -> {AbstractFloat}, | |
| (vec3<i32>, vec3<i32>) -> i32, | |
| (vec3<i64>, vec3<i64>) -> i64, | |
| (vec3<u32>, vec3<u32>) -> u32, | |
| (vec3<u64>, vec3<u64>) -> u64, | |
| (vec3<f32>, vec3<f32>) -> f32, | |
| (vec3<f16>, vec3<f16>) -> f16, | |
| (vec3<f64>, vec3<f64>) -> f64, | |
| (vec4<{AbstractInt}>, vec4<{AbstractInt}>) -> {AbstractInt}, | |
| (vec4<{AbstractFloat}>, vec4<{AbstractFloat}>) -> {AbstractFloat}, | |
| (vec4<i32>, vec4<i32>) -> i32, | |
| (vec4<i64>, vec4<i64>) -> i64, | |
| (vec4<u32>, vec4<u32>) -> u32, | |
| (vec4<u64>, vec4<u64>) -> u64, | |
| (vec4<f32>, vec4<f32>) -> f32, | |
| (vec4<f16>, vec4<f16>) -> f16, | |
| (vec4<f64>, vec4<f64>) -> f64, | |
| ], | |
| conclude: Scalar, | |
| } | |
| DEBUG overloads after arg 0: List { | |
| rules: [ | |
| (vec3<f32>, vec3<f32>) -> f32, | |
| ], | |
| conclude: Scalar, | |
| } | |
| DEBUG overloads after arg 1: List { | |
| rules: [ | |
| (vec3<f32>, vec3<f32>) -> f32, | |
| ], | |
| conclude: Scalar, | |
| } | |
| DEBUG initial overloads for Saturate, List { | |
| rules: [ | |
| ({AbstractFloat}) -> {AbstractFloat}, | |
| (f32) -> f32, | |
| (f16) -> f16, | |
| (f64) -> f64, | |
| (vec2<{AbstractFloat}>) -> vec2<{AbstractFloat}>, | |
| (vec2<f32>) -> vec2<f32>, | |
| (vec2<f16>) -> vec2<f16>, | |
| (vec2<f64>) -> vec2<f64>, | |
| (vec3<{AbstractFloat}>) -> vec3<{AbstractFloat}>, | |
| (vec3<f32>) -> vec3<f32>, | |
| (vec3<f16>) -> vec3<f16>, | |
| (vec3<f64>) -> vec3<f64>, | |
| (vec4<{AbstractFloat}>) -> vec4<{AbstractFloat}>, | |
| (vec4<f32>) -> vec4<f32>, | |
| (vec4<f16>) -> vec4<f16>, | |
| (vec4<f64>) -> vec4<f64>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG overloads after arg 0 of type f32: List { | |
| rules: [ | |
| (f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG initial overloads for Saturate: List { | |
| rules: [ | |
| ({AbstractFloat}) -> {AbstractFloat}, | |
| (f32) -> f32, | |
| (f16) -> f16, | |
| (f64) -> f64, | |
| (vec2<{AbstractFloat}>) -> vec2<{AbstractFloat}>, | |
| (vec2<f32>) -> vec2<f32>, | |
| (vec2<f16>) -> vec2<f16>, | |
| (vec2<f64>) -> vec2<f64>, | |
| (vec3<{AbstractFloat}>) -> vec3<{AbstractFloat}>, | |
| (vec3<f32>) -> vec3<f32>, | |
| (vec3<f16>) -> vec3<f16>, | |
| (vec3<f64>) -> vec3<f64>, | |
| (vec4<{AbstractFloat}>) -> vec4<{AbstractFloat}>, | |
| (vec4<f32>) -> vec4<f32>, | |
| (vec4<f16>) -> vec4<f16>, | |
| (vec4<f64>) -> vec4<f64>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG overloads after arg 0: List { | |
| rules: [ | |
| (f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG initial overloads for Transpose, [ | |
| (mat2x2<{AbstractFloat}>) -> mat2x2<{AbstractFloat}>, | |
| (mat2x2<f32>) -> mat2x2<f32>, | |
| (mat2x2<f16>) -> mat2x2<f16>, | |
| (mat2x2<f64>) -> mat2x2<f64>, | |
| (mat2x3<{AbstractFloat}>) -> mat3x2<{AbstractFloat}>, | |
| (mat2x3<f32>) -> mat3x2<f32>, | |
| (mat2x3<f16>) -> mat3x2<f16>, | |
| (mat2x3<f64>) -> mat3x2<f64>, | |
| (mat2x4<{AbstractFloat}>) -> mat4x2<{AbstractFloat}>, | |
| (mat2x4<f32>) -> mat4x2<f32>, | |
| (mat2x4<f16>) -> mat4x2<f16>, | |
| (mat2x4<f64>) -> mat4x2<f64>, | |
| (mat3x2<{AbstractFloat}>) -> mat2x3<{AbstractFloat}>, | |
| (mat3x2<f32>) -> mat2x3<f32>, | |
| (mat3x2<f16>) -> mat2x3<f16>, | |
| (mat3x2<f64>) -> mat2x3<f64>, | |
| (mat3x3<{AbstractFloat}>) -> mat3x3<{AbstractFloat}>, | |
| (mat3x3<f32>) -> mat3x3<f32>, | |
| (mat3x3<f16>) -> mat3x3<f16>, | |
| (mat3x3<f64>) -> mat3x3<f64>, | |
| (mat3x4<{AbstractFloat}>) -> mat4x3<{AbstractFloat}>, | |
| (mat3x4<f32>) -> mat4x3<f32>, | |
| (mat3x4<f16>) -> mat4x3<f16>, | |
| (mat3x4<f64>) -> mat4x3<f64>, | |
| (mat4x2<{AbstractFloat}>) -> mat2x4<{AbstractFloat}>, | |
| (mat4x2<f32>) -> mat2x4<f32>, | |
| (mat4x2<f16>) -> mat2x4<f16>, | |
| (mat4x2<f64>) -> mat2x4<f64>, | |
| (mat4x3<{AbstractFloat}>) -> mat3x4<{AbstractFloat}>, | |
| (mat4x3<f32>) -> mat3x4<f32>, | |
| (mat4x3<f16>) -> mat3x4<f16>, | |
| (mat4x3<f64>) -> mat3x4<f64>, | |
| (mat4x4<{AbstractFloat}>) -> mat4x4<{AbstractFloat}>, | |
| (mat4x4<f32>) -> mat4x4<f32>, | |
| (mat4x4<f16>) -> mat4x4<f16>, | |
| (mat4x4<f64>) -> mat4x4<f64>, | |
| ] | |
| DEBUG arg 0 of type mat2x2<f32> | |
| DEBUG considering rule (mat2x2<{AbstractFloat}>) -> mat2x2<{AbstractFloat}> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat2x2<f32>) -> mat2x2<f32> | |
| DEBUG types are equivalent | |
| DEBUG considering rule (mat2x2<f16>) -> mat2x2<f16> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat2x2<f64>) -> mat2x2<f64> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat2x3<{AbstractFloat}>) -> mat3x2<{AbstractFloat}> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat2x3<f32>) -> mat3x2<f32> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat2x3<f16>) -> mat3x2<f16> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat2x3<f64>) -> mat3x2<f64> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat2x4<{AbstractFloat}>) -> mat4x2<{AbstractFloat}> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat2x4<f32>) -> mat4x2<f32> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat2x4<f16>) -> mat4x2<f16> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat2x4<f64>) -> mat4x2<f64> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat3x2<{AbstractFloat}>) -> mat2x3<{AbstractFloat}> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat3x2<f32>) -> mat2x3<f32> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat3x2<f16>) -> mat2x3<f16> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat3x2<f64>) -> mat2x3<f64> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat3x3<{AbstractFloat}>) -> mat3x3<{AbstractFloat}> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat3x3<f32>) -> mat3x3<f32> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat3x3<f16>) -> mat3x3<f16> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat3x3<f64>) -> mat3x3<f64> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat3x4<{AbstractFloat}>) -> mat4x3<{AbstractFloat}> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat3x4<f32>) -> mat4x3<f32> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat3x4<f16>) -> mat4x3<f16> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat3x4<f64>) -> mat4x3<f64> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat4x2<{AbstractFloat}>) -> mat2x4<{AbstractFloat}> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat4x2<f32>) -> mat2x4<f32> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat4x2<f16>) -> mat2x4<f16> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat4x2<f64>) -> mat2x4<f64> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat4x3<{AbstractFloat}>) -> mat3x4<{AbstractFloat}> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat4x3<f32>) -> mat3x4<f32> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat4x3<f16>) -> mat3x4<f16> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat4x3<f64>) -> mat3x4<f64> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat4x4<{AbstractFloat}>) -> mat4x4<{AbstractFloat}> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat4x4<f32>) -> mat4x4<f32> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat4x4<f16>) -> mat4x4<f16> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat4x4<f64>) -> mat4x4<f64> | |
| DEBUG no conversion possible | |
| DEBUG overloads after arg 0 of type mat2x2<f32>: [ | |
| (mat2x2<f32>) -> mat2x2<f32>, | |
| ] | |
| DEBUG initial overloads for Transpose: [ | |
| (mat2x2<{AbstractFloat}>) -> mat2x2<{AbstractFloat}>, | |
| (mat2x2<f32>) -> mat2x2<f32>, | |
| (mat2x2<f16>) -> mat2x2<f16>, | |
| (mat2x2<f64>) -> mat2x2<f64>, | |
| (mat2x3<{AbstractFloat}>) -> mat3x2<{AbstractFloat}>, | |
| (mat2x3<f32>) -> mat3x2<f32>, | |
| (mat2x3<f16>) -> mat3x2<f16>, | |
| (mat2x3<f64>) -> mat3x2<f64>, | |
| (mat2x4<{AbstractFloat}>) -> mat4x2<{AbstractFloat}>, | |
| (mat2x4<f32>) -> mat4x2<f32>, | |
| (mat2x4<f16>) -> mat4x2<f16>, | |
| (mat2x4<f64>) -> mat4x2<f64>, | |
| (mat3x2<{AbstractFloat}>) -> mat2x3<{AbstractFloat}>, | |
| (mat3x2<f32>) -> mat2x3<f32>, | |
| (mat3x2<f16>) -> mat2x3<f16>, | |
| (mat3x2<f64>) -> mat2x3<f64>, | |
| (mat3x3<{AbstractFloat}>) -> mat3x3<{AbstractFloat}>, | |
| (mat3x3<f32>) -> mat3x3<f32>, | |
| (mat3x3<f16>) -> mat3x3<f16>, | |
| (mat3x3<f64>) -> mat3x3<f64>, | |
| (mat3x4<{AbstractFloat}>) -> mat4x3<{AbstractFloat}>, | |
| (mat3x4<f32>) -> mat4x3<f32>, | |
| (mat3x4<f16>) -> mat4x3<f16>, | |
| (mat3x4<f64>) -> mat4x3<f64>, | |
| (mat4x2<{AbstractFloat}>) -> mat2x4<{AbstractFloat}>, | |
| (mat4x2<f32>) -> mat2x4<f32>, | |
| (mat4x2<f16>) -> mat2x4<f16>, | |
| (mat4x2<f64>) -> mat2x4<f64>, | |
| (mat4x3<{AbstractFloat}>) -> mat3x4<{AbstractFloat}>, | |
| (mat4x3<f32>) -> mat3x4<f32>, | |
| (mat4x3<f16>) -> mat3x4<f16>, | |
| (mat4x3<f64>) -> mat3x4<f64>, | |
| (mat4x4<{AbstractFloat}>) -> mat4x4<{AbstractFloat}>, | |
| (mat4x4<f32>) -> mat4x4<f32>, | |
| (mat4x4<f16>) -> mat4x4<f16>, | |
| (mat4x4<f64>) -> mat4x4<f64>, | |
| ] | |
| DEBUG arg 0 of type mat2x2<f32> | |
| DEBUG considering rule (mat2x2<{AbstractFloat}>) -> mat2x2<{AbstractFloat}> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat2x2<f32>) -> mat2x2<f32> | |
| DEBUG types are equivalent | |
| DEBUG considering rule (mat2x2<f16>) -> mat2x2<f16> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat2x2<f64>) -> mat2x2<f64> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat2x3<{AbstractFloat}>) -> mat3x2<{AbstractFloat}> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat2x3<f32>) -> mat3x2<f32> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat2x3<f16>) -> mat3x2<f16> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat2x3<f64>) -> mat3x2<f64> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat2x4<{AbstractFloat}>) -> mat4x2<{AbstractFloat}> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat2x4<f32>) -> mat4x2<f32> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat2x4<f16>) -> mat4x2<f16> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat2x4<f64>) -> mat4x2<f64> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat3x2<{AbstractFloat}>) -> mat2x3<{AbstractFloat}> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat3x2<f32>) -> mat2x3<f32> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat3x2<f16>) -> mat2x3<f16> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat3x2<f64>) -> mat2x3<f64> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat3x3<{AbstractFloat}>) -> mat3x3<{AbstractFloat}> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat3x3<f32>) -> mat3x3<f32> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat3x3<f16>) -> mat3x3<f16> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat3x3<f64>) -> mat3x3<f64> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat3x4<{AbstractFloat}>) -> mat4x3<{AbstractFloat}> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat3x4<f32>) -> mat4x3<f32> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat3x4<f16>) -> mat4x3<f16> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat3x4<f64>) -> mat4x3<f64> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat4x2<{AbstractFloat}>) -> mat2x4<{AbstractFloat}> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat4x2<f32>) -> mat2x4<f32> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat4x2<f16>) -> mat2x4<f16> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat4x2<f64>) -> mat2x4<f64> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat4x3<{AbstractFloat}>) -> mat3x4<{AbstractFloat}> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat4x3<f32>) -> mat3x4<f32> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat4x3<f16>) -> mat3x4<f16> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat4x3<f64>) -> mat3x4<f64> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat4x4<{AbstractFloat}>) -> mat4x4<{AbstractFloat}> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat4x4<f32>) -> mat4x4<f32> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat4x4<f16>) -> mat4x4<f16> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat4x4<f64>) -> mat4x4<f64> | |
| DEBUG no conversion possible | |
| DEBUG overloads after arg 0: [ | |
| (mat2x2<f32>) -> mat2x2<f32>, | |
| ] | |
| DEBUG initial overloads for Transpose, [ | |
| (mat2x2<{AbstractFloat}>) -> mat2x2<{AbstractFloat}>, | |
| (mat2x2<f32>) -> mat2x2<f32>, | |
| (mat2x2<f16>) -> mat2x2<f16>, | |
| (mat2x2<f64>) -> mat2x2<f64>, | |
| (mat2x3<{AbstractFloat}>) -> mat3x2<{AbstractFloat}>, | |
| (mat2x3<f32>) -> mat3x2<f32>, | |
| (mat2x3<f16>) -> mat3x2<f16>, | |
| (mat2x3<f64>) -> mat3x2<f64>, | |
| (mat2x4<{AbstractFloat}>) -> mat4x2<{AbstractFloat}>, | |
| (mat2x4<f32>) -> mat4x2<f32>, | |
| (mat2x4<f16>) -> mat4x2<f16>, | |
| (mat2x4<f64>) -> mat4x2<f64>, | |
| (mat3x2<{AbstractFloat}>) -> mat2x3<{AbstractFloat}>, | |
| (mat3x2<f32>) -> mat2x3<f32>, | |
| (mat3x2<f16>) -> mat2x3<f16>, | |
| (mat3x2<f64>) -> mat2x3<f64>, | |
| (mat3x3<{AbstractFloat}>) -> mat3x3<{AbstractFloat}>, | |
| (mat3x3<f32>) -> mat3x3<f32>, | |
| (mat3x3<f16>) -> mat3x3<f16>, | |
| (mat3x3<f64>) -> mat3x3<f64>, | |
| (mat3x4<{AbstractFloat}>) -> mat4x3<{AbstractFloat}>, | |
| (mat3x4<f32>) -> mat4x3<f32>, | |
| (mat3x4<f16>) -> mat4x3<f16>, | |
| (mat3x4<f64>) -> mat4x3<f64>, | |
| (mat4x2<{AbstractFloat}>) -> mat2x4<{AbstractFloat}>, | |
| (mat4x2<f32>) -> mat2x4<f32>, | |
| (mat4x2<f16>) -> mat2x4<f16>, | |
| (mat4x2<f64>) -> mat2x4<f64>, | |
| (mat4x3<{AbstractFloat}>) -> mat3x4<{AbstractFloat}>, | |
| (mat4x3<f32>) -> mat3x4<f32>, | |
| (mat4x3<f16>) -> mat3x4<f16>, | |
| (mat4x3<f64>) -> mat3x4<f64>, | |
| (mat4x4<{AbstractFloat}>) -> mat4x4<{AbstractFloat}>, | |
| (mat4x4<f32>) -> mat4x4<f32>, | |
| (mat4x4<f16>) -> mat4x4<f16>, | |
| (mat4x4<f64>) -> mat4x4<f64>, | |
| ] | |
| DEBUG arg 0 of type mat2x2<f32> | |
| DEBUG considering rule (mat2x2<{AbstractFloat}>) -> mat2x2<{AbstractFloat}> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat2x2<f32>) -> mat2x2<f32> | |
| DEBUG types are equivalent | |
| DEBUG considering rule (mat2x2<f16>) -> mat2x2<f16> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat2x2<f64>) -> mat2x2<f64> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat2x3<{AbstractFloat}>) -> mat3x2<{AbstractFloat}> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat2x3<f32>) -> mat3x2<f32> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat2x3<f16>) -> mat3x2<f16> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat2x3<f64>) -> mat3x2<f64> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat2x4<{AbstractFloat}>) -> mat4x2<{AbstractFloat}> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat2x4<f32>) -> mat4x2<f32> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat2x4<f16>) -> mat4x2<f16> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat2x4<f64>) -> mat4x2<f64> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat3x2<{AbstractFloat}>) -> mat2x3<{AbstractFloat}> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat3x2<f32>) -> mat2x3<f32> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat3x2<f16>) -> mat2x3<f16> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat3x2<f64>) -> mat2x3<f64> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat3x3<{AbstractFloat}>) -> mat3x3<{AbstractFloat}> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat3x3<f32>) -> mat3x3<f32> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat3x3<f16>) -> mat3x3<f16> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat3x3<f64>) -> mat3x3<f64> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat3x4<{AbstractFloat}>) -> mat4x3<{AbstractFloat}> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat3x4<f32>) -> mat4x3<f32> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat3x4<f16>) -> mat4x3<f16> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat3x4<f64>) -> mat4x3<f64> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat4x2<{AbstractFloat}>) -> mat2x4<{AbstractFloat}> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat4x2<f32>) -> mat2x4<f32> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat4x2<f16>) -> mat2x4<f16> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat4x2<f64>) -> mat2x4<f64> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat4x3<{AbstractFloat}>) -> mat3x4<{AbstractFloat}> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat4x3<f32>) -> mat3x4<f32> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat4x3<f16>) -> mat3x4<f16> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat4x3<f64>) -> mat3x4<f64> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat4x4<{AbstractFloat}>) -> mat4x4<{AbstractFloat}> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat4x4<f32>) -> mat4x4<f32> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat4x4<f16>) -> mat4x4<f16> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat4x4<f64>) -> mat4x4<f64> | |
| DEBUG no conversion possible | |
| DEBUG overloads after arg 0 of type mat2x2<f32>: [ | |
| (mat2x2<f32>) -> mat2x2<f32>, | |
| ] | |
| DEBUG initial overloads for Transpose: [ | |
| (mat2x2<{AbstractFloat}>) -> mat2x2<{AbstractFloat}>, | |
| (mat2x2<f32>) -> mat2x2<f32>, | |
| (mat2x2<f16>) -> mat2x2<f16>, | |
| (mat2x2<f64>) -> mat2x2<f64>, | |
| (mat2x3<{AbstractFloat}>) -> mat3x2<{AbstractFloat}>, | |
| (mat2x3<f32>) -> mat3x2<f32>, | |
| (mat2x3<f16>) -> mat3x2<f16>, | |
| (mat2x3<f64>) -> mat3x2<f64>, | |
| (mat2x4<{AbstractFloat}>) -> mat4x2<{AbstractFloat}>, | |
| (mat2x4<f32>) -> mat4x2<f32>, | |
| (mat2x4<f16>) -> mat4x2<f16>, | |
| (mat2x4<f64>) -> mat4x2<f64>, | |
| (mat3x2<{AbstractFloat}>) -> mat2x3<{AbstractFloat}>, | |
| (mat3x2<f32>) -> mat2x3<f32>, | |
| (mat3x2<f16>) -> mat2x3<f16>, | |
| (mat3x2<f64>) -> mat2x3<f64>, | |
| (mat3x3<{AbstractFloat}>) -> mat3x3<{AbstractFloat}>, | |
| (mat3x3<f32>) -> mat3x3<f32>, | |
| (mat3x3<f16>) -> mat3x3<f16>, | |
| (mat3x3<f64>) -> mat3x3<f64>, | |
| (mat3x4<{AbstractFloat}>) -> mat4x3<{AbstractFloat}>, | |
| (mat3x4<f32>) -> mat4x3<f32>, | |
| (mat3x4<f16>) -> mat4x3<f16>, | |
| (mat3x4<f64>) -> mat4x3<f64>, | |
| (mat4x2<{AbstractFloat}>) -> mat2x4<{AbstractFloat}>, | |
| (mat4x2<f32>) -> mat2x4<f32>, | |
| (mat4x2<f16>) -> mat2x4<f16>, | |
| (mat4x2<f64>) -> mat2x4<f64>, | |
| (mat4x3<{AbstractFloat}>) -> mat3x4<{AbstractFloat}>, | |
| (mat4x3<f32>) -> mat3x4<f32>, | |
| (mat4x3<f16>) -> mat3x4<f16>, | |
| (mat4x3<f64>) -> mat3x4<f64>, | |
| (mat4x4<{AbstractFloat}>) -> mat4x4<{AbstractFloat}>, | |
| (mat4x4<f32>) -> mat4x4<f32>, | |
| (mat4x4<f16>) -> mat4x4<f16>, | |
| (mat4x4<f64>) -> mat4x4<f64>, | |
| ] | |
| DEBUG arg 0 of type mat2x2<f32> | |
| DEBUG considering rule (mat2x2<{AbstractFloat}>) -> mat2x2<{AbstractFloat}> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat2x2<f32>) -> mat2x2<f32> | |
| DEBUG types are equivalent | |
| DEBUG considering rule (mat2x2<f16>) -> mat2x2<f16> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat2x2<f64>) -> mat2x2<f64> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat2x3<{AbstractFloat}>) -> mat3x2<{AbstractFloat}> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat2x3<f32>) -> mat3x2<f32> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat2x3<f16>) -> mat3x2<f16> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat2x3<f64>) -> mat3x2<f64> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat2x4<{AbstractFloat}>) -> mat4x2<{AbstractFloat}> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat2x4<f32>) -> mat4x2<f32> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat2x4<f16>) -> mat4x2<f16> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat2x4<f64>) -> mat4x2<f64> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat3x2<{AbstractFloat}>) -> mat2x3<{AbstractFloat}> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat3x2<f32>) -> mat2x3<f32> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat3x2<f16>) -> mat2x3<f16> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat3x2<f64>) -> mat2x3<f64> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat3x3<{AbstractFloat}>) -> mat3x3<{AbstractFloat}> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat3x3<f32>) -> mat3x3<f32> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat3x3<f16>) -> mat3x3<f16> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat3x3<f64>) -> mat3x3<f64> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat3x4<{AbstractFloat}>) -> mat4x3<{AbstractFloat}> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat3x4<f32>) -> mat4x3<f32> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat3x4<f16>) -> mat4x3<f16> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat3x4<f64>) -> mat4x3<f64> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat4x2<{AbstractFloat}>) -> mat2x4<{AbstractFloat}> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat4x2<f32>) -> mat2x4<f32> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat4x2<f16>) -> mat2x4<f16> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat4x2<f64>) -> mat2x4<f64> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat4x3<{AbstractFloat}>) -> mat3x4<{AbstractFloat}> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat4x3<f32>) -> mat3x4<f32> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat4x3<f16>) -> mat3x4<f16> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat4x3<f64>) -> mat3x4<f64> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat4x4<{AbstractFloat}>) -> mat4x4<{AbstractFloat}> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat4x4<f32>) -> mat4x4<f32> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat4x4<f16>) -> mat4x4<f16> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat4x4<f64>) -> mat4x4<f64> | |
| DEBUG no conversion possible | |
| DEBUG overloads after arg 0: [ | |
| (mat2x2<f32>) -> mat2x2<f32>, | |
| ] | |
| DEBUG initial overloads for Pow, List { | |
| rules: [ | |
| ({AbstractFloat}, {AbstractFloat}) -> {AbstractFloat}, | |
| (f32, f32) -> f32, | |
| (f16, f16) -> f16, | |
| (f64, f64) -> f64, | |
| (vec2<{AbstractFloat}>, vec2<{AbstractFloat}>) -> vec2<{AbstractFloat}>, | |
| (vec2<f32>, vec2<f32>) -> vec2<f32>, | |
| (vec2<f16>, vec2<f16>) -> vec2<f16>, | |
| (vec2<f64>, vec2<f64>) -> vec2<f64>, | |
| (vec3<{AbstractFloat}>, vec3<{AbstractFloat}>) -> vec3<{AbstractFloat}>, | |
| (vec3<f32>, vec3<f32>) -> vec3<f32>, | |
| (vec3<f16>, vec3<f16>) -> vec3<f16>, | |
| (vec3<f64>, vec3<f64>) -> vec3<f64>, | |
| (vec4<{AbstractFloat}>, vec4<{AbstractFloat}>) -> vec4<{AbstractFloat}>, | |
| (vec4<f32>, vec4<f32>) -> vec4<f32>, | |
| (vec4<f16>, vec4<f16>) -> vec4<f16>, | |
| (vec4<f64>, vec4<f64>) -> vec4<f64>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG overloads after arg 0 of type vec3<f32>: List { | |
| rules: [ | |
| (vec3<f32>, vec3<f32>) -> vec3<f32>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG overloads after arg 1 of type vec3<f32>: List { | |
| rules: [ | |
| (vec3<f32>, vec3<f32>) -> vec3<f32>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG initial overloads for Pow: List { | |
| rules: [ | |
| ({AbstractFloat}, {AbstractFloat}) -> {AbstractFloat}, | |
| (f32, f32) -> f32, | |
| (f16, f16) -> f16, | |
| (f64, f64) -> f64, | |
| (vec2<{AbstractFloat}>, vec2<{AbstractFloat}>) -> vec2<{AbstractFloat}>, | |
| (vec2<f32>, vec2<f32>) -> vec2<f32>, | |
| (vec2<f16>, vec2<f16>) -> vec2<f16>, | |
| (vec2<f64>, vec2<f64>) -> vec2<f64>, | |
| (vec3<{AbstractFloat}>, vec3<{AbstractFloat}>) -> vec3<{AbstractFloat}>, | |
| (vec3<f32>, vec3<f32>) -> vec3<f32>, | |
| (vec3<f16>, vec3<f16>) -> vec3<f16>, | |
| (vec3<f64>, vec3<f64>) -> vec3<f64>, | |
| (vec4<{AbstractFloat}>, vec4<{AbstractFloat}>) -> vec4<{AbstractFloat}>, | |
| (vec4<f32>, vec4<f32>) -> vec4<f32>, | |
| (vec4<f16>, vec4<f16>) -> vec4<f16>, | |
| (vec4<f64>, vec4<f64>) -> vec4<f64>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG overloads after arg 0: List { | |
| rules: [ | |
| (vec3<f32>, vec3<f32>) -> vec3<f32>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG overloads after arg 1: List { | |
| rules: [ | |
| (vec3<f32>, vec3<f32>) -> vec3<f32>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG initial overloads for Pow, List { | |
| rules: [ | |
| ({AbstractFloat}, {AbstractFloat}) -> {AbstractFloat}, | |
| (f32, f32) -> f32, | |
| (f16, f16) -> f16, | |
| (f64, f64) -> f64, | |
| (vec2<{AbstractFloat}>, vec2<{AbstractFloat}>) -> vec2<{AbstractFloat}>, | |
| (vec2<f32>, vec2<f32>) -> vec2<f32>, | |
| (vec2<f16>, vec2<f16>) -> vec2<f16>, | |
| (vec2<f64>, vec2<f64>) -> vec2<f64>, | |
| (vec3<{AbstractFloat}>, vec3<{AbstractFloat}>) -> vec3<{AbstractFloat}>, | |
| (vec3<f32>, vec3<f32>) -> vec3<f32>, | |
| (vec3<f16>, vec3<f16>) -> vec3<f16>, | |
| (vec3<f64>, vec3<f64>) -> vec3<f64>, | |
| (vec4<{AbstractFloat}>, vec4<{AbstractFloat}>) -> vec4<{AbstractFloat}>, | |
| (vec4<f32>, vec4<f32>) -> vec4<f32>, | |
| (vec4<f16>, vec4<f16>) -> vec4<f16>, | |
| (vec4<f64>, vec4<f64>) -> vec4<f64>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG overloads after arg 0 of type f32: List { | |
| rules: [ | |
| (f32, f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG overloads after arg 1 of type f32: List { | |
| rules: [ | |
| (f32, f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG initial overloads for Pow: List { | |
| rules: [ | |
| ({AbstractFloat}, {AbstractFloat}) -> {AbstractFloat}, | |
| (f32, f32) -> f32, | |
| (f16, f16) -> f16, | |
| (f64, f64) -> f64, | |
| (vec2<{AbstractFloat}>, vec2<{AbstractFloat}>) -> vec2<{AbstractFloat}>, | |
| (vec2<f32>, vec2<f32>) -> vec2<f32>, | |
| (vec2<f16>, vec2<f16>) -> vec2<f16>, | |
| (vec2<f64>, vec2<f64>) -> vec2<f64>, | |
| (vec3<{AbstractFloat}>, vec3<{AbstractFloat}>) -> vec3<{AbstractFloat}>, | |
| (vec3<f32>, vec3<f32>) -> vec3<f32>, | |
| (vec3<f16>, vec3<f16>) -> vec3<f16>, | |
| (vec3<f64>, vec3<f64>) -> vec3<f64>, | |
| (vec4<{AbstractFloat}>, vec4<{AbstractFloat}>) -> vec4<{AbstractFloat}>, | |
| (vec4<f32>, vec4<f32>) -> vec4<f32>, | |
| (vec4<f16>, vec4<f16>) -> vec4<f16>, | |
| (vec4<f64>, vec4<f64>) -> vec4<f64>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG overloads after arg 0: List { | |
| rules: [ | |
| (f32, f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG overloads after arg 1: List { | |
| rules: [ | |
| (f32, f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG initial overloads for Pow, List { | |
| rules: [ | |
| ({AbstractFloat}, {AbstractFloat}) -> {AbstractFloat}, | |
| (f32, f32) -> f32, | |
| (f16, f16) -> f16, | |
| (f64, f64) -> f64, | |
| (vec2<{AbstractFloat}>, vec2<{AbstractFloat}>) -> vec2<{AbstractFloat}>, | |
| (vec2<f32>, vec2<f32>) -> vec2<f32>, | |
| (vec2<f16>, vec2<f16>) -> vec2<f16>, | |
| (vec2<f64>, vec2<f64>) -> vec2<f64>, | |
| (vec3<{AbstractFloat}>, vec3<{AbstractFloat}>) -> vec3<{AbstractFloat}>, | |
| (vec3<f32>, vec3<f32>) -> vec3<f32>, | |
| (vec3<f16>, vec3<f16>) -> vec3<f16>, | |
| (vec3<f64>, vec3<f64>) -> vec3<f64>, | |
| (vec4<{AbstractFloat}>, vec4<{AbstractFloat}>) -> vec4<{AbstractFloat}>, | |
| (vec4<f32>, vec4<f32>) -> vec4<f32>, | |
| (vec4<f16>, vec4<f16>) -> vec4<f16>, | |
| (vec4<f64>, vec4<f64>) -> vec4<f64>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG overloads after arg 0 of type vec3<f32>: List { | |
| rules: [ | |
| (vec3<f32>, vec3<f32>) -> vec3<f32>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG overloads after arg 1 of type vec3<f32>: List { | |
| rules: [ | |
| (vec3<f32>, vec3<f32>) -> vec3<f32>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG initial overloads for Pow: List { | |
| rules: [ | |
| ({AbstractFloat}, {AbstractFloat}) -> {AbstractFloat}, | |
| (f32, f32) -> f32, | |
| (f16, f16) -> f16, | |
| (f64, f64) -> f64, | |
| (vec2<{AbstractFloat}>, vec2<{AbstractFloat}>) -> vec2<{AbstractFloat}>, | |
| (vec2<f32>, vec2<f32>) -> vec2<f32>, | |
| (vec2<f16>, vec2<f16>) -> vec2<f16>, | |
| (vec2<f64>, vec2<f64>) -> vec2<f64>, | |
| (vec3<{AbstractFloat}>, vec3<{AbstractFloat}>) -> vec3<{AbstractFloat}>, | |
| (vec3<f32>, vec3<f32>) -> vec3<f32>, | |
| (vec3<f16>, vec3<f16>) -> vec3<f16>, | |
| (vec3<f64>, vec3<f64>) -> vec3<f64>, | |
| (vec4<{AbstractFloat}>, vec4<{AbstractFloat}>) -> vec4<{AbstractFloat}>, | |
| (vec4<f32>, vec4<f32>) -> vec4<f32>, | |
| (vec4<f16>, vec4<f16>) -> vec4<f16>, | |
| (vec4<f64>, vec4<f64>) -> vec4<f64>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG overloads after arg 0: List { | |
| rules: [ | |
| (vec3<f32>, vec3<f32>) -> vec3<f32>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG overloads after arg 1: List { | |
| rules: [ | |
| (vec3<f32>, vec3<f32>) -> vec3<f32>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG initial overloads for Abs, List { | |
| rules: [ | |
| ({AbstractInt}) -> {AbstractInt}, | |
| ({AbstractFloat}) -> {AbstractFloat}, | |
| (i32) -> i32, | |
| (i64) -> i64, | |
| (u32) -> u32, | |
| (u64) -> u64, | |
| (f32) -> f32, | |
| (f16) -> f16, | |
| (f64) -> f64, | |
| (vec2<{AbstractInt}>) -> vec2<{AbstractInt}>, | |
| (vec2<{AbstractFloat}>) -> vec2<{AbstractFloat}>, | |
| (vec2<i32>) -> vec2<i32>, | |
| (vec2<i64>) -> vec2<i64>, | |
| (vec2<u32>) -> vec2<u32>, | |
| (vec2<u64>) -> vec2<u64>, | |
| (vec2<f32>) -> vec2<f32>, | |
| (vec2<f16>) -> vec2<f16>, | |
| (vec2<f64>) -> vec2<f64>, | |
| (vec3<{AbstractInt}>) -> vec3<{AbstractInt}>, | |
| (vec3<{AbstractFloat}>) -> vec3<{AbstractFloat}>, | |
| (vec3<i32>) -> vec3<i32>, | |
| (vec3<i64>) -> vec3<i64>, | |
| (vec3<u32>) -> vec3<u32>, | |
| (vec3<u64>) -> vec3<u64>, | |
| (vec3<f32>) -> vec3<f32>, | |
| (vec3<f16>) -> vec3<f16>, | |
| (vec3<f64>) -> vec3<f64>, | |
| (vec4<{AbstractInt}>) -> vec4<{AbstractInt}>, | |
| (vec4<{AbstractFloat}>) -> vec4<{AbstractFloat}>, | |
| (vec4<i32>) -> vec4<i32>, | |
| (vec4<i64>) -> vec4<i64>, | |
| (vec4<u32>) -> vec4<u32>, | |
| (vec4<u64>) -> vec4<u64>, | |
| (vec4<f32>) -> vec4<f32>, | |
| (vec4<f16>) -> vec4<f16>, | |
| (vec4<f64>) -> vec4<f64>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG overloads after arg 0 of type f32: List { | |
| rules: [ | |
| (f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG initial overloads for Abs, List { | |
| rules: [ | |
| ({AbstractInt}) -> {AbstractInt}, | |
| ({AbstractFloat}) -> {AbstractFloat}, | |
| (i32) -> i32, | |
| (i64) -> i64, | |
| (u32) -> u32, | |
| (u64) -> u64, | |
| (f32) -> f32, | |
| (f16) -> f16, | |
| (f64) -> f64, | |
| (vec2<{AbstractInt}>) -> vec2<{AbstractInt}>, | |
| (vec2<{AbstractFloat}>) -> vec2<{AbstractFloat}>, | |
| (vec2<i32>) -> vec2<i32>, | |
| (vec2<i64>) -> vec2<i64>, | |
| (vec2<u32>) -> vec2<u32>, | |
| (vec2<u64>) -> vec2<u64>, | |
| (vec2<f32>) -> vec2<f32>, | |
| (vec2<f16>) -> vec2<f16>, | |
| (vec2<f64>) -> vec2<f64>, | |
| (vec3<{AbstractInt}>) -> vec3<{AbstractInt}>, | |
| (vec3<{AbstractFloat}>) -> vec3<{AbstractFloat}>, | |
| (vec3<i32>) -> vec3<i32>, | |
| (vec3<i64>) -> vec3<i64>, | |
| (vec3<u32>) -> vec3<u32>, | |
| (vec3<u64>) -> vec3<u64>, | |
| (vec3<f32>) -> vec3<f32>, | |
| (vec3<f16>) -> vec3<f16>, | |
| (vec3<f64>) -> vec3<f64>, | |
| (vec4<{AbstractInt}>) -> vec4<{AbstractInt}>, | |
| (vec4<{AbstractFloat}>) -> vec4<{AbstractFloat}>, | |
| (vec4<i32>) -> vec4<i32>, | |
| (vec4<i64>) -> vec4<i64>, | |
| (vec4<u32>) -> vec4<u32>, | |
| (vec4<u64>) -> vec4<u64>, | |
| (vec4<f32>) -> vec4<f32>, | |
| (vec4<f16>) -> vec4<f16>, | |
| (vec4<f64>) -> vec4<f64>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG overloads after arg 0 of type f32: List { | |
| rules: [ | |
| (f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG var LocalVariable { name: Some("color"), ty: [1], init: None } | |
| DEBUG initial overloads for Abs: List { | |
| rules: [ | |
| ({AbstractInt}) -> {AbstractInt}, | |
| ({AbstractFloat}) -> {AbstractFloat}, | |
| (i32) -> i32, | |
| (i64) -> i64, | |
| (u32) -> u32, | |
| (u64) -> u64, | |
| (f32) -> f32, | |
| (f16) -> f16, | |
| (f64) -> f64, | |
| (vec2<{AbstractInt}>) -> vec2<{AbstractInt}>, | |
| (vec2<{AbstractFloat}>) -> vec2<{AbstractFloat}>, | |
| (vec2<i32>) -> vec2<i32>, | |
| (vec2<i64>) -> vec2<i64>, | |
| (vec2<u32>) -> vec2<u32>, | |
| (vec2<u64>) -> vec2<u64>, | |
| (vec2<f32>) -> vec2<f32>, | |
| (vec2<f16>) -> vec2<f16>, | |
| (vec2<f64>) -> vec2<f64>, | |
| (vec3<{AbstractInt}>) -> vec3<{AbstractInt}>, | |
| (vec3<{AbstractFloat}>) -> vec3<{AbstractFloat}>, | |
| (vec3<i32>) -> vec3<i32>, | |
| (vec3<i64>) -> vec3<i64>, | |
| (vec3<u32>) -> vec3<u32>, | |
| (vec3<u64>) -> vec3<u64>, | |
| (vec3<f32>) -> vec3<f32>, | |
| (vec3<f16>) -> vec3<f16>, | |
| (vec3<f64>) -> vec3<f64>, | |
| (vec4<{AbstractInt}>) -> vec4<{AbstractInt}>, | |
| (vec4<{AbstractFloat}>) -> vec4<{AbstractFloat}>, | |
| (vec4<i32>) -> vec4<i32>, | |
| (vec4<i64>) -> vec4<i64>, | |
| (vec4<u32>) -> vec4<u32>, | |
| (vec4<u64>) -> vec4<u64>, | |
| (vec4<f32>) -> vec4<f32>, | |
| (vec4<f16>) -> vec4<f16>, | |
| (vec4<f64>) -> vec4<f64>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG overloads after arg 0: List { | |
| rules: [ | |
| (f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG initial overloads for Abs: List { | |
| rules: [ | |
| ({AbstractInt}) -> {AbstractInt}, | |
| ({AbstractFloat}) -> {AbstractFloat}, | |
| (i32) -> i32, | |
| (i64) -> i64, | |
| (u32) -> u32, | |
| (u64) -> u64, | |
| (f32) -> f32, | |
| (f16) -> f16, | |
| (f64) -> f64, | |
| (vec2<{AbstractInt}>) -> vec2<{AbstractInt}>, | |
| (vec2<{AbstractFloat}>) -> vec2<{AbstractFloat}>, | |
| (vec2<i32>) -> vec2<i32>, | |
| (vec2<i64>) -> vec2<i64>, | |
| (vec2<u32>) -> vec2<u32>, | |
| (vec2<u64>) -> vec2<u64>, | |
| (vec2<f32>) -> vec2<f32>, | |
| (vec2<f16>) -> vec2<f16>, | |
| (vec2<f64>) -> vec2<f64>, | |
| (vec3<{AbstractInt}>) -> vec3<{AbstractInt}>, | |
| (vec3<{AbstractFloat}>) -> vec3<{AbstractFloat}>, | |
| (vec3<i32>) -> vec3<i32>, | |
| (vec3<i64>) -> vec3<i64>, | |
| (vec3<u32>) -> vec3<u32>, | |
| (vec3<u64>) -> vec3<u64>, | |
| (vec3<f32>) -> vec3<f32>, | |
| (vec3<f16>) -> vec3<f16>, | |
| (vec3<f64>) -> vec3<f64>, | |
| (vec4<{AbstractInt}>) -> vec4<{AbstractInt}>, | |
| (vec4<{AbstractFloat}>) -> vec4<{AbstractFloat}>, | |
| (vec4<i32>) -> vec4<i32>, | |
| (vec4<i64>) -> vec4<i64>, | |
| (vec4<u32>) -> vec4<u32>, | |
| (vec4<u64>) -> vec4<u64>, | |
| (vec4<f32>) -> vec4<f32>, | |
| (vec4<f16>) -> vec4<f16>, | |
| (vec4<f64>) -> vec4<f64>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG overloads after arg 0: List { | |
| rules: [ | |
| (f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG initial overloads for Pow, List { | |
| rules: [ | |
| ({AbstractFloat}, {AbstractFloat}) -> {AbstractFloat}, | |
| (f32, f32) -> f32, | |
| (f16, f16) -> f16, | |
| (f64, f64) -> f64, | |
| (vec2<{AbstractFloat}>, vec2<{AbstractFloat}>) -> vec2<{AbstractFloat}>, | |
| (vec2<f32>, vec2<f32>) -> vec2<f32>, | |
| (vec2<f16>, vec2<f16>) -> vec2<f16>, | |
| (vec2<f64>, vec2<f64>) -> vec2<f64>, | |
| (vec3<{AbstractFloat}>, vec3<{AbstractFloat}>) -> vec3<{AbstractFloat}>, | |
| (vec3<f32>, vec3<f32>) -> vec3<f32>, | |
| (vec3<f16>, vec3<f16>) -> vec3<f16>, | |
| (vec3<f64>, vec3<f64>) -> vec3<f64>, | |
| (vec4<{AbstractFloat}>, vec4<{AbstractFloat}>) -> vec4<{AbstractFloat}>, | |
| (vec4<f32>, vec4<f32>) -> vec4<f32>, | |
| (vec4<f16>, vec4<f16>) -> vec4<f16>, | |
| (vec4<f64>, vec4<f64>) -> vec4<f64>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG overloads after arg 0 of type f32: List { | |
| rules: [ | |
| (f32, f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG overloads after arg 1 of type f32: List { | |
| rules: [ | |
| (f32, f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG initial overloads for Pow, List { | |
| rules: [ | |
| ({AbstractFloat}, {AbstractFloat}) -> {AbstractFloat}, | |
| (f32, f32) -> f32, | |
| (f16, f16) -> f16, | |
| (f64, f64) -> f64, | |
| (vec2<{AbstractFloat}>, vec2<{AbstractFloat}>) -> vec2<{AbstractFloat}>, | |
| (vec2<f32>, vec2<f32>) -> vec2<f32>, | |
| (vec2<f16>, vec2<f16>) -> vec2<f16>, | |
| (vec2<f64>, vec2<f64>) -> vec2<f64>, | |
| (vec3<{AbstractFloat}>, vec3<{AbstractFloat}>) -> vec3<{AbstractFloat}>, | |
| (vec3<f32>, vec3<f32>) -> vec3<f32>, | |
| (vec3<f16>, vec3<f16>) -> vec3<f16>, | |
| (vec3<f64>, vec3<f64>) -> vec3<f64>, | |
| (vec4<{AbstractFloat}>, vec4<{AbstractFloat}>) -> vec4<{AbstractFloat}>, | |
| (vec4<f32>, vec4<f32>) -> vec4<f32>, | |
| (vec4<f16>, vec4<f16>) -> vec4<f16>, | |
| (vec4<f64>, vec4<f64>) -> vec4<f64>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG overloads after arg 0 of type f32: List { | |
| rules: [ | |
| (f32, f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG overloads after arg 1 of type f32: List { | |
| rules: [ | |
| (f32, f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG initial overloads for Pow, List { | |
| rules: [ | |
| ({AbstractFloat}, {AbstractFloat}) -> {AbstractFloat}, | |
| (f32, f32) -> f32, | |
| (f16, f16) -> f16, | |
| (f64, f64) -> f64, | |
| (vec2<{AbstractFloat}>, vec2<{AbstractFloat}>) -> vec2<{AbstractFloat}>, | |
| (vec2<f32>, vec2<f32>) -> vec2<f32>, | |
| (vec2<f16>, vec2<f16>) -> vec2<f16>, | |
| (vec2<f64>, vec2<f64>) -> vec2<f64>, | |
| (vec3<{AbstractFloat}>, vec3<{AbstractFloat}>) -> vec3<{AbstractFloat}>, | |
| (vec3<f32>, vec3<f32>) -> vec3<f32>, | |
| (vec3<f16>, vec3<f16>) -> vec3<f16>, | |
| (vec3<f64>, vec3<f64>) -> vec3<f64>, | |
| (vec4<{AbstractFloat}>, vec4<{AbstractFloat}>) -> vec4<{AbstractFloat}>, | |
| (vec4<f32>, vec4<f32>) -> vec4<f32>, | |
| (vec4<f16>, vec4<f16>) -> vec4<f16>, | |
| (vec4<f64>, vec4<f64>) -> vec4<f64>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG overloads after arg 0 of type f32: List { | |
| rules: [ | |
| (f32, f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG overloads after arg 1 of type f32: List { | |
| rules: [ | |
| (f32, f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG initial overloads for Pow: List { | |
| rules: [ | |
| ({AbstractFloat}, {AbstractFloat}) -> {AbstractFloat}, | |
| (f32, f32) -> f32, | |
| (f16, f16) -> f16, | |
| (f64, f64) -> f64, | |
| (vec2<{AbstractFloat}>, vec2<{AbstractFloat}>) -> vec2<{AbstractFloat}>, | |
| (vec2<f32>, vec2<f32>) -> vec2<f32>, | |
| (vec2<f16>, vec2<f16>) -> vec2<f16>, | |
| (vec2<f64>, vec2<f64>) -> vec2<f64>, | |
| (vec3<{AbstractFloat}>, vec3<{AbstractFloat}>) -> vec3<{AbstractFloat}>, | |
| (vec3<f32>, vec3<f32>) -> vec3<f32>, | |
| (vec3<f16>, vec3<f16>) -> vec3<f16>, | |
| (vec3<f64>, vec3<f64>) -> vec3<f64>, | |
| (vec4<{AbstractFloat}>, vec4<{AbstractFloat}>) -> vec4<{AbstractFloat}>, | |
| (vec4<f32>, vec4<f32>) -> vec4<f32>, | |
| (vec4<f16>, vec4<f16>) -> vec4<f16>, | |
| (vec4<f64>, vec4<f64>) -> vec4<f64>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG overloads after arg 0: List { | |
| rules: [ | |
| (f32, f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG overloads after arg 1: List { | |
| rules: [ | |
| (f32, f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG initial overloads for Pow: List { | |
| rules: [ | |
| ({AbstractFloat}, {AbstractFloat}) -> {AbstractFloat}, | |
| (f32, f32) -> f32, | |
| (f16, f16) -> f16, | |
| (f64, f64) -> f64, | |
| (vec2<{AbstractFloat}>, vec2<{AbstractFloat}>) -> vec2<{AbstractFloat}>, | |
| (vec2<f32>, vec2<f32>) -> vec2<f32>, | |
| (vec2<f16>, vec2<f16>) -> vec2<f16>, | |
| (vec2<f64>, vec2<f64>) -> vec2<f64>, | |
| (vec3<{AbstractFloat}>, vec3<{AbstractFloat}>) -> vec3<{AbstractFloat}>, | |
| (vec3<f32>, vec3<f32>) -> vec3<f32>, | |
| (vec3<f16>, vec3<f16>) -> vec3<f16>, | |
| (vec3<f64>, vec3<f64>) -> vec3<f64>, | |
| (vec4<{AbstractFloat}>, vec4<{AbstractFloat}>) -> vec4<{AbstractFloat}>, | |
| (vec4<f32>, vec4<f32>) -> vec4<f32>, | |
| (vec4<f16>, vec4<f16>) -> vec4<f16>, | |
| (vec4<f64>, vec4<f64>) -> vec4<f64>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG overloads after arg 0: List { | |
| rules: [ | |
| (f32, f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG overloads after arg 1: List { | |
| rules: [ | |
| (f32, f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG initial overloads for Pow: List { | |
| rules: [ | |
| ({AbstractFloat}, {AbstractFloat}) -> {AbstractFloat}, | |
| (f32, f32) -> f32, | |
| (f16, f16) -> f16, | |
| (f64, f64) -> f64, | |
| (vec2<{AbstractFloat}>, vec2<{AbstractFloat}>) -> vec2<{AbstractFloat}>, | |
| (vec2<f32>, vec2<f32>) -> vec2<f32>, | |
| (vec2<f16>, vec2<f16>) -> vec2<f16>, | |
| (vec2<f64>, vec2<f64>) -> vec2<f64>, | |
| (vec3<{AbstractFloat}>, vec3<{AbstractFloat}>) -> vec3<{AbstractFloat}>, | |
| (vec3<f32>, vec3<f32>) -> vec3<f32>, | |
| (vec3<f16>, vec3<f16>) -> vec3<f16>, | |
| (vec3<f64>, vec3<f64>) -> vec3<f64>, | |
| (vec4<{AbstractFloat}>, vec4<{AbstractFloat}>) -> vec4<{AbstractFloat}>, | |
| (vec4<f32>, vec4<f32>) -> vec4<f32>, | |
| (vec4<f16>, vec4<f16>) -> vec4<f16>, | |
| (vec4<f64>, vec4<f64>) -> vec4<f64>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG overloads after arg 0: List { | |
| rules: [ | |
| (f32, f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG overloads after arg 1: List { | |
| rules: [ | |
| (f32, f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG initial overloads for Exp, List { | |
| rules: [ | |
| ({AbstractFloat}) -> {AbstractFloat}, | |
| (f32) -> f32, | |
| (f16) -> f16, | |
| (f64) -> f64, | |
| (vec2<{AbstractFloat}>) -> vec2<{AbstractFloat}>, | |
| (vec2<f32>) -> vec2<f32>, | |
| (vec2<f16>) -> vec2<f16>, | |
| (vec2<f64>) -> vec2<f64>, | |
| (vec3<{AbstractFloat}>) -> vec3<{AbstractFloat}>, | |
| (vec3<f32>) -> vec3<f32>, | |
| (vec3<f16>) -> vec3<f16>, | |
| (vec3<f64>) -> vec3<f64>, | |
| (vec4<{AbstractFloat}>) -> vec4<{AbstractFloat}>, | |
| (vec4<f32>) -> vec4<f32>, | |
| (vec4<f16>) -> vec4<f16>, | |
| (vec4<f64>) -> vec4<f64>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG overloads after arg 0 of type f32: List { | |
| rules: [ | |
| (f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG initial overloads for Exp: List { | |
| rules: [ | |
| ({AbstractFloat}) -> {AbstractFloat}, | |
| (f32) -> f32, | |
| (f16) -> f16, | |
| (f64) -> f64, | |
| (vec2<{AbstractFloat}>) -> vec2<{AbstractFloat}>, | |
| (vec2<f32>) -> vec2<f32>, | |
| (vec2<f16>) -> vec2<f16>, | |
| (vec2<f64>) -> vec2<f64>, | |
| (vec3<{AbstractFloat}>) -> vec3<{AbstractFloat}>, | |
| (vec3<f32>) -> vec3<f32>, | |
| (vec3<f16>) -> vec3<f16>, | |
| (vec3<f64>) -> vec3<f64>, | |
| (vec4<{AbstractFloat}>) -> vec4<{AbstractFloat}>, | |
| (vec4<f32>) -> vec4<f32>, | |
| (vec4<f16>) -> vec4<f16>, | |
| (vec4<f64>) -> vec4<f64>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG overloads after arg 0: List { | |
| rules: [ | |
| (f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG initial overloads for Sign, List { | |
| rules: [ | |
| ({AbstractInt}) -> {AbstractInt}, | |
| ({AbstractFloat}) -> {AbstractFloat}, | |
| (i32) -> i32, | |
| (i64) -> i64, | |
| (u32) -> u32, | |
| (u64) -> u64, | |
| (f32) -> f32, | |
| (f16) -> f16, | |
| (f64) -> f64, | |
| (vec2<{AbstractInt}>) -> vec2<{AbstractInt}>, | |
| (vec2<{AbstractFloat}>) -> vec2<{AbstractFloat}>, | |
| (vec2<i32>) -> vec2<i32>, | |
| (vec2<i64>) -> vec2<i64>, | |
| (vec2<u32>) -> vec2<u32>, | |
| (vec2<u64>) -> vec2<u64>, | |
| (vec2<f32>) -> vec2<f32>, | |
| (vec2<f16>) -> vec2<f16>, | |
| (vec2<f64>) -> vec2<f64>, | |
| (vec3<{AbstractInt}>) -> vec3<{AbstractInt}>, | |
| (vec3<{AbstractFloat}>) -> vec3<{AbstractFloat}>, | |
| (vec3<i32>) -> vec3<i32>, | |
| (vec3<i64>) -> vec3<i64>, | |
| (vec3<u32>) -> vec3<u32>, | |
| (vec3<u64>) -> vec3<u64>, | |
| (vec3<f32>) -> vec3<f32>, | |
| (vec3<f16>) -> vec3<f16>, | |
| (vec3<f64>) -> vec3<f64>, | |
| (vec4<{AbstractInt}>) -> vec4<{AbstractInt}>, | |
| (vec4<{AbstractFloat}>) -> vec4<{AbstractFloat}>, | |
| (vec4<i32>) -> vec4<i32>, | |
| (vec4<i64>) -> vec4<i64>, | |
| (vec4<u32>) -> vec4<u32>, | |
| (vec4<u64>) -> vec4<u64>, | |
| (vec4<f32>) -> vec4<f32>, | |
| (vec4<f16>) -> vec4<f16>, | |
| (vec4<f64>) -> vec4<f64>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG overloads after arg 0 of type vec2<f32>: List { | |
| rules: [ | |
| (vec2<f32>) -> vec2<f32>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG initial overloads for Abs, List { | |
| rules: [ | |
| ({AbstractInt}) -> {AbstractInt}, | |
| ({AbstractFloat}) -> {AbstractFloat}, | |
| (i32) -> i32, | |
| (i64) -> i64, | |
| (u32) -> u32, | |
| (u64) -> u64, | |
| (f32) -> f32, | |
| (f16) -> f16, | |
| (f64) -> f64, | |
| (vec2<{AbstractInt}>) -> vec2<{AbstractInt}>, | |
| (vec2<{AbstractFloat}>) -> vec2<{AbstractFloat}>, | |
| (vec2<i32>) -> vec2<i32>, | |
| (vec2<i64>) -> vec2<i64>, | |
| (vec2<u32>) -> vec2<u32>, | |
| (vec2<u64>) -> vec2<u64>, | |
| (vec2<f32>) -> vec2<f32>, | |
| (vec2<f16>) -> vec2<f16>, | |
| (vec2<f64>) -> vec2<f64>, | |
| (vec3<{AbstractInt}>) -> vec3<{AbstractInt}>, | |
| (vec3<{AbstractFloat}>) -> vec3<{AbstractFloat}>, | |
| (vec3<i32>) -> vec3<i32>, | |
| (vec3<i64>) -> vec3<i64>, | |
| (vec3<u32>) -> vec3<u32>, | |
| (vec3<u64>) -> vec3<u64>, | |
| (vec3<f32>) -> vec3<f32>, | |
| (vec3<f16>) -> vec3<f16>, | |
| (vec3<f64>) -> vec3<f64>, | |
| (vec4<{AbstractInt}>) -> vec4<{AbstractInt}>, | |
| (vec4<{AbstractFloat}>) -> vec4<{AbstractFloat}>, | |
| (vec4<i32>) -> vec4<i32>, | |
| (vec4<i64>) -> vec4<i64>, | |
| (vec4<u32>) -> vec4<u32>, | |
| (vec4<u64>) -> vec4<u64>, | |
| (vec4<f32>) -> vec4<f32>, | |
| (vec4<f16>) -> vec4<f16>, | |
| (vec4<f64>) -> vec4<f64>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG overloads after arg 0 of type vec2<f32>: List { | |
| rules: [ | |
| (vec2<f32>) -> vec2<f32>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG initial overloads for Sign: List { | |
| rules: [ | |
| ({AbstractInt}) -> {AbstractInt}, | |
| ({AbstractFloat}) -> {AbstractFloat}, | |
| (i32) -> i32, | |
| (i64) -> i64, | |
| (u32) -> u32, | |
| (u64) -> u64, | |
| (f32) -> f32, | |
| (f16) -> f16, | |
| (f64) -> f64, | |
| (vec2<{AbstractInt}>) -> vec2<{AbstractInt}>, | |
| (vec2<{AbstractFloat}>) -> vec2<{AbstractFloat}>, | |
| (vec2<i32>) -> vec2<i32>, | |
| (vec2<i64>) -> vec2<i64>, | |
| (vec2<u32>) -> vec2<u32>, | |
| (vec2<u64>) -> vec2<u64>, | |
| (vec2<f32>) -> vec2<f32>, | |
| (vec2<f16>) -> vec2<f16>, | |
| (vec2<f64>) -> vec2<f64>, | |
| (vec3<{AbstractInt}>) -> vec3<{AbstractInt}>, | |
| (vec3<{AbstractFloat}>) -> vec3<{AbstractFloat}>, | |
| (vec3<i32>) -> vec3<i32>, | |
| (vec3<i64>) -> vec3<i64>, | |
| (vec3<u32>) -> vec3<u32>, | |
| (vec3<u64>) -> vec3<u64>, | |
| (vec3<f32>) -> vec3<f32>, | |
| (vec3<f16>) -> vec3<f16>, | |
| (vec3<f64>) -> vec3<f64>, | |
| (vec4<{AbstractInt}>) -> vec4<{AbstractInt}>, | |
| (vec4<{AbstractFloat}>) -> vec4<{AbstractFloat}>, | |
| (vec4<i32>) -> vec4<i32>, | |
| (vec4<i64>) -> vec4<i64>, | |
| (vec4<u32>) -> vec4<u32>, | |
| (vec4<u64>) -> vec4<u64>, | |
| (vec4<f32>) -> vec4<f32>, | |
| (vec4<f16>) -> vec4<f16>, | |
| (vec4<f64>) -> vec4<f64>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG overloads after arg 0: List { | |
| rules: [ | |
| (vec2<f32>) -> vec2<f32>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG initial overloads for Abs: List { | |
| rules: [ | |
| ({AbstractInt}) -> {AbstractInt}, | |
| ({AbstractFloat}) -> {AbstractFloat}, | |
| (i32) -> i32, | |
| (i64) -> i64, | |
| (u32) -> u32, | |
| (u64) -> u64, | |
| (f32) -> f32, | |
| (f16) -> f16, | |
| (f64) -> f64, | |
| (vec2<{AbstractInt}>) -> vec2<{AbstractInt}>, | |
| (vec2<{AbstractFloat}>) -> vec2<{AbstractFloat}>, | |
| (vec2<i32>) -> vec2<i32>, | |
| (vec2<i64>) -> vec2<i64>, | |
| (vec2<u32>) -> vec2<u32>, | |
| (vec2<u64>) -> vec2<u64>, | |
| (vec2<f32>) -> vec2<f32>, | |
| (vec2<f16>) -> vec2<f16>, | |
| (vec2<f64>) -> vec2<f64>, | |
| (vec3<{AbstractInt}>) -> vec3<{AbstractInt}>, | |
| (vec3<{AbstractFloat}>) -> vec3<{AbstractFloat}>, | |
| (vec3<i32>) -> vec3<i32>, | |
| (vec3<i64>) -> vec3<i64>, | |
| (vec3<u32>) -> vec3<u32>, | |
| (vec3<u64>) -> vec3<u64>, | |
| (vec3<f32>) -> vec3<f32>, | |
| (vec3<f16>) -> vec3<f16>, | |
| (vec3<f64>) -> vec3<f64>, | |
| (vec4<{AbstractInt}>) -> vec4<{AbstractInt}>, | |
| (vec4<{AbstractFloat}>) -> vec4<{AbstractFloat}>, | |
| (vec4<i32>) -> vec4<i32>, | |
| (vec4<i64>) -> vec4<i64>, | |
| (vec4<u32>) -> vec4<u32>, | |
| (vec4<u64>) -> vec4<u64>, | |
| (vec4<f32>) -> vec4<f32>, | |
| (vec4<f16>) -> vec4<f16>, | |
| (vec4<f64>) -> vec4<f64>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG overloads after arg 0: List { | |
| rules: [ | |
| (vec2<f32>) -> vec2<f32>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG initial overloads for Abs, List { | |
| rules: [ | |
| ({AbstractInt}) -> {AbstractInt}, | |
| ({AbstractFloat}) -> {AbstractFloat}, | |
| (i32) -> i32, | |
| (i64) -> i64, | |
| (u32) -> u32, | |
| (u64) -> u64, | |
| (f32) -> f32, | |
| (f16) -> f16, | |
| (f64) -> f64, | |
| (vec2<{AbstractInt}>) -> vec2<{AbstractInt}>, | |
| (vec2<{AbstractFloat}>) -> vec2<{AbstractFloat}>, | |
| (vec2<i32>) -> vec2<i32>, | |
| (vec2<i64>) -> vec2<i64>, | |
| (vec2<u32>) -> vec2<u32>, | |
| (vec2<u64>) -> vec2<u64>, | |
| (vec2<f32>) -> vec2<f32>, | |
| (vec2<f16>) -> vec2<f16>, | |
| (vec2<f64>) -> vec2<f64>, | |
| (vec3<{AbstractInt}>) -> vec3<{AbstractInt}>, | |
| (vec3<{AbstractFloat}>) -> vec3<{AbstractFloat}>, | |
| (vec3<i32>) -> vec3<i32>, | |
| (vec3<i64>) -> vec3<i64>, | |
| (vec3<u32>) -> vec3<u32>, | |
| (vec3<u64>) -> vec3<u64>, | |
| (vec3<f32>) -> vec3<f32>, | |
| (vec3<f16>) -> vec3<f16>, | |
| (vec3<f64>) -> vec3<f64>, | |
| (vec4<{AbstractInt}>) -> vec4<{AbstractInt}>, | |
| (vec4<{AbstractFloat}>) -> vec4<{AbstractFloat}>, | |
| (vec4<i32>) -> vec4<i32>, | |
| (vec4<i64>) -> vec4<i64>, | |
| (vec4<u32>) -> vec4<u32>, | |
| (vec4<u64>) -> vec4<u64>, | |
| (vec4<f32>) -> vec4<f32>, | |
| (vec4<f16>) -> vec4<f16>, | |
| (vec4<f64>) -> vec4<f64>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG overloads after arg 0 of type f32: List { | |
| rules: [ | |
| (f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG initial overloads for Min, List { | |
| rules: [ | |
| ({AbstractInt}, {AbstractInt}) -> {AbstractInt}, | |
| ({AbstractFloat}, {AbstractFloat}) -> {AbstractFloat}, | |
| (i32, i32) -> i32, | |
| (i64, i64) -> i64, | |
| (u32, u32) -> u32, | |
| (u64, u64) -> u64, | |
| (f32, f32) -> f32, | |
| (f16, f16) -> f16, | |
| (f64, f64) -> f64, | |
| (vec2<{AbstractInt}>, vec2<{AbstractInt}>) -> vec2<{AbstractInt}>, | |
| (vec2<{AbstractFloat}>, vec2<{AbstractFloat}>) -> vec2<{AbstractFloat}>, | |
| (vec2<i32>, vec2<i32>) -> vec2<i32>, | |
| (vec2<i64>, vec2<i64>) -> vec2<i64>, | |
| (vec2<u32>, vec2<u32>) -> vec2<u32>, | |
| (vec2<u64>, vec2<u64>) -> vec2<u64>, | |
| (vec2<f32>, vec2<f32>) -> vec2<f32>, | |
| (vec2<f16>, vec2<f16>) -> vec2<f16>, | |
| (vec2<f64>, vec2<f64>) -> vec2<f64>, | |
| (vec3<{AbstractInt}>, vec3<{AbstractInt}>) -> vec3<{AbstractInt}>, | |
| (vec3<{AbstractFloat}>, vec3<{AbstractFloat}>) -> vec3<{AbstractFloat}>, | |
| (vec3<i32>, vec3<i32>) -> vec3<i32>, | |
| (vec3<i64>, vec3<i64>) -> vec3<i64>, | |
| (vec3<u32>, vec3<u32>) -> vec3<u32>, | |
| (vec3<u64>, vec3<u64>) -> vec3<u64>, | |
| (vec3<f32>, vec3<f32>) -> vec3<f32>, | |
| (vec3<f16>, vec3<f16>) -> vec3<f16>, | |
| (vec3<f64>, vec3<f64>) -> vec3<f64>, | |
| (vec4<{AbstractInt}>, vec4<{AbstractInt}>) -> vec4<{AbstractInt}>, | |
| (vec4<{AbstractFloat}>, vec4<{AbstractFloat}>) -> vec4<{AbstractFloat}>, | |
| (vec4<i32>, vec4<i32>) -> vec4<i32>, | |
| (vec4<i64>, vec4<i64>) -> vec4<i64>, | |
| (vec4<u32>, vec4<u32>) -> vec4<u32>, | |
| (vec4<u64>, vec4<u64>) -> vec4<u64>, | |
| (vec4<f32>, vec4<f32>) -> vec4<f32>, | |
| (vec4<f16>, vec4<f16>) -> vec4<f16>, | |
| (vec4<f64>, vec4<f64>) -> vec4<f64>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG overloads after arg 0 of type f32: List { | |
| rules: [ | |
| (f32, f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG overloads after arg 1 of type f32: List { | |
| rules: [ | |
| (f32, f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG initial overloads for Max, List { | |
| rules: [ | |
| ({AbstractInt}, {AbstractInt}) -> {AbstractInt}, | |
| ({AbstractFloat}, {AbstractFloat}) -> {AbstractFloat}, | |
| (i32, i32) -> i32, | |
| (i64, i64) -> i64, | |
| (u32, u32) -> u32, | |
| (u64, u64) -> u64, | |
| (f32, f32) -> f32, | |
| (f16, f16) -> f16, | |
| (f64, f64) -> f64, | |
| (vec2<{AbstractInt}>, vec2<{AbstractInt}>) -> vec2<{AbstractInt}>, | |
| (vec2<{AbstractFloat}>, vec2<{AbstractFloat}>) -> vec2<{AbstractFloat}>, | |
| (vec2<i32>, vec2<i32>) -> vec2<i32>, | |
| (vec2<i64>, vec2<i64>) -> vec2<i64>, | |
| (vec2<u32>, vec2<u32>) -> vec2<u32>, | |
| (vec2<u64>, vec2<u64>) -> vec2<u64>, | |
| (vec2<f32>, vec2<f32>) -> vec2<f32>, | |
| (vec2<f16>, vec2<f16>) -> vec2<f16>, | |
| (vec2<f64>, vec2<f64>) -> vec2<f64>, | |
| (vec3<{AbstractInt}>, vec3<{AbstractInt}>) -> vec3<{AbstractInt}>, | |
| (vec3<{AbstractFloat}>, vec3<{AbstractFloat}>) -> vec3<{AbstractFloat}>, | |
| (vec3<i32>, vec3<i32>) -> vec3<i32>, | |
| (vec3<i64>, vec3<i64>) -> vec3<i64>, | |
| (vec3<u32>, vec3<u32>) -> vec3<u32>, | |
| (vec3<u64>, vec3<u64>) -> vec3<u64>, | |
| (vec3<f32>, vec3<f32>) -> vec3<f32>, | |
| (vec3<f16>, vec3<f16>) -> vec3<f16>, | |
| (vec3<f64>, vec3<f64>) -> vec3<f64>, | |
| (vec4<{AbstractInt}>, vec4<{AbstractInt}>) -> vec4<{AbstractInt}>, | |
| (vec4<{AbstractFloat}>, vec4<{AbstractFloat}>) -> vec4<{AbstractFloat}>, | |
| (vec4<i32>, vec4<i32>) -> vec4<i32>, | |
| (vec4<i64>, vec4<i64>) -> vec4<i64>, | |
| (vec4<u32>, vec4<u32>) -> vec4<u32>, | |
| (vec4<u64>, vec4<u64>) -> vec4<u64>, | |
| (vec4<f32>, vec4<f32>) -> vec4<f32>, | |
| (vec4<f16>, vec4<f16>) -> vec4<f16>, | |
| (vec4<f64>, vec4<f64>) -> vec4<f64>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG overloads after arg 0 of type f32: List { | |
| rules: [ | |
| (f32, f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG overloads after arg 1 of type f32: List { | |
| rules: [ | |
| (f32, f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG initial overloads for Sqrt, List { | |
| rules: [ | |
| ({AbstractFloat}) -> {AbstractFloat}, | |
| (f32) -> f32, | |
| (f16) -> f16, | |
| (f64) -> f64, | |
| (vec2<{AbstractFloat}>) -> vec2<{AbstractFloat}>, | |
| (vec2<f32>) -> vec2<f32>, | |
| (vec2<f16>) -> vec2<f16>, | |
| (vec2<f64>) -> vec2<f64>, | |
| (vec3<{AbstractFloat}>) -> vec3<{AbstractFloat}>, | |
| (vec3<f32>) -> vec3<f32>, | |
| (vec3<f16>) -> vec3<f16>, | |
| (vec3<f64>) -> vec3<f64>, | |
| (vec4<{AbstractFloat}>) -> vec4<{AbstractFloat}>, | |
| (vec4<f32>) -> vec4<f32>, | |
| (vec4<f16>) -> vec4<f16>, | |
| (vec4<f64>) -> vec4<f64>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG overloads after arg 0 of type f32: List { | |
| rules: [ | |
| (f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG initial overloads for Abs: List { | |
| rules: [ | |
| ({AbstractInt}) -> {AbstractInt}, | |
| ({AbstractFloat}) -> {AbstractFloat}, | |
| (i32) -> i32, | |
| (i64) -> i64, | |
| (u32) -> u32, | |
| (u64) -> u64, | |
| (f32) -> f32, | |
| (f16) -> f16, | |
| (f64) -> f64, | |
| (vec2<{AbstractInt}>) -> vec2<{AbstractInt}>, | |
| (vec2<{AbstractFloat}>) -> vec2<{AbstractFloat}>, | |
| (vec2<i32>) -> vec2<i32>, | |
| (vec2<i64>) -> vec2<i64>, | |
| (vec2<u32>) -> vec2<u32>, | |
| (vec2<u64>) -> vec2<u64>, | |
| (vec2<f32>) -> vec2<f32>, | |
| (vec2<f16>) -> vec2<f16>, | |
| (vec2<f64>) -> vec2<f64>, | |
| (vec3<{AbstractInt}>) -> vec3<{AbstractInt}>, | |
| (vec3<{AbstractFloat}>) -> vec3<{AbstractFloat}>, | |
| (vec3<i32>) -> vec3<i32>, | |
| (vec3<i64>) -> vec3<i64>, | |
| (vec3<u32>) -> vec3<u32>, | |
| (vec3<u64>) -> vec3<u64>, | |
| (vec3<f32>) -> vec3<f32>, | |
| (vec3<f16>) -> vec3<f16>, | |
| (vec3<f64>) -> vec3<f64>, | |
| (vec4<{AbstractInt}>) -> vec4<{AbstractInt}>, | |
| (vec4<{AbstractFloat}>) -> vec4<{AbstractFloat}>, | |
| (vec4<i32>) -> vec4<i32>, | |
| (vec4<i64>) -> vec4<i64>, | |
| (vec4<u32>) -> vec4<u32>, | |
| (vec4<u64>) -> vec4<u64>, | |
| (vec4<f32>) -> vec4<f32>, | |
| (vec4<f16>) -> vec4<f16>, | |
| (vec4<f64>) -> vec4<f64>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG overloads after arg 0: List { | |
| rules: [ | |
| (f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG initial overloads for Min: List { | |
| rules: [ | |
| ({AbstractInt}, {AbstractInt}) -> {AbstractInt}, | |
| ({AbstractFloat}, {AbstractFloat}) -> {AbstractFloat}, | |
| (i32, i32) -> i32, | |
| (i64, i64) -> i64, | |
| (u32, u32) -> u32, | |
| (u64, u64) -> u64, | |
| (f32, f32) -> f32, | |
| (f16, f16) -> f16, | |
| (f64, f64) -> f64, | |
| (vec2<{AbstractInt}>, vec2<{AbstractInt}>) -> vec2<{AbstractInt}>, | |
| (vec2<{AbstractFloat}>, vec2<{AbstractFloat}>) -> vec2<{AbstractFloat}>, | |
| (vec2<i32>, vec2<i32>) -> vec2<i32>, | |
| (vec2<i64>, vec2<i64>) -> vec2<i64>, | |
| (vec2<u32>, vec2<u32>) -> vec2<u32>, | |
| (vec2<u64>, vec2<u64>) -> vec2<u64>, | |
| (vec2<f32>, vec2<f32>) -> vec2<f32>, | |
| (vec2<f16>, vec2<f16>) -> vec2<f16>, | |
| (vec2<f64>, vec2<f64>) -> vec2<f64>, | |
| (vec3<{AbstractInt}>, vec3<{AbstractInt}>) -> vec3<{AbstractInt}>, | |
| (vec3<{AbstractFloat}>, vec3<{AbstractFloat}>) -> vec3<{AbstractFloat}>, | |
| (vec3<i32>, vec3<i32>) -> vec3<i32>, | |
| (vec3<i64>, vec3<i64>) -> vec3<i64>, | |
| (vec3<u32>, vec3<u32>) -> vec3<u32>, | |
| (vec3<u64>, vec3<u64>) -> vec3<u64>, | |
| (vec3<f32>, vec3<f32>) -> vec3<f32>, | |
| (vec3<f16>, vec3<f16>) -> vec3<f16>, | |
| (vec3<f64>, vec3<f64>) -> vec3<f64>, | |
| (vec4<{AbstractInt}>, vec4<{AbstractInt}>) -> vec4<{AbstractInt}>, | |
| (vec4<{AbstractFloat}>, vec4<{AbstractFloat}>) -> vec4<{AbstractFloat}>, | |
| (vec4<i32>, vec4<i32>) -> vec4<i32>, | |
| (vec4<i64>, vec4<i64>) -> vec4<i64>, | |
| (vec4<u32>, vec4<u32>) -> vec4<u32>, | |
| (vec4<u64>, vec4<u64>) -> vec4<u64>, | |
| (vec4<f32>, vec4<f32>) -> vec4<f32>, | |
| (vec4<f16>, vec4<f16>) -> vec4<f16>, | |
| (vec4<f64>, vec4<f64>) -> vec4<f64>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG overloads after arg 0: List { | |
| rules: [ | |
| (f32, f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG overloads after arg 1: List { | |
| rules: [ | |
| (f32, f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG initial overloads for Max: List { | |
| rules: [ | |
| ({AbstractInt}, {AbstractInt}) -> {AbstractInt}, | |
| ({AbstractFloat}, {AbstractFloat}) -> {AbstractFloat}, | |
| (i32, i32) -> i32, | |
| (i64, i64) -> i64, | |
| (u32, u32) -> u32, | |
| (u64, u64) -> u64, | |
| (f32, f32) -> f32, | |
| (f16, f16) -> f16, | |
| (f64, f64) -> f64, | |
| (vec2<{AbstractInt}>, vec2<{AbstractInt}>) -> vec2<{AbstractInt}>, | |
| (vec2<{AbstractFloat}>, vec2<{AbstractFloat}>) -> vec2<{AbstractFloat}>, | |
| (vec2<i32>, vec2<i32>) -> vec2<i32>, | |
| (vec2<i64>, vec2<i64>) -> vec2<i64>, | |
| (vec2<u32>, vec2<u32>) -> vec2<u32>, | |
| (vec2<u64>, vec2<u64>) -> vec2<u64>, | |
| (vec2<f32>, vec2<f32>) -> vec2<f32>, | |
| (vec2<f16>, vec2<f16>) -> vec2<f16>, | |
| (vec2<f64>, vec2<f64>) -> vec2<f64>, | |
| (vec3<{AbstractInt}>, vec3<{AbstractInt}>) -> vec3<{AbstractInt}>, | |
| (vec3<{AbstractFloat}>, vec3<{AbstractFloat}>) -> vec3<{AbstractFloat}>, | |
| (vec3<i32>, vec3<i32>) -> vec3<i32>, | |
| (vec3<i64>, vec3<i64>) -> vec3<i64>, | |
| (vec3<u32>, vec3<u32>) -> vec3<u32>, | |
| (vec3<u64>, vec3<u64>) -> vec3<u64>, | |
| (vec3<f32>, vec3<f32>) -> vec3<f32>, | |
| (vec3<f16>, vec3<f16>) -> vec3<f16>, | |
| (vec3<f64>, vec3<f64>) -> vec3<f64>, | |
| (vec4<{AbstractInt}>, vec4<{AbstractInt}>) -> vec4<{AbstractInt}>, | |
| (vec4<{AbstractFloat}>, vec4<{AbstractFloat}>) -> vec4<{AbstractFloat}>, | |
| (vec4<i32>, vec4<i32>) -> vec4<i32>, | |
| (vec4<i64>, vec4<i64>) -> vec4<i64>, | |
| (vec4<u32>, vec4<u32>) -> vec4<u32>, | |
| (vec4<u64>, vec4<u64>) -> vec4<u64>, | |
| (vec4<f32>, vec4<f32>) -> vec4<f32>, | |
| (vec4<f16>, vec4<f16>) -> vec4<f16>, | |
| (vec4<f64>, vec4<f64>) -> vec4<f64>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG overloads after arg 0: List { | |
| rules: [ | |
| (f32, f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG overloads after arg 1: List { | |
| rules: [ | |
| (f32, f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG initial overloads for Sqrt: List { | |
| rules: [ | |
| ({AbstractFloat}) -> {AbstractFloat}, | |
| (f32) -> f32, | |
| (f16) -> f16, | |
| (f64) -> f64, | |
| (vec2<{AbstractFloat}>) -> vec2<{AbstractFloat}>, | |
| (vec2<f32>) -> vec2<f32>, | |
| (vec2<f16>) -> vec2<f16>, | |
| (vec2<f64>) -> vec2<f64>, | |
| (vec3<{AbstractFloat}>) -> vec3<{AbstractFloat}>, | |
| (vec3<f32>) -> vec3<f32>, | |
| (vec3<f16>) -> vec3<f16>, | |
| (vec3<f64>) -> vec3<f64>, | |
| (vec4<{AbstractFloat}>) -> vec4<{AbstractFloat}>, | |
| (vec4<f32>) -> vec4<f32>, | |
| (vec4<f16>) -> vec4<f16>, | |
| (vec4<f64>) -> vec4<f64>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG overloads after arg 0: List { | |
| rules: [ | |
| (f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG initial overloads for Max, List { | |
| rules: [ | |
| ({AbstractInt}, {AbstractInt}) -> {AbstractInt}, | |
| ({AbstractFloat}, {AbstractFloat}) -> {AbstractFloat}, | |
| (i32, i32) -> i32, | |
| (i64, i64) -> i64, | |
| (u32, u32) -> u32, | |
| (u64, u64) -> u64, | |
| (f32, f32) -> f32, | |
| (f16, f16) -> f16, | |
| (f64, f64) -> f64, | |
| (vec2<{AbstractInt}>, vec2<{AbstractInt}>) -> vec2<{AbstractInt}>, | |
| (vec2<{AbstractFloat}>, vec2<{AbstractFloat}>) -> vec2<{AbstractFloat}>, | |
| (vec2<i32>, vec2<i32>) -> vec2<i32>, | |
| (vec2<i64>, vec2<i64>) -> vec2<i64>, | |
| (vec2<u32>, vec2<u32>) -> vec2<u32>, | |
| (vec2<u64>, vec2<u64>) -> vec2<u64>, | |
| (vec2<f32>, vec2<f32>) -> vec2<f32>, | |
| (vec2<f16>, vec2<f16>) -> vec2<f16>, | |
| (vec2<f64>, vec2<f64>) -> vec2<f64>, | |
| (vec3<{AbstractInt}>, vec3<{AbstractInt}>) -> vec3<{AbstractInt}>, | |
| (vec3<{AbstractFloat}>, vec3<{AbstractFloat}>) -> vec3<{AbstractFloat}>, | |
| (vec3<i32>, vec3<i32>) -> vec3<i32>, | |
| (vec3<i64>, vec3<i64>) -> vec3<i64>, | |
| (vec3<u32>, vec3<u32>) -> vec3<u32>, | |
| (vec3<u64>, vec3<u64>) -> vec3<u64>, | |
| (vec3<f32>, vec3<f32>) -> vec3<f32>, | |
| (vec3<f16>, vec3<f16>) -> vec3<f16>, | |
| (vec3<f64>, vec3<f64>) -> vec3<f64>, | |
| (vec4<{AbstractInt}>, vec4<{AbstractInt}>) -> vec4<{AbstractInt}>, | |
| (vec4<{AbstractFloat}>, vec4<{AbstractFloat}>) -> vec4<{AbstractFloat}>, | |
| (vec4<i32>, vec4<i32>) -> vec4<i32>, | |
| (vec4<i64>, vec4<i64>) -> vec4<i64>, | |
| (vec4<u32>, vec4<u32>) -> vec4<u32>, | |
| (vec4<u64>, vec4<u64>) -> vec4<u64>, | |
| (vec4<f32>, vec4<f32>) -> vec4<f32>, | |
| (vec4<f16>, vec4<f16>) -> vec4<f16>, | |
| (vec4<f64>, vec4<f64>) -> vec4<f64>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG overloads after arg 0 of type f32: List { | |
| rules: [ | |
| (f32, f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG overloads after arg 1 of type f32: List { | |
| rules: [ | |
| (f32, f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG initial overloads for Max, List { | |
| rules: [ | |
| ({AbstractInt}, {AbstractInt}) -> {AbstractInt}, | |
| ({AbstractFloat}, {AbstractFloat}) -> {AbstractFloat}, | |
| (i32, i32) -> i32, | |
| (i64, i64) -> i64, | |
| (u32, u32) -> u32, | |
| (u64, u64) -> u64, | |
| (f32, f32) -> f32, | |
| (f16, f16) -> f16, | |
| (f64, f64) -> f64, | |
| (vec2<{AbstractInt}>, vec2<{AbstractInt}>) -> vec2<{AbstractInt}>, | |
| (vec2<{AbstractFloat}>, vec2<{AbstractFloat}>) -> vec2<{AbstractFloat}>, | |
| (vec2<i32>, vec2<i32>) -> vec2<i32>, | |
| (vec2<i64>, vec2<i64>) -> vec2<i64>, | |
| (vec2<u32>, vec2<u32>) -> vec2<u32>, | |
| (vec2<u64>, vec2<u64>) -> vec2<u64>, | |
| (vec2<f32>, vec2<f32>) -> vec2<f32>, | |
| (vec2<f16>, vec2<f16>) -> vec2<f16>, | |
| (vec2<f64>, vec2<f64>) -> vec2<f64>, | |
| (vec3<{AbstractInt}>, vec3<{AbstractInt}>) -> vec3<{AbstractInt}>, | |
| (vec3<{AbstractFloat}>, vec3<{AbstractFloat}>) -> vec3<{AbstractFloat}>, | |
| (vec3<i32>, vec3<i32>) -> vec3<i32>, | |
| (vec3<i64>, vec3<i64>) -> vec3<i64>, | |
| (vec3<u32>, vec3<u32>) -> vec3<u32>, | |
| (vec3<u64>, vec3<u64>) -> vec3<u64>, | |
| (vec3<f32>, vec3<f32>) -> vec3<f32>, | |
| (vec3<f16>, vec3<f16>) -> vec3<f16>, | |
| (vec3<f64>, vec3<f64>) -> vec3<f64>, | |
| (vec4<{AbstractInt}>, vec4<{AbstractInt}>) -> vec4<{AbstractInt}>, | |
| (vec4<{AbstractFloat}>, vec4<{AbstractFloat}>) -> vec4<{AbstractFloat}>, | |
| (vec4<i32>, vec4<i32>) -> vec4<i32>, | |
| (vec4<i64>, vec4<i64>) -> vec4<i64>, | |
| (vec4<u32>, vec4<u32>) -> vec4<u32>, | |
| (vec4<u64>, vec4<u64>) -> vec4<u64>, | |
| (vec4<f32>, vec4<f32>) -> vec4<f32>, | |
| (vec4<f16>, vec4<f16>) -> vec4<f16>, | |
| (vec4<f64>, vec4<f64>) -> vec4<f64>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG overloads after arg 0 of type vec2<f32>: List { | |
| rules: [ | |
| (vec2<f32>, vec2<f32>) -> vec2<f32>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG overloads after arg 1 of type vec2<f32>: List { | |
| rules: [ | |
| (vec2<f32>, vec2<f32>) -> vec2<f32>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG initial overloads for Length, List { | |
| rules: [ | |
| (f32) -> f32, | |
| (f16) -> f16, | |
| (f64) -> f64, | |
| (vec2<f32>) -> f32, | |
| (vec2<f16>) -> f16, | |
| (vec2<f64>) -> f64, | |
| (vec3<f32>) -> f32, | |
| (vec3<f16>) -> f16, | |
| (vec3<f64>) -> f64, | |
| (vec4<f32>) -> f32, | |
| (vec4<f16>) -> f16, | |
| (vec4<f64>) -> f64, | |
| ], | |
| conclude: Scalar, | |
| } | |
| DEBUG overloads after arg 0 of type vec2<f32>: List { | |
| rules: [ | |
| (vec2<f32>) -> f32, | |
| ], | |
| conclude: Scalar, | |
| } | |
| DEBUG initial overloads for Max, List { | |
| rules: [ | |
| ({AbstractInt}, {AbstractInt}) -> {AbstractInt}, | |
| ({AbstractFloat}, {AbstractFloat}) -> {AbstractFloat}, | |
| (i32, i32) -> i32, | |
| (i64, i64) -> i64, | |
| (u32, u32) -> u32, | |
| (u64, u64) -> u64, | |
| (f32, f32) -> f32, | |
| (f16, f16) -> f16, | |
| (f64, f64) -> f64, | |
| (vec2<{AbstractInt}>, vec2<{AbstractInt}>) -> vec2<{AbstractInt}>, | |
| (vec2<{AbstractFloat}>, vec2<{AbstractFloat}>) -> vec2<{AbstractFloat}>, | |
| (vec2<i32>, vec2<i32>) -> vec2<i32>, | |
| (vec2<i64>, vec2<i64>) -> vec2<i64>, | |
| (vec2<u32>, vec2<u32>) -> vec2<u32>, | |
| (vec2<u64>, vec2<u64>) -> vec2<u64>, | |
| (vec2<f32>, vec2<f32>) -> vec2<f32>, | |
| (vec2<f16>, vec2<f16>) -> vec2<f16>, | |
| (vec2<f64>, vec2<f64>) -> vec2<f64>, | |
| (vec3<{AbstractInt}>, vec3<{AbstractInt}>) -> vec3<{AbstractInt}>, | |
| (vec3<{AbstractFloat}>, vec3<{AbstractFloat}>) -> vec3<{AbstractFloat}>, | |
| (vec3<i32>, vec3<i32>) -> vec3<i32>, | |
| (vec3<i64>, vec3<i64>) -> vec3<i64>, | |
| (vec3<u32>, vec3<u32>) -> vec3<u32>, | |
| (vec3<u64>, vec3<u64>) -> vec3<u64>, | |
| (vec3<f32>, vec3<f32>) -> vec3<f32>, | |
| (vec3<f16>, vec3<f16>) -> vec3<f16>, | |
| (vec3<f64>, vec3<f64>) -> vec3<f64>, | |
| (vec4<{AbstractInt}>, vec4<{AbstractInt}>) -> vec4<{AbstractInt}>, | |
| (vec4<{AbstractFloat}>, vec4<{AbstractFloat}>) -> vec4<{AbstractFloat}>, | |
| (vec4<i32>, vec4<i32>) -> vec4<i32>, | |
| (vec4<i64>, vec4<i64>) -> vec4<i64>, | |
| (vec4<u32>, vec4<u32>) -> vec4<u32>, | |
| (vec4<u64>, vec4<u64>) -> vec4<u64>, | |
| (vec4<f32>, vec4<f32>) -> vec4<f32>, | |
| (vec4<f16>, vec4<f16>) -> vec4<f16>, | |
| (vec4<f64>, vec4<f64>) -> vec4<f64>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG overloads after arg 0 of type f32: List { | |
| rules: [ | |
| (f32, f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG overloads after arg 1 of type f32: List { | |
| rules: [ | |
| (f32, f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG initial overloads for Min, List { | |
| rules: [ | |
| ({AbstractInt}, {AbstractInt}) -> {AbstractInt}, | |
| ({AbstractFloat}, {AbstractFloat}) -> {AbstractFloat}, | |
| (i32, i32) -> i32, | |
| (i64, i64) -> i64, | |
| (u32, u32) -> u32, | |
| (u64, u64) -> u64, | |
| (f32, f32) -> f32, | |
| (f16, f16) -> f16, | |
| (f64, f64) -> f64, | |
| (vec2<{AbstractInt}>, vec2<{AbstractInt}>) -> vec2<{AbstractInt}>, | |
| (vec2<{AbstractFloat}>, vec2<{AbstractFloat}>) -> vec2<{AbstractFloat}>, | |
| (vec2<i32>, vec2<i32>) -> vec2<i32>, | |
| (vec2<i64>, vec2<i64>) -> vec2<i64>, | |
| (vec2<u32>, vec2<u32>) -> vec2<u32>, | |
| (vec2<u64>, vec2<u64>) -> vec2<u64>, | |
| (vec2<f32>, vec2<f32>) -> vec2<f32>, | |
| (vec2<f16>, vec2<f16>) -> vec2<f16>, | |
| (vec2<f64>, vec2<f64>) -> vec2<f64>, | |
| (vec3<{AbstractInt}>, vec3<{AbstractInt}>) -> vec3<{AbstractInt}>, | |
| (vec3<{AbstractFloat}>, vec3<{AbstractFloat}>) -> vec3<{AbstractFloat}>, | |
| (vec3<i32>, vec3<i32>) -> vec3<i32>, | |
| (vec3<i64>, vec3<i64>) -> vec3<i64>, | |
| (vec3<u32>, vec3<u32>) -> vec3<u32>, | |
| (vec3<u64>, vec3<u64>) -> vec3<u64>, | |
| (vec3<f32>, vec3<f32>) -> vec3<f32>, | |
| (vec3<f16>, vec3<f16>) -> vec3<f16>, | |
| (vec3<f64>, vec3<f64>) -> vec3<f64>, | |
| (vec4<{AbstractInt}>, vec4<{AbstractInt}>) -> vec4<{AbstractInt}>, | |
| (vec4<{AbstractFloat}>, vec4<{AbstractFloat}>) -> vec4<{AbstractFloat}>, | |
| (vec4<i32>, vec4<i32>) -> vec4<i32>, | |
| (vec4<i64>, vec4<i64>) -> vec4<i64>, | |
| (vec4<u32>, vec4<u32>) -> vec4<u32>, | |
| (vec4<u64>, vec4<u64>) -> vec4<u64>, | |
| (vec4<f32>, vec4<f32>) -> vec4<f32>, | |
| (vec4<f16>, vec4<f16>) -> vec4<f16>, | |
| (vec4<f64>, vec4<f64>) -> vec4<f64>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG overloads after arg 0 of type f32: List { | |
| rules: [ | |
| (f32, f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG overloads after arg 1 of type f32: List { | |
| rules: [ | |
| (f32, f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG initial overloads for Max: List { | |
| rules: [ | |
| ({AbstractInt}, {AbstractInt}) -> {AbstractInt}, | |
| ({AbstractFloat}, {AbstractFloat}) -> {AbstractFloat}, | |
| (i32, i32) -> i32, | |
| (i64, i64) -> i64, | |
| (u32, u32) -> u32, | |
| (u64, u64) -> u64, | |
| (f32, f32) -> f32, | |
| (f16, f16) -> f16, | |
| (f64, f64) -> f64, | |
| (vec2<{AbstractInt}>, vec2<{AbstractInt}>) -> vec2<{AbstractInt}>, | |
| (vec2<{AbstractFloat}>, vec2<{AbstractFloat}>) -> vec2<{AbstractFloat}>, | |
| (vec2<i32>, vec2<i32>) -> vec2<i32>, | |
| (vec2<i64>, vec2<i64>) -> vec2<i64>, | |
| (vec2<u32>, vec2<u32>) -> vec2<u32>, | |
| (vec2<u64>, vec2<u64>) -> vec2<u64>, | |
| (vec2<f32>, vec2<f32>) -> vec2<f32>, | |
| (vec2<f16>, vec2<f16>) -> vec2<f16>, | |
| (vec2<f64>, vec2<f64>) -> vec2<f64>, | |
| (vec3<{AbstractInt}>, vec3<{AbstractInt}>) -> vec3<{AbstractInt}>, | |
| (vec3<{AbstractFloat}>, vec3<{AbstractFloat}>) -> vec3<{AbstractFloat}>, | |
| (vec3<i32>, vec3<i32>) -> vec3<i32>, | |
| (vec3<i64>, vec3<i64>) -> vec3<i64>, | |
| (vec3<u32>, vec3<u32>) -> vec3<u32>, | |
| (vec3<u64>, vec3<u64>) -> vec3<u64>, | |
| (vec3<f32>, vec3<f32>) -> vec3<f32>, | |
| (vec3<f16>, vec3<f16>) -> vec3<f16>, | |
| (vec3<f64>, vec3<f64>) -> vec3<f64>, | |
| (vec4<{AbstractInt}>, vec4<{AbstractInt}>) -> vec4<{AbstractInt}>, | |
| (vec4<{AbstractFloat}>, vec4<{AbstractFloat}>) -> vec4<{AbstractFloat}>, | |
| (vec4<i32>, vec4<i32>) -> vec4<i32>, | |
| (vec4<i64>, vec4<i64>) -> vec4<i64>, | |
| (vec4<u32>, vec4<u32>) -> vec4<u32>, | |
| (vec4<u64>, vec4<u64>) -> vec4<u64>, | |
| (vec4<f32>, vec4<f32>) -> vec4<f32>, | |
| (vec4<f16>, vec4<f16>) -> vec4<f16>, | |
| (vec4<f64>, vec4<f64>) -> vec4<f64>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG overloads after arg 0: List { | |
| rules: [ | |
| (f32, f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG overloads after arg 1: List { | |
| rules: [ | |
| (f32, f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG initial overloads for Max: List { | |
| rules: [ | |
| ({AbstractInt}, {AbstractInt}) -> {AbstractInt}, | |
| ({AbstractFloat}, {AbstractFloat}) -> {AbstractFloat}, | |
| (i32, i32) -> i32, | |
| (i64, i64) -> i64, | |
| (u32, u32) -> u32, | |
| (u64, u64) -> u64, | |
| (f32, f32) -> f32, | |
| (f16, f16) -> f16, | |
| (f64, f64) -> f64, | |
| (vec2<{AbstractInt}>, vec2<{AbstractInt}>) -> vec2<{AbstractInt}>, | |
| (vec2<{AbstractFloat}>, vec2<{AbstractFloat}>) -> vec2<{AbstractFloat}>, | |
| (vec2<i32>, vec2<i32>) -> vec2<i32>, | |
| (vec2<i64>, vec2<i64>) -> vec2<i64>, | |
| (vec2<u32>, vec2<u32>) -> vec2<u32>, | |
| (vec2<u64>, vec2<u64>) -> vec2<u64>, | |
| (vec2<f32>, vec2<f32>) -> vec2<f32>, | |
| (vec2<f16>, vec2<f16>) -> vec2<f16>, | |
| (vec2<f64>, vec2<f64>) -> vec2<f64>, | |
| (vec3<{AbstractInt}>, vec3<{AbstractInt}>) -> vec3<{AbstractInt}>, | |
| (vec3<{AbstractFloat}>, vec3<{AbstractFloat}>) -> vec3<{AbstractFloat}>, | |
| (vec3<i32>, vec3<i32>) -> vec3<i32>, | |
| (vec3<i64>, vec3<i64>) -> vec3<i64>, | |
| (vec3<u32>, vec3<u32>) -> vec3<u32>, | |
| (vec3<u64>, vec3<u64>) -> vec3<u64>, | |
| (vec3<f32>, vec3<f32>) -> vec3<f32>, | |
| (vec3<f16>, vec3<f16>) -> vec3<f16>, | |
| (vec3<f64>, vec3<f64>) -> vec3<f64>, | |
| (vec4<{AbstractInt}>, vec4<{AbstractInt}>) -> vec4<{AbstractInt}>, | |
| (vec4<{AbstractFloat}>, vec4<{AbstractFloat}>) -> vec4<{AbstractFloat}>, | |
| (vec4<i32>, vec4<i32>) -> vec4<i32>, | |
| (vec4<i64>, vec4<i64>) -> vec4<i64>, | |
| (vec4<u32>, vec4<u32>) -> vec4<u32>, | |
| (vec4<u64>, vec4<u64>) -> vec4<u64>, | |
| (vec4<f32>, vec4<f32>) -> vec4<f32>, | |
| (vec4<f16>, vec4<f16>) -> vec4<f16>, | |
| (vec4<f64>, vec4<f64>) -> vec4<f64>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG overloads after arg 0: List { | |
| rules: [ | |
| (vec2<f32>, vec2<f32>) -> vec2<f32>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG overloads after arg 1: List { | |
| rules: [ | |
| (vec2<f32>, vec2<f32>) -> vec2<f32>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG initial overloads for Length: List { | |
| rules: [ | |
| (f32) -> f32, | |
| (f16) -> f16, | |
| (f64) -> f64, | |
| (vec2<f32>) -> f32, | |
| (vec2<f16>) -> f16, | |
| (vec2<f64>) -> f64, | |
| (vec3<f32>) -> f32, | |
| (vec3<f16>) -> f16, | |
| (vec3<f64>) -> f64, | |
| (vec4<f32>) -> f32, | |
| (vec4<f16>) -> f16, | |
| (vec4<f64>) -> f64, | |
| ], | |
| conclude: Scalar, | |
| } | |
| DEBUG overloads after arg 0: List { | |
| rules: [ | |
| (vec2<f32>) -> f32, | |
| ], | |
| conclude: Scalar, | |
| } | |
| DEBUG initial overloads for Max: List { | |
| rules: [ | |
| ({AbstractInt}, {AbstractInt}) -> {AbstractInt}, | |
| ({AbstractFloat}, {AbstractFloat}) -> {AbstractFloat}, | |
| (i32, i32) -> i32, | |
| (i64, i64) -> i64, | |
| (u32, u32) -> u32, | |
| (u64, u64) -> u64, | |
| (f32, f32) -> f32, | |
| (f16, f16) -> f16, | |
| (f64, f64) -> f64, | |
| (vec2<{AbstractInt}>, vec2<{AbstractInt}>) -> vec2<{AbstractInt}>, | |
| (vec2<{AbstractFloat}>, vec2<{AbstractFloat}>) -> vec2<{AbstractFloat}>, | |
| (vec2<i32>, vec2<i32>) -> vec2<i32>, | |
| (vec2<i64>, vec2<i64>) -> vec2<i64>, | |
| (vec2<u32>, vec2<u32>) -> vec2<u32>, | |
| (vec2<u64>, vec2<u64>) -> vec2<u64>, | |
| (vec2<f32>, vec2<f32>) -> vec2<f32>, | |
| (vec2<f16>, vec2<f16>) -> vec2<f16>, | |
| (vec2<f64>, vec2<f64>) -> vec2<f64>, | |
| (vec3<{AbstractInt}>, vec3<{AbstractInt}>) -> vec3<{AbstractInt}>, | |
| (vec3<{AbstractFloat}>, vec3<{AbstractFloat}>) -> vec3<{AbstractFloat}>, | |
| (vec3<i32>, vec3<i32>) -> vec3<i32>, | |
| (vec3<i64>, vec3<i64>) -> vec3<i64>, | |
| (vec3<u32>, vec3<u32>) -> vec3<u32>, | |
| (vec3<u64>, vec3<u64>) -> vec3<u64>, | |
| (vec3<f32>, vec3<f32>) -> vec3<f32>, | |
| (vec3<f16>, vec3<f16>) -> vec3<f16>, | |
| (vec3<f64>, vec3<f64>) -> vec3<f64>, | |
| (vec4<{AbstractInt}>, vec4<{AbstractInt}>) -> vec4<{AbstractInt}>, | |
| (vec4<{AbstractFloat}>, vec4<{AbstractFloat}>) -> vec4<{AbstractFloat}>, | |
| (vec4<i32>, vec4<i32>) -> vec4<i32>, | |
| (vec4<i64>, vec4<i64>) -> vec4<i64>, | |
| (vec4<u32>, vec4<u32>) -> vec4<u32>, | |
| (vec4<u64>, vec4<u64>) -> vec4<u64>, | |
| (vec4<f32>, vec4<f32>) -> vec4<f32>, | |
| (vec4<f16>, vec4<f16>) -> vec4<f16>, | |
| (vec4<f64>, vec4<f64>) -> vec4<f64>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG overloads after arg 0: List { | |
| rules: [ | |
| (f32, f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG overloads after arg 1: List { | |
| rules: [ | |
| (f32, f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG initial overloads for Min: List { | |
| rules: [ | |
| ({AbstractInt}, {AbstractInt}) -> {AbstractInt}, | |
| ({AbstractFloat}, {AbstractFloat}) -> {AbstractFloat}, | |
| (i32, i32) -> i32, | |
| (i64, i64) -> i64, | |
| (u32, u32) -> u32, | |
| (u64, u64) -> u64, | |
| (f32, f32) -> f32, | |
| (f16, f16) -> f16, | |
| (f64, f64) -> f64, | |
| (vec2<{AbstractInt}>, vec2<{AbstractInt}>) -> vec2<{AbstractInt}>, | |
| (vec2<{AbstractFloat}>, vec2<{AbstractFloat}>) -> vec2<{AbstractFloat}>, | |
| (vec2<i32>, vec2<i32>) -> vec2<i32>, | |
| (vec2<i64>, vec2<i64>) -> vec2<i64>, | |
| (vec2<u32>, vec2<u32>) -> vec2<u32>, | |
| (vec2<u64>, vec2<u64>) -> vec2<u64>, | |
| (vec2<f32>, vec2<f32>) -> vec2<f32>, | |
| (vec2<f16>, vec2<f16>) -> vec2<f16>, | |
| (vec2<f64>, vec2<f64>) -> vec2<f64>, | |
| (vec3<{AbstractInt}>, vec3<{AbstractInt}>) -> vec3<{AbstractInt}>, | |
| (vec3<{AbstractFloat}>, vec3<{AbstractFloat}>) -> vec3<{AbstractFloat}>, | |
| (vec3<i32>, vec3<i32>) -> vec3<i32>, | |
| (vec3<i64>, vec3<i64>) -> vec3<i64>, | |
| (vec3<u32>, vec3<u32>) -> vec3<u32>, | |
| (vec3<u64>, vec3<u64>) -> vec3<u64>, | |
| (vec3<f32>, vec3<f32>) -> vec3<f32>, | |
| (vec3<f16>, vec3<f16>) -> vec3<f16>, | |
| (vec3<f64>, vec3<f64>) -> vec3<f64>, | |
| (vec4<{AbstractInt}>, vec4<{AbstractInt}>) -> vec4<{AbstractInt}>, | |
| (vec4<{AbstractFloat}>, vec4<{AbstractFloat}>) -> vec4<{AbstractFloat}>, | |
| (vec4<i32>, vec4<i32>) -> vec4<i32>, | |
| (vec4<i64>, vec4<i64>) -> vec4<i64>, | |
| (vec4<u32>, vec4<u32>) -> vec4<u32>, | |
| (vec4<u64>, vec4<u64>) -> vec4<u64>, | |
| (vec4<f32>, vec4<f32>) -> vec4<f32>, | |
| (vec4<f16>, vec4<f16>) -> vec4<f16>, | |
| (vec4<f64>, vec4<f64>) -> vec4<f64>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG overloads after arg 0: List { | |
| rules: [ | |
| (f32, f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG overloads after arg 1: List { | |
| rules: [ | |
| (f32, f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG initial overloads for Abs, List { | |
| rules: [ | |
| ({AbstractInt}) -> {AbstractInt}, | |
| ({AbstractFloat}) -> {AbstractFloat}, | |
| (i32) -> i32, | |
| (i64) -> i64, | |
| (u32) -> u32, | |
| (u64) -> u64, | |
| (f32) -> f32, | |
| (f16) -> f16, | |
| (f64) -> f64, | |
| (vec2<{AbstractInt}>) -> vec2<{AbstractInt}>, | |
| (vec2<{AbstractFloat}>) -> vec2<{AbstractFloat}>, | |
| (vec2<i32>) -> vec2<i32>, | |
| (vec2<i64>) -> vec2<i64>, | |
| (vec2<u32>) -> vec2<u32>, | |
| (vec2<u64>) -> vec2<u64>, | |
| (vec2<f32>) -> vec2<f32>, | |
| (vec2<f16>) -> vec2<f16>, | |
| (vec2<f64>) -> vec2<f64>, | |
| (vec3<{AbstractInt}>) -> vec3<{AbstractInt}>, | |
| (vec3<{AbstractFloat}>) -> vec3<{AbstractFloat}>, | |
| (vec3<i32>) -> vec3<i32>, | |
| (vec3<i64>) -> vec3<i64>, | |
| (vec3<u32>) -> vec3<u32>, | |
| (vec3<u64>) -> vec3<u64>, | |
| (vec3<f32>) -> vec3<f32>, | |
| (vec3<f16>) -> vec3<f16>, | |
| (vec3<f64>) -> vec3<f64>, | |
| (vec4<{AbstractInt}>) -> vec4<{AbstractInt}>, | |
| (vec4<{AbstractFloat}>) -> vec4<{AbstractFloat}>, | |
| (vec4<i32>) -> vec4<i32>, | |
| (vec4<i64>) -> vec4<i64>, | |
| (vec4<u32>) -> vec4<u32>, | |
| (vec4<u64>) -> vec4<u64>, | |
| (vec4<f32>) -> vec4<f32>, | |
| (vec4<f16>) -> vec4<f16>, | |
| (vec4<f64>) -> vec4<f64>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG overloads after arg 0 of type vec2<f32>: List { | |
| rules: [ | |
| (vec2<f32>) -> vec2<f32>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG initial overloads for Abs: List { | |
| rules: [ | |
| ({AbstractInt}) -> {AbstractInt}, | |
| ({AbstractFloat}) -> {AbstractFloat}, | |
| (i32) -> i32, | |
| (i64) -> i64, | |
| (u32) -> u32, | |
| (u64) -> u64, | |
| (f32) -> f32, | |
| (f16) -> f16, | |
| (f64) -> f64, | |
| (vec2<{AbstractInt}>) -> vec2<{AbstractInt}>, | |
| (vec2<{AbstractFloat}>) -> vec2<{AbstractFloat}>, | |
| (vec2<i32>) -> vec2<i32>, | |
| (vec2<i64>) -> vec2<i64>, | |
| (vec2<u32>) -> vec2<u32>, | |
| (vec2<u64>) -> vec2<u64>, | |
| (vec2<f32>) -> vec2<f32>, | |
| (vec2<f16>) -> vec2<f16>, | |
| (vec2<f64>) -> vec2<f64>, | |
| (vec3<{AbstractInt}>) -> vec3<{AbstractInt}>, | |
| (vec3<{AbstractFloat}>) -> vec3<{AbstractFloat}>, | |
| (vec3<i32>) -> vec3<i32>, | |
| (vec3<i64>) -> vec3<i64>, | |
| (vec3<u32>) -> vec3<u32>, | |
| (vec3<u64>) -> vec3<u64>, | |
| (vec3<f32>) -> vec3<f32>, | |
| (vec3<f16>) -> vec3<f16>, | |
| (vec3<f64>) -> vec3<f64>, | |
| (vec4<{AbstractInt}>) -> vec4<{AbstractInt}>, | |
| (vec4<{AbstractFloat}>) -> vec4<{AbstractFloat}>, | |
| (vec4<i32>) -> vec4<i32>, | |
| (vec4<i64>) -> vec4<i64>, | |
| (vec4<u32>) -> vec4<u32>, | |
| (vec4<u64>) -> vec4<u64>, | |
| (vec4<f32>) -> vec4<f32>, | |
| (vec4<f16>) -> vec4<f16>, | |
| (vec4<f64>) -> vec4<f64>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG overloads after arg 0: List { | |
| rules: [ | |
| (vec2<f32>) -> vec2<f32>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG var LocalVariable { name: Some("result"), ty: [22], init: Some([4]) } | |
| DEBUG initial overloads for Cos, List { | |
| rules: [ | |
| ({AbstractFloat}) -> {AbstractFloat}, | |
| (f32) -> f32, | |
| (f16) -> f16, | |
| (f64) -> f64, | |
| (vec2<{AbstractFloat}>) -> vec2<{AbstractFloat}>, | |
| (vec2<f32>) -> vec2<f32>, | |
| (vec2<f16>) -> vec2<f16>, | |
| (vec2<f64>) -> vec2<f64>, | |
| (vec3<{AbstractFloat}>) -> vec3<{AbstractFloat}>, | |
| (vec3<f32>) -> vec3<f32>, | |
| (vec3<f16>) -> vec3<f16>, | |
| (vec3<f64>) -> vec3<f64>, | |
| (vec4<{AbstractFloat}>) -> vec4<{AbstractFloat}>, | |
| (vec4<f32>) -> vec4<f32>, | |
| (vec4<f16>) -> vec4<f16>, | |
| (vec4<f64>) -> vec4<f64>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG overloads after arg 0 of type f32: List { | |
| rules: [ | |
| (f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG initial overloads for Sin, List { | |
| rules: [ | |
| ({AbstractFloat}) -> {AbstractFloat}, | |
| (f32) -> f32, | |
| (f16) -> f16, | |
| (f64) -> f64, | |
| (vec2<{AbstractFloat}>) -> vec2<{AbstractFloat}>, | |
| (vec2<f32>) -> vec2<f32>, | |
| (vec2<f16>) -> vec2<f16>, | |
| (vec2<f64>) -> vec2<f64>, | |
| (vec3<{AbstractFloat}>) -> vec3<{AbstractFloat}>, | |
| (vec3<f32>) -> vec3<f32>, | |
| (vec3<f16>) -> vec3<f16>, | |
| (vec3<f64>) -> vec3<f64>, | |
| (vec4<{AbstractFloat}>) -> vec4<{AbstractFloat}>, | |
| (vec4<f32>) -> vec4<f32>, | |
| (vec4<f16>) -> vec4<f16>, | |
| (vec4<f64>) -> vec4<f64>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG overloads after arg 0 of type f32: List { | |
| rules: [ | |
| (f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG initial overloads for Dot, List { | |
| rules: [ | |
| (vec2<{AbstractInt}>, vec2<{AbstractInt}>) -> {AbstractInt}, | |
| (vec2<{AbstractFloat}>, vec2<{AbstractFloat}>) -> {AbstractFloat}, | |
| (vec2<i32>, vec2<i32>) -> i32, | |
| (vec2<i64>, vec2<i64>) -> i64, | |
| (vec2<u32>, vec2<u32>) -> u32, | |
| (vec2<u64>, vec2<u64>) -> u64, | |
| (vec2<f32>, vec2<f32>) -> f32, | |
| (vec2<f16>, vec2<f16>) -> f16, | |
| (vec2<f64>, vec2<f64>) -> f64, | |
| (vec3<{AbstractInt}>, vec3<{AbstractInt}>) -> {AbstractInt}, | |
| (vec3<{AbstractFloat}>, vec3<{AbstractFloat}>) -> {AbstractFloat}, | |
| (vec3<i32>, vec3<i32>) -> i32, | |
| (vec3<i64>, vec3<i64>) -> i64, | |
| (vec3<u32>, vec3<u32>) -> u32, | |
| (vec3<u64>, vec3<u64>) -> u64, | |
| (vec3<f32>, vec3<f32>) -> f32, | |
| (vec3<f16>, vec3<f16>) -> f16, | |
| (vec3<f64>, vec3<f64>) -> f64, | |
| (vec4<{AbstractInt}>, vec4<{AbstractInt}>) -> {AbstractInt}, | |
| (vec4<{AbstractFloat}>, vec4<{AbstractFloat}>) -> {AbstractFloat}, | |
| (vec4<i32>, vec4<i32>) -> i32, | |
| (vec4<i64>, vec4<i64>) -> i64, | |
| (vec4<u32>, vec4<u32>) -> u32, | |
| (vec4<u64>, vec4<u64>) -> u64, | |
| (vec4<f32>, vec4<f32>) -> f32, | |
| (vec4<f16>, vec4<f16>) -> f16, | |
| (vec4<f64>, vec4<f64>) -> f64, | |
| ], | |
| conclude: Scalar, | |
| } | |
| DEBUG overloads after arg 0 of type vec2<f32>: List { | |
| rules: [ | |
| (vec2<f32>, vec2<f32>) -> f32, | |
| ], | |
| conclude: Scalar, | |
| } | |
| DEBUG overloads after arg 1 of type vec2<f32>: List { | |
| rules: [ | |
| (vec2<f32>, vec2<f32>) -> f32, | |
| ], | |
| conclude: Scalar, | |
| } | |
| DEBUG initial overloads for Length, List { | |
| rules: [ | |
| (f32) -> f32, | |
| (f16) -> f16, | |
| (f64) -> f64, | |
| (vec2<f32>) -> f32, | |
| (vec2<f16>) -> f16, | |
| (vec2<f64>) -> f64, | |
| (vec3<f32>) -> f32, | |
| (vec3<f16>) -> f16, | |
| (vec3<f64>) -> f64, | |
| (vec4<f32>) -> f32, | |
| (vec4<f16>) -> f16, | |
| (vec4<f64>) -> f64, | |
| ], | |
| conclude: Scalar, | |
| } | |
| DEBUG overloads after arg 0 of type vec2<f32>: List { | |
| rules: [ | |
| (vec2<f32>) -> f32, | |
| ], | |
| conclude: Scalar, | |
| } | |
| DEBUG initial overloads for Abs, List { | |
| rules: [ | |
| ({AbstractInt}) -> {AbstractInt}, | |
| ({AbstractFloat}) -> {AbstractFloat}, | |
| (i32) -> i32, | |
| (i64) -> i64, | |
| (u32) -> u32, | |
| (u64) -> u64, | |
| (f32) -> f32, | |
| (f16) -> f16, | |
| (f64) -> f64, | |
| (vec2<{AbstractInt}>) -> vec2<{AbstractInt}>, | |
| (vec2<{AbstractFloat}>) -> vec2<{AbstractFloat}>, | |
| (vec2<i32>) -> vec2<i32>, | |
| (vec2<i64>) -> vec2<i64>, | |
| (vec2<u32>) -> vec2<u32>, | |
| (vec2<u64>) -> vec2<u64>, | |
| (vec2<f32>) -> vec2<f32>, | |
| (vec2<f16>) -> vec2<f16>, | |
| (vec2<f64>) -> vec2<f64>, | |
| (vec3<{AbstractInt}>) -> vec3<{AbstractInt}>, | |
| (vec3<{AbstractFloat}>) -> vec3<{AbstractFloat}>, | |
| (vec3<i32>) -> vec3<i32>, | |
| (vec3<i64>) -> vec3<i64>, | |
| (vec3<u32>) -> vec3<u32>, | |
| (vec3<u64>) -> vec3<u64>, | |
| (vec3<f32>) -> vec3<f32>, | |
| (vec3<f16>) -> vec3<f16>, | |
| (vec3<f64>) -> vec3<f64>, | |
| (vec4<{AbstractInt}>) -> vec4<{AbstractInt}>, | |
| (vec4<{AbstractFloat}>) -> vec4<{AbstractFloat}>, | |
| (vec4<i32>) -> vec4<i32>, | |
| (vec4<i64>) -> vec4<i64>, | |
| (vec4<u32>) -> vec4<u32>, | |
| (vec4<u64>) -> vec4<u64>, | |
| (vec4<f32>) -> vec4<f32>, | |
| (vec4<f16>) -> vec4<f16>, | |
| (vec4<f64>) -> vec4<f64>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG overloads after arg 0 of type f32: List { | |
| rules: [ | |
| (f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG initial overloads for Abs, List { | |
| rules: [ | |
| ({AbstractInt}) -> {AbstractInt}, | |
| ({AbstractFloat}) -> {AbstractFloat}, | |
| (i32) -> i32, | |
| (i64) -> i64, | |
| (u32) -> u32, | |
| (u64) -> u64, | |
| (f32) -> f32, | |
| (f16) -> f16, | |
| (f64) -> f64, | |
| (vec2<{AbstractInt}>) -> vec2<{AbstractInt}>, | |
| (vec2<{AbstractFloat}>) -> vec2<{AbstractFloat}>, | |
| (vec2<i32>) -> vec2<i32>, | |
| (vec2<i64>) -> vec2<i64>, | |
| (vec2<u32>) -> vec2<u32>, | |
| (vec2<u64>) -> vec2<u64>, | |
| (vec2<f32>) -> vec2<f32>, | |
| (vec2<f16>) -> vec2<f16>, | |
| (vec2<f64>) -> vec2<f64>, | |
| (vec3<{AbstractInt}>) -> vec3<{AbstractInt}>, | |
| (vec3<{AbstractFloat}>) -> vec3<{AbstractFloat}>, | |
| (vec3<i32>) -> vec3<i32>, | |
| (vec3<i64>) -> vec3<i64>, | |
| (vec3<u32>) -> vec3<u32>, | |
| (vec3<u64>) -> vec3<u64>, | |
| (vec3<f32>) -> vec3<f32>, | |
| (vec3<f16>) -> vec3<f16>, | |
| (vec3<f64>) -> vec3<f64>, | |
| (vec4<{AbstractInt}>) -> vec4<{AbstractInt}>, | |
| (vec4<{AbstractFloat}>) -> vec4<{AbstractFloat}>, | |
| (vec4<i32>) -> vec4<i32>, | |
| (vec4<i64>) -> vec4<i64>, | |
| (vec4<u32>) -> vec4<u32>, | |
| (vec4<u64>) -> vec4<u64>, | |
| (vec4<f32>) -> vec4<f32>, | |
| (vec4<f16>) -> vec4<f16>, | |
| (vec4<f64>) -> vec4<f64>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG overloads after arg 0 of type f32: List { | |
| rules: [ | |
| (f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG initial overloads for Clamp, List { | |
| rules: [ | |
| ({AbstractInt}, {AbstractInt}, {AbstractInt}) -> {AbstractInt}, | |
| ({AbstractFloat}, {AbstractFloat}, {AbstractFloat}) -> {AbstractFloat}, | |
| (i32, i32, i32) -> i32, | |
| (i64, i64, i64) -> i64, | |
| (u32, u32, u32) -> u32, | |
| (u64, u64, u64) -> u64, | |
| (f32, f32, f32) -> f32, | |
| (f16, f16, f16) -> f16, | |
| (f64, f64, f64) -> f64, | |
| (vec2<{AbstractInt}>, vec2<{AbstractInt}>, vec2<{AbstractInt}>) -> vec2<{AbstractInt}>, | |
| (vec2<{AbstractFloat}>, vec2<{AbstractFloat}>, vec2<{AbstractFloat}>) -> vec2<{AbstractFloat}>, | |
| (vec2<i32>, vec2<i32>, vec2<i32>) -> vec2<i32>, | |
| (vec2<i64>, vec2<i64>, vec2<i64>) -> vec2<i64>, | |
| (vec2<u32>, vec2<u32>, vec2<u32>) -> vec2<u32>, | |
| (vec2<u64>, vec2<u64>, vec2<u64>) -> vec2<u64>, | |
| (vec2<f32>, vec2<f32>, vec2<f32>) -> vec2<f32>, | |
| (vec2<f16>, vec2<f16>, vec2<f16>) -> vec2<f16>, | |
| (vec2<f64>, vec2<f64>, vec2<f64>) -> vec2<f64>, | |
| (vec3<{AbstractInt}>, vec3<{AbstractInt}>, vec3<{AbstractInt}>) -> vec3<{AbstractInt}>, | |
| (vec3<{AbstractFloat}>, vec3<{AbstractFloat}>, vec3<{AbstractFloat}>) -> vec3<{AbstractFloat}>, | |
| (vec3<i32>, vec3<i32>, vec3<i32>) -> vec3<i32>, | |
| (vec3<i64>, vec3<i64>, vec3<i64>) -> vec3<i64>, | |
| (vec3<u32>, vec3<u32>, vec3<u32>) -> vec3<u32>, | |
| (vec3<u64>, vec3<u64>, vec3<u64>) -> vec3<u64>, | |
| (vec3<f32>, vec3<f32>, vec3<f32>) -> vec3<f32>, | |
| (vec3<f16>, vec3<f16>, vec3<f16>) -> vec3<f16>, | |
| (vec3<f64>, vec3<f64>, vec3<f64>) -> vec3<f64>, | |
| (vec4<{AbstractInt}>, vec4<{AbstractInt}>, vec4<{AbstractInt}>) -> vec4<{AbstractInt}>, | |
| (vec4<{AbstractFloat}>, vec4<{AbstractFloat}>, vec4<{AbstractFloat}>) -> vec4<{AbstractFloat}>, | |
| (vec4<i32>, vec4<i32>, vec4<i32>) -> vec4<i32>, | |
| (vec4<i64>, vec4<i64>, vec4<i64>) -> vec4<i64>, | |
| (vec4<u32>, vec4<u32>, vec4<u32>) -> vec4<u32>, | |
| (vec4<u64>, vec4<u64>, vec4<u64>) -> vec4<u64>, | |
| (vec4<f32>, vec4<f32>, vec4<f32>) -> vec4<f32>, | |
| (vec4<f16>, vec4<f16>, vec4<f16>) -> vec4<f16>, | |
| (vec4<f64>, vec4<f64>, vec4<f64>) -> vec4<f64>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG overloads after arg 0 of type f32: List { | |
| rules: [ | |
| (f32, f32, f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG overloads after arg 1 of type f32: List { | |
| rules: [ | |
| (f32, f32, f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG initial overloads for Mix, [ | |
| ({AbstractFloat}, {AbstractFloat}, {AbstractFloat}) -> {AbstractFloat}, | |
| ({AbstractFloat}, {AbstractFloat}, {AbstractFloat}) -> {AbstractFloat}, | |
| (vec2<{AbstractFloat}>, vec2<{AbstractFloat}>, vec2<{AbstractFloat}>) -> vec2<{AbstractFloat}>, | |
| (vec2<{AbstractFloat}>, vec2<{AbstractFloat}>, {AbstractFloat}) -> vec2<{AbstractFloat}>, | |
| (vec3<{AbstractFloat}>, vec3<{AbstractFloat}>, vec3<{AbstractFloat}>) -> vec3<{AbstractFloat}>, | |
| (vec3<{AbstractFloat}>, vec3<{AbstractFloat}>, {AbstractFloat}) -> vec3<{AbstractFloat}>, | |
| (vec4<{AbstractFloat}>, vec4<{AbstractFloat}>, vec4<{AbstractFloat}>) -> vec4<{AbstractFloat}>, | |
| (vec4<{AbstractFloat}>, vec4<{AbstractFloat}>, {AbstractFloat}) -> vec4<{AbstractFloat}>, | |
| (f32, f32, f32) -> f32, | |
| (f32, f32, f32) -> f32, | |
| (vec2<f32>, vec2<f32>, vec2<f32>) -> vec2<f32>, | |
| (vec2<f32>, vec2<f32>, f32) -> vec2<f32>, | |
| (vec3<f32>, vec3<f32>, vec3<f32>) -> vec3<f32>, | |
| (vec3<f32>, vec3<f32>, f32) -> vec3<f32>, | |
| (vec4<f32>, vec4<f32>, vec4<f32>) -> vec4<f32>, | |
| (vec4<f32>, vec4<f32>, f32) -> vec4<f32>, | |
| (f16, f16, f16) -> f16, | |
| (f16, f16, f16) -> f16, | |
| (vec2<f16>, vec2<f16>, vec2<f16>) -> vec2<f16>, | |
| (vec2<f16>, vec2<f16>, f16) -> vec2<f16>, | |
| (vec3<f16>, vec3<f16>, vec3<f16>) -> vec3<f16>, | |
| (vec3<f16>, vec3<f16>, f16) -> vec3<f16>, | |
| (vec4<f16>, vec4<f16>, vec4<f16>) -> vec4<f16>, | |
| (vec4<f16>, vec4<f16>, f16) -> vec4<f16>, | |
| (f64, f64, f64) -> f64, | |
| (f64, f64, f64) -> f64, | |
| (vec2<f64>, vec2<f64>, vec2<f64>) -> vec2<f64>, | |
| (vec2<f64>, vec2<f64>, f64) -> vec2<f64>, | |
| (vec3<f64>, vec3<f64>, vec3<f64>) -> vec3<f64>, | |
| (vec3<f64>, vec3<f64>, f64) -> vec3<f64>, | |
| (vec4<f64>, vec4<f64>, vec4<f64>) -> vec4<f64>, | |
| (vec4<f64>, vec4<f64>, f64) -> vec4<f64>, | |
| ] | |
| DEBUG arg 0 of type vec4<f32> | |
| DEBUG considering rule ({AbstractFloat}, {AbstractFloat}, {AbstractFloat}) -> {AbstractFloat} | |
| DEBUG no conversion possible | |
| DEBUG considering rule ({AbstractFloat}, {AbstractFloat}, {AbstractFloat}) -> {AbstractFloat} | |
| DEBUG no conversion possible | |
| DEBUG considering rule (vec2<{AbstractFloat}>, vec2<{AbstractFloat}>, vec2<{AbstractFloat}>) -> vec2<{AbstractFloat}> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (vec2<{AbstractFloat}>, vec2<{AbstractFloat}>, {AbstractFloat}) -> vec2<{AbstractFloat}> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (vec3<{AbstractFloat}>, vec3<{AbstractFloat}>, vec3<{AbstractFloat}>) -> vec3<{AbstractFloat}> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (vec3<{AbstractFloat}>, vec3<{AbstractFloat}>, {AbstractFloat}) -> vec3<{AbstractFloat}> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (vec4<{AbstractFloat}>, vec4<{AbstractFloat}>, vec4<{AbstractFloat}>) -> vec4<{AbstractFloat}> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (vec4<{AbstractFloat}>, vec4<{AbstractFloat}>, {AbstractFloat}) -> vec4<{AbstractFloat}> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (f32, f32, f32) -> f32 | |
| DEBUG no conversion possible | |
| DEBUG considering rule (f32, f32, f32) -> f32 | |
| DEBUG no conversion possible | |
| DEBUG considering rule (vec2<f32>, vec2<f32>, vec2<f32>) -> vec2<f32> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (vec2<f32>, vec2<f32>, f32) -> vec2<f32> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (vec3<f32>, vec3<f32>, vec3<f32>) -> vec3<f32> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (vec3<f32>, vec3<f32>, f32) -> vec3<f32> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (vec4<f32>, vec4<f32>, vec4<f32>) -> vec4<f32> | |
| DEBUG types are equivalent | |
| DEBUG considering rule (vec4<f32>, vec4<f32>, f32) -> vec4<f32> | |
| DEBUG types are equivalent | |
| DEBUG considering rule (f16, f16, f16) -> f16 | |
| DEBUG no conversion possible | |
| DEBUG considering rule (f16, f16, f16) -> f16 | |
| DEBUG no conversion possible | |
| DEBUG considering rule (vec2<f16>, vec2<f16>, vec2<f16>) -> vec2<f16> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (vec2<f16>, vec2<f16>, f16) -> vec2<f16> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (vec3<f16>, vec3<f16>, vec3<f16>) -> vec3<f16> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (vec3<f16>, vec3<f16>, f16) -> vec3<f16> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (vec4<f16>, vec4<f16>, vec4<f16>) -> vec4<f16> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (vec4<f16>, vec4<f16>, f16) -> vec4<f16> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (f64, f64, f64) -> f64 | |
| DEBUG no conversion possible | |
| DEBUG considering rule (f64, f64, f64) -> f64 | |
| DEBUG no conversion possible | |
| DEBUG considering rule (vec2<f64>, vec2<f64>, vec2<f64>) -> vec2<f64> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (vec2<f64>, vec2<f64>, f64) -> vec2<f64> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (vec3<f64>, vec3<f64>, vec3<f64>) -> vec3<f64> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (vec3<f64>, vec3<f64>, f64) -> vec3<f64> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (vec4<f64>, vec4<f64>, vec4<f64>) -> vec4<f64> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (vec4<f64>, vec4<f64>, f64) -> vec4<f64> | |
| DEBUG no conversion possible | |
| DEBUG overloads after arg 0 of type vec4<f32>: [ | |
| (vec4<f32>, vec4<f32>, vec4<f32>) -> vec4<f32>, | |
| (vec4<f32>, vec4<f32>, f32) -> vec4<f32>, | |
| ] | |
| DEBUG arg 1 of type vec4<f32> | |
| DEBUG considering rule (vec4<f32>, vec4<f32>, vec4<f32>) -> vec4<f32> | |
| DEBUG types are equivalent | |
| DEBUG considering rule (vec4<f32>, vec4<f32>, f32) -> vec4<f32> | |
| DEBUG types are equivalent | |
| DEBUG overloads after arg 1 of type vec4<f32>: [ | |
| (vec4<f32>, vec4<f32>, vec4<f32>) -> vec4<f32>, | |
| (vec4<f32>, vec4<f32>, f32) -> vec4<f32>, | |
| ] | |
| DEBUG initial overloads for Mix, [ | |
| ({AbstractFloat}, {AbstractFloat}, {AbstractFloat}) -> {AbstractFloat}, | |
| ({AbstractFloat}, {AbstractFloat}, {AbstractFloat}) -> {AbstractFloat}, | |
| (vec2<{AbstractFloat}>, vec2<{AbstractFloat}>, vec2<{AbstractFloat}>) -> vec2<{AbstractFloat}>, | |
| (vec2<{AbstractFloat}>, vec2<{AbstractFloat}>, {AbstractFloat}) -> vec2<{AbstractFloat}>, | |
| (vec3<{AbstractFloat}>, vec3<{AbstractFloat}>, vec3<{AbstractFloat}>) -> vec3<{AbstractFloat}>, | |
| (vec3<{AbstractFloat}>, vec3<{AbstractFloat}>, {AbstractFloat}) -> vec3<{AbstractFloat}>, | |
| (vec4<{AbstractFloat}>, vec4<{AbstractFloat}>, vec4<{AbstractFloat}>) -> vec4<{AbstractFloat}>, | |
| (vec4<{AbstractFloat}>, vec4<{AbstractFloat}>, {AbstractFloat}) -> vec4<{AbstractFloat}>, | |
| (f32, f32, f32) -> f32, | |
| (f32, f32, f32) -> f32, | |
| (vec2<f32>, vec2<f32>, vec2<f32>) -> vec2<f32>, | |
| (vec2<f32>, vec2<f32>, f32) -> vec2<f32>, | |
| (vec3<f32>, vec3<f32>, vec3<f32>) -> vec3<f32>, | |
| (vec3<f32>, vec3<f32>, f32) -> vec3<f32>, | |
| (vec4<f32>, vec4<f32>, vec4<f32>) -> vec4<f32>, | |
| (vec4<f32>, vec4<f32>, f32) -> vec4<f32>, | |
| (f16, f16, f16) -> f16, | |
| (f16, f16, f16) -> f16, | |
| (vec2<f16>, vec2<f16>, vec2<f16>) -> vec2<f16>, | |
| (vec2<f16>, vec2<f16>, f16) -> vec2<f16>, | |
| (vec3<f16>, vec3<f16>, vec3<f16>) -> vec3<f16>, | |
| (vec3<f16>, vec3<f16>, f16) -> vec3<f16>, | |
| (vec4<f16>, vec4<f16>, vec4<f16>) -> vec4<f16>, | |
| (vec4<f16>, vec4<f16>, f16) -> vec4<f16>, | |
| (f64, f64, f64) -> f64, | |
| (f64, f64, f64) -> f64, | |
| (vec2<f64>, vec2<f64>, vec2<f64>) -> vec2<f64>, | |
| (vec2<f64>, vec2<f64>, f64) -> vec2<f64>, | |
| (vec3<f64>, vec3<f64>, vec3<f64>) -> vec3<f64>, | |
| (vec3<f64>, vec3<f64>, f64) -> vec3<f64>, | |
| (vec4<f64>, vec4<f64>, vec4<f64>) -> vec4<f64>, | |
| (vec4<f64>, vec4<f64>, f64) -> vec4<f64>, | |
| ] | |
| DEBUG arg 0 of type vec4<f32> | |
| DEBUG considering rule ({AbstractFloat}, {AbstractFloat}, {AbstractFloat}) -> {AbstractFloat} | |
| DEBUG no conversion possible | |
| DEBUG considering rule ({AbstractFloat}, {AbstractFloat}, {AbstractFloat}) -> {AbstractFloat} | |
| DEBUG no conversion possible | |
| DEBUG considering rule (vec2<{AbstractFloat}>, vec2<{AbstractFloat}>, vec2<{AbstractFloat}>) -> vec2<{AbstractFloat}> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (vec2<{AbstractFloat}>, vec2<{AbstractFloat}>, {AbstractFloat}) -> vec2<{AbstractFloat}> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (vec3<{AbstractFloat}>, vec3<{AbstractFloat}>, vec3<{AbstractFloat}>) -> vec3<{AbstractFloat}> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (vec3<{AbstractFloat}>, vec3<{AbstractFloat}>, {AbstractFloat}) -> vec3<{AbstractFloat}> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (vec4<{AbstractFloat}>, vec4<{AbstractFloat}>, vec4<{AbstractFloat}>) -> vec4<{AbstractFloat}> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (vec4<{AbstractFloat}>, vec4<{AbstractFloat}>, {AbstractFloat}) -> vec4<{AbstractFloat}> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (f32, f32, f32) -> f32 | |
| DEBUG no conversion possible | |
| DEBUG considering rule (f32, f32, f32) -> f32 | |
| DEBUG no conversion possible | |
| DEBUG considering rule (vec2<f32>, vec2<f32>, vec2<f32>) -> vec2<f32> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (vec2<f32>, vec2<f32>, f32) -> vec2<f32> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (vec3<f32>, vec3<f32>, vec3<f32>) -> vec3<f32> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (vec3<f32>, vec3<f32>, f32) -> vec3<f32> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (vec4<f32>, vec4<f32>, vec4<f32>) -> vec4<f32> | |
| DEBUG types are equivalent | |
| DEBUG considering rule (vec4<f32>, vec4<f32>, f32) -> vec4<f32> | |
| DEBUG types are equivalent | |
| DEBUG considering rule (f16, f16, f16) -> f16 | |
| DEBUG no conversion possible | |
| DEBUG considering rule (f16, f16, f16) -> f16 | |
| DEBUG no conversion possible | |
| DEBUG considering rule (vec2<f16>, vec2<f16>, vec2<f16>) -> vec2<f16> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (vec2<f16>, vec2<f16>, f16) -> vec2<f16> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (vec3<f16>, vec3<f16>, vec3<f16>) -> vec3<f16> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (vec3<f16>, vec3<f16>, f16) -> vec3<f16> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (vec4<f16>, vec4<f16>, vec4<f16>) -> vec4<f16> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (vec4<f16>, vec4<f16>, f16) -> vec4<f16> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (f64, f64, f64) -> f64 | |
| DEBUG no conversion possible | |
| DEBUG considering rule (f64, f64, f64) -> f64 | |
| DEBUG no conversion possible | |
| DEBUG considering rule (vec2<f64>, vec2<f64>, vec2<f64>) -> vec2<f64> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (vec2<f64>, vec2<f64>, f64) -> vec2<f64> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (vec3<f64>, vec3<f64>, vec3<f64>) -> vec3<f64> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (vec3<f64>, vec3<f64>, f64) -> vec3<f64> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (vec4<f64>, vec4<f64>, vec4<f64>) -> vec4<f64> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (vec4<f64>, vec4<f64>, f64) -> vec4<f64> | |
| DEBUG no conversion possible | |
| DEBUG overloads after arg 0 of type vec4<f32>: [ | |
| (vec4<f32>, vec4<f32>, vec4<f32>) -> vec4<f32>, | |
| (vec4<f32>, vec4<f32>, f32) -> vec4<f32>, | |
| ] | |
| DEBUG arg 1 of type vec4<f32> | |
| DEBUG considering rule (vec4<f32>, vec4<f32>, vec4<f32>) -> vec4<f32> | |
| DEBUG types are equivalent | |
| DEBUG considering rule (vec4<f32>, vec4<f32>, f32) -> vec4<f32> | |
| DEBUG types are equivalent | |
| DEBUG overloads after arg 1 of type vec4<f32>: [ | |
| (vec4<f32>, vec4<f32>, vec4<f32>) -> vec4<f32>, | |
| (vec4<f32>, vec4<f32>, f32) -> vec4<f32>, | |
| ] | |
| DEBUG initial overloads for Sin, List { | |
| rules: [ | |
| ({AbstractFloat}) -> {AbstractFloat}, | |
| (f32) -> f32, | |
| (f16) -> f16, | |
| (f64) -> f64, | |
| (vec2<{AbstractFloat}>) -> vec2<{AbstractFloat}>, | |
| (vec2<f32>) -> vec2<f32>, | |
| (vec2<f16>) -> vec2<f16>, | |
| (vec2<f64>) -> vec2<f64>, | |
| (vec3<{AbstractFloat}>) -> vec3<{AbstractFloat}>, | |
| (vec3<f32>) -> vec3<f32>, | |
| (vec3<f16>) -> vec3<f16>, | |
| (vec3<f64>) -> vec3<f64>, | |
| (vec4<{AbstractFloat}>) -> vec4<{AbstractFloat}>, | |
| (vec4<f32>) -> vec4<f32>, | |
| (vec4<f16>) -> vec4<f16>, | |
| (vec4<f64>) -> vec4<f64>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG overloads after arg 0 of type f32: List { | |
| rules: [ | |
| (f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG initial overloads for Cos, List { | |
| rules: [ | |
| ({AbstractFloat}) -> {AbstractFloat}, | |
| (f32) -> f32, | |
| (f16) -> f16, | |
| (f64) -> f64, | |
| (vec2<{AbstractFloat}>) -> vec2<{AbstractFloat}>, | |
| (vec2<f32>) -> vec2<f32>, | |
| (vec2<f16>) -> vec2<f16>, | |
| (vec2<f64>) -> vec2<f64>, | |
| (vec3<{AbstractFloat}>) -> vec3<{AbstractFloat}>, | |
| (vec3<f32>) -> vec3<f32>, | |
| (vec3<f16>) -> vec3<f16>, | |
| (vec3<f64>) -> vec3<f64>, | |
| (vec4<{AbstractFloat}>) -> vec4<{AbstractFloat}>, | |
| (vec4<f32>) -> vec4<f32>, | |
| (vec4<f16>) -> vec4<f16>, | |
| (vec4<f64>) -> vec4<f64>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG overloads after arg 0 of type f32: List { | |
| rules: [ | |
| (f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG initial overloads for Sin, List { | |
| rules: [ | |
| ({AbstractFloat}) -> {AbstractFloat}, | |
| (f32) -> f32, | |
| (f16) -> f16, | |
| (f64) -> f64, | |
| (vec2<{AbstractFloat}>) -> vec2<{AbstractFloat}>, | |
| (vec2<f32>) -> vec2<f32>, | |
| (vec2<f16>) -> vec2<f16>, | |
| (vec2<f64>) -> vec2<f64>, | |
| (vec3<{AbstractFloat}>) -> vec3<{AbstractFloat}>, | |
| (vec3<f32>) -> vec3<f32>, | |
| (vec3<f16>) -> vec3<f16>, | |
| (vec3<f64>) -> vec3<f64>, | |
| (vec4<{AbstractFloat}>) -> vec4<{AbstractFloat}>, | |
| (vec4<f32>) -> vec4<f32>, | |
| (vec4<f16>) -> vec4<f16>, | |
| (vec4<f64>) -> vec4<f64>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG overloads after arg 0 of type f32: List { | |
| rules: [ | |
| (f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG initial overloads for Sin, List { | |
| rules: [ | |
| ({AbstractFloat}) -> {AbstractFloat}, | |
| (f32) -> f32, | |
| (f16) -> f16, | |
| (f64) -> f64, | |
| (vec2<{AbstractFloat}>) -> vec2<{AbstractFloat}>, | |
| (vec2<f32>) -> vec2<f32>, | |
| (vec2<f16>) -> vec2<f16>, | |
| (vec2<f64>) -> vec2<f64>, | |
| (vec3<{AbstractFloat}>) -> vec3<{AbstractFloat}>, | |
| (vec3<f32>) -> vec3<f32>, | |
| (vec3<f16>) -> vec3<f16>, | |
| (vec3<f64>) -> vec3<f64>, | |
| (vec4<{AbstractFloat}>) -> vec4<{AbstractFloat}>, | |
| (vec4<f32>) -> vec4<f32>, | |
| (vec4<f16>) -> vec4<f16>, | |
| (vec4<f64>) -> vec4<f64>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG overloads after arg 0 of type f32: List { | |
| rules: [ | |
| (f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG initial overloads for Cos, List { | |
| rules: [ | |
| ({AbstractFloat}) -> {AbstractFloat}, | |
| (f32) -> f32, | |
| (f16) -> f16, | |
| (f64) -> f64, | |
| (vec2<{AbstractFloat}>) -> vec2<{AbstractFloat}>, | |
| (vec2<f32>) -> vec2<f32>, | |
| (vec2<f16>) -> vec2<f16>, | |
| (vec2<f64>) -> vec2<f64>, | |
| (vec3<{AbstractFloat}>) -> vec3<{AbstractFloat}>, | |
| (vec3<f32>) -> vec3<f32>, | |
| (vec3<f16>) -> vec3<f16>, | |
| (vec3<f64>) -> vec3<f64>, | |
| (vec4<{AbstractFloat}>) -> vec4<{AbstractFloat}>, | |
| (vec4<f32>) -> vec4<f32>, | |
| (vec4<f16>) -> vec4<f16>, | |
| (vec4<f64>) -> vec4<f64>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG overloads after arg 0 of type f32: List { | |
| rules: [ | |
| (f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG initial overloads for Min, List { | |
| rules: [ | |
| ({AbstractInt}, {AbstractInt}) -> {AbstractInt}, | |
| ({AbstractFloat}, {AbstractFloat}) -> {AbstractFloat}, | |
| (i32, i32) -> i32, | |
| (i64, i64) -> i64, | |
| (u32, u32) -> u32, | |
| (u64, u64) -> u64, | |
| (f32, f32) -> f32, | |
| (f16, f16) -> f16, | |
| (f64, f64) -> f64, | |
| (vec2<{AbstractInt}>, vec2<{AbstractInt}>) -> vec2<{AbstractInt}>, | |
| (vec2<{AbstractFloat}>, vec2<{AbstractFloat}>) -> vec2<{AbstractFloat}>, | |
| (vec2<i32>, vec2<i32>) -> vec2<i32>, | |
| (vec2<i64>, vec2<i64>) -> vec2<i64>, | |
| (vec2<u32>, vec2<u32>) -> vec2<u32>, | |
| (vec2<u64>, vec2<u64>) -> vec2<u64>, | |
| (vec2<f32>, vec2<f32>) -> vec2<f32>, | |
| (vec2<f16>, vec2<f16>) -> vec2<f16>, | |
| (vec2<f64>, vec2<f64>) -> vec2<f64>, | |
| (vec3<{AbstractInt}>, vec3<{AbstractInt}>) -> vec3<{AbstractInt}>, | |
| (vec3<{AbstractFloat}>, vec3<{AbstractFloat}>) -> vec3<{AbstractFloat}>, | |
| (vec3<i32>, vec3<i32>) -> vec3<i32>, | |
| (vec3<i64>, vec3<i64>) -> vec3<i64>, | |
| (vec3<u32>, vec3<u32>) -> vec3<u32>, | |
| (vec3<u64>, vec3<u64>) -> vec3<u64>, | |
| (vec3<f32>, vec3<f32>) -> vec3<f32>, | |
| (vec3<f16>, vec3<f16>) -> vec3<f16>, | |
| (vec3<f64>, vec3<f64>) -> vec3<f64>, | |
| (vec4<{AbstractInt}>, vec4<{AbstractInt}>) -> vec4<{AbstractInt}>, | |
| (vec4<{AbstractFloat}>, vec4<{AbstractFloat}>) -> vec4<{AbstractFloat}>, | |
| (vec4<i32>, vec4<i32>) -> vec4<i32>, | |
| (vec4<i64>, vec4<i64>) -> vec4<i64>, | |
| (vec4<u32>, vec4<u32>) -> vec4<u32>, | |
| (vec4<u64>, vec4<u64>) -> vec4<u64>, | |
| (vec4<f32>, vec4<f32>) -> vec4<f32>, | |
| (vec4<f16>, vec4<f16>) -> vec4<f16>, | |
| (vec4<f64>, vec4<f64>) -> vec4<f64>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG overloads after arg 0 of type f32: List { | |
| rules: [ | |
| (f32, f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG overloads after arg 1 of type f32: List { | |
| rules: [ | |
| (f32, f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG initial overloads for Saturate, List { | |
| rules: [ | |
| ({AbstractFloat}) -> {AbstractFloat}, | |
| (f32) -> f32, | |
| (f16) -> f16, | |
| (f64) -> f64, | |
| (vec2<{AbstractFloat}>) -> vec2<{AbstractFloat}>, | |
| (vec2<f32>) -> vec2<f32>, | |
| (vec2<f16>) -> vec2<f16>, | |
| (vec2<f64>) -> vec2<f64>, | |
| (vec3<{AbstractFloat}>) -> vec3<{AbstractFloat}>, | |
| (vec3<f32>) -> vec3<f32>, | |
| (vec3<f16>) -> vec3<f16>, | |
| (vec3<f64>) -> vec3<f64>, | |
| (vec4<{AbstractFloat}>) -> vec4<{AbstractFloat}>, | |
| (vec4<f32>) -> vec4<f32>, | |
| (vec4<f16>) -> vec4<f16>, | |
| (vec4<f64>) -> vec4<f64>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG overloads after arg 0 of type f32: List { | |
| rules: [ | |
| (f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG var LocalVariable { name: Some("background_color"), ty: [2], init: Some([7]) } | |
| DEBUG var LocalVariable { name: Some("direction"), ty: [3], init: None } | |
| DEBUG var LocalVariable { name: Some("t"), ty: [0], init: None } | |
| DEBUG initial overloads for Cos: List { | |
| rules: [ | |
| ({AbstractFloat}) -> {AbstractFloat}, | |
| (f32) -> f32, | |
| (f16) -> f16, | |
| (f64) -> f64, | |
| (vec2<{AbstractFloat}>) -> vec2<{AbstractFloat}>, | |
| (vec2<f32>) -> vec2<f32>, | |
| (vec2<f16>) -> vec2<f16>, | |
| (vec2<f64>) -> vec2<f64>, | |
| (vec3<{AbstractFloat}>) -> vec3<{AbstractFloat}>, | |
| (vec3<f32>) -> vec3<f32>, | |
| (vec3<f16>) -> vec3<f16>, | |
| (vec3<f64>) -> vec3<f64>, | |
| (vec4<{AbstractFloat}>) -> vec4<{AbstractFloat}>, | |
| (vec4<f32>) -> vec4<f32>, | |
| (vec4<f16>) -> vec4<f16>, | |
| (vec4<f64>) -> vec4<f64>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG overloads after arg 0: List { | |
| rules: [ | |
| (f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG initial overloads for Sin: List { | |
| rules: [ | |
| ({AbstractFloat}) -> {AbstractFloat}, | |
| (f32) -> f32, | |
| (f16) -> f16, | |
| (f64) -> f64, | |
| (vec2<{AbstractFloat}>) -> vec2<{AbstractFloat}>, | |
| (vec2<f32>) -> vec2<f32>, | |
| (vec2<f16>) -> vec2<f16>, | |
| (vec2<f64>) -> vec2<f64>, | |
| (vec3<{AbstractFloat}>) -> vec3<{AbstractFloat}>, | |
| (vec3<f32>) -> vec3<f32>, | |
| (vec3<f16>) -> vec3<f16>, | |
| (vec3<f64>) -> vec3<f64>, | |
| (vec4<{AbstractFloat}>) -> vec4<{AbstractFloat}>, | |
| (vec4<f32>) -> vec4<f32>, | |
| (vec4<f16>) -> vec4<f16>, | |
| (vec4<f64>) -> vec4<f64>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG overloads after arg 0: List { | |
| rules: [ | |
| (f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG initial overloads for Dot: List { | |
| rules: [ | |
| (vec2<{AbstractInt}>, vec2<{AbstractInt}>) -> {AbstractInt}, | |
| (vec2<{AbstractFloat}>, vec2<{AbstractFloat}>) -> {AbstractFloat}, | |
| (vec2<i32>, vec2<i32>) -> i32, | |
| (vec2<i64>, vec2<i64>) -> i64, | |
| (vec2<u32>, vec2<u32>) -> u32, | |
| (vec2<u64>, vec2<u64>) -> u64, | |
| (vec2<f32>, vec2<f32>) -> f32, | |
| (vec2<f16>, vec2<f16>) -> f16, | |
| (vec2<f64>, vec2<f64>) -> f64, | |
| (vec3<{AbstractInt}>, vec3<{AbstractInt}>) -> {AbstractInt}, | |
| (vec3<{AbstractFloat}>, vec3<{AbstractFloat}>) -> {AbstractFloat}, | |
| (vec3<i32>, vec3<i32>) -> i32, | |
| (vec3<i64>, vec3<i64>) -> i64, | |
| (vec3<u32>, vec3<u32>) -> u32, | |
| (vec3<u64>, vec3<u64>) -> u64, | |
| (vec3<f32>, vec3<f32>) -> f32, | |
| (vec3<f16>, vec3<f16>) -> f16, | |
| (vec3<f64>, vec3<f64>) -> f64, | |
| (vec4<{AbstractInt}>, vec4<{AbstractInt}>) -> {AbstractInt}, | |
| (vec4<{AbstractFloat}>, vec4<{AbstractFloat}>) -> {AbstractFloat}, | |
| (vec4<i32>, vec4<i32>) -> i32, | |
| (vec4<i64>, vec4<i64>) -> i64, | |
| (vec4<u32>, vec4<u32>) -> u32, | |
| (vec4<u64>, vec4<u64>) -> u64, | |
| (vec4<f32>, vec4<f32>) -> f32, | |
| (vec4<f16>, vec4<f16>) -> f16, | |
| (vec4<f64>, vec4<f64>) -> f64, | |
| ], | |
| conclude: Scalar, | |
| } | |
| DEBUG overloads after arg 0: List { | |
| rules: [ | |
| (vec2<f32>, vec2<f32>) -> f32, | |
| ], | |
| conclude: Scalar, | |
| } | |
| DEBUG overloads after arg 1: List { | |
| rules: [ | |
| (vec2<f32>, vec2<f32>) -> f32, | |
| ], | |
| conclude: Scalar, | |
| } | |
| DEBUG initial overloads for Length: List { | |
| rules: [ | |
| (f32) -> f32, | |
| (f16) -> f16, | |
| (f64) -> f64, | |
| (vec2<f32>) -> f32, | |
| (vec2<f16>) -> f16, | |
| (vec2<f64>) -> f64, | |
| (vec3<f32>) -> f32, | |
| (vec3<f16>) -> f16, | |
| (vec3<f64>) -> f64, | |
| (vec4<f32>) -> f32, | |
| (vec4<f16>) -> f16, | |
| (vec4<f64>) -> f64, | |
| ], | |
| conclude: Scalar, | |
| } | |
| DEBUG overloads after arg 0: List { | |
| rules: [ | |
| (vec2<f32>) -> f32, | |
| ], | |
| conclude: Scalar, | |
| } | |
| DEBUG initial overloads for Abs: List { | |
| rules: [ | |
| ({AbstractInt}) -> {AbstractInt}, | |
| ({AbstractFloat}) -> {AbstractFloat}, | |
| (i32) -> i32, | |
| (i64) -> i64, | |
| (u32) -> u32, | |
| (u64) -> u64, | |
| (f32) -> f32, | |
| (f16) -> f16, | |
| (f64) -> f64, | |
| (vec2<{AbstractInt}>) -> vec2<{AbstractInt}>, | |
| (vec2<{AbstractFloat}>) -> vec2<{AbstractFloat}>, | |
| (vec2<i32>) -> vec2<i32>, | |
| (vec2<i64>) -> vec2<i64>, | |
| (vec2<u32>) -> vec2<u32>, | |
| (vec2<u64>) -> vec2<u64>, | |
| (vec2<f32>) -> vec2<f32>, | |
| (vec2<f16>) -> vec2<f16>, | |
| (vec2<f64>) -> vec2<f64>, | |
| (vec3<{AbstractInt}>) -> vec3<{AbstractInt}>, | |
| (vec3<{AbstractFloat}>) -> vec3<{AbstractFloat}>, | |
| (vec3<i32>) -> vec3<i32>, | |
| (vec3<i64>) -> vec3<i64>, | |
| (vec3<u32>) -> vec3<u32>, | |
| (vec3<u64>) -> vec3<u64>, | |
| (vec3<f32>) -> vec3<f32>, | |
| (vec3<f16>) -> vec3<f16>, | |
| (vec3<f64>) -> vec3<f64>, | |
| (vec4<{AbstractInt}>) -> vec4<{AbstractInt}>, | |
| (vec4<{AbstractFloat}>) -> vec4<{AbstractFloat}>, | |
| (vec4<i32>) -> vec4<i32>, | |
| (vec4<i64>) -> vec4<i64>, | |
| (vec4<u32>) -> vec4<u32>, | |
| (vec4<u64>) -> vec4<u64>, | |
| (vec4<f32>) -> vec4<f32>, | |
| (vec4<f16>) -> vec4<f16>, | |
| (vec4<f64>) -> vec4<f64>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG overloads after arg 0: List { | |
| rules: [ | |
| (f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG initial overloads for Abs: List { | |
| rules: [ | |
| ({AbstractInt}) -> {AbstractInt}, | |
| ({AbstractFloat}) -> {AbstractFloat}, | |
| (i32) -> i32, | |
| (i64) -> i64, | |
| (u32) -> u32, | |
| (u64) -> u64, | |
| (f32) -> f32, | |
| (f16) -> f16, | |
| (f64) -> f64, | |
| (vec2<{AbstractInt}>) -> vec2<{AbstractInt}>, | |
| (vec2<{AbstractFloat}>) -> vec2<{AbstractFloat}>, | |
| (vec2<i32>) -> vec2<i32>, | |
| (vec2<i64>) -> vec2<i64>, | |
| (vec2<u32>) -> vec2<u32>, | |
| (vec2<u64>) -> vec2<u64>, | |
| (vec2<f32>) -> vec2<f32>, | |
| (vec2<f16>) -> vec2<f16>, | |
| (vec2<f64>) -> vec2<f64>, | |
| (vec3<{AbstractInt}>) -> vec3<{AbstractInt}>, | |
| (vec3<{AbstractFloat}>) -> vec3<{AbstractFloat}>, | |
| (vec3<i32>) -> vec3<i32>, | |
| (vec3<i64>) -> vec3<i64>, | |
| (vec3<u32>) -> vec3<u32>, | |
| (vec3<u64>) -> vec3<u64>, | |
| (vec3<f32>) -> vec3<f32>, | |
| (vec3<f16>) -> vec3<f16>, | |
| (vec3<f64>) -> vec3<f64>, | |
| (vec4<{AbstractInt}>) -> vec4<{AbstractInt}>, | |
| (vec4<{AbstractFloat}>) -> vec4<{AbstractFloat}>, | |
| (vec4<i32>) -> vec4<i32>, | |
| (vec4<i64>) -> vec4<i64>, | |
| (vec4<u32>) -> vec4<u32>, | |
| (vec4<u64>) -> vec4<u64>, | |
| (vec4<f32>) -> vec4<f32>, | |
| (vec4<f16>) -> vec4<f16>, | |
| (vec4<f64>) -> vec4<f64>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG overloads after arg 0: List { | |
| rules: [ | |
| (f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG initial overloads for Clamp: List { | |
| rules: [ | |
| ({AbstractInt}, {AbstractInt}, {AbstractInt}) -> {AbstractInt}, | |
| ({AbstractFloat}, {AbstractFloat}, {AbstractFloat}) -> {AbstractFloat}, | |
| (i32, i32, i32) -> i32, | |
| (i64, i64, i64) -> i64, | |
| (u32, u32, u32) -> u32, | |
| (u64, u64, u64) -> u64, | |
| (f32, f32, f32) -> f32, | |
| (f16, f16, f16) -> f16, | |
| (f64, f64, f64) -> f64, | |
| (vec2<{AbstractInt}>, vec2<{AbstractInt}>, vec2<{AbstractInt}>) -> vec2<{AbstractInt}>, | |
| (vec2<{AbstractFloat}>, vec2<{AbstractFloat}>, vec2<{AbstractFloat}>) -> vec2<{AbstractFloat}>, | |
| (vec2<i32>, vec2<i32>, vec2<i32>) -> vec2<i32>, | |
| (vec2<i64>, vec2<i64>, vec2<i64>) -> vec2<i64>, | |
| (vec2<u32>, vec2<u32>, vec2<u32>) -> vec2<u32>, | |
| (vec2<u64>, vec2<u64>, vec2<u64>) -> vec2<u64>, | |
| (vec2<f32>, vec2<f32>, vec2<f32>) -> vec2<f32>, | |
| (vec2<f16>, vec2<f16>, vec2<f16>) -> vec2<f16>, | |
| (vec2<f64>, vec2<f64>, vec2<f64>) -> vec2<f64>, | |
| (vec3<{AbstractInt}>, vec3<{AbstractInt}>, vec3<{AbstractInt}>) -> vec3<{AbstractInt}>, | |
| (vec3<{AbstractFloat}>, vec3<{AbstractFloat}>, vec3<{AbstractFloat}>) -> vec3<{AbstractFloat}>, | |
| (vec3<i32>, vec3<i32>, vec3<i32>) -> vec3<i32>, | |
| (vec3<i64>, vec3<i64>, vec3<i64>) -> vec3<i64>, | |
| (vec3<u32>, vec3<u32>, vec3<u32>) -> vec3<u32>, | |
| (vec3<u64>, vec3<u64>, vec3<u64>) -> vec3<u64>, | |
| (vec3<f32>, vec3<f32>, vec3<f32>) -> vec3<f32>, | |
| (vec3<f16>, vec3<f16>, vec3<f16>) -> vec3<f16>, | |
| (vec3<f64>, vec3<f64>, vec3<f64>) -> vec3<f64>, | |
| (vec4<{AbstractInt}>, vec4<{AbstractInt}>, vec4<{AbstractInt}>) -> vec4<{AbstractInt}>, | |
| (vec4<{AbstractFloat}>, vec4<{AbstractFloat}>, vec4<{AbstractFloat}>) -> vec4<{AbstractFloat}>, | |
| (vec4<i32>, vec4<i32>, vec4<i32>) -> vec4<i32>, | |
| (vec4<i64>, vec4<i64>, vec4<i64>) -> vec4<i64>, | |
| (vec4<u32>, vec4<u32>, vec4<u32>) -> vec4<u32>, | |
| (vec4<u64>, vec4<u64>, vec4<u64>) -> vec4<u64>, | |
| (vec4<f32>, vec4<f32>, vec4<f32>) -> vec4<f32>, | |
| (vec4<f16>, vec4<f16>, vec4<f16>) -> vec4<f16>, | |
| (vec4<f64>, vec4<f64>, vec4<f64>) -> vec4<f64>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG overloads after arg 0: List { | |
| rules: [ | |
| (f32, f32, f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG overloads after arg 1: List { | |
| rules: [ | |
| (f32, f32, f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG overloads after arg 2: List { | |
| rules: [ | |
| (f32, f32, f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG initial overloads for Mix: [ | |
| ({AbstractFloat}, {AbstractFloat}, {AbstractFloat}) -> {AbstractFloat}, | |
| ({AbstractFloat}, {AbstractFloat}, {AbstractFloat}) -> {AbstractFloat}, | |
| (vec2<{AbstractFloat}>, vec2<{AbstractFloat}>, vec2<{AbstractFloat}>) -> vec2<{AbstractFloat}>, | |
| (vec2<{AbstractFloat}>, vec2<{AbstractFloat}>, {AbstractFloat}) -> vec2<{AbstractFloat}>, | |
| (vec3<{AbstractFloat}>, vec3<{AbstractFloat}>, vec3<{AbstractFloat}>) -> vec3<{AbstractFloat}>, | |
| (vec3<{AbstractFloat}>, vec3<{AbstractFloat}>, {AbstractFloat}) -> vec3<{AbstractFloat}>, | |
| (vec4<{AbstractFloat}>, vec4<{AbstractFloat}>, vec4<{AbstractFloat}>) -> vec4<{AbstractFloat}>, | |
| (vec4<{AbstractFloat}>, vec4<{AbstractFloat}>, {AbstractFloat}) -> vec4<{AbstractFloat}>, | |
| (f32, f32, f32) -> f32, | |
| (f32, f32, f32) -> f32, | |
| (vec2<f32>, vec2<f32>, vec2<f32>) -> vec2<f32>, | |
| (vec2<f32>, vec2<f32>, f32) -> vec2<f32>, | |
| (vec3<f32>, vec3<f32>, vec3<f32>) -> vec3<f32>, | |
| (vec3<f32>, vec3<f32>, f32) -> vec3<f32>, | |
| (vec4<f32>, vec4<f32>, vec4<f32>) -> vec4<f32>, | |
| (vec4<f32>, vec4<f32>, f32) -> vec4<f32>, | |
| (f16, f16, f16) -> f16, | |
| (f16, f16, f16) -> f16, | |
| (vec2<f16>, vec2<f16>, vec2<f16>) -> vec2<f16>, | |
| (vec2<f16>, vec2<f16>, f16) -> vec2<f16>, | |
| (vec3<f16>, vec3<f16>, vec3<f16>) -> vec3<f16>, | |
| (vec3<f16>, vec3<f16>, f16) -> vec3<f16>, | |
| (vec4<f16>, vec4<f16>, vec4<f16>) -> vec4<f16>, | |
| (vec4<f16>, vec4<f16>, f16) -> vec4<f16>, | |
| (f64, f64, f64) -> f64, | |
| (f64, f64, f64) -> f64, | |
| (vec2<f64>, vec2<f64>, vec2<f64>) -> vec2<f64>, | |
| (vec2<f64>, vec2<f64>, f64) -> vec2<f64>, | |
| (vec3<f64>, vec3<f64>, vec3<f64>) -> vec3<f64>, | |
| (vec3<f64>, vec3<f64>, f64) -> vec3<f64>, | |
| (vec4<f64>, vec4<f64>, vec4<f64>) -> vec4<f64>, | |
| (vec4<f64>, vec4<f64>, f64) -> vec4<f64>, | |
| ] | |
| DEBUG arg 0 of type vec4<f32> | |
| DEBUG considering rule ({AbstractFloat}, {AbstractFloat}, {AbstractFloat}) -> {AbstractFloat} | |
| DEBUG no conversion possible | |
| DEBUG considering rule ({AbstractFloat}, {AbstractFloat}, {AbstractFloat}) -> {AbstractFloat} | |
| DEBUG no conversion possible | |
| DEBUG considering rule (vec2<{AbstractFloat}>, vec2<{AbstractFloat}>, vec2<{AbstractFloat}>) -> vec2<{AbstractFloat}> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (vec2<{AbstractFloat}>, vec2<{AbstractFloat}>, {AbstractFloat}) -> vec2<{AbstractFloat}> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (vec3<{AbstractFloat}>, vec3<{AbstractFloat}>, vec3<{AbstractFloat}>) -> vec3<{AbstractFloat}> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (vec3<{AbstractFloat}>, vec3<{AbstractFloat}>, {AbstractFloat}) -> vec3<{AbstractFloat}> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (vec4<{AbstractFloat}>, vec4<{AbstractFloat}>, vec4<{AbstractFloat}>) -> vec4<{AbstractFloat}> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (vec4<{AbstractFloat}>, vec4<{AbstractFloat}>, {AbstractFloat}) -> vec4<{AbstractFloat}> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (f32, f32, f32) -> f32 | |
| DEBUG no conversion possible | |
| DEBUG considering rule (f32, f32, f32) -> f32 | |
| DEBUG no conversion possible | |
| DEBUG considering rule (vec2<f32>, vec2<f32>, vec2<f32>) -> vec2<f32> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (vec2<f32>, vec2<f32>, f32) -> vec2<f32> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (vec3<f32>, vec3<f32>, vec3<f32>) -> vec3<f32> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (vec3<f32>, vec3<f32>, f32) -> vec3<f32> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (vec4<f32>, vec4<f32>, vec4<f32>) -> vec4<f32> | |
| DEBUG types are equivalent | |
| DEBUG considering rule (vec4<f32>, vec4<f32>, f32) -> vec4<f32> | |
| DEBUG types are equivalent | |
| DEBUG considering rule (f16, f16, f16) -> f16 | |
| DEBUG no conversion possible | |
| DEBUG considering rule (f16, f16, f16) -> f16 | |
| DEBUG no conversion possible | |
| DEBUG considering rule (vec2<f16>, vec2<f16>, vec2<f16>) -> vec2<f16> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (vec2<f16>, vec2<f16>, f16) -> vec2<f16> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (vec3<f16>, vec3<f16>, vec3<f16>) -> vec3<f16> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (vec3<f16>, vec3<f16>, f16) -> vec3<f16> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (vec4<f16>, vec4<f16>, vec4<f16>) -> vec4<f16> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (vec4<f16>, vec4<f16>, f16) -> vec4<f16> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (f64, f64, f64) -> f64 | |
| DEBUG no conversion possible | |
| DEBUG considering rule (f64, f64, f64) -> f64 | |
| DEBUG no conversion possible | |
| DEBUG considering rule (vec2<f64>, vec2<f64>, vec2<f64>) -> vec2<f64> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (vec2<f64>, vec2<f64>, f64) -> vec2<f64> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (vec3<f64>, vec3<f64>, vec3<f64>) -> vec3<f64> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (vec3<f64>, vec3<f64>, f64) -> vec3<f64> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (vec4<f64>, vec4<f64>, vec4<f64>) -> vec4<f64> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (vec4<f64>, vec4<f64>, f64) -> vec4<f64> | |
| DEBUG no conversion possible | |
| DEBUG overloads after arg 0: [ | |
| (vec4<f32>, vec4<f32>, vec4<f32>) -> vec4<f32>, | |
| (vec4<f32>, vec4<f32>, f32) -> vec4<f32>, | |
| ] | |
| DEBUG arg 1 of type vec4<f32> | |
| DEBUG considering rule (vec4<f32>, vec4<f32>, vec4<f32>) -> vec4<f32> | |
| DEBUG types are equivalent | |
| DEBUG considering rule (vec4<f32>, vec4<f32>, f32) -> vec4<f32> | |
| DEBUG types are equivalent | |
| DEBUG overloads after arg 1: [ | |
| (vec4<f32>, vec4<f32>, vec4<f32>) -> vec4<f32>, | |
| (vec4<f32>, vec4<f32>, f32) -> vec4<f32>, | |
| ] | |
| DEBUG arg 2 of type f32 | |
| DEBUG considering rule (vec4<f32>, vec4<f32>, vec4<f32>) -> vec4<f32> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (vec4<f32>, vec4<f32>, f32) -> vec4<f32> | |
| DEBUG types are equivalent | |
| DEBUG overloads after arg 2: [ | |
| (vec4<f32>, vec4<f32>, f32) -> vec4<f32>, | |
| ] | |
| DEBUG initial overloads for Mix: [ | |
| ({AbstractFloat}, {AbstractFloat}, {AbstractFloat}) -> {AbstractFloat}, | |
| ({AbstractFloat}, {AbstractFloat}, {AbstractFloat}) -> {AbstractFloat}, | |
| (vec2<{AbstractFloat}>, vec2<{AbstractFloat}>, vec2<{AbstractFloat}>) -> vec2<{AbstractFloat}>, | |
| (vec2<{AbstractFloat}>, vec2<{AbstractFloat}>, {AbstractFloat}) -> vec2<{AbstractFloat}>, | |
| (vec3<{AbstractFloat}>, vec3<{AbstractFloat}>, vec3<{AbstractFloat}>) -> vec3<{AbstractFloat}>, | |
| (vec3<{AbstractFloat}>, vec3<{AbstractFloat}>, {AbstractFloat}) -> vec3<{AbstractFloat}>, | |
| (vec4<{AbstractFloat}>, vec4<{AbstractFloat}>, vec4<{AbstractFloat}>) -> vec4<{AbstractFloat}>, | |
| (vec4<{AbstractFloat}>, vec4<{AbstractFloat}>, {AbstractFloat}) -> vec4<{AbstractFloat}>, | |
| (f32, f32, f32) -> f32, | |
| (f32, f32, f32) -> f32, | |
| (vec2<f32>, vec2<f32>, vec2<f32>) -> vec2<f32>, | |
| (vec2<f32>, vec2<f32>, f32) -> vec2<f32>, | |
| (vec3<f32>, vec3<f32>, vec3<f32>) -> vec3<f32>, | |
| (vec3<f32>, vec3<f32>, f32) -> vec3<f32>, | |
| (vec4<f32>, vec4<f32>, vec4<f32>) -> vec4<f32>, | |
| (vec4<f32>, vec4<f32>, f32) -> vec4<f32>, | |
| (f16, f16, f16) -> f16, | |
| (f16, f16, f16) -> f16, | |
| (vec2<f16>, vec2<f16>, vec2<f16>) -> vec2<f16>, | |
| (vec2<f16>, vec2<f16>, f16) -> vec2<f16>, | |
| (vec3<f16>, vec3<f16>, vec3<f16>) -> vec3<f16>, | |
| (vec3<f16>, vec3<f16>, f16) -> vec3<f16>, | |
| (vec4<f16>, vec4<f16>, vec4<f16>) -> vec4<f16>, | |
| (vec4<f16>, vec4<f16>, f16) -> vec4<f16>, | |
| (f64, f64, f64) -> f64, | |
| (f64, f64, f64) -> f64, | |
| (vec2<f64>, vec2<f64>, vec2<f64>) -> vec2<f64>, | |
| (vec2<f64>, vec2<f64>, f64) -> vec2<f64>, | |
| (vec3<f64>, vec3<f64>, vec3<f64>) -> vec3<f64>, | |
| (vec3<f64>, vec3<f64>, f64) -> vec3<f64>, | |
| (vec4<f64>, vec4<f64>, vec4<f64>) -> vec4<f64>, | |
| (vec4<f64>, vec4<f64>, f64) -> vec4<f64>, | |
| ] | |
| DEBUG arg 0 of type vec4<f32> | |
| DEBUG considering rule ({AbstractFloat}, {AbstractFloat}, {AbstractFloat}) -> {AbstractFloat} | |
| DEBUG no conversion possible | |
| DEBUG considering rule ({AbstractFloat}, {AbstractFloat}, {AbstractFloat}) -> {AbstractFloat} | |
| DEBUG no conversion possible | |
| DEBUG considering rule (vec2<{AbstractFloat}>, vec2<{AbstractFloat}>, vec2<{AbstractFloat}>) -> vec2<{AbstractFloat}> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (vec2<{AbstractFloat}>, vec2<{AbstractFloat}>, {AbstractFloat}) -> vec2<{AbstractFloat}> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (vec3<{AbstractFloat}>, vec3<{AbstractFloat}>, vec3<{AbstractFloat}>) -> vec3<{AbstractFloat}> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (vec3<{AbstractFloat}>, vec3<{AbstractFloat}>, {AbstractFloat}) -> vec3<{AbstractFloat}> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (vec4<{AbstractFloat}>, vec4<{AbstractFloat}>, vec4<{AbstractFloat}>) -> vec4<{AbstractFloat}> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (vec4<{AbstractFloat}>, vec4<{AbstractFloat}>, {AbstractFloat}) -> vec4<{AbstractFloat}> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (f32, f32, f32) -> f32 | |
| DEBUG no conversion possible | |
| DEBUG considering rule (f32, f32, f32) -> f32 | |
| DEBUG no conversion possible | |
| DEBUG considering rule (vec2<f32>, vec2<f32>, vec2<f32>) -> vec2<f32> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (vec2<f32>, vec2<f32>, f32) -> vec2<f32> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (vec3<f32>, vec3<f32>, vec3<f32>) -> vec3<f32> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (vec3<f32>, vec3<f32>, f32) -> vec3<f32> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (vec4<f32>, vec4<f32>, vec4<f32>) -> vec4<f32> | |
| DEBUG types are equivalent | |
| DEBUG considering rule (vec4<f32>, vec4<f32>, f32) -> vec4<f32> | |
| DEBUG types are equivalent | |
| DEBUG considering rule (f16, f16, f16) -> f16 | |
| DEBUG no conversion possible | |
| DEBUG considering rule (f16, f16, f16) -> f16 | |
| DEBUG no conversion possible | |
| DEBUG considering rule (vec2<f16>, vec2<f16>, vec2<f16>) -> vec2<f16> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (vec2<f16>, vec2<f16>, f16) -> vec2<f16> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (vec3<f16>, vec3<f16>, vec3<f16>) -> vec3<f16> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (vec3<f16>, vec3<f16>, f16) -> vec3<f16> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (vec4<f16>, vec4<f16>, vec4<f16>) -> vec4<f16> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (vec4<f16>, vec4<f16>, f16) -> vec4<f16> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (f64, f64, f64) -> f64 | |
| DEBUG no conversion possible | |
| DEBUG considering rule (f64, f64, f64) -> f64 | |
| DEBUG no conversion possible | |
| DEBUG considering rule (vec2<f64>, vec2<f64>, vec2<f64>) -> vec2<f64> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (vec2<f64>, vec2<f64>, f64) -> vec2<f64> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (vec3<f64>, vec3<f64>, vec3<f64>) -> vec3<f64> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (vec3<f64>, vec3<f64>, f64) -> vec3<f64> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (vec4<f64>, vec4<f64>, vec4<f64>) -> vec4<f64> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (vec4<f64>, vec4<f64>, f64) -> vec4<f64> | |
| DEBUG no conversion possible | |
| DEBUG overloads after arg 0: [ | |
| (vec4<f32>, vec4<f32>, vec4<f32>) -> vec4<f32>, | |
| (vec4<f32>, vec4<f32>, f32) -> vec4<f32>, | |
| ] | |
| DEBUG arg 1 of type vec4<f32> | |
| DEBUG considering rule (vec4<f32>, vec4<f32>, vec4<f32>) -> vec4<f32> | |
| DEBUG types are equivalent | |
| DEBUG considering rule (vec4<f32>, vec4<f32>, f32) -> vec4<f32> | |
| DEBUG types are equivalent | |
| DEBUG overloads after arg 1: [ | |
| (vec4<f32>, vec4<f32>, vec4<f32>) -> vec4<f32>, | |
| (vec4<f32>, vec4<f32>, f32) -> vec4<f32>, | |
| ] | |
| DEBUG arg 2 of type f32 | |
| DEBUG considering rule (vec4<f32>, vec4<f32>, vec4<f32>) -> vec4<f32> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (vec4<f32>, vec4<f32>, f32) -> vec4<f32> | |
| DEBUG types are equivalent | |
| DEBUG overloads after arg 2: [ | |
| (vec4<f32>, vec4<f32>, f32) -> vec4<f32>, | |
| ] | |
| DEBUG initial overloads for Sin: List { | |
| rules: [ | |
| ({AbstractFloat}) -> {AbstractFloat}, | |
| (f32) -> f32, | |
| (f16) -> f16, | |
| (f64) -> f64, | |
| (vec2<{AbstractFloat}>) -> vec2<{AbstractFloat}>, | |
| (vec2<f32>) -> vec2<f32>, | |
| (vec2<f16>) -> vec2<f16>, | |
| (vec2<f64>) -> vec2<f64>, | |
| (vec3<{AbstractFloat}>) -> vec3<{AbstractFloat}>, | |
| (vec3<f32>) -> vec3<f32>, | |
| (vec3<f16>) -> vec3<f16>, | |
| (vec3<f64>) -> vec3<f64>, | |
| (vec4<{AbstractFloat}>) -> vec4<{AbstractFloat}>, | |
| (vec4<f32>) -> vec4<f32>, | |
| (vec4<f16>) -> vec4<f16>, | |
| (vec4<f64>) -> vec4<f64>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG overloads after arg 0: List { | |
| rules: [ | |
| (f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG initial overloads for Cos: List { | |
| rules: [ | |
| ({AbstractFloat}) -> {AbstractFloat}, | |
| (f32) -> f32, | |
| (f16) -> f16, | |
| (f64) -> f64, | |
| (vec2<{AbstractFloat}>) -> vec2<{AbstractFloat}>, | |
| (vec2<f32>) -> vec2<f32>, | |
| (vec2<f16>) -> vec2<f16>, | |
| (vec2<f64>) -> vec2<f64>, | |
| (vec3<{AbstractFloat}>) -> vec3<{AbstractFloat}>, | |
| (vec3<f32>) -> vec3<f32>, | |
| (vec3<f16>) -> vec3<f16>, | |
| (vec3<f64>) -> vec3<f64>, | |
| (vec4<{AbstractFloat}>) -> vec4<{AbstractFloat}>, | |
| (vec4<f32>) -> vec4<f32>, | |
| (vec4<f16>) -> vec4<f16>, | |
| (vec4<f64>) -> vec4<f64>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG overloads after arg 0: List { | |
| rules: [ | |
| (f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG initial overloads for Sin: List { | |
| rules: [ | |
| ({AbstractFloat}) -> {AbstractFloat}, | |
| (f32) -> f32, | |
| (f16) -> f16, | |
| (f64) -> f64, | |
| (vec2<{AbstractFloat}>) -> vec2<{AbstractFloat}>, | |
| (vec2<f32>) -> vec2<f32>, | |
| (vec2<f16>) -> vec2<f16>, | |
| (vec2<f64>) -> vec2<f64>, | |
| (vec3<{AbstractFloat}>) -> vec3<{AbstractFloat}>, | |
| (vec3<f32>) -> vec3<f32>, | |
| (vec3<f16>) -> vec3<f16>, | |
| (vec3<f64>) -> vec3<f64>, | |
| (vec4<{AbstractFloat}>) -> vec4<{AbstractFloat}>, | |
| (vec4<f32>) -> vec4<f32>, | |
| (vec4<f16>) -> vec4<f16>, | |
| (vec4<f64>) -> vec4<f64>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG overloads after arg 0: List { | |
| rules: [ | |
| (f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG initial overloads for Sin: List { | |
| rules: [ | |
| ({AbstractFloat}) -> {AbstractFloat}, | |
| (f32) -> f32, | |
| (f16) -> f16, | |
| (f64) -> f64, | |
| (vec2<{AbstractFloat}>) -> vec2<{AbstractFloat}>, | |
| (vec2<f32>) -> vec2<f32>, | |
| (vec2<f16>) -> vec2<f16>, | |
| (vec2<f64>) -> vec2<f64>, | |
| (vec3<{AbstractFloat}>) -> vec3<{AbstractFloat}>, | |
| (vec3<f32>) -> vec3<f32>, | |
| (vec3<f16>) -> vec3<f16>, | |
| (vec3<f64>) -> vec3<f64>, | |
| (vec4<{AbstractFloat}>) -> vec4<{AbstractFloat}>, | |
| (vec4<f32>) -> vec4<f32>, | |
| (vec4<f16>) -> vec4<f16>, | |
| (vec4<f64>) -> vec4<f64>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG overloads after arg 0: List { | |
| rules: [ | |
| (f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG initial overloads for Cos: List { | |
| rules: [ | |
| ({AbstractFloat}) -> {AbstractFloat}, | |
| (f32) -> f32, | |
| (f16) -> f16, | |
| (f64) -> f64, | |
| (vec2<{AbstractFloat}>) -> vec2<{AbstractFloat}>, | |
| (vec2<f32>) -> vec2<f32>, | |
| (vec2<f16>) -> vec2<f16>, | |
| (vec2<f64>) -> vec2<f64>, | |
| (vec3<{AbstractFloat}>) -> vec3<{AbstractFloat}>, | |
| (vec3<f32>) -> vec3<f32>, | |
| (vec3<f16>) -> vec3<f16>, | |
| (vec3<f64>) -> vec3<f64>, | |
| (vec4<{AbstractFloat}>) -> vec4<{AbstractFloat}>, | |
| (vec4<f32>) -> vec4<f32>, | |
| (vec4<f16>) -> vec4<f16>, | |
| (vec4<f64>) -> vec4<f64>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG overloads after arg 0: List { | |
| rules: [ | |
| (f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG initial overloads for Min: List { | |
| rules: [ | |
| ({AbstractInt}, {AbstractInt}) -> {AbstractInt}, | |
| ({AbstractFloat}, {AbstractFloat}) -> {AbstractFloat}, | |
| (i32, i32) -> i32, | |
| (i64, i64) -> i64, | |
| (u32, u32) -> u32, | |
| (u64, u64) -> u64, | |
| (f32, f32) -> f32, | |
| (f16, f16) -> f16, | |
| (f64, f64) -> f64, | |
| (vec2<{AbstractInt}>, vec2<{AbstractInt}>) -> vec2<{AbstractInt}>, | |
| (vec2<{AbstractFloat}>, vec2<{AbstractFloat}>) -> vec2<{AbstractFloat}>, | |
| (vec2<i32>, vec2<i32>) -> vec2<i32>, | |
| (vec2<i64>, vec2<i64>) -> vec2<i64>, | |
| (vec2<u32>, vec2<u32>) -> vec2<u32>, | |
| (vec2<u64>, vec2<u64>) -> vec2<u64>, | |
| (vec2<f32>, vec2<f32>) -> vec2<f32>, | |
| (vec2<f16>, vec2<f16>) -> vec2<f16>, | |
| (vec2<f64>, vec2<f64>) -> vec2<f64>, | |
| (vec3<{AbstractInt}>, vec3<{AbstractInt}>) -> vec3<{AbstractInt}>, | |
| (vec3<{AbstractFloat}>, vec3<{AbstractFloat}>) -> vec3<{AbstractFloat}>, | |
| (vec3<i32>, vec3<i32>) -> vec3<i32>, | |
| (vec3<i64>, vec3<i64>) -> vec3<i64>, | |
| (vec3<u32>, vec3<u32>) -> vec3<u32>, | |
| (vec3<u64>, vec3<u64>) -> vec3<u64>, | |
| (vec3<f32>, vec3<f32>) -> vec3<f32>, | |
| (vec3<f16>, vec3<f16>) -> vec3<f16>, | |
| (vec3<f64>, vec3<f64>) -> vec3<f64>, | |
| (vec4<{AbstractInt}>, vec4<{AbstractInt}>) -> vec4<{AbstractInt}>, | |
| (vec4<{AbstractFloat}>, vec4<{AbstractFloat}>) -> vec4<{AbstractFloat}>, | |
| (vec4<i32>, vec4<i32>) -> vec4<i32>, | |
| (vec4<i64>, vec4<i64>) -> vec4<i64>, | |
| (vec4<u32>, vec4<u32>) -> vec4<u32>, | |
| (vec4<u64>, vec4<u64>) -> vec4<u64>, | |
| (vec4<f32>, vec4<f32>) -> vec4<f32>, | |
| (vec4<f16>, vec4<f16>) -> vec4<f16>, | |
| (vec4<f64>, vec4<f64>) -> vec4<f64>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG overloads after arg 0: List { | |
| rules: [ | |
| (f32, f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG overloads after arg 1: List { | |
| rules: [ | |
| (f32, f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG initial overloads for Saturate: List { | |
| rules: [ | |
| ({AbstractFloat}) -> {AbstractFloat}, | |
| (f32) -> f32, | |
| (f16) -> f16, | |
| (f64) -> f64, | |
| (vec2<{AbstractFloat}>) -> vec2<{AbstractFloat}>, | |
| (vec2<f32>) -> vec2<f32>, | |
| (vec2<f16>) -> vec2<f16>, | |
| (vec2<f64>) -> vec2<f64>, | |
| (vec3<{AbstractFloat}>) -> vec3<{AbstractFloat}>, | |
| (vec3<f32>) -> vec3<f32>, | |
| (vec3<f16>) -> vec3<f16>, | |
| (vec3<f64>) -> vec3<f64>, | |
| (vec4<{AbstractFloat}>) -> vec4<{AbstractFloat}>, | |
| (vec4<f32>) -> vec4<f32>, | |
| (vec4<f16>) -> vec4<f16>, | |
| (vec4<f64>) -> vec4<f64>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG overloads after arg 0: List { | |
| rules: [ | |
| (f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG initial overloads for Length, List { | |
| rules: [ | |
| (f32) -> f32, | |
| (f16) -> f16, | |
| (f64) -> f64, | |
| (vec2<f32>) -> f32, | |
| (vec2<f16>) -> f16, | |
| (vec2<f64>) -> f64, | |
| (vec3<f32>) -> f32, | |
| (vec3<f16>) -> f16, | |
| (vec3<f64>) -> f64, | |
| (vec4<f32>) -> f32, | |
| (vec4<f16>) -> f16, | |
| (vec4<f64>) -> f64, | |
| ], | |
| conclude: Scalar, | |
| } | |
| DEBUG overloads after arg 0 of type vec2<f32>: List { | |
| rules: [ | |
| (vec2<f32>) -> f32, | |
| ], | |
| conclude: Scalar, | |
| } | |
| DEBUG initial overloads for Length: List { | |
| rules: [ | |
| (f32) -> f32, | |
| (f16) -> f16, | |
| (f64) -> f64, | |
| (vec2<f32>) -> f32, | |
| (vec2<f16>) -> f16, | |
| (vec2<f64>) -> f64, | |
| (vec3<f32>) -> f32, | |
| (vec3<f16>) -> f16, | |
| (vec3<f64>) -> f64, | |
| (vec4<f32>) -> f32, | |
| (vec4<f16>) -> f16, | |
| (vec4<f64>) -> f64, | |
| ], | |
| conclude: Scalar, | |
| } | |
| DEBUG overloads after arg 0: List { | |
| rules: [ | |
| (vec2<f32>) -> f32, | |
| ], | |
| conclude: Scalar, | |
| } | |
| DEBUG initial overloads for Min, List { | |
| rules: [ | |
| ({AbstractInt}, {AbstractInt}) -> {AbstractInt}, | |
| ({AbstractFloat}, {AbstractFloat}) -> {AbstractFloat}, | |
| (i32, i32) -> i32, | |
| (i64, i64) -> i64, | |
| (u32, u32) -> u32, | |
| (u64, u64) -> u64, | |
| (f32, f32) -> f32, | |
| (f16, f16) -> f16, | |
| (f64, f64) -> f64, | |
| (vec2<{AbstractInt}>, vec2<{AbstractInt}>) -> vec2<{AbstractInt}>, | |
| (vec2<{AbstractFloat}>, vec2<{AbstractFloat}>) -> vec2<{AbstractFloat}>, | |
| (vec2<i32>, vec2<i32>) -> vec2<i32>, | |
| (vec2<i64>, vec2<i64>) -> vec2<i64>, | |
| (vec2<u32>, vec2<u32>) -> vec2<u32>, | |
| (vec2<u64>, vec2<u64>) -> vec2<u64>, | |
| (vec2<f32>, vec2<f32>) -> vec2<f32>, | |
| (vec2<f16>, vec2<f16>) -> vec2<f16>, | |
| (vec2<f64>, vec2<f64>) -> vec2<f64>, | |
| (vec3<{AbstractInt}>, vec3<{AbstractInt}>) -> vec3<{AbstractInt}>, | |
| (vec3<{AbstractFloat}>, vec3<{AbstractFloat}>) -> vec3<{AbstractFloat}>, | |
| (vec3<i32>, vec3<i32>) -> vec3<i32>, | |
| (vec3<i64>, vec3<i64>) -> vec3<i64>, | |
| (vec3<u32>, vec3<u32>) -> vec3<u32>, | |
| (vec3<u64>, vec3<u64>) -> vec3<u64>, | |
| (vec3<f32>, vec3<f32>) -> vec3<f32>, | |
| (vec3<f16>, vec3<f16>) -> vec3<f16>, | |
| (vec3<f64>, vec3<f64>) -> vec3<f64>, | |
| (vec4<{AbstractInt}>, vec4<{AbstractInt}>) -> vec4<{AbstractInt}>, | |
| (vec4<{AbstractFloat}>, vec4<{AbstractFloat}>) -> vec4<{AbstractFloat}>, | |
| (vec4<i32>, vec4<i32>) -> vec4<i32>, | |
| (vec4<i64>, vec4<i64>) -> vec4<i64>, | |
| (vec4<u32>, vec4<u32>) -> vec4<u32>, | |
| (vec4<u64>, vec4<u64>) -> vec4<u64>, | |
| (vec4<f32>, vec4<f32>) -> vec4<f32>, | |
| (vec4<f16>, vec4<f16>) -> vec4<f16>, | |
| (vec4<f64>, vec4<f64>) -> vec4<f64>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG overloads after arg 0 of type f32: List { | |
| rules: [ | |
| (f32, f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG overloads after arg 1 of type f32: List { | |
| rules: [ | |
| (f32, f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG initial overloads for Min: List { | |
| rules: [ | |
| ({AbstractInt}, {AbstractInt}) -> {AbstractInt}, | |
| ({AbstractFloat}, {AbstractFloat}) -> {AbstractFloat}, | |
| (i32, i32) -> i32, | |
| (i64, i64) -> i64, | |
| (u32, u32) -> u32, | |
| (u64, u64) -> u64, | |
| (f32, f32) -> f32, | |
| (f16, f16) -> f16, | |
| (f64, f64) -> f64, | |
| (vec2<{AbstractInt}>, vec2<{AbstractInt}>) -> vec2<{AbstractInt}>, | |
| (vec2<{AbstractFloat}>, vec2<{AbstractFloat}>) -> vec2<{AbstractFloat}>, | |
| (vec2<i32>, vec2<i32>) -> vec2<i32>, | |
| (vec2<i64>, vec2<i64>) -> vec2<i64>, | |
| (vec2<u32>, vec2<u32>) -> vec2<u32>, | |
| (vec2<u64>, vec2<u64>) -> vec2<u64>, | |
| (vec2<f32>, vec2<f32>) -> vec2<f32>, | |
| (vec2<f16>, vec2<f16>) -> vec2<f16>, | |
| (vec2<f64>, vec2<f64>) -> vec2<f64>, | |
| (vec3<{AbstractInt}>, vec3<{AbstractInt}>) -> vec3<{AbstractInt}>, | |
| (vec3<{AbstractFloat}>, vec3<{AbstractFloat}>) -> vec3<{AbstractFloat}>, | |
| (vec3<i32>, vec3<i32>) -> vec3<i32>, | |
| (vec3<i64>, vec3<i64>) -> vec3<i64>, | |
| (vec3<u32>, vec3<u32>) -> vec3<u32>, | |
| (vec3<u64>, vec3<u64>) -> vec3<u64>, | |
| (vec3<f32>, vec3<f32>) -> vec3<f32>, | |
| (vec3<f16>, vec3<f16>) -> vec3<f16>, | |
| (vec3<f64>, vec3<f64>) -> vec3<f64>, | |
| (vec4<{AbstractInt}>, vec4<{AbstractInt}>) -> vec4<{AbstractInt}>, | |
| (vec4<{AbstractFloat}>, vec4<{AbstractFloat}>) -> vec4<{AbstractFloat}>, | |
| (vec4<i32>, vec4<i32>) -> vec4<i32>, | |
| (vec4<i64>, vec4<i64>) -> vec4<i64>, | |
| (vec4<u32>, vec4<u32>) -> vec4<u32>, | |
| (vec4<u64>, vec4<u64>) -> vec4<u64>, | |
| (vec4<f32>, vec4<f32>) -> vec4<f32>, | |
| (vec4<f16>, vec4<f16>) -> vec4<f16>, | |
| (vec4<f64>, vec4<f64>) -> vec4<f64>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG overloads after arg 0: List { | |
| rules: [ | |
| (f32, f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG overloads after arg 1: List { | |
| rules: [ | |
| (f32, f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG initial overloads for Trunc, List { | |
| rules: [ | |
| ({AbstractFloat}) -> {AbstractFloat}, | |
| (f32) -> f32, | |
| (f16) -> f16, | |
| (f64) -> f64, | |
| (vec2<{AbstractFloat}>) -> vec2<{AbstractFloat}>, | |
| (vec2<f32>) -> vec2<f32>, | |
| (vec2<f16>) -> vec2<f16>, | |
| (vec2<f64>) -> vec2<f64>, | |
| (vec3<{AbstractFloat}>) -> vec3<{AbstractFloat}>, | |
| (vec3<f32>) -> vec3<f32>, | |
| (vec3<f16>) -> vec3<f16>, | |
| (vec3<f64>) -> vec3<f64>, | |
| (vec4<{AbstractFloat}>) -> vec4<{AbstractFloat}>, | |
| (vec4<f32>) -> vec4<f32>, | |
| (vec4<f16>) -> vec4<f16>, | |
| (vec4<f64>) -> vec4<f64>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG overloads after arg 0 of type f32: List { | |
| rules: [ | |
| (f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG initial overloads for Trunc: List { | |
| rules: [ | |
| ({AbstractFloat}) -> {AbstractFloat}, | |
| (f32) -> f32, | |
| (f16) -> f16, | |
| (f64) -> f64, | |
| (vec2<{AbstractFloat}>) -> vec2<{AbstractFloat}>, | |
| (vec2<f32>) -> vec2<f32>, | |
| (vec2<f16>) -> vec2<f16>, | |
| (vec2<f64>) -> vec2<f64>, | |
| (vec3<{AbstractFloat}>) -> vec3<{AbstractFloat}>, | |
| (vec3<f32>) -> vec3<f32>, | |
| (vec3<f16>) -> vec3<f16>, | |
| (vec3<f64>) -> vec3<f64>, | |
| (vec4<{AbstractFloat}>) -> vec4<{AbstractFloat}>, | |
| (vec4<f32>) -> vec4<f32>, | |
| (vec4<f16>) -> vec4<f16>, | |
| (vec4<f64>) -> vec4<f64>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG overloads after arg 0: List { | |
| rules: [ | |
| (f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG initial overloads for Abs, List { | |
| rules: [ | |
| ({AbstractInt}) -> {AbstractInt}, | |
| ({AbstractFloat}) -> {AbstractFloat}, | |
| (i32) -> i32, | |
| (i64) -> i64, | |
| (u32) -> u32, | |
| (u64) -> u64, | |
| (f32) -> f32, | |
| (f16) -> f16, | |
| (f64) -> f64, | |
| (vec2<{AbstractInt}>) -> vec2<{AbstractInt}>, | |
| (vec2<{AbstractFloat}>) -> vec2<{AbstractFloat}>, | |
| (vec2<i32>) -> vec2<i32>, | |
| (vec2<i64>) -> vec2<i64>, | |
| (vec2<u32>) -> vec2<u32>, | |
| (vec2<u64>) -> vec2<u64>, | |
| (vec2<f32>) -> vec2<f32>, | |
| (vec2<f16>) -> vec2<f16>, | |
| (vec2<f64>) -> vec2<f64>, | |
| (vec3<{AbstractInt}>) -> vec3<{AbstractInt}>, | |
| (vec3<{AbstractFloat}>) -> vec3<{AbstractFloat}>, | |
| (vec3<i32>) -> vec3<i32>, | |
| (vec3<i64>) -> vec3<i64>, | |
| (vec3<u32>) -> vec3<u32>, | |
| (vec3<u64>) -> vec3<u64>, | |
| (vec3<f32>) -> vec3<f32>, | |
| (vec3<f16>) -> vec3<f16>, | |
| (vec3<f64>) -> vec3<f64>, | |
| (vec4<{AbstractInt}>) -> vec4<{AbstractInt}>, | |
| (vec4<{AbstractFloat}>) -> vec4<{AbstractFloat}>, | |
| (vec4<i32>) -> vec4<i32>, | |
| (vec4<i64>) -> vec4<i64>, | |
| (vec4<u32>) -> vec4<u32>, | |
| (vec4<u64>) -> vec4<u64>, | |
| (vec4<f32>) -> vec4<f32>, | |
| (vec4<f16>) -> vec4<f16>, | |
| (vec4<f64>) -> vec4<f64>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG overloads after arg 0 of type f32: List { | |
| rules: [ | |
| (f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG initial overloads for Saturate, List { | |
| rules: [ | |
| ({AbstractFloat}) -> {AbstractFloat}, | |
| (f32) -> f32, | |
| (f16) -> f16, | |
| (f64) -> f64, | |
| (vec2<{AbstractFloat}>) -> vec2<{AbstractFloat}>, | |
| (vec2<f32>) -> vec2<f32>, | |
| (vec2<f16>) -> vec2<f16>, | |
| (vec2<f64>) -> vec2<f64>, | |
| (vec3<{AbstractFloat}>) -> vec3<{AbstractFloat}>, | |
| (vec3<f32>) -> vec3<f32>, | |
| (vec3<f16>) -> vec3<f16>, | |
| (vec3<f64>) -> vec3<f64>, | |
| (vec4<{AbstractFloat}>) -> vec4<{AbstractFloat}>, | |
| (vec4<f32>) -> vec4<f32>, | |
| (vec4<f16>) -> vec4<f16>, | |
| (vec4<f64>) -> vec4<f64>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG overloads after arg 0 of type f32: List { | |
| rules: [ | |
| (f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG initial overloads for Abs: List { | |
| rules: [ | |
| ({AbstractInt}) -> {AbstractInt}, | |
| ({AbstractFloat}) -> {AbstractFloat}, | |
| (i32) -> i32, | |
| (i64) -> i64, | |
| (u32) -> u32, | |
| (u64) -> u64, | |
| (f32) -> f32, | |
| (f16) -> f16, | |
| (f64) -> f64, | |
| (vec2<{AbstractInt}>) -> vec2<{AbstractInt}>, | |
| (vec2<{AbstractFloat}>) -> vec2<{AbstractFloat}>, | |
| (vec2<i32>) -> vec2<i32>, | |
| (vec2<i64>) -> vec2<i64>, | |
| (vec2<u32>) -> vec2<u32>, | |
| (vec2<u64>) -> vec2<u64>, | |
| (vec2<f32>) -> vec2<f32>, | |
| (vec2<f16>) -> vec2<f16>, | |
| (vec2<f64>) -> vec2<f64>, | |
| (vec3<{AbstractInt}>) -> vec3<{AbstractInt}>, | |
| (vec3<{AbstractFloat}>) -> vec3<{AbstractFloat}>, | |
| (vec3<i32>) -> vec3<i32>, | |
| (vec3<i64>) -> vec3<i64>, | |
| (vec3<u32>) -> vec3<u32>, | |
| (vec3<u64>) -> vec3<u64>, | |
| (vec3<f32>) -> vec3<f32>, | |
| (vec3<f16>) -> vec3<f16>, | |
| (vec3<f64>) -> vec3<f64>, | |
| (vec4<{AbstractInt}>) -> vec4<{AbstractInt}>, | |
| (vec4<{AbstractFloat}>) -> vec4<{AbstractFloat}>, | |
| (vec4<i32>) -> vec4<i32>, | |
| (vec4<i64>) -> vec4<i64>, | |
| (vec4<u32>) -> vec4<u32>, | |
| (vec4<u64>) -> vec4<u64>, | |
| (vec4<f32>) -> vec4<f32>, | |
| (vec4<f16>) -> vec4<f16>, | |
| (vec4<f64>) -> vec4<f64>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG overloads after arg 0: List { | |
| rules: [ | |
| (f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG initial overloads for Saturate: List { | |
| rules: [ | |
| ({AbstractFloat}) -> {AbstractFloat}, | |
| (f32) -> f32, | |
| (f16) -> f16, | |
| (f64) -> f64, | |
| (vec2<{AbstractFloat}>) -> vec2<{AbstractFloat}>, | |
| (vec2<f32>) -> vec2<f32>, | |
| (vec2<f16>) -> vec2<f16>, | |
| (vec2<f64>) -> vec2<f64>, | |
| (vec3<{AbstractFloat}>) -> vec3<{AbstractFloat}>, | |
| (vec3<f32>) -> vec3<f32>, | |
| (vec3<f16>) -> vec3<f16>, | |
| (vec3<f64>) -> vec3<f64>, | |
| (vec4<{AbstractFloat}>) -> vec4<{AbstractFloat}>, | |
| (vec4<f32>) -> vec4<f32>, | |
| (vec4<f16>) -> vec4<f16>, | |
| (vec4<f64>) -> vec4<f64>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG overloads after arg 0: List { | |
| rules: [ | |
| (f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG var LocalVariable { name: Some("out"), ty: [25], init: Some([14]) } | |
| DEBUG initial overloads for Abs, List { | |
| rules: [ | |
| ({AbstractInt}) -> {AbstractInt}, | |
| ({AbstractFloat}) -> {AbstractFloat}, | |
| (i32) -> i32, | |
| (i64) -> i64, | |
| (u32) -> u32, | |
| (u64) -> u64, | |
| (f32) -> f32, | |
| (f16) -> f16, | |
| (f64) -> f64, | |
| (vec2<{AbstractInt}>) -> vec2<{AbstractInt}>, | |
| (vec2<{AbstractFloat}>) -> vec2<{AbstractFloat}>, | |
| (vec2<i32>) -> vec2<i32>, | |
| (vec2<i64>) -> vec2<i64>, | |
| (vec2<u32>) -> vec2<u32>, | |
| (vec2<u64>) -> vec2<u64>, | |
| (vec2<f32>) -> vec2<f32>, | |
| (vec2<f16>) -> vec2<f16>, | |
| (vec2<f64>) -> vec2<f64>, | |
| (vec3<{AbstractInt}>) -> vec3<{AbstractInt}>, | |
| (vec3<{AbstractFloat}>) -> vec3<{AbstractFloat}>, | |
| (vec3<i32>) -> vec3<i32>, | |
| (vec3<i64>) -> vec3<i64>, | |
| (vec3<u32>) -> vec3<u32>, | |
| (vec3<u64>) -> vec3<u64>, | |
| (vec3<f32>) -> vec3<f32>, | |
| (vec3<f16>) -> vec3<f16>, | |
| (vec3<f64>) -> vec3<f64>, | |
| (vec4<{AbstractInt}>) -> vec4<{AbstractInt}>, | |
| (vec4<{AbstractFloat}>) -> vec4<{AbstractFloat}>, | |
| (vec4<i32>) -> vec4<i32>, | |
| (vec4<i64>) -> vec4<i64>, | |
| (vec4<u32>) -> vec4<u32>, | |
| (vec4<u64>) -> vec4<u64>, | |
| (vec4<f32>) -> vec4<f32>, | |
| (vec4<f16>) -> vec4<f16>, | |
| (vec4<f64>) -> vec4<f64>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG overloads after arg 0 of type vec2<f32>: List { | |
| rules: [ | |
| (vec2<f32>) -> vec2<f32>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG initial overloads for Max, List { | |
| rules: [ | |
| ({AbstractInt}, {AbstractInt}) -> {AbstractInt}, | |
| ({AbstractFloat}, {AbstractFloat}) -> {AbstractFloat}, | |
| (i32, i32) -> i32, | |
| (i64, i64) -> i64, | |
| (u32, u32) -> u32, | |
| (u64, u64) -> u64, | |
| (f32, f32) -> f32, | |
| (f16, f16) -> f16, | |
| (f64, f64) -> f64, | |
| (vec2<{AbstractInt}>, vec2<{AbstractInt}>) -> vec2<{AbstractInt}>, | |
| (vec2<{AbstractFloat}>, vec2<{AbstractFloat}>) -> vec2<{AbstractFloat}>, | |
| (vec2<i32>, vec2<i32>) -> vec2<i32>, | |
| (vec2<i64>, vec2<i64>) -> vec2<i64>, | |
| (vec2<u32>, vec2<u32>) -> vec2<u32>, | |
| (vec2<u64>, vec2<u64>) -> vec2<u64>, | |
| (vec2<f32>, vec2<f32>) -> vec2<f32>, | |
| (vec2<f16>, vec2<f16>) -> vec2<f16>, | |
| (vec2<f64>, vec2<f64>) -> vec2<f64>, | |
| (vec3<{AbstractInt}>, vec3<{AbstractInt}>) -> vec3<{AbstractInt}>, | |
| (vec3<{AbstractFloat}>, vec3<{AbstractFloat}>) -> vec3<{AbstractFloat}>, | |
| (vec3<i32>, vec3<i32>) -> vec3<i32>, | |
| (vec3<i64>, vec3<i64>) -> vec3<i64>, | |
| (vec3<u32>, vec3<u32>) -> vec3<u32>, | |
| (vec3<u64>, vec3<u64>) -> vec3<u64>, | |
| (vec3<f32>, vec3<f32>) -> vec3<f32>, | |
| (vec3<f16>, vec3<f16>) -> vec3<f16>, | |
| (vec3<f64>, vec3<f64>) -> vec3<f64>, | |
| (vec4<{AbstractInt}>, vec4<{AbstractInt}>) -> vec4<{AbstractInt}>, | |
| (vec4<{AbstractFloat}>, vec4<{AbstractFloat}>) -> vec4<{AbstractFloat}>, | |
| (vec4<i32>, vec4<i32>) -> vec4<i32>, | |
| (vec4<i64>, vec4<i64>) -> vec4<i64>, | |
| (vec4<u32>, vec4<u32>) -> vec4<u32>, | |
| (vec4<u64>, vec4<u64>) -> vec4<u64>, | |
| (vec4<f32>, vec4<f32>) -> vec4<f32>, | |
| (vec4<f16>, vec4<f16>) -> vec4<f16>, | |
| (vec4<f64>, vec4<f64>) -> vec4<f64>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG overloads after arg 0 of type f32: List { | |
| rules: [ | |
| (f32, f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG overloads after arg 1 of type f32: List { | |
| rules: [ | |
| (f32, f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG initial overloads for Max, List { | |
| rules: [ | |
| ({AbstractInt}, {AbstractInt}) -> {AbstractInt}, | |
| ({AbstractFloat}, {AbstractFloat}) -> {AbstractFloat}, | |
| (i32, i32) -> i32, | |
| (i64, i64) -> i64, | |
| (u32, u32) -> u32, | |
| (u64, u64) -> u64, | |
| (f32, f32) -> f32, | |
| (f16, f16) -> f16, | |
| (f64, f64) -> f64, | |
| (vec2<{AbstractInt}>, vec2<{AbstractInt}>) -> vec2<{AbstractInt}>, | |
| (vec2<{AbstractFloat}>, vec2<{AbstractFloat}>) -> vec2<{AbstractFloat}>, | |
| (vec2<i32>, vec2<i32>) -> vec2<i32>, | |
| (vec2<i64>, vec2<i64>) -> vec2<i64>, | |
| (vec2<u32>, vec2<u32>) -> vec2<u32>, | |
| (vec2<u64>, vec2<u64>) -> vec2<u64>, | |
| (vec2<f32>, vec2<f32>) -> vec2<f32>, | |
| (vec2<f16>, vec2<f16>) -> vec2<f16>, | |
| (vec2<f64>, vec2<f64>) -> vec2<f64>, | |
| (vec3<{AbstractInt}>, vec3<{AbstractInt}>) -> vec3<{AbstractInt}>, | |
| (vec3<{AbstractFloat}>, vec3<{AbstractFloat}>) -> vec3<{AbstractFloat}>, | |
| (vec3<i32>, vec3<i32>) -> vec3<i32>, | |
| (vec3<i64>, vec3<i64>) -> vec3<i64>, | |
| (vec3<u32>, vec3<u32>) -> vec3<u32>, | |
| (vec3<u64>, vec3<u64>) -> vec3<u64>, | |
| (vec3<f32>, vec3<f32>) -> vec3<f32>, | |
| (vec3<f16>, vec3<f16>) -> vec3<f16>, | |
| (vec3<f64>, vec3<f64>) -> vec3<f64>, | |
| (vec4<{AbstractInt}>, vec4<{AbstractInt}>) -> vec4<{AbstractInt}>, | |
| (vec4<{AbstractFloat}>, vec4<{AbstractFloat}>) -> vec4<{AbstractFloat}>, | |
| (vec4<i32>, vec4<i32>) -> vec4<i32>, | |
| (vec4<i64>, vec4<i64>) -> vec4<i64>, | |
| (vec4<u32>, vec4<u32>) -> vec4<u32>, | |
| (vec4<u64>, vec4<u64>) -> vec4<u64>, | |
| (vec4<f32>, vec4<f32>) -> vec4<f32>, | |
| (vec4<f16>, vec4<f16>) -> vec4<f16>, | |
| (vec4<f64>, vec4<f64>) -> vec4<f64>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG overloads after arg 0 of type vec2<f32>: List { | |
| rules: [ | |
| (vec2<f32>, vec2<f32>) -> vec2<f32>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG overloads after arg 1 of type vec2<f32>: List { | |
| rules: [ | |
| (vec2<f32>, vec2<f32>) -> vec2<f32>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG initial overloads for Max, List { | |
| rules: [ | |
| ({AbstractInt}, {AbstractInt}) -> {AbstractInt}, | |
| ({AbstractFloat}, {AbstractFloat}) -> {AbstractFloat}, | |
| (i32, i32) -> i32, | |
| (i64, i64) -> i64, | |
| (u32, u32) -> u32, | |
| (u64, u64) -> u64, | |
| (f32, f32) -> f32, | |
| (f16, f16) -> f16, | |
| (f64, f64) -> f64, | |
| (vec2<{AbstractInt}>, vec2<{AbstractInt}>) -> vec2<{AbstractInt}>, | |
| (vec2<{AbstractFloat}>, vec2<{AbstractFloat}>) -> vec2<{AbstractFloat}>, | |
| (vec2<i32>, vec2<i32>) -> vec2<i32>, | |
| (vec2<i64>, vec2<i64>) -> vec2<i64>, | |
| (vec2<u32>, vec2<u32>) -> vec2<u32>, | |
| (vec2<u64>, vec2<u64>) -> vec2<u64>, | |
| (vec2<f32>, vec2<f32>) -> vec2<f32>, | |
| (vec2<f16>, vec2<f16>) -> vec2<f16>, | |
| (vec2<f64>, vec2<f64>) -> vec2<f64>, | |
| (vec3<{AbstractInt}>, vec3<{AbstractInt}>) -> vec3<{AbstractInt}>, | |
| (vec3<{AbstractFloat}>, vec3<{AbstractFloat}>) -> vec3<{AbstractFloat}>, | |
| (vec3<i32>, vec3<i32>) -> vec3<i32>, | |
| (vec3<i64>, vec3<i64>) -> vec3<i64>, | |
| (vec3<u32>, vec3<u32>) -> vec3<u32>, | |
| (vec3<u64>, vec3<u64>) -> vec3<u64>, | |
| (vec3<f32>, vec3<f32>) -> vec3<f32>, | |
| (vec3<f16>, vec3<f16>) -> vec3<f16>, | |
| (vec3<f64>, vec3<f64>) -> vec3<f64>, | |
| (vec4<{AbstractInt}>, vec4<{AbstractInt}>) -> vec4<{AbstractInt}>, | |
| (vec4<{AbstractFloat}>, vec4<{AbstractFloat}>) -> vec4<{AbstractFloat}>, | |
| (vec4<i32>, vec4<i32>) -> vec4<i32>, | |
| (vec4<i64>, vec4<i64>) -> vec4<i64>, | |
| (vec4<u32>, vec4<u32>) -> vec4<u32>, | |
| (vec4<u64>, vec4<u64>) -> vec4<u64>, | |
| (vec4<f32>, vec4<f32>) -> vec4<f32>, | |
| (vec4<f16>, vec4<f16>) -> vec4<f16>, | |
| (vec4<f64>, vec4<f64>) -> vec4<f64>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG overloads after arg 0 of type f32: List { | |
| rules: [ | |
| (f32, f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG overloads after arg 1 of type f32: List { | |
| rules: [ | |
| (f32, f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG initial overloads for Max, List { | |
| rules: [ | |
| ({AbstractInt}, {AbstractInt}) -> {AbstractInt}, | |
| ({AbstractFloat}, {AbstractFloat}) -> {AbstractFloat}, | |
| (i32, i32) -> i32, | |
| (i64, i64) -> i64, | |
| (u32, u32) -> u32, | |
| (u64, u64) -> u64, | |
| (f32, f32) -> f32, | |
| (f16, f16) -> f16, | |
| (f64, f64) -> f64, | |
| (vec2<{AbstractInt}>, vec2<{AbstractInt}>) -> vec2<{AbstractInt}>, | |
| (vec2<{AbstractFloat}>, vec2<{AbstractFloat}>) -> vec2<{AbstractFloat}>, | |
| (vec2<i32>, vec2<i32>) -> vec2<i32>, | |
| (vec2<i64>, vec2<i64>) -> vec2<i64>, | |
| (vec2<u32>, vec2<u32>) -> vec2<u32>, | |
| (vec2<u64>, vec2<u64>) -> vec2<u64>, | |
| (vec2<f32>, vec2<f32>) -> vec2<f32>, | |
| (vec2<f16>, vec2<f16>) -> vec2<f16>, | |
| (vec2<f64>, vec2<f64>) -> vec2<f64>, | |
| (vec3<{AbstractInt}>, vec3<{AbstractInt}>) -> vec3<{AbstractInt}>, | |
| (vec3<{AbstractFloat}>, vec3<{AbstractFloat}>) -> vec3<{AbstractFloat}>, | |
| (vec3<i32>, vec3<i32>) -> vec3<i32>, | |
| (vec3<i64>, vec3<i64>) -> vec3<i64>, | |
| (vec3<u32>, vec3<u32>) -> vec3<u32>, | |
| (vec3<u64>, vec3<u64>) -> vec3<u64>, | |
| (vec3<f32>, vec3<f32>) -> vec3<f32>, | |
| (vec3<f16>, vec3<f16>) -> vec3<f16>, | |
| (vec3<f64>, vec3<f64>) -> vec3<f64>, | |
| (vec4<{AbstractInt}>, vec4<{AbstractInt}>) -> vec4<{AbstractInt}>, | |
| (vec4<{AbstractFloat}>, vec4<{AbstractFloat}>) -> vec4<{AbstractFloat}>, | |
| (vec4<i32>, vec4<i32>) -> vec4<i32>, | |
| (vec4<i64>, vec4<i64>) -> vec4<i64>, | |
| (vec4<u32>, vec4<u32>) -> vec4<u32>, | |
| (vec4<u64>, vec4<u64>) -> vec4<u64>, | |
| (vec4<f32>, vec4<f32>) -> vec4<f32>, | |
| (vec4<f16>, vec4<f16>) -> vec4<f16>, | |
| (vec4<f64>, vec4<f64>) -> vec4<f64>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG overloads after arg 0 of type f32: List { | |
| rules: [ | |
| (f32, f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG overloads after arg 1 of type f32: List { | |
| rules: [ | |
| (f32, f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG initial overloads for Max, List { | |
| rules: [ | |
| ({AbstractInt}, {AbstractInt}) -> {AbstractInt}, | |
| ({AbstractFloat}, {AbstractFloat}) -> {AbstractFloat}, | |
| (i32, i32) -> i32, | |
| (i64, i64) -> i64, | |
| (u32, u32) -> u32, | |
| (u64, u64) -> u64, | |
| (f32, f32) -> f32, | |
| (f16, f16) -> f16, | |
| (f64, f64) -> f64, | |
| (vec2<{AbstractInt}>, vec2<{AbstractInt}>) -> vec2<{AbstractInt}>, | |
| (vec2<{AbstractFloat}>, vec2<{AbstractFloat}>) -> vec2<{AbstractFloat}>, | |
| (vec2<i32>, vec2<i32>) -> vec2<i32>, | |
| (vec2<i64>, vec2<i64>) -> vec2<i64>, | |
| (vec2<u32>, vec2<u32>) -> vec2<u32>, | |
| (vec2<u64>, vec2<u64>) -> vec2<u64>, | |
| (vec2<f32>, vec2<f32>) -> vec2<f32>, | |
| (vec2<f16>, vec2<f16>) -> vec2<f16>, | |
| (vec2<f64>, vec2<f64>) -> vec2<f64>, | |
| (vec3<{AbstractInt}>, vec3<{AbstractInt}>) -> vec3<{AbstractInt}>, | |
| (vec3<{AbstractFloat}>, vec3<{AbstractFloat}>) -> vec3<{AbstractFloat}>, | |
| (vec3<i32>, vec3<i32>) -> vec3<i32>, | |
| (vec3<i64>, vec3<i64>) -> vec3<i64>, | |
| (vec3<u32>, vec3<u32>) -> vec3<u32>, | |
| (vec3<u64>, vec3<u64>) -> vec3<u64>, | |
| (vec3<f32>, vec3<f32>) -> vec3<f32>, | |
| (vec3<f16>, vec3<f16>) -> vec3<f16>, | |
| (vec3<f64>, vec3<f64>) -> vec3<f64>, | |
| (vec4<{AbstractInt}>, vec4<{AbstractInt}>) -> vec4<{AbstractInt}>, | |
| (vec4<{AbstractFloat}>, vec4<{AbstractFloat}>) -> vec4<{AbstractFloat}>, | |
| (vec4<i32>, vec4<i32>) -> vec4<i32>, | |
| (vec4<i64>, vec4<i64>) -> vec4<i64>, | |
| (vec4<u32>, vec4<u32>) -> vec4<u32>, | |
| (vec4<u64>, vec4<u64>) -> vec4<u64>, | |
| (vec4<f32>, vec4<f32>) -> vec4<f32>, | |
| (vec4<f16>, vec4<f16>) -> vec4<f16>, | |
| (vec4<f64>, vec4<f64>) -> vec4<f64>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG overloads after arg 0 of type f32: List { | |
| rules: [ | |
| (f32, f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG overloads after arg 1 of type f32: List { | |
| rules: [ | |
| (f32, f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG initial overloads for Atan2, List { | |
| rules: [ | |
| ({AbstractFloat}, {AbstractFloat}) -> {AbstractFloat}, | |
| (f32, f32) -> f32, | |
| (f16, f16) -> f16, | |
| (f64, f64) -> f64, | |
| (vec2<{AbstractFloat}>, vec2<{AbstractFloat}>) -> vec2<{AbstractFloat}>, | |
| (vec2<f32>, vec2<f32>) -> vec2<f32>, | |
| (vec2<f16>, vec2<f16>) -> vec2<f16>, | |
| (vec2<f64>, vec2<f64>) -> vec2<f64>, | |
| (vec3<{AbstractFloat}>, vec3<{AbstractFloat}>) -> vec3<{AbstractFloat}>, | |
| (vec3<f32>, vec3<f32>) -> vec3<f32>, | |
| (vec3<f16>, vec3<f16>) -> vec3<f16>, | |
| (vec3<f64>, vec3<f64>) -> vec3<f64>, | |
| (vec4<{AbstractFloat}>, vec4<{AbstractFloat}>) -> vec4<{AbstractFloat}>, | |
| (vec4<f32>, vec4<f32>) -> vec4<f32>, | |
| (vec4<f16>, vec4<f16>) -> vec4<f16>, | |
| (vec4<f64>, vec4<f64>) -> vec4<f64>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG overloads after arg 0 of type f32: List { | |
| rules: [ | |
| (f32, f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG overloads after arg 1 of type f32: List { | |
| rules: [ | |
| (f32, f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG initial overloads for Floor, List { | |
| rules: [ | |
| ({AbstractFloat}) -> {AbstractFloat}, | |
| (f32) -> f32, | |
| (f16) -> f16, | |
| (f64) -> f64, | |
| (vec2<{AbstractFloat}>) -> vec2<{AbstractFloat}>, | |
| (vec2<f32>) -> vec2<f32>, | |
| (vec2<f16>) -> vec2<f16>, | |
| (vec2<f64>) -> vec2<f64>, | |
| (vec3<{AbstractFloat}>) -> vec3<{AbstractFloat}>, | |
| (vec3<f32>) -> vec3<f32>, | |
| (vec3<f16>) -> vec3<f16>, | |
| (vec3<f64>) -> vec3<f64>, | |
| (vec4<{AbstractFloat}>) -> vec4<{AbstractFloat}>, | |
| (vec4<f32>) -> vec4<f32>, | |
| (vec4<f16>) -> vec4<f16>, | |
| (vec4<f64>) -> vec4<f64>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG overloads after arg 0 of type f32: List { | |
| rules: [ | |
| (f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG initial overloads for Saturate, List { | |
| rules: [ | |
| ({AbstractFloat}) -> {AbstractFloat}, | |
| (f32) -> f32, | |
| (f16) -> f16, | |
| (f64) -> f64, | |
| (vec2<{AbstractFloat}>) -> vec2<{AbstractFloat}>, | |
| (vec2<f32>) -> vec2<f32>, | |
| (vec2<f16>) -> vec2<f16>, | |
| (vec2<f64>) -> vec2<f64>, | |
| (vec3<{AbstractFloat}>) -> vec3<{AbstractFloat}>, | |
| (vec3<f32>) -> vec3<f32>, | |
| (vec3<f16>) -> vec3<f16>, | |
| (vec3<f64>) -> vec3<f64>, | |
| (vec4<{AbstractFloat}>) -> vec4<{AbstractFloat}>, | |
| (vec4<f32>) -> vec4<f32>, | |
| (vec4<f16>) -> vec4<f16>, | |
| (vec4<f64>) -> vec4<f64>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG overloads after arg 0 of type f32: List { | |
| rules: [ | |
| (f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG initial overloads for Mix, [ | |
| ({AbstractFloat}, {AbstractFloat}, {AbstractFloat}) -> {AbstractFloat}, | |
| ({AbstractFloat}, {AbstractFloat}, {AbstractFloat}) -> {AbstractFloat}, | |
| (vec2<{AbstractFloat}>, vec2<{AbstractFloat}>, vec2<{AbstractFloat}>) -> vec2<{AbstractFloat}>, | |
| (vec2<{AbstractFloat}>, vec2<{AbstractFloat}>, {AbstractFloat}) -> vec2<{AbstractFloat}>, | |
| (vec3<{AbstractFloat}>, vec3<{AbstractFloat}>, vec3<{AbstractFloat}>) -> vec3<{AbstractFloat}>, | |
| (vec3<{AbstractFloat}>, vec3<{AbstractFloat}>, {AbstractFloat}) -> vec3<{AbstractFloat}>, | |
| (vec4<{AbstractFloat}>, vec4<{AbstractFloat}>, vec4<{AbstractFloat}>) -> vec4<{AbstractFloat}>, | |
| (vec4<{AbstractFloat}>, vec4<{AbstractFloat}>, {AbstractFloat}) -> vec4<{AbstractFloat}>, | |
| (f32, f32, f32) -> f32, | |
| (f32, f32, f32) -> f32, | |
| (vec2<f32>, vec2<f32>, vec2<f32>) -> vec2<f32>, | |
| (vec2<f32>, vec2<f32>, f32) -> vec2<f32>, | |
| (vec3<f32>, vec3<f32>, vec3<f32>) -> vec3<f32>, | |
| (vec3<f32>, vec3<f32>, f32) -> vec3<f32>, | |
| (vec4<f32>, vec4<f32>, vec4<f32>) -> vec4<f32>, | |
| (vec4<f32>, vec4<f32>, f32) -> vec4<f32>, | |
| (f16, f16, f16) -> f16, | |
| (f16, f16, f16) -> f16, | |
| (vec2<f16>, vec2<f16>, vec2<f16>) -> vec2<f16>, | |
| (vec2<f16>, vec2<f16>, f16) -> vec2<f16>, | |
| (vec3<f16>, vec3<f16>, vec3<f16>) -> vec3<f16>, | |
| (vec3<f16>, vec3<f16>, f16) -> vec3<f16>, | |
| (vec4<f16>, vec4<f16>, vec4<f16>) -> vec4<f16>, | |
| (vec4<f16>, vec4<f16>, f16) -> vec4<f16>, | |
| (f64, f64, f64) -> f64, | |
| (f64, f64, f64) -> f64, | |
| (vec2<f64>, vec2<f64>, vec2<f64>) -> vec2<f64>, | |
| (vec2<f64>, vec2<f64>, f64) -> vec2<f64>, | |
| (vec3<f64>, vec3<f64>, vec3<f64>) -> vec3<f64>, | |
| (vec3<f64>, vec3<f64>, f64) -> vec3<f64>, | |
| (vec4<f64>, vec4<f64>, vec4<f64>) -> vec4<f64>, | |
| (vec4<f64>, vec4<f64>, f64) -> vec4<f64>, | |
| ] | |
| DEBUG arg 0 of type vec4<f32> | |
| DEBUG considering rule ({AbstractFloat}, {AbstractFloat}, {AbstractFloat}) -> {AbstractFloat} | |
| DEBUG no conversion possible | |
| DEBUG considering rule ({AbstractFloat}, {AbstractFloat}, {AbstractFloat}) -> {AbstractFloat} | |
| DEBUG no conversion possible | |
| DEBUG considering rule (vec2<{AbstractFloat}>, vec2<{AbstractFloat}>, vec2<{AbstractFloat}>) -> vec2<{AbstractFloat}> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (vec2<{AbstractFloat}>, vec2<{AbstractFloat}>, {AbstractFloat}) -> vec2<{AbstractFloat}> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (vec3<{AbstractFloat}>, vec3<{AbstractFloat}>, vec3<{AbstractFloat}>) -> vec3<{AbstractFloat}> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (vec3<{AbstractFloat}>, vec3<{AbstractFloat}>, {AbstractFloat}) -> vec3<{AbstractFloat}> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (vec4<{AbstractFloat}>, vec4<{AbstractFloat}>, vec4<{AbstractFloat}>) -> vec4<{AbstractFloat}> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (vec4<{AbstractFloat}>, vec4<{AbstractFloat}>, {AbstractFloat}) -> vec4<{AbstractFloat}> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (f32, f32, f32) -> f32 | |
| DEBUG no conversion possible | |
| DEBUG considering rule (f32, f32, f32) -> f32 | |
| DEBUG no conversion possible | |
| DEBUG considering rule (vec2<f32>, vec2<f32>, vec2<f32>) -> vec2<f32> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (vec2<f32>, vec2<f32>, f32) -> vec2<f32> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (vec3<f32>, vec3<f32>, vec3<f32>) -> vec3<f32> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (vec3<f32>, vec3<f32>, f32) -> vec3<f32> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (vec4<f32>, vec4<f32>, vec4<f32>) -> vec4<f32> | |
| DEBUG types are equivalent | |
| DEBUG considering rule (vec4<f32>, vec4<f32>, f32) -> vec4<f32> | |
| DEBUG types are equivalent | |
| DEBUG considering rule (f16, f16, f16) -> f16 | |
| DEBUG no conversion possible | |
| DEBUG considering rule (f16, f16, f16) -> f16 | |
| DEBUG no conversion possible | |
| DEBUG considering rule (vec2<f16>, vec2<f16>, vec2<f16>) -> vec2<f16> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (vec2<f16>, vec2<f16>, f16) -> vec2<f16> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (vec3<f16>, vec3<f16>, vec3<f16>) -> vec3<f16> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (vec3<f16>, vec3<f16>, f16) -> vec3<f16> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (vec4<f16>, vec4<f16>, vec4<f16>) -> vec4<f16> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (vec4<f16>, vec4<f16>, f16) -> vec4<f16> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (f64, f64, f64) -> f64 | |
| DEBUG no conversion possible | |
| DEBUG considering rule (f64, f64, f64) -> f64 | |
| DEBUG no conversion possible | |
| DEBUG considering rule (vec2<f64>, vec2<f64>, vec2<f64>) -> vec2<f64> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (vec2<f64>, vec2<f64>, f64) -> vec2<f64> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (vec3<f64>, vec3<f64>, vec3<f64>) -> vec3<f64> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (vec3<f64>, vec3<f64>, f64) -> vec3<f64> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (vec4<f64>, vec4<f64>, vec4<f64>) -> vec4<f64> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (vec4<f64>, vec4<f64>, f64) -> vec4<f64> | |
| DEBUG no conversion possible | |
| DEBUG overloads after arg 0 of type vec4<f32>: [ | |
| (vec4<f32>, vec4<f32>, vec4<f32>) -> vec4<f32>, | |
| (vec4<f32>, vec4<f32>, f32) -> vec4<f32>, | |
| ] | |
| DEBUG arg 1 of type vec4<f32> | |
| DEBUG considering rule (vec4<f32>, vec4<f32>, vec4<f32>) -> vec4<f32> | |
| DEBUG types are equivalent | |
| DEBUG considering rule (vec4<f32>, vec4<f32>, f32) -> vec4<f32> | |
| DEBUG types are equivalent | |
| DEBUG overloads after arg 1 of type vec4<f32>: [ | |
| (vec4<f32>, vec4<f32>, vec4<f32>) -> vec4<f32>, | |
| (vec4<f32>, vec4<f32>, f32) -> vec4<f32>, | |
| ] | |
| DEBUG initial overloads for Saturate, List { | |
| rules: [ | |
| ({AbstractFloat}) -> {AbstractFloat}, | |
| (f32) -> f32, | |
| (f16) -> f16, | |
| (f64) -> f64, | |
| (vec2<{AbstractFloat}>) -> vec2<{AbstractFloat}>, | |
| (vec2<f32>) -> vec2<f32>, | |
| (vec2<f16>) -> vec2<f16>, | |
| (vec2<f64>) -> vec2<f64>, | |
| (vec3<{AbstractFloat}>) -> vec3<{AbstractFloat}>, | |
| (vec3<f32>) -> vec3<f32>, | |
| (vec3<f16>) -> vec3<f16>, | |
| (vec3<f64>) -> vec3<f64>, | |
| (vec4<{AbstractFloat}>) -> vec4<{AbstractFloat}>, | |
| (vec4<f32>) -> vec4<f32>, | |
| (vec4<f16>) -> vec4<f16>, | |
| (vec4<f64>) -> vec4<f64>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG overloads after arg 0 of type f32: List { | |
| rules: [ | |
| (f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG var LocalVariable { name: Some("inner_sdf"), ty: [0], init: Some([136]) } | |
| DEBUG var LocalVariable { name: Some("color"), ty: [2], init: None } | |
| DEBUG var LocalVariable { name: Some("border_color"), ty: [2], init: None } | |
| DEBUG var LocalVariable { name: Some("t"), ty: [0], init: Some([171]) } | |
| DEBUG var LocalVariable { name: Some("max_t"), ty: [0], init: Some([173]) } | |
| DEBUG var LocalVariable { name: Some("dash_velocity"), ty: [0], init: Some([178]) } | |
| DEBUG initial overloads for Abs: List { | |
| rules: [ | |
| ({AbstractInt}) -> {AbstractInt}, | |
| ({AbstractFloat}) -> {AbstractFloat}, | |
| (i32) -> i32, | |
| (i64) -> i64, | |
| (u32) -> u32, | |
| (u64) -> u64, | |
| (f32) -> f32, | |
| (f16) -> f16, | |
| (f64) -> f64, | |
| (vec2<{AbstractInt}>) -> vec2<{AbstractInt}>, | |
| (vec2<{AbstractFloat}>) -> vec2<{AbstractFloat}>, | |
| (vec2<i32>) -> vec2<i32>, | |
| (vec2<i64>) -> vec2<i64>, | |
| (vec2<u32>) -> vec2<u32>, | |
| (vec2<u64>) -> vec2<u64>, | |
| (vec2<f32>) -> vec2<f32>, | |
| (vec2<f16>) -> vec2<f16>, | |
| (vec2<f64>) -> vec2<f64>, | |
| (vec3<{AbstractInt}>) -> vec3<{AbstractInt}>, | |
| (vec3<{AbstractFloat}>) -> vec3<{AbstractFloat}>, | |
| (vec3<i32>) -> vec3<i32>, | |
| (vec3<i64>) -> vec3<i64>, | |
| (vec3<u32>) -> vec3<u32>, | |
| (vec3<u64>) -> vec3<u64>, | |
| (vec3<f32>) -> vec3<f32>, | |
| (vec3<f16>) -> vec3<f16>, | |
| (vec3<f64>) -> vec3<f64>, | |
| (vec4<{AbstractInt}>) -> vec4<{AbstractInt}>, | |
| (vec4<{AbstractFloat}>) -> vec4<{AbstractFloat}>, | |
| (vec4<i32>) -> vec4<i32>, | |
| (vec4<i64>) -> vec4<i64>, | |
| (vec4<u32>) -> vec4<u32>, | |
| (vec4<u64>) -> vec4<u64>, | |
| (vec4<f32>) -> vec4<f32>, | |
| (vec4<f16>) -> vec4<f16>, | |
| (vec4<f64>) -> vec4<f64>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG overloads after arg 0: List { | |
| rules: [ | |
| (vec2<f32>) -> vec2<f32>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG initial overloads for Max: List { | |
| rules: [ | |
| ({AbstractInt}, {AbstractInt}) -> {AbstractInt}, | |
| ({AbstractFloat}, {AbstractFloat}) -> {AbstractFloat}, | |
| (i32, i32) -> i32, | |
| (i64, i64) -> i64, | |
| (u32, u32) -> u32, | |
| (u64, u64) -> u64, | |
| (f32, f32) -> f32, | |
| (f16, f16) -> f16, | |
| (f64, f64) -> f64, | |
| (vec2<{AbstractInt}>, vec2<{AbstractInt}>) -> vec2<{AbstractInt}>, | |
| (vec2<{AbstractFloat}>, vec2<{AbstractFloat}>) -> vec2<{AbstractFloat}>, | |
| (vec2<i32>, vec2<i32>) -> vec2<i32>, | |
| (vec2<i64>, vec2<i64>) -> vec2<i64>, | |
| (vec2<u32>, vec2<u32>) -> vec2<u32>, | |
| (vec2<u64>, vec2<u64>) -> vec2<u64>, | |
| (vec2<f32>, vec2<f32>) -> vec2<f32>, | |
| (vec2<f16>, vec2<f16>) -> vec2<f16>, | |
| (vec2<f64>, vec2<f64>) -> vec2<f64>, | |
| (vec3<{AbstractInt}>, vec3<{AbstractInt}>) -> vec3<{AbstractInt}>, | |
| (vec3<{AbstractFloat}>, vec3<{AbstractFloat}>) -> vec3<{AbstractFloat}>, | |
| (vec3<i32>, vec3<i32>) -> vec3<i32>, | |
| (vec3<i64>, vec3<i64>) -> vec3<i64>, | |
| (vec3<u32>, vec3<u32>) -> vec3<u32>, | |
| (vec3<u64>, vec3<u64>) -> vec3<u64>, | |
| (vec3<f32>, vec3<f32>) -> vec3<f32>, | |
| (vec3<f16>, vec3<f16>) -> vec3<f16>, | |
| (vec3<f64>, vec3<f64>) -> vec3<f64>, | |
| (vec4<{AbstractInt}>, vec4<{AbstractInt}>) -> vec4<{AbstractInt}>, | |
| (vec4<{AbstractFloat}>, vec4<{AbstractFloat}>) -> vec4<{AbstractFloat}>, | |
| (vec4<i32>, vec4<i32>) -> vec4<i32>, | |
| (vec4<i64>, vec4<i64>) -> vec4<i64>, | |
| (vec4<u32>, vec4<u32>) -> vec4<u32>, | |
| (vec4<u64>, vec4<u64>) -> vec4<u64>, | |
| (vec4<f32>, vec4<f32>) -> vec4<f32>, | |
| (vec4<f16>, vec4<f16>) -> vec4<f16>, | |
| (vec4<f64>, vec4<f64>) -> vec4<f64>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG overloads after arg 0: List { | |
| rules: [ | |
| (f32, f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG overloads after arg 1: List { | |
| rules: [ | |
| (f32, f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG initial overloads for Max: List { | |
| rules: [ | |
| ({AbstractInt}, {AbstractInt}) -> {AbstractInt}, | |
| ({AbstractFloat}, {AbstractFloat}) -> {AbstractFloat}, | |
| (i32, i32) -> i32, | |
| (i64, i64) -> i64, | |
| (u32, u32) -> u32, | |
| (u64, u64) -> u64, | |
| (f32, f32) -> f32, | |
| (f16, f16) -> f16, | |
| (f64, f64) -> f64, | |
| (vec2<{AbstractInt}>, vec2<{AbstractInt}>) -> vec2<{AbstractInt}>, | |
| (vec2<{AbstractFloat}>, vec2<{AbstractFloat}>) -> vec2<{AbstractFloat}>, | |
| (vec2<i32>, vec2<i32>) -> vec2<i32>, | |
| (vec2<i64>, vec2<i64>) -> vec2<i64>, | |
| (vec2<u32>, vec2<u32>) -> vec2<u32>, | |
| (vec2<u64>, vec2<u64>) -> vec2<u64>, | |
| (vec2<f32>, vec2<f32>) -> vec2<f32>, | |
| (vec2<f16>, vec2<f16>) -> vec2<f16>, | |
| (vec2<f64>, vec2<f64>) -> vec2<f64>, | |
| (vec3<{AbstractInt}>, vec3<{AbstractInt}>) -> vec3<{AbstractInt}>, | |
| (vec3<{AbstractFloat}>, vec3<{AbstractFloat}>) -> vec3<{AbstractFloat}>, | |
| (vec3<i32>, vec3<i32>) -> vec3<i32>, | |
| (vec3<i64>, vec3<i64>) -> vec3<i64>, | |
| (vec3<u32>, vec3<u32>) -> vec3<u32>, | |
| (vec3<u64>, vec3<u64>) -> vec3<u64>, | |
| (vec3<f32>, vec3<f32>) -> vec3<f32>, | |
| (vec3<f16>, vec3<f16>) -> vec3<f16>, | |
| (vec3<f64>, vec3<f64>) -> vec3<f64>, | |
| (vec4<{AbstractInt}>, vec4<{AbstractInt}>) -> vec4<{AbstractInt}>, | |
| (vec4<{AbstractFloat}>, vec4<{AbstractFloat}>) -> vec4<{AbstractFloat}>, | |
| (vec4<i32>, vec4<i32>) -> vec4<i32>, | |
| (vec4<i64>, vec4<i64>) -> vec4<i64>, | |
| (vec4<u32>, vec4<u32>) -> vec4<u32>, | |
| (vec4<u64>, vec4<u64>) -> vec4<u64>, | |
| (vec4<f32>, vec4<f32>) -> vec4<f32>, | |
| (vec4<f16>, vec4<f16>) -> vec4<f16>, | |
| (vec4<f64>, vec4<f64>) -> vec4<f64>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG overloads after arg 0: List { | |
| rules: [ | |
| (vec2<f32>, vec2<f32>) -> vec2<f32>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG overloads after arg 1: List { | |
| rules: [ | |
| (vec2<f32>, vec2<f32>) -> vec2<f32>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG initial overloads for Max: List { | |
| rules: [ | |
| ({AbstractInt}, {AbstractInt}) -> {AbstractInt}, | |
| ({AbstractFloat}, {AbstractFloat}) -> {AbstractFloat}, | |
| (i32, i32) -> i32, | |
| (i64, i64) -> i64, | |
| (u32, u32) -> u32, | |
| (u64, u64) -> u64, | |
| (f32, f32) -> f32, | |
| (f16, f16) -> f16, | |
| (f64, f64) -> f64, | |
| (vec2<{AbstractInt}>, vec2<{AbstractInt}>) -> vec2<{AbstractInt}>, | |
| (vec2<{AbstractFloat}>, vec2<{AbstractFloat}>) -> vec2<{AbstractFloat}>, | |
| (vec2<i32>, vec2<i32>) -> vec2<i32>, | |
| (vec2<i64>, vec2<i64>) -> vec2<i64>, | |
| (vec2<u32>, vec2<u32>) -> vec2<u32>, | |
| (vec2<u64>, vec2<u64>) -> vec2<u64>, | |
| (vec2<f32>, vec2<f32>) -> vec2<f32>, | |
| (vec2<f16>, vec2<f16>) -> vec2<f16>, | |
| (vec2<f64>, vec2<f64>) -> vec2<f64>, | |
| (vec3<{AbstractInt}>, vec3<{AbstractInt}>) -> vec3<{AbstractInt}>, | |
| (vec3<{AbstractFloat}>, vec3<{AbstractFloat}>) -> vec3<{AbstractFloat}>, | |
| (vec3<i32>, vec3<i32>) -> vec3<i32>, | |
| (vec3<i64>, vec3<i64>) -> vec3<i64>, | |
| (vec3<u32>, vec3<u32>) -> vec3<u32>, | |
| (vec3<u64>, vec3<u64>) -> vec3<u64>, | |
| (vec3<f32>, vec3<f32>) -> vec3<f32>, | |
| (vec3<f16>, vec3<f16>) -> vec3<f16>, | |
| (vec3<f64>, vec3<f64>) -> vec3<f64>, | |
| (vec4<{AbstractInt}>, vec4<{AbstractInt}>) -> vec4<{AbstractInt}>, | |
| (vec4<{AbstractFloat}>, vec4<{AbstractFloat}>) -> vec4<{AbstractFloat}>, | |
| (vec4<i32>, vec4<i32>) -> vec4<i32>, | |
| (vec4<i64>, vec4<i64>) -> vec4<i64>, | |
| (vec4<u32>, vec4<u32>) -> vec4<u32>, | |
| (vec4<u64>, vec4<u64>) -> vec4<u64>, | |
| (vec4<f32>, vec4<f32>) -> vec4<f32>, | |
| (vec4<f16>, vec4<f16>) -> vec4<f16>, | |
| (vec4<f64>, vec4<f64>) -> vec4<f64>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG overloads after arg 0: List { | |
| rules: [ | |
| (f32, f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG overloads after arg 1: List { | |
| rules: [ | |
| (f32, f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG initial overloads for Max: List { | |
| rules: [ | |
| ({AbstractInt}, {AbstractInt}) -> {AbstractInt}, | |
| ({AbstractFloat}, {AbstractFloat}) -> {AbstractFloat}, | |
| (i32, i32) -> i32, | |
| (i64, i64) -> i64, | |
| (u32, u32) -> u32, | |
| (u64, u64) -> u64, | |
| (f32, f32) -> f32, | |
| (f16, f16) -> f16, | |
| (f64, f64) -> f64, | |
| (vec2<{AbstractInt}>, vec2<{AbstractInt}>) -> vec2<{AbstractInt}>, | |
| (vec2<{AbstractFloat}>, vec2<{AbstractFloat}>) -> vec2<{AbstractFloat}>, | |
| (vec2<i32>, vec2<i32>) -> vec2<i32>, | |
| (vec2<i64>, vec2<i64>) -> vec2<i64>, | |
| (vec2<u32>, vec2<u32>) -> vec2<u32>, | |
| (vec2<u64>, vec2<u64>) -> vec2<u64>, | |
| (vec2<f32>, vec2<f32>) -> vec2<f32>, | |
| (vec2<f16>, vec2<f16>) -> vec2<f16>, | |
| (vec2<f64>, vec2<f64>) -> vec2<f64>, | |
| (vec3<{AbstractInt}>, vec3<{AbstractInt}>) -> vec3<{AbstractInt}>, | |
| (vec3<{AbstractFloat}>, vec3<{AbstractFloat}>) -> vec3<{AbstractFloat}>, | |
| (vec3<i32>, vec3<i32>) -> vec3<i32>, | |
| (vec3<i64>, vec3<i64>) -> vec3<i64>, | |
| (vec3<u32>, vec3<u32>) -> vec3<u32>, | |
| (vec3<u64>, vec3<u64>) -> vec3<u64>, | |
| (vec3<f32>, vec3<f32>) -> vec3<f32>, | |
| (vec3<f16>, vec3<f16>) -> vec3<f16>, | |
| (vec3<f64>, vec3<f64>) -> vec3<f64>, | |
| (vec4<{AbstractInt}>, vec4<{AbstractInt}>) -> vec4<{AbstractInt}>, | |
| (vec4<{AbstractFloat}>, vec4<{AbstractFloat}>) -> vec4<{AbstractFloat}>, | |
| (vec4<i32>, vec4<i32>) -> vec4<i32>, | |
| (vec4<i64>, vec4<i64>) -> vec4<i64>, | |
| (vec4<u32>, vec4<u32>) -> vec4<u32>, | |
| (vec4<u64>, vec4<u64>) -> vec4<u64>, | |
| (vec4<f32>, vec4<f32>) -> vec4<f32>, | |
| (vec4<f16>, vec4<f16>) -> vec4<f16>, | |
| (vec4<f64>, vec4<f64>) -> vec4<f64>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG overloads after arg 0: List { | |
| rules: [ | |
| (f32, f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG overloads after arg 1: List { | |
| rules: [ | |
| (f32, f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG initial overloads for Max: List { | |
| rules: [ | |
| ({AbstractInt}, {AbstractInt}) -> {AbstractInt}, | |
| ({AbstractFloat}, {AbstractFloat}) -> {AbstractFloat}, | |
| (i32, i32) -> i32, | |
| (i64, i64) -> i64, | |
| (u32, u32) -> u32, | |
| (u64, u64) -> u64, | |
| (f32, f32) -> f32, | |
| (f16, f16) -> f16, | |
| (f64, f64) -> f64, | |
| (vec2<{AbstractInt}>, vec2<{AbstractInt}>) -> vec2<{AbstractInt}>, | |
| (vec2<{AbstractFloat}>, vec2<{AbstractFloat}>) -> vec2<{AbstractFloat}>, | |
| (vec2<i32>, vec2<i32>) -> vec2<i32>, | |
| (vec2<i64>, vec2<i64>) -> vec2<i64>, | |
| (vec2<u32>, vec2<u32>) -> vec2<u32>, | |
| (vec2<u64>, vec2<u64>) -> vec2<u64>, | |
| (vec2<f32>, vec2<f32>) -> vec2<f32>, | |
| (vec2<f16>, vec2<f16>) -> vec2<f16>, | |
| (vec2<f64>, vec2<f64>) -> vec2<f64>, | |
| (vec3<{AbstractInt}>, vec3<{AbstractInt}>) -> vec3<{AbstractInt}>, | |
| (vec3<{AbstractFloat}>, vec3<{AbstractFloat}>) -> vec3<{AbstractFloat}>, | |
| (vec3<i32>, vec3<i32>) -> vec3<i32>, | |
| (vec3<i64>, vec3<i64>) -> vec3<i64>, | |
| (vec3<u32>, vec3<u32>) -> vec3<u32>, | |
| (vec3<u64>, vec3<u64>) -> vec3<u64>, | |
| (vec3<f32>, vec3<f32>) -> vec3<f32>, | |
| (vec3<f16>, vec3<f16>) -> vec3<f16>, | |
| (vec3<f64>, vec3<f64>) -> vec3<f64>, | |
| (vec4<{AbstractInt}>, vec4<{AbstractInt}>) -> vec4<{AbstractInt}>, | |
| (vec4<{AbstractFloat}>, vec4<{AbstractFloat}>) -> vec4<{AbstractFloat}>, | |
| (vec4<i32>, vec4<i32>) -> vec4<i32>, | |
| (vec4<i64>, vec4<i64>) -> vec4<i64>, | |
| (vec4<u32>, vec4<u32>) -> vec4<u32>, | |
| (vec4<u64>, vec4<u64>) -> vec4<u64>, | |
| (vec4<f32>, vec4<f32>) -> vec4<f32>, | |
| (vec4<f16>, vec4<f16>) -> vec4<f16>, | |
| (vec4<f64>, vec4<f64>) -> vec4<f64>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG overloads after arg 0: List { | |
| rules: [ | |
| (f32, f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG overloads after arg 1: List { | |
| rules: [ | |
| (f32, f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG initial overloads for Atan2: List { | |
| rules: [ | |
| ({AbstractFloat}, {AbstractFloat}) -> {AbstractFloat}, | |
| (f32, f32) -> f32, | |
| (f16, f16) -> f16, | |
| (f64, f64) -> f64, | |
| (vec2<{AbstractFloat}>, vec2<{AbstractFloat}>) -> vec2<{AbstractFloat}>, | |
| (vec2<f32>, vec2<f32>) -> vec2<f32>, | |
| (vec2<f16>, vec2<f16>) -> vec2<f16>, | |
| (vec2<f64>, vec2<f64>) -> vec2<f64>, | |
| (vec3<{AbstractFloat}>, vec3<{AbstractFloat}>) -> vec3<{AbstractFloat}>, | |
| (vec3<f32>, vec3<f32>) -> vec3<f32>, | |
| (vec3<f16>, vec3<f16>) -> vec3<f16>, | |
| (vec3<f64>, vec3<f64>) -> vec3<f64>, | |
| (vec4<{AbstractFloat}>, vec4<{AbstractFloat}>) -> vec4<{AbstractFloat}>, | |
| (vec4<f32>, vec4<f32>) -> vec4<f32>, | |
| (vec4<f16>, vec4<f16>) -> vec4<f16>, | |
| (vec4<f64>, vec4<f64>) -> vec4<f64>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG overloads after arg 0: List { | |
| rules: [ | |
| (f32, f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG overloads after arg 1: List { | |
| rules: [ | |
| (f32, f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG initial overloads for Floor: List { | |
| rules: [ | |
| ({AbstractFloat}) -> {AbstractFloat}, | |
| (f32) -> f32, | |
| (f16) -> f16, | |
| (f64) -> f64, | |
| (vec2<{AbstractFloat}>) -> vec2<{AbstractFloat}>, | |
| (vec2<f32>) -> vec2<f32>, | |
| (vec2<f16>) -> vec2<f16>, | |
| (vec2<f64>) -> vec2<f64>, | |
| (vec3<{AbstractFloat}>) -> vec3<{AbstractFloat}>, | |
| (vec3<f32>) -> vec3<f32>, | |
| (vec3<f16>) -> vec3<f16>, | |
| (vec3<f64>) -> vec3<f64>, | |
| (vec4<{AbstractFloat}>) -> vec4<{AbstractFloat}>, | |
| (vec4<f32>) -> vec4<f32>, | |
| (vec4<f16>) -> vec4<f16>, | |
| (vec4<f64>) -> vec4<f64>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG overloads after arg 0: List { | |
| rules: [ | |
| (f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG initial overloads for Saturate: List { | |
| rules: [ | |
| ({AbstractFloat}) -> {AbstractFloat}, | |
| (f32) -> f32, | |
| (f16) -> f16, | |
| (f64) -> f64, | |
| (vec2<{AbstractFloat}>) -> vec2<{AbstractFloat}>, | |
| (vec2<f32>) -> vec2<f32>, | |
| (vec2<f16>) -> vec2<f16>, | |
| (vec2<f64>) -> vec2<f64>, | |
| (vec3<{AbstractFloat}>) -> vec3<{AbstractFloat}>, | |
| (vec3<f32>) -> vec3<f32>, | |
| (vec3<f16>) -> vec3<f16>, | |
| (vec3<f64>) -> vec3<f64>, | |
| (vec4<{AbstractFloat}>) -> vec4<{AbstractFloat}>, | |
| (vec4<f32>) -> vec4<f32>, | |
| (vec4<f16>) -> vec4<f16>, | |
| (vec4<f64>) -> vec4<f64>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG overloads after arg 0: List { | |
| rules: [ | |
| (f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG initial overloads for Mix: [ | |
| ({AbstractFloat}, {AbstractFloat}, {AbstractFloat}) -> {AbstractFloat}, | |
| ({AbstractFloat}, {AbstractFloat}, {AbstractFloat}) -> {AbstractFloat}, | |
| (vec2<{AbstractFloat}>, vec2<{AbstractFloat}>, vec2<{AbstractFloat}>) -> vec2<{AbstractFloat}>, | |
| (vec2<{AbstractFloat}>, vec2<{AbstractFloat}>, {AbstractFloat}) -> vec2<{AbstractFloat}>, | |
| (vec3<{AbstractFloat}>, vec3<{AbstractFloat}>, vec3<{AbstractFloat}>) -> vec3<{AbstractFloat}>, | |
| (vec3<{AbstractFloat}>, vec3<{AbstractFloat}>, {AbstractFloat}) -> vec3<{AbstractFloat}>, | |
| (vec4<{AbstractFloat}>, vec4<{AbstractFloat}>, vec4<{AbstractFloat}>) -> vec4<{AbstractFloat}>, | |
| (vec4<{AbstractFloat}>, vec4<{AbstractFloat}>, {AbstractFloat}) -> vec4<{AbstractFloat}>, | |
| (f32, f32, f32) -> f32, | |
| (f32, f32, f32) -> f32, | |
| (vec2<f32>, vec2<f32>, vec2<f32>) -> vec2<f32>, | |
| (vec2<f32>, vec2<f32>, f32) -> vec2<f32>, | |
| (vec3<f32>, vec3<f32>, vec3<f32>) -> vec3<f32>, | |
| (vec3<f32>, vec3<f32>, f32) -> vec3<f32>, | |
| (vec4<f32>, vec4<f32>, vec4<f32>) -> vec4<f32>, | |
| (vec4<f32>, vec4<f32>, f32) -> vec4<f32>, | |
| (f16, f16, f16) -> f16, | |
| (f16, f16, f16) -> f16, | |
| (vec2<f16>, vec2<f16>, vec2<f16>) -> vec2<f16>, | |
| (vec2<f16>, vec2<f16>, f16) -> vec2<f16>, | |
| (vec3<f16>, vec3<f16>, vec3<f16>) -> vec3<f16>, | |
| (vec3<f16>, vec3<f16>, f16) -> vec3<f16>, | |
| (vec4<f16>, vec4<f16>, vec4<f16>) -> vec4<f16>, | |
| (vec4<f16>, vec4<f16>, f16) -> vec4<f16>, | |
| (f64, f64, f64) -> f64, | |
| (f64, f64, f64) -> f64, | |
| (vec2<f64>, vec2<f64>, vec2<f64>) -> vec2<f64>, | |
| (vec2<f64>, vec2<f64>, f64) -> vec2<f64>, | |
| (vec3<f64>, vec3<f64>, vec3<f64>) -> vec3<f64>, | |
| (vec3<f64>, vec3<f64>, f64) -> vec3<f64>, | |
| (vec4<f64>, vec4<f64>, vec4<f64>) -> vec4<f64>, | |
| (vec4<f64>, vec4<f64>, f64) -> vec4<f64>, | |
| ] | |
| DEBUG arg 0 of type vec4<f32> | |
| DEBUG considering rule ({AbstractFloat}, {AbstractFloat}, {AbstractFloat}) -> {AbstractFloat} | |
| DEBUG no conversion possible | |
| DEBUG considering rule ({AbstractFloat}, {AbstractFloat}, {AbstractFloat}) -> {AbstractFloat} | |
| DEBUG no conversion possible | |
| DEBUG considering rule (vec2<{AbstractFloat}>, vec2<{AbstractFloat}>, vec2<{AbstractFloat}>) -> vec2<{AbstractFloat}> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (vec2<{AbstractFloat}>, vec2<{AbstractFloat}>, {AbstractFloat}) -> vec2<{AbstractFloat}> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (vec3<{AbstractFloat}>, vec3<{AbstractFloat}>, vec3<{AbstractFloat}>) -> vec3<{AbstractFloat}> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (vec3<{AbstractFloat}>, vec3<{AbstractFloat}>, {AbstractFloat}) -> vec3<{AbstractFloat}> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (vec4<{AbstractFloat}>, vec4<{AbstractFloat}>, vec4<{AbstractFloat}>) -> vec4<{AbstractFloat}> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (vec4<{AbstractFloat}>, vec4<{AbstractFloat}>, {AbstractFloat}) -> vec4<{AbstractFloat}> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (f32, f32, f32) -> f32 | |
| DEBUG no conversion possible | |
| DEBUG considering rule (f32, f32, f32) -> f32 | |
| DEBUG no conversion possible | |
| DEBUG considering rule (vec2<f32>, vec2<f32>, vec2<f32>) -> vec2<f32> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (vec2<f32>, vec2<f32>, f32) -> vec2<f32> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (vec3<f32>, vec3<f32>, vec3<f32>) -> vec3<f32> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (vec3<f32>, vec3<f32>, f32) -> vec3<f32> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (vec4<f32>, vec4<f32>, vec4<f32>) -> vec4<f32> | |
| DEBUG types are equivalent | |
| DEBUG considering rule (vec4<f32>, vec4<f32>, f32) -> vec4<f32> | |
| DEBUG types are equivalent | |
| DEBUG considering rule (f16, f16, f16) -> f16 | |
| DEBUG no conversion possible | |
| DEBUG considering rule (f16, f16, f16) -> f16 | |
| DEBUG no conversion possible | |
| DEBUG considering rule (vec2<f16>, vec2<f16>, vec2<f16>) -> vec2<f16> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (vec2<f16>, vec2<f16>, f16) -> vec2<f16> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (vec3<f16>, vec3<f16>, vec3<f16>) -> vec3<f16> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (vec3<f16>, vec3<f16>, f16) -> vec3<f16> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (vec4<f16>, vec4<f16>, vec4<f16>) -> vec4<f16> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (vec4<f16>, vec4<f16>, f16) -> vec4<f16> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (f64, f64, f64) -> f64 | |
| DEBUG no conversion possible | |
| DEBUG considering rule (f64, f64, f64) -> f64 | |
| DEBUG no conversion possible | |
| DEBUG considering rule (vec2<f64>, vec2<f64>, vec2<f64>) -> vec2<f64> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (vec2<f64>, vec2<f64>, f64) -> vec2<f64> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (vec3<f64>, vec3<f64>, vec3<f64>) -> vec3<f64> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (vec3<f64>, vec3<f64>, f64) -> vec3<f64> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (vec4<f64>, vec4<f64>, vec4<f64>) -> vec4<f64> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (vec4<f64>, vec4<f64>, f64) -> vec4<f64> | |
| DEBUG no conversion possible | |
| DEBUG overloads after arg 0: [ | |
| (vec4<f32>, vec4<f32>, vec4<f32>) -> vec4<f32>, | |
| (vec4<f32>, vec4<f32>, f32) -> vec4<f32>, | |
| ] | |
| DEBUG arg 1 of type vec4<f32> | |
| DEBUG considering rule (vec4<f32>, vec4<f32>, vec4<f32>) -> vec4<f32> | |
| DEBUG types are equivalent | |
| DEBUG considering rule (vec4<f32>, vec4<f32>, f32) -> vec4<f32> | |
| DEBUG types are equivalent | |
| DEBUG overloads after arg 1: [ | |
| (vec4<f32>, vec4<f32>, vec4<f32>) -> vec4<f32>, | |
| (vec4<f32>, vec4<f32>, f32) -> vec4<f32>, | |
| ] | |
| DEBUG arg 2 of type f32 | |
| DEBUG considering rule (vec4<f32>, vec4<f32>, vec4<f32>) -> vec4<f32> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (vec4<f32>, vec4<f32>, f32) -> vec4<f32> | |
| DEBUG types are equivalent | |
| DEBUG overloads after arg 2: [ | |
| (vec4<f32>, vec4<f32>, f32) -> vec4<f32>, | |
| ] | |
| DEBUG initial overloads for Saturate: List { | |
| rules: [ | |
| ({AbstractFloat}) -> {AbstractFloat}, | |
| (f32) -> f32, | |
| (f16) -> f16, | |
| (f64) -> f64, | |
| (vec2<{AbstractFloat}>) -> vec2<{AbstractFloat}>, | |
| (vec2<f32>) -> vec2<f32>, | |
| (vec2<f16>) -> vec2<f16>, | |
| (vec2<f64>) -> vec2<f64>, | |
| (vec3<{AbstractFloat}>) -> vec3<{AbstractFloat}>, | |
| (vec3<f32>) -> vec3<f32>, | |
| (vec3<f16>) -> vec3<f16>, | |
| (vec3<f64>) -> vec3<f64>, | |
| (vec4<{AbstractFloat}>) -> vec4<{AbstractFloat}>, | |
| (vec4<f32>) -> vec4<f32>, | |
| (vec4<f16>) -> vec4<f16>, | |
| (vec4<f64>) -> vec4<f64>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG overloads after arg 0: List { | |
| rules: [ | |
| (f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG var LocalVariable { name: Some("shadow"), ty: [26], init: None } | |
| DEBUG var LocalVariable { name: Some("out"), ty: [28], init: Some([31]) } | |
| DEBUG initial overloads for Clamp, List { | |
| rules: [ | |
| ({AbstractInt}, {AbstractInt}, {AbstractInt}) -> {AbstractInt}, | |
| ({AbstractFloat}, {AbstractFloat}, {AbstractFloat}) -> {AbstractFloat}, | |
| (i32, i32, i32) -> i32, | |
| (i64, i64, i64) -> i64, | |
| (u32, u32, u32) -> u32, | |
| (u64, u64, u64) -> u64, | |
| (f32, f32, f32) -> f32, | |
| (f16, f16, f16) -> f16, | |
| (f64, f64, f64) -> f64, | |
| (vec2<{AbstractInt}>, vec2<{AbstractInt}>, vec2<{AbstractInt}>) -> vec2<{AbstractInt}>, | |
| (vec2<{AbstractFloat}>, vec2<{AbstractFloat}>, vec2<{AbstractFloat}>) -> vec2<{AbstractFloat}>, | |
| (vec2<i32>, vec2<i32>, vec2<i32>) -> vec2<i32>, | |
| (vec2<i64>, vec2<i64>, vec2<i64>) -> vec2<i64>, | |
| (vec2<u32>, vec2<u32>, vec2<u32>) -> vec2<u32>, | |
| (vec2<u64>, vec2<u64>, vec2<u64>) -> vec2<u64>, | |
| (vec2<f32>, vec2<f32>, vec2<f32>) -> vec2<f32>, | |
| (vec2<f16>, vec2<f16>, vec2<f16>) -> vec2<f16>, | |
| (vec2<f64>, vec2<f64>, vec2<f64>) -> vec2<f64>, | |
| (vec3<{AbstractInt}>, vec3<{AbstractInt}>, vec3<{AbstractInt}>) -> vec3<{AbstractInt}>, | |
| (vec3<{AbstractFloat}>, vec3<{AbstractFloat}>, vec3<{AbstractFloat}>) -> vec3<{AbstractFloat}>, | |
| (vec3<i32>, vec3<i32>, vec3<i32>) -> vec3<i32>, | |
| (vec3<i64>, vec3<i64>, vec3<i64>) -> vec3<i64>, | |
| (vec3<u32>, vec3<u32>, vec3<u32>) -> vec3<u32>, | |
| (vec3<u64>, vec3<u64>, vec3<u64>) -> vec3<u64>, | |
| (vec3<f32>, vec3<f32>, vec3<f32>) -> vec3<f32>, | |
| (vec3<f16>, vec3<f16>, vec3<f16>) -> vec3<f16>, | |
| (vec3<f64>, vec3<f64>, vec3<f64>) -> vec3<f64>, | |
| (vec4<{AbstractInt}>, vec4<{AbstractInt}>, vec4<{AbstractInt}>) -> vec4<{AbstractInt}>, | |
| (vec4<{AbstractFloat}>, vec4<{AbstractFloat}>, vec4<{AbstractFloat}>) -> vec4<{AbstractFloat}>, | |
| (vec4<i32>, vec4<i32>, vec4<i32>) -> vec4<i32>, | |
| (vec4<i64>, vec4<i64>, vec4<i64>) -> vec4<i64>, | |
| (vec4<u32>, vec4<u32>, vec4<u32>) -> vec4<u32>, | |
| (vec4<u64>, vec4<u64>, vec4<u64>) -> vec4<u64>, | |
| (vec4<f32>, vec4<f32>, vec4<f32>) -> vec4<f32>, | |
| (vec4<f16>, vec4<f16>, vec4<f16>) -> vec4<f16>, | |
| (vec4<f64>, vec4<f64>, vec4<f64>) -> vec4<f64>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG overloads after arg 0 of type f32: List { | |
| rules: [ | |
| (f32, f32, f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG overloads after arg 1 of type f32: List { | |
| rules: [ | |
| (f32, f32, f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG initial overloads for Clamp, List { | |
| rules: [ | |
| ({AbstractInt}, {AbstractInt}, {AbstractInt}) -> {AbstractInt}, | |
| ({AbstractFloat}, {AbstractFloat}, {AbstractFloat}) -> {AbstractFloat}, | |
| (i32, i32, i32) -> i32, | |
| (i64, i64, i64) -> i64, | |
| (u32, u32, u32) -> u32, | |
| (u64, u64, u64) -> u64, | |
| (f32, f32, f32) -> f32, | |
| (f16, f16, f16) -> f16, | |
| (f64, f64, f64) -> f64, | |
| (vec2<{AbstractInt}>, vec2<{AbstractInt}>, vec2<{AbstractInt}>) -> vec2<{AbstractInt}>, | |
| (vec2<{AbstractFloat}>, vec2<{AbstractFloat}>, vec2<{AbstractFloat}>) -> vec2<{AbstractFloat}>, | |
| (vec2<i32>, vec2<i32>, vec2<i32>) -> vec2<i32>, | |
| (vec2<i64>, vec2<i64>, vec2<i64>) -> vec2<i64>, | |
| (vec2<u32>, vec2<u32>, vec2<u32>) -> vec2<u32>, | |
| (vec2<u64>, vec2<u64>, vec2<u64>) -> vec2<u64>, | |
| (vec2<f32>, vec2<f32>, vec2<f32>) -> vec2<f32>, | |
| (vec2<f16>, vec2<f16>, vec2<f16>) -> vec2<f16>, | |
| (vec2<f64>, vec2<f64>, vec2<f64>) -> vec2<f64>, | |
| (vec3<{AbstractInt}>, vec3<{AbstractInt}>, vec3<{AbstractInt}>) -> vec3<{AbstractInt}>, | |
| (vec3<{AbstractFloat}>, vec3<{AbstractFloat}>, vec3<{AbstractFloat}>) -> vec3<{AbstractFloat}>, | |
| (vec3<i32>, vec3<i32>, vec3<i32>) -> vec3<i32>, | |
| (vec3<i64>, vec3<i64>, vec3<i64>) -> vec3<i64>, | |
| (vec3<u32>, vec3<u32>, vec3<u32>) -> vec3<u32>, | |
| (vec3<u64>, vec3<u64>, vec3<u64>) -> vec3<u64>, | |
| (vec3<f32>, vec3<f32>, vec3<f32>) -> vec3<f32>, | |
| (vec3<f16>, vec3<f16>, vec3<f16>) -> vec3<f16>, | |
| (vec3<f64>, vec3<f64>, vec3<f64>) -> vec3<f64>, | |
| (vec4<{AbstractInt}>, vec4<{AbstractInt}>, vec4<{AbstractInt}>) -> vec4<{AbstractInt}>, | |
| (vec4<{AbstractFloat}>, vec4<{AbstractFloat}>, vec4<{AbstractFloat}>) -> vec4<{AbstractFloat}>, | |
| (vec4<i32>, vec4<i32>, vec4<i32>) -> vec4<i32>, | |
| (vec4<i64>, vec4<i64>, vec4<i64>) -> vec4<i64>, | |
| (vec4<u32>, vec4<u32>, vec4<u32>) -> vec4<u32>, | |
| (vec4<u64>, vec4<u64>, vec4<u64>) -> vec4<u64>, | |
| (vec4<f32>, vec4<f32>, vec4<f32>) -> vec4<f32>, | |
| (vec4<f16>, vec4<f16>, vec4<f16>) -> vec4<f16>, | |
| (vec4<f64>, vec4<f64>, vec4<f64>) -> vec4<f64>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG overloads after arg 0 of type f32: List { | |
| rules: [ | |
| (f32, f32, f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG overloads after arg 1 of type f32: List { | |
| rules: [ | |
| (f32, f32, f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG var LocalVariable { name: Some("y"), ty: [0], init: None } | |
| DEBUG var LocalVariable { name: Some("alpha"), ty: [0], init: Some([46]) } | |
| DEBUG var LocalVariable { name: Some("i"), ty: [16], init: Some([48]) } | |
| DEBUG initial overloads for Clamp: List { | |
| rules: [ | |
| ({AbstractInt}, {AbstractInt}, {AbstractInt}) -> {AbstractInt}, | |
| ({AbstractFloat}, {AbstractFloat}, {AbstractFloat}) -> {AbstractFloat}, | |
| (i32, i32, i32) -> i32, | |
| (i64, i64, i64) -> i64, | |
| (u32, u32, u32) -> u32, | |
| (u64, u64, u64) -> u64, | |
| (f32, f32, f32) -> f32, | |
| (f16, f16, f16) -> f16, | |
| (f64, f64, f64) -> f64, | |
| (vec2<{AbstractInt}>, vec2<{AbstractInt}>, vec2<{AbstractInt}>) -> vec2<{AbstractInt}>, | |
| (vec2<{AbstractFloat}>, vec2<{AbstractFloat}>, vec2<{AbstractFloat}>) -> vec2<{AbstractFloat}>, | |
| (vec2<i32>, vec2<i32>, vec2<i32>) -> vec2<i32>, | |
| (vec2<i64>, vec2<i64>, vec2<i64>) -> vec2<i64>, | |
| (vec2<u32>, vec2<u32>, vec2<u32>) -> vec2<u32>, | |
| (vec2<u64>, vec2<u64>, vec2<u64>) -> vec2<u64>, | |
| (vec2<f32>, vec2<f32>, vec2<f32>) -> vec2<f32>, | |
| (vec2<f16>, vec2<f16>, vec2<f16>) -> vec2<f16>, | |
| (vec2<f64>, vec2<f64>, vec2<f64>) -> vec2<f64>, | |
| (vec3<{AbstractInt}>, vec3<{AbstractInt}>, vec3<{AbstractInt}>) -> vec3<{AbstractInt}>, | |
| (vec3<{AbstractFloat}>, vec3<{AbstractFloat}>, vec3<{AbstractFloat}>) -> vec3<{AbstractFloat}>, | |
| (vec3<i32>, vec3<i32>, vec3<i32>) -> vec3<i32>, | |
| (vec3<i64>, vec3<i64>, vec3<i64>) -> vec3<i64>, | |
| (vec3<u32>, vec3<u32>, vec3<u32>) -> vec3<u32>, | |
| (vec3<u64>, vec3<u64>, vec3<u64>) -> vec3<u64>, | |
| (vec3<f32>, vec3<f32>, vec3<f32>) -> vec3<f32>, | |
| (vec3<f16>, vec3<f16>, vec3<f16>) -> vec3<f16>, | |
| (vec3<f64>, vec3<f64>, vec3<f64>) -> vec3<f64>, | |
| (vec4<{AbstractInt}>, vec4<{AbstractInt}>, vec4<{AbstractInt}>) -> vec4<{AbstractInt}>, | |
| (vec4<{AbstractFloat}>, vec4<{AbstractFloat}>, vec4<{AbstractFloat}>) -> vec4<{AbstractFloat}>, | |
| (vec4<i32>, vec4<i32>, vec4<i32>) -> vec4<i32>, | |
| (vec4<i64>, vec4<i64>, vec4<i64>) -> vec4<i64>, | |
| (vec4<u32>, vec4<u32>, vec4<u32>) -> vec4<u32>, | |
| (vec4<u64>, vec4<u64>, vec4<u64>) -> vec4<u64>, | |
| (vec4<f32>, vec4<f32>, vec4<f32>) -> vec4<f32>, | |
| (vec4<f16>, vec4<f16>, vec4<f16>) -> vec4<f16>, | |
| (vec4<f64>, vec4<f64>, vec4<f64>) -> vec4<f64>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG overloads after arg 0: List { | |
| rules: [ | |
| (f32, f32, f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG overloads after arg 1: List { | |
| rules: [ | |
| (f32, f32, f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG overloads after arg 2: List { | |
| rules: [ | |
| (f32, f32, f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG initial overloads for Clamp: List { | |
| rules: [ | |
| ({AbstractInt}, {AbstractInt}, {AbstractInt}) -> {AbstractInt}, | |
| ({AbstractFloat}, {AbstractFloat}, {AbstractFloat}) -> {AbstractFloat}, | |
| (i32, i32, i32) -> i32, | |
| (i64, i64, i64) -> i64, | |
| (u32, u32, u32) -> u32, | |
| (u64, u64, u64) -> u64, | |
| (f32, f32, f32) -> f32, | |
| (f16, f16, f16) -> f16, | |
| (f64, f64, f64) -> f64, | |
| (vec2<{AbstractInt}>, vec2<{AbstractInt}>, vec2<{AbstractInt}>) -> vec2<{AbstractInt}>, | |
| (vec2<{AbstractFloat}>, vec2<{AbstractFloat}>, vec2<{AbstractFloat}>) -> vec2<{AbstractFloat}>, | |
| (vec2<i32>, vec2<i32>, vec2<i32>) -> vec2<i32>, | |
| (vec2<i64>, vec2<i64>, vec2<i64>) -> vec2<i64>, | |
| (vec2<u32>, vec2<u32>, vec2<u32>) -> vec2<u32>, | |
| (vec2<u64>, vec2<u64>, vec2<u64>) -> vec2<u64>, | |
| (vec2<f32>, vec2<f32>, vec2<f32>) -> vec2<f32>, | |
| (vec2<f16>, vec2<f16>, vec2<f16>) -> vec2<f16>, | |
| (vec2<f64>, vec2<f64>, vec2<f64>) -> vec2<f64>, | |
| (vec3<{AbstractInt}>, vec3<{AbstractInt}>, vec3<{AbstractInt}>) -> vec3<{AbstractInt}>, | |
| (vec3<{AbstractFloat}>, vec3<{AbstractFloat}>, vec3<{AbstractFloat}>) -> vec3<{AbstractFloat}>, | |
| (vec3<i32>, vec3<i32>, vec3<i32>) -> vec3<i32>, | |
| (vec3<i64>, vec3<i64>, vec3<i64>) -> vec3<i64>, | |
| (vec3<u32>, vec3<u32>, vec3<u32>) -> vec3<u32>, | |
| (vec3<u64>, vec3<u64>, vec3<u64>) -> vec3<u64>, | |
| (vec3<f32>, vec3<f32>, vec3<f32>) -> vec3<f32>, | |
| (vec3<f16>, vec3<f16>, vec3<f16>) -> vec3<f16>, | |
| (vec3<f64>, vec3<f64>, vec3<f64>) -> vec3<f64>, | |
| (vec4<{AbstractInt}>, vec4<{AbstractInt}>, vec4<{AbstractInt}>) -> vec4<{AbstractInt}>, | |
| (vec4<{AbstractFloat}>, vec4<{AbstractFloat}>, vec4<{AbstractFloat}>) -> vec4<{AbstractFloat}>, | |
| (vec4<i32>, vec4<i32>, vec4<i32>) -> vec4<i32>, | |
| (vec4<i64>, vec4<i64>, vec4<i64>) -> vec4<i64>, | |
| (vec4<u32>, vec4<u32>, vec4<u32>) -> vec4<u32>, | |
| (vec4<u64>, vec4<u64>, vec4<u64>) -> vec4<u64>, | |
| (vec4<f32>, vec4<f32>, vec4<f32>) -> vec4<f32>, | |
| (vec4<f16>, vec4<f16>, vec4<f16>) -> vec4<f16>, | |
| (vec4<f64>, vec4<f64>, vec4<f64>) -> vec4<f64>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG overloads after arg 0: List { | |
| rules: [ | |
| (f32, f32, f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG overloads after arg 1: List { | |
| rules: [ | |
| (f32, f32, f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG overloads after arg 2: List { | |
| rules: [ | |
| (f32, f32, f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG var LocalVariable { name: Some("out"), ty: [31], init: Some([4]) } | |
| DEBUG initial overloads for Length, List { | |
| rules: [ | |
| (f32) -> f32, | |
| (f16) -> f16, | |
| (f64) -> f64, | |
| (vec2<f32>) -> f32, | |
| (vec2<f16>) -> f16, | |
| (vec2<f64>) -> f64, | |
| (vec3<f32>) -> f32, | |
| (vec3<f16>) -> f16, | |
| (vec3<f64>) -> f64, | |
| (vec4<f32>) -> f32, | |
| (vec4<f16>) -> f16, | |
| (vec4<f64>) -> f64, | |
| ], | |
| conclude: Scalar, | |
| } | |
| DEBUG overloads after arg 0 of type vec2<f32>: List { | |
| rules: [ | |
| (vec2<f32>) -> f32, | |
| ], | |
| conclude: Scalar, | |
| } | |
| DEBUG initial overloads for Length, List { | |
| rules: [ | |
| (f32) -> f32, | |
| (f16) -> f16, | |
| (f64) -> f64, | |
| (vec2<f32>) -> f32, | |
| (vec2<f16>) -> f16, | |
| (vec2<f64>) -> f64, | |
| (vec3<f32>) -> f32, | |
| (vec3<f16>) -> f16, | |
| (vec3<f64>) -> f64, | |
| (vec4<f32>) -> f32, | |
| (vec4<f16>) -> f16, | |
| (vec4<f64>) -> f64, | |
| ], | |
| conclude: Scalar, | |
| } | |
| DEBUG overloads after arg 0 of type vec2<f32>: List { | |
| rules: [ | |
| (vec2<f32>) -> f32, | |
| ], | |
| conclude: Scalar, | |
| } | |
| DEBUG initial overloads for Saturate, List { | |
| rules: [ | |
| ({AbstractFloat}) -> {AbstractFloat}, | |
| (f32) -> f32, | |
| (f16) -> f16, | |
| (f64) -> f64, | |
| (vec2<{AbstractFloat}>) -> vec2<{AbstractFloat}>, | |
| (vec2<f32>) -> vec2<f32>, | |
| (vec2<f16>) -> vec2<f16>, | |
| (vec2<f64>) -> vec2<f64>, | |
| (vec3<{AbstractFloat}>) -> vec3<{AbstractFloat}>, | |
| (vec3<f32>) -> vec3<f32>, | |
| (vec3<f16>) -> vec3<f16>, | |
| (vec3<f64>) -> vec3<f64>, | |
| (vec4<{AbstractFloat}>) -> vec4<{AbstractFloat}>, | |
| (vec4<f32>) -> vec4<f32>, | |
| (vec4<f16>) -> vec4<f16>, | |
| (vec4<f64>) -> vec4<f64>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG overloads after arg 0 of type f32: List { | |
| rules: [ | |
| (f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG var LocalVariable { name: Some("alpha"), ty: [0], init: None } | |
| DEBUG initial overloads for Length: List { | |
| rules: [ | |
| (f32) -> f32, | |
| (f16) -> f16, | |
| (f64) -> f64, | |
| (vec2<f32>) -> f32, | |
| (vec2<f16>) -> f16, | |
| (vec2<f64>) -> f64, | |
| (vec3<f32>) -> f32, | |
| (vec3<f16>) -> f16, | |
| (vec3<f64>) -> f64, | |
| (vec4<f32>) -> f32, | |
| (vec4<f16>) -> f16, | |
| (vec4<f64>) -> f64, | |
| ], | |
| conclude: Scalar, | |
| } | |
| DEBUG overloads after arg 0: List { | |
| rules: [ | |
| (vec2<f32>) -> f32, | |
| ], | |
| conclude: Scalar, | |
| } | |
| DEBUG initial overloads for Length: List { | |
| rules: [ | |
| (f32) -> f32, | |
| (f16) -> f16, | |
| (f64) -> f64, | |
| (vec2<f32>) -> f32, | |
| (vec2<f16>) -> f16, | |
| (vec2<f64>) -> f64, | |
| (vec3<f32>) -> f32, | |
| (vec3<f16>) -> f16, | |
| (vec3<f64>) -> f64, | |
| (vec4<f32>) -> f32, | |
| (vec4<f16>) -> f16, | |
| (vec4<f64>) -> f64, | |
| ], | |
| conclude: Scalar, | |
| } | |
| DEBUG overloads after arg 0: List { | |
| rules: [ | |
| (vec2<f32>) -> f32, | |
| ], | |
| conclude: Scalar, | |
| } | |
| DEBUG initial overloads for Saturate: List { | |
| rules: [ | |
| ({AbstractFloat}) -> {AbstractFloat}, | |
| (f32) -> f32, | |
| (f16) -> f16, | |
| (f64) -> f64, | |
| (vec2<{AbstractFloat}>) -> vec2<{AbstractFloat}>, | |
| (vec2<f32>) -> vec2<f32>, | |
| (vec2<f16>) -> vec2<f16>, | |
| (vec2<f64>) -> vec2<f64>, | |
| (vec3<{AbstractFloat}>) -> vec3<{AbstractFloat}>, | |
| (vec3<f32>) -> vec3<f32>, | |
| (vec3<f16>) -> vec3<f16>, | |
| (vec3<f64>) -> vec3<f64>, | |
| (vec4<{AbstractFloat}>) -> vec4<{AbstractFloat}>, | |
| (vec4<f32>) -> vec4<f32>, | |
| (vec4<f16>) -> vec4<f16>, | |
| (vec4<f64>) -> vec4<f64>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG overloads after arg 0: List { | |
| rules: [ | |
| (f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG var LocalVariable { name: Some("out"), ty: [34], init: Some([26]) } | |
| DEBUG var LocalVariable { name: Some("out"), ty: [37], init: Some([14]) } | |
| DEBUG initial overloads for Sin, List { | |
| rules: [ | |
| ({AbstractFloat}) -> {AbstractFloat}, | |
| (f32) -> f32, | |
| (f16) -> f16, | |
| (f64) -> f64, | |
| (vec2<{AbstractFloat}>) -> vec2<{AbstractFloat}>, | |
| (vec2<f32>) -> vec2<f32>, | |
| (vec2<f16>) -> vec2<f16>, | |
| (vec2<f64>) -> vec2<f64>, | |
| (vec3<{AbstractFloat}>) -> vec3<{AbstractFloat}>, | |
| (vec3<f32>) -> vec3<f32>, | |
| (vec3<f16>) -> vec3<f16>, | |
| (vec3<f64>) -> vec3<f64>, | |
| (vec4<{AbstractFloat}>) -> vec4<{AbstractFloat}>, | |
| (vec4<f32>) -> vec4<f32>, | |
| (vec4<f16>) -> vec4<f16>, | |
| (vec4<f64>) -> vec4<f64>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG overloads after arg 0 of type f32: List { | |
| rules: [ | |
| (f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG initial overloads for Cos, List { | |
| rules: [ | |
| ({AbstractFloat}) -> {AbstractFloat}, | |
| (f32) -> f32, | |
| (f16) -> f16, | |
| (f64) -> f64, | |
| (vec2<{AbstractFloat}>) -> vec2<{AbstractFloat}>, | |
| (vec2<f32>) -> vec2<f32>, | |
| (vec2<f16>) -> vec2<f16>, | |
| (vec2<f64>) -> vec2<f64>, | |
| (vec3<{AbstractFloat}>) -> vec3<{AbstractFloat}>, | |
| (vec3<f32>) -> vec3<f32>, | |
| (vec3<f16>) -> vec3<f16>, | |
| (vec3<f64>) -> vec3<f64>, | |
| (vec4<{AbstractFloat}>) -> vec4<{AbstractFloat}>, | |
| (vec4<f32>) -> vec4<f32>, | |
| (vec4<f16>) -> vec4<f16>, | |
| (vec4<f64>) -> vec4<f64>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG overloads after arg 0 of type f32: List { | |
| rules: [ | |
| (f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG initial overloads for Sqrt, List { | |
| rules: [ | |
| ({AbstractFloat}) -> {AbstractFloat}, | |
| (f32) -> f32, | |
| (f16) -> f16, | |
| (f64) -> f64, | |
| (vec2<{AbstractFloat}>) -> vec2<{AbstractFloat}>, | |
| (vec2<f32>) -> vec2<f32>, | |
| (vec2<f16>) -> vec2<f16>, | |
| (vec2<f64>) -> vec2<f64>, | |
| (vec3<{AbstractFloat}>) -> vec3<{AbstractFloat}>, | |
| (vec3<f32>) -> vec3<f32>, | |
| (vec3<f16>) -> vec3<f16>, | |
| (vec3<f64>) -> vec3<f64>, | |
| (vec4<{AbstractFloat}>) -> vec4<{AbstractFloat}>, | |
| (vec4<f32>) -> vec4<f32>, | |
| (vec4<f16>) -> vec4<f16>, | |
| (vec4<f64>) -> vec4<f64>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG overloads after arg 0 of type f32: List { | |
| rules: [ | |
| (f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG initial overloads for Max, List { | |
| rules: [ | |
| ({AbstractInt}, {AbstractInt}) -> {AbstractInt}, | |
| ({AbstractFloat}, {AbstractFloat}) -> {AbstractFloat}, | |
| (i32, i32) -> i32, | |
| (i64, i64) -> i64, | |
| (u32, u32) -> u32, | |
| (u64, u64) -> u64, | |
| (f32, f32) -> f32, | |
| (f16, f16) -> f16, | |
| (f64, f64) -> f64, | |
| (vec2<{AbstractInt}>, vec2<{AbstractInt}>) -> vec2<{AbstractInt}>, | |
| (vec2<{AbstractFloat}>, vec2<{AbstractFloat}>) -> vec2<{AbstractFloat}>, | |
| (vec2<i32>, vec2<i32>) -> vec2<i32>, | |
| (vec2<i64>, vec2<i64>) -> vec2<i64>, | |
| (vec2<u32>, vec2<u32>) -> vec2<u32>, | |
| (vec2<u64>, vec2<u64>) -> vec2<u64>, | |
| (vec2<f32>, vec2<f32>) -> vec2<f32>, | |
| (vec2<f16>, vec2<f16>) -> vec2<f16>, | |
| (vec2<f64>, vec2<f64>) -> vec2<f64>, | |
| (vec3<{AbstractInt}>, vec3<{AbstractInt}>) -> vec3<{AbstractInt}>, | |
| (vec3<{AbstractFloat}>, vec3<{AbstractFloat}>) -> vec3<{AbstractFloat}>, | |
| (vec3<i32>, vec3<i32>) -> vec3<i32>, | |
| (vec3<i64>, vec3<i64>) -> vec3<i64>, | |
| (vec3<u32>, vec3<u32>) -> vec3<u32>, | |
| (vec3<u64>, vec3<u64>) -> vec3<u64>, | |
| (vec3<f32>, vec3<f32>) -> vec3<f32>, | |
| (vec3<f16>, vec3<f16>) -> vec3<f16>, | |
| (vec3<f64>, vec3<f64>) -> vec3<f64>, | |
| (vec4<{AbstractInt}>, vec4<{AbstractInt}>) -> vec4<{AbstractInt}>, | |
| (vec4<{AbstractFloat}>, vec4<{AbstractFloat}>) -> vec4<{AbstractFloat}>, | |
| (vec4<i32>, vec4<i32>) -> vec4<i32>, | |
| (vec4<i64>, vec4<i64>) -> vec4<i64>, | |
| (vec4<u32>, vec4<u32>) -> vec4<u32>, | |
| (vec4<u64>, vec4<u64>) -> vec4<u64>, | |
| (vec4<f32>, vec4<f32>) -> vec4<f32>, | |
| (vec4<f16>, vec4<f16>) -> vec4<f16>, | |
| (vec4<f64>, vec4<f64>) -> vec4<f64>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG overloads after arg 0 of type f32: List { | |
| rules: [ | |
| (f32, f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG overloads after arg 1 of type f32: List { | |
| rules: [ | |
| (f32, f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG initial overloads for Saturate, List { | |
| rules: [ | |
| ({AbstractFloat}) -> {AbstractFloat}, | |
| (f32) -> f32, | |
| (f16) -> f16, | |
| (f64) -> f64, | |
| (vec2<{AbstractFloat}>) -> vec2<{AbstractFloat}>, | |
| (vec2<f32>) -> vec2<f32>, | |
| (vec2<f16>) -> vec2<f16>, | |
| (vec2<f64>) -> vec2<f64>, | |
| (vec3<{AbstractFloat}>) -> vec3<{AbstractFloat}>, | |
| (vec3<f32>) -> vec3<f32>, | |
| (vec3<f16>) -> vec3<f16>, | |
| (vec3<f64>) -> vec3<f64>, | |
| (vec4<{AbstractFloat}>) -> vec4<{AbstractFloat}>, | |
| (vec4<f32>) -> vec4<f32>, | |
| (vec4<f16>) -> vec4<f16>, | |
| (vec4<f64>) -> vec4<f64>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG overloads after arg 0 of type f32: List { | |
| rules: [ | |
| (f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG initial overloads for Sin: List { | |
| rules: [ | |
| ({AbstractFloat}) -> {AbstractFloat}, | |
| (f32) -> f32, | |
| (f16) -> f16, | |
| (f64) -> f64, | |
| (vec2<{AbstractFloat}>) -> vec2<{AbstractFloat}>, | |
| (vec2<f32>) -> vec2<f32>, | |
| (vec2<f16>) -> vec2<f16>, | |
| (vec2<f64>) -> vec2<f64>, | |
| (vec3<{AbstractFloat}>) -> vec3<{AbstractFloat}>, | |
| (vec3<f32>) -> vec3<f32>, | |
| (vec3<f16>) -> vec3<f16>, | |
| (vec3<f64>) -> vec3<f64>, | |
| (vec4<{AbstractFloat}>) -> vec4<{AbstractFloat}>, | |
| (vec4<f32>) -> vec4<f32>, | |
| (vec4<f16>) -> vec4<f16>, | |
| (vec4<f64>) -> vec4<f64>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG overloads after arg 0: List { | |
| rules: [ | |
| (f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG initial overloads for Cos: List { | |
| rules: [ | |
| ({AbstractFloat}) -> {AbstractFloat}, | |
| (f32) -> f32, | |
| (f16) -> f16, | |
| (f64) -> f64, | |
| (vec2<{AbstractFloat}>) -> vec2<{AbstractFloat}>, | |
| (vec2<f32>) -> vec2<f32>, | |
| (vec2<f16>) -> vec2<f16>, | |
| (vec2<f64>) -> vec2<f64>, | |
| (vec3<{AbstractFloat}>) -> vec3<{AbstractFloat}>, | |
| (vec3<f32>) -> vec3<f32>, | |
| (vec3<f16>) -> vec3<f16>, | |
| (vec3<f64>) -> vec3<f64>, | |
| (vec4<{AbstractFloat}>) -> vec4<{AbstractFloat}>, | |
| (vec4<f32>) -> vec4<f32>, | |
| (vec4<f16>) -> vec4<f16>, | |
| (vec4<f64>) -> vec4<f64>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG overloads after arg 0: List { | |
| rules: [ | |
| (f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG initial overloads for Sqrt: List { | |
| rules: [ | |
| ({AbstractFloat}) -> {AbstractFloat}, | |
| (f32) -> f32, | |
| (f16) -> f16, | |
| (f64) -> f64, | |
| (vec2<{AbstractFloat}>) -> vec2<{AbstractFloat}>, | |
| (vec2<f32>) -> vec2<f32>, | |
| (vec2<f16>) -> vec2<f16>, | |
| (vec2<f64>) -> vec2<f64>, | |
| (vec3<{AbstractFloat}>) -> vec3<{AbstractFloat}>, | |
| (vec3<f32>) -> vec3<f32>, | |
| (vec3<f16>) -> vec3<f16>, | |
| (vec3<f64>) -> vec3<f64>, | |
| (vec4<{AbstractFloat}>) -> vec4<{AbstractFloat}>, | |
| (vec4<f32>) -> vec4<f32>, | |
| (vec4<f16>) -> vec4<f16>, | |
| (vec4<f64>) -> vec4<f64>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG overloads after arg 0: List { | |
| rules: [ | |
| (f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG initial overloads for Max: List { | |
| rules: [ | |
| ({AbstractInt}, {AbstractInt}) -> {AbstractInt}, | |
| ({AbstractFloat}, {AbstractFloat}) -> {AbstractFloat}, | |
| (i32, i32) -> i32, | |
| (i64, i64) -> i64, | |
| (u32, u32) -> u32, | |
| (u64, u64) -> u64, | |
| (f32, f32) -> f32, | |
| (f16, f16) -> f16, | |
| (f64, f64) -> f64, | |
| (vec2<{AbstractInt}>, vec2<{AbstractInt}>) -> vec2<{AbstractInt}>, | |
| (vec2<{AbstractFloat}>, vec2<{AbstractFloat}>) -> vec2<{AbstractFloat}>, | |
| (vec2<i32>, vec2<i32>) -> vec2<i32>, | |
| (vec2<i64>, vec2<i64>) -> vec2<i64>, | |
| (vec2<u32>, vec2<u32>) -> vec2<u32>, | |
| (vec2<u64>, vec2<u64>) -> vec2<u64>, | |
| (vec2<f32>, vec2<f32>) -> vec2<f32>, | |
| (vec2<f16>, vec2<f16>) -> vec2<f16>, | |
| (vec2<f64>, vec2<f64>) -> vec2<f64>, | |
| (vec3<{AbstractInt}>, vec3<{AbstractInt}>) -> vec3<{AbstractInt}>, | |
| (vec3<{AbstractFloat}>, vec3<{AbstractFloat}>) -> vec3<{AbstractFloat}>, | |
| (vec3<i32>, vec3<i32>) -> vec3<i32>, | |
| (vec3<i64>, vec3<i64>) -> vec3<i64>, | |
| (vec3<u32>, vec3<u32>) -> vec3<u32>, | |
| (vec3<u64>, vec3<u64>) -> vec3<u64>, | |
| (vec3<f32>, vec3<f32>) -> vec3<f32>, | |
| (vec3<f16>, vec3<f16>) -> vec3<f16>, | |
| (vec3<f64>, vec3<f64>) -> vec3<f64>, | |
| (vec4<{AbstractInt}>, vec4<{AbstractInt}>) -> vec4<{AbstractInt}>, | |
| (vec4<{AbstractFloat}>, vec4<{AbstractFloat}>) -> vec4<{AbstractFloat}>, | |
| (vec4<i32>, vec4<i32>) -> vec4<i32>, | |
| (vec4<i64>, vec4<i64>) -> vec4<i64>, | |
| (vec4<u32>, vec4<u32>) -> vec4<u32>, | |
| (vec4<u64>, vec4<u64>) -> vec4<u64>, | |
| (vec4<f32>, vec4<f32>) -> vec4<f32>, | |
| (vec4<f16>, vec4<f16>) -> vec4<f16>, | |
| (vec4<f64>, vec4<f64>) -> vec4<f64>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG overloads after arg 0: List { | |
| rules: [ | |
| (f32, f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG overloads after arg 1: List { | |
| rules: [ | |
| (f32, f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG initial overloads for Saturate: List { | |
| rules: [ | |
| ({AbstractFloat}) -> {AbstractFloat}, | |
| (f32) -> f32, | |
| (f16) -> f16, | |
| (f64) -> f64, | |
| (vec2<{AbstractFloat}>) -> vec2<{AbstractFloat}>, | |
| (vec2<f32>) -> vec2<f32>, | |
| (vec2<f16>) -> vec2<f16>, | |
| (vec2<f64>) -> vec2<f64>, | |
| (vec3<{AbstractFloat}>) -> vec3<{AbstractFloat}>, | |
| (vec3<f32>) -> vec3<f32>, | |
| (vec3<f16>) -> vec3<f16>, | |
| (vec3<f64>) -> vec3<f64>, | |
| (vec4<{AbstractFloat}>) -> vec4<{AbstractFloat}>, | |
| (vec4<f32>) -> vec4<f32>, | |
| (vec4<f16>) -> vec4<f16>, | |
| (vec4<f64>) -> vec4<f64>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG overloads after arg 0: List { | |
| rules: [ | |
| (f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG var LocalVariable { name: Some("out"), ty: [40], init: Some([14]) } | |
| DEBUG var LocalVariable { name: Some("out"), ty: [43], init: Some([14]) } | |
| DEBUG initial overloads for Dot, List { | |
| rules: [ | |
| (vec2<{AbstractInt}>, vec2<{AbstractInt}>) -> {AbstractInt}, | |
| (vec2<{AbstractFloat}>, vec2<{AbstractFloat}>) -> {AbstractFloat}, | |
| (vec2<i32>, vec2<i32>) -> i32, | |
| (vec2<i64>, vec2<i64>) -> i64, | |
| (vec2<u32>, vec2<u32>) -> u32, | |
| (vec2<u64>, vec2<u64>) -> u64, | |
| (vec2<f32>, vec2<f32>) -> f32, | |
| (vec2<f16>, vec2<f16>) -> f16, | |
| (vec2<f64>, vec2<f64>) -> f64, | |
| (vec3<{AbstractInt}>, vec3<{AbstractInt}>) -> {AbstractInt}, | |
| (vec3<{AbstractFloat}>, vec3<{AbstractFloat}>) -> {AbstractFloat}, | |
| (vec3<i32>, vec3<i32>) -> i32, | |
| (vec3<i64>, vec3<i64>) -> i64, | |
| (vec3<u32>, vec3<u32>) -> u32, | |
| (vec3<u64>, vec3<u64>) -> u64, | |
| (vec3<f32>, vec3<f32>) -> f32, | |
| (vec3<f16>, vec3<f16>) -> f16, | |
| (vec3<f64>, vec3<f64>) -> f64, | |
| (vec4<{AbstractInt}>, vec4<{AbstractInt}>) -> {AbstractInt}, | |
| (vec4<{AbstractFloat}>, vec4<{AbstractFloat}>) -> {AbstractFloat}, | |
| (vec4<i32>, vec4<i32>) -> i32, | |
| (vec4<i64>, vec4<i64>) -> i64, | |
| (vec4<u32>, vec4<u32>) -> u32, | |
| (vec4<u64>, vec4<u64>) -> u64, | |
| (vec4<f32>, vec4<f32>) -> f32, | |
| (vec4<f16>, vec4<f16>) -> f16, | |
| (vec4<f64>, vec4<f64>) -> f64, | |
| ], | |
| conclude: Scalar, | |
| } | |
| DEBUG overloads after arg 0 of type vec3<f32>: List { | |
| rules: [ | |
| (vec3<f32>, vec3<f32>) -> f32, | |
| ], | |
| conclude: Scalar, | |
| } | |
| DEBUG overloads after arg 1 of type vec3<f32>: List { | |
| rules: [ | |
| (vec3<f32>, vec3<f32>) -> f32, | |
| ], | |
| conclude: Scalar, | |
| } | |
| DEBUG initial overloads for Saturate, List { | |
| rules: [ | |
| ({AbstractFloat}) -> {AbstractFloat}, | |
| (f32) -> f32, | |
| (f16) -> f16, | |
| (f64) -> f64, | |
| (vec2<{AbstractFloat}>) -> vec2<{AbstractFloat}>, | |
| (vec2<f32>) -> vec2<f32>, | |
| (vec2<f16>) -> vec2<f16>, | |
| (vec2<f64>) -> vec2<f64>, | |
| (vec3<{AbstractFloat}>) -> vec3<{AbstractFloat}>, | |
| (vec3<f32>) -> vec3<f32>, | |
| (vec3<f16>) -> vec3<f16>, | |
| (vec3<f64>) -> vec3<f64>, | |
| (vec4<{AbstractFloat}>) -> vec4<{AbstractFloat}>, | |
| (vec4<f32>) -> vec4<f32>, | |
| (vec4<f16>) -> vec4<f16>, | |
| (vec4<f64>) -> vec4<f64>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG overloads after arg 0 of type f32: List { | |
| rules: [ | |
| (f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG var LocalVariable { name: Some("color"), ty: [2], init: None } | |
| DEBUG initial overloads for Dot: List { | |
| rules: [ | |
| (vec2<{AbstractInt}>, vec2<{AbstractInt}>) -> {AbstractInt}, | |
| (vec2<{AbstractFloat}>, vec2<{AbstractFloat}>) -> {AbstractFloat}, | |
| (vec2<i32>, vec2<i32>) -> i32, | |
| (vec2<i64>, vec2<i64>) -> i64, | |
| (vec2<u32>, vec2<u32>) -> u32, | |
| (vec2<u64>, vec2<u64>) -> u64, | |
| (vec2<f32>, vec2<f32>) -> f32, | |
| (vec2<f16>, vec2<f16>) -> f16, | |
| (vec2<f64>, vec2<f64>) -> f64, | |
| (vec3<{AbstractInt}>, vec3<{AbstractInt}>) -> {AbstractInt}, | |
| (vec3<{AbstractFloat}>, vec3<{AbstractFloat}>) -> {AbstractFloat}, | |
| (vec3<i32>, vec3<i32>) -> i32, | |
| (vec3<i64>, vec3<i64>) -> i64, | |
| (vec3<u32>, vec3<u32>) -> u32, | |
| (vec3<u64>, vec3<u64>) -> u64, | |
| (vec3<f32>, vec3<f32>) -> f32, | |
| (vec3<f16>, vec3<f16>) -> f16, | |
| (vec3<f64>, vec3<f64>) -> f64, | |
| (vec4<{AbstractInt}>, vec4<{AbstractInt}>) -> {AbstractInt}, | |
| (vec4<{AbstractFloat}>, vec4<{AbstractFloat}>) -> {AbstractFloat}, | |
| (vec4<i32>, vec4<i32>) -> i32, | |
| (vec4<i64>, vec4<i64>) -> i64, | |
| (vec4<u32>, vec4<u32>) -> u32, | |
| (vec4<u64>, vec4<u64>) -> u64, | |
| (vec4<f32>, vec4<f32>) -> f32, | |
| (vec4<f16>, vec4<f16>) -> f16, | |
| (vec4<f64>, vec4<f64>) -> f64, | |
| ], | |
| conclude: Scalar, | |
| } | |
| DEBUG overloads after arg 0: List { | |
| rules: [ | |
| (vec3<f32>, vec3<f32>) -> f32, | |
| ], | |
| conclude: Scalar, | |
| } | |
| DEBUG overloads after arg 1: List { | |
| rules: [ | |
| (vec3<f32>, vec3<f32>) -> f32, | |
| ], | |
| conclude: Scalar, | |
| } | |
| DEBUG initial overloads for Saturate: List { | |
| rules: [ | |
| ({AbstractFloat}) -> {AbstractFloat}, | |
| (f32) -> f32, | |
| (f16) -> f16, | |
| (f64) -> f64, | |
| (vec2<{AbstractFloat}>) -> vec2<{AbstractFloat}>, | |
| (vec2<f32>) -> vec2<f32>, | |
| (vec2<f16>) -> vec2<f16>, | |
| (vec2<f64>) -> vec2<f64>, | |
| (vec3<{AbstractFloat}>) -> vec3<{AbstractFloat}>, | |
| (vec3<f32>) -> vec3<f32>, | |
| (vec3<f16>) -> vec3<f16>, | |
| (vec3<f64>) -> vec3<f64>, | |
| (vec4<{AbstractFloat}>) -> vec4<{AbstractFloat}>, | |
| (vec4<f32>) -> vec4<f32>, | |
| (vec4<f16>) -> vec4<f16>, | |
| (vec4<f64>) -> vec4<f64>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG overloads after arg 0: List { | |
| rules: [ | |
| (f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG var LocalVariable { name: Some("out"), ty: [46], init: Some([10]) } | |
| INFO Skip function Some("to_tile_position") | |
| INFO Skip function Some("to_tile_position") | |
| INFO Skip function Some("to_tile_position") | |
| INFO Skip function Some("to_tile_position") | |
| INFO Skip function Some("to_tile_position") | |
| INFO Skip function Some("to_device_position_impl") | |
| INFO Skip function Some("to_device_position") | |
| INFO Skip function Some("to_device_position_transformed") | |
| INFO Skip function Some("to_tile_position") | |
| INFO Skip function Some("blend_color") | |
| INFO Skip function Some("to_tile_position") | |
| INFO Skip function Some("to_device_position_impl") | |
| INFO Skip function Some("to_device_position") | |
| INFO Skip function Some("to_device_position_transformed") | |
| INFO Skip function Some("to_tile_position") | |
| INFO Skip function Some("blend_color") | |
| INFO Skip function Some("to_tile_position") | |
| INFO Skip function Some("to_tile_position") | |
| INFO Skip function Some("to_tile_position") | |
| INFO Skip function Some("to_tile_position") | |
| INFO Skip function Some("to_tile_position") | |
| INFO Skip function Some("to_device_position_impl") | |
| INFO Skip function Some("to_device_position") | |
| INFO Skip function Some("to_device_position_transformed") | |
| INFO Skip function Some("to_tile_position") | |
| INFO Skip function Some("blend_color") | |
| INFO Creating texture 0x56390bb10800 of size 7680x4320x1 and format Bgra8Unorm, name 'path intermediate', handle 0 | |
| INFO Creating texture 0x56390bafb540 of size 7680x4320x1 and format Bgra8Unorm, name 'path intermediate msaa', handle 1 | |
| INFO Server-side decorations requested, but the Wayland server does not support them. Falling back to client-side decorations. | |
| DEBUG font matches for Attrs { color_opt: None, family: Name("Ubuntu"), stretch: Normal, style: Normal, weight: Weight(400), metadata: 2, cache_key_flags: CacheKeyFlags(0x0), metrics_opt: None, letter_spacing_opt: None, font_features: FontFeatures { features: [] } } in 160.659µs | |
| INFO Creating texture 0x56390bc57f00 of size 1024x1024x1 and format R8Unorm, name 'atlas', handle 2 | |
| INFO Creating buffer 0x56390ba3c430 of size 65536, name 'chunk-0', handle 3 | |
| INFO RPC{rpc.trace_id=00 rpc.deadline=2026-01-12T19:09:29.975123286Z otel.kind="server" otel.name="ZlaunchService.show"}: CompleteRequest | |
| INFO RPC{rpc.trace_id=00 rpc.deadline=2026-01-12T19:09:29.975123286Z otel.kind="server" otel.name="ZlaunchService.show"}: BufferResponse | |
| INFO RPC{rpc.trace_id=00 rpc.deadline=2026-01-12T19:09:29.975123286Z otel.kind="server" otel.name="ZlaunchService.show"}: SendResponse | |
| INFO Using surface present mode MAILBOX | |
| INFO Retaining current format: Bgra8Unorm | |
| INFO Destroying texture 0x56390bb10800, handle 0 | |
| INFO Destroying texture 0x56390bafb540, handle 1 | |
| INFO Creating texture 0x56390bb10800 of size 1944x1064x1 and format Bgra8Unorm, name 'path intermediate', handle 1 | |
| INFO Creating texture 0x56390bafb540 of size 1944x1064x1 and format Bgra8Unorm, name 'path intermediate msaa', handle 0 | |
| INFO Creating texture 0x56390be36540 of size 1024x1024x1 and format Bgra8Unorm, name 'atlas', handle 4 | |
| INFO Creating buffer 0x56390bbc7d80 of size 262144, name 'chunk-1', handle 5 | |
| INFO Creating buffer 0x56390bb23460 of size 262144, name 'chunk-2', handle 6 | |
| INFO Creating buffer 0x56390bbcd170 of size 4096, name 'chunk-0', handle 7 | |
| INFO Creating buffer 0x56390be4d430 of size 4096, name 'chunk-1', handle 8 | |
| INFO Creating buffer 0x56390bb22fd0 of size 16016, name 'chunk-2', handle 9 | |
| INFO Creating buffer 0x56390be426e0 of size 4592, name 'chunk-3', handle 10 | |
| WARN Acquire failed because the surface is out of date | |
| INFO Creating texture 0x56390be776d0 of size 2048x2048x1 and format Bgra8Unorm, name 'atlas', handle 11 | |
| INFO Creating buffer 0x56390bb3b7b0 of size 16777216, name 'chunk-3', handle 12 | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| INFO Creating buffer 0x56390bab95b0 of size 19824, name 'chunk-4', handle 13 | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| INFO Creating buffer 0x56390bb65fa0 of size 24640, name 'chunk-5', handle 14 | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| WARN Acquire failed because the surface is out of date | |
| INFO Destroying texture 0x56390bc57f00, handle 2 | |
| INFO Destroying texture 0x56390be36540, handle 4 | |
| INFO Destroying texture 0x56390be776d0, handle 11 | |
| INFO Destroying buffer 0x56390bb23460, handle 6 | |
| INFO Destroying buffer 0x56390ba3c430, handle 3 | |
| INFO Destroying buffer 0x56390bb3b7b0, handle 12 | |
| INFO Destroying buffer 0x56390bbc7d80, handle 5 | |
| INFO Destroying buffer 0x56390bb22fd0, handle 9 | |
| INFO Destroying buffer 0x56390bbcd170, handle 7 | |
| INFO Destroying buffer 0x56390bb65fa0, handle 14 | |
| INFO Destroying buffer 0x56390be4d430, handle 8 | |
| INFO Destroying buffer 0x56390bab95b0, handle 13 | |
| INFO Destroying buffer 0x56390be426e0, handle 10 | |
| INFO Destroying texture 0x56390bb10800, handle 1 | |
| INFO Destroying texture 0x56390bafb540, handle 0 | |
| ERROR window not found | |
| Stack backtrace: | |
| 0: <gpui::app::async_context::AsyncApp as gpui::AppContext>::update_window | |
| 1: gpui::window::Window::new::{{closure}} | |
| 2: gpui::platform::linux::wayland::window::WaylandWindowStatePtr::frame | |
| 3: <gpui::platform::linux::wayland::client::WaylandClientStatePtr as wayland_client::event_queue::Dispatch<wayland_client::protocol::wl_callback::WlCallback,wayland_backend::sys::client::ObjectId>>::event | |
| 4: wayland_client::event_queue::queue_callback | |
| 5: wayland_client::event_queue::EventQueue<State>::dispatching_impl | |
| 6: <core::cell::RefCell<calloop::sources::DispatcherInner<S,F>> as calloop::sources::EventDispatcher<Data>>::process_events | |
| 7: <gpui::platform::linux::wayland::client::WaylandClient as gpui::platform::linux::platform::LinuxClient>::run | |
| 8: gpui::platform::linux::platform::<impl gpui::platform::Platform for P>::run | |
| 9: gpui::app::Application::run | |
| 10: zlaunch::daemon::run | |
| 11: std::sys::backtrace::__rust_begin_short_backtrace | |
| 12: std::rt::lang_start::{{closure}} | |
| 13: std::rt::lang_start_internal | |
| 14: main | |
| 15: <unknown> | |
| 16: __libc_start_main | |
| 17: _start | |
| ERROR window not found | |
| Stack backtrace: | |
| 0: <gpui::app::async_context::AsyncApp as gpui::AppContext>::update_window | |
| 1: gpui::window::Window::new::{{closure}} | |
| 2: gpui::platform::linux::wayland::window::WaylandWindowStatePtr::frame | |
| 3: <gpui::platform::linux::wayland::client::WaylandClientStatePtr as wayland_client::event_queue::Dispatch<wayland_client::protocol::wl_callback::WlCallback,wayland_backend::sys::client::ObjectId>>::event | |
| 4: wayland_client::event_queue::queue_callback | |
| 5: wayland_client::event_queue::EventQueue<State>::dispatching_impl | |
| 6: <core::cell::RefCell<calloop::sources::DispatcherInner<S,F>> as calloop::sources::EventDispatcher<Data>>::process_events | |
| 7: <gpui::platform::linux::wayland::client::WaylandClient as gpui::platform::linux::platform::LinuxClient>::run | |
| 8: gpui::platform::linux::platform::<impl gpui::platform::Platform for P>::run | |
| 9: gpui::app::Application::run | |
| 10: zlaunch::daemon::run | |
| 11: std::sys::backtrace::__rust_begin_short_backtrace | |
| 12: std::rt::lang_start::{{closure}} | |
| 13: std::rt::lang_start_internal | |
| 14: main | |
| 15: <unknown> | |
| 16: __libc_start_main | |
| 17: _start | |
| ERROR window not found | |
| Stack backtrace: | |
| 0: <gpui::app::async_context::AsyncApp as gpui::AppContext>::update_window | |
| 1: gpui::window::Window::new::{{closure}} | |
| 2: gpui::platform::linux::wayland::window::WaylandWindowStatePtr::frame | |
| 3: <gpui::platform::linux::wayland::client::WaylandClientStatePtr as wayland_client::event_queue::Dispatch<wayland_client::protocol::wl_callback::WlCallback,wayland_backend::sys::client::ObjectId>>::event | |
| 4: wayland_client::event_queue::queue_callback | |
| 5: wayland_client::event_queue::EventQueue<State>::dispatching_impl | |
| 6: <core::cell::RefCell<calloop::sources::DispatcherInner<S,F>> as calloop::sources::EventDispatcher<Data>>::process_events | |
| 7: <gpui::platform::linux::wayland::client::WaylandClient as gpui::platform::linux::platform::LinuxClient>::run | |
| 8: gpui::platform::linux::platform::<impl gpui::platform::Platform for P>::run | |
| 9: gpui::app::Application::run | |
| 10: zlaunch::daemon::run | |
| 11: std::sys::backtrace::__rust_begin_short_backtrace | |
| 12: std::rt::lang_start::{{closure}} | |
| 13: std::rt::lang_start_internal | |
| 14: main | |
| 15: <unknown> | |
| 16: __libc_start_main | |
| 17: _start | |
| INFO RPC{rpc.trace_id=00 rpc.deadline=2026-01-12T19:09:59.853066020Z otel.kind="server"}: ReceiveRequest | |
| INFO RPC{rpc.trace_id=00 rpc.deadline=2026-01-12T19:09:59.853066020Z otel.kind="server"}: BeginRequest | |
| DEBUG SurfaceCapabilitiesKHR { min_image_count: 2, max_image_count: 8, current_extent: Extent2D { width: 4294967295, height: 4294967295 }, min_image_extent: Extent2D { width: 1, height: 1 }, max_image_extent: Extent2D { width: 16384, height: 16384 }, max_image_array_layers: 1, supported_transforms: IDENTITY, current_transform: IDENTITY, supported_composite_alpha: OPAQUE | PRE_MULTIPLIED, supported_usage_flags: TRANSFER_SRC | TRANSFER_DST | SAMPLED | STORAGE | COLOR_ATTACHMENT | INPUT_ATTACHMENT } | |
| INFO Using surface present mode MAILBOX | |
| INFO Creating a descriptor pool for at most 16 sets | |
| INFO Creating a descriptor pool for at most 16 sets | |
| INFO Initializing Blade pipelines for surface SurfaceInfo { format: Bgra8Unorm, alpha: PreMultiplied } | |
| DEBUG Resolving [0] = FunctionArgument(0) : Handle([1]) | |
| DEBUG Resolving [1] = Literal(AbstractFloat(0.3)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG Resolving [2] = Literal(AbstractFloat(0.59)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG Resolving [3] = Literal(AbstractFloat(0.11)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG Resolving [4] = Literal(F32(0.3)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [5] = Literal(F32(0.59)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [6] = Literal(F32(0.11)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [7] = Compose { ty: [1], components: [[4], [5], [6]] } : Handle([1]) | |
| DEBUG Initial overloads: List { | |
| rules: [ | |
| (vec2<{AbstractInt}>, vec2<{AbstractInt}>) -> {AbstractInt}, | |
| (vec2<{AbstractFloat}>, vec2<{AbstractFloat}>) -> {AbstractFloat}, | |
| (vec2<i32>, vec2<i32>) -> i32, | |
| (vec2<i64>, vec2<i64>) -> i64, | |
| (vec2<u32>, vec2<u32>) -> u32, | |
| (vec2<u64>, vec2<u64>) -> u64, | |
| (vec2<f32>, vec2<f32>) -> f32, | |
| (vec2<f16>, vec2<f16>) -> f16, | |
| (vec2<f64>, vec2<f64>) -> f64, | |
| (vec3<{AbstractInt}>, vec3<{AbstractInt}>) -> {AbstractInt}, | |
| (vec3<{AbstractFloat}>, vec3<{AbstractFloat}>) -> {AbstractFloat}, | |
| (vec3<i32>, vec3<i32>) -> i32, | |
| (vec3<i64>, vec3<i64>) -> i64, | |
| (vec3<u32>, vec3<u32>) -> u32, | |
| (vec3<u64>, vec3<u64>) -> u64, | |
| (vec3<f32>, vec3<f32>) -> f32, | |
| (vec3<f16>, vec3<f16>) -> f16, | |
| (vec3<f64>, vec3<f64>) -> f64, | |
| (vec4<{AbstractInt}>, vec4<{AbstractInt}>) -> {AbstractInt}, | |
| (vec4<{AbstractFloat}>, vec4<{AbstractFloat}>) -> {AbstractFloat}, | |
| (vec4<i32>, vec4<i32>) -> i32, | |
| (vec4<i64>, vec4<i64>) -> i64, | |
| (vec4<u32>, vec4<u32>) -> u32, | |
| (vec4<u64>, vec4<u64>) -> u64, | |
| (vec4<f32>, vec4<f32>) -> f32, | |
| (vec4<f16>, vec4<f16>) -> f16, | |
| (vec4<f64>, vec4<f64>) -> f64, | |
| ], | |
| conclude: Scalar, | |
| } | |
| DEBUG Supplying argument 0 of type vec3<f32> | |
| DEBUG Remaining overloads: List { | |
| rules: [ | |
| (vec3<f32>, vec3<f32>) -> f32, | |
| ], | |
| conclude: Scalar, | |
| } | |
| DEBUG Supplying argument 1 of type vec3<f32> | |
| DEBUG Remaining overloads: List { | |
| rules: [ | |
| (vec3<f32>, vec3<f32>) -> f32, | |
| ], | |
| conclude: Scalar, | |
| } | |
| DEBUG initial overloads for Dot, List { | |
| rules: [ | |
| (vec2<{AbstractInt}>, vec2<{AbstractInt}>) -> {AbstractInt}, | |
| (vec2<{AbstractFloat}>, vec2<{AbstractFloat}>) -> {AbstractFloat}, | |
| (vec2<i32>, vec2<i32>) -> i32, | |
| (vec2<i64>, vec2<i64>) -> i64, | |
| (vec2<u32>, vec2<u32>) -> u32, | |
| (vec2<u64>, vec2<u64>) -> u64, | |
| (vec2<f32>, vec2<f32>) -> f32, | |
| (vec2<f16>, vec2<f16>) -> f16, | |
| (vec2<f64>, vec2<f64>) -> f64, | |
| (vec3<{AbstractInt}>, vec3<{AbstractInt}>) -> {AbstractInt}, | |
| (vec3<{AbstractFloat}>, vec3<{AbstractFloat}>) -> {AbstractFloat}, | |
| (vec3<i32>, vec3<i32>) -> i32, | |
| (vec3<i64>, vec3<i64>) -> i64, | |
| (vec3<u32>, vec3<u32>) -> u32, | |
| (vec3<u64>, vec3<u64>) -> u64, | |
| (vec3<f32>, vec3<f32>) -> f32, | |
| (vec3<f16>, vec3<f16>) -> f16, | |
| (vec3<f64>, vec3<f64>) -> f64, | |
| (vec4<{AbstractInt}>, vec4<{AbstractInt}>) -> {AbstractInt}, | |
| (vec4<{AbstractFloat}>, vec4<{AbstractFloat}>) -> {AbstractFloat}, | |
| (vec4<i32>, vec4<i32>) -> i32, | |
| (vec4<i64>, vec4<i64>) -> i64, | |
| (vec4<u32>, vec4<u32>) -> u32, | |
| (vec4<u64>, vec4<u64>) -> u64, | |
| (vec4<f32>, vec4<f32>) -> f32, | |
| (vec4<f16>, vec4<f16>) -> f16, | |
| (vec4<f64>, vec4<f64>) -> f64, | |
| ], | |
| conclude: Scalar, | |
| } | |
| DEBUG overloads after arg 0 of type vec3<f32>: List { | |
| rules: [ | |
| (vec3<f32>, vec3<f32>) -> f32, | |
| ], | |
| conclude: Scalar, | |
| } | |
| DEBUG overloads after arg 1 of type vec3<f32>: List { | |
| rules: [ | |
| (vec3<f32>, vec3<f32>) -> f32, | |
| ], | |
| conclude: Scalar, | |
| } | |
| DEBUG Resolving [8] = Math { fun: Dot, arg: [0], arg1: Some([7]), arg2: None, arg3: None } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [0] = FunctionArgument(0) : Handle([0]) | |
| DEBUG Resolving [1] = FunctionArgument(1) : Handle([1]) | |
| DEBUG Resolving [2] = CallResult([0]) : Handle([0]) | |
| DEBUG Resolving [3] = Literal(AbstractFloat(4.0)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG Resolving [4] = Literal(AbstractFloat(0.75)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG wgsl automatic_conversion_consensus: {AbstractFloat}, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [5] = Literal(F32(0.75)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [6] = Binary { op: Subtract, left: [5], right: [2] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG wgsl automatic_conversion_consensus: {AbstractFloat}, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [7] = Literal(F32(4.0)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [8] = Binary { op: Multiply, left: [7], right: [6] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Initial overloads: List { | |
| rules: [ | |
| ({AbstractFloat}) -> {AbstractFloat}, | |
| (f32) -> f32, | |
| (f16) -> f16, | |
| (f64) -> f64, | |
| (vec2<{AbstractFloat}>) -> vec2<{AbstractFloat}>, | |
| (vec2<f32>) -> vec2<f32>, | |
| (vec2<f16>) -> vec2<f16>, | |
| (vec2<f64>) -> vec2<f64>, | |
| (vec3<{AbstractFloat}>) -> vec3<{AbstractFloat}>, | |
| (vec3<f32>) -> vec3<f32>, | |
| (vec3<f16>) -> vec3<f16>, | |
| (vec3<f64>) -> vec3<f64>, | |
| (vec4<{AbstractFloat}>) -> vec4<{AbstractFloat}>, | |
| (vec4<f32>) -> vec4<f32>, | |
| (vec4<f16>) -> vec4<f16>, | |
| (vec4<f64>) -> vec4<f64>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG Supplying argument 0 of type f32 | |
| DEBUG Remaining overloads: List { | |
| rules: [ | |
| (f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG initial overloads for Saturate, List { | |
| rules: [ | |
| ({AbstractFloat}) -> {AbstractFloat}, | |
| (f32) -> f32, | |
| (f16) -> f16, | |
| (f64) -> f64, | |
| (vec2<{AbstractFloat}>) -> vec2<{AbstractFloat}>, | |
| (vec2<f32>) -> vec2<f32>, | |
| (vec2<f16>) -> vec2<f16>, | |
| (vec2<f64>) -> vec2<f64>, | |
| (vec3<{AbstractFloat}>) -> vec3<{AbstractFloat}>, | |
| (vec3<f32>) -> vec3<f32>, | |
| (vec3<f16>) -> vec3<f16>, | |
| (vec3<f64>) -> vec3<f64>, | |
| (vec4<{AbstractFloat}>) -> vec4<{AbstractFloat}>, | |
| (vec4<f32>) -> vec4<f32>, | |
| (vec4<f16>) -> vec4<f16>, | |
| (vec4<f64>) -> vec4<f64>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG overloads after arg 0 of type f32: List { | |
| rules: [ | |
| (f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG Resolving [9] = Math { fun: Saturate, arg: [8], arg1: None, arg2: None, arg3: None } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG wgsl automatic_conversion_consensus: f32, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [10] = Binary { op: Multiply, left: [0], right: [9] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [0] = FunctionArgument(0) : Handle([0]) | |
| DEBUG Resolving [1] = FunctionArgument(1) : Handle([0]) | |
| DEBUG Resolving [2] = Literal(AbstractFloat(1.0)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG wgsl automatic_conversion_consensus: f32, {AbstractFloat} | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [3] = Literal(F32(1.0)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [4] = Binary { op: Add, left: [1], right: [3] } : Handle([0]) | |
| DEBUG wgsl automatic_conversion_consensus: f32, f32 | |
| DEBUG consensus: f32 | |
| DEBUG wgsl automatic_conversion_consensus: f32, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [5] = Binary { op: Multiply, left: [0], right: [4] } : Handle([0]) | |
| DEBUG Resolving [6] = Binary { op: Multiply, left: [0], right: [1] } : Handle([0]) | |
| DEBUG Resolving [7] = Literal(AbstractFloat(1.0)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG wgsl automatic_conversion_consensus: f32, {AbstractFloat} | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [8] = Literal(F32(1.0)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [9] = Binary { op: Add, left: [6], right: [8] } : Handle([0]) | |
| DEBUG wgsl automatic_conversion_consensus: f32, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [10] = Binary { op: Divide, left: [5], right: [9] } : Handle([0]) | |
| DEBUG Resolving [0] = FunctionArgument(0) : Handle([0]) | |
| DEBUG Resolving [1] = FunctionArgument(1) : Handle([0]) | |
| DEBUG Resolving [2] = FunctionArgument(2) : Handle([2]) | |
| DEBUG Resolving [3] = AccessIndex { base: [2], index: 0 } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG wgsl automatic_conversion_consensus: f32, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [4] = Binary { op: Multiply, left: [3], right: [1] } : Handle([0]) | |
| DEBUG Resolving [5] = AccessIndex { base: [2], index: 1 } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG wgsl automatic_conversion_consensus: f32, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [6] = Binary { op: Add, left: [4], right: [5] } : Handle([0]) | |
| DEBUG wgsl automatic_conversion_consensus: f32, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [7] = Binary { op: Multiply, left: [6], right: [0] } : Handle([0]) | |
| DEBUG Resolving [8] = AccessIndex { base: [2], index: 2 } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG wgsl automatic_conversion_consensus: f32, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [9] = Binary { op: Multiply, left: [8], right: [1] } : Handle([0]) | |
| DEBUG Resolving [10] = AccessIndex { base: [2], index: 3 } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG wgsl automatic_conversion_consensus: f32, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [11] = Binary { op: Add, left: [9], right: [10] } : Handle([0]) | |
| DEBUG wgsl automatic_conversion_consensus: f32, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [12] = Binary { op: Add, left: [7], right: [11] } : Handle([0]) | |
| DEBUG Resolving [13] = Literal(AbstractFloat(1.0)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG wgsl automatic_conversion_consensus: {AbstractFloat}, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [14] = Literal(F32(1.0)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [15] = Binary { op: Subtract, left: [14], right: [0] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG wgsl automatic_conversion_consensus: f32, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [16] = Binary { op: Multiply, left: [0], right: [15] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG wgsl automatic_conversion_consensus: f32, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [17] = Binary { op: Multiply, left: [16], right: [12] } : Handle([0]) | |
| DEBUG wgsl automatic_conversion_consensus: f32, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [18] = Binary { op: Add, left: [0], right: [17] } : Handle([0]) | |
| DEBUG Resolving [0] = FunctionArgument(0) : Handle([0]) | |
| DEBUG Resolving [1] = FunctionArgument(1) : Handle([1]) | |
| DEBUG Resolving [2] = FunctionArgument(2) : Handle([0]) | |
| DEBUG Resolving [3] = FunctionArgument(3) : Handle([2]) | |
| DEBUG Resolving [4] = CallResult([1]) : Handle([0]) | |
| DEBUG Resolving [5] = CallResult([0]) : Handle([0]) | |
| DEBUG Resolving [6] = CallResult([2]) : Handle([0]) | |
| DEBUG Resolving [7] = CallResult([3]) : Handle([0]) | |
| DEBUG Resolving [0] = Literal(AbstractFloat(3.1415926)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG Resolving [1] = Literal(F32(3.1415925)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [2] = Literal(AbstractFloat(0.2126)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG Resolving [3] = Literal(AbstractFloat(0.7152)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG Resolving [4] = Literal(AbstractFloat(0.0722)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG Resolving [5] = Literal(F32(0.2126)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [6] = Literal(F32(0.7152)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [7] = Literal(F32(0.0722)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [8] = Compose { ty: [1], components: [[5], [6], [7]] } : Handle([1]) | |
| DEBUG Resolving [9] = Literal(AbstractInt(2)) : Value(Scalar(Scalar { kind: AbstractInt, width: 8 })) | |
| DEBUG Resolving [0] = FunctionArgument(0) : Handle([3]) | |
| DEBUG Resolving [1] = GlobalVariable([0]) : Value(Pointer { base: [5], space: Uniform }) | |
| DEBUG Resolving [2] = AccessIndex { base: [1], index: 0 } : Value(Pointer { base: [3], space: Uniform }) | |
| DEBUG Resolving [3] = Load { pointer: [2] } : Handle([3]) | |
| DEBUG wgsl automatic_conversion_consensus: vec2<f32>, vec2<f32> | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [4] = Binary { op: Divide, left: [0], right: [3] } : Handle([3]) | |
| DEBUG Resolving [5] = Literal(AbstractFloat(2.0)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG Resolving [6] = Literal(AbstractFloat(2.0)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG Resolving [7] = Literal(AbstractFloat(-2.0)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG Resolving [8] = Literal(F32(2.0)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [9] = Literal(F32(-2.0)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [10] = Compose { ty: [3], components: [[8], [9]] } : Handle([3]) | |
| DEBUG wgsl automatic_conversion_consensus: vec2<f32>, vec2<f32> | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [11] = Binary { op: Multiply, left: [4], right: [10] } : Handle([3]) | |
| DEBUG Resolving [12] = Literal(AbstractFloat(1.0)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG Resolving [13] = Literal(AbstractFloat(-1.0)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG Resolving [14] = Literal(AbstractFloat(1.0)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG Resolving [15] = Literal(F32(-1.0)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [16] = Literal(F32(1.0)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [17] = Compose { ty: [3], components: [[15], [16]] } : Handle([3]) | |
| DEBUG wgsl automatic_conversion_consensus: vec2<f32>, vec2<f32> | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [18] = Binary { op: Add, left: [11], right: [17] } : Handle([3]) | |
| DEBUG Resolving [19] = Literal(AbstractFloat(0.0)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG Resolving [20] = Literal(AbstractFloat(1.0)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG Resolving [21] = Literal(F32(0.0)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [22] = Literal(F32(1.0)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [23] = Compose { ty: [2], components: [[18], [21], [22]] } : Handle([2]) | |
| DEBUG Resolving [0] = FunctionArgument(0) : Handle([3]) | |
| DEBUG Resolving [1] = FunctionArgument(1) : Handle([8]) | |
| DEBUG Resolving [2] = AccessIndex { base: [1], index: 1 } : Handle([3]) | |
| DEBUG Resolving [3] = As { expr: [2], kind: Float, convert: Some(4) } : Value(Vector { size: Bi, scalar: Scalar { kind: Float, width: 4 } }) | |
| DEBUG wgsl automatic_conversion_consensus: vec2<f32>, vec2<f32> | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [4] = Binary { op: Multiply, left: [0], right: [3] } : Handle([3]) | |
| DEBUG Resolving [5] = AccessIndex { base: [1], index: 0 } : Handle([3]) | |
| DEBUG wgsl automatic_conversion_consensus: vec2<f32>, vec2<f32> | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [6] = Binary { op: Add, left: [4], right: [5] } : Handle([3]) | |
| DEBUG Resolving [7] = CallResult([5]) : Handle([2]) | |
| DEBUG Resolving [0] = FunctionArgument(0) : Handle([3]) | |
| DEBUG Resolving [1] = FunctionArgument(1) : Handle([8]) | |
| DEBUG Resolving [2] = FunctionArgument(2) : Handle([21]) | |
| DEBUG Resolving [3] = AccessIndex { base: [1], index: 1 } : Handle([3]) | |
| DEBUG Resolving [4] = As { expr: [3], kind: Float, convert: Some(4) } : Value(Vector { size: Bi, scalar: Scalar { kind: Float, width: 4 } }) | |
| DEBUG wgsl automatic_conversion_consensus: vec2<f32>, vec2<f32> | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [5] = Binary { op: Multiply, left: [0], right: [4] } : Handle([3]) | |
| DEBUG Resolving [6] = AccessIndex { base: [1], index: 0 } : Handle([3]) | |
| DEBUG wgsl automatic_conversion_consensus: vec2<f32>, vec2<f32> | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [7] = Binary { op: Add, left: [5], right: [6] } : Handle([3]) | |
| DEBUG Resolving [8] = AccessIndex { base: [2], index: 0 } : Handle([20]) | |
| DEBUG Initial overloads: [ | |
| (mat2x2<{AbstractFloat}>) -> mat2x2<{AbstractFloat}>, | |
| (mat2x2<f32>) -> mat2x2<f32>, | |
| (mat2x2<f16>) -> mat2x2<f16>, | |
| (mat2x2<f64>) -> mat2x2<f64>, | |
| (mat2x3<{AbstractFloat}>) -> mat3x2<{AbstractFloat}>, | |
| (mat2x3<f32>) -> mat3x2<f32>, | |
| (mat2x3<f16>) -> mat3x2<f16>, | |
| (mat2x3<f64>) -> mat3x2<f64>, | |
| (mat2x4<{AbstractFloat}>) -> mat4x2<{AbstractFloat}>, | |
| (mat2x4<f32>) -> mat4x2<f32>, | |
| (mat2x4<f16>) -> mat4x2<f16>, | |
| (mat2x4<f64>) -> mat4x2<f64>, | |
| (mat3x2<{AbstractFloat}>) -> mat2x3<{AbstractFloat}>, | |
| (mat3x2<f32>) -> mat2x3<f32>, | |
| (mat3x2<f16>) -> mat2x3<f16>, | |
| (mat3x2<f64>) -> mat2x3<f64>, | |
| (mat3x3<{AbstractFloat}>) -> mat3x3<{AbstractFloat}>, | |
| (mat3x3<f32>) -> mat3x3<f32>, | |
| (mat3x3<f16>) -> mat3x3<f16>, | |
| (mat3x3<f64>) -> mat3x3<f64>, | |
| (mat3x4<{AbstractFloat}>) -> mat4x3<{AbstractFloat}>, | |
| (mat3x4<f32>) -> mat4x3<f32>, | |
| (mat3x4<f16>) -> mat4x3<f16>, | |
| (mat3x4<f64>) -> mat4x3<f64>, | |
| (mat4x2<{AbstractFloat}>) -> mat2x4<{AbstractFloat}>, | |
| (mat4x2<f32>) -> mat2x4<f32>, | |
| (mat4x2<f16>) -> mat2x4<f16>, | |
| (mat4x2<f64>) -> mat2x4<f64>, | |
| (mat4x3<{AbstractFloat}>) -> mat3x4<{AbstractFloat}>, | |
| (mat4x3<f32>) -> mat3x4<f32>, | |
| (mat4x3<f16>) -> mat3x4<f16>, | |
| (mat4x3<f64>) -> mat3x4<f64>, | |
| (mat4x4<{AbstractFloat}>) -> mat4x4<{AbstractFloat}>, | |
| (mat4x4<f32>) -> mat4x4<f32>, | |
| (mat4x4<f16>) -> mat4x4<f16>, | |
| (mat4x4<f64>) -> mat4x4<f64>, | |
| ] | |
| DEBUG Supplying argument 0 of type mat2x2<f32> | |
| DEBUG arg 0 of type mat2x2<f32> | |
| DEBUG considering rule (mat2x2<{AbstractFloat}>) -> mat2x2<{AbstractFloat}> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat2x2<f32>) -> mat2x2<f32> | |
| DEBUG types are equivalent | |
| DEBUG considering rule (mat2x2<f16>) -> mat2x2<f16> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat2x2<f64>) -> mat2x2<f64> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat2x3<{AbstractFloat}>) -> mat3x2<{AbstractFloat}> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat2x3<f32>) -> mat3x2<f32> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat2x3<f16>) -> mat3x2<f16> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat2x3<f64>) -> mat3x2<f64> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat2x4<{AbstractFloat}>) -> mat4x2<{AbstractFloat}> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat2x4<f32>) -> mat4x2<f32> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat2x4<f16>) -> mat4x2<f16> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat2x4<f64>) -> mat4x2<f64> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat3x2<{AbstractFloat}>) -> mat2x3<{AbstractFloat}> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat3x2<f32>) -> mat2x3<f32> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat3x2<f16>) -> mat2x3<f16> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat3x2<f64>) -> mat2x3<f64> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat3x3<{AbstractFloat}>) -> mat3x3<{AbstractFloat}> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat3x3<f32>) -> mat3x3<f32> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat3x3<f16>) -> mat3x3<f16> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat3x3<f64>) -> mat3x3<f64> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat3x4<{AbstractFloat}>) -> mat4x3<{AbstractFloat}> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat3x4<f32>) -> mat4x3<f32> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat3x4<f16>) -> mat4x3<f16> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat3x4<f64>) -> mat4x3<f64> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat4x2<{AbstractFloat}>) -> mat2x4<{AbstractFloat}> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat4x2<f32>) -> mat2x4<f32> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat4x2<f16>) -> mat2x4<f16> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat4x2<f64>) -> mat2x4<f64> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat4x3<{AbstractFloat}>) -> mat3x4<{AbstractFloat}> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat4x3<f32>) -> mat3x4<f32> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat4x3<f16>) -> mat3x4<f16> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat4x3<f64>) -> mat3x4<f64> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat4x4<{AbstractFloat}>) -> mat4x4<{AbstractFloat}> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat4x4<f32>) -> mat4x4<f32> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat4x4<f16>) -> mat4x4<f16> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat4x4<f64>) -> mat4x4<f64> | |
| DEBUG no conversion possible | |
| DEBUG Remaining overloads: [ | |
| (mat2x2<f32>) -> mat2x2<f32>, | |
| ] | |
| DEBUG initial overloads for Transpose, [ | |
| (mat2x2<{AbstractFloat}>) -> mat2x2<{AbstractFloat}>, | |
| (mat2x2<f32>) -> mat2x2<f32>, | |
| (mat2x2<f16>) -> mat2x2<f16>, | |
| (mat2x2<f64>) -> mat2x2<f64>, | |
| (mat2x3<{AbstractFloat}>) -> mat3x2<{AbstractFloat}>, | |
| (mat2x3<f32>) -> mat3x2<f32>, | |
| (mat2x3<f16>) -> mat3x2<f16>, | |
| (mat2x3<f64>) -> mat3x2<f64>, | |
| (mat2x4<{AbstractFloat}>) -> mat4x2<{AbstractFloat}>, | |
| (mat2x4<f32>) -> mat4x2<f32>, | |
| (mat2x4<f16>) -> mat4x2<f16>, | |
| (mat2x4<f64>) -> mat4x2<f64>, | |
| (mat3x2<{AbstractFloat}>) -> mat2x3<{AbstractFloat}>, | |
| (mat3x2<f32>) -> mat2x3<f32>, | |
| (mat3x2<f16>) -> mat2x3<f16>, | |
| (mat3x2<f64>) -> mat2x3<f64>, | |
| (mat3x3<{AbstractFloat}>) -> mat3x3<{AbstractFloat}>, | |
| (mat3x3<f32>) -> mat3x3<f32>, | |
| (mat3x3<f16>) -> mat3x3<f16>, | |
| (mat3x3<f64>) -> mat3x3<f64>, | |
| (mat3x4<{AbstractFloat}>) -> mat4x3<{AbstractFloat}>, | |
| (mat3x4<f32>) -> mat4x3<f32>, | |
| (mat3x4<f16>) -> mat4x3<f16>, | |
| (mat3x4<f64>) -> mat4x3<f64>, | |
| (mat4x2<{AbstractFloat}>) -> mat2x4<{AbstractFloat}>, | |
| (mat4x2<f32>) -> mat2x4<f32>, | |
| (mat4x2<f16>) -> mat2x4<f16>, | |
| (mat4x2<f64>) -> mat2x4<f64>, | |
| (mat4x3<{AbstractFloat}>) -> mat3x4<{AbstractFloat}>, | |
| (mat4x3<f32>) -> mat3x4<f32>, | |
| (mat4x3<f16>) -> mat3x4<f16>, | |
| (mat4x3<f64>) -> mat3x4<f64>, | |
| (mat4x4<{AbstractFloat}>) -> mat4x4<{AbstractFloat}>, | |
| (mat4x4<f32>) -> mat4x4<f32>, | |
| (mat4x4<f16>) -> mat4x4<f16>, | |
| (mat4x4<f64>) -> mat4x4<f64>, | |
| ] | |
| DEBUG arg 0 of type mat2x2<f32> | |
| DEBUG considering rule (mat2x2<{AbstractFloat}>) -> mat2x2<{AbstractFloat}> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat2x2<f32>) -> mat2x2<f32> | |
| DEBUG types are equivalent | |
| DEBUG considering rule (mat2x2<f16>) -> mat2x2<f16> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat2x2<f64>) -> mat2x2<f64> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat2x3<{AbstractFloat}>) -> mat3x2<{AbstractFloat}> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat2x3<f32>) -> mat3x2<f32> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat2x3<f16>) -> mat3x2<f16> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat2x3<f64>) -> mat3x2<f64> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat2x4<{AbstractFloat}>) -> mat4x2<{AbstractFloat}> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat2x4<f32>) -> mat4x2<f32> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat2x4<f16>) -> mat4x2<f16> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat2x4<f64>) -> mat4x2<f64> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat3x2<{AbstractFloat}>) -> mat2x3<{AbstractFloat}> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat3x2<f32>) -> mat2x3<f32> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat3x2<f16>) -> mat2x3<f16> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat3x2<f64>) -> mat2x3<f64> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat3x3<{AbstractFloat}>) -> mat3x3<{AbstractFloat}> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat3x3<f32>) -> mat3x3<f32> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat3x3<f16>) -> mat3x3<f16> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat3x3<f64>) -> mat3x3<f64> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat3x4<{AbstractFloat}>) -> mat4x3<{AbstractFloat}> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat3x4<f32>) -> mat4x3<f32> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat3x4<f16>) -> mat4x3<f16> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat3x4<f64>) -> mat4x3<f64> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat4x2<{AbstractFloat}>) -> mat2x4<{AbstractFloat}> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat4x2<f32>) -> mat2x4<f32> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat4x2<f16>) -> mat2x4<f16> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat4x2<f64>) -> mat2x4<f64> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat4x3<{AbstractFloat}>) -> mat3x4<{AbstractFloat}> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat4x3<f32>) -> mat3x4<f32> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat4x3<f16>) -> mat3x4<f16> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat4x3<f64>) -> mat3x4<f64> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat4x4<{AbstractFloat}>) -> mat4x4<{AbstractFloat}> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat4x4<f32>) -> mat4x4<f32> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat4x4<f16>) -> mat4x4<f16> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat4x4<f64>) -> mat4x4<f64> | |
| DEBUG no conversion possible | |
| DEBUG overloads after arg 0 of type mat2x2<f32>: [ | |
| (mat2x2<f32>) -> mat2x2<f32>, | |
| ] | |
| DEBUG Resolving [9] = Math { fun: Transpose, arg: [8], arg1: None, arg2: None, arg3: None } : Value(Matrix { columns: Bi, rows: Bi, scalar: Scalar { kind: Float, width: 4 } }) | |
| DEBUG wgsl automatic_conversion_consensus: mat2x2<f32>, vec2<f32> | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [10] = Binary { op: Multiply, left: [9], right: [7] } : Value(Vector { size: Bi, scalar: Scalar { kind: Float, width: 4 } }) | |
| DEBUG Resolving [11] = AccessIndex { base: [2], index: 1 } : Handle([3]) | |
| DEBUG wgsl automatic_conversion_consensus: vec2<f32>, vec2<f32> | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [12] = Binary { op: Add, left: [10], right: [11] } : Value(Vector { size: Bi, scalar: Scalar { kind: Float, width: 4 } }) | |
| DEBUG Resolving [13] = CallResult([5]) : Handle([2]) | |
| DEBUG Resolving [0] = FunctionArgument(0) : Handle([3]) | |
| DEBUG Resolving [1] = FunctionArgument(1) : Handle([19]) | |
| DEBUG Resolving [2] = GlobalVariable([3]) : Handle([6]) | |
| DEBUG Resolving [3] = Literal(AbstractInt(0)) : Value(Scalar(Scalar { kind: AbstractInt, width: 8 })) | |
| DEBUG Resolving [4] = Literal(I32(0)) : Value(Scalar(Scalar { kind: Sint, width: 4 })) | |
| DEBUG Resolving [5] = ImageQuery { image: [2], query: Size { level: Some([4]) } } : Value(Vector { size: Bi, scalar: Scalar { kind: Uint, width: 4 } }) | |
| DEBUG Resolving [6] = As { expr: [5], kind: Float, convert: Some(4) } : Value(Vector { size: Bi, scalar: Scalar { kind: Float, width: 4 } }) | |
| DEBUG Resolving [7] = AccessIndex { base: [1], index: 3 } : Handle([18]) | |
| DEBUG Resolving [8] = AccessIndex { base: [7], index: 0 } : Handle([17]) | |
| DEBUG Resolving [9] = As { expr: [8], kind: Float, convert: Some(4) } : Value(Vector { size: Bi, scalar: Scalar { kind: Float, width: 4 } }) | |
| DEBUG Resolving [10] = AccessIndex { base: [1], index: 3 } : Handle([18]) | |
| DEBUG Resolving [11] = AccessIndex { base: [10], index: 1 } : Handle([17]) | |
| DEBUG Resolving [12] = As { expr: [11], kind: Float, convert: Some(4) } : Value(Vector { size: Bi, scalar: Scalar { kind: Float, width: 4 } }) | |
| DEBUG wgsl automatic_conversion_consensus: vec2<f32>, vec2<f32> | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [13] = Binary { op: Multiply, left: [0], right: [12] } : Handle([3]) | |
| DEBUG wgsl automatic_conversion_consensus: vec2<f32>, vec2<f32> | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [14] = Binary { op: Add, left: [9], right: [13] } : Value(Vector { size: Bi, scalar: Scalar { kind: Float, width: 4 } }) | |
| DEBUG wgsl automatic_conversion_consensus: vec2<f32>, vec2<f32> | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [15] = Binary { op: Divide, left: [14], right: [6] } : Value(Vector { size: Bi, scalar: Scalar { kind: Float, width: 4 } }) | |
| DEBUG Resolving [0] = FunctionArgument(0) : Handle([3]) | |
| DEBUG Resolving [1] = FunctionArgument(1) : Handle([8]) | |
| DEBUG Resolving [2] = AccessIndex { base: [1], index: 0 } : Handle([3]) | |
| DEBUG wgsl automatic_conversion_consensus: vec2<f32>, vec2<f32> | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [3] = Binary { op: Subtract, left: [0], right: [2] } : Handle([3]) | |
| DEBUG Resolving [4] = AccessIndex { base: [1], index: 0 } : Handle([3]) | |
| DEBUG Resolving [5] = AccessIndex { base: [1], index: 1 } : Handle([3]) | |
| DEBUG wgsl automatic_conversion_consensus: vec2<f32>, vec2<f32> | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [6] = Binary { op: Add, left: [4], right: [5] } : Handle([3]) | |
| DEBUG wgsl automatic_conversion_consensus: vec2<f32>, vec2<f32> | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [7] = Binary { op: Subtract, left: [6], right: [0] } : Handle([3]) | |
| DEBUG Resolving [8] = AccessIndex { base: [3], index: 0 } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [9] = AccessIndex { base: [7], index: 0 } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [10] = AccessIndex { base: [3], index: 1 } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [11] = AccessIndex { base: [7], index: 1 } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [12] = Compose { ty: [2], components: [[8], [9], [10], [11]] } : Handle([2]) | |
| DEBUG Resolving [0] = FunctionArgument(0) : Handle([3]) | |
| DEBUG Resolving [1] = FunctionArgument(1) : Handle([8]) | |
| DEBUG Resolving [2] = FunctionArgument(2) : Handle([8]) | |
| DEBUG Resolving [3] = AccessIndex { base: [1], index: 1 } : Handle([3]) | |
| DEBUG Resolving [4] = As { expr: [3], kind: Float, convert: Some(4) } : Value(Vector { size: Bi, scalar: Scalar { kind: Float, width: 4 } }) | |
| DEBUG wgsl automatic_conversion_consensus: vec2<f32>, vec2<f32> | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [5] = Binary { op: Multiply, left: [0], right: [4] } : Handle([3]) | |
| DEBUG Resolving [6] = AccessIndex { base: [1], index: 0 } : Handle([3]) | |
| DEBUG wgsl automatic_conversion_consensus: vec2<f32>, vec2<f32> | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [7] = Binary { op: Add, left: [5], right: [6] } : Handle([3]) | |
| DEBUG Resolving [8] = CallResult([9]) : Handle([2]) | |
| DEBUG Resolving [0] = FunctionArgument(0) : Handle([3]) | |
| DEBUG Resolving [1] = FunctionArgument(1) : Handle([8]) | |
| DEBUG Resolving [2] = FunctionArgument(2) : Handle([8]) | |
| DEBUG Resolving [3] = FunctionArgument(3) : Handle([21]) | |
| DEBUG Resolving [4] = AccessIndex { base: [1], index: 1 } : Handle([3]) | |
| DEBUG Resolving [5] = As { expr: [4], kind: Float, convert: Some(4) } : Value(Vector { size: Bi, scalar: Scalar { kind: Float, width: 4 } }) | |
| DEBUG wgsl automatic_conversion_consensus: vec2<f32>, vec2<f32> | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [6] = Binary { op: Multiply, left: [0], right: [5] } : Handle([3]) | |
| DEBUG Resolving [7] = AccessIndex { base: [1], index: 0 } : Handle([3]) | |
| DEBUG wgsl automatic_conversion_consensus: vec2<f32>, vec2<f32> | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [8] = Binary { op: Add, left: [6], right: [7] } : Handle([3]) | |
| DEBUG Resolving [9] = AccessIndex { base: [3], index: 0 } : Handle([20]) | |
| DEBUG Initial overloads: [ | |
| (mat2x2<{AbstractFloat}>) -> mat2x2<{AbstractFloat}>, | |
| (mat2x2<f32>) -> mat2x2<f32>, | |
| (mat2x2<f16>) -> mat2x2<f16>, | |
| (mat2x2<f64>) -> mat2x2<f64>, | |
| (mat2x3<{AbstractFloat}>) -> mat3x2<{AbstractFloat}>, | |
| (mat2x3<f32>) -> mat3x2<f32>, | |
| (mat2x3<f16>) -> mat3x2<f16>, | |
| (mat2x3<f64>) -> mat3x2<f64>, | |
| (mat2x4<{AbstractFloat}>) -> mat4x2<{AbstractFloat}>, | |
| (mat2x4<f32>) -> mat4x2<f32>, | |
| (mat2x4<f16>) -> mat4x2<f16>, | |
| (mat2x4<f64>) -> mat4x2<f64>, | |
| (mat3x2<{AbstractFloat}>) -> mat2x3<{AbstractFloat}>, | |
| (mat3x2<f32>) -> mat2x3<f32>, | |
| (mat3x2<f16>) -> mat2x3<f16>, | |
| (mat3x2<f64>) -> mat2x3<f64>, | |
| (mat3x3<{AbstractFloat}>) -> mat3x3<{AbstractFloat}>, | |
| (mat3x3<f32>) -> mat3x3<f32>, | |
| (mat3x3<f16>) -> mat3x3<f16>, | |
| (mat3x3<f64>) -> mat3x3<f64>, | |
| (mat3x4<{AbstractFloat}>) -> mat4x3<{AbstractFloat}>, | |
| (mat3x4<f32>) -> mat4x3<f32>, | |
| (mat3x4<f16>) -> mat4x3<f16>, | |
| (mat3x4<f64>) -> mat4x3<f64>, | |
| (mat4x2<{AbstractFloat}>) -> mat2x4<{AbstractFloat}>, | |
| (mat4x2<f32>) -> mat2x4<f32>, | |
| (mat4x2<f16>) -> mat2x4<f16>, | |
| (mat4x2<f64>) -> mat2x4<f64>, | |
| (mat4x3<{AbstractFloat}>) -> mat3x4<{AbstractFloat}>, | |
| (mat4x3<f32>) -> mat3x4<f32>, | |
| (mat4x3<f16>) -> mat3x4<f16>, | |
| (mat4x3<f64>) -> mat3x4<f64>, | |
| (mat4x4<{AbstractFloat}>) -> mat4x4<{AbstractFloat}>, | |
| (mat4x4<f32>) -> mat4x4<f32>, | |
| (mat4x4<f16>) -> mat4x4<f16>, | |
| (mat4x4<f64>) -> mat4x4<f64>, | |
| ] | |
| DEBUG Supplying argument 0 of type mat2x2<f32> | |
| DEBUG arg 0 of type mat2x2<f32> | |
| DEBUG considering rule (mat2x2<{AbstractFloat}>) -> mat2x2<{AbstractFloat}> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat2x2<f32>) -> mat2x2<f32> | |
| DEBUG types are equivalent | |
| DEBUG considering rule (mat2x2<f16>) -> mat2x2<f16> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat2x2<f64>) -> mat2x2<f64> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat2x3<{AbstractFloat}>) -> mat3x2<{AbstractFloat}> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat2x3<f32>) -> mat3x2<f32> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat2x3<f16>) -> mat3x2<f16> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat2x3<f64>) -> mat3x2<f64> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat2x4<{AbstractFloat}>) -> mat4x2<{AbstractFloat}> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat2x4<f32>) -> mat4x2<f32> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat2x4<f16>) -> mat4x2<f16> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat2x4<f64>) -> mat4x2<f64> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat3x2<{AbstractFloat}>) -> mat2x3<{AbstractFloat}> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat3x2<f32>) -> mat2x3<f32> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat3x2<f16>) -> mat2x3<f16> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat3x2<f64>) -> mat2x3<f64> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat3x3<{AbstractFloat}>) -> mat3x3<{AbstractFloat}> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat3x3<f32>) -> mat3x3<f32> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat3x3<f16>) -> mat3x3<f16> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat3x3<f64>) -> mat3x3<f64> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat3x4<{AbstractFloat}>) -> mat4x3<{AbstractFloat}> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat3x4<f32>) -> mat4x3<f32> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat3x4<f16>) -> mat4x3<f16> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat3x4<f64>) -> mat4x3<f64> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat4x2<{AbstractFloat}>) -> mat2x4<{AbstractFloat}> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat4x2<f32>) -> mat2x4<f32> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat4x2<f16>) -> mat2x4<f16> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat4x2<f64>) -> mat2x4<f64> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat4x3<{AbstractFloat}>) -> mat3x4<{AbstractFloat}> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat4x3<f32>) -> mat3x4<f32> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat4x3<f16>) -> mat3x4<f16> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat4x3<f64>) -> mat3x4<f64> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat4x4<{AbstractFloat}>) -> mat4x4<{AbstractFloat}> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat4x4<f32>) -> mat4x4<f32> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat4x4<f16>) -> mat4x4<f16> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat4x4<f64>) -> mat4x4<f64> | |
| DEBUG no conversion possible | |
| DEBUG Remaining overloads: [ | |
| (mat2x2<f32>) -> mat2x2<f32>, | |
| ] | |
| DEBUG initial overloads for Transpose, [ | |
| (mat2x2<{AbstractFloat}>) -> mat2x2<{AbstractFloat}>, | |
| (mat2x2<f32>) -> mat2x2<f32>, | |
| (mat2x2<f16>) -> mat2x2<f16>, | |
| (mat2x2<f64>) -> mat2x2<f64>, | |
| (mat2x3<{AbstractFloat}>) -> mat3x2<{AbstractFloat}>, | |
| (mat2x3<f32>) -> mat3x2<f32>, | |
| (mat2x3<f16>) -> mat3x2<f16>, | |
| (mat2x3<f64>) -> mat3x2<f64>, | |
| (mat2x4<{AbstractFloat}>) -> mat4x2<{AbstractFloat}>, | |
| (mat2x4<f32>) -> mat4x2<f32>, | |
| (mat2x4<f16>) -> mat4x2<f16>, | |
| (mat2x4<f64>) -> mat4x2<f64>, | |
| (mat3x2<{AbstractFloat}>) -> mat2x3<{AbstractFloat}>, | |
| (mat3x2<f32>) -> mat2x3<f32>, | |
| (mat3x2<f16>) -> mat2x3<f16>, | |
| (mat3x2<f64>) -> mat2x3<f64>, | |
| (mat3x3<{AbstractFloat}>) -> mat3x3<{AbstractFloat}>, | |
| (mat3x3<f32>) -> mat3x3<f32>, | |
| (mat3x3<f16>) -> mat3x3<f16>, | |
| (mat3x3<f64>) -> mat3x3<f64>, | |
| (mat3x4<{AbstractFloat}>) -> mat4x3<{AbstractFloat}>, | |
| (mat3x4<f32>) -> mat4x3<f32>, | |
| (mat3x4<f16>) -> mat4x3<f16>, | |
| (mat3x4<f64>) -> mat4x3<f64>, | |
| (mat4x2<{AbstractFloat}>) -> mat2x4<{AbstractFloat}>, | |
| (mat4x2<f32>) -> mat2x4<f32>, | |
| (mat4x2<f16>) -> mat2x4<f16>, | |
| (mat4x2<f64>) -> mat2x4<f64>, | |
| (mat4x3<{AbstractFloat}>) -> mat3x4<{AbstractFloat}>, | |
| (mat4x3<f32>) -> mat3x4<f32>, | |
| (mat4x3<f16>) -> mat3x4<f16>, | |
| (mat4x3<f64>) -> mat3x4<f64>, | |
| (mat4x4<{AbstractFloat}>) -> mat4x4<{AbstractFloat}>, | |
| (mat4x4<f32>) -> mat4x4<f32>, | |
| (mat4x4<f16>) -> mat4x4<f16>, | |
| (mat4x4<f64>) -> mat4x4<f64>, | |
| ] | |
| DEBUG arg 0 of type mat2x2<f32> | |
| DEBUG considering rule (mat2x2<{AbstractFloat}>) -> mat2x2<{AbstractFloat}> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat2x2<f32>) -> mat2x2<f32> | |
| DEBUG types are equivalent | |
| DEBUG considering rule (mat2x2<f16>) -> mat2x2<f16> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat2x2<f64>) -> mat2x2<f64> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat2x3<{AbstractFloat}>) -> mat3x2<{AbstractFloat}> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat2x3<f32>) -> mat3x2<f32> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat2x3<f16>) -> mat3x2<f16> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat2x3<f64>) -> mat3x2<f64> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat2x4<{AbstractFloat}>) -> mat4x2<{AbstractFloat}> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat2x4<f32>) -> mat4x2<f32> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat2x4<f16>) -> mat4x2<f16> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat2x4<f64>) -> mat4x2<f64> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat3x2<{AbstractFloat}>) -> mat2x3<{AbstractFloat}> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat3x2<f32>) -> mat2x3<f32> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat3x2<f16>) -> mat2x3<f16> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat3x2<f64>) -> mat2x3<f64> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat3x3<{AbstractFloat}>) -> mat3x3<{AbstractFloat}> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat3x3<f32>) -> mat3x3<f32> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat3x3<f16>) -> mat3x3<f16> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat3x3<f64>) -> mat3x3<f64> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat3x4<{AbstractFloat}>) -> mat4x3<{AbstractFloat}> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat3x4<f32>) -> mat4x3<f32> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat3x4<f16>) -> mat4x3<f16> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat3x4<f64>) -> mat4x3<f64> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat4x2<{AbstractFloat}>) -> mat2x4<{AbstractFloat}> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat4x2<f32>) -> mat2x4<f32> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat4x2<f16>) -> mat2x4<f16> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat4x2<f64>) -> mat2x4<f64> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat4x3<{AbstractFloat}>) -> mat3x4<{AbstractFloat}> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat4x3<f32>) -> mat3x4<f32> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat4x3<f16>) -> mat3x4<f16> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat4x3<f64>) -> mat3x4<f64> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat4x4<{AbstractFloat}>) -> mat4x4<{AbstractFloat}> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat4x4<f32>) -> mat4x4<f32> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat4x4<f16>) -> mat4x4<f16> | |
| DEBUG no conversion possible | |
| DEBUG considering rule (mat4x4<f64>) -> mat4x4<f64> | |
| DEBUG no conversion possible | |
| DEBUG overloads after arg 0 of type mat2x2<f32>: [ | |
| (mat2x2<f32>) -> mat2x2<f32>, | |
| ] | |
| DEBUG Resolving [10] = Math { fun: Transpose, arg: [9], arg1: None, arg2: None, arg3: None } : Value(Matrix { columns: Bi, rows: Bi, scalar: Scalar { kind: Float, width: 4 } }) | |
| DEBUG wgsl automatic_conversion_consensus: mat2x2<f32>, vec2<f32> | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [11] = Binary { op: Multiply, left: [10], right: [8] } : Value(Vector { size: Bi, scalar: Scalar { kind: Float, width: 4 } }) | |
| DEBUG Resolving [12] = AccessIndex { base: [3], index: 1 } : Handle([3]) | |
| DEBUG wgsl automatic_conversion_consensus: vec2<f32>, vec2<f32> | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [13] = Binary { op: Add, left: [11], right: [12] } : Value(Vector { size: Bi, scalar: Scalar { kind: Float, width: 4 } }) | |
| DEBUG Resolving [14] = CallResult([9]) : Handle([2]) | |
| DEBUG Resolving [0] = FunctionArgument(0) : Handle([1]) | |
| DEBUG Resolving [1] = Literal(AbstractFloat(0.04045)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG Resolving [2] = Literal(F32(0.04045)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [3] = Splat { size: Tri, value: [2] } : Value(Vector { size: Tri, scalar: Scalar { kind: Float, width: 4 } }) | |
| DEBUG wgsl automatic_conversion_consensus: vec3<f32>, vec3<f32> | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [4] = Binary { op: Less, left: [0], right: [3] } : Value(Vector { size: Tri, scalar: Scalar { kind: Bool, width: 1 } }) | |
| DEBUG Resolving [5] = Literal(AbstractFloat(0.055)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG Resolving [6] = Literal(F32(0.055)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [7] = Splat { size: Tri, value: [6] } : Value(Vector { size: Tri, scalar: Scalar { kind: Float, width: 4 } }) | |
| DEBUG wgsl automatic_conversion_consensus: vec3<f32>, vec3<f32> | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [8] = Binary { op: Add, left: [0], right: [7] } : Handle([1]) | |
| DEBUG Resolving [9] = Literal(AbstractFloat(1.055)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG Resolving [10] = Literal(F32(1.055)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [11] = Splat { size: Tri, value: [10] } : Value(Vector { size: Tri, scalar: Scalar { kind: Float, width: 4 } }) | |
| DEBUG wgsl automatic_conversion_consensus: vec3<f32>, vec3<f32> | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [12] = Binary { op: Divide, left: [8], right: [11] } : Handle([1]) | |
| DEBUG Resolving [13] = Literal(AbstractFloat(2.4)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG Resolving [14] = Literal(F32(2.4)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [15] = Splat { size: Tri, value: [14] } : Value(Vector { size: Tri, scalar: Scalar { kind: Float, width: 4 } }) | |
| DEBUG Initial overloads: List { | |
| rules: [ | |
| ({AbstractFloat}, {AbstractFloat}) -> {AbstractFloat}, | |
| (f32, f32) -> f32, | |
| (f16, f16) -> f16, | |
| (f64, f64) -> f64, | |
| (vec2<{AbstractFloat}>, vec2<{AbstractFloat}>) -> vec2<{AbstractFloat}>, | |
| (vec2<f32>, vec2<f32>) -> vec2<f32>, | |
| (vec2<f16>, vec2<f16>) -> vec2<f16>, | |
| (vec2<f64>, vec2<f64>) -> vec2<f64>, | |
| (vec3<{AbstractFloat}>, vec3<{AbstractFloat}>) -> vec3<{AbstractFloat}>, | |
| (vec3<f32>, vec3<f32>) -> vec3<f32>, | |
| (vec3<f16>, vec3<f16>) -> vec3<f16>, | |
| (vec3<f64>, vec3<f64>) -> vec3<f64>, | |
| (vec4<{AbstractFloat}>, vec4<{AbstractFloat}>) -> vec4<{AbstractFloat}>, | |
| (vec4<f32>, vec4<f32>) -> vec4<f32>, | |
| (vec4<f16>, vec4<f16>) -> vec4<f16>, | |
| (vec4<f64>, vec4<f64>) -> vec4<f64>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG Supplying argument 0 of type vec3<f32> | |
| DEBUG Remaining overloads: List { | |
| rules: [ | |
| (vec3<f32>, vec3<f32>) -> vec3<f32>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG Supplying argument 1 of type vec3<f32> | |
| DEBUG Remaining overloads: List { | |
| rules: [ | |
| (vec3<f32>, vec3<f32>) -> vec3<f32>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG initial overloads for Pow, List { | |
| rules: [ | |
| ({AbstractFloat}, {AbstractFloat}) -> {AbstractFloat}, | |
| (f32, f32) -> f32, | |
| (f16, f16) -> f16, | |
| (f64, f64) -> f64, | |
| (vec2<{AbstractFloat}>, vec2<{AbstractFloat}>) -> vec2<{AbstractFloat}>, | |
| (vec2<f32>, vec2<f32>) -> vec2<f32>, | |
| (vec2<f16>, vec2<f16>) -> vec2<f16>, | |
| (vec2<f64>, vec2<f64>) -> vec2<f64>, | |
| (vec3<{AbstractFloat}>, vec3<{AbstractFloat}>) -> vec3<{AbstractFloat}>, | |
| (vec3<f32>, vec3<f32>) -> vec3<f32>, | |
| (vec3<f16>, vec3<f16>) -> vec3<f16>, | |
| (vec3<f64>, vec3<f64>) -> vec3<f64>, | |
| (vec4<{AbstractFloat}>, vec4<{AbstractFloat}>) -> vec4<{AbstractFloat}>, | |
| (vec4<f32>, vec4<f32>) -> vec4<f32>, | |
| (vec4<f16>, vec4<f16>) -> vec4<f16>, | |
| (vec4<f64>, vec4<f64>) -> vec4<f64>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG overloads after arg 0 of type vec3<f32>: List { | |
| rules: [ | |
| (vec3<f32>, vec3<f32>) -> vec3<f32>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG overloads after arg 1 of type vec3<f32>: List { | |
| rules: [ | |
| (vec3<f32>, vec3<f32>) -> vec3<f32>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG Resolving [16] = Math { fun: Pow, arg: [12], arg1: Some([15]), arg2: None, arg3: None } : Value(Vector { size: Tri, scalar: Scalar { kind: Float, width: 4 } }) | |
| DEBUG Resolving [17] = Literal(AbstractFloat(12.92)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG Resolving [18] = Literal(F32(12.92)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [19] = Splat { size: Tri, value: [18] } : Value(Vector { size: Tri, scalar: Scalar { kind: Float, width: 4 } }) | |
| DEBUG wgsl automatic_conversion_consensus: vec3<f32>, vec3<f32> | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [20] = Binary { op: Divide, left: [0], right: [19] } : Handle([1]) | |
| DEBUG Resolving [21] = Select { condition: [4], accept: [20], reject: [16] } : Handle([1]) | |
| DEBUG Resolving [0] = FunctionArgument(0) : Handle([0]) | |
| DEBUG Resolving [1] = Literal(AbstractFloat(0.04045)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG wgsl automatic_conversion_consensus: f32, {AbstractFloat} | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [2] = Literal(F32(0.04045)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [3] = Binary { op: Less, left: [0], right: [2] } : Value(Scalar(Scalar { kind: Bool, width: 1 })) | |
| DEBUG Resolving [4] = Literal(AbstractFloat(0.055)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG wgsl automatic_conversion_consensus: f32, {AbstractFloat} | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [5] = Literal(F32(0.055)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [6] = Binary { op: Add, left: [0], right: [5] } : Handle([0]) | |
| DEBUG Resolving [7] = Literal(AbstractFloat(1.055)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG wgsl automatic_conversion_consensus: f32, {AbstractFloat} | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [8] = Literal(F32(1.055)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [9] = Binary { op: Divide, left: [6], right: [8] } : Handle([0]) | |
| DEBUG Resolving [10] = Literal(AbstractFloat(2.4)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG Initial overloads: List { | |
| rules: [ | |
| ({AbstractFloat}, {AbstractFloat}) -> {AbstractFloat}, | |
| (f32, f32) -> f32, | |
| (f16, f16) -> f16, | |
| (f64, f64) -> f64, | |
| (vec2<{AbstractFloat}>, vec2<{AbstractFloat}>) -> vec2<{AbstractFloat}>, | |
| (vec2<f32>, vec2<f32>) -> vec2<f32>, | |
| (vec2<f16>, vec2<f16>) -> vec2<f16>, | |
| (vec2<f64>, vec2<f64>) -> vec2<f64>, | |
| (vec3<{AbstractFloat}>, vec3<{AbstractFloat}>) -> vec3<{AbstractFloat}>, | |
| (vec3<f32>, vec3<f32>) -> vec3<f32>, | |
| (vec3<f16>, vec3<f16>) -> vec3<f16>, | |
| (vec3<f64>, vec3<f64>) -> vec3<f64>, | |
| (vec4<{AbstractFloat}>, vec4<{AbstractFloat}>) -> vec4<{AbstractFloat}>, | |
| (vec4<f32>, vec4<f32>) -> vec4<f32>, | |
| (vec4<f16>, vec4<f16>) -> vec4<f16>, | |
| (vec4<f64>, vec4<f64>) -> vec4<f64>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG Supplying argument 0 of type f32 | |
| DEBUG Remaining overloads: List { | |
| rules: [ | |
| (f32, f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG Supplying argument 1 of type {AbstractFloat} | |
| DEBUG Remaining overloads: List { | |
| rules: [ | |
| (f32, f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG Resolving [11] = Literal(F32(2.4)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG initial overloads for Pow, List { | |
| rules: [ | |
| ({AbstractFloat}, {AbstractFloat}) -> {AbstractFloat}, | |
| (f32, f32) -> f32, | |
| (f16, f16) -> f16, | |
| (f64, f64) -> f64, | |
| (vec2<{AbstractFloat}>, vec2<{AbstractFloat}>) -> vec2<{AbstractFloat}>, | |
| (vec2<f32>, vec2<f32>) -> vec2<f32>, | |
| (vec2<f16>, vec2<f16>) -> vec2<f16>, | |
| (vec2<f64>, vec2<f64>) -> vec2<f64>, | |
| (vec3<{AbstractFloat}>, vec3<{AbstractFloat}>) -> vec3<{AbstractFloat}>, | |
| (vec3<f32>, vec3<f32>) -> vec3<f32>, | |
| (vec3<f16>, vec3<f16>) -> vec3<f16>, | |
| (vec3<f64>, vec3<f64>) -> vec3<f64>, | |
| (vec4<{AbstractFloat}>, vec4<{AbstractFloat}>) -> vec4<{AbstractFloat}>, | |
| (vec4<f32>, vec4<f32>) -> vec4<f32>, | |
| (vec4<f16>, vec4<f16>) -> vec4<f16>, | |
| (vec4<f64>, vec4<f64>) -> vec4<f64>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG overloads after arg 0 of type f32: List { | |
| rules: [ | |
| (f32, f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG overloads after arg 1 of type f32: List { | |
| rules: [ | |
| (f32, f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG Resolving [12] = Math { fun: Pow, arg: [9], arg1: Some([11]), arg2: None, arg3: None } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [13] = Literal(AbstractFloat(12.92)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG wgsl automatic_conversion_consensus: f32, {AbstractFloat} | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [14] = Literal(F32(12.92)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [15] = Binary { op: Divide, left: [0], right: [14] } : Handle([0]) | |
| DEBUG Resolving [16] = Select { condition: [3], accept: [15], reject: [12] } : Handle([0]) | |
| DEBUG Resolving [0] = FunctionArgument(0) : Handle([1]) | |
| DEBUG Resolving [1] = Literal(AbstractFloat(0.0031308)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG Resolving [2] = Literal(F32(0.0031308)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [3] = Splat { size: Tri, value: [2] } : Value(Vector { size: Tri, scalar: Scalar { kind: Float, width: 4 } }) | |
| DEBUG wgsl automatic_conversion_consensus: vec3<f32>, vec3<f32> | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [4] = Binary { op: Less, left: [0], right: [3] } : Value(Vector { size: Tri, scalar: Scalar { kind: Bool, width: 1 } }) | |
| DEBUG Resolving [5] = Literal(AbstractFloat(1.055)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG Resolving [6] = Literal(F32(1.055)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [7] = Splat { size: Tri, value: [6] } : Value(Vector { size: Tri, scalar: Scalar { kind: Float, width: 4 } }) | |
| DEBUG Resolving [8] = Literal(AbstractFloat(1.0)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG Resolving [9] = Literal(AbstractFloat(2.4)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG wgsl automatic_conversion_consensus: {AbstractFloat}, {AbstractFloat} | |
| DEBUG consensus: {AbstractFloat} | |
| DEBUG Resolving [10] = Literal(AbstractFloat(0.4166666666666667)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG Resolving [11] = Literal(F32(0.41666666)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [12] = Splat { size: Tri, value: [11] } : Value(Vector { size: Tri, scalar: Scalar { kind: Float, width: 4 } }) | |
| DEBUG Initial overloads: List { | |
| rules: [ | |
| ({AbstractFloat}, {AbstractFloat}) -> {AbstractFloat}, | |
| (f32, f32) -> f32, | |
| (f16, f16) -> f16, | |
| (f64, f64) -> f64, | |
| (vec2<{AbstractFloat}>, vec2<{AbstractFloat}>) -> vec2<{AbstractFloat}>, | |
| (vec2<f32>, vec2<f32>) -> vec2<f32>, | |
| (vec2<f16>, vec2<f16>) -> vec2<f16>, | |
| (vec2<f64>, vec2<f64>) -> vec2<f64>, | |
| (vec3<{AbstractFloat}>, vec3<{AbstractFloat}>) -> vec3<{AbstractFloat}>, | |
| (vec3<f32>, vec3<f32>) -> vec3<f32>, | |
| (vec3<f16>, vec3<f16>) -> vec3<f16>, | |
| (vec3<f64>, vec3<f64>) -> vec3<f64>, | |
| (vec4<{AbstractFloat}>, vec4<{AbstractFloat}>) -> vec4<{AbstractFloat}>, | |
| (vec4<f32>, vec4<f32>) -> vec4<f32>, | |
| (vec4<f16>, vec4<f16>) -> vec4<f16>, | |
| (vec4<f64>, vec4<f64>) -> vec4<f64>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG Supplying argument 0 of type vec3<f32> | |
| DEBUG Remaining overloads: List { | |
| rules: [ | |
| (vec3<f32>, vec3<f32>) -> vec3<f32>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG Supplying argument 1 of type vec3<f32> | |
| DEBUG Remaining overloads: List { | |
| rules: [ | |
| (vec3<f32>, vec3<f32>) -> vec3<f32>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG initial overloads for Pow, List { | |
| rules: [ | |
| ({AbstractFloat}, {AbstractFloat}) -> {AbstractFloat}, | |
| (f32, f32) -> f32, | |
| (f16, f16) -> f16, | |
| (f64, f64) -> f64, | |
| (vec2<{AbstractFloat}>, vec2<{AbstractFloat}>) -> vec2<{AbstractFloat}>, | |
| (vec2<f32>, vec2<f32>) -> vec2<f32>, | |
| (vec2<f16>, vec2<f16>) -> vec2<f16>, | |
| (vec2<f64>, vec2<f64>) -> vec2<f64>, | |
| (vec3<{AbstractFloat}>, vec3<{AbstractFloat}>) -> vec3<{AbstractFloat}>, | |
| (vec3<f32>, vec3<f32>) -> vec3<f32>, | |
| (vec3<f16>, vec3<f16>) -> vec3<f16>, | |
| (vec3<f64>, vec3<f64>) -> vec3<f64>, | |
| (vec4<{AbstractFloat}>, vec4<{AbstractFloat}>) -> vec4<{AbstractFloat}>, | |
| (vec4<f32>, vec4<f32>) -> vec4<f32>, | |
| (vec4<f16>, vec4<f16>) -> vec4<f16>, | |
| (vec4<f64>, vec4<f64>) -> vec4<f64>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG overloads after arg 0 of type vec3<f32>: List { | |
| rules: [ | |
| (vec3<f32>, vec3<f32>) -> vec3<f32>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG overloads after arg 1 of type vec3<f32>: List { | |
| rules: [ | |
| (vec3<f32>, vec3<f32>) -> vec3<f32>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG Resolving [13] = Math { fun: Pow, arg: [0], arg1: Some([12]), arg2: None, arg3: None } : Value(Vector { size: Tri, scalar: Scalar { kind: Float, width: 4 } }) | |
| DEBUG wgsl automatic_conversion_consensus: vec3<f32>, vec3<f32> | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [14] = Binary { op: Multiply, left: [7], right: [13] } : Value(Vector { size: Tri, scalar: Scalar { kind: Float, width: 4 } }) | |
| DEBUG Resolving [15] = Literal(AbstractFloat(0.055)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG Resolving [16] = Literal(F32(0.055)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [17] = Splat { size: Tri, value: [16] } : Value(Vector { size: Tri, scalar: Scalar { kind: Float, width: 4 } }) | |
| DEBUG wgsl automatic_conversion_consensus: vec3<f32>, vec3<f32> | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [18] = Binary { op: Subtract, left: [14], right: [17] } : Value(Vector { size: Tri, scalar: Scalar { kind: Float, width: 4 } }) | |
| DEBUG Resolving [19] = Literal(AbstractFloat(12.92)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG Resolving [20] = Literal(F32(12.92)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [21] = Splat { size: Tri, value: [20] } : Value(Vector { size: Tri, scalar: Scalar { kind: Float, width: 4 } }) | |
| DEBUG wgsl automatic_conversion_consensus: vec3<f32>, vec3<f32> | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [22] = Binary { op: Multiply, left: [0], right: [21] } : Handle([1]) | |
| DEBUG Resolving [23] = Select { condition: [4], accept: [22], reject: [18] } : Handle([1]) | |
| DEBUG Resolving [0] = FunctionArgument(0) : Handle([2]) | |
| DEBUG Resolving [1] = Swizzle { size: Tri, vector: [0], pattern: [X, Y, Z, X] } : Value(Vector { size: Tri, scalar: Scalar { kind: Float, width: 4 } }) | |
| DEBUG Resolving [2] = CallResult([14]) : Handle([1]) | |
| DEBUG Resolving [3] = AccessIndex { base: [0], index: 3 } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [4] = Compose { ty: [2], components: [[2], [3]] } : Handle([2]) | |
| DEBUG Resolving [0] = FunctionArgument(0) : Handle([2]) | |
| DEBUG Resolving [1] = Swizzle { size: Tri, vector: [0], pattern: [X, Y, Z, X] } : Value(Vector { size: Tri, scalar: Scalar { kind: Float, width: 4 } }) | |
| DEBUG Resolving [2] = CallResult([12]) : Handle([1]) | |
| DEBUG Resolving [3] = AccessIndex { base: [0], index: 3 } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [4] = Compose { ty: [2], components: [[2], [3]] } : Handle([2]) | |
| DEBUG Resolving [0] = FunctionArgument(0) : Handle([11]) | |
| DEBUG Resolving [1] = AccessIndex { base: [0], index: 0 } : Handle([0]) | |
| DEBUG Resolving [2] = Literal(AbstractFloat(6.0)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG wgsl automatic_conversion_consensus: f32, {AbstractFloat} | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [3] = Literal(F32(6.0)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [4] = Binary { op: Multiply, left: [1], right: [3] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [5] = AccessIndex { base: [0], index: 1 } : Handle([0]) | |
| DEBUG Resolving [6] = AccessIndex { base: [0], index: 2 } : Handle([0]) | |
| DEBUG Resolving [7] = AccessIndex { base: [0], index: 3 } : Handle([0]) | |
| DEBUG Resolving [8] = Literal(AbstractFloat(1.0)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG Resolving [9] = Literal(AbstractFloat(2.0)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG wgsl automatic_conversion_consensus: {AbstractFloat}, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [10] = Literal(F32(2.0)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [11] = Binary { op: Multiply, left: [10], right: [6] } : Handle([0]) | |
| DEBUG Resolving [12] = Literal(AbstractFloat(1.0)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG wgsl automatic_conversion_consensus: f32, {AbstractFloat} | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [13] = Literal(F32(1.0)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [14] = Binary { op: Subtract, left: [11], right: [13] } : Handle([0]) | |
| DEBUG Initial overloads: List { | |
| rules: [ | |
| ({AbstractInt}) -> {AbstractInt}, | |
| ({AbstractFloat}) -> {AbstractFloat}, | |
| (i32) -> i32, | |
| (i64) -> i64, | |
| (u32) -> u32, | |
| (u64) -> u64, | |
| (f32) -> f32, | |
| (f16) -> f16, | |
| (f64) -> f64, | |
| (vec2<{AbstractInt}>) -> vec2<{AbstractInt}>, | |
| (vec2<{AbstractFloat}>) -> vec2<{AbstractFloat}>, | |
| (vec2<i32>) -> vec2<i32>, | |
| (vec2<i64>) -> vec2<i64>, | |
| (vec2<u32>) -> vec2<u32>, | |
| (vec2<u64>) -> vec2<u64>, | |
| (vec2<f32>) -> vec2<f32>, | |
| (vec2<f16>) -> vec2<f16>, | |
| (vec2<f64>) -> vec2<f64>, | |
| (vec3<{AbstractInt}>) -> vec3<{AbstractInt}>, | |
| (vec3<{AbstractFloat}>) -> vec3<{AbstractFloat}>, | |
| (vec3<i32>) -> vec3<i32>, | |
| (vec3<i64>) -> vec3<i64>, | |
| (vec3<u32>) -> vec3<u32>, | |
| (vec3<u64>) -> vec3<u64>, | |
| (vec3<f32>) -> vec3<f32>, | |
| (vec3<f16>) -> vec3<f16>, | |
| (vec3<f64>) -> vec3<f64>, | |
| (vec4<{AbstractInt}>) -> vec4<{AbstractInt}>, | |
| (vec4<{AbstractFloat}>) -> vec4<{AbstractFloat}>, | |
| (vec4<i32>) -> vec4<i32>, | |
| (vec4<i64>) -> vec4<i64>, | |
| (vec4<u32>) -> vec4<u32>, | |
| (vec4<u64>) -> vec4<u64>, | |
| (vec4<f32>) -> vec4<f32>, | |
| (vec4<f16>) -> vec4<f16>, | |
| (vec4<f64>) -> vec4<f64>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG Supplying argument 0 of type f32 | |
| DEBUG Remaining overloads: List { | |
| rules: [ | |
| (f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG initial overloads for Abs, List { | |
| rules: [ | |
| ({AbstractInt}) -> {AbstractInt}, | |
| ({AbstractFloat}) -> {AbstractFloat}, | |
| (i32) -> i32, | |
| (i64) -> i64, | |
| (u32) -> u32, | |
| (u64) -> u64, | |
| (f32) -> f32, | |
| (f16) -> f16, | |
| (f64) -> f64, | |
| (vec2<{AbstractInt}>) -> vec2<{AbstractInt}>, | |
| (vec2<{AbstractFloat}>) -> vec2<{AbstractFloat}>, | |
| (vec2<i32>) -> vec2<i32>, | |
| (vec2<i64>) -> vec2<i64>, | |
| (vec2<u32>) -> vec2<u32>, | |
| (vec2<u64>) -> vec2<u64>, | |
| (vec2<f32>) -> vec2<f32>, | |
| (vec2<f16>) -> vec2<f16>, | |
| (vec2<f64>) -> vec2<f64>, | |
| (vec3<{AbstractInt}>) -> vec3<{AbstractInt}>, | |
| (vec3<{AbstractFloat}>) -> vec3<{AbstractFloat}>, | |
| (vec3<i32>) -> vec3<i32>, | |
| (vec3<i64>) -> vec3<i64>, | |
| (vec3<u32>) -> vec3<u32>, | |
| (vec3<u64>) -> vec3<u64>, | |
| (vec3<f32>) -> vec3<f32>, | |
| (vec3<f16>) -> vec3<f16>, | |
| (vec3<f64>) -> vec3<f64>, | |
| (vec4<{AbstractInt}>) -> vec4<{AbstractInt}>, | |
| (vec4<{AbstractFloat}>) -> vec4<{AbstractFloat}>, | |
| (vec4<i32>) -> vec4<i32>, | |
| (vec4<i64>) -> vec4<i64>, | |
| (vec4<u32>) -> vec4<u32>, | |
| (vec4<u64>) -> vec4<u64>, | |
| (vec4<f32>) -> vec4<f32>, | |
| (vec4<f16>) -> vec4<f16>, | |
| (vec4<f64>) -> vec4<f64>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG overloads after arg 0 of type f32: List { | |
| rules: [ | |
| (f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG Resolving [15] = Math { fun: Abs, arg: [14], arg1: None, arg2: None, arg3: None } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG wgsl automatic_conversion_consensus: {AbstractFloat}, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [16] = Literal(F32(1.0)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [17] = Binary { op: Subtract, left: [16], right: [15] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG wgsl automatic_conversion_consensus: f32, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [18] = Binary { op: Multiply, left: [17], right: [5] } : Handle([0]) | |
| DEBUG Resolving [19] = Literal(AbstractFloat(1.0)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG Resolving [20] = Literal(AbstractFloat(2.0)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG wgsl automatic_conversion_consensus: f32, {AbstractFloat} | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [21] = Literal(F32(2.0)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [22] = Binary { op: Modulo, left: [4], right: [21] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [23] = Literal(AbstractFloat(1.0)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG wgsl automatic_conversion_consensus: f32, {AbstractFloat} | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [24] = Literal(F32(1.0)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [25] = Binary { op: Subtract, left: [22], right: [24] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Initial overloads: List { | |
| rules: [ | |
| ({AbstractInt}) -> {AbstractInt}, | |
| ({AbstractFloat}) -> {AbstractFloat}, | |
| (i32) -> i32, | |
| (i64) -> i64, | |
| (u32) -> u32, | |
| (u64) -> u64, | |
| (f32) -> f32, | |
| (f16) -> f16, | |
| (f64) -> f64, | |
| (vec2<{AbstractInt}>) -> vec2<{AbstractInt}>, | |
| (vec2<{AbstractFloat}>) -> vec2<{AbstractFloat}>, | |
| (vec2<i32>) -> vec2<i32>, | |
| (vec2<i64>) -> vec2<i64>, | |
| (vec2<u32>) -> vec2<u32>, | |
| (vec2<u64>) -> vec2<u64>, | |
| (vec2<f32>) -> vec2<f32>, | |
| (vec2<f16>) -> vec2<f16>, | |
| (vec2<f64>) -> vec2<f64>, | |
| (vec3<{AbstractInt}>) -> vec3<{AbstractInt}>, | |
| (vec3<{AbstractFloat}>) -> vec3<{AbstractFloat}>, | |
| (vec3<i32>) -> vec3<i32>, | |
| (vec3<i64>) -> vec3<i64>, | |
| (vec3<u32>) -> vec3<u32>, | |
| (vec3<u64>) -> vec3<u64>, | |
| (vec3<f32>) -> vec3<f32>, | |
| (vec3<f16>) -> vec3<f16>, | |
| (vec3<f64>) -> vec3<f64>, | |
| (vec4<{AbstractInt}>) -> vec4<{AbstractInt}>, | |
| (vec4<{AbstractFloat}>) -> vec4<{AbstractFloat}>, | |
| (vec4<i32>) -> vec4<i32>, | |
| (vec4<i64>) -> vec4<i64>, | |
| (vec4<u32>) -> vec4<u32>, | |
| (vec4<u64>) -> vec4<u64>, | |
| (vec4<f32>) -> vec4<f32>, | |
| (vec4<f16>) -> vec4<f16>, | |
| (vec4<f64>) -> vec4<f64>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG Supplying argument 0 of type f32 | |
| DEBUG Remaining overloads: List { | |
| rules: [ | |
| (f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG initial overloads for Abs, List { | |
| rules: [ | |
| ({AbstractInt}) -> {AbstractInt}, | |
| ({AbstractFloat}) -> {AbstractFloat}, | |
| (i32) -> i32, | |
| (i64) -> i64, | |
| (u32) -> u32, | |
| (u64) -> u64, | |
| (f32) -> f32, | |
| (f16) -> f16, | |
| (f64) -> f64, | |
| (vec2<{AbstractInt}>) -> vec2<{AbstractInt}>, | |
| (vec2<{AbstractFloat}>) -> vec2<{AbstractFloat}>, | |
| (vec2<i32>) -> vec2<i32>, | |
| (vec2<i64>) -> vec2<i64>, | |
| (vec2<u32>) -> vec2<u32>, | |
| (vec2<u64>) -> vec2<u64>, | |
| (vec2<f32>) -> vec2<f32>, | |
| (vec2<f16>) -> vec2<f16>, | |
| (vec2<f64>) -> vec2<f64>, | |
| (vec3<{AbstractInt}>) -> vec3<{AbstractInt}>, | |
| (vec3<{AbstractFloat}>) -> vec3<{AbstractFloat}>, | |
| (vec3<i32>) -> vec3<i32>, | |
| (vec3<i64>) -> vec3<i64>, | |
| (vec3<u32>) -> vec3<u32>, | |
| (vec3<u64>) -> vec3<u64>, | |
| (vec3<f32>) -> vec3<f32>, | |
| (vec3<f16>) -> vec3<f16>, | |
| (vec3<f64>) -> vec3<f64>, | |
| (vec4<{AbstractInt}>) -> vec4<{AbstractInt}>, | |
| (vec4<{AbstractFloat}>) -> vec4<{AbstractFloat}>, | |
| (vec4<i32>) -> vec4<i32>, | |
| (vec4<i64>) -> vec4<i64>, | |
| (vec4<u32>) -> vec4<u32>, | |
| (vec4<u64>) -> vec4<u64>, | |
| (vec4<f32>) -> vec4<f32>, | |
| (vec4<f16>) -> vec4<f16>, | |
| (vec4<f64>) -> vec4<f64>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG overloads after arg 0 of type f32: List { | |
| rules: [ | |
| (f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG Resolving [26] = Math { fun: Abs, arg: [25], arg1: None, arg2: None, arg3: None } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG wgsl automatic_conversion_consensus: {AbstractFloat}, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [27] = Literal(F32(1.0)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [28] = Binary { op: Subtract, left: [27], right: [26] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG wgsl automatic_conversion_consensus: f32, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [29] = Binary { op: Multiply, left: [18], right: [28] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [30] = Literal(AbstractFloat(2.0)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG wgsl automatic_conversion_consensus: f32, {AbstractFloat} | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [31] = Literal(F32(2.0)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [32] = Binary { op: Divide, left: [18], right: [31] } : Handle([0]) | |
| DEBUG wgsl automatic_conversion_consensus: f32, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [33] = Binary { op: Subtract, left: [6], right: [32] } : Handle([0]) | |
| DEBUG Resolving [34] = Splat { size: Tri, value: [33] } : Value(Vector { size: Tri, scalar: Scalar { kind: Float, width: 4 } }) | |
| DEBUG Resolving [35] = LocalVariable([0]) : Value(Pointer { base: [1], space: Function }) | |
| DEBUG Resolving [36] = Literal(AbstractFloat(0.0)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG wgsl automatic_conversion_consensus: f32, {AbstractFloat} | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [37] = Literal(F32(0.0)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [38] = Binary { op: GreaterEqual, left: [4], right: [37] } : Value(Scalar(Scalar { kind: Bool, width: 1 })) | |
| DEBUG Resolving [39] = Literal(AbstractFloat(1.0)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG wgsl automatic_conversion_consensus: f32, {AbstractFloat} | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [40] = Literal(F32(1.0)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [41] = Binary { op: Less, left: [4], right: [40] } : Value(Scalar(Scalar { kind: Bool, width: 1 })) | |
| DEBUG wgsl automatic_conversion_consensus: bool, bool | |
| DEBUG consensus: bool | |
| DEBUG Resolving [42] = Binary { op: LogicalAnd, left: [38], right: [41] } : Value(Scalar(Scalar { kind: Bool, width: 1 })) | |
| DEBUG Resolving [43] = AccessIndex { base: [35], index: 0 } : Value(ValuePointer { size: None, scalar: Scalar { kind: Float, width: 4 }, space: Function }) | |
| DEBUG Resolving [44] = Load { pointer: [43] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [45] = Binary { op: Add, left: [44], right: [18] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [46] = AccessIndex { base: [35], index: 1 } : Value(ValuePointer { size: None, scalar: Scalar { kind: Float, width: 4 }, space: Function }) | |
| DEBUG Resolving [47] = Load { pointer: [46] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [48] = Binary { op: Add, left: [47], right: [29] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [49] = Literal(AbstractFloat(1.0)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG wgsl automatic_conversion_consensus: f32, {AbstractFloat} | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [50] = Literal(F32(1.0)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [51] = Binary { op: GreaterEqual, left: [4], right: [50] } : Value(Scalar(Scalar { kind: Bool, width: 1 })) | |
| DEBUG Resolving [52] = Literal(AbstractFloat(2.0)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG wgsl automatic_conversion_consensus: f32, {AbstractFloat} | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [53] = Literal(F32(2.0)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [54] = Binary { op: Less, left: [4], right: [53] } : Value(Scalar(Scalar { kind: Bool, width: 1 })) | |
| DEBUG wgsl automatic_conversion_consensus: bool, bool | |
| DEBUG consensus: bool | |
| DEBUG Resolving [55] = Binary { op: LogicalAnd, left: [51], right: [54] } : Value(Scalar(Scalar { kind: Bool, width: 1 })) | |
| DEBUG Resolving [56] = AccessIndex { base: [35], index: 0 } : Value(ValuePointer { size: None, scalar: Scalar { kind: Float, width: 4 }, space: Function }) | |
| DEBUG Resolving [57] = Load { pointer: [56] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [58] = Binary { op: Add, left: [57], right: [29] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [59] = AccessIndex { base: [35], index: 1 } : Value(ValuePointer { size: None, scalar: Scalar { kind: Float, width: 4 }, space: Function }) | |
| DEBUG Resolving [60] = Load { pointer: [59] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [61] = Binary { op: Add, left: [60], right: [18] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [62] = Literal(AbstractFloat(2.0)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG wgsl automatic_conversion_consensus: f32, {AbstractFloat} | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [63] = Literal(F32(2.0)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [64] = Binary { op: GreaterEqual, left: [4], right: [63] } : Value(Scalar(Scalar { kind: Bool, width: 1 })) | |
| DEBUG Resolving [65] = Literal(AbstractFloat(3.0)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG wgsl automatic_conversion_consensus: f32, {AbstractFloat} | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [66] = Literal(F32(3.0)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [67] = Binary { op: Less, left: [4], right: [66] } : Value(Scalar(Scalar { kind: Bool, width: 1 })) | |
| DEBUG wgsl automatic_conversion_consensus: bool, bool | |
| DEBUG consensus: bool | |
| DEBUG Resolving [68] = Binary { op: LogicalAnd, left: [64], right: [67] } : Value(Scalar(Scalar { kind: Bool, width: 1 })) | |
| DEBUG Resolving [69] = AccessIndex { base: [35], index: 1 } : Value(ValuePointer { size: None, scalar: Scalar { kind: Float, width: 4 }, space: Function }) | |
| DEBUG Resolving [70] = Load { pointer: [69] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [71] = Binary { op: Add, left: [70], right: [18] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [72] = AccessIndex { base: [35], index: 2 } : Value(ValuePointer { size: None, scalar: Scalar { kind: Float, width: 4 }, space: Function }) | |
| DEBUG Resolving [73] = Load { pointer: [72] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [74] = Binary { op: Add, left: [73], right: [29] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [75] = Literal(AbstractFloat(3.0)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG wgsl automatic_conversion_consensus: f32, {AbstractFloat} | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [76] = Literal(F32(3.0)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [77] = Binary { op: GreaterEqual, left: [4], right: [76] } : Value(Scalar(Scalar { kind: Bool, width: 1 })) | |
| DEBUG Resolving [78] = Literal(AbstractFloat(4.0)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG wgsl automatic_conversion_consensus: f32, {AbstractFloat} | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [79] = Literal(F32(4.0)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [80] = Binary { op: Less, left: [4], right: [79] } : Value(Scalar(Scalar { kind: Bool, width: 1 })) | |
| DEBUG wgsl automatic_conversion_consensus: bool, bool | |
| DEBUG consensus: bool | |
| DEBUG Resolving [81] = Binary { op: LogicalAnd, left: [77], right: [80] } : Value(Scalar(Scalar { kind: Bool, width: 1 })) | |
| DEBUG Resolving [82] = AccessIndex { base: [35], index: 1 } : Value(ValuePointer { size: None, scalar: Scalar { kind: Float, width: 4 }, space: Function }) | |
| DEBUG Resolving [83] = Load { pointer: [82] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [84] = Binary { op: Add, left: [83], right: [29] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [85] = AccessIndex { base: [35], index: 2 } : Value(ValuePointer { size: None, scalar: Scalar { kind: Float, width: 4 }, space: Function }) | |
| DEBUG Resolving [86] = Load { pointer: [85] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [87] = Binary { op: Add, left: [86], right: [18] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [88] = Literal(AbstractFloat(4.0)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG wgsl automatic_conversion_consensus: f32, {AbstractFloat} | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [89] = Literal(F32(4.0)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [90] = Binary { op: GreaterEqual, left: [4], right: [89] } : Value(Scalar(Scalar { kind: Bool, width: 1 })) | |
| DEBUG Resolving [91] = Literal(AbstractFloat(5.0)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG wgsl automatic_conversion_consensus: f32, {AbstractFloat} | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [92] = Literal(F32(5.0)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [93] = Binary { op: Less, left: [4], right: [92] } : Value(Scalar(Scalar { kind: Bool, width: 1 })) | |
| DEBUG wgsl automatic_conversion_consensus: bool, bool | |
| DEBUG consensus: bool | |
| DEBUG Resolving [94] = Binary { op: LogicalAnd, left: [90], right: [93] } : Value(Scalar(Scalar { kind: Bool, width: 1 })) | |
| DEBUG Resolving [95] = AccessIndex { base: [35], index: 0 } : Value(ValuePointer { size: None, scalar: Scalar { kind: Float, width: 4 }, space: Function }) | |
| DEBUG Resolving [96] = Load { pointer: [95] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [97] = Binary { op: Add, left: [96], right: [29] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [98] = AccessIndex { base: [35], index: 2 } : Value(ValuePointer { size: None, scalar: Scalar { kind: Float, width: 4 }, space: Function }) | |
| DEBUG Resolving [99] = Load { pointer: [98] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [100] = Binary { op: Add, left: [99], right: [18] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [101] = AccessIndex { base: [35], index: 0 } : Value(ValuePointer { size: None, scalar: Scalar { kind: Float, width: 4 }, space: Function }) | |
| DEBUG Resolving [102] = Load { pointer: [101] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [103] = Binary { op: Add, left: [102], right: [18] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [104] = AccessIndex { base: [35], index: 2 } : Value(ValuePointer { size: None, scalar: Scalar { kind: Float, width: 4 }, space: Function }) | |
| DEBUG Resolving [105] = Load { pointer: [104] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [106] = Binary { op: Add, left: [105], right: [29] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [107] = Load { pointer: [35] } : Handle([1]) | |
| DEBUG Resolving [108] = Compose { ty: [2], components: [[107], [7]] } : Handle([2]) | |
| DEBUG Resolving [0] = FunctionArgument(0) : Handle([2]) | |
| DEBUG Resolving [1] = Literal(AbstractFloat(0.4122214708)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG Resolving [2] = AccessIndex { base: [0], index: 0 } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG wgsl automatic_conversion_consensus: {AbstractFloat}, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [3] = Literal(F32(0.41222146)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [4] = Binary { op: Multiply, left: [3], right: [2] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [5] = Literal(AbstractFloat(0.5363325363)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG Resolving [6] = AccessIndex { base: [0], index: 1 } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG wgsl automatic_conversion_consensus: {AbstractFloat}, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [7] = Literal(F32(0.53633255)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [8] = Binary { op: Multiply, left: [7], right: [6] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG wgsl automatic_conversion_consensus: f32, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [9] = Binary { op: Add, left: [4], right: [8] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [10] = Literal(AbstractFloat(0.0514459929)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG Resolving [11] = AccessIndex { base: [0], index: 2 } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG wgsl automatic_conversion_consensus: {AbstractFloat}, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [12] = Literal(F32(0.051445995)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [13] = Binary { op: Multiply, left: [12], right: [11] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG wgsl automatic_conversion_consensus: f32, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [14] = Binary { op: Add, left: [9], right: [13] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [15] = Literal(AbstractFloat(0.2119034982)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG Resolving [16] = AccessIndex { base: [0], index: 0 } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG wgsl automatic_conversion_consensus: {AbstractFloat}, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [17] = Literal(F32(0.2119035)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [18] = Binary { op: Multiply, left: [17], right: [16] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [19] = Literal(AbstractFloat(0.6806995451)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG Resolving [20] = AccessIndex { base: [0], index: 1 } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG wgsl automatic_conversion_consensus: {AbstractFloat}, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [21] = Literal(F32(0.6806995)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [22] = Binary { op: Multiply, left: [21], right: [20] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG wgsl automatic_conversion_consensus: f32, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [23] = Binary { op: Add, left: [18], right: [22] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [24] = Literal(AbstractFloat(0.1073969566)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG Resolving [25] = AccessIndex { base: [0], index: 2 } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG wgsl automatic_conversion_consensus: {AbstractFloat}, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [26] = Literal(F32(0.10739696)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [27] = Binary { op: Multiply, left: [26], right: [25] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG wgsl automatic_conversion_consensus: f32, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [28] = Binary { op: Add, left: [23], right: [27] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [29] = Literal(AbstractFloat(0.0883024619)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG Resolving [30] = AccessIndex { base: [0], index: 0 } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG wgsl automatic_conversion_consensus: {AbstractFloat}, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [31] = Literal(F32(0.08830246)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [32] = Binary { op: Multiply, left: [31], right: [30] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [33] = Literal(AbstractFloat(0.2817188376)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG Resolving [34] = AccessIndex { base: [0], index: 1 } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG wgsl automatic_conversion_consensus: {AbstractFloat}, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [35] = Literal(F32(0.28171885)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [36] = Binary { op: Multiply, left: [35], right: [34] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG wgsl automatic_conversion_consensus: f32, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [37] = Binary { op: Add, left: [32], right: [36] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [38] = Literal(AbstractFloat(0.6299787005)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG Resolving [39] = AccessIndex { base: [0], index: 2 } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG wgsl automatic_conversion_consensus: {AbstractFloat}, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [40] = Literal(F32(0.6299787)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [41] = Binary { op: Multiply, left: [40], right: [39] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG wgsl automatic_conversion_consensus: f32, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [42] = Binary { op: Add, left: [37], right: [41] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [43] = Literal(AbstractFloat(1.0)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG Resolving [44] = Literal(AbstractFloat(3.0)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG wgsl automatic_conversion_consensus: {AbstractFloat}, {AbstractFloat} | |
| DEBUG consensus: {AbstractFloat} | |
| DEBUG Resolving [45] = Literal(AbstractFloat(0.3333333333333333)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG Initial overloads: List { | |
| rules: [ | |
| ({AbstractFloat}, {AbstractFloat}) -> {AbstractFloat}, | |
| (f32, f32) -> f32, | |
| (f16, f16) -> f16, | |
| (f64, f64) -> f64, | |
| (vec2<{AbstractFloat}>, vec2<{AbstractFloat}>) -> vec2<{AbstractFloat}>, | |
| (vec2<f32>, vec2<f32>) -> vec2<f32>, | |
| (vec2<f16>, vec2<f16>) -> vec2<f16>, | |
| (vec2<f64>, vec2<f64>) -> vec2<f64>, | |
| (vec3<{AbstractFloat}>, vec3<{AbstractFloat}>) -> vec3<{AbstractFloat}>, | |
| (vec3<f32>, vec3<f32>) -> vec3<f32>, | |
| (vec3<f16>, vec3<f16>) -> vec3<f16>, | |
| (vec3<f64>, vec3<f64>) -> vec3<f64>, | |
| (vec4<{AbstractFloat}>, vec4<{AbstractFloat}>) -> vec4<{AbstractFloat}>, | |
| (vec4<f32>, vec4<f32>) -> vec4<f32>, | |
| (vec4<f16>, vec4<f16>) -> vec4<f16>, | |
| (vec4<f64>, vec4<f64>) -> vec4<f64>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG Supplying argument 0 of type f32 | |
| DEBUG Remaining overloads: List { | |
| rules: [ | |
| (f32, f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG Supplying argument 1 of type {AbstractFloat} | |
| DEBUG Remaining overloads: List { | |
| rules: [ | |
| (f32, f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG Resolving [46] = Literal(F32(0.33333334)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG initial overloads for Pow, List { | |
| rules: [ | |
| ({AbstractFloat}, {AbstractFloat}) -> {AbstractFloat}, | |
| (f32, f32) -> f32, | |
| (f16, f16) -> f16, | |
| (f64, f64) -> f64, | |
| (vec2<{AbstractFloat}>, vec2<{AbstractFloat}>) -> vec2<{AbstractFloat}>, | |
| (vec2<f32>, vec2<f32>) -> vec2<f32>, | |
| (vec2<f16>, vec2<f16>) -> vec2<f16>, | |
| (vec2<f64>, vec2<f64>) -> vec2<f64>, | |
| (vec3<{AbstractFloat}>, vec3<{AbstractFloat}>) -> vec3<{AbstractFloat}>, | |
| (vec3<f32>, vec3<f32>) -> vec3<f32>, | |
| (vec3<f16>, vec3<f16>) -> vec3<f16>, | |
| (vec3<f64>, vec3<f64>) -> vec3<f64>, | |
| (vec4<{AbstractFloat}>, vec4<{AbstractFloat}>) -> vec4<{AbstractFloat}>, | |
| (vec4<f32>, vec4<f32>) -> vec4<f32>, | |
| (vec4<f16>, vec4<f16>) -> vec4<f16>, | |
| (vec4<f64>, vec4<f64>) -> vec4<f64>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG overloads after arg 0 of type f32: List { | |
| rules: [ | |
| (f32, f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG overloads after arg 1 of type f32: List { | |
| rules: [ | |
| (f32, f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG Resolving [47] = Math { fun: Pow, arg: [14], arg1: Some([46]), arg2: None, arg3: None } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [48] = Literal(AbstractFloat(1.0)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG Resolving [49] = Literal(AbstractFloat(3.0)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG wgsl automatic_conversion_consensus: {AbstractFloat}, {AbstractFloat} | |
| DEBUG consensus: {AbstractFloat} | |
| DEBUG Resolving [50] = Literal(AbstractFloat(0.3333333333333333)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG Initial overloads: List { | |
| rules: [ | |
| ({AbstractFloat}, {AbstractFloat}) -> {AbstractFloat}, | |
| (f32, f32) -> f32, | |
| (f16, f16) -> f16, | |
| (f64, f64) -> f64, | |
| (vec2<{AbstractFloat}>, vec2<{AbstractFloat}>) -> vec2<{AbstractFloat}>, | |
| (vec2<f32>, vec2<f32>) -> vec2<f32>, | |
| (vec2<f16>, vec2<f16>) -> vec2<f16>, | |
| (vec2<f64>, vec2<f64>) -> vec2<f64>, | |
| (vec3<{AbstractFloat}>, vec3<{AbstractFloat}>) -> vec3<{AbstractFloat}>, | |
| (vec3<f32>, vec3<f32>) -> vec3<f32>, | |
| (vec3<f16>, vec3<f16>) -> vec3<f16>, | |
| (vec3<f64>, vec3<f64>) -> vec3<f64>, | |
| (vec4<{AbstractFloat}>, vec4<{AbstractFloat}>) -> vec4<{AbstractFloat}>, | |
| (vec4<f32>, vec4<f32>) -> vec4<f32>, | |
| (vec4<f16>, vec4<f16>) -> vec4<f16>, | |
| (vec4<f64>, vec4<f64>) -> vec4<f64>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG Supplying argument 0 of type f32 | |
| DEBUG Remaining overloads: List { | |
| rules: [ | |
| (f32, f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG Supplying argument 1 of type {AbstractFloat} | |
| DEBUG Remaining overloads: List { | |
| rules: [ | |
| (f32, f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG Resolving [51] = Literal(F32(0.33333334)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG initial overloads for Pow, List { | |
| rules: [ | |
| ({AbstractFloat}, {AbstractFloat}) -> {AbstractFloat}, | |
| (f32, f32) -> f32, | |
| (f16, f16) -> f16, | |
| (f64, f64) -> f64, | |
| (vec2<{AbstractFloat}>, vec2<{AbstractFloat}>) -> vec2<{AbstractFloat}>, | |
| (vec2<f32>, vec2<f32>) -> vec2<f32>, | |
| (vec2<f16>, vec2<f16>) -> vec2<f16>, | |
| (vec2<f64>, vec2<f64>) -> vec2<f64>, | |
| (vec3<{AbstractFloat}>, vec3<{AbstractFloat}>) -> vec3<{AbstractFloat}>, | |
| (vec3<f32>, vec3<f32>) -> vec3<f32>, | |
| (vec3<f16>, vec3<f16>) -> vec3<f16>, | |
| (vec3<f64>, vec3<f64>) -> vec3<f64>, | |
| (vec4<{AbstractFloat}>, vec4<{AbstractFloat}>) -> vec4<{AbstractFloat}>, | |
| (vec4<f32>, vec4<f32>) -> vec4<f32>, | |
| (vec4<f16>, vec4<f16>) -> vec4<f16>, | |
| (vec4<f64>, vec4<f64>) -> vec4<f64>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG overloads after arg 0 of type f32: List { | |
| rules: [ | |
| (f32, f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG overloads after arg 1 of type f32: List { | |
| rules: [ | |
| (f32, f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG Resolving [52] = Math { fun: Pow, arg: [28], arg1: Some([51]), arg2: None, arg3: None } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [53] = Literal(AbstractFloat(1.0)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG Resolving [54] = Literal(AbstractFloat(3.0)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG wgsl automatic_conversion_consensus: {AbstractFloat}, {AbstractFloat} | |
| DEBUG consensus: {AbstractFloat} | |
| DEBUG Resolving [55] = Literal(AbstractFloat(0.3333333333333333)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG Initial overloads: List { | |
| rules: [ | |
| ({AbstractFloat}, {AbstractFloat}) -> {AbstractFloat}, | |
| (f32, f32) -> f32, | |
| (f16, f16) -> f16, | |
| (f64, f64) -> f64, | |
| (vec2<{AbstractFloat}>, vec2<{AbstractFloat}>) -> vec2<{AbstractFloat}>, | |
| (vec2<f32>, vec2<f32>) -> vec2<f32>, | |
| (vec2<f16>, vec2<f16>) -> vec2<f16>, | |
| (vec2<f64>, vec2<f64>) -> vec2<f64>, | |
| (vec3<{AbstractFloat}>, vec3<{AbstractFloat}>) -> vec3<{AbstractFloat}>, | |
| (vec3<f32>, vec3<f32>) -> vec3<f32>, | |
| (vec3<f16>, vec3<f16>) -> vec3<f16>, | |
| (vec3<f64>, vec3<f64>) -> vec3<f64>, | |
| (vec4<{AbstractFloat}>, vec4<{AbstractFloat}>) -> vec4<{AbstractFloat}>, | |
| (vec4<f32>, vec4<f32>) -> vec4<f32>, | |
| (vec4<f16>, vec4<f16>) -> vec4<f16>, | |
| (vec4<f64>, vec4<f64>) -> vec4<f64>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG Supplying argument 0 of type f32 | |
| DEBUG Remaining overloads: List { | |
| rules: [ | |
| (f32, f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG Supplying argument 1 of type {AbstractFloat} | |
| DEBUG Remaining overloads: List { | |
| rules: [ | |
| (f32, f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG Resolving [56] = Literal(F32(0.33333334)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG initial overloads for Pow, List { | |
| rules: [ | |
| ({AbstractFloat}, {AbstractFloat}) -> {AbstractFloat}, | |
| (f32, f32) -> f32, | |
| (f16, f16) -> f16, | |
| (f64, f64) -> f64, | |
| (vec2<{AbstractFloat}>, vec2<{AbstractFloat}>) -> vec2<{AbstractFloat}>, | |
| (vec2<f32>, vec2<f32>) -> vec2<f32>, | |
| (vec2<f16>, vec2<f16>) -> vec2<f16>, | |
| (vec2<f64>, vec2<f64>) -> vec2<f64>, | |
| (vec3<{AbstractFloat}>, vec3<{AbstractFloat}>) -> vec3<{AbstractFloat}>, | |
| (vec3<f32>, vec3<f32>) -> vec3<f32>, | |
| (vec3<f16>, vec3<f16>) -> vec3<f16>, | |
| (vec3<f64>, vec3<f64>) -> vec3<f64>, | |
| (vec4<{AbstractFloat}>, vec4<{AbstractFloat}>) -> vec4<{AbstractFloat}>, | |
| (vec4<f32>, vec4<f32>) -> vec4<f32>, | |
| (vec4<f16>, vec4<f16>) -> vec4<f16>, | |
| (vec4<f64>, vec4<f64>) -> vec4<f64>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG overloads after arg 0 of type f32: List { | |
| rules: [ | |
| (f32, f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG overloads after arg 1 of type f32: List { | |
| rules: [ | |
| (f32, f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG Resolving [57] = Math { fun: Pow, arg: [42], arg1: Some([56]), arg2: None, arg3: None } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [58] = Literal(AbstractFloat(0.2104542553)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG wgsl automatic_conversion_consensus: {AbstractFloat}, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [59] = Literal(F32(0.21045426)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [60] = Binary { op: Multiply, left: [59], right: [47] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [61] = Literal(AbstractFloat(0.793617785)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG wgsl automatic_conversion_consensus: {AbstractFloat}, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [62] = Literal(F32(0.7936178)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [63] = Binary { op: Multiply, left: [62], right: [52] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG wgsl automatic_conversion_consensus: f32, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [64] = Binary { op: Add, left: [60], right: [63] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [65] = Literal(AbstractFloat(0.0040720468)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG wgsl automatic_conversion_consensus: {AbstractFloat}, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [66] = Literal(F32(0.004072047)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [67] = Binary { op: Multiply, left: [66], right: [57] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG wgsl automatic_conversion_consensus: f32, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [68] = Binary { op: Subtract, left: [64], right: [67] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [69] = Literal(AbstractFloat(1.9779984951)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG wgsl automatic_conversion_consensus: {AbstractFloat}, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [70] = Literal(F32(1.9779985)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [71] = Binary { op: Multiply, left: [70], right: [47] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [72] = Literal(AbstractFloat(2.428592205)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG wgsl automatic_conversion_consensus: {AbstractFloat}, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [73] = Literal(F32(2.4285922)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [74] = Binary { op: Multiply, left: [73], right: [52] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG wgsl automatic_conversion_consensus: f32, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [75] = Binary { op: Subtract, left: [71], right: [74] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [76] = Literal(AbstractFloat(0.4505937099)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG wgsl automatic_conversion_consensus: {AbstractFloat}, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [77] = Literal(F32(0.4505937)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [78] = Binary { op: Multiply, left: [77], right: [57] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG wgsl automatic_conversion_consensus: f32, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [79] = Binary { op: Add, left: [75], right: [78] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [80] = Literal(AbstractFloat(0.0259040371)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG wgsl automatic_conversion_consensus: {AbstractFloat}, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [81] = Literal(F32(0.025904037)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [82] = Binary { op: Multiply, left: [81], right: [47] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [83] = Literal(AbstractFloat(0.7827717662)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG wgsl automatic_conversion_consensus: {AbstractFloat}, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [84] = Literal(F32(0.78277177)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [85] = Binary { op: Multiply, left: [84], right: [52] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG wgsl automatic_conversion_consensus: f32, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [86] = Binary { op: Add, left: [82], right: [85] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [87] = Literal(AbstractFloat(0.808675766)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG wgsl automatic_conversion_consensus: {AbstractFloat}, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [88] = Literal(F32(0.80867577)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [89] = Binary { op: Multiply, left: [88], right: [57] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG wgsl automatic_conversion_consensus: f32, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [90] = Binary { op: Subtract, left: [86], right: [89] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [91] = AccessIndex { base: [0], index: 3 } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [92] = Compose { ty: [2], components: [[68], [79], [90], [91]] } : Handle([2]) | |
| DEBUG Resolving [0] = FunctionArgument(0) : Handle([2]) | |
| DEBUG Resolving [1] = AccessIndex { base: [0], index: 0 } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [2] = Literal(AbstractFloat(0.3963377774)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG Resolving [3] = AccessIndex { base: [0], index: 1 } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG wgsl automatic_conversion_consensus: {AbstractFloat}, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [4] = Literal(F32(0.39633778)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [5] = Binary { op: Multiply, left: [4], right: [3] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG wgsl automatic_conversion_consensus: f32, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [6] = Binary { op: Add, left: [1], right: [5] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [7] = Literal(AbstractFloat(0.2158037573)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG Resolving [8] = AccessIndex { base: [0], index: 2 } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG wgsl automatic_conversion_consensus: {AbstractFloat}, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [9] = Literal(F32(0.21580376)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [10] = Binary { op: Multiply, left: [9], right: [8] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG wgsl automatic_conversion_consensus: f32, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [11] = Binary { op: Add, left: [6], right: [10] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [12] = AccessIndex { base: [0], index: 0 } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [13] = Literal(AbstractFloat(0.1055613458)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG Resolving [14] = AccessIndex { base: [0], index: 1 } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG wgsl automatic_conversion_consensus: {AbstractFloat}, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [15] = Literal(F32(0.105561346)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [16] = Binary { op: Multiply, left: [15], right: [14] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG wgsl automatic_conversion_consensus: f32, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [17] = Binary { op: Subtract, left: [12], right: [16] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [18] = Literal(AbstractFloat(0.0638541728)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG Resolving [19] = AccessIndex { base: [0], index: 2 } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG wgsl automatic_conversion_consensus: {AbstractFloat}, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [20] = Literal(F32(0.06385417)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [21] = Binary { op: Multiply, left: [20], right: [19] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG wgsl automatic_conversion_consensus: f32, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [22] = Binary { op: Subtract, left: [17], right: [21] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [23] = AccessIndex { base: [0], index: 0 } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [24] = Literal(AbstractFloat(0.0894841775)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG Resolving [25] = AccessIndex { base: [0], index: 1 } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG wgsl automatic_conversion_consensus: {AbstractFloat}, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [26] = Literal(F32(0.08948418)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [27] = Binary { op: Multiply, left: [26], right: [25] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG wgsl automatic_conversion_consensus: f32, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [28] = Binary { op: Subtract, left: [23], right: [27] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [29] = Literal(AbstractFloat(1.291485548)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG Resolving [30] = AccessIndex { base: [0], index: 2 } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG wgsl automatic_conversion_consensus: {AbstractFloat}, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [31] = Literal(F32(1.2914855)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [32] = Binary { op: Multiply, left: [31], right: [30] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG wgsl automatic_conversion_consensus: f32, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [33] = Binary { op: Subtract, left: [28], right: [32] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG wgsl automatic_conversion_consensus: f32, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [34] = Binary { op: Multiply, left: [11], right: [11] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG wgsl automatic_conversion_consensus: f32, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [35] = Binary { op: Multiply, left: [34], right: [11] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG wgsl automatic_conversion_consensus: f32, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [36] = Binary { op: Multiply, left: [22], right: [22] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG wgsl automatic_conversion_consensus: f32, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [37] = Binary { op: Multiply, left: [36], right: [22] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG wgsl automatic_conversion_consensus: f32, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [38] = Binary { op: Multiply, left: [33], right: [33] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG wgsl automatic_conversion_consensus: f32, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [39] = Binary { op: Multiply, left: [38], right: [33] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [40] = Literal(AbstractFloat(4.0767416621)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG wgsl automatic_conversion_consensus: {AbstractFloat}, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [41] = Literal(F32(4.0767417)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [42] = Binary { op: Multiply, left: [41], right: [35] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [43] = Literal(AbstractFloat(3.3077115913)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG wgsl automatic_conversion_consensus: {AbstractFloat}, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [44] = Literal(F32(3.3077116)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [45] = Binary { op: Multiply, left: [44], right: [37] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG wgsl automatic_conversion_consensus: f32, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [46] = Binary { op: Subtract, left: [42], right: [45] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [47] = Literal(AbstractFloat(0.2309699292)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG wgsl automatic_conversion_consensus: {AbstractFloat}, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [48] = Literal(F32(0.23096994)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [49] = Binary { op: Multiply, left: [48], right: [39] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG wgsl automatic_conversion_consensus: f32, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [50] = Binary { op: Add, left: [46], right: [49] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [51] = Literal(AbstractFloat(1.2684380046)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG Resolving [52] = Literal(AbstractFloat(-1.2684380046)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG wgsl automatic_conversion_consensus: {AbstractFloat}, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [53] = Literal(F32(-1.268438)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [54] = Binary { op: Multiply, left: [53], right: [35] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [55] = Literal(AbstractFloat(2.6097574011)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG wgsl automatic_conversion_consensus: {AbstractFloat}, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [56] = Literal(F32(2.6097574)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [57] = Binary { op: Multiply, left: [56], right: [37] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG wgsl automatic_conversion_consensus: f32, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [58] = Binary { op: Add, left: [54], right: [57] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [59] = Literal(AbstractFloat(0.3413193965)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG wgsl automatic_conversion_consensus: {AbstractFloat}, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [60] = Literal(F32(0.34131938)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [61] = Binary { op: Multiply, left: [60], right: [39] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG wgsl automatic_conversion_consensus: f32, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [62] = Binary { op: Subtract, left: [58], right: [61] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [63] = Literal(AbstractFloat(0.0041960863)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG Resolving [64] = Literal(AbstractFloat(-0.0041960863)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG wgsl automatic_conversion_consensus: {AbstractFloat}, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [65] = Literal(F32(-0.0041960864)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [66] = Binary { op: Multiply, left: [65], right: [35] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [67] = Literal(AbstractFloat(0.7034186147)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG wgsl automatic_conversion_consensus: {AbstractFloat}, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [68] = Literal(F32(0.7034186)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [69] = Binary { op: Multiply, left: [68], right: [37] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG wgsl automatic_conversion_consensus: f32, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [70] = Binary { op: Subtract, left: [66], right: [69] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [71] = Literal(AbstractFloat(1.707614701)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG wgsl automatic_conversion_consensus: {AbstractFloat}, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [72] = Literal(F32(1.7076147)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [73] = Binary { op: Multiply, left: [72], right: [39] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG wgsl automatic_conversion_consensus: f32, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [74] = Binary { op: Add, left: [70], right: [73] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [75] = AccessIndex { base: [0], index: 3 } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [76] = Compose { ty: [2], components: [[50], [62], [74], [75]] } : Handle([2]) | |
| DEBUG Resolving [0] = FunctionArgument(0) : Handle([2]) | |
| DEBUG Resolving [1] = FunctionArgument(1) : Handle([2]) | |
| DEBUG Resolving [2] = AccessIndex { base: [1], index: 3 } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [3] = AccessIndex { base: [0], index: 3 } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [4] = Literal(AbstractFloat(1.0)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG Resolving [5] = AccessIndex { base: [1], index: 3 } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG wgsl automatic_conversion_consensus: {AbstractFloat}, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [6] = Literal(F32(1.0)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [7] = Binary { op: Subtract, left: [6], right: [5] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG wgsl automatic_conversion_consensus: f32, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [8] = Binary { op: Multiply, left: [3], right: [7] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG wgsl automatic_conversion_consensus: f32, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [9] = Binary { op: Add, left: [2], right: [8] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [10] = Swizzle { size: Tri, vector: [1], pattern: [X, Y, Z, X] } : Value(Vector { size: Tri, scalar: Scalar { kind: Float, width: 4 } }) | |
| DEBUG Resolving [11] = AccessIndex { base: [1], index: 3 } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG wgsl automatic_conversion_consensus: vec3<f32>, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [12] = Binary { op: Multiply, left: [10], right: [11] } : Value(Vector { size: Tri, scalar: Scalar { kind: Float, width: 4 } }) | |
| DEBUG Resolving [13] = Swizzle { size: Tri, vector: [0], pattern: [X, Y, Z, X] } : Value(Vector { size: Tri, scalar: Scalar { kind: Float, width: 4 } }) | |
| DEBUG Resolving [14] = AccessIndex { base: [0], index: 3 } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG wgsl automatic_conversion_consensus: vec3<f32>, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [15] = Binary { op: Multiply, left: [13], right: [14] } : Value(Vector { size: Tri, scalar: Scalar { kind: Float, width: 4 } }) | |
| DEBUG Resolving [16] = Literal(AbstractFloat(1.0)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG Resolving [17] = AccessIndex { base: [1], index: 3 } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG wgsl automatic_conversion_consensus: {AbstractFloat}, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [18] = Literal(F32(1.0)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [19] = Binary { op: Subtract, left: [18], right: [17] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG wgsl automatic_conversion_consensus: vec3<f32>, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [20] = Binary { op: Multiply, left: [15], right: [19] } : Value(Vector { size: Tri, scalar: Scalar { kind: Float, width: 4 } }) | |
| DEBUG wgsl automatic_conversion_consensus: vec3<f32>, vec3<f32> | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [21] = Binary { op: Add, left: [12], right: [20] } : Value(Vector { size: Tri, scalar: Scalar { kind: Float, width: 4 } }) | |
| DEBUG Resolving [22] = Splat { size: Tri, value: [9] } : Value(Vector { size: Tri, scalar: Scalar { kind: Float, width: 4 } }) | |
| DEBUG wgsl automatic_conversion_consensus: vec3<f32>, vec3<f32> | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [23] = Binary { op: Divide, left: [21], right: [22] } : Value(Vector { size: Tri, scalar: Scalar { kind: Float, width: 4 } }) | |
| DEBUG Resolving [24] = Compose { ty: [2], components: [[23], [9]] } : Handle([2]) | |
| DEBUG Resolving [0] = FunctionArgument(0) : Handle([0]) | |
| DEBUG Resolving [1] = FunctionArgument(1) : Handle([0]) | |
| DEBUG wgsl automatic_conversion_consensus: f32, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [2] = Binary { op: Multiply, left: [0], right: [0] } : Handle([0]) | |
| DEBUG Resolving [3] = Unary { op: Negate, expr: [2] } : Handle([0]) | |
| DEBUG Resolving [4] = Literal(AbstractFloat(2.0)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG wgsl automatic_conversion_consensus: {AbstractFloat}, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [5] = Literal(F32(2.0)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [6] = Binary { op: Multiply, left: [5], right: [1] } : Handle([0]) | |
| DEBUG wgsl automatic_conversion_consensus: f32, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [7] = Binary { op: Multiply, left: [6], right: [1] } : Handle([0]) | |
| DEBUG wgsl automatic_conversion_consensus: f32, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [8] = Binary { op: Divide, left: [3], right: [7] } : Handle([0]) | |
| DEBUG Initial overloads: List { | |
| rules: [ | |
| ({AbstractFloat}) -> {AbstractFloat}, | |
| (f32) -> f32, | |
| (f16) -> f16, | |
| (f64) -> f64, | |
| (vec2<{AbstractFloat}>) -> vec2<{AbstractFloat}>, | |
| (vec2<f32>) -> vec2<f32>, | |
| (vec2<f16>) -> vec2<f16>, | |
| (vec2<f64>) -> vec2<f64>, | |
| (vec3<{AbstractFloat}>) -> vec3<{AbstractFloat}>, | |
| (vec3<f32>) -> vec3<f32>, | |
| (vec3<f16>) -> vec3<f16>, | |
| (vec3<f64>) -> vec3<f64>, | |
| (vec4<{AbstractFloat}>) -> vec4<{AbstractFloat}>, | |
| (vec4<f32>) -> vec4<f32>, | |
| (vec4<f16>) -> vec4<f16>, | |
| (vec4<f64>) -> vec4<f64>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG Supplying argument 0 of type f32 | |
| DEBUG Remaining overloads: List { | |
| rules: [ | |
| (f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG initial overloads for Exp, List { | |
| rules: [ | |
| ({AbstractFloat}) -> {AbstractFloat}, | |
| (f32) -> f32, | |
| (f16) -> f16, | |
| (f64) -> f64, | |
| (vec2<{AbstractFloat}>) -> vec2<{AbstractFloat}>, | |
| (vec2<f32>) -> vec2<f32>, | |
| (vec2<f16>) -> vec2<f16>, | |
| (vec2<f64>) -> vec2<f64>, | |
| (vec3<{AbstractFloat}>) -> vec3<{AbstractFloat}>, | |
| (vec3<f32>) -> vec3<f32>, | |
| (vec3<f16>) -> vec3<f16>, | |
| (vec3<f64>) -> vec3<f64>, | |
| (vec4<{AbstractFloat}>) -> vec4<{AbstractFloat}>, | |
| (vec4<f32>) -> vec4<f32>, | |
| (vec4<f16>) -> vec4<f16>, | |
| (vec4<f64>) -> vec4<f64>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG overloads after arg 0 of type f32: List { | |
| rules: [ | |
| (f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG Resolving [9] = Math { fun: Exp, arg: [8], arg1: None, arg2: None, arg3: None } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [10] = Literal(AbstractFloat(2.0)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG Resolving [11] = Constant([0]) : Handle([0]) | |
| DEBUG wgsl automatic_conversion_consensus: {AbstractFloat}, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [12] = Literal(F32(2.0)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [13] = Literal(F32(3.1415925)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [14] = Literal(F32(6.283185)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Initial overloads: List { | |
| rules: [ | |
| ({AbstractFloat}) -> {AbstractFloat}, | |
| (f32) -> f32, | |
| (f16) -> f16, | |
| (f64) -> f64, | |
| (vec2<{AbstractFloat}>) -> vec2<{AbstractFloat}>, | |
| (vec2<f32>) -> vec2<f32>, | |
| (vec2<f16>) -> vec2<f16>, | |
| (vec2<f64>) -> vec2<f64>, | |
| (vec3<{AbstractFloat}>) -> vec3<{AbstractFloat}>, | |
| (vec3<f32>) -> vec3<f32>, | |
| (vec3<f16>) -> vec3<f16>, | |
| (vec3<f64>) -> vec3<f64>, | |
| (vec4<{AbstractFloat}>) -> vec4<{AbstractFloat}>, | |
| (vec4<f32>) -> vec4<f32>, | |
| (vec4<f16>) -> vec4<f16>, | |
| (vec4<f64>) -> vec4<f64>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG Supplying argument 0 of type f32 | |
| DEBUG Remaining overloads: List { | |
| rules: [ | |
| (f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG Resolving [15] = Literal(F32(2.5066283)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG wgsl automatic_conversion_consensus: f32, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [16] = Binary { op: Multiply, left: [15], right: [1] } : Handle([0]) | |
| DEBUG wgsl automatic_conversion_consensus: f32, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [17] = Binary { op: Divide, left: [9], right: [16] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [0] = FunctionArgument(0) : Handle([3]) | |
| DEBUG Initial overloads: List { | |
| rules: [ | |
| ({AbstractInt}) -> {AbstractInt}, | |
| ({AbstractFloat}) -> {AbstractFloat}, | |
| (i32) -> i32, | |
| (i64) -> i64, | |
| (u32) -> u32, | |
| (u64) -> u64, | |
| (f32) -> f32, | |
| (f16) -> f16, | |
| (f64) -> f64, | |
| (vec2<{AbstractInt}>) -> vec2<{AbstractInt}>, | |
| (vec2<{AbstractFloat}>) -> vec2<{AbstractFloat}>, | |
| (vec2<i32>) -> vec2<i32>, | |
| (vec2<i64>) -> vec2<i64>, | |
| (vec2<u32>) -> vec2<u32>, | |
| (vec2<u64>) -> vec2<u64>, | |
| (vec2<f32>) -> vec2<f32>, | |
| (vec2<f16>) -> vec2<f16>, | |
| (vec2<f64>) -> vec2<f64>, | |
| (vec3<{AbstractInt}>) -> vec3<{AbstractInt}>, | |
| (vec3<{AbstractFloat}>) -> vec3<{AbstractFloat}>, | |
| (vec3<i32>) -> vec3<i32>, | |
| (vec3<i64>) -> vec3<i64>, | |
| (vec3<u32>) -> vec3<u32>, | |
| (vec3<u64>) -> vec3<u64>, | |
| (vec3<f32>) -> vec3<f32>, | |
| (vec3<f16>) -> vec3<f16>, | |
| (vec3<f64>) -> vec3<f64>, | |
| (vec4<{AbstractInt}>) -> vec4<{AbstractInt}>, | |
| (vec4<{AbstractFloat}>) -> vec4<{AbstractFloat}>, | |
| (vec4<i32>) -> vec4<i32>, | |
| (vec4<i64>) -> vec4<i64>, | |
| (vec4<u32>) -> vec4<u32>, | |
| (vec4<u64>) -> vec4<u64>, | |
| (vec4<f32>) -> vec4<f32>, | |
| (vec4<f16>) -> vec4<f16>, | |
| (vec4<f64>) -> vec4<f64>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG Supplying argument 0 of type vec2<f32> | |
| DEBUG Remaining overloads: List { | |
| rules: [ | |
| (vec2<f32>) -> vec2<f32>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG initial overloads for Sign, List { | |
| rules: [ | |
| ({AbstractInt}) -> {AbstractInt}, | |
| ({AbstractFloat}) -> {AbstractFloat}, | |
| (i32) -> i32, | |
| (i64) -> i64, | |
| (u32) -> u32, | |
| (u64) -> u64, | |
| (f32) -> f32, | |
| (f16) -> f16, | |
| (f64) -> f64, | |
| (vec2<{AbstractInt}>) -> vec2<{AbstractInt}>, | |
| (vec2<{AbstractFloat}>) -> vec2<{AbstractFloat}>, | |
| (vec2<i32>) -> vec2<i32>, | |
| (vec2<i64>) -> vec2<i64>, | |
| (vec2<u32>) -> vec2<u32>, | |
| (vec2<u64>) -> vec2<u64>, | |
| (vec2<f32>) -> vec2<f32>, | |
| (vec2<f16>) -> vec2<f16>, | |
| (vec2<f64>) -> vec2<f64>, | |
| (vec3<{AbstractInt}>) -> vec3<{AbstractInt}>, | |
| (vec3<{AbstractFloat}>) -> vec3<{AbstractFloat}>, | |
| (vec3<i32>) -> vec3<i32>, | |
| (vec3<i64>) -> vec3<i64>, | |
| (vec3<u32>) -> vec3<u32>, | |
| (vec3<u64>) -> vec3<u64>, | |
| (vec3<f32>) -> vec3<f32>, | |
| (vec3<f16>) -> vec3<f16>, | |
| (vec3<f64>) -> vec3<f64>, | |
| (vec4<{AbstractInt}>) -> vec4<{AbstractInt}>, | |
| (vec4<{AbstractFloat}>) -> vec4<{AbstractFloat}>, | |
| (vec4<i32>) -> vec4<i32>, | |
| (vec4<i64>) -> vec4<i64>, | |
| (vec4<u32>) -> vec4<u32>, | |
| (vec4<u64>) -> vec4<u64>, | |
| (vec4<f32>) -> vec4<f32>, | |
| (vec4<f16>) -> vec4<f16>, | |
| (vec4<f64>) -> vec4<f64>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG overloads after arg 0 of type vec2<f32>: List { | |
| rules: [ | |
| (vec2<f32>) -> vec2<f32>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG Resolving [1] = Math { fun: Sign, arg: [0], arg1: None, arg2: None, arg3: None } : Value(Vector { size: Bi, scalar: Scalar { kind: Float, width: 4 } }) | |
| DEBUG Initial overloads: List { | |
| rules: [ | |
| ({AbstractInt}) -> {AbstractInt}, | |
| ({AbstractFloat}) -> {AbstractFloat}, | |
| (i32) -> i32, | |
| (i64) -> i64, | |
| (u32) -> u32, | |
| (u64) -> u64, | |
| (f32) -> f32, | |
| (f16) -> f16, | |
| (f64) -> f64, | |
| (vec2<{AbstractInt}>) -> vec2<{AbstractInt}>, | |
| (vec2<{AbstractFloat}>) -> vec2<{AbstractFloat}>, | |
| (vec2<i32>) -> vec2<i32>, | |
| (vec2<i64>) -> vec2<i64>, | |
| (vec2<u32>) -> vec2<u32>, | |
| (vec2<u64>) -> vec2<u64>, | |
| (vec2<f32>) -> vec2<f32>, | |
| (vec2<f16>) -> vec2<f16>, | |
| (vec2<f64>) -> vec2<f64>, | |
| (vec3<{AbstractInt}>) -> vec3<{AbstractInt}>, | |
| (vec3<{AbstractFloat}>) -> vec3<{AbstractFloat}>, | |
| (vec3<i32>) -> vec3<i32>, | |
| (vec3<i64>) -> vec3<i64>, | |
| (vec3<u32>) -> vec3<u32>, | |
| (vec3<u64>) -> vec3<u64>, | |
| (vec3<f32>) -> vec3<f32>, | |
| (vec3<f16>) -> vec3<f16>, | |
| (vec3<f64>) -> vec3<f64>, | |
| (vec4<{AbstractInt}>) -> vec4<{AbstractInt}>, | |
| (vec4<{AbstractFloat}>) -> vec4<{AbstractFloat}>, | |
| (vec4<i32>) -> vec4<i32>, | |
| (vec4<i64>) -> vec4<i64>, | |
| (vec4<u32>) -> vec4<u32>, | |
| (vec4<u64>) -> vec4<u64>, | |
| (vec4<f32>) -> vec4<f32>, | |
| (vec4<f16>) -> vec4<f16>, | |
| (vec4<f64>) -> vec4<f64>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG Supplying argument 0 of type vec2<f32> | |
| DEBUG Remaining overloads: List { | |
| rules: [ | |
| (vec2<f32>) -> vec2<f32>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG initial overloads for Abs, List { | |
| rules: [ | |
| ({AbstractInt}) -> {AbstractInt}, | |
| ({AbstractFloat}) -> {AbstractFloat}, | |
| (i32) -> i32, | |
| (i64) -> i64, | |
| (u32) -> u32, | |
| (u64) -> u64, | |
| (f32) -> f32, | |
| (f16) -> f16, | |
| (f64) -> f64, | |
| (vec2<{AbstractInt}>) -> vec2<{AbstractInt}>, | |
| (vec2<{AbstractFloat}>) -> vec2<{AbstractFloat}>, | |
| (vec2<i32>) -> vec2<i32>, | |
| (vec2<i64>) -> vec2<i64>, | |
| (vec2<u32>) -> vec2<u32>, | |
| (vec2<u64>) -> vec2<u64>, | |
| (vec2<f32>) -> vec2<f32>, | |
| (vec2<f16>) -> vec2<f16>, | |
| (vec2<f64>) -> vec2<f64>, | |
| (vec3<{AbstractInt}>) -> vec3<{AbstractInt}>, | |
| (vec3<{AbstractFloat}>) -> vec3<{AbstractFloat}>, | |
| (vec3<i32>) -> vec3<i32>, | |
| (vec3<i64>) -> vec3<i64>, | |
| (vec3<u32>) -> vec3<u32>, | |
| (vec3<u64>) -> vec3<u64>, | |
| (vec3<f32>) -> vec3<f32>, | |
| (vec3<f16>) -> vec3<f16>, | |
| (vec3<f64>) -> vec3<f64>, | |
| (vec4<{AbstractInt}>) -> vec4<{AbstractInt}>, | |
| (vec4<{AbstractFloat}>) -> vec4<{AbstractFloat}>, | |
| (vec4<i32>) -> vec4<i32>, | |
| (vec4<i64>) -> vec4<i64>, | |
| (vec4<u32>) -> vec4<u32>, | |
| (vec4<u64>) -> vec4<u64>, | |
| (vec4<f32>) -> vec4<f32>, | |
| (vec4<f16>) -> vec4<f16>, | |
| (vec4<f64>) -> vec4<f64>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG overloads after arg 0 of type vec2<f32>: List { | |
| rules: [ | |
| (vec2<f32>) -> vec2<f32>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG Resolving [2] = Math { fun: Abs, arg: [0], arg1: None, arg2: None, arg3: None } : Value(Vector { size: Bi, scalar: Scalar { kind: Float, width: 4 } }) | |
| DEBUG Resolving [3] = Literal(AbstractFloat(1.0)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG Resolving [4] = Literal(AbstractFloat(0.278393)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG Resolving [5] = Literal(AbstractFloat(0.230389)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG Resolving [6] = Literal(AbstractFloat(0.000972)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG Resolving [7] = Literal(AbstractFloat(0.078108)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG wgsl automatic_conversion_consensus: {AbstractFloat}, vec2<f32> | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [8] = Literal(F32(0.078108)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [9] = Binary { op: Multiply, left: [8], right: [2] } : Value(Vector { size: Bi, scalar: Scalar { kind: Float, width: 4 } }) | |
| DEBUG Resolving [10] = Splat { size: Bi, value: [6] } : Value(Vector { size: Bi, scalar: Scalar { kind: AbstractFloat, width: 8 } }) | |
| DEBUG wgsl automatic_conversion_consensus: vec2<{AbstractFloat}>, vec2<f32> | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [11] = Literal(F32(0.000972)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [12] = Splat { size: Bi, value: [11] } : Value(Vector { size: Bi, scalar: Scalar { kind: Float, width: 4 } }) | |
| DEBUG Resolving [13] = Binary { op: Add, left: [12], right: [9] } : Value(Vector { size: Bi, scalar: Scalar { kind: Float, width: 4 } }) | |
| DEBUG wgsl automatic_conversion_consensus: vec2<f32>, vec2<f32> | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [14] = Binary { op: Multiply, left: [13], right: [2] } : Value(Vector { size: Bi, scalar: Scalar { kind: Float, width: 4 } }) | |
| DEBUG Resolving [15] = Splat { size: Bi, value: [5] } : Value(Vector { size: Bi, scalar: Scalar { kind: AbstractFloat, width: 8 } }) | |
| DEBUG wgsl automatic_conversion_consensus: vec2<{AbstractFloat}>, vec2<f32> | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [16] = Literal(F32(0.230389)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [17] = Splat { size: Bi, value: [16] } : Value(Vector { size: Bi, scalar: Scalar { kind: Float, width: 4 } }) | |
| DEBUG Resolving [18] = Binary { op: Add, left: [17], right: [14] } : Value(Vector { size: Bi, scalar: Scalar { kind: Float, width: 4 } }) | |
| DEBUG wgsl automatic_conversion_consensus: vec2<f32>, vec2<f32> | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [19] = Binary { op: Multiply, left: [18], right: [2] } : Value(Vector { size: Bi, scalar: Scalar { kind: Float, width: 4 } }) | |
| DEBUG Resolving [20] = Splat { size: Bi, value: [4] } : Value(Vector { size: Bi, scalar: Scalar { kind: AbstractFloat, width: 8 } }) | |
| DEBUG wgsl automatic_conversion_consensus: vec2<{AbstractFloat}>, vec2<f32> | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [21] = Literal(F32(0.278393)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [22] = Splat { size: Bi, value: [21] } : Value(Vector { size: Bi, scalar: Scalar { kind: Float, width: 4 } }) | |
| DEBUG Resolving [23] = Binary { op: Add, left: [22], right: [19] } : Value(Vector { size: Bi, scalar: Scalar { kind: Float, width: 4 } }) | |
| DEBUG wgsl automatic_conversion_consensus: vec2<f32>, vec2<f32> | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [24] = Binary { op: Multiply, left: [23], right: [2] } : Value(Vector { size: Bi, scalar: Scalar { kind: Float, width: 4 } }) | |
| DEBUG Resolving [25] = Splat { size: Bi, value: [3] } : Value(Vector { size: Bi, scalar: Scalar { kind: AbstractFloat, width: 8 } }) | |
| DEBUG wgsl automatic_conversion_consensus: vec2<{AbstractFloat}>, vec2<f32> | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [26] = Literal(F32(1.0)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [27] = Splat { size: Bi, value: [26] } : Value(Vector { size: Bi, scalar: Scalar { kind: Float, width: 4 } }) | |
| DEBUG Resolving [28] = Binary { op: Add, left: [27], right: [24] } : Value(Vector { size: Bi, scalar: Scalar { kind: Float, width: 4 } }) | |
| DEBUG wgsl automatic_conversion_consensus: vec2<f32>, vec2<f32> | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [29] = Binary { op: Multiply, left: [28], right: [28] } : Value(Vector { size: Bi, scalar: Scalar { kind: Float, width: 4 } }) | |
| DEBUG wgsl automatic_conversion_consensus: vec2<f32>, vec2<f32> | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [30] = Binary { op: Multiply, left: [29], right: [29] } : Value(Vector { size: Bi, scalar: Scalar { kind: Float, width: 4 } }) | |
| DEBUG wgsl automatic_conversion_consensus: vec2<f32>, vec2<f32> | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [31] = Binary { op: Divide, left: [1], right: [30] } : Value(Vector { size: Bi, scalar: Scalar { kind: Float, width: 4 } }) | |
| DEBUG wgsl automatic_conversion_consensus: vec2<f32>, vec2<f32> | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [32] = Binary { op: Subtract, left: [1], right: [31] } : Value(Vector { size: Bi, scalar: Scalar { kind: Float, width: 4 } }) | |
| DEBUG Resolving [0] = FunctionArgument(0) : Handle([0]) | |
| DEBUG Resolving [1] = FunctionArgument(1) : Handle([0]) | |
| DEBUG Resolving [2] = FunctionArgument(2) : Handle([0]) | |
| DEBUG Resolving [3] = FunctionArgument(3) : Handle([0]) | |
| DEBUG Resolving [4] = FunctionArgument(4) : Handle([3]) | |
| DEBUG Resolving [5] = AccessIndex { base: [4], index: 1 } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG wgsl automatic_conversion_consensus: f32, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Initial overloads: List { | |
| rules: [ | |
| ({AbstractInt}) -> {AbstractInt}, | |
| ({AbstractFloat}) -> {AbstractFloat}, | |
| (i32) -> i32, | |
| (i64) -> i64, | |
| (u32) -> u32, | |
| (u64) -> u64, | |
| (f32) -> f32, | |
| (f16) -> f16, | |
| (f64) -> f64, | |
| (vec2<{AbstractInt}>) -> vec2<{AbstractInt}>, | |
| (vec2<{AbstractFloat}>) -> vec2<{AbstractFloat}>, | |
| (vec2<i32>) -> vec2<i32>, | |
| (vec2<i64>) -> vec2<i64>, | |
| (vec2<u32>) -> vec2<u32>, | |
| (vec2<u64>) -> vec2<u64>, | |
| (vec2<f32>) -> vec2<f32>, | |
| (vec2<f16>) -> vec2<f16>, | |
| (vec2<f64>) -> vec2<f64>, | |
| (vec3<{AbstractInt}>) -> vec3<{AbstractInt}>, | |
| (vec3<{AbstractFloat}>) -> vec3<{AbstractFloat}>, | |
| (vec3<i32>) -> vec3<i32>, | |
| (vec3<i64>) -> vec3<i64>, | |
| (vec3<u32>) -> vec3<u32>, | |
| (vec3<u64>) -> vec3<u64>, | |
| (vec3<f32>) -> vec3<f32>, | |
| (vec3<f16>) -> vec3<f16>, | |
| (vec3<f64>) -> vec3<f64>, | |
| (vec4<{AbstractInt}>) -> vec4<{AbstractInt}>, | |
| (vec4<{AbstractFloat}>) -> vec4<{AbstractFloat}>, | |
| (vec4<i32>) -> vec4<i32>, | |
| (vec4<i64>) -> vec4<i64>, | |
| (vec4<u32>) -> vec4<u32>, | |
| (vec4<u64>) -> vec4<u64>, | |
| (vec4<f32>) -> vec4<f32>, | |
| (vec4<f16>) -> vec4<f16>, | |
| (vec4<f64>) -> vec4<f64>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG Supplying argument 0 of type f32 | |
| DEBUG Remaining overloads: List { | |
| rules: [ | |
| (f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG Resolving [6] = Binary { op: Subtract, left: [5], right: [3] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG initial overloads for Abs, List { | |
| rules: [ | |
| ({AbstractInt}) -> {AbstractInt}, | |
| ({AbstractFloat}) -> {AbstractFloat}, | |
| (i32) -> i32, | |
| (i64) -> i64, | |
| (u32) -> u32, | |
| (u64) -> u64, | |
| (f32) -> f32, | |
| (f16) -> f16, | |
| (f64) -> f64, | |
| (vec2<{AbstractInt}>) -> vec2<{AbstractInt}>, | |
| (vec2<{AbstractFloat}>) -> vec2<{AbstractFloat}>, | |
| (vec2<i32>) -> vec2<i32>, | |
| (vec2<i64>) -> vec2<i64>, | |
| (vec2<u32>) -> vec2<u32>, | |
| (vec2<u64>) -> vec2<u64>, | |
| (vec2<f32>) -> vec2<f32>, | |
| (vec2<f16>) -> vec2<f16>, | |
| (vec2<f64>) -> vec2<f64>, | |
| (vec3<{AbstractInt}>) -> vec3<{AbstractInt}>, | |
| (vec3<{AbstractFloat}>) -> vec3<{AbstractFloat}>, | |
| (vec3<i32>) -> vec3<i32>, | |
| (vec3<i64>) -> vec3<i64>, | |
| (vec3<u32>) -> vec3<u32>, | |
| (vec3<u64>) -> vec3<u64>, | |
| (vec3<f32>) -> vec3<f32>, | |
| (vec3<f16>) -> vec3<f16>, | |
| (vec3<f64>) -> vec3<f64>, | |
| (vec4<{AbstractInt}>) -> vec4<{AbstractInt}>, | |
| (vec4<{AbstractFloat}>) -> vec4<{AbstractFloat}>, | |
| (vec4<i32>) -> vec4<i32>, | |
| (vec4<i64>) -> vec4<i64>, | |
| (vec4<u32>) -> vec4<u32>, | |
| (vec4<u64>) -> vec4<u64>, | |
| (vec4<f32>) -> vec4<f32>, | |
| (vec4<f16>) -> vec4<f16>, | |
| (vec4<f64>) -> vec4<f64>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG overloads after arg 0 of type f32: List { | |
| rules: [ | |
| (f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG Resolving [7] = Math { fun: Abs, arg: [1], arg1: None, arg2: None, arg3: None } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG wgsl automatic_conversion_consensus: f32, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [8] = Binary { op: Subtract, left: [6], right: [7] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [9] = Literal(AbstractFloat(0.0)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG Initial overloads: List { | |
| rules: [ | |
| ({AbstractInt}, {AbstractInt}) -> {AbstractInt}, | |
| ({AbstractFloat}, {AbstractFloat}) -> {AbstractFloat}, | |
| (i32, i32) -> i32, | |
| (i64, i64) -> i64, | |
| (u32, u32) -> u32, | |
| (u64, u64) -> u64, | |
| (f32, f32) -> f32, | |
| (f16, f16) -> f16, | |
| (f64, f64) -> f64, | |
| (vec2<{AbstractInt}>, vec2<{AbstractInt}>) -> vec2<{AbstractInt}>, | |
| (vec2<{AbstractFloat}>, vec2<{AbstractFloat}>) -> vec2<{AbstractFloat}>, | |
| (vec2<i32>, vec2<i32>) -> vec2<i32>, | |
| (vec2<i64>, vec2<i64>) -> vec2<i64>, | |
| (vec2<u32>, vec2<u32>) -> vec2<u32>, | |
| (vec2<u64>, vec2<u64>) -> vec2<u64>, | |
| (vec2<f32>, vec2<f32>) -> vec2<f32>, | |
| (vec2<f16>, vec2<f16>) -> vec2<f16>, | |
| (vec2<f64>, vec2<f64>) -> vec2<f64>, | |
| (vec3<{AbstractInt}>, vec3<{AbstractInt}>) -> vec3<{AbstractInt}>, | |
| (vec3<{AbstractFloat}>, vec3<{AbstractFloat}>) -> vec3<{AbstractFloat}>, | |
| (vec3<i32>, vec3<i32>) -> vec3<i32>, | |
| (vec3<i64>, vec3<i64>) -> vec3<i64>, | |
| (vec3<u32>, vec3<u32>) -> vec3<u32>, | |
| (vec3<u64>, vec3<u64>) -> vec3<u64>, | |
| (vec3<f32>, vec3<f32>) -> vec3<f32>, | |
| (vec3<f16>, vec3<f16>) -> vec3<f16>, | |
| (vec3<f64>, vec3<f64>) -> vec3<f64>, | |
| (vec4<{AbstractInt}>, vec4<{AbstractInt}>) -> vec4<{AbstractInt}>, | |
| (vec4<{AbstractFloat}>, vec4<{AbstractFloat}>) -> vec4<{AbstractFloat}>, | |
| (vec4<i32>, vec4<i32>) -> vec4<i32>, | |
| (vec4<i64>, vec4<i64>) -> vec4<i64>, | |
| (vec4<u32>, vec4<u32>) -> vec4<u32>, | |
| (vec4<u64>, vec4<u64>) -> vec4<u64>, | |
| (vec4<f32>, vec4<f32>) -> vec4<f32>, | |
| (vec4<f16>, vec4<f16>) -> vec4<f16>, | |
| (vec4<f64>, vec4<f64>) -> vec4<f64>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG Supplying argument 0 of type f32 | |
| DEBUG Remaining overloads: List { | |
| rules: [ | |
| (f32, f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG Supplying argument 1 of type {AbstractFloat} | |
| DEBUG Remaining overloads: List { | |
| rules: [ | |
| (f32, f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG Resolving [10] = Literal(F32(0.0)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG initial overloads for Min, List { | |
| rules: [ | |
| ({AbstractInt}, {AbstractInt}) -> {AbstractInt}, | |
| ({AbstractFloat}, {AbstractFloat}) -> {AbstractFloat}, | |
| (i32, i32) -> i32, | |
| (i64, i64) -> i64, | |
| (u32, u32) -> u32, | |
| (u64, u64) -> u64, | |
| (f32, f32) -> f32, | |
| (f16, f16) -> f16, | |
| (f64, f64) -> f64, | |
| (vec2<{AbstractInt}>, vec2<{AbstractInt}>) -> vec2<{AbstractInt}>, | |
| (vec2<{AbstractFloat}>, vec2<{AbstractFloat}>) -> vec2<{AbstractFloat}>, | |
| (vec2<i32>, vec2<i32>) -> vec2<i32>, | |
| (vec2<i64>, vec2<i64>) -> vec2<i64>, | |
| (vec2<u32>, vec2<u32>) -> vec2<u32>, | |
| (vec2<u64>, vec2<u64>) -> vec2<u64>, | |
| (vec2<f32>, vec2<f32>) -> vec2<f32>, | |
| (vec2<f16>, vec2<f16>) -> vec2<f16>, | |
| (vec2<f64>, vec2<f64>) -> vec2<f64>, | |
| (vec3<{AbstractInt}>, vec3<{AbstractInt}>) -> vec3<{AbstractInt}>, | |
| (vec3<{AbstractFloat}>, vec3<{AbstractFloat}>) -> vec3<{AbstractFloat}>, | |
| (vec3<i32>, vec3<i32>) -> vec3<i32>, | |
| (vec3<i64>, vec3<i64>) -> vec3<i64>, | |
| (vec3<u32>, vec3<u32>) -> vec3<u32>, | |
| (vec3<u64>, vec3<u64>) -> vec3<u64>, | |
| (vec3<f32>, vec3<f32>) -> vec3<f32>, | |
| (vec3<f16>, vec3<f16>) -> vec3<f16>, | |
| (vec3<f64>, vec3<f64>) -> vec3<f64>, | |
| (vec4<{AbstractInt}>, vec4<{AbstractInt}>) -> vec4<{AbstractInt}>, | |
| (vec4<{AbstractFloat}>, vec4<{AbstractFloat}>) -> vec4<{AbstractFloat}>, | |
| (vec4<i32>, vec4<i32>) -> vec4<i32>, | |
| (vec4<i64>, vec4<i64>) -> vec4<i64>, | |
| (vec4<u32>, vec4<u32>) -> vec4<u32>, | |
| (vec4<u64>, vec4<u64>) -> vec4<u64>, | |
| (vec4<f32>, vec4<f32>) -> vec4<f32>, | |
| (vec4<f16>, vec4<f16>) -> vec4<f16>, | |
| (vec4<f64>, vec4<f64>) -> vec4<f64>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG overloads after arg 0 of type f32: List { | |
| rules: [ | |
| (f32, f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG overloads after arg 1 of type f32: List { | |
| rules: [ | |
| (f32, f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG Resolving [11] = Math { fun: Min, arg: [8], arg1: Some([10]), arg2: None, arg3: None } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [12] = AccessIndex { base: [4], index: 0 } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG wgsl automatic_conversion_consensus: f32, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [13] = Binary { op: Subtract, left: [12], right: [3] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [14] = Literal(AbstractFloat(0.0)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG wgsl automatic_conversion_consensus: f32, f32 | |
| DEBUG consensus: f32 | |
| DEBUG wgsl automatic_conversion_consensus: f32, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [15] = Binary { op: Multiply, left: [3], right: [3] } : Handle([0]) | |
| DEBUG Resolving [16] = Binary { op: Multiply, left: [11], right: [11] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG wgsl automatic_conversion_consensus: f32, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [17] = Binary { op: Subtract, left: [15], right: [16] } : Handle([0]) | |
| DEBUG Initial overloads: List { | |
| rules: [ | |
| ({AbstractInt}, {AbstractInt}) -> {AbstractInt}, | |
| ({AbstractFloat}, {AbstractFloat}) -> {AbstractFloat}, | |
| (i32, i32) -> i32, | |
| (i64, i64) -> i64, | |
| (u32, u32) -> u32, | |
| (u64, u64) -> u64, | |
| (f32, f32) -> f32, | |
| (f16, f16) -> f16, | |
| (f64, f64) -> f64, | |
| (vec2<{AbstractInt}>, vec2<{AbstractInt}>) -> vec2<{AbstractInt}>, | |
| (vec2<{AbstractFloat}>, vec2<{AbstractFloat}>) -> vec2<{AbstractFloat}>, | |
| (vec2<i32>, vec2<i32>) -> vec2<i32>, | |
| (vec2<i64>, vec2<i64>) -> vec2<i64>, | |
| (vec2<u32>, vec2<u32>) -> vec2<u32>, | |
| (vec2<u64>, vec2<u64>) -> vec2<u64>, | |
| (vec2<f32>, vec2<f32>) -> vec2<f32>, | |
| (vec2<f16>, vec2<f16>) -> vec2<f16>, | |
| (vec2<f64>, vec2<f64>) -> vec2<f64>, | |
| (vec3<{AbstractInt}>, vec3<{AbstractInt}>) -> vec3<{AbstractInt}>, | |
| (vec3<{AbstractFloat}>, vec3<{AbstractFloat}>) -> vec3<{AbstractFloat}>, | |
| (vec3<i32>, vec3<i32>) -> vec3<i32>, | |
| (vec3<i64>, vec3<i64>) -> vec3<i64>, | |
| (vec3<u32>, vec3<u32>) -> vec3<u32>, | |
| (vec3<u64>, vec3<u64>) -> vec3<u64>, | |
| (vec3<f32>, vec3<f32>) -> vec3<f32>, | |
| (vec3<f16>, vec3<f16>) -> vec3<f16>, | |
| (vec3<f64>, vec3<f64>) -> vec3<f64>, | |
| (vec4<{AbstractInt}>, vec4<{AbstractInt}>) -> vec4<{AbstractInt}>, | |
| (vec4<{AbstractFloat}>, vec4<{AbstractFloat}>) -> vec4<{AbstractFloat}>, | |
| (vec4<i32>, vec4<i32>) -> vec4<i32>, | |
| (vec4<i64>, vec4<i64>) -> vec4<i64>, | |
| (vec4<u32>, vec4<u32>) -> vec4<u32>, | |
| (vec4<u64>, vec4<u64>) -> vec4<u64>, | |
| (vec4<f32>, vec4<f32>) -> vec4<f32>, | |
| (vec4<f16>, vec4<f16>) -> vec4<f16>, | |
| (vec4<f64>, vec4<f64>) -> vec4<f64>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG Supplying argument 0 of type {AbstractFloat} | |
| DEBUG Remaining overloads: List { | |
| rules: [ | |
| ({AbstractFloat}, {AbstractFloat}) -> {AbstractFloat}, | |
| (f32, f32) -> f32, | |
| (f16, f16) -> f16, | |
| (f64, f64) -> f64, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG Supplying argument 1 of type f32 | |
| DEBUG Remaining overloads: List { | |
| rules: [ | |
| (f32, f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG Resolving [18] = Literal(F32(0.0)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG initial overloads for Max, List { | |
| rules: [ | |
| ({AbstractInt}, {AbstractInt}) -> {AbstractInt}, | |
| ({AbstractFloat}, {AbstractFloat}) -> {AbstractFloat}, | |
| (i32, i32) -> i32, | |
| (i64, i64) -> i64, | |
| (u32, u32) -> u32, | |
| (u64, u64) -> u64, | |
| (f32, f32) -> f32, | |
| (f16, f16) -> f16, | |
| (f64, f64) -> f64, | |
| (vec2<{AbstractInt}>, vec2<{AbstractInt}>) -> vec2<{AbstractInt}>, | |
| (vec2<{AbstractFloat}>, vec2<{AbstractFloat}>) -> vec2<{AbstractFloat}>, | |
| (vec2<i32>, vec2<i32>) -> vec2<i32>, | |
| (vec2<i64>, vec2<i64>) -> vec2<i64>, | |
| (vec2<u32>, vec2<u32>) -> vec2<u32>, | |
| (vec2<u64>, vec2<u64>) -> vec2<u64>, | |
| (vec2<f32>, vec2<f32>) -> vec2<f32>, | |
| (vec2<f16>, vec2<f16>) -> vec2<f16>, | |
| (vec2<f64>, vec2<f64>) -> vec2<f64>, | |
| (vec3<{AbstractInt}>, vec3<{AbstractInt}>) -> vec3<{AbstractInt}>, | |
| (vec3<{AbstractFloat}>, vec3<{AbstractFloat}>) -> vec3<{AbstractFloat}>, | |
| (vec3<i32>, vec3<i32>) -> vec3<i32>, | |
| (vec3<i64>, vec3<i64>) -> vec3<i64>, | |
| (vec3<u32>, vec3<u32>) -> vec3<u32>, | |
| (vec3<u64>, vec3<u64>) -> vec3<u64>, | |
| (vec3<f32>, vec3<f32>) -> vec3<f32>, | |
| (vec3<f16>, vec3<f16>) -> vec3<f16>, | |
| (vec3<f64>, vec3<f64>) -> vec3<f64>, | |
| (vec4<{AbstractInt}>, vec4<{AbstractInt}>) -> vec4<{AbstractInt}>, | |
| (vec4<{AbstractFloat}>, vec4<{AbstractFloat}>) -> vec4<{AbstractFloat}>, | |
| (vec4<i32>, vec4<i32>) -> vec4<i32>, | |
| (vec4<i64>, vec4<i64>) -> vec4<i64>, | |
| (vec4<u32>, vec4<u32>) -> vec4<u32>, | |
| (vec4<u64>, vec4<u64>) -> vec4<u64>, | |
| (vec4<f32>, vec4<f32>) -> vec4<f32>, | |
| (vec4<f16>, vec4<f16>) -> vec4<f16>, | |
| (vec4<f64>, vec4<f64>) -> vec4<f64>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG overloads after arg 0 of type f32: List { | |
| rules: [ | |
| (f32, f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG overloads after arg 1 of type f32: List { | |
| rules: [ | |
| (f32, f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG Resolving [19] = Math { fun: Max, arg: [18], arg1: Some([17]), arg2: None, arg3: None } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Initial overloads: List { | |
| rules: [ | |
| ({AbstractFloat}) -> {AbstractFloat}, | |
| (f32) -> f32, | |
| (f16) -> f16, | |
| (f64) -> f64, | |
| (vec2<{AbstractFloat}>) -> vec2<{AbstractFloat}>, | |
| (vec2<f32>) -> vec2<f32>, | |
| (vec2<f16>) -> vec2<f16>, | |
| (vec2<f64>) -> vec2<f64>, | |
| (vec3<{AbstractFloat}>) -> vec3<{AbstractFloat}>, | |
| (vec3<f32>) -> vec3<f32>, | |
| (vec3<f16>) -> vec3<f16>, | |
| (vec3<f64>) -> vec3<f64>, | |
| (vec4<{AbstractFloat}>) -> vec4<{AbstractFloat}>, | |
| (vec4<f32>) -> vec4<f32>, | |
| (vec4<f16>) -> vec4<f16>, | |
| (vec4<f64>) -> vec4<f64>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG Supplying argument 0 of type f32 | |
| DEBUG Remaining overloads: List { | |
| rules: [ | |
| (f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG initial overloads for Sqrt, List { | |
| rules: [ | |
| ({AbstractFloat}) -> {AbstractFloat}, | |
| (f32) -> f32, | |
| (f16) -> f16, | |
| (f64) -> f64, | |
| (vec2<{AbstractFloat}>) -> vec2<{AbstractFloat}>, | |
| (vec2<f32>) -> vec2<f32>, | |
| (vec2<f16>) -> vec2<f16>, | |
| (vec2<f64>) -> vec2<f64>, | |
| (vec3<{AbstractFloat}>) -> vec3<{AbstractFloat}>, | |
| (vec3<f32>) -> vec3<f32>, | |
| (vec3<f16>) -> vec3<f16>, | |
| (vec3<f64>) -> vec3<f64>, | |
| (vec4<{AbstractFloat}>) -> vec4<{AbstractFloat}>, | |
| (vec4<f32>) -> vec4<f32>, | |
| (vec4<f16>) -> vec4<f16>, | |
| (vec4<f64>) -> vec4<f64>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG overloads after arg 0 of type f32: List { | |
| rules: [ | |
| (f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG Resolving [20] = Math { fun: Sqrt, arg: [19], arg1: None, arg2: None, arg3: None } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG wgsl automatic_conversion_consensus: f32, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [21] = Binary { op: Add, left: [13], right: [20] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [22] = Literal(AbstractFloat(0.5)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG Resolving [23] = Literal(AbstractFloat(0.5)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG Resolving [24] = Unary { op: Negate, expr: [21] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [25] = Compose { ty: [3], components: [[24], [21]] } : Handle([3]) | |
| DEBUG Resolving [26] = Splat { size: Bi, value: [0] } : Value(Vector { size: Bi, scalar: Scalar { kind: Float, width: 4 } }) | |
| DEBUG wgsl automatic_conversion_consensus: vec2<f32>, vec2<f32> | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [27] = Binary { op: Add, left: [26], right: [25] } : Value(Vector { size: Bi, scalar: Scalar { kind: Float, width: 4 } }) | |
| DEBUG Resolving [28] = Literal(AbstractFloat(0.5)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG Initial overloads: List { | |
| rules: [ | |
| ({AbstractFloat}) -> {AbstractFloat}, | |
| (f32) -> f32, | |
| (f16) -> f16, | |
| (f64) -> f64, | |
| (vec2<{AbstractFloat}>) -> vec2<{AbstractFloat}>, | |
| (vec2<f32>) -> vec2<f32>, | |
| (vec2<f16>) -> vec2<f16>, | |
| (vec2<f64>) -> vec2<f64>, | |
| (vec3<{AbstractFloat}>) -> vec3<{AbstractFloat}>, | |
| (vec3<f32>) -> vec3<f32>, | |
| (vec3<f16>) -> vec3<f16>, | |
| (vec3<f64>) -> vec3<f64>, | |
| (vec4<{AbstractFloat}>) -> vec4<{AbstractFloat}>, | |
| (vec4<f32>) -> vec4<f32>, | |
| (vec4<f16>) -> vec4<f16>, | |
| (vec4<f64>) -> vec4<f64>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG Supplying argument 0 of type {AbstractFloat} | |
| DEBUG Remaining overloads: List { | |
| rules: [ | |
| ({AbstractFloat}) -> {AbstractFloat}, | |
| (f32) -> f32, | |
| (f16) -> f16, | |
| (f64) -> f64, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG Resolving [29] = Literal(AbstractFloat(0.7071067811865476)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG wgsl automatic_conversion_consensus: {AbstractFloat}, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [30] = Literal(F32(0.70710677)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [31] = Binary { op: Divide, left: [30], right: [2] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG wgsl automatic_conversion_consensus: vec2<f32>, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [32] = Binary { op: Multiply, left: [27], right: [31] } : Value(Vector { size: Bi, scalar: Scalar { kind: Float, width: 4 } }) | |
| DEBUG Resolving [33] = CallResult([22]) : Handle([3]) | |
| DEBUG wgsl automatic_conversion_consensus: {AbstractFloat}, vec2<f32> | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [34] = Literal(F32(0.5)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [35] = Binary { op: Multiply, left: [34], right: [33] } : Handle([3]) | |
| DEBUG Resolving [36] = Splat { size: Bi, value: [22] } : Value(Vector { size: Bi, scalar: Scalar { kind: AbstractFloat, width: 8 } }) | |
| DEBUG wgsl automatic_conversion_consensus: vec2<{AbstractFloat}>, vec2<f32> | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [37] = Literal(F32(0.5)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [38] = Splat { size: Bi, value: [37] } : Value(Vector { size: Bi, scalar: Scalar { kind: Float, width: 4 } }) | |
| DEBUG Resolving [39] = Binary { op: Add, left: [38], right: [35] } : Value(Vector { size: Bi, scalar: Scalar { kind: Float, width: 4 } }) | |
| DEBUG Resolving [40] = AccessIndex { base: [39], index: 1 } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [41] = AccessIndex { base: [39], index: 0 } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG wgsl automatic_conversion_consensus: f32, f32 | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [42] = Binary { op: Subtract, left: [40], right: [41] } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [0] = FunctionArgument(0) : Handle([3]) | |
| DEBUG Resolving [1] = FunctionArgument(1) : Handle([9]) | |
| DEBUG Resolving [2] = AccessIndex { base: [0], index: 0 } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [3] = Literal(AbstractFloat(0.0)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG wgsl automatic_conversion_consensus: f32, {AbstractFloat} | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [4] = Literal(F32(0.0)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [5] = Binary { op: Less, left: [2], right: [4] } : Value(Scalar(Scalar { kind: Bool, width: 1 })) | |
| DEBUG Resolving [6] = AccessIndex { base: [0], index: 1 } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [7] = Literal(AbstractFloat(0.0)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG wgsl automatic_conversion_consensus: f32, {AbstractFloat} | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [8] = Literal(F32(0.0)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [9] = Binary { op: Less, left: [6], right: [8] } : Value(Scalar(Scalar { kind: Bool, width: 1 })) | |
| DEBUG Resolving [10] = AccessIndex { base: [1], index: 0 } : Handle([0]) | |
| DEBUG Resolving [11] = AccessIndex { base: [1], index: 3 } : Handle([0]) | |
| DEBUG Resolving [12] = AccessIndex { base: [0], index: 1 } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [13] = Literal(AbstractFloat(0.0)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG wgsl automatic_conversion_consensus: f32, {AbstractFloat} | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [14] = Literal(F32(0.0)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [15] = Binary { op: Less, left: [12], right: [14] } : Value(Scalar(Scalar { kind: Bool, width: 1 })) | |
| DEBUG Resolving [16] = AccessIndex { base: [1], index: 1 } : Handle([0]) | |
| DEBUG Resolving [17] = AccessIndex { base: [1], index: 2 } : Handle([0]) | |
| DEBUG Resolving [0] = FunctionArgument(0) : Handle([3]) | |
| DEBUG Resolving [1] = FunctionArgument(1) : Handle([0]) | |
| DEBUG Resolving [2] = Literal(AbstractFloat(0.0)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG wgsl automatic_conversion_consensus: f32, {AbstractFloat} | |
| DEBUG consensus: f32 | |
| DEBUG Resolving [3] = Literal(F32(0.0)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [4] = Binary { op: Equal, left: [1], right: [3] } : Value(Scalar(Scalar { kind: Bool, width: 1 })) | |
| DEBUG Resolving [5] = AccessIndex { base: [0], index: 0 } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [6] = AccessIndex { base: [0], index: 1 } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Initial overloads: List { | |
| rules: [ | |
| ({AbstractInt}, {AbstractInt}) -> {AbstractInt}, | |
| ({AbstractFloat}, {AbstractFloat}) -> {AbstractFloat}, | |
| (i32, i32) -> i32, | |
| (i64, i64) -> i64, | |
| (u32, u32) -> u32, | |
| (u64, u64) -> u64, | |
| (f32, f32) -> f32, | |
| (f16, f16) -> f16, | |
| (f64, f64) -> f64, | |
| (vec2<{AbstractInt}>, vec2<{AbstractInt}>) -> vec2<{AbstractInt}>, | |
| (vec2<{AbstractFloat}>, vec2<{AbstractFloat}>) -> vec2<{AbstractFloat}>, | |
| (vec2<i32>, vec2<i32>) -> vec2<i32>, | |
| (vec2<i64>, vec2<i64>) -> vec2<i64>, | |
| (vec2<u32>, vec2<u32>) -> vec2<u32>, | |
| (vec2<u64>, vec2<u64>) -> vec2<u64>, | |
| (vec2<f32>, vec2<f32>) -> vec2<f32>, | |
| (vec2<f16>, vec2<f16>) -> vec2<f16>, | |
| (vec2<f64>, vec2<f64>) -> vec2<f64>, | |
| (vec3<{AbstractInt}>, vec3<{AbstractInt}>) -> vec3<{AbstractInt}>, | |
| (vec3<{AbstractFloat}>, vec3<{AbstractFloat}>) -> vec3<{AbstractFloat}>, | |
| (vec3<i32>, vec3<i32>) -> vec3<i32>, | |
| (vec3<i64>, vec3<i64>) -> vec3<i64>, | |
| (vec3<u32>, vec3<u32>) -> vec3<u32>, | |
| (vec3<u64>, vec3<u64>) -> vec3<u64>, | |
| (vec3<f32>, vec3<f32>) -> vec3<f32>, | |
| (vec3<f16>, vec3<f16>) -> vec3<f16>, | |
| (vec3<f64>, vec3<f64>) -> vec3<f64>, | |
| (vec4<{AbstractInt}>, vec4<{AbstractInt}>) -> vec4<{AbstractInt}>, | |
| (vec4<{AbstractFloat}>, vec4<{AbstractFloat}>) -> vec4<{AbstractFloat}>, | |
| (vec4<i32>, vec4<i32>) -> vec4<i32>, | |
| (vec4<i64>, vec4<i64>) -> vec4<i64>, | |
| (vec4<u32>, vec4<u32>) -> vec4<u32>, | |
| (vec4<u64>, vec4<u64>) -> vec4<u64>, | |
| (vec4<f32>, vec4<f32>) -> vec4<f32>, | |
| (vec4<f16>, vec4<f16>) -> vec4<f16>, | |
| (vec4<f64>, vec4<f64>) -> vec4<f64>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG Supplying argument 0 of type f32 | |
| DEBUG Remaining overloads: List { | |
| rules: [ | |
| (f32, f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG Supplying argument 1 of type f32 | |
| DEBUG Remaining overloads: List { | |
| rules: [ | |
| (f32, f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG initial overloads for Max, List { | |
| rules: [ | |
| ({AbstractInt}, {AbstractInt}) -> {AbstractInt}, | |
| ({AbstractFloat}, {AbstractFloat}) -> {AbstractFloat}, | |
| (i32, i32) -> i32, | |
| (i64, i64) -> i64, | |
| (u32, u32) -> u32, | |
| (u64, u64) -> u64, | |
| (f32, f32) -> f32, | |
| (f16, f16) -> f16, | |
| (f64, f64) -> f64, | |
| (vec2<{AbstractInt}>, vec2<{AbstractInt}>) -> vec2<{AbstractInt}>, | |
| (vec2<{AbstractFloat}>, vec2<{AbstractFloat}>) -> vec2<{AbstractFloat}>, | |
| (vec2<i32>, vec2<i32>) -> vec2<i32>, | |
| (vec2<i64>, vec2<i64>) -> vec2<i64>, | |
| (vec2<u32>, vec2<u32>) -> vec2<u32>, | |
| (vec2<u64>, vec2<u64>) -> vec2<u64>, | |
| (vec2<f32>, vec2<f32>) -> vec2<f32>, | |
| (vec2<f16>, vec2<f16>) -> vec2<f16>, | |
| (vec2<f64>, vec2<f64>) -> vec2<f64>, | |
| (vec3<{AbstractInt}>, vec3<{AbstractInt}>) -> vec3<{AbstractInt}>, | |
| (vec3<{AbstractFloat}>, vec3<{AbstractFloat}>) -> vec3<{AbstractFloat}>, | |
| (vec3<i32>, vec3<i32>) -> vec3<i32>, | |
| (vec3<i64>, vec3<i64>) -> vec3<i64>, | |
| (vec3<u32>, vec3<u32>) -> vec3<u32>, | |
| (vec3<u64>, vec3<u64>) -> vec3<u64>, | |
| (vec3<f32>, vec3<f32>) -> vec3<f32>, | |
| (vec3<f16>, vec3<f16>) -> vec3<f16>, | |
| (vec3<f64>, vec3<f64>) -> vec3<f64>, | |
| (vec4<{AbstractInt}>, vec4<{AbstractInt}>) -> vec4<{AbstractInt}>, | |
| (vec4<{AbstractFloat}>, vec4<{AbstractFloat}>) -> vec4<{AbstractFloat}>, | |
| (vec4<i32>, vec4<i32>) -> vec4<i32>, | |
| (vec4<i64>, vec4<i64>) -> vec4<i64>, | |
| (vec4<u32>, vec4<u32>) -> vec4<u32>, | |
| (vec4<u64>, vec4<u64>) -> vec4<u64>, | |
| (vec4<f32>, vec4<f32>) -> vec4<f32>, | |
| (vec4<f16>, vec4<f16>) -> vec4<f16>, | |
| (vec4<f64>, vec4<f64>) -> vec4<f64>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG overloads after arg 0 of type f32: List { | |
| rules: [ | |
| (f32, f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG overloads after arg 1 of type f32: List { | |
| rules: [ | |
| (f32, f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG Resolving [7] = Math { fun: Max, arg: [5], arg1: Some([6]), arg2: None, arg3: None } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [8] = Literal(AbstractFloat(0.0)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG Resolving [9] = Literal(F32(0.0)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [10] = Splat { size: Bi, value: [9] } : Value(Vector { size: Bi, scalar: Scalar { kind: Float, width: 4 } }) | |
| DEBUG Initial overloads: List { | |
| rules: [ | |
| ({AbstractInt}, {AbstractInt}) -> {AbstractInt}, | |
| ({AbstractFloat}, {AbstractFloat}) -> {AbstractFloat}, | |
| (i32, i32) -> i32, | |
| (i64, i64) -> i64, | |
| (u32, u32) -> u32, | |
| (u64, u64) -> u64, | |
| (f32, f32) -> f32, | |
| (f16, f16) -> f16, | |
| (f64, f64) -> f64, | |
| (vec2<{AbstractInt}>, vec2<{AbstractInt}>) -> vec2<{AbstractInt}>, | |
| (vec2<{AbstractFloat}>, vec2<{AbstractFloat}>) -> vec2<{AbstractFloat}>, | |
| (vec2<i32>, vec2<i32>) -> vec2<i32>, | |
| (vec2<i64>, vec2<i64>) -> vec2<i64>, | |
| (vec2<u32>, vec2<u32>) -> vec2<u32>, | |
| (vec2<u64>, vec2<u64>) -> vec2<u64>, | |
| (vec2<f32>, vec2<f32>) -> vec2<f32>, | |
| (vec2<f16>, vec2<f16>) -> vec2<f16>, | |
| (vec2<f64>, vec2<f64>) -> vec2<f64>, | |
| (vec3<{AbstractInt}>, vec3<{AbstractInt}>) -> vec3<{AbstractInt}>, | |
| (vec3<{AbstractFloat}>, vec3<{AbstractFloat}>) -> vec3<{AbstractFloat}>, | |
| (vec3<i32>, vec3<i32>) -> vec3<i32>, | |
| (vec3<i64>, vec3<i64>) -> vec3<i64>, | |
| (vec3<u32>, vec3<u32>) -> vec3<u32>, | |
| (vec3<u64>, vec3<u64>) -> vec3<u64>, | |
| (vec3<f32>, vec3<f32>) -> vec3<f32>, | |
| (vec3<f16>, vec3<f16>) -> vec3<f16>, | |
| (vec3<f64>, vec3<f64>) -> vec3<f64>, | |
| (vec4<{AbstractInt}>, vec4<{AbstractInt}>) -> vec4<{AbstractInt}>, | |
| (vec4<{AbstractFloat}>, vec4<{AbstractFloat}>) -> vec4<{AbstractFloat}>, | |
| (vec4<i32>, vec4<i32>) -> vec4<i32>, | |
| (vec4<i64>, vec4<i64>) -> vec4<i64>, | |
| (vec4<u32>, vec4<u32>) -> vec4<u32>, | |
| (vec4<u64>, vec4<u64>) -> vec4<u64>, | |
| (vec4<f32>, vec4<f32>) -> vec4<f32>, | |
| (vec4<f16>, vec4<f16>) -> vec4<f16>, | |
| (vec4<f64>, vec4<f64>) -> vec4<f64>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG Supplying argument 0 of type vec2<f32> | |
| DEBUG Remaining overloads: List { | |
| rules: [ | |
| (vec2<f32>, vec2<f32>) -> vec2<f32>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG Supplying argument 1 of type vec2<f32> | |
| DEBUG Remaining overloads: List { | |
| rules: [ | |
| (vec2<f32>, vec2<f32>) -> vec2<f32>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG initial overloads for Max, List { | |
| rules: [ | |
| ({AbstractInt}, {AbstractInt}) -> {AbstractInt}, | |
| ({AbstractFloat}, {AbstractFloat}) -> {AbstractFloat}, | |
| (i32, i32) -> i32, | |
| (i64, i64) -> i64, | |
| (u32, u32) -> u32, | |
| (u64, u64) -> u64, | |
| (f32, f32) -> f32, | |
| (f16, f16) -> f16, | |
| (f64, f64) -> f64, | |
| (vec2<{AbstractInt}>, vec2<{AbstractInt}>) -> vec2<{AbstractInt}>, | |
| (vec2<{AbstractFloat}>, vec2<{AbstractFloat}>) -> vec2<{AbstractFloat}>, | |
| (vec2<i32>, vec2<i32>) -> vec2<i32>, | |
| (vec2<i64>, vec2<i64>) -> vec2<i64>, | |
| (vec2<u32>, vec2<u32>) -> vec2<u32>, | |
| (vec2<u64>, vec2<u64>) -> vec2<u64>, | |
| (vec2<f32>, vec2<f32>) -> vec2<f32>, | |
| (vec2<f16>, vec2<f16>) -> vec2<f16>, | |
| (vec2<f64>, vec2<f64>) -> vec2<f64>, | |
| (vec3<{AbstractInt}>, vec3<{AbstractInt}>) -> vec3<{AbstractInt}>, | |
| (vec3<{AbstractFloat}>, vec3<{AbstractFloat}>) -> vec3<{AbstractFloat}>, | |
| (vec3<i32>, vec3<i32>) -> vec3<i32>, | |
| (vec3<i64>, vec3<i64>) -> vec3<i64>, | |
| (vec3<u32>, vec3<u32>) -> vec3<u32>, | |
| (vec3<u64>, vec3<u64>) -> vec3<u64>, | |
| (vec3<f32>, vec3<f32>) -> vec3<f32>, | |
| (vec3<f16>, vec3<f16>) -> vec3<f16>, | |
| (vec3<f64>, vec3<f64>) -> vec3<f64>, | |
| (vec4<{AbstractInt}>, vec4<{AbstractInt}>) -> vec4<{AbstractInt}>, | |
| (vec4<{AbstractFloat}>, vec4<{AbstractFloat}>) -> vec4<{AbstractFloat}>, | |
| (vec4<i32>, vec4<i32>) -> vec4<i32>, | |
| (vec4<i64>, vec4<i64>) -> vec4<i64>, | |
| (vec4<u32>, vec4<u32>) -> vec4<u32>, | |
| (vec4<u64>, vec4<u64>) -> vec4<u64>, | |
| (vec4<f32>, vec4<f32>) -> vec4<f32>, | |
| (vec4<f16>, vec4<f16>) -> vec4<f16>, | |
| (vec4<f64>, vec4<f64>) -> vec4<f64>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG overloads after arg 0 of type vec2<f32>: List { | |
| rules: [ | |
| (vec2<f32>, vec2<f32>) -> vec2<f32>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG overloads after arg 1 of type vec2<f32>: List { | |
| rules: [ | |
| (vec2<f32>, vec2<f32>) -> vec2<f32>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG Resolving [11] = Math { fun: Max, arg: [10], arg1: Some([0]), arg2: None, arg3: None } : Value(Vector { size: Bi, scalar: Scalar { kind: Float, width: 4 } }) | |
| DEBUG Initial overloads: List { | |
| rules: [ | |
| (f32) -> f32, | |
| (f16) -> f16, | |
| (f64) -> f64, | |
| (vec2<f32>) -> f32, | |
| (vec2<f16>) -> f16, | |
| (vec2<f64>) -> f64, | |
| (vec3<f32>) -> f32, | |
| (vec3<f16>) -> f16, | |
| (vec3<f64>) -> f64, | |
| (vec4<f32>) -> f32, | |
| (vec4<f16>) -> f16, | |
| (vec4<f64>) -> f64, | |
| ], | |
| conclude: Scalar, | |
| } | |
| DEBUG Supplying argument 0 of type vec2<f32> | |
| DEBUG Remaining overloads: List { | |
| rules: [ | |
| (vec2<f32>) -> f32, | |
| ], | |
| conclude: Scalar, | |
| } | |
| DEBUG initial overloads for Length, List { | |
| rules: [ | |
| (f32) -> f32, | |
| (f16) -> f16, | |
| (f64) -> f64, | |
| (vec2<f32>) -> f32, | |
| (vec2<f16>) -> f16, | |
| (vec2<f64>) -> f64, | |
| (vec3<f32>) -> f32, | |
| (vec3<f16>) -> f16, | |
| (vec3<f64>) -> f64, | |
| (vec4<f32>) -> f32, | |
| (vec4<f16>) -> f16, | |
| (vec4<f64>) -> f64, | |
| ], | |
| conclude: Scalar, | |
| } | |
| DEBUG overloads after arg 0 of type vec2<f32>: List { | |
| rules: [ | |
| (vec2<f32>) -> f32, | |
| ], | |
| conclude: Scalar, | |
| } | |
| DEBUG Resolving [12] = Math { fun: Length, arg: [11], arg1: None, arg2: None, arg3: None } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [13] = Literal(AbstractFloat(0.0)) : Value(Scalar(Scalar { kind: AbstractFloat, width: 8 })) | |
| DEBUG Resolving [14] = AccessIndex { base: [0], index: 0 } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Resolving [15] = AccessIndex { base: [0], index: 1 } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Initial overloads: List { | |
| rules: [ | |
| ({AbstractInt}, {AbstractInt}) -> {AbstractInt}, | |
| ({AbstractFloat}, {AbstractFloat}) -> {AbstractFloat}, | |
| (i32, i32) -> i32, | |
| (i64, i64) -> i64, | |
| (u32, u32) -> u32, | |
| (u64, u64) -> u64, | |
| (f32, f32) -> f32, | |
| (f16, f16) -> f16, | |
| (f64, f64) -> f64, | |
| (vec2<{AbstractInt}>, vec2<{AbstractInt}>) -> vec2<{AbstractInt}>, | |
| (vec2<{AbstractFloat}>, vec2<{AbstractFloat}>) -> vec2<{AbstractFloat}>, | |
| (vec2<i32>, vec2<i32>) -> vec2<i32>, | |
| (vec2<i64>, vec2<i64>) -> vec2<i64>, | |
| (vec2<u32>, vec2<u32>) -> vec2<u32>, | |
| (vec2<u64>, vec2<u64>) -> vec2<u64>, | |
| (vec2<f32>, vec2<f32>) -> vec2<f32>, | |
| (vec2<f16>, vec2<f16>) -> vec2<f16>, | |
| (vec2<f64>, vec2<f64>) -> vec2<f64>, | |
| (vec3<{AbstractInt}>, vec3<{AbstractInt}>) -> vec3<{AbstractInt}>, | |
| (vec3<{AbstractFloat}>, vec3<{AbstractFloat}>) -> vec3<{AbstractFloat}>, | |
| (vec3<i32>, vec3<i32>) -> vec3<i32>, | |
| (vec3<i64>, vec3<i64>) -> vec3<i64>, | |
| (vec3<u32>, vec3<u32>) -> vec3<u32>, | |
| (vec3<u64>, vec3<u64>) -> vec3<u64>, | |
| (vec3<f32>, vec3<f32>) -> vec3<f32>, | |
| (vec3<f16>, vec3<f16>) -> vec3<f16>, | |
| (vec3<f64>, vec3<f64>) -> vec3<f64>, | |
| (vec4<{AbstractInt}>, vec4<{AbstractInt}>) -> vec4<{AbstractInt}>, | |
| (vec4<{AbstractFloat}>, vec4<{AbstractFloat}>) -> vec4<{AbstractFloat}>, | |
| (vec4<i32>, vec4<i32>) -> vec4<i32>, | |
| (vec4<i64>, vec4<i64>) -> vec4<i64>, | |
| (vec4<u32>, vec4<u32>) -> vec4<u32>, | |
| (vec4<u64>, vec4<u64>) -> vec4<u64>, | |
| (vec4<f32>, vec4<f32>) -> vec4<f32>, | |
| (vec4<f16>, vec4<f16>) -> vec4<f16>, | |
| (vec4<f64>, vec4<f64>) -> vec4<f64>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG Supplying argument 0 of type f32 | |
| DEBUG Remaining overloads: List { | |
| rules: [ | |
| (f32, f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG Supplying argument 1 of type f32 | |
| DEBUG Remaining overloads: List { | |
| rules: [ | |
| (f32, f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG initial overloads for Max, List { | |
| rules: [ | |
| ({AbstractInt}, {AbstractInt}) -> {AbstractInt}, | |
| ({AbstractFloat}, {AbstractFloat}) -> {AbstractFloat}, | |
| (i32, i32) -> i32, | |
| (i64, i64) -> i64, | |
| (u32, u32) -> u32, | |
| (u64, u64) -> u64, | |
| (f32, f32) -> f32, | |
| (f16, f16) -> f16, | |
| (f64, f64) -> f64, | |
| (vec2<{AbstractInt}>, vec2<{AbstractInt}>) -> vec2<{AbstractInt}>, | |
| (vec2<{AbstractFloat}>, vec2<{AbstractFloat}>) -> vec2<{AbstractFloat}>, | |
| (vec2<i32>, vec2<i32>) -> vec2<i32>, | |
| (vec2<i64>, vec2<i64>) -> vec2<i64>, | |
| (vec2<u32>, vec2<u32>) -> vec2<u32>, | |
| (vec2<u64>, vec2<u64>) -> vec2<u64>, | |
| (vec2<f32>, vec2<f32>) -> vec2<f32>, | |
| (vec2<f16>, vec2<f16>) -> vec2<f16>, | |
| (vec2<f64>, vec2<f64>) -> vec2<f64>, | |
| (vec3<{AbstractInt}>, vec3<{AbstractInt}>) -> vec3<{AbstractInt}>, | |
| (vec3<{AbstractFloat}>, vec3<{AbstractFloat}>) -> vec3<{AbstractFloat}>, | |
| (vec3<i32>, vec3<i32>) -> vec3<i32>, | |
| (vec3<i64>, vec3<i64>) -> vec3<i64>, | |
| (vec3<u32>, vec3<u32>) -> vec3<u32>, | |
| (vec3<u64>, vec3<u64>) -> vec3<u64>, | |
| (vec3<f32>, vec3<f32>) -> vec3<f32>, | |
| (vec3<f16>, vec3<f16>) -> vec3<f16>, | |
| (vec3<f64>, vec3<f64>) -> vec3<f64>, | |
| (vec4<{AbstractInt}>, vec4<{AbstractInt}>) -> vec4<{AbstractInt}>, | |
| (vec4<{AbstractFloat}>, vec4<{AbstractFloat}>) -> vec4<{AbstractFloat}>, | |
| (vec4<i32>, vec4<i32>) -> vec4<i32>, | |
| (vec4<i64>, vec4<i64>) -> vec4<i64>, | |
| (vec4<u32>, vec4<u32>) -> vec4<u32>, | |
| (vec4<u64>, vec4<u64>) -> vec4<u64>, | |
| (vec4<f32>, vec4<f32>) -> vec4<f32>, | |
| (vec4<f16>, vec4<f16>) -> vec4<f16>, | |
| (vec4<f64>, vec4<f64>) -> vec4<f64>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG overloads after arg 0 of type f32: List { | |
| rules: [ | |
| (f32, f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG overloads after arg 1 of type f32: List { | |
| rules: [ | |
| (f32, f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG Resolving [16] = Math { fun: Max, arg: [14], arg1: Some([15]), arg2: None, arg3: None } : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG Initial overloads: List { | |
| rules: [ | |
| ({AbstractInt}, {AbstractInt}) -> {AbstractInt}, | |
| ({AbstractFloat}, {AbstractFloat}) -> {AbstractFloat}, | |
| (i32, i32) -> i32, | |
| (i64, i64) -> i64, | |
| (u32, u32) -> u32, | |
| (u64, u64) -> u64, | |
| (f32, f32) -> f32, | |
| (f16, f16) -> f16, | |
| (f64, f64) -> f64, | |
| (vec2<{AbstractInt}>, vec2<{AbstractInt}>) -> vec2<{AbstractInt}>, | |
| (vec2<{AbstractFloat}>, vec2<{AbstractFloat}>) -> vec2<{AbstractFloat}>, | |
| (vec2<i32>, vec2<i32>) -> vec2<i32>, | |
| (vec2<i64>, vec2<i64>) -> vec2<i64>, | |
| (vec2<u32>, vec2<u32>) -> vec2<u32>, | |
| (vec2<u64>, vec2<u64>) -> vec2<u64>, | |
| (vec2<f32>, vec2<f32>) -> vec2<f32>, | |
| (vec2<f16>, vec2<f16>) -> vec2<f16>, | |
| (vec2<f64>, vec2<f64>) -> vec2<f64>, | |
| (vec3<{AbstractInt}>, vec3<{AbstractInt}>) -> vec3<{AbstractInt}>, | |
| (vec3<{AbstractFloat}>, vec3<{AbstractFloat}>) -> vec3<{AbstractFloat}>, | |
| (vec3<i32>, vec3<i32>) -> vec3<i32>, | |
| (vec3<i64>, vec3<i64>) -> vec3<i64>, | |
| (vec3<u32>, vec3<u32>) -> vec3<u32>, | |
| (vec3<u64>, vec3<u64>) -> vec3<u64>, | |
| (vec3<f32>, vec3<f32>) -> vec3<f32>, | |
| (vec3<f16>, vec3<f16>) -> vec3<f16>, | |
| (vec3<f64>, vec3<f64>) -> vec3<f64>, | |
| (vec4<{AbstractInt}>, vec4<{AbstractInt}>) -> vec4<{AbstractInt}>, | |
| (vec4<{AbstractFloat}>, vec4<{AbstractFloat}>) -> vec4<{AbstractFloat}>, | |
| (vec4<i32>, vec4<i32>) -> vec4<i32>, | |
| (vec4<i64>, vec4<i64>) -> vec4<i64>, | |
| (vec4<u32>, vec4<u32>) -> vec4<u32>, | |
| (vec4<u64>, vec4<u64>) -> vec4<u64>, | |
| (vec4<f32>, vec4<f32>) -> vec4<f32>, | |
| (vec4<f16>, vec4<f16>) -> vec4<f16>, | |
| (vec4<f64>, vec4<f64>) -> vec4<f64>, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG Supplying argument 0 of type {AbstractFloat} | |
| DEBUG Remaining overloads: List { | |
| rules: [ | |
| ({AbstractFloat}, {AbstractFloat}) -> {AbstractFloat}, | |
| (f32, f32) -> f32, | |
| (f16, f16) -> f16, | |
| (f64, f64) -> f64, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG Supplying argument 1 of type f32 | |
| DEBUG Remaining overloads: List { | |
| rules: [ | |
| (f32, f32) -> f32, | |
| ], | |
| conclude: ArgumentType, | |
| } | |
| DEBUG Resolving [17] = Literal(F32(0.0)) : Value(Scalar(Scalar { kind: Float, width: 4 })) | |
| DEBUG initial overloads for Min, List { | |
| rules: [ | |
| ({AbstractInt}, {AbstractInt}) -> {AbstractInt}, | |
| ({AbstractFloat}, {AbstractFloat}) -> {AbstractFloat}, | |
| (i32, i32) -> i32, | |
| (i64, i64) -> i64, | |
| (u32, u32) -> u32, | |
| (u64, u64) -> u64, | |
| (f32, f32) -> f32, | |
| (f16, f16) -> f16, | |
| (f64, f64) -> f64, | |
| (vec2<{AbstractInt}>, vec2<{AbstractInt}> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment