[cts.https.html?q=webgpu:shader,validation,expression,call,builtin,bitcast:bad_const_to_f16:*]
  implementation-status:
    if os == "mac": backlog
  [:fromScalarType="i32";vectorize="v2_b0"]
    expected:
      if os == "mac": FAIL

  [:fromScalarType="i32";vectorize="v2_b1"]
    expected:
      if os == "mac": FAIL

  [:fromScalarType="i32";vectorize="v4_b0"]
    expected:
      if os == "mac": FAIL

  [:fromScalarType="i32";vectorize="v4_b1"]
    expected:
      if os == "mac": FAIL

  [:fromScalarType="i32";vectorize="v4_b2"]
    expected:
      if os == "mac": FAIL

  [:fromScalarType="i32";vectorize="v4_b3"]
    expected:
      if os == "mac": FAIL

  [:fromScalarType="u32";vectorize="v2_b0"]
    expected:
      if os == "mac": FAIL

  [:fromScalarType="u32";vectorize="v2_b1"]
    expected:
      if os == "mac": FAIL

  [:fromScalarType="u32";vectorize="v4_b0"]
    expected:
      if os == "mac": FAIL

  [:fromScalarType="u32";vectorize="v4_b1"]
    expected:
      if os == "mac": FAIL

  [:fromScalarType="u32";vectorize="v4_b2"]
    expected:
      if os == "mac": FAIL

  [:fromScalarType="u32";vectorize="v4_b3"]
    expected:
      if os == "mac": FAIL


[cts.https.html?q=webgpu:shader,validation,expression,call,builtin,bitcast:bad_const_to_f32:*]
  implementation-status: backlog
  [:fromScalarType="i32";vectorize="v1_b0"]
    expected: FAIL

  [:fromScalarType="i32";vectorize="v2_b0"]
    expected: FAIL

  [:fromScalarType="i32";vectorize="v2_b1"]
    expected: FAIL

  [:fromScalarType="i32";vectorize="v3_b0"]
    expected: FAIL

  [:fromScalarType="i32";vectorize="v3_b1"]
    expected: FAIL

  [:fromScalarType="i32";vectorize="v3_b2"]
    expected: FAIL

  [:fromScalarType="i32";vectorize="v4_b0"]
    expected: FAIL

  [:fromScalarType="i32";vectorize="v4_b1"]
    expected: FAIL

  [:fromScalarType="i32";vectorize="v4_b2"]
    expected: FAIL

  [:fromScalarType="i32";vectorize="v4_b3"]
    expected: FAIL

  [:fromScalarType="u32";vectorize="v1_b0"]
    expected: FAIL

  [:fromScalarType="u32";vectorize="v2_b0"]
    expected: FAIL

  [:fromScalarType="u32";vectorize="v2_b1"]
    expected: FAIL

  [:fromScalarType="u32";vectorize="v3_b0"]
    expected: FAIL

  [:fromScalarType="u32";vectorize="v3_b1"]
    expected: FAIL

  [:fromScalarType="u32";vectorize="v3_b2"]
    expected: FAIL

  [:fromScalarType="u32";vectorize="v4_b0"]
    expected: FAIL

  [:fromScalarType="u32";vectorize="v4_b1"]
    expected: FAIL

  [:fromScalarType="u32";vectorize="v4_b2"]
    expected: FAIL

  [:fromScalarType="u32";vectorize="v4_b3"]
    expected: FAIL


