[cts.https.html?q=webgpu:shader,validation,types,pointer:access_mode:*]
  implementation-status: backlog
  [:aspace="function";access="read";comma=""]

  [:aspace="function";access="read";comma=","]

  [:aspace="function";access="read_write";comma=""]

  [:aspace="function";access="read_write";comma=","]

  [:aspace="function";access="write";comma=""]

  [:aspace="function";access="write";comma=","]

  [:aspace="private";access="read";comma=""]

  [:aspace="private";access="read";comma=","]

  [:aspace="private";access="read_write";comma=""]

  [:aspace="private";access="read_write";comma=","]

  [:aspace="private";access="write";comma=""]

  [:aspace="private";access="write";comma=","]

  [:aspace="storage";access="read";comma=""]

  [:aspace="storage";access="read";comma=","]

  [:aspace="storage";access="read_write";comma=""]

  [:aspace="storage";access="read_write";comma=","]

  [:aspace="storage";access="write";comma=""]
    expected: FAIL

  [:aspace="storage";access="write";comma=","]
    expected: FAIL

  [:aspace="uniform";access="read";comma=""]

  [:aspace="uniform";access="read";comma=","]

  [:aspace="uniform";access="read_write";comma=""]

  [:aspace="uniform";access="read_write";comma=","]

  [:aspace="uniform";access="write";comma=""]

  [:aspace="uniform";access="write";comma=","]

  [:aspace="workgroup";access="read";comma=""]

  [:aspace="workgroup";access="read";comma=","]

  [:aspace="workgroup";access="read_write";comma=""]

  [:aspace="workgroup";access="read_write";comma=","]

  [:aspace="workgroup";access="write";comma=""]

  [:aspace="workgroup";access="write";comma=","]


[cts.https.html?q=webgpu:shader,validation,types,pointer:address_space:*]
  implementation-status: backlog
  [:aspace="bad_aspace";comma=""]

  [:aspace="bad_aspace";comma=","]

  [:aspace="function";comma=""]

  [:aspace="function";comma=","]
    expected: FAIL

  [:aspace="handle";comma=""]

  [:aspace="handle";comma=","]

  [:aspace="private";comma=""]

  [:aspace="private";comma=","]
    expected: FAIL

  [:aspace="storage";comma=""]

  [:aspace="storage";comma=","]

  [:aspace="uniform";comma=""]

  [:aspace="uniform";comma=","]
    expected: FAIL

  [:aspace="workgroup";comma=""]

  [:aspace="workgroup";comma=","]
    expected: FAIL


[cts.https.html?q=webgpu:shader,validation,types,pointer:let_ptr_explicit_type_matches_var:*]
  implementation-status: backlog
  [:addressSpace="function";explicitSpace=false;explicitAccess=false;accessMode="";stage="compute";ptrStoreType="i32"]

  [:addressSpace="function";explicitSpace=false;explicitAccess=false;accessMode="";stage="compute";ptrStoreType="u32"]

  [:addressSpace="function";explicitSpace=false;explicitAccess=true;accessMode="";stage="compute";ptrStoreType="i32"]

  [:addressSpace="function";explicitSpace=false;explicitAccess=true;accessMode="";stage="compute";ptrStoreType="u32"]

  [:addressSpace="function";explicitSpace=true;explicitAccess=false;accessMode="";stage="compute";ptrStoreType="i32"]
    expected: FAIL

  [:addressSpace="function";explicitSpace=true;explicitAccess=false;accessMode="";stage="compute";ptrStoreType="u32"]

  [:addressSpace="function";explicitSpace=true;explicitAccess=true;accessMode="";stage="compute";ptrStoreType="i32"]
    expected: FAIL

  [:addressSpace="function";explicitSpace=true;explicitAccess=true;accessMode="";stage="compute";ptrStoreType="u32"]

  [:addressSpace="private";explicitSpace=true;explicitAccess=false;accessMode="";stage="compute";ptrStoreType="i32"]

  [:addressSpace="private";explicitSpace=true;explicitAccess=false;accessMode="";stage="compute";ptrStoreType="u32"]

  [:addressSpace="private";explicitSpace=true;explicitAccess=true;accessMode="";stage="compute";ptrStoreType="i32"]

  [:addressSpace="private";explicitSpace=true;explicitAccess=true;accessMode="";stage="compute";ptrStoreType="u32"]

  [:addressSpace="storage";explicitSpace=true;explicitAccess=false;accessMode="";stage="compute";ptrStoreType="i32"]

  [:addressSpace="storage";explicitSpace=true;explicitAccess=false;accessMode="";stage="compute";ptrStoreType="u32"]

  [:addressSpace="storage";explicitSpace=true;explicitAccess=true;accessMode="read";stage="compute";ptrStoreType="i32"]

  [:addressSpace="storage";explicitSpace=true;explicitAccess=true;accessMode="read";stage="compute";ptrStoreType="u32"]

  [:addressSpace="storage";explicitSpace=true;explicitAccess=true;accessMode="read_write";stage="compute";ptrStoreType="i32"]

  [:addressSpace="storage";explicitSpace=true;explicitAccess=true;accessMode="read_write";stage="compute";ptrStoreType="u32"]

  [:addressSpace="uniform";explicitSpace=true;explicitAccess=false;accessMode="";stage="compute";ptrStoreType="i32"]

  [:addressSpace="uniform";explicitSpace=true;explicitAccess=false;accessMode="";stage="compute";ptrStoreType="u32"]

  [:addressSpace="uniform";explicitSpace=true;explicitAccess=true;accessMode="";stage="compute";ptrStoreType="i32"]

  [:addressSpace="uniform";explicitSpace=true;explicitAccess=true;accessMode="";stage="compute";ptrStoreType="u32"]

  [:addressSpace="workgroup";explicitSpace=true;explicitAccess=false;accessMode="";stage="compute";ptrStoreType="i32"]

  [:addressSpace="workgroup";explicitSpace=true;explicitAccess=false;accessMode="";stage="compute";ptrStoreType="u32"]

  [:addressSpace="workgroup";explicitSpace=true;explicitAccess=true;accessMode="";stage="compute";ptrStoreType="i32"]

  [:addressSpace="workgroup";explicitSpace=true;explicitAccess=true;accessMode="";stage="compute";ptrStoreType="u32"]


