[cts.https.html?q=webgpu:shader,validation,expression,call,builtin,atomics:atomic_parameterization:*]
  implementation-status: backlog
  [:op="add"]
    expected: FAIL

  [:op="and"]
    expected: FAIL

  [:op="compareexchangeweak"]
    expected: FAIL

  [:op="exchange"]
    expected: FAIL

  [:op="load"]
    expected: FAIL

  [:op="max"]
    expected: FAIL

  [:op="min"]
    expected: FAIL

  [:op="or"]
    expected: FAIL

  [:op="store"]
    expected: FAIL

  [:op="sub"]
    expected: FAIL

  [:op="xor"]
    expected: FAIL


[cts.https.html?q=webgpu:shader,validation,expression,call,builtin,atomics:data_parameters:*]
  implementation-status: backlog
  [:op="atomicAdd"]
    expected: FAIL

  [:op="atomicAnd"]
    expected: FAIL

  [:op="atomicCompareExchangeWeak1"]
    expected: FAIL

  [:op="atomicCompareExchangeWeak2"]
    expected: FAIL

  [:op="atomicExchange"]
    expected: FAIL

  [:op="atomicMax"]
    expected: FAIL

  [:op="atomicMin"]
    expected: FAIL

  [:op="atomicOr"]
    expected: FAIL

  [:op="atomicStore"]
    expected: FAIL

  [:op="atomicSub"]
    expected: FAIL

  [:op="atomicXor"]
    expected: FAIL


[cts.https.html?q=webgpu:shader,validation,expression,call,builtin,atomics:non_atomic:*]
  implementation-status: backlog
  [:op="add";addrspace="storage";type="i32";atomic=false]

  [:op="add";addrspace="storage";type="i32";atomic=true]

  [:op="add";addrspace="storage";type="u32";atomic=false]

  [:op="add";addrspace="storage";type="u32";atomic=true]
    expected: FAIL

  [:op="add";addrspace="workgroup";type="i32";atomic=false]

  [:op="add";addrspace="workgroup";type="i32";atomic=true]

  [:op="add";addrspace="workgroup";type="u32";atomic=false]

  [:op="add";addrspace="workgroup";type="u32";atomic=true]
    expected: FAIL

  [:op="and";addrspace="storage";type="i32";atomic=false]

  [:op="and";addrspace="storage";type="i32";atomic=true]

  [:op="and";addrspace="storage";type="u32";atomic=false]

  [:op="and";addrspace="storage";type="u32";atomic=true]
    expected: FAIL

  [:op="and";addrspace="workgroup";type="i32";atomic=false]

  [:op="and";addrspace="workgroup";type="i32";atomic=true]

  [:op="and";addrspace="workgroup";type="u32";atomic=false]

  [:op="and";addrspace="workgroup";type="u32";atomic=true]
    expected: FAIL

  [:op="compareexchangeweak";addrspace="storage";type="i32";atomic=false]

  [:op="compareexchangeweak";addrspace="storage";type="i32";atomic=true]

  [:op="compareexchangeweak";addrspace="storage";type="u32";atomic=false]

  [:op="compareexchangeweak";addrspace="storage";type="u32";atomic=true]
    expected: FAIL

  [:op="compareexchangeweak";addrspace="workgroup";type="i32";atomic=false]

  [:op="compareexchangeweak";addrspace="workgroup";type="i32";atomic=true]

  [:op="compareexchangeweak";addrspace="workgroup";type="u32";atomic=false]

  [:op="compareexchangeweak";addrspace="workgroup";type="u32";atomic=true]
    expected: FAIL

  [:op="exchange";addrspace="storage";type="i32";atomic=false]

  [:op="exchange";addrspace="storage";type="i32";atomic=true]

  [:op="exchange";addrspace="storage";type="u32";atomic=false]

  [:op="exchange";addrspace="storage";type="u32";atomic=true]
    expected: FAIL

  [:op="exchange";addrspace="workgroup";type="i32";atomic=false]

  [:op="exchange";addrspace="workgroup";type="i32";atomic=true]

  [:op="exchange";addrspace="workgroup";type="u32";atomic=false]

  [:op="exchange";addrspace="workgroup";type="u32";atomic=true]
    expected: FAIL

  [:op="load";addrspace="storage";type="i32";atomic=false]

  [:op="load";addrspace="storage";type="i32";atomic=true]

  [:op="load";addrspace="storage";type="u32";atomic=false]

  [:op="load";addrspace="storage";type="u32";atomic=true]

  [:op="load";addrspace="workgroup";type="i32";atomic=false]

  [:op="load";addrspace="workgroup";type="i32";atomic=true]

  [:op="load";addrspace="workgroup";type="u32";atomic=false]

  [:op="load";addrspace="workgroup";type="u32";atomic=true]

  [:op="max";addrspace="storage";type="i32";atomic=false]

  [:op="max";addrspace="storage";type="i32";atomic=true]

  [:op="max";addrspace="storage";type="u32";atomic=false]

  [:op="max";addrspace="storage";type="u32";atomic=true]
    expected: FAIL

  [:op="max";addrspace="workgroup";type="i32";atomic=false]

  [:op="max";addrspace="workgroup";type="i32";atomic=true]

  [:op="max";addrspace="workgroup";type="u32";atomic=false]

  [:op="max";addrspace="workgroup";type="u32";atomic=true]
    expected: FAIL

  [:op="min";addrspace="storage";type="i32";atomic=false]

  [:op="min";addrspace="storage";type="i32";atomic=true]

  [:op="min";addrspace="storage";type="u32";atomic=false]

  [:op="min";addrspace="storage";type="u32";atomic=true]
    expected: FAIL

  [:op="min";addrspace="workgroup";type="i32";atomic=false]

  [:op="min";addrspace="workgroup";type="i32";atomic=true]

  [:op="min";addrspace="workgroup";type="u32";atomic=false]

  [:op="min";addrspace="workgroup";type="u32";atomic=true]
    expected: FAIL

  [:op="or";addrspace="storage";type="i32";atomic=false]

  [:op="or";addrspace="storage";type="i32";atomic=true]

  [:op="or";addrspace="storage";type="u32";atomic=false]

  [:op="or";addrspace="storage";type="u32";atomic=true]
    expected: FAIL

  [:op="or";addrspace="workgroup";type="i32";atomic=false]

  [:op="or";addrspace="workgroup";type="i32";atomic=true]

  [:op="or";addrspace="workgroup";type="u32";atomic=false]

  [:op="or";addrspace="workgroup";type="u32";atomic=true]
    expected: FAIL

  [:op="store";addrspace="storage";type="i32";atomic=false]

  [:op="store";addrspace="storage";type="i32";atomic=true]

  [:op="store";addrspace="storage";type="u32";atomic=false]

  [:op="store";addrspace="storage";type="u32";atomic=true]
    expected: FAIL

  [:op="store";addrspace="workgroup";type="i32";atomic=false]

  [:op="store";addrspace="workgroup";type="i32";atomic=true]

  [:op="store";addrspace="workgroup";type="u32";atomic=false]

  [:op="store";addrspace="workgroup";type="u32";atomic=true]
    expected: FAIL

  [:op="sub";addrspace="storage";type="i32";atomic=false]

  [:op="sub";addrspace="storage";type="i32";atomic=true]

  [:op="sub";addrspace="storage";type="u32";atomic=false]

  [:op="sub";addrspace="storage";type="u32";atomic=true]
    expected: FAIL

  [:op="sub";addrspace="workgroup";type="i32";atomic=false]

  [:op="sub";addrspace="workgroup";type="i32";atomic=true]

  [:op="sub";addrspace="workgroup";type="u32";atomic=false]

  [:op="sub";addrspace="workgroup";type="u32";atomic=true]
    expected: FAIL

  [:op="xor";addrspace="storage";type="i32";atomic=false]

  [:op="xor";addrspace="storage";type="i32";atomic=true]

  [:op="xor";addrspace="storage";type="u32";atomic=false]

  [:op="xor";addrspace="storage";type="u32";atomic=true]
    expected: FAIL

  [:op="xor";addrspace="workgroup";type="i32";atomic=false]

  [:op="xor";addrspace="workgroup";type="i32";atomic=true]

  [:op="xor";addrspace="workgroup";type="u32";atomic=false]

  [:op="xor";addrspace="workgroup";type="u32";atomic=true]
    expected: FAIL