[cts.https.html?q=webgpu:shader,validation,expression,call,builtin,bitcast:bad_to_f16:*]
  implementation-status:
    if os == "mac": backlog
  [:other_type="bool";direction="from"]

  [:other_type="bool";direction="to"]

  [:other_type="f32";direction="from"]
    expected:
      if os == "mac": FAIL

  [:other_type="f32";direction="to"]
    expected:
      if os == "mac": FAIL

  [:other_type="i32";direction="from"]
    expected:
      if os == "mac": FAIL

  [:other_type="i32";direction="to"]

  [:other_type="u32";direction="from"]
    expected:
      if os == "mac": FAIL

  [:other_type="u32";direction="to"]

  [:other_type="vec2%3Cbool%3E";direction="from"]

  [:other_type="vec2%3Cbool%3E";direction="to"]

  [:other_type="vec2f";direction="from"]
    expected:
      if os == "mac": FAIL

  [:other_type="vec2f";direction="to"]
    expected:
      if os == "mac": FAIL

  [:other_type="vec2h";direction="from"]
    expected:
      if os == "mac": FAIL

  [:other_type="vec2h";direction="to"]
    expected:
      if os == "mac": FAIL

  [:other_type="vec2i";direction="from"]
    expected:
      if os == "mac": FAIL

  [:other_type="vec2i";direction="to"]

  [:other_type="vec2u";direction="from"]
    expected:
      if os == "mac": FAIL

  [:other_type="vec2u";direction="to"]

  [:other_type="vec3%3Cbool%3E";direction="from"]

  [:other_type="vec3%3Cbool%3E";direction="to"]

  [:other_type="vec3f";direction="from"]
    expected:
      if os == "mac": FAIL

  [:other_type="vec3f";direction="to"]
    expected:
      if os == "mac": FAIL

  [:other_type="vec3h";direction="from"]
    expected:
      if os == "mac": FAIL

  [:other_type="vec3h";direction="to"]
    expected:
      if os == "mac": FAIL

  [:other_type="vec3i";direction="from"]
    expected:
      if os == "mac": FAIL

  [:other_type="vec3i";direction="to"]

  [:other_type="vec3u";direction="from"]
    expected:
      if os == "mac": FAIL

  [:other_type="vec3u";direction="to"]

  [:other_type="vec4%3Cbool%3E";direction="from"]

  [:other_type="vec4%3Cbool%3E";direction="to"]

  [:other_type="vec4f";direction="from"]
    expected:
      if os == "mac": FAIL

  [:other_type="vec4f";direction="to"]
    expected:
      if os == "mac": FAIL

  [:other_type="vec4h";direction="from"]
    expected:
      if os == "mac": FAIL

  [:other_type="vec4h";direction="to"]
    expected:
      if os == "mac": FAIL

  [:other_type="vec4i";direction="from"]
    expected:
      if os == "mac": FAIL

  [:other_type="vec4i";direction="to"]

  [:other_type="vec4u";direction="from"]
    expected:
      if os == "mac": FAIL

  [:other_type="vec4u";direction="to"]


