blob: 0c8e028f18a8b0d46bf9aa6098e495916de664a2 [file] [log] [blame]
SKIP: FAILED
../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
el:i32 @offset(0)
}
buf1 = struct @align(4) {
x_GLF_uniform_int_values:array<strided_arr, 4> @offset(0)
}
strided_arr_1 = struct @align(4) {
el:f32 @offset(0)
}
buf0 = struct @align(4) {
x_GLF_uniform_float_values:array<strided_arr_1, 1> @offset(0)
}
main_out = struct @align(16) {
x_GLF_color_1:vec4<f32> @offset(0), @location(0)
}
$B1: { # root
%x_6:ptr<uniform, buf1, read> = var @binding_point(0, 1)
%x_10:ptr<uniform, buf0, read> = var @binding_point(0, 0)
%x_GLF_color:ptr<private, vec4<f32>, read_write> = var
}
%main_1 = func():void {
$B2: {
%m0:ptr<function, mat4x4<f32>, read_write> = var
%c:ptr<function, i32, read_write> = var
%m1:ptr<function, mat4x4<f32>, read_write> = var
%8:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
%9:i32 = load %8
%10:f32 = convert %9
%x_41:f32 = let %10
%12:vec4<f32> = construct %x_41, 0.0f, 0.0f, 0.0f
%13:vec4<f32> = let %12
%14:vec4<f32> = construct 0.0f, %x_41, 0.0f, 0.0f
%15:vec4<f32> = let %14
%16:vec4<f32> = construct 0.0f, 0.0f, %x_41, 0.0f
%17:vec4<f32> = let %16
%18:vec4<f32> = construct 0.0f, 0.0f, 0.0f, %x_41
%19:mat4x4<f32> = construct %13, %15, %17, %18
store %m0, %19
%20:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
%21:i32 = load %20
store %c, %21
loop [b: $B3, c: $B4] { # loop_1
$B3: { # body
%22:i32 = load %c
%23:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
%24:i32 = load %23
%25:bool = lt %22, %24
if %25 [t: $B5, f: $B6] { # if_1
$B5: { # true
exit_if # if_1
}
$B6: { # false
exit_loop # loop_1
}
}
%26:mat4x4<f32> = load %m0
store %m1, %26
%27:i32 = load %c
%x_59:i32 = let %27
%29:ptr<uniform, i32, read> = access %x_6, 0u, 3i, 0u
%30:i32 = load %29
%x_61:i32 = let %30
%32:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
%33:i32 = load %32
%x_64:i32 = let %33
%35:i32 = call %tint_mod_i32, %x_59, %x_61
%37:ptr<function, vec4<f32>, read_write> = access %m1, %35
%38:ptr<uniform, f32, read> = access %x_10, 0u, 0i, 0u
%39:f32 = load %38
store_vector_element %37, %x_64, %39
%40:i32 = load %c
%x_68:i32 = let %40
%42:ptr<uniform, i32, read> = access %x_6, 0u, 3i, 0u
%43:i32 = load %42
%x_70:i32 = let %43
%45:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
%46:i32 = load %45
%x_73:i32 = let %46
%48:i32 = call %tint_mod_i32, %x_68, %x_70
%49:ptr<function, vec4<f32>, read_write> = access %m0, %48
%50:ptr<uniform, f32, read> = access %x_10, 0u, 0i, 0u
%51:f32 = load %50
store_vector_element %49, %x_73, %51
continue # -> $B4
}
$B4: { # continuing
%52:i32 = load %c
%53:i32 = add %52, 1i
store %c, %53
next_iteration # -> $B3
}
}
%54:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
%55:i32 = load %54
%56:f32 = convert %55
%57:f32 = let %56
%58:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
%59:i32 = load %58
%60:f32 = convert %59
%61:f32 = let %60
%62:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
%63:i32 = load %62
%64:f32 = convert %63
%65:f32 = let %64
%66:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
%67:i32 = load %66
%68:f32 = convert %67
%69:vec4<f32> = construct %57, %61, %65, %68
%70:vec4<f32> = let %69
%71:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
%72:i32 = load %71
%73:f32 = convert %72
%74:f32 = let %73
%75:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
%76:i32 = load %75
%77:f32 = convert %76
%78:f32 = let %77
%79:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
%80:i32 = load %79
%81:f32 = convert %80
%82:f32 = let %81
%83:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
%84:i32 = load %83
%85:f32 = convert %84
%86:vec4<f32> = construct %74, %78, %82, %85
%87:vec4<f32> = let %86
%88:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
%89:i32 = load %88
%90:f32 = convert %89
%91:f32 = let %90
%92:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
%93:i32 = load %92
%94:f32 = convert %93
%95:f32 = let %94
%96:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
%97:i32 = load %96
%98:f32 = convert %97
%99:f32 = let %98
%100:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
%101:i32 = load %100
%102:f32 = convert %101
%103:vec4<f32> = construct %91, %95, %99, %102
%104:vec4<f32> = let %103
%105:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
%106:i32 = load %105
%107:f32 = convert %106
%108:f32 = let %107
%109:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
%110:i32 = load %109
%111:f32 = convert %110
%112:f32 = let %111
%113:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
%114:i32 = load %113
%115:f32 = convert %114
%116:f32 = let %115
%117:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
%118:i32 = load %117
%119:f32 = convert %118
%120:vec4<f32> = construct %108, %112, %116, %119
%121:mat4x4<f32> = construct %70, %87, %104, %120
%x_132:mat4x4<f32> = let %121
%123:ptr<function, vec4<f32>, read_write> = access %m0, 0u
%124:vec4<f32> = load %123
%125:vec4<f32> = access %x_132, 0u
%126:vec4<bool> = eq %124, %125
%127:bool = all %126
%128:bool = let %127
%129:ptr<function, vec4<f32>, read_write> = access %m0, 1u
%130:vec4<f32> = load %129
%131:vec4<f32> = access %x_132, 1u
%132:vec4<bool> = eq %130, %131
%133:bool = all %132
%134:bool = and %128, %133
%135:bool = let %134
%136:ptr<function, vec4<f32>, read_write> = access %m0, 2u
%137:vec4<f32> = load %136
%138:vec4<f32> = access %x_132, 2u
%139:vec4<bool> = eq %137, %138
%140:bool = all %139
%141:bool = and %135, %140
%142:bool = let %141
%143:ptr<function, vec4<f32>, read_write> = access %m0, 3u
%144:vec4<f32> = load %143
%145:vec4<f32> = access %x_132, 3u
%146:vec4<bool> = eq %144, %145
%147:bool = all %146
%148:bool = and %142, %147
if %148 [t: $B7, f: $B8] { # if_2
$B7: { # true
%149:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
%150:i32 = load %149
%151:f32 = convert %150
%152:f32 = let %151
%153:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
%154:i32 = load %153
%155:f32 = convert %154
%156:f32 = let %155
%157:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
%158:i32 = load %157
%159:f32 = convert %158
%160:f32 = let %159
%161:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
%162:i32 = load %161
%163:f32 = convert %162
%164:vec4<f32> = construct %152, %156, %160, %163
store %x_GLF_color, %164
exit_if # if_2
}
$B8: { # false
%165:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
%166:i32 = load %165
%167:f32 = convert %166
%168:vec4<f32> = construct %167
store %x_GLF_color, %168
exit_if # if_2
}
}
ret
}
}
%tint_symbol = @fragment func():main_out {
$B9: {
%170:void = call %main_1
%171:vec4<f32> = load %x_GLF_color
%172:main_out = construct %171
ret %172
}
}
%tint_mod_i32 = func(%lhs:i32, %rhs:i32):i32 {
$B10: {
%175:bool = eq %rhs, 0i
%176:bool = eq %lhs, -2147483648i
%177:bool = eq %rhs, -1i
%178:bool = and %176, %177
%179:bool = or %175, %178
%180:i32 = select %rhs, 1i, %179
%181:i32 = let %180
%182:i32 = div %lhs, %181
%183:i32 = mul %182, %181
%184:i32 = sub %lhs, %183
ret %184
}
}
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. *
********************************************************************