[cts.https.html?q=webgpu:shader,execution,expression,call,builtin,arrayLength:binding_subregion:*]
  [:]


[cts.https.html?q=webgpu:shader,execution,expression,call,builtin,arrayLength:multiple_elements:*]
  implementation-status:
    if os == "mac": backlog
  [:buffer_size=1004;type="ElemStruct";stride=4]

  [:buffer_size=1004;type="ElemStruct_ExplicitPadding";stride=32]

  [:buffer_size=1004;type="ElemStruct_ImplicitPadding";stride=16]

  [:buffer_size=1004;type="array%3Cf16,4%3E";stride=8]

  [:buffer_size=1004;type="array%3Cf32,4%3E";stride=16]

  [:buffer_size=1004;type="array%3Ci32,4%3E";stride=16]

  [:buffer_size=1004;type="array%3Cu32,4%3E";stride=16]

  [:buffer_size=1004;type="atomic%3Ci32%3E";stride=4]

  [:buffer_size=1004;type="atomic%3Cu32%3E";stride=4]

  [:buffer_size=1004;type="f16";stride=2]

  [:buffer_size=1004;type="f32";stride=4]

  [:buffer_size=1004;type="i32";stride=4]

  [:buffer_size=1004;type="mat2x2%3Cf16%3E";stride=8]

  [:buffer_size=1004;type="mat2x2%3Cf32%3E";stride=16]

  [:buffer_size=1004;type="mat2x3%3Cf16%3E";stride=16]

  [:buffer_size=1004;type="mat2x3%3Cf32%3E";stride=32]

  [:buffer_size=1004;type="mat2x4%3Cf16%3E";stride=16]

  [:buffer_size=1004;type="mat2x4%3Cf32%3E";stride=32]

  [:buffer_size=1004;type="mat3x2%3Cf16%3E";stride=12]

  [:buffer_size=1004;type="mat3x2%3Cf32%3E";stride=24]

  [:buffer_size=1004;type="mat3x3%3Cf16%3E";stride=24]

  [:buffer_size=1004;type="mat3x3%3Cf32%3E";stride=48]

  [:buffer_size=1004;type="mat3x4%3Cf16%3E";stride=24]

  [:buffer_size=1004;type="mat3x4%3Cf32%3E";stride=48]

  [:buffer_size=1004;type="mat4x2%3Cf16%3E";stride=16]

  [:buffer_size=1004;type="mat4x2%3Cf32%3E";stride=32]

  [:buffer_size=1004;type="mat4x3%3Cf16%3E";stride=32]

  [:buffer_size=1004;type="mat4x3%3Cf32%3E";stride=64]

  [:buffer_size=1004;type="mat4x4%3Cf16%3E";stride=32]

  [:buffer_size=1004;type="mat4x4%3Cf32%3E";stride=64]

  [:buffer_size=1004;type="u32";stride=4]

  [:buffer_size=1004;type="vec2%3Cf16%3E";stride=4]

  [:buffer_size=1004;type="vec2%3Cf32%3E";stride=8]

  [:buffer_size=1004;type="vec2%3Ci32%3E";stride=8]

  [:buffer_size=1004;type="vec2%3Cu32%3E";stride=8]

  [:buffer_size=1004;type="vec3%3Cf16%3E";stride=8]

  [:buffer_size=1004;type="vec3%3Cf32%3E";stride=16]
    expected:
      if os == "mac": FAIL

  [:buffer_size=1004;type="vec3%3Ci32%3E";stride=16]
    expected:
      if os == "mac": FAIL

  [:buffer_size=1004;type="vec3%3Cu32%3E";stride=16]
    expected:
      if os == "mac": FAIL

  [:buffer_size=1004;type="vec4%3Cf16%3E";stride=8]

  [:buffer_size=1004;type="vec4%3Cf32%3E";stride=16]

  [:buffer_size=1004;type="vec4%3Ci32%3E";stride=16]

  [:buffer_size=1004;type="vec4%3Cu32%3E";stride=16]

  [:buffer_size=1048576;type="ElemStruct";stride=4]

  [:buffer_size=1048576;type="ElemStruct_ExplicitPadding";stride=32]

  [:buffer_size=1048576;type="ElemStruct_ImplicitPadding";stride=16]

  [:buffer_size=1048576;type="array%3Cf16,4%3E";stride=8]

  [:buffer_size=1048576;type="array%3Cf32,4%3E";stride=16]

  [:buffer_size=1048576;type="array%3Ci32,4%3E";stride=16]

  [:buffer_size=1048576;type="array%3Cu32,4%3E";stride=16]

  [:buffer_size=1048576;type="atomic%3Ci32%3E";stride=4]

  [:buffer_size=1048576;type="atomic%3Cu32%3E";stride=4]

  [:buffer_size=1048576;type="f16";stride=2]

  [:buffer_size=1048576;type="f32";stride=4]

  [:buffer_size=1048576;type="i32";stride=4]

  [:buffer_size=1048576;type="mat2x2%3Cf16%3E";stride=8]

  [:buffer_size=1048576;type="mat2x2%3Cf32%3E";stride=16]

  [:buffer_size=1048576;type="mat2x3%3Cf16%3E";stride=16]

  [:buffer_size=1048576;type="mat2x3%3Cf32%3E";stride=32]

  [:buffer_size=1048576;type="mat2x4%3Cf16%3E";stride=16]

  [:buffer_size=1048576;type="mat2x4%3Cf32%3E";stride=32]

  [:buffer_size=1048576;type="mat3x2%3Cf16%3E";stride=12]

  [:buffer_size=1048576;type="mat3x2%3Cf32%3E";stride=24]

  [:buffer_size=1048576;type="mat3x3%3Cf16%3E";stride=24]

  [:buffer_size=1048576;type="mat3x3%3Cf32%3E";stride=48]

  [:buffer_size=1048576;type="mat3x4%3Cf16%3E";stride=24]

  [:buffer_size=1048576;type="mat3x4%3Cf32%3E";stride=48]

  [:buffer_size=1048576;type="mat4x2%3Cf16%3E";stride=16]

  [:buffer_size=1048576;type="mat4x2%3Cf32%3E";stride=32]

  [:buffer_size=1048576;type="mat4x3%3Cf16%3E";stride=32]

  [:buffer_size=1048576;type="mat4x3%3Cf32%3E";stride=64]

  [:buffer_size=1048576;type="mat4x4%3Cf16%3E";stride=32]

  [:buffer_size=1048576;type="mat4x4%3Cf32%3E";stride=64]

  [:buffer_size=1048576;type="u32";stride=4]

  [:buffer_size=1048576;type="vec2%3Cf16%3E";stride=4]

  [:buffer_size=1048576;type="vec2%3Cf32%3E";stride=8]

  [:buffer_size=1048576;type="vec2%3Ci32%3E";stride=8]

  [:buffer_size=1048576;type="vec2%3Cu32%3E";stride=8]

  [:buffer_size=1048576;type="vec3%3Cf16%3E";stride=8]

  [:buffer_size=1048576;type="vec3%3Cf32%3E";stride=16]

  [:buffer_size=1048576;type="vec3%3Ci32%3E";stride=16]

  [:buffer_size=1048576;type="vec3%3Cu32%3E";stride=16]

  [:buffer_size=1048576;type="vec4%3Cf16%3E";stride=8]

  [:buffer_size=1048576;type="vec4%3Cf32%3E";stride=16]

  [:buffer_size=1048576;type="vec4%3Ci32%3E";stride=16]

  [:buffer_size=1048576;type="vec4%3Cu32%3E";stride=16]

  [:buffer_size=640;type="ElemStruct";stride=4]

  [:buffer_size=640;type="ElemStruct_ExplicitPadding";stride=32]

  [:buffer_size=640;type="ElemStruct_ImplicitPadding";stride=16]

  [:buffer_size=640;type="array%3Cf16,4%3E";stride=8]

  [:buffer_size=640;type="array%3Cf32,4%3E";stride=16]

  [:buffer_size=640;type="array%3Ci32,4%3E";stride=16]

  [:buffer_size=640;type="array%3Cu32,4%3E";stride=16]

  [:buffer_size=640;type="atomic%3Ci32%3E";stride=4]

  [:buffer_size=640;type="atomic%3Cu32%3E";stride=4]

  [:buffer_size=640;type="f16";stride=2]

  [:buffer_size=640;type="f32";stride=4]

  [:buffer_size=640;type="i32";stride=4]

  [:buffer_size=640;type="mat2x2%3Cf16%3E";stride=8]

  [:buffer_size=640;type="mat2x2%3Cf32%3E";stride=16]

  [:buffer_size=640;type="mat2x3%3Cf16%3E";stride=16]

  [:buffer_size=640;type="mat2x3%3Cf32%3E";stride=32]

  [:buffer_size=640;type="mat2x4%3Cf16%3E";stride=16]

  [:buffer_size=640;type="mat2x4%3Cf32%3E";stride=32]

  [:buffer_size=640;type="mat3x2%3Cf16%3E";stride=12]

  [:buffer_size=640;type="mat3x2%3Cf32%3E";stride=24]

  [:buffer_size=640;type="mat3x3%3Cf16%3E";stride=24]

  [:buffer_size=640;type="mat3x3%3Cf32%3E";stride=48]

  [:buffer_size=640;type="mat3x4%3Cf16%3E";stride=24]

  [:buffer_size=640;type="mat3x4%3Cf32%3E";stride=48]

  [:buffer_size=640;type="mat4x2%3Cf16%3E";stride=16]

  [:buffer_size=640;type="mat4x2%3Cf32%3E";stride=32]

  [:buffer_size=640;type="mat4x3%3Cf16%3E";stride=32]

  [:buffer_size=640;type="mat4x3%3Cf32%3E";stride=64]

  [:buffer_size=640;type="mat4x4%3Cf16%3E";stride=32]

  [:buffer_size=640;type="mat4x4%3Cf32%3E";stride=64]

  [:buffer_size=640;type="u32";stride=4]

  [:buffer_size=640;type="vec2%3Cf16%3E";stride=4]

  [:buffer_size=640;type="vec2%3Cf32%3E";stride=8]

  [:buffer_size=640;type="vec2%3Ci32%3E";stride=8]

  [:buffer_size=640;type="vec2%3Cu32%3E";stride=8]

  [:buffer_size=640;type="vec3%3Cf16%3E";stride=8]

  [:buffer_size=640;type="vec3%3Cf32%3E";stride=16]

  [:buffer_size=640;type="vec3%3Ci32%3E";stride=16]

  [:buffer_size=640;type="vec3%3Cu32%3E";stride=16]

  [:buffer_size=640;type="vec4%3Cf16%3E";stride=8]

  [:buffer_size=640;type="vec4%3Cf32%3E";stride=16]

  [:buffer_size=640;type="vec4%3Ci32%3E";stride=16]

  [:buffer_size=640;type="vec4%3Cu32%3E";stride=16]


