blob: f4695d346c14e6d53a5758704565e060ae2b18cd [file] [log] [blame]
SKIP: FAILED
../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: Inner = struct @align(4) {
scalar_i32:i32 @offset(0)
scalar_f32:f32 @offset(4)
scalar_f16:f16 @offset(8)
}
S = struct @align(16) {
scalar_f32:f32 @offset(0)
scalar_i32:i32 @offset(4)
scalar_u32:u32 @offset(8)
scalar_f16:f16 @offset(12)
vec2_f32:vec2<f32> @offset(16)
vec2_i32:vec2<i32> @offset(24)
vec2_u32:vec2<u32> @offset(32)
vec2_f16:vec2<f16> @offset(40)
vec3_f32:vec3<f32> @offset(48)
vec3_i32:vec3<i32> @offset(64)
vec3_u32:vec3<u32> @offset(80)
vec3_f16:vec3<f16> @offset(96)
vec4_f32:vec4<f32> @offset(112)
vec4_i32:vec4<i32> @offset(128)
vec4_u32:vec4<u32> @offset(144)
vec4_f16:vec4<f16> @offset(160)
mat2x2_f32:mat2x2<f32> @offset(168)
mat2x3_f32:mat2x3<f32> @offset(192)
mat2x4_f32:mat2x4<f32> @offset(224)
mat3x2_f32:mat3x2<f32> @offset(256)
mat3x3_f32:mat3x3<f32> @offset(288)
mat3x4_f32:mat3x4<f32> @offset(336)
mat4x2_f32:mat4x2<f32> @offset(384)
mat4x3_f32:mat4x3<f32> @offset(416)
mat4x4_f32:mat4x4<f32> @offset(480)
mat2x2_f16:mat2x2<f16> @offset(544)
mat2x3_f16:mat2x3<f16> @offset(552)
mat2x4_f16:mat2x4<f16> @offset(568)
mat3x2_f16:mat3x2<f16> @offset(584)
mat3x3_f16:mat3x3<f16> @offset(600)
mat3x4_f16:mat3x4<f16> @offset(624)
mat4x2_f16:mat4x2<f16> @offset(648)
mat4x3_f16:mat4x3<f16> @offset(664)
mat4x4_f16:mat4x4<f16> @offset(696)
arr2_vec3_f32:array<vec3<f32>, 2> @offset(736)
arr2_mat4x2_f16:array<mat4x2<f16>, 2> @offset(768)
struct_inner:Inner @offset(800)
array_struct_inner:array<Inner, 4> @offset(812)
}
$B1: { # root
%sb:ptr<storage, S, read_write> = var @binding_point(0, 0)
}
%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void {
$B2: {
%3:ptr<storage, f32, read_write> = access %sb, 0u
store %3, 0.0f
%4:ptr<storage, i32, read_write> = access %sb, 1u
store %4, 0i
%5:ptr<storage, u32, read_write> = access %sb, 2u
store %5, 0u
%6:ptr<storage, f16, read_write> = access %sb, 3u
store %6, 0.0h
%7:ptr<storage, vec2<f32>, read_write> = access %sb, 4u
store %7, vec2<f32>(0.0f)
%8:ptr<storage, vec2<i32>, read_write> = access %sb, 5u
store %8, vec2<i32>(0i)
%9:ptr<storage, vec2<u32>, read_write> = access %sb, 6u
store %9, vec2<u32>(0u)
%10:ptr<storage, vec2<f16>, read_write> = access %sb, 7u
store %10, vec2<f16>(0.0h)
%11:ptr<storage, vec3<f32>, read_write> = access %sb, 8u
store %11, vec3<f32>(0.0f)
%12:ptr<storage, vec3<i32>, read_write> = access %sb, 9u
store %12, vec3<i32>(0i)
%13:ptr<storage, vec3<u32>, read_write> = access %sb, 10u
store %13, vec3<u32>(0u)
%14:ptr<storage, vec3<f16>, read_write> = access %sb, 11u
store %14, vec3<f16>(0.0h)
%15:ptr<storage, vec4<f32>, read_write> = access %sb, 12u
store %15, vec4<f32>(0.0f)
%16:ptr<storage, vec4<i32>, read_write> = access %sb, 13u
store %16, vec4<i32>(0i)
%17:ptr<storage, vec4<u32>, read_write> = access %sb, 14u
store %17, vec4<u32>(0u)
%18:ptr<storage, vec4<f16>, read_write> = access %sb, 15u
store %18, vec4<f16>(0.0h)
%19:ptr<storage, mat2x2<f32>, read_write> = access %sb, 16u
store %19, mat2x2<f32>(vec2<f32>(0.0f))
%20:ptr<storage, mat2x3<f32>, read_write> = access %sb, 17u
%21:void = call %tint_store_and_preserve_padding, %20, mat2x3<f32>(vec3<f32>(0.0f))
%23:ptr<storage, mat2x4<f32>, read_write> = access %sb, 18u
store %23, mat2x4<f32>(vec4<f32>(0.0f))
%24:ptr<storage, mat3x2<f32>, read_write> = access %sb, 19u
store %24, mat3x2<f32>(vec2<f32>(0.0f))
%25:ptr<storage, mat3x3<f32>, read_write> = access %sb, 20u
%26:void = call %tint_store_and_preserve_padding_1, %25, mat3x3<f32>(vec3<f32>(0.0f))
%28:ptr<storage, mat3x4<f32>, read_write> = access %sb, 21u
store %28, mat3x4<f32>(vec4<f32>(0.0f))
%29:ptr<storage, mat4x2<f32>, read_write> = access %sb, 22u
store %29, mat4x2<f32>(vec2<f32>(0.0f))
%30:ptr<storage, mat4x3<f32>, read_write> = access %sb, 23u
%31:void = call %tint_store_and_preserve_padding_2, %30, mat4x3<f32>(vec3<f32>(0.0f))
%33:ptr<storage, mat4x4<f32>, read_write> = access %sb, 24u
store %33, mat4x4<f32>(vec4<f32>(0.0f))
%34:ptr<storage, mat2x2<f16>, read_write> = access %sb, 25u
store %34, mat2x2<f16>(vec2<f16>(0.0h))
%35:ptr<storage, mat2x3<f16>, read_write> = access %sb, 26u
%36:void = call %tint_store_and_preserve_padding_3, %35, mat2x3<f16>(vec3<f16>(0.0h))
%38:ptr<storage, mat2x4<f16>, read_write> = access %sb, 27u
store %38, mat2x4<f16>(vec4<f16>(0.0h))
%39:ptr<storage, mat3x2<f16>, read_write> = access %sb, 28u
store %39, mat3x2<f16>(vec2<f16>(0.0h))
%40:ptr<storage, mat3x3<f16>, read_write> = access %sb, 29u
%41:void = call %tint_store_and_preserve_padding_4, %40, mat3x3<f16>(vec3<f16>(0.0h))
%43:ptr<storage, mat3x4<f16>, read_write> = access %sb, 30u
store %43, mat3x4<f16>(vec4<f16>(0.0h))
%44:ptr<storage, mat4x2<f16>, read_write> = access %sb, 31u
store %44, mat4x2<f16>(vec2<f16>(0.0h))
%45:ptr<storage, mat4x3<f16>, read_write> = access %sb, 32u
%46:void = call %tint_store_and_preserve_padding_5, %45, mat4x3<f16>(vec3<f16>(0.0h))
%48:ptr<storage, mat4x4<f16>, read_write> = access %sb, 33u
store %48, mat4x4<f16>(vec4<f16>(0.0h))
%49:ptr<storage, array<vec3<f32>, 2>, read_write> = access %sb, 34u
%50:void = call %tint_store_and_preserve_padding_6, %49, array<vec3<f32>, 2>(vec3<f32>(0.0f))
%52:ptr<storage, array<mat4x2<f16>, 2>, read_write> = access %sb, 35u
store %52, array<mat4x2<f16>, 2>(mat4x2<f16>(vec2<f16>(0.0h)))
%53:ptr<storage, Inner, read_write> = access %sb, 36u
%54:void = call %tint_store_and_preserve_padding_7, %53, Inner(0i, 0.0f, 0.0h)
%56:ptr<storage, array<Inner, 4>, read_write> = access %sb, 37u
%57:void = call %tint_store_and_preserve_padding_8, %56, array<Inner, 4>(Inner(0i, 0.0f, 0.0h))
ret
}
}
%tint_store_and_preserve_padding = func(%target:ptr<storage, mat2x3<f32>, read_write>, %value_param:mat2x3<f32>):void {
$B3: {
%61:ptr<storage, vec3<f32>, read_write> = access %target, 0u
%62:vec3<f32> = access %value_param, 0u
store %61, %62
%63:ptr<storage, vec3<f32>, read_write> = access %target, 1u
%64:vec3<f32> = access %value_param, 1u
store %63, %64
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: {
%67:ptr<storage, vec3<f32>, read_write> = access %target_1, 0u
%68:vec3<f32> = access %value_param_1, 0u
store %67, %68
%69:ptr<storage, vec3<f32>, read_write> = access %target_1, 1u
%70:vec3<f32> = access %value_param_1, 1u
store %69, %70
%71:ptr<storage, vec3<f32>, read_write> = access %target_1, 2u
%72:vec3<f32> = access %value_param_1, 2u
store %71, %72
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: {
%75:ptr<storage, vec3<f32>, read_write> = access %target_2, 0u
%76:vec3<f32> = access %value_param_2, 0u
store %75, %76
%77:ptr<storage, vec3<f32>, read_write> = access %target_2, 1u
%78:vec3<f32> = access %value_param_2, 1u
store %77, %78
%79:ptr<storage, vec3<f32>, read_write> = access %target_2, 2u
%80:vec3<f32> = access %value_param_2, 2u
store %79, %80
%81:ptr<storage, vec3<f32>, read_write> = access %target_2, 3u
%82:vec3<f32> = access %value_param_2, 3u
store %81, %82
ret
}
}
%tint_store_and_preserve_padding_3 = func(%target_3:ptr<storage, mat2x3<f16>, read_write>, %value_param_3:mat2x3<f16>):void { # %tint_store_and_preserve_padding_3: 'tint_store_and_preserve_padding', %target_3: 'target', %value_param_3: 'value_param'
$B6: {
%85:ptr<storage, vec3<f16>, read_write> = access %target_3, 0u
%86:vec3<f16> = access %value_param_3, 0u
store %85, %86
%87:ptr<storage, vec3<f16>, read_write> = access %target_3, 1u
%88:vec3<f16> = access %value_param_3, 1u
store %87, %88
ret
}
}
%tint_store_and_preserve_padding_4 = func(%target_4:ptr<storage, mat3x3<f16>, read_write>, %value_param_4:mat3x3<f16>):void { # %tint_store_and_preserve_padding_4: 'tint_store_and_preserve_padding', %target_4: 'target', %value_param_4: 'value_param'
$B7: {
%91:ptr<storage, vec3<f16>, read_write> = access %target_4, 0u
%92:vec3<f16> = access %value_param_4, 0u
store %91, %92
%93:ptr<storage, vec3<f16>, read_write> = access %target_4, 1u
%94:vec3<f16> = access %value_param_4, 1u
store %93, %94
%95:ptr<storage, vec3<f16>, read_write> = access %target_4, 2u
%96:vec3<f16> = access %value_param_4, 2u
store %95, %96
ret
}
}
%tint_store_and_preserve_padding_5 = func(%target_5:ptr<storage, mat4x3<f16>, read_write>, %value_param_5:mat4x3<f16>):void { # %tint_store_and_preserve_padding_5: 'tint_store_and_preserve_padding', %target_5: 'target', %value_param_5: 'value_param'
$B8: {
%99:ptr<storage, vec3<f16>, read_write> = access %target_5, 0u
%100:vec3<f16> = access %value_param_5, 0u
store %99, %100
%101:ptr<storage, vec3<f16>, read_write> = access %target_5, 1u
%102:vec3<f16> = access %value_param_5, 1u
store %101, %102
%103:ptr<storage, vec3<f16>, read_write> = access %target_5, 2u
%104:vec3<f16> = access %value_param_5, 2u
store %103, %104
%105:ptr<storage, vec3<f16>, read_write> = access %target_5, 3u
%106:vec3<f16> = access %value_param_5, 3u
store %105, %106
ret
}
}
%tint_store_and_preserve_padding_6 = func(%target_6:ptr<storage, array<vec3<f32>, 2>, read_write>, %value_param_6:array<vec3<f32>, 2>):void { # %tint_store_and_preserve_padding_6: 'tint_store_and_preserve_padding', %target_6: 'target', %value_param_6: 'value_param'
$B9: {
loop [i: $B10, b: $B11, c: $B12] { # loop_1
$B10: { # initializer
next_iteration 0u # -> $B11
}
$B11 (%idx:u32): { # body
%110:bool = gte %idx, 2u
if %110 [t: $B13] { # if_1
$B13: { # true
exit_loop # loop_1
}
}
%111:ptr<storage, vec3<f32>, read_write> = access %target_6, %idx
%112:vec3<f32> = access %value_param_6, %idx
store %111, %112
continue # -> $B12
}
$B12: { # continuing
%113:u32 = add %idx, 1u
next_iteration %113 # -> $B11
}
}
ret
}
}
%tint_store_and_preserve_padding_7 = func(%target_7:ptr<storage, Inner, read_write>, %value_param_7:Inner):void { # %tint_store_and_preserve_padding_7: 'tint_store_and_preserve_padding', %target_7: 'target', %value_param_7: 'value_param'
$B14: {
%116:ptr<storage, i32, read_write> = access %target_7, 0u
%117:i32 = access %value_param_7, 0u
store %116, %117
%118:ptr<storage, f32, read_write> = access %target_7, 1u
%119:f32 = access %value_param_7, 1u
store %118, %119
%120:ptr<storage, f16, read_write> = access %target_7, 2u
%121:f16 = access %value_param_7, 2u
store %120, %121
ret
}
}
%tint_store_and_preserve_padding_8 = func(%target_8:ptr<storage, array<Inner, 4>, read_write>, %value_param_8:array<Inner, 4>):void { # %tint_store_and_preserve_padding_8: 'tint_store_and_preserve_padding', %target_8: 'target', %value_param_8: 'value_param'
$B15: {
loop [i: $B16, b: $B17, c: $B18] { # loop_2
$B16: { # initializer
next_iteration 0u # -> $B17
}
$B17 (%idx_1:u32): { # body
%125:bool = gte %idx_1, 4u
if %125 [t: $B19] { # if_2
$B19: { # true
exit_loop # loop_2
}
}
%126:ptr<storage, Inner, read_write> = access %target_8, %idx_1
%127:Inner = access %value_param_8, %idx_1
%128:void = call %tint_store_and_preserve_padding_7, %126, %127
continue # -> $B18
}
$B18: { # continuing
%129:u32 = add %idx_1, 1u
next_iteration %129 # -> $B17
}
}
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. *
********************************************************************