[cts.https.html?q=webgpu:shader,validation,expression,call,builtin,atomics:return_types:*]
  implementation-status: backlog
  [:op="add"]
    expected: FAIL

  [:op="and"]
    expected: FAIL

  [:op="compareexchangeweak"]
    expected: FAIL

  [:op="exchange"]
    expected: FAIL

  [:op="load"]

  [:op="max"]
    expected: FAIL

  [:op="min"]
    expected: FAIL

  [:op="or"]
    expected: FAIL

  [:op="store"]

  [:op="sub"]
    expected: FAIL

  [:op="xor"]
    expected: FAIL


[cts.https.html?q=webgpu:shader,validation,expression,call,builtin,atomics:stage:*]
  implementation-status: backlog
  [:stage="compute";atomicOp="add"]

  [:stage="compute";atomicOp="and"]

  [:stage="compute";atomicOp="compareexchangeweak"]

  [:stage="compute";atomicOp="exchange"]

  [:stage="compute";atomicOp="load"]

  [:stage="compute";atomicOp="max"]

  [:stage="compute";atomicOp="min"]

  [:stage="compute";atomicOp="or"]

  [:stage="compute";atomicOp="store"]

  [:stage="compute";atomicOp="sub"]

  [:stage="compute";atomicOp="xor"]

  [:stage="fragment";atomicOp="add"]

  [:stage="fragment";atomicOp="and"]

  [:stage="fragment";atomicOp="compareexchangeweak"]

  [:stage="fragment";atomicOp="exchange"]

  [:stage="fragment";atomicOp="load"]

  [:stage="fragment";atomicOp="max"]

  [:stage="fragment";atomicOp="min"]

  [:stage="fragment";atomicOp="or"]

  [:stage="fragment";atomicOp="store"]

  [:stage="fragment";atomicOp="sub"]

  [:stage="fragment";atomicOp="xor"]

  [:stage="vertex";atomicOp="add"]
    expected: FAIL

  [:stage="vertex";atomicOp="and"]
    expected: FAIL

  [:stage="vertex";atomicOp="compareexchangeweak"]
    expected: FAIL

  [:stage="vertex";atomicOp="exchange"]
    expected: FAIL

  [:stage="vertex";atomicOp="load"]
    expected: FAIL

  [:stage="vertex";atomicOp="max"]
    expected: FAIL

  [:stage="vertex";atomicOp="min"]
    expected: FAIL

  [:stage="vertex";atomicOp="or"]
    expected: FAIL

  [:stage="vertex";atomicOp="store"]
    expected: FAIL

  [:stage="vertex";atomicOp="sub"]
    expected: FAIL

  [:stage="vertex";atomicOp="xor"]
    expected: FAIL
