[cts.https.html?q=webgpu:shader,validation,expression,call,builtin,clamp:arguments:*]
  implementation-status: backlog
  [:type="alias"]

  [:type="array"]

  [:type="array_runtime"]

  [:type="atomic"]
    expected: FAIL

  [:type="bool"]

  [:type="enumerant"]

  [:type="f32"]

  [:type="mat2x2%3Cf32%3E"]

  [:type="ptr"]

  [:type="ptr_deref"]
    expected: FAIL

  [:type="sampler"]

  [:type="struct"]

  [:type="texture"]

  [:type="vec_bool"]


[cts.https.html?q=webgpu:shader,validation,expression,call,builtin,clamp:low_high:*]
  implementation-status: backlog
  [:type="f16";lowStage="constant";highStage="constant"]
    expected:
      if os == "mac": FAIL

  [:type="f16";lowStage="constant";highStage="override"]
    expected:
      if os == "mac": FAIL

  [:type="f16";lowStage="constant";highStage="runtime"]

  [:type="f16";lowStage="override";highStage="constant"]
    expected:
      if os == "mac": FAIL

  [:type="f16";lowStage="override";highStage="override"]
    expected:
      if os == "mac": FAIL

  [:type="f16";lowStage="override";highStage="runtime"]

  [:type="f16";lowStage="runtime";highStage="constant"]

  [:type="f16";lowStage="runtime";highStage="override"]

  [:type="f16";lowStage="runtime";highStage="runtime"]

  [:type="f32";lowStage="constant";highStage="constant"]
    expected: FAIL

  [:type="f32";lowStage="constant";highStage="override"]
    expected: FAIL

  [:type="f32";lowStage="constant";highStage="runtime"]

  [:type="f32";lowStage="override";highStage="constant"]
    expected: FAIL

  [:type="f32";lowStage="override";highStage="override"]
    expected: FAIL

  [:type="f32";lowStage="override";highStage="runtime"]

  [:type="f32";lowStage="runtime";highStage="constant"]

  [:type="f32";lowStage="runtime";highStage="override"]

  [:type="f32";lowStage="runtime";highStage="runtime"]

  [:type="i32";lowStage="constant";highStage="constant"]
    expected: FAIL

  [:type="i32";lowStage="constant";highStage="override"]
    expected: FAIL

  [:type="i32";lowStage="constant";highStage="runtime"]

  [:type="i32";lowStage="override";highStage="constant"]
    expected: FAIL

  [:type="i32";lowStage="override";highStage="override"]
    expected: FAIL

  [:type="i32";lowStage="override";highStage="runtime"]

  [:type="i32";lowStage="runtime";highStage="constant"]

  [:type="i32";lowStage="runtime";highStage="override"]

  [:type="i32";lowStage="runtime";highStage="runtime"]

  [:type="u32";lowStage="constant";highStage="constant"]
    expected: FAIL

  [:type="u32";lowStage="constant";highStage="override"]
    expected: FAIL

  [:type="u32";lowStage="constant";highStage="runtime"]

  [:type="u32";lowStage="override";highStage="constant"]
    expected: FAIL

  [:type="u32";lowStage="override";highStage="override"]
    expected: FAIL

  [:type="u32";lowStage="override";highStage="runtime"]

  [:type="u32";lowStage="runtime";highStage="constant"]

  [:type="u32";lowStage="runtime";highStage="override"]

  [:type="u32";lowStage="runtime";highStage="runtime"]

  [:type="vec2%3Cf16%3E";lowStage="constant";highStage="constant"]
    expected:
      if os == "mac": FAIL

  [:type="vec2%3Cf16%3E";lowStage="constant";highStage="override"]
    expected:
      if os == "mac": FAIL

  [:type="vec2%3Cf16%3E";lowStage="constant";highStage="runtime"]

  [:type="vec2%3Cf16%3E";lowStage="override";highStage="constant"]
    expected:
      if os == "mac": FAIL

  [:type="vec2%3Cf16%3E";lowStage="override";highStage="override"]
    expected:
      if os == "mac": FAIL

  [:type="vec2%3Cf16%3E";lowStage="override";highStage="runtime"]

  [:type="vec2%3Cf16%3E";lowStage="runtime";highStage="constant"]

  [:type="vec2%3Cf16%3E";lowStage="runtime";highStage="override"]

  [:type="vec2%3Cf16%3E";lowStage="runtime";highStage="runtime"]

  [:type="vec2%3Cf32%3E";lowStage="constant";highStage="constant"]
    expected: FAIL

  [:type="vec2%3Cf32%3E";lowStage="constant";highStage="override"]
    expected: FAIL

  [:type="vec2%3Cf32%3E";lowStage="constant";highStage="runtime"]

  [:type="vec2%3Cf32%3E";lowStage="override";highStage="constant"]
    expected: FAIL

  [:type="vec2%3Cf32%3E";lowStage="override";highStage="override"]
    expected: FAIL

  [:type="vec2%3Cf32%3E";lowStage="override";highStage="runtime"]

  [:type="vec2%3Cf32%3E";lowStage="runtime";highStage="constant"]

  [:type="vec2%3Cf32%3E";lowStage="runtime";highStage="override"]

  [:type="vec2%3Cf32%3E";lowStage="runtime";highStage="runtime"]

  [:type="vec2%3Ci32%3E";lowStage="constant";highStage="constant"]
    expected: FAIL

  [:type="vec2%3Ci32%3E";lowStage="constant";highStage="override"]
    expected: FAIL

  [:type="vec2%3Ci32%3E";lowStage="constant";highStage="runtime"]

  [:type="vec2%3Ci32%3E";lowStage="override";highStage="constant"]
    expected: FAIL

  [:type="vec2%3Ci32%3E";lowStage="override";highStage="override"]
    expected: FAIL

  [:type="vec2%3Ci32%3E";lowStage="override";highStage="runtime"]

  [:type="vec2%3Ci32%3E";lowStage="runtime";highStage="constant"]

  [:type="vec2%3Ci32%3E";lowStage="runtime";highStage="override"]

  [:type="vec2%3Ci32%3E";lowStage="runtime";highStage="runtime"]

  [:type="vec2%3Cu32%3E";lowStage="constant";highStage="constant"]
    expected: FAIL

  [:type="vec2%3Cu32%3E";lowStage="constant";highStage="override"]
    expected: FAIL

  [:type="vec2%3Cu32%3E";lowStage="constant";highStage="runtime"]

  [:type="vec2%3Cu32%3E";lowStage="override";highStage="constant"]
    expected: FAIL

  [:type="vec2%3Cu32%3E";lowStage="override";highStage="override"]
    expected: FAIL

  [:type="vec2%3Cu32%3E";lowStage="override";highStage="runtime"]

  [:type="vec2%3Cu32%3E";lowStage="runtime";highStage="constant"]

  [:type="vec2%3Cu32%3E";lowStage="runtime";highStage="override"]

  [:type="vec2%3Cu32%3E";lowStage="runtime";highStage="runtime"]

  [:type="vec3%3Cf16%3E";lowStage="constant";highStage="constant"]
    expected:
      if os == "mac": FAIL

  [:type="vec3%3Cf16%3E";lowStage="constant";highStage="override"]
    expected:
      if os == "mac": FAIL

  [:type="vec3%3Cf16%3E";lowStage="constant";highStage="runtime"]

  [:type="vec3%3Cf16%3E";lowStage="override";highStage="constant"]
    expected:
      if os == "mac": FAIL

  [:type="vec3%3Cf16%3E";lowStage="override";highStage="override"]
    expected:
      if os == "mac": FAIL

  [:type="vec3%3Cf16%3E";lowStage="override";highStage="runtime"]

  [:type="vec3%3Cf16%3E";lowStage="runtime";highStage="constant"]

  [:type="vec3%3Cf16%3E";lowStage="runtime";highStage="override"]

  [:type="vec3%3Cf16%3E";lowStage="runtime";highStage="runtime"]

  [:type="vec3%3Cf32%3E";lowStage="constant";highStage="constant"]
    expected: FAIL

  [:type="vec3%3Cf32%3E";lowStage="constant";highStage="override"]
    expected: FAIL

  [:type="vec3%3Cf32%3E";lowStage="constant";highStage="runtime"]

  [:type="vec3%3Cf32%3E";lowStage="override";highStage="constant"]
    expected: FAIL

  [:type="vec3%3Cf32%3E";lowStage="override";highStage="override"]
    expected: FAIL

  [:type="vec3%3Cf32%3E";lowStage="override";highStage="runtime"]

  [:type="vec3%3Cf32%3E";lowStage="runtime";highStage="constant"]

  [:type="vec3%3Cf32%3E";lowStage="runtime";highStage="override"]

  [:type="vec3%3Cf32%3E";lowStage="runtime";highStage="runtime"]

  [:type="vec3%3Ci32%3E";lowStage="constant";highStage="constant"]
    expected: FAIL

  [:type="vec3%3Ci32%3E";lowStage="constant";highStage="override"]
    expected: FAIL

  [:type="vec3%3Ci32%3E";lowStage="constant";highStage="runtime"]

  [:type="vec3%3Ci32%3E";lowStage="override";highStage="constant"]
    expected: FAIL

  [:type="vec3%3Ci32%3E";lowStage="override";highStage="override"]
    expected: FAIL

  [:type="vec3%3Ci32%3E";lowStage="override";highStage="runtime"]

  [:type="vec3%3Ci32%3E";lowStage="runtime";highStage="constant"]

  [:type="vec3%3Ci32%3E";lowStage="runtime";highStage="override"]

  [:type="vec3%3Ci32%3E";lowStage="runtime";highStage="runtime"]

  [:type="vec3%3Cu32%3E";lowStage="constant";highStage="constant"]
    expected: FAIL

  [:type="vec3%3Cu32%3E";lowStage="constant";highStage="override"]
    expected: FAIL

  [:type="vec3%3Cu32%3E";lowStage="constant";highStage="runtime"]

  [:type="vec3%3Cu32%3E";lowStage="override";highStage="constant"]
    expected: FAIL

  [:type="vec3%3Cu32%3E";lowStage="override";highStage="override"]
    expected: FAIL

  [:type="vec3%3Cu32%3E";lowStage="override";highStage="runtime"]

  [:type="vec3%3Cu32%3E";lowStage="runtime";highStage="constant"]

  [:type="vec3%3Cu32%3E";lowStage="runtime";highStage="override"]

  [:type="vec3%3Cu32%3E";lowStage="runtime";highStage="runtime"]

  [:type="vec4%3Cf16%3E";lowStage="constant";highStage="constant"]
    expected:
      if os == "mac": FAIL

  [:type="vec4%3Cf16%3E";lowStage="constant";highStage="override"]
    expected:
      if os == "mac": FAIL

  [:type="vec4%3Cf16%3E";lowStage="constant";highStage="runtime"]

  [:type="vec4%3Cf16%3E";lowStage="override";highStage="constant"]
    expected:
      if os == "mac": FAIL

  [:type="vec4%3Cf16%3E";lowStage="override";highStage="override"]
    expected:
      if os == "mac": FAIL

  [:type="vec4%3Cf16%3E";lowStage="override";highStage="runtime"]

  [:type="vec4%3Cf16%3E";lowStage="runtime";highStage="constant"]

  [:type="vec4%3Cf16%3E";lowStage="runtime";highStage="override"]

  [:type="vec4%3Cf16%3E";lowStage="runtime";highStage="runtime"]

  [:type="vec4%3Cf32%3E";lowStage="constant";highStage="constant"]
    expected: FAIL

  [:type="vec4%3Cf32%3E";lowStage="constant";highStage="override"]
    expected: FAIL

  [:type="vec4%3Cf32%3E";lowStage="constant";highStage="runtime"]

  [:type="vec4%3Cf32%3E";lowStage="override";highStage="constant"]
    expected: FAIL

  [:type="vec4%3Cf32%3E";lowStage="override";highStage="override"]
    expected: FAIL

  [:type="vec4%3Cf32%3E";lowStage="override";highStage="runtime"]

  [:type="vec4%3Cf32%3E";lowStage="runtime";highStage="constant"]

  [:type="vec4%3Cf32%3E";lowStage="runtime";highStage="override"]

  [:type="vec4%3Cf32%3E";lowStage="runtime";highStage="runtime"]

  [:type="vec4%3Ci32%3E";lowStage="constant";highStage="constant"]
    expected: FAIL

  [:type="vec4%3Ci32%3E";lowStage="constant";highStage="override"]
    expected: FAIL

  [:type="vec4%3Ci32%3E";lowStage="constant";highStage="runtime"]

  [:type="vec4%3Ci32%3E";lowStage="override";highStage="constant"]
    expected: FAIL

  [:type="vec4%3Ci32%3E";lowStage="override";highStage="override"]
    expected: FAIL

  [:type="vec4%3Ci32%3E";lowStage="override";highStage="runtime"]

  [:type="vec4%3Ci32%3E";lowStage="runtime";highStage="constant"]

  [:type="vec4%3Ci32%3E";lowStage="runtime";highStage="override"]

  [:type="vec4%3Ci32%3E";lowStage="runtime";highStage="runtime"]

  [:type="vec4%3Cu32%3E";lowStage="constant";highStage="constant"]
    expected: FAIL

  [:type="vec4%3Cu32%3E";lowStage="constant";highStage="override"]
    expected: FAIL

  [:type="vec4%3Cu32%3E";lowStage="constant";highStage="runtime"]

  [:type="vec4%3Cu32%3E";lowStage="override";highStage="constant"]
    expected: FAIL

  [:type="vec4%3Cu32%3E";lowStage="override";highStage="override"]
    expected: FAIL

  [:type="vec4%3Cu32%3E";lowStage="override";highStage="runtime"]

  [:type="vec4%3Cu32%3E";lowStage="runtime";highStage="constant"]

  [:type="vec4%3Cu32%3E";lowStage="runtime";highStage="override"]

  [:type="vec4%3Cu32%3E";lowStage="runtime";highStage="runtime"]


