| SKIP: FAILED |
| |
| ../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: S = struct @align(64) { |
| before:i32 @offset(0) |
| m:mat4x3<f32> @offset(16) |
| after:i32 @offset(128) |
| } |
| |
| $B1: { # root |
| %u:ptr<uniform, array<S, 4>, read> = var @binding_point(0, 0) |
| %s:ptr<storage, array<S, 4>, read_write> = var @binding_point(0, 1) |
| } |
| |
| %f = @compute @workgroup_size(1, 1, 1) func():void { |
| $B2: { |
| %4:array<S, 4> = load %u |
| %5:void = call %tint_store_and_preserve_padding, %s, %4 |
| %7:ptr<storage, S, read_write> = access %s, 1i |
| %8:ptr<uniform, S, read> = access %u, 2i |
| %9:S = load %8 |
| %10:void = call %tint_store_and_preserve_padding_1, %7, %9 |
| %12:ptr<storage, mat4x3<f32>, read_write> = access %s, 3i, 1u |
| %13:ptr<uniform, mat4x3<f32>, read> = access %u, 2i, 1u |
| %14:mat4x3<f32> = load %13 |
| %15:void = call %tint_store_and_preserve_padding_2, %12, %14 |
| %17:ptr<storage, vec3<f32>, read_write> = access %s, 1i, 1u, 0i |
| %18:ptr<uniform, vec3<f32>, read> = access %u, 0i, 1u, 1i |
| %19:vec3<f32> = load %18 |
| %20:vec3<f32> = swizzle %19, zxy |
| store %17, %20 |
| ret |
| } |
| } |
| %tint_store_and_preserve_padding = func(%target:ptr<storage, array<S, 4>, read_write>, %value_param:array<S, 4>):void { |
| $B3: { |
| loop [i: $B4, b: $B5, c: $B6] { # loop_1 |
| $B4: { # initializer |
| next_iteration 0u # -> $B5 |
| } |
| $B5 (%idx:u32): { # body |
| %24:bool = gte %idx, 4u |
| if %24 [t: $B7] { # if_1 |
| $B7: { # true |
| exit_loop # loop_1 |
| } |
| } |
| %25:ptr<storage, S, read_write> = access %target, %idx |
| %26:S = access %value_param, %idx |
| %27:void = call %tint_store_and_preserve_padding_1, %25, %26 |
| continue # -> $B6 |
| } |
| $B6: { # continuing |
| %28:u32 = add %idx, 1u |
| next_iteration %28 # -> $B5 |
| } |
| } |
| ret |
| } |
| } |
| %tint_store_and_preserve_padding_1 = func(%target_1:ptr<storage, S, read_write>, %value_param_1:S):void { # %tint_store_and_preserve_padding_1: 'tint_store_and_preserve_padding', %target_1: 'target', %value_param_1: 'value_param' |
| $B8: { |
| %31:ptr<storage, i32, read_write> = access %target_1, 0u |
| %32:i32 = access %value_param_1, 0u |
| store %31, %32 |
| %33:ptr<storage, mat4x3<f32>, read_write> = access %target_1, 1u |
| %34:mat4x3<f32> = access %value_param_1, 1u |
| %35:void = call %tint_store_and_preserve_padding_2, %33, %34 |
| %36:ptr<storage, i32, read_write> = access %target_1, 2u |
| %37:i32 = access %value_param_1, 2u |
| store %36, %37 |
| 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' |
| $B9: { |
| %40:ptr<storage, vec3<f32>, read_write> = access %target_2, 0u |
| %41:vec3<f32> = access %value_param_2, 0u |
| store %40, %41 |
| %42:ptr<storage, vec3<f32>, read_write> = access %target_2, 1u |
| %43:vec3<f32> = access %value_param_2, 1u |
| store %42, %43 |
| %44:ptr<storage, vec3<f32>, read_write> = access %target_2, 2u |
| %45:vec3<f32> = access %value_param_2, 2u |
| store %44, %45 |
| %46:ptr<storage, vec3<f32>, read_write> = access %target_2, 3u |
| %47:vec3<f32> = access %value_param_2, 3u |
| store %46, %47 |
| 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. * |
| ******************************************************************** |