blob: 048ba1a078e767e32321020db18fe655a1c36aa7 [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
%x_40:i32 = let %9
%11:f32 = convert %x_40
%x_41:f32 = let %11
%13:vec4<f32> = construct %x_41, 0.0f, 0.0f, 0.0f
%14:vec4<f32> = let %13
%15:vec4<f32> = construct 0.0f, %x_41, 0.0f, 0.0f
%16:vec4<f32> = let %15
%17:vec4<f32> = construct 0.0f, 0.0f, %x_41, 0.0f
%18:vec4<f32> = let %17
%19:vec4<f32> = construct 0.0f, 0.0f, 0.0f, %x_41
%20:mat4x4<f32> = construct %14, %16, %18, %19
store %m0, %20
%21:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
%22:i32 = load %21
%x_48:i32 = let %22
store %c, %x_48
loop [b: $B3, c: $B4] { # loop_1
$B3: { # body
%24:i32 = load %c
%x_53:i32 = let %24
%26:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
%27:i32 = load %26
%x_55:i32 = let %27
%29:bool = lt %x_53, %x_55
if %29 [t: $B5, f: $B6] { # if_1
$B5: { # true
exit_if # if_1
}
$B6: { # false
exit_loop # loop_1
}
}
%30:mat4x4<f32> = load %m0
%x_58:mat4x4<f32> = let %30
store %m1, %x_58
%32:i32 = load %c
%x_59:i32 = let %32
%34:ptr<uniform, i32, read> = access %x_6, 0u, 3i, 0u
%35:i32 = load %34
%x_61:i32 = let %35
%37:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
%38:i32 = load %37
%x_64:i32 = let %38
%40:ptr<uniform, f32, read> = access %x_10, 0u, 0i, 0u
%41:f32 = load %40
%x_66:f32 = let %41
%43:i32 = call %tint_mod_i32, %x_59, %x_61
%45:ptr<function, vec4<f32>, read_write> = access %m1, %43
store_vector_element %45, %x_64, %x_66
%46:i32 = load %c
%x_68:i32 = let %46
%48:ptr<uniform, i32, read> = access %x_6, 0u, 3i, 0u
%49:i32 = load %48
%x_70:i32 = let %49
%51:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
%52:i32 = load %51
%x_73:i32 = let %52
%54:ptr<uniform, f32, read> = access %x_10, 0u, 0i, 0u
%55:f32 = load %54
%x_75:f32 = let %55
%57:i32 = call %tint_mod_i32, %x_68, %x_70
%58:ptr<function, vec4<f32>, read_write> = access %m0, %57
store_vector_element %58, %x_73, %x_75
continue # -> $B4
}
$B4: { # continuing
%59:i32 = load %c
%x_77:i32 = let %59
%61:i32 = add %x_77, 1i
store %c, %61
next_iteration # -> $B3
}
}
%62:mat4x4<f32> = load %m0
%x_79:mat4x4<f32> = let %62
%64:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
%65:i32 = load %64
%x_81:i32 = let %65
%67:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
%68:i32 = load %67
%x_84:i32 = let %68
%70:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
%71:i32 = load %70
%x_87:i32 = let %71
%73:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
%74:i32 = load %73
%x_90:i32 = let %74
%76:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
%77:i32 = load %76
%x_93:i32 = let %77
%79:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
%80:i32 = load %79
%x_96:i32 = let %80
%82:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
%83:i32 = load %82
%x_99:i32 = let %83
%85:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
%86:i32 = load %85
%x_102:i32 = let %86
%88:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
%89:i32 = load %88
%x_105:i32 = let %89
%91:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
%92:i32 = load %91
%x_108:i32 = let %92
%94:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
%95:i32 = load %94
%x_111:i32 = let %95
%97:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
%98:i32 = load %97
%x_114:i32 = let %98
%100:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
%101:i32 = load %100
%x_117:i32 = let %101
%103:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
%104:i32 = load %103
%x_120:i32 = let %104
%106:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
%107:i32 = load %106
%x_123:i32 = let %107
%109:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
%110:i32 = load %109
%x_126:i32 = let %110
%112:f32 = convert %x_81
%113:f32 = let %112
%114:f32 = convert %x_84
%115:f32 = let %114
%116:f32 = convert %x_87
%117:f32 = let %116
%118:f32 = convert %x_90
%119:vec4<f32> = construct %113, %115, %117, %118
%120:vec4<f32> = let %119
%121:f32 = convert %x_93
%122:f32 = let %121
%123:f32 = convert %x_96
%124:f32 = let %123
%125:f32 = convert %x_99
%126:f32 = let %125
%127:f32 = convert %x_102
%128:vec4<f32> = construct %122, %124, %126, %127
%129:vec4<f32> = let %128
%130:f32 = convert %x_105
%131:f32 = let %130
%132:f32 = convert %x_108
%133:f32 = let %132
%134:f32 = convert %x_111
%135:f32 = let %134
%136:f32 = convert %x_114
%137:vec4<f32> = construct %131, %133, %135, %136
%138:vec4<f32> = let %137
%139:f32 = convert %x_117
%140:f32 = let %139
%141:f32 = convert %x_120
%142:f32 = let %141
%143:f32 = convert %x_123
%144:f32 = let %143
%145:f32 = convert %x_126
%146:vec4<f32> = construct %140, %142, %144, %145
%147:mat4x4<f32> = construct %120, %129, %138, %146
%x_132:mat4x4<f32> = let %147
%149:vec4<f32> = access %x_79, 0u
%150:vec4<f32> = access %x_132, 0u
%151:vec4<bool> = eq %149, %150
%152:bool = all %151
%153:bool = let %152
%154:vec4<f32> = access %x_79, 1u
%155:vec4<f32> = access %x_132, 1u
%156:vec4<bool> = eq %154, %155
%157:bool = all %156
%158:bool = and %153, %157
%159:bool = let %158
%160:vec4<f32> = access %x_79, 2u
%161:vec4<f32> = access %x_132, 2u
%162:vec4<bool> = eq %160, %161
%163:bool = all %162
%164:bool = and %159, %163
%165:bool = let %164
%166:vec4<f32> = access %x_79, 3u
%167:vec4<f32> = access %x_132, 3u
%168:vec4<bool> = eq %166, %167
%169:bool = all %168
%170:bool = and %165, %169
if %170 [t: $B7, f: $B8] { # if_2
$B7: { # true
%171:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
%172:i32 = load %171
%x_156:i32 = let %172
%174:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
%175:i32 = load %174
%x_159:i32 = let %175
%177:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
%178:i32 = load %177
%x_162:i32 = let %178
%180:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
%181:i32 = load %180
%x_165:i32 = let %181
%183:f32 = convert %x_156
%184:f32 = let %183
%185:f32 = convert %x_159
%186:f32 = let %185
%187:f32 = convert %x_162
%188:f32 = let %187
%189:f32 = convert %x_165
%190:vec4<f32> = construct %184, %186, %188, %189
store %x_GLF_color, %190
exit_if # if_2
}
$B8: { # false
%191:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
%192:i32 = load %191
%x_169:i32 = let %192
%194:f32 = convert %x_169
%x_170:f32 = let %194
%196:vec4<f32> = construct %x_170, %x_170, %x_170, %x_170
store %x_GLF_color, %196
exit_if # if_2
}
}
ret
}
}
%tint_symbol = @fragment func():main_out {
$B9: {
%198:void = call %main_1
%199:vec4<f32> = load %x_GLF_color
%200:main_out = construct %199
ret %200
}
}
%tint_mod_i32 = func(%lhs:i32, %rhs:i32):i32 {
$B10: {
%203:bool = eq %rhs, 0i
%204:bool = eq %lhs, -2147483648i
%205:bool = eq %rhs, -1i
%206:bool = and %204, %205
%207:bool = or %203, %206
%208:i32 = select %rhs, 1i, %207
%209:i32 = let %208
%210:i32 = div %lhs, %209
%211:i32 = mul %210, %209
%212:i32 = sub %lhs, %211
ret %212
}
}
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. *
********************************************************************