[cts.https.html?q=webgpu:shader,validation,types,pointer:let_ptr_reads:*]
  implementation-status: backlog
  [:addressSpace="function";explicitSpace=false;explicitAccess=false;accessMode="";stage="compute";inferPtrType=false;ptrStoreType="i32"]

  [:addressSpace="function";explicitSpace=false;explicitAccess=false;accessMode="";stage="compute";inferPtrType=true;ptrStoreType="i32"]

  [:addressSpace="function";explicitSpace=false;explicitAccess=true;accessMode="";stage="compute";inferPtrType=false;ptrStoreType="i32"]

  [:addressSpace="function";explicitSpace=false;explicitAccess=true;accessMode="";stage="compute";inferPtrType=true;ptrStoreType="i32"]

  [:addressSpace="function";explicitSpace=true;explicitAccess=false;accessMode="";stage="compute";inferPtrType=false;ptrStoreType="i32"]
    expected: FAIL

  [:addressSpace="function";explicitSpace=true;explicitAccess=false;accessMode="";stage="compute";inferPtrType=true;ptrStoreType="i32"]
    expected: FAIL

  [:addressSpace="function";explicitSpace=true;explicitAccess=true;accessMode="";stage="compute";inferPtrType=false;ptrStoreType="i32"]
    expected: FAIL

  [:addressSpace="function";explicitSpace=true;explicitAccess=true;accessMode="";stage="compute";inferPtrType=true;ptrStoreType="i32"]
    expected: FAIL

  [:addressSpace="private";explicitSpace=true;explicitAccess=false;accessMode="";stage="compute";inferPtrType=false;ptrStoreType="i32"]

  [:addressSpace="private";explicitSpace=true;explicitAccess=false;accessMode="";stage="compute";inferPtrType=true;ptrStoreType="i32"]

  [:addressSpace="private";explicitSpace=true;explicitAccess=true;accessMode="";stage="compute";inferPtrType=false;ptrStoreType="i32"]

  [:addressSpace="private";explicitSpace=true;explicitAccess=true;accessMode="";stage="compute";inferPtrType=true;ptrStoreType="i32"]

  [:addressSpace="storage";explicitSpace=true;explicitAccess=false;accessMode="";stage="compute";inferPtrType=false;ptrStoreType="i32"]

  [:addressSpace="storage";explicitSpace=true;explicitAccess=false;accessMode="";stage="compute";inferPtrType=true;ptrStoreType="i32"]

  [:addressSpace="storage";explicitSpace=true;explicitAccess=true;accessMode="read";stage="compute";inferPtrType=false;ptrStoreType="i32"]

  [:addressSpace="storage";explicitSpace=true;explicitAccess=true;accessMode="read";stage="compute";inferPtrType=true;ptrStoreType="i32"]

  [:addressSpace="storage";explicitSpace=true;explicitAccess=true;accessMode="read_write";stage="compute";inferPtrType=false;ptrStoreType="i32"]

  [:addressSpace="storage";explicitSpace=true;explicitAccess=true;accessMode="read_write";stage="compute";inferPtrType=true;ptrStoreType="i32"]

  [:addressSpace="uniform";explicitSpace=true;explicitAccess=false;accessMode="";stage="compute";inferPtrType=false;ptrStoreType="i32"]

  [:addressSpace="uniform";explicitSpace=true;explicitAccess=false;accessMode="";stage="compute";inferPtrType=true;ptrStoreType="i32"]

  [:addressSpace="uniform";explicitSpace=true;explicitAccess=true;accessMode="";stage="compute";inferPtrType=false;ptrStoreType="i32"]

  [:addressSpace="uniform";explicitSpace=true;explicitAccess=true;accessMode="";stage="compute";inferPtrType=true;ptrStoreType="i32"]

  [:addressSpace="workgroup";explicitSpace=true;explicitAccess=false;accessMode="";stage="compute";inferPtrType=false;ptrStoreType="i32"]

  [:addressSpace="workgroup";explicitSpace=true;explicitAccess=false;accessMode="";stage="compute";inferPtrType=true;ptrStoreType="i32"]

  [:addressSpace="workgroup";explicitSpace=true;explicitAccess=true;accessMode="";stage="compute";inferPtrType=false;ptrStoreType="i32"]

  [:addressSpace="workgroup";explicitSpace=true;explicitAccess=true;accessMode="";stage="compute";inferPtrType=true;ptrStoreType="i32"]


