blob: 82260ba44ded4ef227b28ac95c427d7f6e9eff40 [file] [log] [blame]
SKIP: FAILED
../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(8) {
injectionSwitch:vec2<f32> @offset(0)
}
main_out = struct @align(16) {
x_GLF_color_1:vec4<f32> @offset(0), @location(0)
}
$B1: { # root
%gl_FragCoord:ptr<private, vec4<f32>, read_write> = var
%x_7:ptr<uniform, buf0, read> = var @binding_point(0, 0)
%x_GLF_color:ptr<private, vec4<f32>, read_write> = var
}
%func_ = func():f32 {
$B2: {
%x:ptr<function, i32, read_write> = var
%6:f32 = load_vector_element %gl_FragCoord, 0u
%x_99:f32 = let %6
%8:bool = lt %x_99, 1.0f
if %8 [t: $B3] { # if_1
$B3: { # true
ret 5.0f
}
}
%9:ptr<uniform, vec2<f32>, read> = access %x_7, 0u
%10:f32 = load_vector_element %9, 0u
%x_104:f32 = let %10
%12:ptr<uniform, vec2<f32>, read> = access %x_7, 0u
%13:f32 = load_vector_element %12, 1u
%x_106:f32 = let %13
%15:bool = gt %x_104, %x_106
if %15 [t: $B4] { # if_2
$B4: { # true
ret 1.0f
}
}
%16:ptr<uniform, vec2<f32>, read> = access %x_7, 0u
%17:f32 = load_vector_element %16, 0u
%x_111:f32 = let %17
%19:i32 = call %tint_f32_to_i32, %x_111
store %x, %19
%21:ptr<uniform, vec2<f32>, read> = access %x_7, 0u
%22:f32 = load_vector_element %21, 0u
%x_114:f32 = let %22
%24:i32 = load %x
%x_118:i32 = let %24
%26:f32 = clamp %x_114, 0.0f, 1.0f
%27:i32 = call %tint_f32_to_i32, %26
%28:i32 = mul %27, 3i
%29:i32 = add %x_118, %28
store %x, %29
%30:i32 = load %x
%x_120:i32 = let %30
%32:f32 = convert %x_120
%33:f32 = add 5.0f, %32
ret %33
}
}
%main_1 = func():void {
$B5: {
%i:ptr<function, i32, read_write> = var
%j:ptr<function, i32, read_write> = var
%data:ptr<function, array<vec2<f32>, 17>, read_write> = var
store %i, 0i
loop [b: $B6, c: $B7] { # loop_1
$B6: { # body
%38:i32 = load %i
%x_48:i32 = let %38
%40:ptr<uniform, vec2<f32>, read> = access %x_7, 0u
%41:f32 = load_vector_element %40, 0u
%x_50:f32 = let %41
%43:i32 = call %tint_f32_to_i32, %x_50
%44:i32 = add 4i, %43
%45:bool = lt %x_48, %44
if %45 [t: $B8, f: $B9] { # if_3
$B8: { # true
exit_if # if_3
}
$B9: { # false
exit_loop # loop_1
}
}
%46:f32 = load_vector_element %gl_FragCoord, 0u
%x_56:f32 = let %46
%48:bool = gte %x_56, 0.0f
if %48 [t: $B10] { # if_4
$B10: { # true
store %j, 0i
loop [b: $B11, c: $B12] { # loop_2
$B11: { # body
%x_81:ptr<function, bool, read_write> = var
%x_82_phi:ptr<function, bool, read_write> = var
%51:i32 = load %j
%x_64:i32 = let %51
%53:bool = lt %x_64, 4i
if %53 [t: $B13, f: $B14] { # if_5
$B13: { # true
exit_if # if_5
}
$B14: { # false
exit_loop # loop_2
}
}
%54:i32 = load %j
%x_67:i32 = let %54
%56:i32 = load %i
%x_69:i32 = let %56
%58:f32 = call %func_
%x_71:f32 = let %58
%60:i32 = mul 4i, %x_67
%61:i32 = add %60, %x_69
%62:ptr<function, vec2<f32>, read_write> = access %data, %61
store_vector_element %62, 0u, %x_71
%63:ptr<function, vec2<f32>, read_write> = access %data, 0i
%64:f32 = load_vector_element %63, 0u
%x_74:f32 = let %64
%66:bool = eq %x_74, 5.0f
%x_75:bool = let %66
store %x_82_phi, %x_75
%68:bool = eq %x_75, false
if %68 [t: $B15] { # if_6
$B15: { # true
%69:ptr<function, vec2<f32>, read_write> = access %data, 15i
%70:f32 = load_vector_element %69, 0u
%x_80:f32 = let %70
%72:bool = eq %x_80, 5.0f
store %x_81, %72
%73:bool = load %x_81
store %x_82_phi, %73
exit_if # if_6
}
}
%74:bool = load %x_82_phi
%x_82:bool = let %74
if %x_82 [t: $B16, f: $B17] { # if_7
$B16: { # true
store %x_GLF_color, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
exit_if # if_7
}
$B17: { # false
store %x_GLF_color, vec4<f32>(0.0f)
exit_if # if_7
}
}
%76:ptr<uniform, vec2<f32>, read> = access %x_7, 0u
%77:f32 = load_vector_element %76, 0u
%x_87:f32 = let %77
%79:ptr<uniform, vec2<f32>, read> = access %x_7, 0u
%80:f32 = load_vector_element %79, 1u
%x_89:f32 = let %80
%82:bool = gt %x_87, %x_89
if %82 [t: $B18] { # if_8
$B18: { # true
ret
}
}
continue # -> $B12
}
$B12: { # continuing
%83:i32 = load %j
%x_93:i32 = let %83
%85:i32 = add %x_93, 1i
store %j, %85
next_iteration # -> $B11
}
}
exit_if # if_4
}
}
continue # -> $B7
}
$B7: { # continuing
%86:i32 = load %i
%x_95:i32 = let %86
%88:i32 = add %x_95, 1i
store %i, %88
next_iteration # -> $B6
}
}
ret
}
}
%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out {
$B19: {
store %gl_FragCoord, %gl_FragCoord_param
%91:void = call %main_1
%92:vec4<f32> = load %x_GLF_color
%93:main_out = construct %92
ret %93
}
}
%tint_f32_to_i32 = func(%value:f32):i32 {
$B20: {
%95:i32 = convert %value
%96:bool = gte %value, -2147483648.0f
%97:i32 = select -2147483648i, %95, %96
%98:bool = lte %value, 2147483520.0f
%99:i32 = select 2147483647i, %97, %98
ret %99
}
}
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. *
********************************************************************