[cts.https.html?q=webgpu:shader,validation,expression,call,builtin,clamp:low_high_abstract:*]
  [:type="abstract-float"]

  [:type="abstract-int"]


[cts.https.html?q=webgpu:shader,validation,expression,call,builtin,clamp:mismatched:*]
  [:e="abstract-float"]

  [:e="abstract-int"]

  [:e="f16"]

  [:e="f32"]

  [:e="i32"]

  [:e="u32"]

  [:e="vec2%3Cabstract-float%3E"]

  [:e="vec2%3Cabstract-int%3E"]

  [:e="vec2%3Cf16%3E"]

  [:e="vec2%3Cf32%3E"]

  [:e="vec2%3Ci32%3E"]

  [:e="vec2%3Cu32%3E"]

  [:e="vec3%3Cabstract-float%3E"]

  [:e="vec3%3Cabstract-int%3E"]

  [:e="vec3%3Cf16%3E"]

  [:e="vec3%3Cf32%3E"]

  [:e="vec3%3Ci32%3E"]

  [:e="vec3%3Cu32%3E"]

  [:e="vec4%3Cabstract-float%3E"]

  [:e="vec4%3Cabstract-int%3E"]

  [:e="vec4%3Cf16%3E"]

  [:e="vec4%3Cf32%3E"]

  [:e="vec4%3Ci32%3E"]

  [:e="vec4%3Cu32%3E"]