[cts.https.html?q=webgpu:shader,validation,expression,call,builtin,bitcast:bad_to_vec3h:*]
  implementation-status:
    if os == "mac": backlog
  [:other_type="bool";direction="from";type="vec3%3Cf16%3E"]

  [:other_type="bool";direction="from";type="vec3h"]

  [:other_type="bool";direction="to";type="vec3%3Cf16%3E"]

  [:other_type="bool";direction="to";type="vec3h"]

  [:other_type="f32";direction="from";type="vec3%3Cf16%3E"]
    expected:
      if os == "mac": FAIL

  [:other_type="f32";direction="from";type="vec3h"]
    expected:
      if os == "mac": FAIL

  [:other_type="f32";direction="to";type="vec3%3Cf16%3E"]
    expected:
      if os == "mac": FAIL

  [:other_type="f32";direction="to";type="vec3h"]
    expected:
      if os == "mac": FAIL

  [:other_type="i32";direction="from";type="vec3%3Cf16%3E"]
    expected:
      if os == "mac": FAIL

  [:other_type="i32";direction="from";type="vec3h"]
    expected:
      if os == "mac": FAIL

  [:other_type="i32";direction="to";type="vec3%3Cf16%3E"]

  [:other_type="i32";direction="to";type="vec3h"]

  [:other_type="u32";direction="from";type="vec3%3Cf16%3E"]
    expected:
      if os == "mac": FAIL

  [:other_type="u32";direction="from";type="vec3h"]
    expected:
      if os == "mac": FAIL

  [:other_type="u32";direction="to";type="vec3%3Cf16%3E"]

  [:other_type="u32";direction="to";type="vec3h"]

  [:other_type="vec2%3Cbool%3E";direction="from";type="vec3%3Cf16%3E"]

  [:other_type="vec2%3Cbool%3E";direction="from";type="vec3h"]

  [:other_type="vec2%3Cbool%3E";direction="to";type="vec3%3Cf16%3E"]

  [:other_type="vec2%3Cbool%3E";direction="to";type="vec3h"]

  [:other_type="vec2f";direction="from";type="vec3%3Cf16%3E"]
    expected:
      if os == "mac": FAIL

  [:other_type="vec2f";direction="from";type="vec3h"]
    expected:
      if os == "mac": FAIL

  [:other_type="vec2f";direction="to";type="vec3%3Cf16%3E"]
    expected:
      if os == "mac": FAIL

  [:other_type="vec2f";direction="to";type="vec3h"]
    expected:
      if os == "mac": FAIL

  [:other_type="vec2h";direction="from";type="vec3%3Cf16%3E"]
    expected:
      if os == "mac": FAIL

  [:other_type="vec2h";direction="from";type="vec3h"]
    expected:
      if os == "mac": FAIL

  [:other_type="vec2h";direction="to";type="vec3%3Cf16%3E"]
    expected:
      if os == "mac": FAIL

  [:other_type="vec2h";direction="to";type="vec3h"]
    expected:
      if os == "mac": FAIL

  [:other_type="vec2i";direction="from";type="vec3%3Cf16%3E"]
    expected:
      if os == "mac": FAIL

  [:other_type="vec2i";direction="from";type="vec3h"]
    expected:
      if os == "mac": FAIL

  [:other_type="vec2i";direction="to";type="vec3%3Cf16%3E"]

  [:other_type="vec2i";direction="to";type="vec3h"]

  [:other_type="vec2u";direction="from";type="vec3%3Cf16%3E"]
    expected:
      if os == "mac": FAIL

  [:other_type="vec2u";direction="from";type="vec3h"]
    expected:
      if os == "mac": FAIL

  [:other_type="vec2u";direction="to";type="vec3%3Cf16%3E"]

  [:other_type="vec2u";direction="to";type="vec3h"]

  [:other_type="vec3%3Cbool%3E";direction="from";type="vec3%3Cf16%3E"]

  [:other_type="vec3%3Cbool%3E";direction="from";type="vec3h"]

  [:other_type="vec3%3Cbool%3E";direction="to";type="vec3%3Cf16%3E"]

  [:other_type="vec3%3Cbool%3E";direction="to";type="vec3h"]

  [:other_type="vec3f";direction="from";type="vec3%3Cf16%3E"]
    expected:
      if os == "mac": FAIL

  [:other_type="vec3f";direction="from";type="vec3h"]
    expected:
      if os == "mac": FAIL

  [:other_type="vec3f";direction="to";type="vec3%3Cf16%3E"]
    expected:
      if os == "mac": FAIL

  [:other_type="vec3f";direction="to";type="vec3h"]
    expected:
      if os == "mac": FAIL

  [:other_type="vec3i";direction="from";type="vec3%3Cf16%3E"]
    expected:
      if os == "mac": FAIL

  [:other_type="vec3i";direction="from";type="vec3h"]
    expected:
      if os == "mac": FAIL

  [:other_type="vec3i";direction="to";type="vec3%3Cf16%3E"]

  [:other_type="vec3i";direction="to";type="vec3h"]

  [:other_type="vec3u";direction="from";type="vec3%3Cf16%3E"]
    expected:
      if os == "mac": FAIL

  [:other_type="vec3u";direction="from";type="vec3h"]
    expected:
      if os == "mac": FAIL

  [:other_type="vec3u";direction="to";type="vec3%3Cf16%3E"]

  [:other_type="vec3u";direction="to";type="vec3h"]

  [:other_type="vec4%3Cbool%3E";direction="from";type="vec3%3Cf16%3E"]

  [:other_type="vec4%3Cbool%3E";direction="from";type="vec3h"]

  [:other_type="vec4%3Cbool%3E";direction="to";type="vec3%3Cf16%3E"]

  [:other_type="vec4%3Cbool%3E";direction="to";type="vec3h"]

  [:other_type="vec4f";direction="from";type="vec3%3Cf16%3E"]
    expected:
      if os == "mac": FAIL

  [:other_type="vec4f";direction="from";type="vec3h"]
    expected:
      if os == "mac": FAIL

  [:other_type="vec4f";direction="to";type="vec3%3Cf16%3E"]
    expected:
      if os == "mac": FAIL

  [:other_type="vec4f";direction="to";type="vec3h"]
    expected:
      if os == "mac": FAIL

  [:other_type="vec4h";direction="from";type="vec3%3Cf16%3E"]
    expected:
      if os == "mac": FAIL

  [:other_type="vec4h";direction="from";type="vec3h"]
    expected:
      if os == "mac": FAIL

  [:other_type="vec4h";direction="to";type="vec3%3Cf16%3E"]
    expected:
      if os == "mac": FAIL

  [:other_type="vec4h";direction="to";type="vec3h"]
    expected:
      if os == "mac": FAIL

  [:other_type="vec4i";direction="from";type="vec3%3Cf16%3E"]
    expected:
      if os == "mac": FAIL

  [:other_type="vec4i";direction="from";type="vec3h"]
    expected:
      if os == "mac": FAIL

  [:other_type="vec4i";direction="to";type="vec3%3Cf16%3E"]

  [:other_type="vec4i";direction="to";type="vec3h"]

  [:other_type="vec4u";direction="from";type="vec3%3Cf16%3E"]
    expected:
      if os == "mac": FAIL

  [:other_type="vec4u";direction="from";type="vec3h"]
    expected:
      if os == "mac": FAIL

  [:other_type="vec4u";direction="to";type="vec3%3Cf16%3E"]

  [:other_type="vec4u";direction="to";type="vec3h"]


