| SKIP: FAILED |
| |
| ../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) { |
| el:i32 @offset(0) |
| } |
| |
| buf0 = struct @align(4) { |
| x_GLF_uniform_int_values:array<strided_arr, 7> @offset(0) |
| } |
| |
| strided_arr_1 = struct @align(4) { |
| el:f32 @offset(0) |
| } |
| |
| buf1 = struct @align(4) { |
| x_GLF_uniform_float_values:array<strided_arr_1, 3> @offset(0) |
| } |
| |
| main_out = struct @align(16) { |
| x_GLF_color_1:vec4<f32> @offset(0), @location(0) |
| } |
| |
| $B1: { # root |
| %x_6:ptr<uniform, buf0, read> = var @binding_point(0, 0) |
| %x_8:ptr<uniform, buf1, read> = var @binding_point(0, 1) |
| %x_GLF_color:ptr<private, vec4<f32>, read_write> = var |
| } |
| |
| %main_1 = func():void { |
| $B2: { |
| %sums:ptr<function, array<f32, 2>, read_write> = var |
| %a:ptr<function, i32, read_write> = var |
| %b:ptr<function, i32, read_write> = var |
| %c:ptr<function, i32, read_write> = var |
| %d:ptr<function, i32, read_write> = var |
| %e:ptr<function, i32, read_write> = var |
| %f:ptr<function, i32, read_write> = var |
| %g:ptr<function, i32, read_write> = var |
| %h:ptr<function, i32, read_write> = var |
| %i:ptr<function, i32, read_write> = var |
| %j:ptr<function, i32, read_write> = var |
| %x_215:ptr<function, bool, read_write> = var |
| %x_216_phi:ptr<function, bool, read_write> = var |
| %18:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u |
| %19:i32 = load %18 |
| %x_20:i32 = let %19 |
| %21:ptr<uniform, f32, read> = access %x_8, 0u, 0i, 0u |
| %22:f32 = load %21 |
| %x_110:f32 = let %22 |
| %24:ptr<function, f32, read_write> = access %sums, %x_20 |
| store %24, %x_110 |
| %25:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u |
| %26:i32 = load %25 |
| %x_22:i32 = let %26 |
| %28:ptr<uniform, f32, read> = access %x_8, 0u, 0i, 0u |
| %29:f32 = load %28 |
| %x_114:f32 = let %29 |
| %31:ptr<function, f32, read_write> = access %sums, %x_22 |
| store %31, %x_114 |
| %32:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u |
| %33:i32 = load %32 |
| %x_23:i32 = let %33 |
| store %a, %x_23 |
| loop [b: $B3, c: $B4] { # loop_1 |
| $B3: { # body |
| %35:i32 = load %a |
| %x_24:i32 = let %35 |
| %37:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u |
| %38:i32 = load %37 |
| %x_25:i32 = let %38 |
| %40:bool = lt %x_24, %x_25 |
| if %40 [t: $B5, f: $B6] { # if_1 |
| $B5: { # true |
| exit_if # if_1 |
| } |
| $B6: { # false |
| exit_loop # loop_1 |
| } |
| } |
| %41:ptr<uniform, i32, read> = access %x_6, 0u, 5i, 0u |
| %42:i32 = load %41 |
| %x_26:i32 = let %42 |
| store %b, %x_26 |
| loop [b: $B7, c: $B8] { # loop_2 |
| $B7: { # body |
| %44:i32 = load %b |
| %x_27:i32 = let %44 |
| %46:ptr<uniform, i32, read> = access %x_6, 0u, 3i, 0u |
| %47:i32 = load %46 |
| %x_28:i32 = let %47 |
| %49:bool = lt %x_27, %x_28 |
| if %49 [t: $B9, f: $B10] { # if_2 |
| $B9: { # true |
| exit_if # if_2 |
| } |
| $B10: { # false |
| exit_loop # loop_2 |
| } |
| } |
| %50:ptr<uniform, i32, read> = access %x_6, 0u, 6i, 0u |
| %51:i32 = load %50 |
| %x_29:i32 = let %51 |
| store %c, %x_29 |
| loop [b: $B11, c: $B12] { # loop_3 |
| $B11: { # body |
| %53:i32 = load %c |
| %x_30:i32 = let %53 |
| %55:ptr<uniform, i32, read> = access %x_6, 0u, 4i, 0u |
| %56:i32 = load %55 |
| %x_31:i32 = let %56 |
| %58:bool = lte %x_30, %x_31 |
| if %58 [t: $B13, f: $B14] { # if_3 |
| $B13: { # true |
| exit_if # if_3 |
| } |
| $B14: { # false |
| exit_loop # loop_3 |
| } |
| } |
| %59:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u |
| %60:i32 = load %59 |
| %x_32:i32 = let %60 |
| store %d, %x_32 |
| loop [b: $B15, c: $B16] { # loop_4 |
| $B15: { # body |
| %62:i32 = load %d |
| %x_33:i32 = let %62 |
| %64:ptr<uniform, i32, read> = access %x_6, 0u, 6i, 0u |
| %65:i32 = load %64 |
| %x_34:i32 = let %65 |
| %67:bool = lt %x_33, %x_34 |
| if %67 [t: $B17, f: $B18] { # if_4 |
| $B17: { # true |
| exit_if # if_4 |
| } |
| $B18: { # false |
| exit_loop # loop_4 |
| } |
| } |
| %68:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u |
| %69:i32 = load %68 |
| %x_35:i32 = let %69 |
| store %e, %x_35 |
| loop [b: $B19, c: $B20] { # loop_5 |
| $B19: { # body |
| %71:i32 = load %e |
| %x_36:i32 = let %71 |
| %73:ptr<uniform, i32, read> = access %x_6, 0u, 4i, 0u |
| %74:i32 = load %73 |
| %x_37:i32 = let %74 |
| %76:bool = lte %x_36, %x_37 |
| if %76 [t: $B21, f: $B22] { # if_5 |
| $B21: { # true |
| exit_if # if_5 |
| } |
| $B22: { # false |
| exit_loop # loop_5 |
| } |
| } |
| %77:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u |
| %78:i32 = load %77 |
| %x_38:i32 = let %78 |
| store %f, %x_38 |
| loop [b: $B23, c: $B24] { # loop_6 |
| $B23: { # body |
| %80:i32 = load %f |
| %x_39:i32 = let %80 |
| %82:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u |
| %83:i32 = load %82 |
| %x_40:i32 = let %83 |
| %85:bool = lt %x_39, %x_40 |
| if %85 [t: $B25, f: $B26] { # if_6 |
| $B25: { # true |
| exit_if # if_6 |
| } |
| $B26: { # false |
| exit_loop # loop_6 |
| } |
| } |
| %86:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u |
| %87:i32 = load %86 |
| %x_41:i32 = let %87 |
| store %g, %x_41 |
| loop [b: $B27, c: $B28] { # loop_7 |
| $B27: { # body |
| %89:i32 = load %g |
| %x_42:i32 = let %89 |
| %91:ptr<uniform, i32, read> = access %x_6, 0u, 6i, 0u |
| %92:i32 = load %91 |
| %x_43:i32 = let %92 |
| %94:bool = lt %x_42, %x_43 |
| if %94 [t: $B29, f: $B30] { # if_7 |
| $B29: { # true |
| exit_if # if_7 |
| } |
| $B30: { # false |
| exit_loop # loop_7 |
| } |
| } |
| %95:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u |
| %96:i32 = load %95 |
| %x_44:i32 = let %96 |
| store %h, %x_44 |
| loop [b: $B31, c: $B32] { # loop_8 |
| $B31: { # body |
| %98:i32 = load %h |
| %x_45:i32 = let %98 |
| %100:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u |
| %101:i32 = load %100 |
| %x_46:i32 = let %101 |
| %103:bool = lt %x_45, %x_46 |
| if %103 [t: $B33, f: $B34] { # if_8 |
| $B33: { # true |
| exit_if # if_8 |
| } |
| $B34: { # false |
| exit_loop # loop_8 |
| } |
| } |
| %104:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u |
| %105:i32 = load %104 |
| %x_47:i32 = let %105 |
| store %i, %x_47 |
| loop [b: $B35, c: $B36] { # loop_9 |
| $B35: { # body |
| %107:i32 = load %i |
| %x_48:i32 = let %107 |
| %109:ptr<uniform, i32, read> = access %x_6, 0u, 4i, 0u |
| %110:i32 = load %109 |
| %x_49:i32 = let %110 |
| %112:bool = lt %x_48, %x_49 |
| if %112 [t: $B37, f: $B38] { # if_9 |
| $B37: { # true |
| exit_if # if_9 |
| } |
| $B38: { # false |
| exit_loop # loop_9 |
| } |
| } |
| %113:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u |
| %114:i32 = load %113 |
| %x_50:i32 = let %114 |
| store %j, %x_50 |
| loop [b: $B39, c: $B40] { # loop_10 |
| $B39: { # body |
| %116:i32 = load %j |
| %x_51:i32 = let %116 |
| %118:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u |
| %119:i32 = load %118 |
| %x_52:i32 = let %119 |
| %121:bool = gt %x_51, %x_52 |
| if %121 [t: $B41, f: $B42] { # if_10 |
| $B41: { # true |
| exit_if # if_10 |
| } |
| $B42: { # false |
| exit_loop # loop_10 |
| } |
| } |
| %122:i32 = load %a |
| %x_53:i32 = let %122 |
| %124:ptr<uniform, f32, read> = access %x_8, 0u, 2i, 0u |
| %125:f32 = load %124 |
| %x_197:f32 = let %125 |
| %127:ptr<function, f32, read_write> = access %sums, %x_53 |
| %128:f32 = load %127 |
| %x_199:f32 = let %128 |
| %130:ptr<function, f32, read_write> = access %sums, %x_53 |
| %131:f32 = add %x_199, %x_197 |
| store %130, %131 |
| continue # -> $B40 |
| } |
| $B40: { # continuing |
| %132:i32 = load %j |
| %x_54:i32 = let %132 |
| %134:i32 = sub %x_54, 1i |
| store %j, %134 |
| next_iteration # -> $B39 |
| } |
| } |
| continue # -> $B36 |
| } |
| $B36: { # continuing |
| %135:i32 = load %i |
| %x_56:i32 = let %135 |
| %137:i32 = add %x_56, 1i |
| store %i, %137 |
| next_iteration # -> $B35 |
| } |
| } |
| continue # -> $B32 |
| } |
| $B32: { # continuing |
| %138:i32 = load %h |
| %x_58:i32 = let %138 |
| %140:i32 = add %x_58, 1i |
| store %h, %140 |
| next_iteration # -> $B31 |
| } |
| } |
| continue # -> $B28 |
| } |
| $B28: { # continuing |
| %141:i32 = load %g |
| %x_60:i32 = let %141 |
| %143:i32 = add %x_60, 1i |
| store %g, %143 |
| next_iteration # -> $B27 |
| } |
| } |
| continue # -> $B24 |
| } |
| $B24: { # continuing |
| %144:i32 = load %f |
| %x_62:i32 = let %144 |
| %146:i32 = add %x_62, 1i |
| store %f, %146 |
| next_iteration # -> $B23 |
| } |
| } |
| continue # -> $B20 |
| } |
| $B20: { # continuing |
| %147:i32 = load %e |
| %x_64:i32 = let %147 |
| %149:i32 = add %x_64, 1i |
| store %e, %149 |
| next_iteration # -> $B19 |
| } |
| } |
| continue # -> $B16 |
| } |
| $B16: { # continuing |
| %150:i32 = load %d |
| %x_66:i32 = let %150 |
| %152:i32 = add %x_66, 1i |
| store %d, %152 |
| next_iteration # -> $B15 |
| } |
| } |
| continue # -> $B12 |
| } |
| $B12: { # continuing |
| %153:i32 = load %c |
| %x_68:i32 = let %153 |
| %155:i32 = add %x_68, 1i |
| store %c, %155 |
| next_iteration # -> $B11 |
| } |
| } |
| continue # -> $B8 |
| } |
| $B8: { # continuing |
| %156:i32 = load %b |
| %x_70:i32 = let %156 |
| %158:i32 = add %x_70, 1i |
| store %b, %158 |
| next_iteration # -> $B7 |
| } |
| } |
| continue # -> $B4 |
| } |
| $B4: { # continuing |
| %159:i32 = load %a |
| %x_72:i32 = let %159 |
| %161:i32 = add %x_72, 1i |
| store %a, %161 |
| next_iteration # -> $B3 |
| } |
| } |
| %162:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u |
| %163:i32 = load %162 |
| %x_74:i32 = let %163 |
| %165:ptr<function, f32, read_write> = access %sums, %x_74 |
| %166:f32 = load %165 |
| %x_204:f32 = let %166 |
| %168:ptr<uniform, f32, read> = access %x_8, 0u, 1i, 0u |
| %169:f32 = load %168 |
| %x_206:f32 = let %169 |
| %171:bool = eq %x_204, %x_206 |
| %x_207:bool = let %171 |
| store %x_216_phi, %x_207 |
| if %x_207 [t: $B43] { # if_11 |
| $B43: { # true |
| %173:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u |
| %174:i32 = load %173 |
| %x_75:i32 = let %174 |
| %176:ptr<function, f32, read_write> = access %sums, %x_75 |
| %177:f32 = load %176 |
| %x_212:f32 = let %177 |
| %179:ptr<uniform, f32, read> = access %x_8, 0u, 1i, 0u |
| %180:f32 = load %179 |
| %x_214:f32 = let %180 |
| %182:bool = eq %x_212, %x_214 |
| store %x_215, %182 |
| %183:bool = load %x_215 |
| store %x_216_phi, %183 |
| exit_if # if_11 |
| } |
| } |
| %184:bool = load %x_216_phi |
| %x_216:bool = let %184 |
| if %x_216 [t: $B44, f: $B45] { # if_12 |
| $B44: { # true |
| %186:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u |
| %187:i32 = load %186 |
| %x_76:i32 = let %187 |
| %189:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u |
| %190:i32 = load %189 |
| %x_77:i32 = let %190 |
| %192:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u |
| %193:i32 = load %192 |
| %x_78:i32 = let %193 |
| %195:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u |
| %196:i32 = load %195 |
| %x_79:i32 = let %196 |
| %198:f32 = convert %x_76 |
| %199:f32 = let %198 |
| %200:f32 = convert %x_77 |
| %201:f32 = let %200 |
| %202:f32 = convert %x_78 |
| %203:f32 = let %202 |
| %204:f32 = convert %x_79 |
| %205:vec4<f32> = construct %199, %201, %203, %204 |
| store %x_GLF_color, %205 |
| exit_if # if_12 |
| } |
| $B45: { # false |
| %206:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u |
| %207:i32 = load %206 |
| %x_80:i32 = let %207 |
| %209:f32 = convert %x_80 |
| %x_230:f32 = let %209 |
| %211:vec4<f32> = construct %x_230, %x_230, %x_230, %x_230 |
| store %x_GLF_color, %211 |
| exit_if # if_12 |
| } |
| } |
| ret |
| } |
| } |
| %tint_symbol = @fragment func():main_out { |
| $B46: { |
| %213:void = call %main_1 |
| %214:vec4<f32> = load %x_GLF_color |
| %215:main_out = construct %214 |
| ret %215 |
| } |
| } |
| |
| 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. * |
| ******************************************************************** |