[cts.https.html?q=webgpu:shader,validation,types,pointer:let_ptr_writes:*]
  implementation-status: backlog
  [:addressSpace="function";explicitSpace=false;explicitAccess=false;accessMode="";stage="compute";inferPtrType=false;ptrStoreType="i32"]

  [:addressSpace="function";explicitSpace=false;explicitAccess=false;accessMode="";stage="compute";inferPtrType=true;ptrStoreType="i32"]

  [:addressSpace="function";explicitSpace=false;explicitAccess=true;accessMode="";stage="compute";inferPtrType=false;ptrStoreType="i32"]

  [:addressSpace="function";explicitSpace=false;explicitAccess=true;accessMode="";stage="compute";inferPtrType=true;ptrStoreType="i32"]

  [:addressSpace="function";explicitSpace=true;explicitAccess=false;accessMode="";stage="compute";inferPtrType=false;ptrStoreType="i32"]
    expected: FAIL

  [:addressSpace="function";explicitSpace=true;explicitAccess=false;accessMode="";stage="compute";inferPtrType=true;ptrStoreType="i32"]
    expected: FAIL

  [:addressSpace="function";explicitSpace=true;explicitAccess=true;accessMode="";stage="compute";inferPtrType=false;ptrStoreType="i32"]
    expected: FAIL

  [:addressSpace="function";explicitSpace=true;explicitAccess=true;accessMode="";stage="compute";inferPtrType=true;ptrStoreType="i32"]
    expected: FAIL

  [:addressSpace="private";explicitSpace=true;explicitAccess=false;accessMode="";stage="compute";inferPtrType=false;ptrStoreType="i32"]

  [:addressSpace="private";explicitSpace=true;explicitAccess=false;accessMode="";stage="compute";inferPtrType=true;ptrStoreType="i32"]

  [:addressSpace="private";explicitSpace=true;explicitAccess=true;accessMode="";stage="compute";inferPtrType=false;ptrStoreType="i32"]

  [:addressSpace="private";explicitSpace=true;explicitAccess=true;accessMode="";stage="compute";inferPtrType=true;ptrStoreType="i32"]

  [:addressSpace="storage";explicitSpace=true;explicitAccess=false;accessMode="";stage="compute";inferPtrType=false;ptrStoreType="i32"]

  [:addressSpace="storage";explicitSpace=true;explicitAccess=false;accessMode="";stage="compute";inferPtrType=true;ptrStoreType="i32"]

  [:addressSpace="storage";explicitSpace=true;explicitAccess=true;accessMode="read";stage="compute";inferPtrType=false;ptrStoreType="i32"]

  [:addressSpace="storage";explicitSpace=true;explicitAccess=true;accessMode="read";stage="compute";inferPtrType=true;ptrStoreType="i32"]

  [:addressSpace="storage";explicitSpace=true;explicitAccess=true;accessMode="read_write";stage="compute";inferPtrType=false;ptrStoreType="i32"]

  [:addressSpace="storage";explicitSpace=true;explicitAccess=true;accessMode="read_write";stage="compute";inferPtrType=true;ptrStoreType="i32"]

  [:addressSpace="uniform";explicitSpace=true;explicitAccess=false;accessMode="";stage="compute";inferPtrType=false;ptrStoreType="i32"]

  [:addressSpace="uniform";explicitSpace=true;explicitAccess=false;accessMode="";stage="compute";inferPtrType=true;ptrStoreType="i32"]

  [:addressSpace="uniform";explicitSpace=true;explicitAccess=true;accessMode="";stage="compute";inferPtrType=false;ptrStoreType="i32"]

  [:addressSpace="uniform";explicitSpace=true;explicitAccess=true;accessMode="";stage="compute";inferPtrType=true;ptrStoreType="i32"]

  [:addressSpace="workgroup";explicitSpace=true;explicitAccess=false;accessMode="";stage="compute";inferPtrType=false;ptrStoreType="i32"]

  [:addressSpace="workgroup";explicitSpace=true;explicitAccess=false;accessMode="";stage="compute";inferPtrType=true;ptrStoreType="i32"]

  [:addressSpace="workgroup";explicitSpace=true;explicitAccess=true;accessMode="";stage="compute";inferPtrType=false;ptrStoreType="i32"]

  [:addressSpace="workgroup";explicitSpace=true;explicitAccess=true;accessMode="";stage="compute";inferPtrType=true;ptrStoreType="i32"]


