SKIP: FAILED

../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
  el:f32 @offset(0)
}

buf0 = struct @align(4) {
  x_GLF_uniform_float_values:array<strided_arr, 3> @offset(0)
}

strided_arr_1 = struct @align(4) {
  el:i32 @offset(0)
}

buf1 = struct @align(4) {
  x_GLF_uniform_int_values:array<strided_arr_1, 4> @offset(0)
}

main_out = struct @align(16) {
  x_GLF_color_1:vec4<f32> @offset(0), @location(0)
}

$B1: {  # root
  %x_GLF_global_loop_count:ptr<private, i32, read_write> = var
  %x_7:ptr<uniform, buf0, read> = var @binding_point(0, 0)
  %x_10:ptr<uniform, buf1, read> = var @binding_point(0, 1)
  %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
}

%main_1 = func():void {
  $B2: {
    %f:ptr<function, f32, read_write> = var
    %i:ptr<function, i32, read_write> = var
    %i_1:ptr<function, i32, read_write> = var
    %i_2:ptr<function, i32, read_write> = var
    %i_3:ptr<function, i32, read_write> = var
    %i_4:ptr<function, i32, read_write> = var
    %i_5:ptr<function, i32, read_write> = var
    %i_6:ptr<function, i32, read_write> = var
    %i_7:ptr<function, i32, read_write> = var
    %i_8:ptr<function, i32, read_write> = var
    %i_9:ptr<function, i32, read_write> = var
    %i_10:ptr<function, i32, read_write> = var
    %i_11:ptr<function, i32, read_write> = var
    %i_12:ptr<function, i32, read_write> = var
    %i_13:ptr<function, i32, read_write> = var
    %i_14:ptr<function, i32, read_write> = var
    %sum:ptr<function, f32, read_write> = var
    %r:ptr<function, i32, read_write> = var
    store %x_GLF_global_loop_count, 0i
    %24:ptr<uniform, f32, read> = access %x_7, 0u, 1i, 0u
    %25:f32 = load %24
    store %f, %25
    %26:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
    %27:i32 = load %26
    store %i, %27
    loop [b: $B3, c: $B4] {  # loop_1
      $B3: {  # body
        %28:i32 = load %i
        %29:ptr<uniform, i32, read> = access %x_10, 0u, 0i, 0u
        %30:i32 = load %29
        %31:bool = lt %28, %30
        if %31 [t: $B5, f: $B6] {  # if_1
          $B5: {  # true
            exit_if  # if_1
          }
          $B6: {  # false
            exit_loop  # loop_1
          }
        }
        %32:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
        %33:i32 = load %32
        store %i_1, %33
        loop [b: $B7, c: $B8] {  # loop_2
          $B7: {  # body
            %34:i32 = load %i_1
            %35:ptr<uniform, i32, read> = access %x_10, 0u, 0i, 0u
            %36:i32 = load %35
            %37:bool = lt %34, %36
            if %37 [t: $B9, f: $B10] {  # if_2
              $B9: {  # true
                exit_if  # if_2
              }
              $B10: {  # false
                exit_loop  # loop_2
              }
            }
            %38:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
            %39:i32 = load %38
            store %i_2, %39
            loop [b: $B11, c: $B12] {  # loop_3
              $B11: {  # body
                %40:i32 = load %i_2
                %41:ptr<uniform, i32, read> = access %x_10, 0u, 0i, 0u
                %42:i32 = load %41
                %43:bool = lt %40, %42
                if %43 [t: $B13, f: $B14] {  # if_3
                  $B13: {  # true
                    exit_if  # if_3
                  }
                  $B14: {  # false
                    exit_loop  # loop_3
                  }
                }
                %44:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
                %45:i32 = load %44
                store %i_3, %45
                loop [b: $B15, c: $B16] {  # loop_4
                  $B15: {  # body
                    %46:i32 = load %i_3
                    %47:ptr<uniform, i32, read> = access %x_10, 0u, 0i, 0u
                    %48:i32 = load %47
                    %49:bool = lt %46, %48
                    if %49 [t: $B17, f: $B18] {  # if_4
                      $B17: {  # true
                        exit_if  # if_4
                      }
                      $B18: {  # false
                        exit_loop  # loop_4
                      }
                    }
                    %50:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
                    %51:i32 = load %50
                    store %i_4, %51
                    loop [b: $B19, c: $B20] {  # loop_5
                      $B19: {  # body
                        %52:i32 = load %i_4
                        %53:ptr<uniform, i32, read> = access %x_10, 0u, 0i, 0u
                        %54:i32 = load %53
                        %55:bool = lt %52, %54
                        if %55 [t: $B21, f: $B22] {  # if_5
                          $B21: {  # true
                            exit_if  # if_5
                          }
                          $B22: {  # false
                            exit_loop  # loop_5
                          }
                        }
                        %56:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
                        %57:i32 = load %56
                        store %i_5, %57
                        loop [b: $B23, c: $B24] {  # loop_6
                          $B23: {  # body
                            %58:i32 = load %i_5
                            %59:ptr<uniform, i32, read> = access %x_10, 0u, 0i, 0u
                            %60:i32 = load %59
                            %61:bool = lt %58, %60
                            if %61 [t: $B25, f: $B26] {  # if_6
                              $B25: {  # true
                                exit_if  # if_6
                              }
                              $B26: {  # false
                                exit_loop  # loop_6
                              }
                            }
                            %62:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
                            %63:i32 = load %62
                            store %i_6, %63
                            loop [b: $B27, c: $B28] {  # loop_7
                              $B27: {  # body
                                %64:i32 = load %i_6
                                %65:ptr<uniform, i32, read> = access %x_10, 0u, 0i, 0u
                                %66:i32 = load %65
                                %67:bool = lt %64, %66
                                if %67 [t: $B29, f: $B30] {  # if_7
                                  $B29: {  # true
                                    exit_if  # if_7
                                  }
                                  $B30: {  # false
                                    exit_loop  # loop_7
                                  }
                                }
                                %68:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
                                %69:i32 = load %68
                                store %i_7, %69
                                loop [b: $B31, c: $B32] {  # loop_8
                                  $B31: {  # body
                                    %70:i32 = load %i_7
                                    %71:ptr<uniform, i32, read> = access %x_10, 0u, 0i, 0u
                                    %72:i32 = load %71
                                    %73:bool = lt %70, %72
                                    if %73 [t: $B33, f: $B34] {  # if_8
                                      $B33: {  # true
                                        exit_if  # if_8
                                      }
                                      $B34: {  # false
                                        exit_loop  # loop_8
                                      }
                                    }
                                    %74:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
                                    %75:i32 = load %74
                                    store %i_8, %75
                                    loop [b: $B35, c: $B36] {  # loop_9
                                      $B35: {  # body
                                        %76:i32 = load %i_8
                                        %77:ptr<uniform, i32, read> = access %x_10, 0u, 0i, 0u
                                        %78:i32 = load %77
                                        %79:bool = lt %76, %78
                                        if %79 [t: $B37, f: $B38] {  # if_9
                                          $B37: {  # true
                                            exit_if  # if_9
                                          }
                                          $B38: {  # false
                                            exit_loop  # loop_9
                                          }
                                        }
                                        %80:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
                                        %81:i32 = load %80
                                        store %i_9, %81
                                        loop [b: $B39, c: $B40] {  # loop_10
                                          $B39: {  # body
                                            %82:i32 = load %i_9
                                            %83:ptr<uniform, i32, read> = access %x_10, 0u, 0i, 0u
                                            %84:i32 = load %83
                                            %85:bool = lt %82, %84
                                            if %85 [t: $B41, f: $B42] {  # if_10
                                              $B41: {  # true
                                                exit_if  # if_10
                                              }
                                              $B42: {  # false
                                                exit_loop  # loop_10
                                              }
                                            }
                                            %86:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
                                            %87:i32 = load %86
                                            store %i_10, %87
                                            loop [b: $B43, c: $B44] {  # loop_11
                                              $B43: {  # body
                                                %88:i32 = load %i_10
                                                %89:ptr<uniform, i32, read> = access %x_10, 0u, 0i, 0u
                                                %90:i32 = load %89
                                                %91:bool = lt %88, %90
                                                if %91 [t: $B45, f: $B46] {  # if_11
                                                  $B45: {  # true
                                                    exit_if  # if_11
                                                  }
                                                  $B46: {  # false
                                                    exit_loop  # loop_11
                                                  }
                                                }
                                                %92:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
                                                %93:i32 = load %92
                                                store %i_11, %93
                                                loop [b: $B47, c: $B48] {  # loop_12
                                                  $B47: {  # body
                                                    %94:i32 = load %i_11
                                                    %95:ptr<uniform, i32, read> = access %x_10, 0u, 2i, 0u
                                                    %96:i32 = load %95
                                                    %97:bool = lt %94, %96
                                                    if %97 [t: $B49, f: $B50] {  # if_12
                                                      $B49: {  # true
                                                        exit_if  # if_12
                                                      }
                                                      $B50: {  # false
                                                        exit_loop  # loop_12
                                                      }
                                                    }
                                                    %98:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
                                                    %99:i32 = load %98
                                                    store %i_12, %99
                                                    loop [b: $B51, c: $B52] {  # loop_13
                                                      $B51: {  # body
                                                        %100:i32 = load %i_12
                                                        %101:ptr<uniform, i32, read> = access %x_10, 0u, 0i, 0u
                                                        %102:i32 = load %101
                                                        %103:bool = lt %100, %102
                                                        if %103 [t: $B53, f: $B54] {  # if_13
                                                          $B53: {  # true
                                                            exit_if  # if_13
                                                          }
                                                          $B54: {  # false
                                                            exit_loop  # loop_13
                                                          }
                                                        }
                                                        %104:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
                                                        %105:i32 = load %104
                                                        store %i_13, %105
                                                        loop [b: $B55, c: $B56] {  # loop_14
                                                          $B55: {  # body
                                                            %106:i32 = load %i_13
                                                            %107:ptr<uniform, i32, read> = access %x_10, 0u, 0i, 0u
                                                            %108:i32 = load %107
                                                            %109:bool = lt %106, %108
                                                            if %109 [t: $B57, f: $B58] {  # if_14
                                                              $B57: {  # true
                                                                exit_if  # if_14
                                                              }
                                                              $B58: {  # false
                                                                exit_loop  # loop_14
                                                              }
                                                            }
                                                            %110:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
                                                            %111:i32 = load %110
                                                            store %i_14, %111
                                                            loop [b: $B59, c: $B60] {  # loop_15
                                                              $B59: {  # body
                                                                %112:i32 = load %i_14
                                                                %113:ptr<uniform, i32, read> = access %x_10, 0u, 2i, 0u
                                                                %114:i32 = load %113
                                                                %115:bool = lt %112, %114
                                                                if %115 [t: $B61, f: $B62] {  # if_15
                                                                  $B61: {  # true
                                                                    exit_if  # if_15
                                                                  }
                                                                  $B62: {  # false
                                                                    exit_loop  # loop_15
                                                                  }
                                                                }
                                                                loop [b: $B63, c: $B64] {  # loop_16
                                                                  $B63: {  # body
                                                                    %116:i32 = load %x_GLF_global_loop_count
                                                                    %117:i32 = add %116, 1i
                                                                    store %x_GLF_global_loop_count, %117
                                                                    continue  # -> $B64
                                                                  }
                                                                  $B64: {  # continuing
                                                                    %118:i32 = load %x_GLF_global_loop_count
                                                                    %x_225:i32 = let %118
                                                                    %120:ptr<uniform, i32, read> = access %x_10, 0u, 3i, 0u
                                                                    %121:i32 = load %120
                                                                    %x_227:i32 = let %121
                                                                    %123:i32 = sub 100i, %x_227
                                                                    %124:bool = lt %x_225, %123
                                                                    %125:bool = eq %124, false
                                                                    break_if %125  # -> [t: exit_loop loop_16, f: $B63]
                                                                  }
                                                                }
                                                                %126:f32 = load %f
                                                                %127:ptr<uniform, f32, read> = access %x_7, 0u, 0i, 0u
                                                                %128:f32 = load %127
                                                                %129:f32 = add %126, %128
                                                                store %f, %129
                                                                continue  # -> $B60
                                                              }
                                                              $B60: {  # continuing
                                                                %130:i32 = load %i_14
                                                                %131:i32 = add %130, 1i
                                                                store %i_14, %131
                                                                next_iteration  # -> $B59
                                                              }
                                                            }
                                                            continue  # -> $B56
                                                          }
                                                          $B56: {  # continuing
                                                            %132:i32 = load %i_13
                                                            %133:i32 = add %132, 1i
                                                            store %i_13, %133
                                                            next_iteration  # -> $B55
                                                          }
                                                        }
                                                        continue  # -> $B52
                                                      }
                                                      $B52: {  # continuing
                                                        %134:i32 = load %i_12
                                                        %135:i32 = add %134, 1i
                                                        store %i_12, %135
                                                        next_iteration  # -> $B51
                                                      }
                                                    }
                                                    continue  # -> $B48
                                                  }
                                                  $B48: {  # continuing
                                                    %136:i32 = load %i_11
                                                    %137:i32 = add %136, 1i
                                                    store %i_11, %137
                                                    next_iteration  # -> $B47
                                                  }
                                                }
                                                continue  # -> $B44
                                              }
                                              $B44: {  # continuing
                                                %138:i32 = load %i_10
                                                %139:i32 = add %138, 1i
                                                store %i_10, %139
                                                next_iteration  # -> $B43
                                              }
                                            }
                                            continue  # -> $B40
                                          }
                                          $B40: {  # continuing
                                            %140:i32 = load %i_9
                                            %141:i32 = add %140, 1i
                                            store %i_9, %141
                                            next_iteration  # -> $B39
                                          }
                                        }
                                        continue  # -> $B36
                                      }
                                      $B36: {  # continuing
                                        %142:i32 = load %i_8
                                        %143:i32 = add %142, 1i
                                        store %i_8, %143
                                        next_iteration  # -> $B35
                                      }
                                    }
                                    continue  # -> $B32
                                  }
                                  $B32: {  # continuing
                                    %144:i32 = load %i_7
                                    %145:i32 = add %144, 1i
                                    store %i_7, %145
                                    next_iteration  # -> $B31
                                  }
                                }
                                continue  # -> $B28
                              }
                              $B28: {  # continuing
                                %146:i32 = load %i_6
                                %147:i32 = add %146, 1i
                                store %i_6, %147
                                next_iteration  # -> $B27
                              }
                            }
                            continue  # -> $B24
                          }
                          $B24: {  # continuing
                            %148:i32 = load %i_5
                            %149:i32 = add %148, 1i
                            store %i_5, %149
                            next_iteration  # -> $B23
                          }
                        }
                        continue  # -> $B20
                      }
                      $B20: {  # continuing
                        %150:i32 = load %i_4
                        %151:i32 = add %150, 1i
                        store %i_4, %151
                        next_iteration  # -> $B19
                      }
                    }
                    continue  # -> $B16
                  }
                  $B16: {  # continuing
                    %152:i32 = load %i_3
                    %153:i32 = add %152, 1i
                    store %i_3, %153
                    next_iteration  # -> $B15
                  }
                }
                continue  # -> $B12
              }
              $B12: {  # continuing
                %154:i32 = load %i_2
                %155:i32 = add %154, 1i
                store %i_2, %155
                next_iteration  # -> $B11
              }
            }
            continue  # -> $B8
          }
          $B8: {  # continuing
            %156:i32 = load %i_1
            %157:i32 = add %156, 1i
            store %i_1, %157
            next_iteration  # -> $B7
          }
        }
        continue  # -> $B4
      }
      $B4: {  # continuing
        %158:i32 = load %i
        %159:i32 = add %158, 1i
        store %i, %159
        next_iteration  # -> $B3
      }
    }
    %160:ptr<uniform, f32, read> = access %x_7, 0u, 1i, 0u
    %161:f32 = load %160
    store %sum, %161
    %162:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
    %163:i32 = load %162
    store %r, %163
    loop [b: $B65, c: $B66] {  # loop_17
      $B65: {  # body
        %164:i32 = load %x_GLF_global_loop_count
        %165:bool = lt %164, 100i
        if %165 [t: $B67, f: $B68] {  # if_16
          $B67: {  # true
            exit_if  # if_16
          }
          $B68: {  # false
            exit_loop  # loop_17
          }
        }
        %166:i32 = load %x_GLF_global_loop_count
        %167:i32 = add %166, 1i
        store %x_GLF_global_loop_count, %167
        %168:f32 = load %sum
        %169:f32 = load %f
        %170:f32 = add %168, %169
        store %sum, %170
        continue  # -> $B66
      }
      $B66: {  # continuing
        %171:i32 = load %r
        %172:i32 = add %171, 1i
        store %r, %172
        next_iteration  # -> $B65
      }
    }
    %173:f32 = load %sum
    %174:ptr<uniform, f32, read> = access %x_7, 0u, 2i, 0u
    %175:f32 = load %174
    %176:bool = eq %173, %175
    if %176 [t: $B69, f: $B70] {  # if_17
      $B69: {  # true
        %177:ptr<uniform, i32, read> = access %x_10, 0u, 0i, 0u
        %178:i32 = load %177
        %179:f32 = convert %178
        %180:f32 = let %179
        %181:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
        %182:i32 = load %181
        %183:f32 = convert %182
        %184:f32 = let %183
        %185:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
        %186:i32 = load %185
        %187:f32 = convert %186
        %188:f32 = let %187
        %189:ptr<uniform, i32, read> = access %x_10, 0u, 0i, 0u
        %190:i32 = load %189
        %191:f32 = convert %190
        %192:vec4<f32> = construct %180, %184, %188, %191
        store %x_GLF_color, %192
        exit_if  # if_17
      }
      $B70: {  # false
        %193:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
        %194:i32 = load %193
        %195:f32 = convert %194
        %196:vec4<f32> = construct %195
        store %x_GLF_color, %196
        exit_if  # if_17
      }
    }
    ret
  }
}
%tint_symbol = @fragment func():main_out {
  $B71: {
    %198:void = call %main_1
    %199:vec4<f32> = load %x_GLF_color
    %200:main_out = construct %199
    ret %200
  }
}

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.  *
********************************************************************