[cts.https.html?q=webgpu:shader,validation,expression,call,builtin,clamp:must_use:*]
  implementation-status: backlog
  [:use=false]
    expected: FAIL

  [:use=true]


[cts.https.html?q=webgpu:shader,validation,expression,call,builtin,clamp:values:*]
  [:stage="constant";type="abstract-float"]

  [:stage="constant";type="abstract-int"]

  [:stage="constant";type="f16"]

  [:stage="constant";type="f32"]

  [:stage="constant";type="i32"]

  [:stage="constant";type="u32"]

  [:stage="constant";type="vec2%3Cabstract-float%3E"]

  [:stage="constant";type="vec2%3Cabstract-int%3E"]

  [:stage="constant";type="vec2%3Cf16%3E"]

  [:stage="constant";type="vec2%3Cf32%3E"]

  [:stage="constant";type="vec2%3Ci32%3E"]

  [:stage="constant";type="vec2%3Cu32%3E"]

  [:stage="constant";type="vec3%3Cabstract-float%3E"]

  [:stage="constant";type="vec3%3Cabstract-int%3E"]

  [:stage="constant";type="vec3%3Cf16%3E"]

  [:stage="constant";type="vec3%3Cf32%3E"]

  [:stage="constant";type="vec3%3Ci32%3E"]

  [:stage="constant";type="vec3%3Cu32%3E"]

  [:stage="constant";type="vec4%3Cabstract-float%3E"]

  [:stage="constant";type="vec4%3Cabstract-int%3E"]

  [:stage="constant";type="vec4%3Cf16%3E"]

  [:stage="constant";type="vec4%3Cf32%3E"]

  [:stage="constant";type="vec4%3Ci32%3E"]

  [:stage="constant";type="vec4%3Cu32%3E"]

  [:stage="override";type="f16"]

  [:stage="override";type="f32"]

  [:stage="override";type="i32"]

  [:stage="override";type="u32"]

  [:stage="override";type="vec2%3Cf16%3E"]

  [:stage="override";type="vec2%3Cf32%3E"]

  [:stage="override";type="vec2%3Ci32%3E"]

  [:stage="override";type="vec2%3Cu32%3E"]

  [:stage="override";type="vec3%3Cf16%3E"]

  [:stage="override";type="vec3%3Cf32%3E"]

  [:stage="override";type="vec3%3Ci32%3E"]

  [:stage="override";type="vec3%3Cu32%3E"]

  [:stage="override";type="vec4%3Cf16%3E"]

  [:stage="override";type="vec4%3Cf32%3E"]

  [:stage="override";type="vec4%3Ci32%3E"]

  [:stage="override";type="vec4%3Cu32%3E"]