[cts.https.html?q=webgpu:shader,validation,types,pointer:missing_type:*]
  [:aspace="function";comma=""]

  [:aspace="function";comma=","]

  [:aspace="private";comma=""]

  [:aspace="private";comma=","]

  [:aspace="storage";comma=""]

  [:aspace="storage";comma=","]

  [:aspace="uniform";comma=""]

  [:aspace="uniform";comma=","]

  [:aspace="workgroup";comma=""]

  [:aspace="workgroup";comma=","]


[cts.https.html?q=webgpu:shader,validation,types,pointer:ptr_address_space_never_uses_access_mode:*]
  [:addressSpace="function";accessMode="read"]

  [:addressSpace="function";accessMode="read_write"]

  [:addressSpace="function";accessMode="write"]

  [:addressSpace="handle";accessMode="read"]

  [:addressSpace="handle";accessMode="read_write"]

  [:addressSpace="handle";accessMode="write"]

  [:addressSpace="private";accessMode="read"]

  [:addressSpace="private";accessMode="read_write"]

  [:addressSpace="private";accessMode="write"]

  [:addressSpace="uniform";accessMode="read"]

  [:addressSpace="uniform";accessMode="read_write"]

  [:addressSpace="uniform";accessMode="write"]

  [:addressSpace="workgroup";accessMode="read"]

  [:addressSpace="workgroup";accessMode="read_write"]

  [:addressSpace="workgroup";accessMode="write"]


[cts.https.html?q=webgpu:shader,validation,types,pointer:ptr_bad_store_type:*]
  [:storeType="1"]

  [:storeType="clamp"]

  [:storeType="undeclared"]


[cts.https.html?q=webgpu:shader,validation,types,pointer:ptr_handle_space_invalid:*]
  [:]


[cts.https.html?q=webgpu:shader,validation,types,pointer:ptr_not_instantiable:*]
  implementation-status: backlog
  [:case="RTArrayNotLast"]

  [:case="functionAtomic"]
    expected: FAIL

  [:case="functionRTArray"]

  [:case="nestedRTArray"]

  [:case="privateAtomic"]
    expected: FAIL

  [:case="privateRTArray"]

  [:case="ptr"]

  [:case="uniformAtomic"]
    expected: FAIL

  [:case="uniformRTArray"]

  [:case="workgroupRTArray"]


[cts.https.html?q=webgpu:shader,validation,types,pointer:type:*]
  [:case="alias"]

  [:case="array_override_u32"]

  [:case="array_runtime_S"]

  [:case="array_runtime_atomic_u32"]

  [:case="array_runtime_u32"]

  [:case="array_sized_S"]

  [:case="array_sized_u32"]

  [:case="array_sized_vec4f"]

  [:case="atomic_i32"]

  [:case="atomic_u32"]

  [:case="bool"]

  [:case="f16"]

  [:case="f32"]

  [:case="i32"]

  [:case="mat2x2f"]

  [:case="mat3x4h"]

  [:case="ptr_function_u32"]

  [:case="ptr_workgroup_bool"]

  [:case="reference"]

  [:case="sampler"]

  [:case="struct_S"]

  [:case="struct_T"]

  [:case="texture_2d"]

  [:case="u32"]

  [:case="vec2_bool"]

  [:case="vec2u"]

  [:case="vec3h"]

  [:case="vec3i"]

  [:case="vec4f"]
