[cts.https.html?q=webgpu:shader,validation,expression,matrix,comparison:invalid:*]
  implementation-status: backlog
  [:op="eq";rhs="1i";test="af"]
    expected: FAIL

  [:op="eq";rhs="1i";test="ai"]

  [:op="eq";rhs="1i";test="array"]

  [:op="eq";rhs="1i";test="atomic"]
    expected: FAIL

  [:op="eq";rhs="1i";test="bool"]
    expected: FAIL

  [:op="eq";rhs="1i";test="f16"]
    expected:
      if os == "mac": FAIL

  [:op="eq";rhs="1i";test="f32"]
    expected: FAIL

  [:op="eq";rhs="1i";test="i32"]

  [:op="eq";rhs="1i";test="matf_matching"]

  [:op="eq";rhs="1i";test="matf_no_match"]

  [:op="eq";rhs="1i";test="math"]

  [:op="eq";rhs="1i";test="sampler"]

  [:op="eq";rhs="1i";test="struct"]

  [:op="eq";rhs="1i";test="texture"]

  [:op="eq";rhs="1i";test="u32"]
    expected: FAIL

  [:op="eq";rhs="1i";test="vec"]

  [:op="eq";rhs="ai";test="af"]
    expected: FAIL

  [:op="eq";rhs="ai";test="ai"]
    expected: FAIL

  [:op="eq";rhs="ai";test="array"]

  [:op="eq";rhs="ai";test="atomic"]

  [:op="eq";rhs="ai";test="bool"]
    expected: FAIL

  [:op="eq";rhs="ai";test="f16"]

  [:op="eq";rhs="ai";test="f32"]

  [:op="eq";rhs="ai";test="i32"]
    expected: FAIL

  [:op="eq";rhs="ai";test="matf_matching"]

  [:op="eq";rhs="ai";test="matf_no_match"]

  [:op="eq";rhs="ai";test="math"]

  [:op="eq";rhs="ai";test="sampler"]

  [:op="eq";rhs="ai";test="struct"]

  [:op="eq";rhs="ai";test="texture"]

  [:op="eq";rhs="ai";test="u32"]
    expected: FAIL

  [:op="eq";rhs="ai";test="vec"]

  [:op="eq";rhs="mat2x3f()";test="af"]

  [:op="eq";rhs="mat2x3f()";test="ai"]

  [:op="eq";rhs="mat2x3f()";test="array"]

  [:op="eq";rhs="mat2x3f()";test="atomic"]

  [:op="eq";rhs="mat2x3f()";test="bool"]

  [:op="eq";rhs="mat2x3f()";test="f16"]

  [:op="eq";rhs="mat2x3f()";test="f32"]

  [:op="eq";rhs="mat2x3f()";test="i32"]

  [:op="eq";rhs="mat2x3f()";test="matf_matching"]

  [:op="eq";rhs="mat2x3f()";test="matf_no_match"]

  [:op="eq";rhs="mat2x3f()";test="math"]

  [:op="eq";rhs="mat2x3f()";test="sampler"]

  [:op="eq";rhs="mat2x3f()";test="struct"]

  [:op="eq";rhs="mat2x3f()";test="texture"]

  [:op="eq";rhs="mat2x3f()";test="u32"]

  [:op="eq";rhs="mat2x3f()";test="vec"]

  [:op="eq";rhs="mat2x3h()";test="af"]

  [:op="eq";rhs="mat2x3h()";test="ai"]

  [:op="eq";rhs="mat2x3h()";test="array"]

  [:op="eq";rhs="mat2x3h()";test="atomic"]

  [:op="eq";rhs="mat2x3h()";test="bool"]

  [:op="eq";rhs="mat2x3h()";test="f16"]

  [:op="eq";rhs="mat2x3h()";test="f32"]

  [:op="eq";rhs="mat2x3h()";test="i32"]

  [:op="eq";rhs="mat2x3h()";test="matf_matching"]

  [:op="eq";rhs="mat2x3h()";test="matf_no_match"]

  [:op="eq";rhs="mat2x3h()";test="math"]

  [:op="eq";rhs="mat2x3h()";test="sampler"]

  [:op="eq";rhs="mat2x3h()";test="struct"]

  [:op="eq";rhs="mat2x3h()";test="texture"]

  [:op="eq";rhs="mat2x3h()";test="u32"]

  [:op="eq";rhs="mat2x3h()";test="vec"]

  [:op="ge";rhs="1i";test="af"]
    expected: FAIL

  [:op="ge";rhs="1i";test="ai"]

  [:op="ge";rhs="1i";test="array"]

  [:op="ge";rhs="1i";test="atomic"]
    expected: FAIL

  [:op="ge";rhs="1i";test="bool"]
    expected: FAIL

  [:op="ge";rhs="1i";test="f16"]
    expected:
      if os == "mac": FAIL

  [:op="ge";rhs="1i";test="f32"]
    expected: FAIL

  [:op="ge";rhs="1i";test="i32"]

  [:op="ge";rhs="1i";test="matf_matching"]

  [:op="ge";rhs="1i";test="matf_no_match"]

  [:op="ge";rhs="1i";test="math"]

  [:op="ge";rhs="1i";test="sampler"]

  [:op="ge";rhs="1i";test="struct"]

  [:op="ge";rhs="1i";test="texture"]

  [:op="ge";rhs="1i";test="u32"]
    expected: FAIL

  [:op="ge";rhs="1i";test="vec"]

  [:op="ge";rhs="ai";test="af"]
    expected: FAIL

  [:op="ge";rhs="ai";test="ai"]
    expected: FAIL

  [:op="ge";rhs="ai";test="array"]

  [:op="ge";rhs="ai";test="atomic"]

  [:op="ge";rhs="ai";test="bool"]
    expected: FAIL

  [:op="ge";rhs="ai";test="f16"]

  [:op="ge";rhs="ai";test="f32"]

  [:op="ge";rhs="ai";test="i32"]
    expected: FAIL

  [:op="ge";rhs="ai";test="matf_matching"]

  [:op="ge";rhs="ai";test="matf_no_match"]

  [:op="ge";rhs="ai";test="math"]

  [:op="ge";rhs="ai";test="sampler"]

  [:op="ge";rhs="ai";test="struct"]

  [:op="ge";rhs="ai";test="texture"]

  [:op="ge";rhs="ai";test="u32"]
    expected: FAIL

  [:op="ge";rhs="ai";test="vec"]

  [:op="ge";rhs="mat2x3f()";test="af"]

  [:op="ge";rhs="mat2x3f()";test="ai"]

  [:op="ge";rhs="mat2x3f()";test="array"]

  [:op="ge";rhs="mat2x3f()";test="atomic"]

  [:op="ge";rhs="mat2x3f()";test="bool"]

  [:op="ge";rhs="mat2x3f()";test="f16"]

  [:op="ge";rhs="mat2x3f()";test="f32"]

  [:op="ge";rhs="mat2x3f()";test="i32"]

  [:op="ge";rhs="mat2x3f()";test="matf_matching"]

  [:op="ge";rhs="mat2x3f()";test="matf_no_match"]

  [:op="ge";rhs="mat2x3f()";test="math"]

  [:op="ge";rhs="mat2x3f()";test="sampler"]

  [:op="ge";rhs="mat2x3f()";test="struct"]

  [:op="ge";rhs="mat2x3f()";test="texture"]

  [:op="ge";rhs="mat2x3f()";test="u32"]

  [:op="ge";rhs="mat2x3f()";test="vec"]

  [:op="ge";rhs="mat2x3h()";test="af"]

  [:op="ge";rhs="mat2x3h()";test="ai"]

  [:op="ge";rhs="mat2x3h()";test="array"]

  [:op="ge";rhs="mat2x3h()";test="atomic"]

  [:op="ge";rhs="mat2x3h()";test="bool"]

  [:op="ge";rhs="mat2x3h()";test="f16"]

  [:op="ge";rhs="mat2x3h()";test="f32"]

  [:op="ge";rhs="mat2x3h()";test="i32"]

  [:op="ge";rhs="mat2x3h()";test="matf_matching"]

  [:op="ge";rhs="mat2x3h()";test="matf_no_match"]

  [:op="ge";rhs="mat2x3h()";test="math"]

  [:op="ge";rhs="mat2x3h()";test="sampler"]

  [:op="ge";rhs="mat2x3h()";test="struct"]

  [:op="ge";rhs="mat2x3h()";test="texture"]

  [:op="ge";rhs="mat2x3h()";test="u32"]

  [:op="ge";rhs="mat2x3h()";test="vec"]

  [:op="gt";rhs="1i";test="af"]
    expected: FAIL

  [:op="gt";rhs="1i";test="ai"]

  [:op="gt";rhs="1i";test="array"]

  [:op="gt";rhs="1i";test="atomic"]
    expected: FAIL

  [:op="gt";rhs="1i";test="bool"]
    expected: FAIL

  [:op="gt";rhs="1i";test="f16"]
    expected:
      if os == "mac": FAIL

  [:op="gt";rhs="1i";test="f32"]
    expected: FAIL

  [:op="gt";rhs="1i";test="i32"]

  [:op="gt";rhs="1i";test="matf_matching"]

  [:op="gt";rhs="1i";test="matf_no_match"]

  [:op="gt";rhs="1i";test="math"]

  [:op="gt";rhs="1i";test="sampler"]

  [:op="gt";rhs="1i";test="struct"]

  [:op="gt";rhs="1i";test="texture"]

  [:op="gt";rhs="1i";test="u32"]
    expected: FAIL

  [:op="gt";rhs="1i";test="vec"]

  [:op="gt";rhs="ai";test="af"]
    expected: FAIL

  [:op="gt";rhs="ai";test="ai"]
    expected: FAIL

  [:op="gt";rhs="ai";test="array"]

  [:op="gt";rhs="ai";test="atomic"]

  [:op="gt";rhs="ai";test="bool"]
    expected: FAIL

  [:op="gt";rhs="ai";test="f16"]

  [:op="gt";rhs="ai";test="f32"]

  [:op="gt";rhs="ai";test="i32"]
    expected: FAIL

  [:op="gt";rhs="ai";test="matf_matching"]

  [:op="gt";rhs="ai";test="matf_no_match"]

  [:op="gt";rhs="ai";test="math"]

  [:op="gt";rhs="ai";test="sampler"]

  [:op="gt";rhs="ai";test="struct"]

  [:op="gt";rhs="ai";test="texture"]

  [:op="gt";rhs="ai";test="u32"]
    expected: FAIL

  [:op="gt";rhs="ai";test="vec"]

  [:op="gt";rhs="mat2x3f()";test="af"]

  [:op="gt";rhs="mat2x3f()";test="ai"]

  [:op="gt";rhs="mat2x3f()";test="array"]

  [:op="gt";rhs="mat2x3f()";test="atomic"]

  [:op="gt";rhs="mat2x3f()";test="bool"]

  [:op="gt";rhs="mat2x3f()";test="f16"]

  [:op="gt";rhs="mat2x3f()";test="f32"]

  [:op="gt";rhs="mat2x3f()";test="i32"]

  [:op="gt";rhs="mat2x3f()";test="matf_matching"]

  [:op="gt";rhs="mat2x3f()";test="matf_no_match"]

  [:op="gt";rhs="mat2x3f()";test="math"]

  [:op="gt";rhs="mat2x3f()";test="sampler"]

  [:op="gt";rhs="mat2x3f()";test="struct"]

  [:op="gt";rhs="mat2x3f()";test="texture"]

  [:op="gt";rhs="mat2x3f()";test="u32"]

  [:op="gt";rhs="mat2x3f()";test="vec"]

  [:op="gt";rhs="mat2x3h()";test="af"]

  [:op="gt";rhs="mat2x3h()";test="ai"]

  [:op="gt";rhs="mat2x3h()";test="array"]

  [:op="gt";rhs="mat2x3h()";test="atomic"]

  [:op="gt";rhs="mat2x3h()";test="bool"]

  [:op="gt";rhs="mat2x3h()";test="f16"]

  [:op="gt";rhs="mat2x3h()";test="f32"]

  [:op="gt";rhs="mat2x3h()";test="i32"]

  [:op="gt";rhs="mat2x3h()";test="matf_matching"]

  [:op="gt";rhs="mat2x3h()";test="matf_no_match"]

  [:op="gt";rhs="mat2x3h()";test="math"]

  [:op="gt";rhs="mat2x3h()";test="sampler"]

  [:op="gt";rhs="mat2x3h()";test="struct"]

  [:op="gt";rhs="mat2x3h()";test="texture"]

  [:op="gt";rhs="mat2x3h()";test="u32"]

  [:op="gt";rhs="mat2x3h()";test="vec"]

  [:op="le";rhs="1i";test="af"]
    expected: FAIL

  [:op="le";rhs="1i";test="ai"]

  [:op="le";rhs="1i";test="array"]

  [:op="le";rhs="1i";test="atomic"]
    expected: FAIL

  [:op="le";rhs="1i";test="bool"]
    expected: FAIL

  [:op="le";rhs="1i";test="f16"]
    expected:
      if os == "mac": FAIL

  [:op="le";rhs="1i";test="f32"]
    expected: FAIL

  [:op="le";rhs="1i";test="i32"]

  [:op="le";rhs="1i";test="matf_matching"]

  [:op="le";rhs="1i";test="matf_no_match"]

  [:op="le";rhs="1i";test="math"]

  [:op="le";rhs="1i";test="sampler"]

  [:op="le";rhs="1i";test="struct"]

  [:op="le";rhs="1i";test="texture"]

  [:op="le";rhs="1i";test="u32"]
    expected: FAIL

  [:op="le";rhs="1i";test="vec"]

  [:op="le";rhs="ai";test="af"]
    expected: FAIL

  [:op="le";rhs="ai";test="ai"]
    expected: FAIL

  [:op="le";rhs="ai";test="array"]

  [:op="le";rhs="ai";test="atomic"]

  [:op="le";rhs="ai";test="bool"]
    expected: FAIL

  [:op="le";rhs="ai";test="f16"]

  [:op="le";rhs="ai";test="f32"]

  [:op="le";rhs="ai";test="i32"]
    expected: FAIL

  [:op="le";rhs="ai";test="matf_matching"]

  [:op="le";rhs="ai";test="matf_no_match"]

  [:op="le";rhs="ai";test="math"]

  [:op="le";rhs="ai";test="sampler"]

  [:op="le";rhs="ai";test="struct"]

  [:op="le";rhs="ai";test="texture"]

  [:op="le";rhs="ai";test="u32"]
    expected: FAIL

  [:op="le";rhs="ai";test="vec"]

  [:op="le";rhs="mat2x3f()";test="af"]

  [:op="le";rhs="mat2x3f()";test="ai"]

  [:op="le";rhs="mat2x3f()";test="array"]

  [:op="le";rhs="mat2x3f()";test="atomic"]

  [:op="le";rhs="mat2x3f()";test="bool"]

  [:op="le";rhs="mat2x3f()";test="f16"]

  [:op="le";rhs="mat2x3f()";test="f32"]

  [:op="le";rhs="mat2x3f()";test="i32"]

  [:op="le";rhs="mat2x3f()";test="matf_matching"]

  [:op="le";rhs="mat2x3f()";test="matf_no_match"]

  [:op="le";rhs="mat2x3f()";test="math"]

  [:op="le";rhs="mat2x3f()";test="sampler"]

  [:op="le";rhs="mat2x3f()";test="struct"]

  [:op="le";rhs="mat2x3f()";test="texture"]

  [:op="le";rhs="mat2x3f()";test="u32"]

  [:op="le";rhs="mat2x3f()";test="vec"]

  [:op="le";rhs="mat2x3h()";test="af"]

  [:op="le";rhs="mat2x3h()";test="ai"]

  [:op="le";rhs="mat2x3h()";test="array"]

  [:op="le";rhs="mat2x3h()";test="atomic"]

  [:op="le";rhs="mat2x3h()";test="bool"]

  [:op="le";rhs="mat2x3h()";test="f16"]

  [:op="le";rhs="mat2x3h()";test="f32"]

  [:op="le";rhs="mat2x3h()";test="i32"]

  [:op="le";rhs="mat2x3h()";test="matf_matching"]

  [:op="le";rhs="mat2x3h()";test="matf_no_match"]

  [:op="le";rhs="mat2x3h()";test="math"]

  [:op="le";rhs="mat2x3h()";test="sampler"]

  [:op="le";rhs="mat2x3h()";test="struct"]

  [:op="le";rhs="mat2x3h()";test="texture"]

  [:op="le";rhs="mat2x3h()";test="u32"]

  [:op="le";rhs="mat2x3h()";test="vec"]

  [:op="lt";rhs="1i";test="af"]
    expected: FAIL

  [:op="lt";rhs="1i";test="ai"]

  [:op="lt";rhs="1i";test="array"]

  [:op="lt";rhs="1i";test="atomic"]
    expected: FAIL

  [:op="lt";rhs="1i";test="bool"]
    expected: FAIL

  [:op="lt";rhs="1i";test="f16"]
    expected:
      if os == "mac": FAIL

  [:op="lt";rhs="1i";test="f32"]
    expected: FAIL

  [:op="lt";rhs="1i";test="i32"]

  [:op="lt";rhs="1i";test="matf_matching"]

  [:op="lt";rhs="1i";test="matf_no_match"]

  [:op="lt";rhs="1i";test="math"]

  [:op="lt";rhs="1i";test="sampler"]

  [:op="lt";rhs="1i";test="struct"]

  [:op="lt";rhs="1i";test="texture"]

  [:op="lt";rhs="1i";test="u32"]
    expected: FAIL

  [:op="lt";rhs="1i";test="vec"]

  [:op="lt";rhs="ai";test="af"]
    expected: FAIL

  [:op="lt";rhs="ai";test="ai"]
    expected: FAIL

  [:op="lt";rhs="ai";test="array"]

  [:op="lt";rhs="ai";test="atomic"]

  [:op="lt";rhs="ai";test="bool"]
    expected: FAIL

  [:op="lt";rhs="ai";test="f16"]

  [:op="lt";rhs="ai";test="f32"]

  [:op="lt";rhs="ai";test="i32"]
    expected: FAIL

  [:op="lt";rhs="ai";test="matf_matching"]

  [:op="lt";rhs="ai";test="matf_no_match"]

  [:op="lt";rhs="ai";test="math"]

  [:op="lt";rhs="ai";test="sampler"]

  [:op="lt";rhs="ai";test="struct"]

  [:op="lt";rhs="ai";test="texture"]

  [:op="lt";rhs="ai";test="u32"]
    expected: FAIL

  [:op="lt";rhs="ai";test="vec"]

  [:op="lt";rhs="mat2x3f()";test="af"]

  [:op="lt";rhs="mat2x3f()";test="ai"]

  [:op="lt";rhs="mat2x3f()";test="array"]

  [:op="lt";rhs="mat2x3f()";test="atomic"]

  [:op="lt";rhs="mat2x3f()";test="bool"]

  [:op="lt";rhs="mat2x3f()";test="f16"]

  [:op="lt";rhs="mat2x3f()";test="f32"]

  [:op="lt";rhs="mat2x3f()";test="i32"]

  [:op="lt";rhs="mat2x3f()";test="matf_matching"]

  [:op="lt";rhs="mat2x3f()";test="matf_no_match"]

  [:op="lt";rhs="mat2x3f()";test="math"]

  [:op="lt";rhs="mat2x3f()";test="sampler"]

  [:op="lt";rhs="mat2x3f()";test="struct"]

  [:op="lt";rhs="mat2x3f()";test="texture"]

  [:op="lt";rhs="mat2x3f()";test="u32"]

  [:op="lt";rhs="mat2x3f()";test="vec"]

  [:op="lt";rhs="mat2x3h()";test="af"]

  [:op="lt";rhs="mat2x3h()";test="ai"]

  [:op="lt";rhs="mat2x3h()";test="array"]

  [:op="lt";rhs="mat2x3h()";test="atomic"]

  [:op="lt";rhs="mat2x3h()";test="bool"]

  [:op="lt";rhs="mat2x3h()";test="f16"]

  [:op="lt";rhs="mat2x3h()";test="f32"]

  [:op="lt";rhs="mat2x3h()";test="i32"]

  [:op="lt";rhs="mat2x3h()";test="matf_matching"]

  [:op="lt";rhs="mat2x3h()";test="matf_no_match"]

  [:op="lt";rhs="mat2x3h()";test="math"]

  [:op="lt";rhs="mat2x3h()";test="sampler"]

  [:op="lt";rhs="mat2x3h()";test="struct"]

  [:op="lt";rhs="mat2x3h()";test="texture"]

  [:op="lt";rhs="mat2x3h()";test="u32"]

  [:op="lt";rhs="mat2x3h()";test="vec"]

  [:op="ne";rhs="1i";test="af"]
    expected: FAIL

  [:op="ne";rhs="1i";test="ai"]

  [:op="ne";rhs="1i";test="array"]

  [:op="ne";rhs="1i";test="atomic"]
    expected: FAIL

  [:op="ne";rhs="1i";test="bool"]
    expected: FAIL

  [:op="ne";rhs="1i";test="f16"]
    expected:
      if os == "mac": FAIL

  [:op="ne";rhs="1i";test="f32"]
    expected: FAIL

  [:op="ne";rhs="1i";test="i32"]

  [:op="ne";rhs="1i";test="matf_matching"]

  [:op="ne";rhs="1i";test="matf_no_match"]

  [:op="ne";rhs="1i";test="math"]

  [:op="ne";rhs="1i";test="sampler"]

  [:op="ne";rhs="1i";test="struct"]

  [:op="ne";rhs="1i";test="texture"]

  [:op="ne";rhs="1i";test="u32"]
    expected: FAIL

  [:op="ne";rhs="1i";test="vec"]

  [:op="ne";rhs="ai";test="af"]
    expected: FAIL

  [:op="ne";rhs="ai";test="ai"]
    expected: FAIL

  [:op="ne";rhs="ai";test="array"]

  [:op="ne";rhs="ai";test="atomic"]

  [:op="ne";rhs="ai";test="bool"]
    expected: FAIL

  [:op="ne";rhs="ai";test="f16"]

  [:op="ne";rhs="ai";test="f32"]

  [:op="ne";rhs="ai";test="i32"]
    expected: FAIL

  [:op="ne";rhs="ai";test="matf_matching"]

  [:op="ne";rhs="ai";test="matf_no_match"]

  [:op="ne";rhs="ai";test="math"]

  [:op="ne";rhs="ai";test="sampler"]

  [:op="ne";rhs="ai";test="struct"]

  [:op="ne";rhs="ai";test="texture"]

  [:op="ne";rhs="ai";test="u32"]
    expected: FAIL

  [:op="ne";rhs="ai";test="vec"]

  [:op="ne";rhs="mat2x3f()";test="af"]

  [:op="ne";rhs="mat2x3f()";test="ai"]

  [:op="ne";rhs="mat2x3f()";test="array"]

  [:op="ne";rhs="mat2x3f()";test="atomic"]

  [:op="ne";rhs="mat2x3f()";test="bool"]

  [:op="ne";rhs="mat2x3f()";test="f16"]

  [:op="ne";rhs="mat2x3f()";test="f32"]

  [:op="ne";rhs="mat2x3f()";test="i32"]

  [:op="ne";rhs="mat2x3f()";test="matf_matching"]

  [:op="ne";rhs="mat2x3f()";test="matf_no_match"]

  [:op="ne";rhs="mat2x3f()";test="math"]

  [:op="ne";rhs="mat2x3f()";test="sampler"]

  [:op="ne";rhs="mat2x3f()";test="struct"]

  [:op="ne";rhs="mat2x3f()";test="texture"]

  [:op="ne";rhs="mat2x3f()";test="u32"]

  [:op="ne";rhs="mat2x3f()";test="vec"]

  [:op="ne";rhs="mat2x3h()";test="af"]

  [:op="ne";rhs="mat2x3h()";test="ai"]

  [:op="ne";rhs="mat2x3h()";test="array"]

  [:op="ne";rhs="mat2x3h()";test="atomic"]

  [:op="ne";rhs="mat2x3h()";test="bool"]

  [:op="ne";rhs="mat2x3h()";test="f16"]

  [:op="ne";rhs="mat2x3h()";test="f32"]

  [:op="ne";rhs="mat2x3h()";test="i32"]

  [:op="ne";rhs="mat2x3h()";test="matf_matching"]

  [:op="ne";rhs="mat2x3h()";test="matf_no_match"]

  [:op="ne";rhs="mat2x3h()";test="math"]

  [:op="ne";rhs="mat2x3h()";test="sampler"]

  [:op="ne";rhs="mat2x3h()";test="struct"]

  [:op="ne";rhs="mat2x3h()";test="texture"]

  [:op="ne";rhs="mat2x3h()";test="u32"]

  [:op="ne";rhs="mat2x3h()";test="vec"]