[cts.https.html?q=webgpu:shader,execution,expression,call,builtin,arrayLength:read_only:*]
  [:]


[cts.https.html?q=webgpu:shader,execution,expression,call,builtin,arrayLength:single_element:*]
  [:type="ElemStruct";stride=4]

  [:type="ElemStruct_ExplicitPadding";stride=32]

  [:type="ElemStruct_ImplicitPadding";stride=16]

  [:type="array%3Cf16,4%3E";stride=8]

  [:type="array%3Cf32,4%3E";stride=16]

  [:type="array%3Ci32,4%3E";stride=16]

  [:type="array%3Cu32,4%3E";stride=16]

  [:type="atomic%3Ci32%3E";stride=4]

  [:type="atomic%3Cu32%3E";stride=4]

  [:type="f16";stride=2]

  [:type="f32";stride=4]

  [:type="i32";stride=4]

  [:type="mat2x2%3Cf16%3E";stride=8]

  [:type="mat2x2%3Cf32%3E";stride=16]

  [:type="mat2x3%3Cf16%3E";stride=16]

  [:type="mat2x3%3Cf32%3E";stride=32]

  [:type="mat2x4%3Cf16%3E";stride=16]

  [:type="mat2x4%3Cf32%3E";stride=32]

  [:type="mat3x2%3Cf16%3E";stride=12]

  [:type="mat3x2%3Cf32%3E";stride=24]

  [:type="mat3x3%3Cf16%3E";stride=24]

  [:type="mat3x3%3Cf32%3E";stride=48]

  [:type="mat3x4%3Cf16%3E";stride=24]

  [:type="mat3x4%3Cf32%3E";stride=48]

  [:type="mat4x2%3Cf16%3E";stride=16]

  [:type="mat4x2%3Cf32%3E";stride=32]

  [:type="mat4x3%3Cf16%3E";stride=32]

  [:type="mat4x3%3Cf32%3E";stride=64]

  [:type="mat4x4%3Cf16%3E";stride=32]

  [:type="mat4x4%3Cf32%3E";stride=64]

  [:type="u32";stride=4]

  [:type="vec2%3Cf16%3E";stride=4]

  [:type="vec2%3Cf32%3E";stride=8]

  [:type="vec2%3Ci32%3E";stride=8]

  [:type="vec2%3Cu32%3E";stride=8]

  [:type="vec3%3Cf16%3E";stride=8]

  [:type="vec3%3Cf32%3E";stride=16]

  [:type="vec3%3Ci32%3E";stride=16]

  [:type="vec3%3Cu32%3E";stride=16]

  [:type="vec4%3Cf16%3E";stride=8]

  [:type="vec4%3Cf32%3E";stride=16]

  [:type="vec4%3Ci32%3E";stride=16]

  [:type="vec4%3Cu32%3E";stride=16]