[cts.https.html?q=webgpu:shader,validation,expression,call,builtin,bitcast:bad_type_constructible:*]
  [:type="S";direction="from"]

  [:type="S";direction="to"]

  [:type="array%3Ci32,2%3E";direction="from"]

  [:type="array%3Ci32,2%3E";direction="to"]

  [:type="bool";direction="from"]

  [:type="bool";direction="to"]

  [:type="mat2x2%3Cf16%3E";direction="from"]

  [:type="mat2x2%3Cf16%3E";direction="to"]

  [:type="mat2x2f";direction="from"]

  [:type="mat2x2f";direction="to"]

  [:type="mat2x3%3Cf16%3E";direction="from"]

  [:type="mat2x3%3Cf16%3E";direction="to"]

  [:type="mat2x3f";direction="from"]

  [:type="mat2x3f";direction="to"]

  [:type="mat2x4%3Cf16%3E";direction="from"]

  [:type="mat2x4%3Cf16%3E";direction="to"]

  [:type="mat2x4f";direction="from"]

  [:type="mat2x4f";direction="to"]

  [:type="mat3x2%3Cf16%3E";direction="from"]

  [:type="mat3x2%3Cf16%3E";direction="to"]

  [:type="mat3x2f";direction="from"]

  [:type="mat3x2f";direction="to"]

  [:type="mat3x3%3Cf16%3E";direction="from"]

  [:type="mat3x3%3Cf16%3E";direction="to"]

  [:type="mat3x3f";direction="from"]

  [:type="mat3x3f";direction="to"]

  [:type="mat3x4%3Cf16%3E";direction="from"]

  [:type="mat3x4%3Cf16%3E";direction="to"]

  [:type="mat3x4f";direction="from"]

  [:type="mat3x4f";direction="to"]

  [:type="mat4x2%3Cf16%3E";direction="from"]

  [:type="mat4x2%3Cf16%3E";direction="to"]

  [:type="mat4x2f";direction="from"]

  [:type="mat4x2f";direction="to"]

  [:type="mat4x3%3Cf16%3E";direction="from"]

  [:type="mat4x3%3Cf16%3E";direction="to"]

  [:type="mat4x3f";direction="from"]

  [:type="mat4x3f";direction="to"]

  [:type="mat4x4%3Cf16%3E";direction="from"]

  [:type="mat4x4%3Cf16%3E";direction="to"]

  [:type="mat4x4f";direction="from"]

  [:type="mat4x4f";direction="to"]

  [:type="vec2%3Cbool%3E";direction="from"]

  [:type="vec2%3Cbool%3E";direction="to"]

  [:type="vec3%3Cbool%3E";direction="from"]

  [:type="vec3%3Cbool%3E";direction="to"]

  [:type="vec4%3Cbool%3E";direction="from"]

  [:type="vec4%3Cbool%3E";direction="to"]


[cts.https.html?q=webgpu:shader,validation,expression,call,builtin,bitcast:bad_type_nonconstructible:*]
  [:var="b";direction="from"]

  [:var="b";direction="to"]

  [:var="p";direction="from"]

  [:var="p";direction="to"]

  [:var="s";direction="from"]

  [:var="s";direction="to"]

  [:var="t";direction="from"]

  [:var="t";direction="to"]


