blob: 3f1869171fd9a2f3b8bf2c8c082f405dddfbe6f2 [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(816)
}
$B1: { # root
%ub:ptr<uniform, S, read> = var @binding_point(0, 0)
%s:ptr<storage, i32, read_write> = var @binding_point(0, 1)
}
%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void {
$B2: {
%4:ptr<uniform, f32, read> = access %ub, 0u
%5:f32 = load %4
%scalar_f32:f32 = let %5
%7:ptr<uniform, i32, read> = access %ub, 1u
%8:i32 = load %7
%scalar_i32:i32 = let %8
%10:ptr<uniform, u32, read> = access %ub, 2u
%11:u32 = load %10
%scalar_u32:u32 = let %11
%13:ptr<uniform, f16, read> = access %ub, 3u
%14:f16 = load %13
%scalar_f16:f16 = let %14
%16:ptr<uniform, vec2<f32>, read> = access %ub, 4u
%17:vec2<f32> = load %16
%vec2_f32:vec2<f32> = let %17
%19:ptr<uniform, vec2<i32>, read> = access %ub, 5u
%20:vec2<i32> = load %19
%vec2_i32:vec2<i32> = let %20
%22:ptr<uniform, vec2<u32>, read> = access %ub, 6u
%23:vec2<u32> = load %22
%vec2_u32:vec2<u32> = let %23
%25:ptr<uniform, vec2<f16>, read> = access %ub, 7u
%26:vec2<f16> = load %25
%vec2_f16:vec2<f16> = let %26
%28:ptr<uniform, vec3<f32>, read> = access %ub, 8u
%29:vec3<f32> = load %28
%vec3_f32:vec3<f32> = let %29
%31:ptr<uniform, vec3<i32>, read> = access %ub, 9u
%32:vec3<i32> = load %31
%vec3_i32:vec3<i32> = let %32
%34:ptr<uniform, vec3<u32>, read> = access %ub, 10u
%35:vec3<u32> = load %34
%vec3_u32:vec3<u32> = let %35
%37:ptr<uniform, vec3<f16>, read> = access %ub, 11u
%38:vec3<f16> = load %37
%vec3_f16:vec3<f16> = let %38
%40:ptr<uniform, vec4<f32>, read> = access %ub, 12u
%41:vec4<f32> = load %40
%vec4_f32:vec4<f32> = let %41
%43:ptr<uniform, vec4<i32>, read> = access %ub, 13u
%44:vec4<i32> = load %43
%vec4_i32:vec4<i32> = let %44
%46:ptr<uniform, vec4<u32>, read> = access %ub, 14u
%47:vec4<u32> = load %46
%vec4_u32:vec4<u32> = let %47
%49:ptr<uniform, vec4<f16>, read> = access %ub, 15u
%50:vec4<f16> = load %49
%vec4_f16:vec4<f16> = let %50
%52:ptr<uniform, mat2x2<f32>, read> = access %ub, 16u
%53:mat2x2<f32> = load %52
%mat2x2_f32:mat2x2<f32> = let %53
%55:ptr<uniform, mat2x3<f32>, read> = access %ub, 17u
%56:mat2x3<f32> = load %55
%mat2x3_f32:mat2x3<f32> = let %56
%58:ptr<uniform, mat2x4<f32>, read> = access %ub, 18u
%59:mat2x4<f32> = load %58
%mat2x4_f32:mat2x4<f32> = let %59
%61:ptr<uniform, mat3x2<f32>, read> = access %ub, 19u
%62:mat3x2<f32> = load %61
%mat3x2_f32:mat3x2<f32> = let %62
%64:ptr<uniform, mat3x3<f32>, read> = access %ub, 20u
%65:mat3x3<f32> = load %64
%mat3x3_f32:mat3x3<f32> = let %65
%67:ptr<uniform, mat3x4<f32>, read> = access %ub, 21u
%68:mat3x4<f32> = load %67
%mat3x4_f32:mat3x4<f32> = let %68
%70:ptr<uniform, mat4x2<f32>, read> = access %ub, 22u
%71:mat4x2<f32> = load %70
%mat4x2_f32:mat4x2<f32> = let %71
%73:ptr<uniform, mat4x3<f32>, read> = access %ub, 23u
%74:mat4x3<f32> = load %73
%mat4x3_f32:mat4x3<f32> = let %74
%76:ptr<uniform, mat4x4<f32>, read> = access %ub, 24u
%77:mat4x4<f32> = load %76
%mat4x4_f32:mat4x4<f32> = let %77
%79:ptr<uniform, mat2x2<f16>, read> = access %ub, 25u
%80:mat2x2<f16> = load %79
%mat2x2_f16:mat2x2<f16> = let %80
%82:ptr<uniform, mat2x3<f16>, read> = access %ub, 26u
%83:mat2x3<f16> = load %82
%mat2x3_f16:mat2x3<f16> = let %83
%85:ptr<uniform, mat2x4<f16>, read> = access %ub, 27u
%86:mat2x4<f16> = load %85
%mat2x4_f16:mat2x4<f16> = let %86
%88:ptr<uniform, mat3x2<f16>, read> = access %ub, 28u
%89:mat3x2<f16> = load %88
%mat3x2_f16:mat3x2<f16> = let %89
%91:ptr<uniform, mat3x3<f16>, read> = access %ub, 29u
%92:mat3x3<f16> = load %91
%mat3x3_f16:mat3x3<f16> = let %92
%94:ptr<uniform, mat3x4<f16>, read> = access %ub, 30u
%95:mat3x4<f16> = load %94
%mat3x4_f16:mat3x4<f16> = let %95
%97:ptr<uniform, mat4x2<f16>, read> = access %ub, 31u
%98:mat4x2<f16> = load %97
%mat4x2_f16:mat4x2<f16> = let %98
%100:ptr<uniform, mat4x3<f16>, read> = access %ub, 32u
%101:mat4x3<f16> = load %100
%mat4x3_f16:mat4x3<f16> = let %101
%103:ptr<uniform, mat4x4<f16>, read> = access %ub, 33u
%104:mat4x4<f16> = load %103
%mat4x4_f16:mat4x4<f16> = let %104
%106:ptr<uniform, array<vec3<f32>, 2>, read> = access %ub, 34u
%107:array<vec3<f32>, 2> = load %106
%arr2_vec3_f32:array<vec3<f32>, 2> = let %107
%109:ptr<uniform, array<mat4x2<f16>, 2>, read> = access %ub, 35u
%110:array<mat4x2<f16>, 2> = load %109
%arr2_mat4x2_f16:array<mat4x2<f16>, 2> = let %110
%112:ptr<uniform, Inner, read> = access %ub, 36u
%113:Inner = load %112
%struct_inner:Inner = let %113
%115:ptr<uniform, array<Inner, 4>, read> = access %ub, 37u
%116:array<Inner, 4> = load %115
%array_struct_inner:array<Inner, 4> = let %116
%118:i32 = call %tint_f32_to_i32, %scalar_f32
%120:i32 = add %118, %scalar_i32
%121:i32 = let %120
%122:i32 = convert %scalar_u32
%123:i32 = add %121, %122
%124:i32 = let %123
%125:i32 = call %tint_f16_to_i32, %scalar_f16
%127:i32 = add %124, %125
%128:i32 = let %127
%129:f32 = access %vec2_f32, 0u
%130:i32 = call %tint_f32_to_i32, %129
%131:i32 = add %128, %130
%132:i32 = access %vec2_i32, 0u
%133:i32 = add %131, %132
%134:i32 = let %133
%135:u32 = access %vec2_u32, 0u
%136:i32 = convert %135
%137:i32 = add %134, %136
%138:i32 = let %137
%139:f16 = access %vec2_f16, 0u
%140:i32 = call %tint_f16_to_i32, %139
%141:i32 = add %138, %140
%142:i32 = let %141
%143:f32 = access %vec3_f32, 1u
%144:i32 = call %tint_f32_to_i32, %143
%145:i32 = add %142, %144
%146:i32 = access %vec3_i32, 1u
%147:i32 = add %145, %146
%148:i32 = let %147
%149:u32 = access %vec3_u32, 1u
%150:i32 = convert %149
%151:i32 = add %148, %150
%152:i32 = let %151
%153:f16 = access %vec3_f16, 1u
%154:i32 = call %tint_f16_to_i32, %153
%155:i32 = add %152, %154
%156:i32 = let %155
%157:f32 = access %vec4_f32, 2u
%158:i32 = call %tint_f32_to_i32, %157
%159:i32 = add %156, %158
%160:i32 = access %vec4_i32, 2u
%161:i32 = add %159, %160
%162:i32 = let %161
%163:u32 = access %vec4_u32, 2u
%164:i32 = convert %163
%165:i32 = add %162, %164
%166:i32 = let %165
%167:f16 = access %vec4_f16, 2u
%168:i32 = call %tint_f16_to_i32, %167
%169:i32 = add %166, %168
%170:i32 = let %169
%171:f32 = access %mat2x2_f32, 0i, 0u
%172:i32 = call %tint_f32_to_i32, %171
%173:i32 = add %170, %172
%174:i32 = let %173
%175:f32 = access %mat2x3_f32, 0i, 0u
%176:i32 = call %tint_f32_to_i32, %175
%177:i32 = add %174, %176
%178:i32 = let %177
%179:f32 = access %mat2x4_f32, 0i, 0u
%180:i32 = call %tint_f32_to_i32, %179
%181:i32 = add %178, %180
%182:i32 = let %181
%183:f32 = access %mat3x2_f32, 0i, 0u
%184:i32 = call %tint_f32_to_i32, %183
%185:i32 = add %182, %184
%186:i32 = let %185
%187:f32 = access %mat3x3_f32, 0i, 0u
%188:i32 = call %tint_f32_to_i32, %187
%189:i32 = add %186, %188
%190:i32 = let %189
%191:f32 = access %mat3x4_f32, 0i, 0u
%192:i32 = call %tint_f32_to_i32, %191
%193:i32 = add %190, %192
%194:i32 = let %193
%195:f32 = access %mat4x2_f32, 0i, 0u
%196:i32 = call %tint_f32_to_i32, %195
%197:i32 = add %194, %196
%198:i32 = let %197
%199:f32 = access %mat4x3_f32, 0i, 0u
%200:i32 = call %tint_f32_to_i32, %199
%201:i32 = add %198, %200
%202:i32 = let %201
%203:f32 = access %mat4x4_f32, 0i, 0u
%204:i32 = call %tint_f32_to_i32, %203
%205:i32 = add %202, %204
%206:i32 = let %205
%207:f16 = access %mat2x2_f16, 0i, 0u
%208:i32 = call %tint_f16_to_i32, %207
%209:i32 = add %206, %208
%210:i32 = let %209
%211:f16 = access %mat2x3_f16, 0i, 0u
%212:i32 = call %tint_f16_to_i32, %211
%213:i32 = add %210, %212
%214:i32 = let %213
%215:f16 = access %mat2x4_f16, 0i, 0u
%216:i32 = call %tint_f16_to_i32, %215
%217:i32 = add %214, %216
%218:i32 = let %217
%219:f16 = access %mat3x2_f16, 0i, 0u
%220:i32 = call %tint_f16_to_i32, %219
%221:i32 = add %218, %220
%222:i32 = let %221
%223:f16 = access %mat3x3_f16, 0i, 0u
%224:i32 = call %tint_f16_to_i32, %223
%225:i32 = add %222, %224
%226:i32 = let %225
%227:f16 = access %mat3x4_f16, 0i, 0u
%228:i32 = call %tint_f16_to_i32, %227
%229:i32 = add %226, %228
%230:i32 = let %229
%231:f16 = access %mat4x2_f16, 0i, 0u
%232:i32 = call %tint_f16_to_i32, %231
%233:i32 = add %230, %232
%234:i32 = let %233
%235:f16 = access %mat4x3_f16, 0i, 0u
%236:i32 = call %tint_f16_to_i32, %235
%237:i32 = add %234, %236
%238:i32 = let %237
%239:f16 = access %mat4x4_f16, 0i, 0u
%240:i32 = call %tint_f16_to_i32, %239
%241:i32 = add %238, %240
%242:i32 = let %241
%243:f32 = access %arr2_vec3_f32, 0i, 0u
%244:i32 = call %tint_f32_to_i32, %243
%245:i32 = add %242, %244
%246:i32 = let %245
%247:f16 = access %arr2_mat4x2_f16, 0i, 0i, 0u
%248:i32 = call %tint_f16_to_i32, %247
%249:i32 = add %246, %248
%250:i32 = access %struct_inner, 0u
%251:i32 = add %249, %250
%252:i32 = access %array_struct_inner, 0i, 0u
%253:i32 = add %251, %252
store %s, %253
ret
}
}
%tint_f32_to_i32 = func(%value:f32):i32 {
$B3: {
%255:i32 = convert %value
%256:bool = gte %value, -2147483648.0f
%257:i32 = select -2147483648i, %255, %256
%258:bool = lte %value, 2147483520.0f
%259:i32 = select 2147483647i, %257, %258
ret %259
}
}
%tint_f16_to_i32 = func(%value_1:f16):i32 { # %value_1: 'value'
$B4: {
%261:i32 = convert %value_1
%262:bool = gte %value_1, -65504.0h
%263:i32 = select -2147483648i, %261, %262
%264:bool = lte %value_1, 65504.0h
%265:i32 = select 2147483647i, %263, %264
ret %265
}
}
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. *
********************************************************************