[cts.https.html?q=webgpu:shader,execution,expression,call,builtin,arrayLength:struct_member:*]
  [:member_offset=0;type="ElemStruct";stride=4]

  [:member_offset=0;type="ElemStruct_ExplicitPadding";stride=32]

  [:member_offset=0;type="ElemStruct_ImplicitPadding";stride=16]

  [:member_offset=0;type="array%3Cf16,4%3E";stride=8]

  [:member_offset=0;type="array%3Cf32,4%3E";stride=16]

  [:member_offset=0;type="array%3Ci32,4%3E";stride=16]

  [:member_offset=0;type="array%3Cu32,4%3E";stride=16]

  [:member_offset=0;type="atomic%3Ci32%3E";stride=4]

  [:member_offset=0;type="atomic%3Cu32%3E";stride=4]

  [:member_offset=0;type="f16";stride=2]

  [:member_offset=0;type="f32";stride=4]

  [:member_offset=0;type="i32";stride=4]

  [:member_offset=0;type="mat2x2%3Cf16%3E";stride=8]

  [:member_offset=0;type="mat2x2%3Cf32%3E";stride=16]

  [:member_offset=0;type="mat2x3%3Cf16%3E";stride=16]

  [:member_offset=0;type="mat2x3%3Cf32%3E";stride=32]

  [:member_offset=0;type="mat2x4%3Cf16%3E";stride=16]

  [:member_offset=0;type="mat2x4%3Cf32%3E";stride=32]

  [:member_offset=0;type="mat3x2%3Cf16%3E";stride=12]

  [:member_offset=0;type="mat3x2%3Cf32%3E";stride=24]

  [:member_offset=0;type="mat3x3%3Cf16%3E";stride=24]

  [:member_offset=0;type="mat3x3%3Cf32%3E";stride=48]

  [:member_offset=0;type="mat3x4%3Cf16%3E";stride=24]

  [:member_offset=0;type="mat3x4%3Cf32%3E";stride=48]

  [:member_offset=0;type="mat4x2%3Cf16%3E";stride=16]

  [:member_offset=0;type="mat4x2%3Cf32%3E";stride=32]

  [:member_offset=0;type="mat4x3%3Cf16%3E";stride=32]

  [:member_offset=0;type="mat4x3%3Cf32%3E";stride=64]

  [:member_offset=0;type="mat4x4%3Cf16%3E";stride=32]

  [:member_offset=0;type="mat4x4%3Cf32%3E";stride=64]

  [:member_offset=0;type="u32";stride=4]

  [:member_offset=0;type="vec2%3Cf16%3E";stride=4]

  [:member_offset=0;type="vec2%3Cf32%3E";stride=8]

  [:member_offset=0;type="vec2%3Ci32%3E";stride=8]

  [:member_offset=0;type="vec2%3Cu32%3E";stride=8]

  [:member_offset=0;type="vec3%3Cf16%3E";stride=8]

  [:member_offset=0;type="vec3%3Cf32%3E";stride=16]

  [:member_offset=0;type="vec3%3Ci32%3E";stride=16]

  [:member_offset=0;type="vec3%3Cu32%3E";stride=16]

  [:member_offset=0;type="vec4%3Cf16%3E";stride=8]

  [:member_offset=0;type="vec4%3Cf32%3E";stride=16]

  [:member_offset=0;type="vec4%3Ci32%3E";stride=16]

  [:member_offset=0;type="vec4%3Cu32%3E";stride=16]

  [:member_offset=20;type="ElemStruct";stride=4]

  [:member_offset=20;type="ElemStruct_ExplicitPadding";stride=32]

  [:member_offset=20;type="ElemStruct_ImplicitPadding";stride=16]

  [:member_offset=20;type="array%3Cf16,4%3E";stride=8]

  [:member_offset=20;type="array%3Cf32,4%3E";stride=16]

  [:member_offset=20;type="array%3Ci32,4%3E";stride=16]

  [:member_offset=20;type="array%3Cu32,4%3E";stride=16]

  [:member_offset=20;type="atomic%3Ci32%3E";stride=4]

  [:member_offset=20;type="atomic%3Cu32%3E";stride=4]

  [:member_offset=20;type="f16";stride=2]

  [:member_offset=20;type="f32";stride=4]

  [:member_offset=20;type="i32";stride=4]

  [:member_offset=20;type="mat2x2%3Cf16%3E";stride=8]

  [:member_offset=20;type="mat2x2%3Cf32%3E";stride=16]

  [:member_offset=20;type="mat2x3%3Cf16%3E";stride=16]

  [:member_offset=20;type="mat2x3%3Cf32%3E";stride=32]

  [:member_offset=20;type="mat2x4%3Cf16%3E";stride=16]

  [:member_offset=20;type="mat2x4%3Cf32%3E";stride=32]

  [:member_offset=20;type="mat3x2%3Cf16%3E";stride=12]

  [:member_offset=20;type="mat3x2%3Cf32%3E";stride=24]

  [:member_offset=20;type="mat3x3%3Cf16%3E";stride=24]

  [:member_offset=20;type="mat3x3%3Cf32%3E";stride=48]

  [:member_offset=20;type="mat3x4%3Cf16%3E";stride=24]

  [:member_offset=20;type="mat3x4%3Cf32%3E";stride=48]

  [:member_offset=20;type="mat4x2%3Cf16%3E";stride=16]

  [:member_offset=20;type="mat4x2%3Cf32%3E";stride=32]

  [:member_offset=20;type="mat4x3%3Cf16%3E";stride=32]

  [:member_offset=20;type="mat4x3%3Cf32%3E";stride=64]

  [:member_offset=20;type="mat4x4%3Cf16%3E";stride=32]

  [:member_offset=20;type="mat4x4%3Cf32%3E";stride=64]

  [:member_offset=20;type="u32";stride=4]

  [:member_offset=20;type="vec2%3Cf16%3E";stride=4]

  [:member_offset=20;type="vec2%3Cf32%3E";stride=8]

  [:member_offset=20;type="vec2%3Ci32%3E";stride=8]

  [:member_offset=20;type="vec2%3Cu32%3E";stride=8]

  [:member_offset=20;type="vec3%3Cf16%3E";stride=8]

  [:member_offset=20;type="vec3%3Cf32%3E";stride=16]

  [:member_offset=20;type="vec3%3Ci32%3E";stride=16]

  [:member_offset=20;type="vec3%3Cu32%3E";stride=16]

  [:member_offset=20;type="vec4%3Cf16%3E";stride=8]

  [:member_offset=20;type="vec4%3Cf32%3E";stride=16]

  [:member_offset=20;type="vec4%3Ci32%3E";stride=16]

  [:member_offset=20;type="vec4%3Cu32%3E";stride=16]

  [:member_offset=4;type="ElemStruct";stride=4]

  [:member_offset=4;type="ElemStruct_ExplicitPadding";stride=32]

  [:member_offset=4;type="ElemStruct_ImplicitPadding";stride=16]

  [:member_offset=4;type="array%3Cf16,4%3E";stride=8]

  [:member_offset=4;type="array%3Cf32,4%3E";stride=16]

  [:member_offset=4;type="array%3Ci32,4%3E";stride=16]

  [:member_offset=4;type="array%3Cu32,4%3E";stride=16]

  [:member_offset=4;type="atomic%3Ci32%3E";stride=4]

  [:member_offset=4;type="atomic%3Cu32%3E";stride=4]

  [:member_offset=4;type="f16";stride=2]

  [:member_offset=4;type="f32";stride=4]

  [:member_offset=4;type="i32";stride=4]

  [:member_offset=4;type="mat2x2%3Cf16%3E";stride=8]

  [:member_offset=4;type="mat2x2%3Cf32%3E";stride=16]

  [:member_offset=4;type="mat2x3%3Cf16%3E";stride=16]

  [:member_offset=4;type="mat2x3%3Cf32%3E";stride=32]

  [:member_offset=4;type="mat2x4%3Cf16%3E";stride=16]

  [:member_offset=4;type="mat2x4%3Cf32%3E";stride=32]

  [:member_offset=4;type="mat3x2%3Cf16%3E";stride=12]

  [:member_offset=4;type="mat3x2%3Cf32%3E";stride=24]

  [:member_offset=4;type="mat3x3%3Cf16%3E";stride=24]

  [:member_offset=4;type="mat3x3%3Cf32%3E";stride=48]

  [:member_offset=4;type="mat3x4%3Cf16%3E";stride=24]

  [:member_offset=4;type="mat3x4%3Cf32%3E";stride=48]

  [:member_offset=4;type="mat4x2%3Cf16%3E";stride=16]

  [:member_offset=4;type="mat4x2%3Cf32%3E";stride=32]

  [:member_offset=4;type="mat4x3%3Cf16%3E";stride=32]

  [:member_offset=4;type="mat4x3%3Cf32%3E";stride=64]

  [:member_offset=4;type="mat4x4%3Cf16%3E";stride=32]

  [:member_offset=4;type="mat4x4%3Cf32%3E";stride=64]

  [:member_offset=4;type="u32";stride=4]

  [:member_offset=4;type="vec2%3Cf16%3E";stride=4]

  [:member_offset=4;type="vec2%3Cf32%3E";stride=8]

  [:member_offset=4;type="vec2%3Ci32%3E";stride=8]

  [:member_offset=4;type="vec2%3Cu32%3E";stride=8]

  [:member_offset=4;type="vec3%3Cf16%3E";stride=8]

  [:member_offset=4;type="vec3%3Cf32%3E";stride=16]

  [:member_offset=4;type="vec3%3Ci32%3E";stride=16]

  [:member_offset=4;type="vec3%3Cu32%3E";stride=16]

  [:member_offset=4;type="vec4%3Cf16%3E";stride=8]

  [:member_offset=4;type="vec4%3Cf32%3E";stride=16]

  [:member_offset=4;type="vec4%3Ci32%3E";stride=16]

  [:member_offset=4;type="vec4%3Cu32%3E";stride=16]
