blob: 2d609728201b0e47bd8d0ddfeee9c44b8f69aaef [file] [log] [blame]
SKIP: FAILED
../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: Inner = 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)
}
S = struct @align(16) {
arr:array<Inner, 8> @offset(0)
}
$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(%idx:u32 [@local_invocation_index]):void {
$B2: {
%5:ptr<uniform, f32, read> = access %ub, 0u, %idx, 0u
%6:f32 = load %5
%scalar_f32:f32 = let %6
%8:ptr<uniform, i32, read> = access %ub, 0u, %idx, 1u
%9:i32 = load %8
%scalar_i32:i32 = let %9
%11:ptr<uniform, u32, read> = access %ub, 0u, %idx, 2u
%12:u32 = load %11
%scalar_u32:u32 = let %12
%14:ptr<uniform, f16, read> = access %ub, 0u, %idx, 3u
%15:f16 = load %14
%scalar_f16:f16 = let %15
%17:ptr<uniform, vec2<f32>, read> = access %ub, 0u, %idx, 4u
%18:vec2<f32> = load %17
%vec2_f32:vec2<f32> = let %18
%20:ptr<uniform, vec2<i32>, read> = access %ub, 0u, %idx, 5u
%21:vec2<i32> = load %20
%vec2_i32:vec2<i32> = let %21
%23:ptr<uniform, vec2<u32>, read> = access %ub, 0u, %idx, 6u
%24:vec2<u32> = load %23
%vec2_u32:vec2<u32> = let %24
%26:ptr<uniform, vec2<f16>, read> = access %ub, 0u, %idx, 7u
%27:vec2<f16> = load %26
%vec2_f16:vec2<f16> = let %27
%29:ptr<uniform, vec3<f32>, read> = access %ub, 0u, %idx, 8u
%30:vec3<f32> = load %29
%vec3_f32:vec3<f32> = let %30
%32:ptr<uniform, vec3<i32>, read> = access %ub, 0u, %idx, 9u
%33:vec3<i32> = load %32
%vec3_i32:vec3<i32> = let %33
%35:ptr<uniform, vec3<u32>, read> = access %ub, 0u, %idx, 10u
%36:vec3<u32> = load %35
%vec3_u32:vec3<u32> = let %36
%38:ptr<uniform, vec3<f16>, read> = access %ub, 0u, %idx, 11u
%39:vec3<f16> = load %38
%vec3_f16:vec3<f16> = let %39
%41:ptr<uniform, vec4<f32>, read> = access %ub, 0u, %idx, 12u
%42:vec4<f32> = load %41
%vec4_f32:vec4<f32> = let %42
%44:ptr<uniform, vec4<i32>, read> = access %ub, 0u, %idx, 13u
%45:vec4<i32> = load %44
%vec4_i32:vec4<i32> = let %45
%47:ptr<uniform, vec4<u32>, read> = access %ub, 0u, %idx, 14u
%48:vec4<u32> = load %47
%vec4_u32:vec4<u32> = let %48
%50:ptr<uniform, vec4<f16>, read> = access %ub, 0u, %idx, 15u
%51:vec4<f16> = load %50
%vec4_f16:vec4<f16> = let %51
%53:ptr<uniform, mat2x2<f32>, read> = access %ub, 0u, %idx, 16u
%54:mat2x2<f32> = load %53
%mat2x2_f32:mat2x2<f32> = let %54
%56:ptr<uniform, mat2x3<f32>, read> = access %ub, 0u, %idx, 17u
%57:mat2x3<f32> = load %56
%mat2x3_f32:mat2x3<f32> = let %57
%59:ptr<uniform, mat2x4<f32>, read> = access %ub, 0u, %idx, 18u
%60:mat2x4<f32> = load %59
%mat2x4_f32:mat2x4<f32> = let %60
%62:ptr<uniform, mat3x2<f32>, read> = access %ub, 0u, %idx, 19u
%63:mat3x2<f32> = load %62
%mat3x2_f32:mat3x2<f32> = let %63
%65:ptr<uniform, mat3x3<f32>, read> = access %ub, 0u, %idx, 20u
%66:mat3x3<f32> = load %65
%mat3x3_f32:mat3x3<f32> = let %66
%68:ptr<uniform, mat3x4<f32>, read> = access %ub, 0u, %idx, 21u
%69:mat3x4<f32> = load %68
%mat3x4_f32:mat3x4<f32> = let %69
%71:ptr<uniform, mat4x2<f32>, read> = access %ub, 0u, %idx, 22u
%72:mat4x2<f32> = load %71
%mat4x2_f32:mat4x2<f32> = let %72
%74:ptr<uniform, mat4x3<f32>, read> = access %ub, 0u, %idx, 23u
%75:mat4x3<f32> = load %74
%mat4x3_f32:mat4x3<f32> = let %75
%77:ptr<uniform, mat4x4<f32>, read> = access %ub, 0u, %idx, 24u
%78:mat4x4<f32> = load %77
%mat4x4_f32:mat4x4<f32> = let %78
%80:ptr<uniform, mat2x2<f16>, read> = access %ub, 0u, %idx, 25u
%81:mat2x2<f16> = load %80
%mat2x2_f16:mat2x2<f16> = let %81
%83:ptr<uniform, mat2x3<f16>, read> = access %ub, 0u, %idx, 26u
%84:mat2x3<f16> = load %83
%mat2x3_f16:mat2x3<f16> = let %84
%86:ptr<uniform, mat2x4<f16>, read> = access %ub, 0u, %idx, 27u
%87:mat2x4<f16> = load %86
%mat2x4_f16:mat2x4<f16> = let %87
%89:ptr<uniform, mat3x2<f16>, read> = access %ub, 0u, %idx, 28u
%90:mat3x2<f16> = load %89
%mat3x2_f16:mat3x2<f16> = let %90
%92:ptr<uniform, mat3x3<f16>, read> = access %ub, 0u, %idx, 29u
%93:mat3x3<f16> = load %92
%mat3x3_f16:mat3x3<f16> = let %93
%95:ptr<uniform, mat3x4<f16>, read> = access %ub, 0u, %idx, 30u
%96:mat3x4<f16> = load %95
%mat3x4_f16:mat3x4<f16> = let %96
%98:ptr<uniform, mat4x2<f16>, read> = access %ub, 0u, %idx, 31u
%99:mat4x2<f16> = load %98
%mat4x2_f16:mat4x2<f16> = let %99
%101:ptr<uniform, mat4x3<f16>, read> = access %ub, 0u, %idx, 32u
%102:mat4x3<f16> = load %101
%mat4x3_f16:mat4x3<f16> = let %102
%104:ptr<uniform, mat4x4<f16>, read> = access %ub, 0u, %idx, 33u
%105:mat4x4<f16> = load %104
%mat4x4_f16:mat4x4<f16> = let %105
%107:ptr<uniform, array<vec3<f32>, 2>, read> = access %ub, 0u, %idx, 34u
%108:array<vec3<f32>, 2> = load %107
%arr2_vec3_f32:array<vec3<f32>, 2> = let %108
%110:ptr<uniform, array<mat4x2<f16>, 2>, read> = access %ub, 0u, %idx, 35u
%111:array<mat4x2<f16>, 2> = load %110
%arr2_mat4x2_f16:array<mat4x2<f16>, 2> = let %111
%113:i32 = call %tint_f32_to_i32, %scalar_f32
%115:i32 = add %113, %scalar_i32
%116:i32 = let %115
%117:i32 = convert %scalar_u32
%118:i32 = add %116, %117
%119:i32 = let %118
%120:i32 = call %tint_f16_to_i32, %scalar_f16
%122:i32 = add %119, %120
%123:i32 = let %122
%124:f32 = access %vec2_f32, 0u
%125:i32 = call %tint_f32_to_i32, %124
%126:i32 = add %123, %125
%127:i32 = access %vec2_i32, 0u
%128:i32 = add %126, %127
%129:i32 = let %128
%130:u32 = access %vec2_u32, 0u
%131:i32 = convert %130
%132:i32 = add %129, %131
%133:i32 = let %132
%134:f16 = access %vec2_f16, 0u
%135:i32 = call %tint_f16_to_i32, %134
%136:i32 = add %133, %135
%137:i32 = let %136
%138:f32 = access %vec3_f32, 1u
%139:i32 = call %tint_f32_to_i32, %138
%140:i32 = add %137, %139
%141:i32 = access %vec3_i32, 1u
%142:i32 = add %140, %141
%143:i32 = let %142
%144:u32 = access %vec3_u32, 1u
%145:i32 = convert %144
%146:i32 = add %143, %145
%147:i32 = let %146
%148:f16 = access %vec3_f16, 1u
%149:i32 = call %tint_f16_to_i32, %148
%150:i32 = add %147, %149
%151:i32 = let %150
%152:f32 = access %vec4_f32, 2u
%153:i32 = call %tint_f32_to_i32, %152
%154:i32 = add %151, %153
%155:i32 = access %vec4_i32, 2u
%156:i32 = add %154, %155
%157:i32 = let %156
%158:u32 = access %vec4_u32, 2u
%159:i32 = convert %158
%160:i32 = add %157, %159
%161:i32 = let %160
%162:f16 = access %vec4_f16, 2u
%163:i32 = call %tint_f16_to_i32, %162
%164:i32 = add %161, %163
%165:i32 = let %164
%166:f32 = access %mat2x2_f32, 0i, 0u
%167:i32 = call %tint_f32_to_i32, %166
%168:i32 = add %165, %167
%169:i32 = let %168
%170:f32 = access %mat2x3_f32, 0i, 0u
%171:i32 = call %tint_f32_to_i32, %170
%172:i32 = add %169, %171
%173:i32 = let %172
%174:f32 = access %mat2x4_f32, 0i, 0u
%175:i32 = call %tint_f32_to_i32, %174
%176:i32 = add %173, %175
%177:i32 = let %176
%178:f32 = access %mat3x2_f32, 0i, 0u
%179:i32 = call %tint_f32_to_i32, %178
%180:i32 = add %177, %179
%181:i32 = let %180
%182:f32 = access %mat3x3_f32, 0i, 0u
%183:i32 = call %tint_f32_to_i32, %182
%184:i32 = add %181, %183
%185:i32 = let %184
%186:f32 = access %mat3x4_f32, 0i, 0u
%187:i32 = call %tint_f32_to_i32, %186
%188:i32 = add %185, %187
%189:i32 = let %188
%190:f32 = access %mat4x2_f32, 0i, 0u
%191:i32 = call %tint_f32_to_i32, %190
%192:i32 = add %189, %191
%193:i32 = let %192
%194:f32 = access %mat4x3_f32, 0i, 0u
%195:i32 = call %tint_f32_to_i32, %194
%196:i32 = add %193, %195
%197:i32 = let %196
%198:f32 = access %mat4x4_f32, 0i, 0u
%199:i32 = call %tint_f32_to_i32, %198
%200:i32 = add %197, %199
%201:i32 = let %200
%202:f16 = access %mat2x2_f16, 0i, 0u
%203:i32 = call %tint_f16_to_i32, %202
%204:i32 = add %201, %203
%205:i32 = let %204
%206:f16 = access %mat2x3_f16, 0i, 0u
%207:i32 = call %tint_f16_to_i32, %206
%208:i32 = add %205, %207
%209:i32 = let %208
%210:f16 = access %mat2x4_f16, 0i, 0u
%211:i32 = call %tint_f16_to_i32, %210
%212:i32 = add %209, %211
%213:i32 = let %212
%214:f16 = access %mat3x2_f16, 0i, 0u
%215:i32 = call %tint_f16_to_i32, %214
%216:i32 = add %213, %215
%217:i32 = let %216
%218:f16 = access %mat3x3_f16, 0i, 0u
%219:i32 = call %tint_f16_to_i32, %218
%220:i32 = add %217, %219
%221:i32 = let %220
%222:f16 = access %mat3x4_f16, 0i, 0u
%223:i32 = call %tint_f16_to_i32, %222
%224:i32 = add %221, %223
%225:i32 = let %224
%226:f16 = access %mat4x2_f16, 0i, 0u
%227:i32 = call %tint_f16_to_i32, %226
%228:i32 = add %225, %227
%229:i32 = let %228
%230:f16 = access %mat4x3_f16, 0i, 0u
%231:i32 = call %tint_f16_to_i32, %230
%232:i32 = add %229, %231
%233:i32 = let %232
%234:f16 = access %mat4x4_f16, 0i, 0u
%235:i32 = call %tint_f16_to_i32, %234
%236:i32 = add %233, %235
%237:i32 = let %236
%238:f32 = access %arr2_vec3_f32, 0i, 0u
%239:i32 = call %tint_f32_to_i32, %238
%240:i32 = add %237, %239
%241:i32 = let %240
%242:f16 = access %arr2_mat4x2_f16, 0i, 0i, 0u
%243:i32 = call %tint_f16_to_i32, %242
%244:i32 = add %241, %243
store %s, %244
ret
}
}
%tint_f32_to_i32 = func(%value:f32):i32 {
$B3: {
%246:i32 = convert %value
%247:bool = gte %value, -2147483648.0f
%248:i32 = select -2147483648i, %246, %247
%249:bool = lte %value, 2147483520.0f
%250:i32 = select 2147483647i, %248, %249
ret %250
}
}
%tint_f16_to_i32 = func(%value_1:f16):i32 { # %value_1: 'value'
$B4: {
%252:i32 = convert %value_1
%253:bool = gte %value_1, -65504.0h
%254:i32 = select -2147483648i, %252, %253
%255:bool = lte %value_1, 65504.0h
%256:i32 = select 2147483647i, %254, %255
ret %256
}
}
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. *
********************************************************************