[cts.https.html?q=webgpu:shader,validation,expression,call,builtin,bitcast:must_use:*]
  [:case="bitcast%3Cf32%3E(1u)";use=false]

  [:case="bitcast%3Cf32%3E(1u)";use=true]

  [:case="bitcast%3Cu32%3E(1i)";use=false]

  [:case="bitcast%3Cu32%3E(1i)";use=true]

  [:case="bitcast%3Cvec2f%3E(vec2i())";use=false]

  [:case="bitcast%3Cvec2f%3E(vec2i())";use=true]

  [:case="bitcast%3Cvec3u%3E(vec3u())";use=false]

  [:case="bitcast%3Cvec3u%3E(vec3u())";use=true]

  [:case="bitcast%3Cvec4i%3E(vec4f())";use=false]

  [:case="bitcast%3Cvec4i%3E(vec4f())";use=true]


[cts.https.html?q=webgpu:shader,validation,expression,call,builtin,bitcast:valid_vec2h:*]
  implementation-status:
    if os == "mac": backlog
  [:other_type="f32";type="vec2%3Cf16%3E";direction="from"]

  [:other_type="f32";type="vec2%3Cf16%3E";direction="to"]

  [:other_type="f32";type="vec2h";direction="from"]

  [:other_type="f32";type="vec2h";direction="to"]

  [:other_type="i32";type="vec2%3Cf16%3E";direction="from"]

  [:other_type="i32";type="vec2%3Cf16%3E";direction="to"]
    expected:
      if os == "mac": FAIL

  [:other_type="i32";type="vec2h";direction="from"]

  [:other_type="i32";type="vec2h";direction="to"]
    expected:
      if os == "mac": FAIL

  [:other_type="u32";type="vec2%3Cf16%3E";direction="from"]

  [:other_type="u32";type="vec2%3Cf16%3E";direction="to"]
    expected:
      if os == "mac": FAIL

  [:other_type="u32";type="vec2h";direction="from"]

  [:other_type="u32";type="vec2h";direction="to"]
    expected:
      if os == "mac": FAIL


[cts.https.html?q=webgpu:shader,validation,expression,call,builtin,bitcast:valid_vec4h:*]
  implementation-status:
    if os == "mac": backlog
  [:other_type="vec2%3Cf32%3E";type="vec4%3Cf16%3E";direction="from"]

  [:other_type="vec2%3Cf32%3E";type="vec4%3Cf16%3E";direction="to"]

  [:other_type="vec2%3Cf32%3E";type="vec4h";direction="from"]

  [:other_type="vec2%3Cf32%3E";type="vec4h";direction="to"]

  [:other_type="vec2%3Ci32%3E";type="vec4%3Cf16%3E";direction="from"]

  [:other_type="vec2%3Ci32%3E";type="vec4%3Cf16%3E";direction="to"]
    expected:
      if os == "mac": FAIL

  [:other_type="vec2%3Ci32%3E";type="vec4h";direction="from"]

  [:other_type="vec2%3Ci32%3E";type="vec4h";direction="to"]
    expected:
      if os == "mac": FAIL

  [:other_type="vec2%3Cu32%3E";type="vec4%3Cf16%3E";direction="from"]

  [:other_type="vec2%3Cu32%3E";type="vec4%3Cf16%3E";direction="to"]
    expected:
      if os == "mac": FAIL

  [:other_type="vec2%3Cu32%3E";type="vec4h";direction="from"]

  [:other_type="vec2%3Cu32%3E";type="vec4h";direction="to"]
    expected:
      if os == "mac": FAIL

  [:other_type="vec2f";type="vec4%3Cf16%3E";direction="from"]

  [:other_type="vec2f";type="vec4%3Cf16%3E";direction="to"]

  [:other_type="vec2f";type="vec4h";direction="from"]

  [:other_type="vec2f";type="vec4h";direction="to"]

  [:other_type="vec2i";type="vec4%3Cf16%3E";direction="from"]

  [:other_type="vec2i";type="vec4%3Cf16%3E";direction="to"]
    expected:
      if os == "mac": FAIL

  [:other_type="vec2i";type="vec4h";direction="from"]

  [:other_type="vec2i";type="vec4h";direction="to"]
    expected:
      if os == "mac": FAIL

  [:other_type="vec2u";type="vec4%3Cf16%3E";direction="from"]

  [:other_type="vec2u";type="vec4%3Cf16%3E";direction="to"]
    expected:
      if os == "mac": FAIL

  [:other_type="vec2u";type="vec4h";direction="from"]

  [:other_type="vec2u";type="vec4h";direction="to"]
    expected:
      if os == "mac": FAIL
