| SKIP: FAILED |
| |
| ../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: Inner = struct @align(16) { |
| scalar_f32:f32 @offset(0) |
| scalar_i32:i32 @offset(4) |
| scalar_u32:u32 @offset(8) |
| vec2_f32:vec2<f32> @offset(16) |
| vec2_i32:vec2<i32> @offset(24) |
| vec2_u32:vec2<u32> @offset(32) |
| vec3_f32:vec3<f32> @offset(48) |
| vec3_i32:vec3<i32> @offset(64) |
| vec3_u32:vec3<u32> @offset(80) |
| vec4_f32:vec4<f32> @offset(96) |
| vec4_i32:vec4<i32> @offset(112) |
| vec4_u32:vec4<u32> @offset(128) |
| mat2x2_f32:mat2x2<f32> @offset(144) |
| mat2x3_f32:mat2x3<f32> @offset(160) |
| mat2x4_f32:mat2x4<f32> @offset(192) |
| mat3x2_f32:mat3x2<f32> @offset(224) |
| mat3x3_f32:mat3x3<f32> @offset(256) |
| mat3x4_f32:mat3x4<f32> @offset(304) |
| mat4x2_f32:mat4x2<f32> @offset(352) |
| mat4x3_f32:mat4x3<f32> @offset(384) |
| mat4x4_f32:mat4x4<f32> @offset(448) |
| arr2_vec3_f32:array<vec3<f32>, 2> @offset(512) |
| } |
| |
| S = struct @align(16) { |
| arr:array<Inner> @offset(0) |
| } |
| |
| $B1: { # root |
| %sb:ptr<storage, S, read_write> = var @binding_point(0, 0) |
| } |
| |
| %tint_symbol = @compute @workgroup_size(1, 1, 1) func(%idx:u32 [@local_invocation_index]):void { |
| $B2: { |
| %4:ptr<storage, f32, read_write> = access %sb, 0u, %idx, 0u |
| store %4, 0.0f |
| %5:ptr<storage, i32, read_write> = access %sb, 0u, %idx, 1u |
| store %5, 0i |
| %6:ptr<storage, u32, read_write> = access %sb, 0u, %idx, 2u |
| store %6, 0u |
| %7:ptr<storage, vec2<f32>, read_write> = access %sb, 0u, %idx, 3u |
| store %7, vec2<f32>(0.0f) |
| %8:ptr<storage, vec2<i32>, read_write> = access %sb, 0u, %idx, 4u |
| store %8, vec2<i32>(0i) |
| %9:ptr<storage, vec2<u32>, read_write> = access %sb, 0u, %idx, 5u |
| store %9, vec2<u32>(0u) |
| %10:ptr<storage, vec3<f32>, read_write> = access %sb, 0u, %idx, 6u |
| store %10, vec3<f32>(0.0f) |
| %11:ptr<storage, vec3<i32>, read_write> = access %sb, 0u, %idx, 7u |
| store %11, vec3<i32>(0i) |
| %12:ptr<storage, vec3<u32>, read_write> = access %sb, 0u, %idx, 8u |
| store %12, vec3<u32>(0u) |
| %13:ptr<storage, vec4<f32>, read_write> = access %sb, 0u, %idx, 9u |
| store %13, vec4<f32>(0.0f) |
| %14:ptr<storage, vec4<i32>, read_write> = access %sb, 0u, %idx, 10u |
| store %14, vec4<i32>(0i) |
| %15:ptr<storage, vec4<u32>, read_write> = access %sb, 0u, %idx, 11u |
| store %15, vec4<u32>(0u) |
| %16:ptr<storage, mat2x2<f32>, read_write> = access %sb, 0u, %idx, 12u |
| store %16, mat2x2<f32>(vec2<f32>(0.0f)) |
| %17:ptr<storage, mat2x3<f32>, read_write> = access %sb, 0u, %idx, 13u |
| %18:void = call %tint_store_and_preserve_padding, %17, mat2x3<f32>(vec3<f32>(0.0f)) |
| %20:ptr<storage, mat2x4<f32>, read_write> = access %sb, 0u, %idx, 14u |
| store %20, mat2x4<f32>(vec4<f32>(0.0f)) |
| %21:ptr<storage, mat3x2<f32>, read_write> = access %sb, 0u, %idx, 15u |
| store %21, mat3x2<f32>(vec2<f32>(0.0f)) |
| %22:ptr<storage, mat3x3<f32>, read_write> = access %sb, 0u, %idx, 16u |
| %23:void = call %tint_store_and_preserve_padding_1, %22, mat3x3<f32>(vec3<f32>(0.0f)) |
| %25:ptr<storage, mat3x4<f32>, read_write> = access %sb, 0u, %idx, 17u |
| store %25, mat3x4<f32>(vec4<f32>(0.0f)) |
| %26:ptr<storage, mat4x2<f32>, read_write> = access %sb, 0u, %idx, 18u |
| store %26, mat4x2<f32>(vec2<f32>(0.0f)) |
| %27:ptr<storage, mat4x3<f32>, read_write> = access %sb, 0u, %idx, 19u |
| %28:void = call %tint_store_and_preserve_padding_2, %27, mat4x3<f32>(vec3<f32>(0.0f)) |
| %30:ptr<storage, mat4x4<f32>, read_write> = access %sb, 0u, %idx, 20u |
| store %30, mat4x4<f32>(vec4<f32>(0.0f)) |
| %31:ptr<storage, array<vec3<f32>, 2>, read_write> = access %sb, 0u, %idx, 21u |
| %32:void = call %tint_store_and_preserve_padding_3, %31, array<vec3<f32>, 2>(vec3<f32>(0.0f)) |
| ret |
| } |
| } |
| %tint_store_and_preserve_padding = func(%target:ptr<storage, mat2x3<f32>, read_write>, %value_param:mat2x3<f32>):void { |
| $B3: { |
| %36:ptr<storage, vec3<f32>, read_write> = access %target, 0u |
| %37:vec3<f32> = access %value_param, 0u |
| store %36, %37 |
| %38:ptr<storage, vec3<f32>, read_write> = access %target, 1u |
| %39:vec3<f32> = access %value_param, 1u |
| store %38, %39 |
| ret |
| } |
| } |
| %tint_store_and_preserve_padding_1 = func(%target_1:ptr<storage, mat3x3<f32>, read_write>, %value_param_1:mat3x3<f32>):void { # %tint_store_and_preserve_padding_1: 'tint_store_and_preserve_padding', %target_1: 'target', %value_param_1: 'value_param' |
| $B4: { |
| %42:ptr<storage, vec3<f32>, read_write> = access %target_1, 0u |
| %43:vec3<f32> = access %value_param_1, 0u |
| store %42, %43 |
| %44:ptr<storage, vec3<f32>, read_write> = access %target_1, 1u |
| %45:vec3<f32> = access %value_param_1, 1u |
| store %44, %45 |
| %46:ptr<storage, vec3<f32>, read_write> = access %target_1, 2u |
| %47:vec3<f32> = access %value_param_1, 2u |
| store %46, %47 |
| ret |
| } |
| } |
| %tint_store_and_preserve_padding_2 = func(%target_2:ptr<storage, mat4x3<f32>, read_write>, %value_param_2:mat4x3<f32>):void { # %tint_store_and_preserve_padding_2: 'tint_store_and_preserve_padding', %target_2: 'target', %value_param_2: 'value_param' |
| $B5: { |
| %50:ptr<storage, vec3<f32>, read_write> = access %target_2, 0u |
| %51:vec3<f32> = access %value_param_2, 0u |
| store %50, %51 |
| %52:ptr<storage, vec3<f32>, read_write> = access %target_2, 1u |
| %53:vec3<f32> = access %value_param_2, 1u |
| store %52, %53 |
| %54:ptr<storage, vec3<f32>, read_write> = access %target_2, 2u |
| %55:vec3<f32> = access %value_param_2, 2u |
| store %54, %55 |
| %56:ptr<storage, vec3<f32>, read_write> = access %target_2, 3u |
| %57:vec3<f32> = access %value_param_2, 3u |
| store %56, %57 |
| ret |
| } |
| } |
| %tint_store_and_preserve_padding_3 = func(%target_3:ptr<storage, array<vec3<f32>, 2>, read_write>, %value_param_3:array<vec3<f32>, 2>):void { # %tint_store_and_preserve_padding_3: 'tint_store_and_preserve_padding', %target_3: 'target', %value_param_3: 'value_param' |
| $B6: { |
| loop [i: $B7, b: $B8, c: $B9] { # loop_1 |
| $B7: { # initializer |
| next_iteration 0u # -> $B8 |
| } |
| $B8 (%idx_1:u32): { # body |
| %61:bool = gte %idx_1, 2u |
| if %61 [t: $B10] { # if_1 |
| $B10: { # true |
| exit_loop # loop_1 |
| } |
| } |
| %62:ptr<storage, vec3<f32>, read_write> = access %target_3, %idx_1 |
| %63:vec3<f32> = access %value_param_3, %idx_1 |
| store %62, %63 |
| continue # -> $B9 |
| } |
| $B9: { # continuing |
| %64:u32 = add %idx_1, 1u |
| next_iteration %64 # -> $B8 |
| } |
| } |
| ret |
| } |
| } |
| |
| unhandled variable address space |
| ******************************************************************** |
| * The tint shader compiler has encountered an unexpected error. * |
| * * |
| * Please help us fix this issue by submitting a bug report at * |
| * crbug.com/tint with the source program that triggered the bug. * |
| ******************************************************************** |