From 2e20cd9156418c030c2bfe326be16c696dbd5353 Mon Sep 17 00:00:00 2001 From: Vladimir Shiryaev Date: Fri, 26 Jun 2026 19:44:51 -0700 Subject: [PATCH] [mlir][dxsa] Refine tests for condition instructions Merge per-op condition/{eq,ge,lt,ne,ieq,ige,ilt,ine,uge,ult}.test files into a single condition_ops.test, and reduce each instruction to two cases: a composite mask+swizzle (plus neg/neg_abs for float ops) and a precise variant. Signed-off-by: Vladimir Shiryaev --- mlir/test/Target/DXSA/condition/eq.test | 21 ---- mlir/test/Target/DXSA/condition/ge.test | 21 ---- mlir/test/Target/DXSA/condition/ieq.test | 15 --- mlir/test/Target/DXSA/condition/ige.test | 15 --- mlir/test/Target/DXSA/condition/ilt.test | 15 --- mlir/test/Target/DXSA/condition/ine.test | 15 --- mlir/test/Target/DXSA/condition/lt.test | 21 ---- mlir/test/Target/DXSA/condition/ne.test | 21 ---- mlir/test/Target/DXSA/condition/uge.test | 15 --- mlir/test/Target/DXSA/condition/ult.test | 15 --- mlir/test/Target/DXSA/condition_ops.test | 140 +++++++++++++++++++++++ 11 files changed, 140 insertions(+), 174 deletions(-) delete mode 100644 mlir/test/Target/DXSA/condition/eq.test delete mode 100644 mlir/test/Target/DXSA/condition/ge.test delete mode 100644 mlir/test/Target/DXSA/condition/ieq.test delete mode 100644 mlir/test/Target/DXSA/condition/ige.test delete mode 100644 mlir/test/Target/DXSA/condition/ilt.test delete mode 100644 mlir/test/Target/DXSA/condition/ine.test delete mode 100644 mlir/test/Target/DXSA/condition/lt.test delete mode 100644 mlir/test/Target/DXSA/condition/ne.test delete mode 100644 mlir/test/Target/DXSA/condition/uge.test delete mode 100644 mlir/test/Target/DXSA/condition/ult.test create mode 100644 mlir/test/Target/DXSA/condition_ops.test diff --git a/mlir/test/Target/DXSA/condition/eq.test b/mlir/test/Target/DXSA/condition/eq.test deleted file mode 100644 index 0b2e44d51248..000000000000 --- a/mlir/test/Target/DXSA/condition/eq.test +++ /dev/null @@ -1,21 +0,0 @@ -// RUN: mlir-translate --import-dxsa-hex %s | FileCheck %s -// RUN: mlir-translate --import-dxsa-hex %s | mlir-opt --verify-roundtrip - -// CHECK: dxsa.module { - -// CHECK-NEXT: dxsa.eq r<0>, r<1>, r<2> -0x07000018, 0x001000f2, 0x00000000, 0x00100e46, 0x00000001, 0x00100e46, 0x00000002 - -// CHECK-NEXT: dxsa.eq r<0>, -r<1>, |r<2>| -0x09000018, 0x001000f2, 0x00000000, 0x80100e46, 0x00000041, 0x00000001, 0x80100e46, 0x00000081, 0x00000002 - -// CHECK-NEXT: dxsa.eq r<0>, -|r<1>|, r<2> -0x08000018, 0x001000f2, 0x00000000, 0x80100e46, 0x000000c1, 0x00000001, 0x00100e46, 0x00000002 - -// CHECK-NEXT: dxsa.eq r<0, >, r<1, >, r<2, > -0x07000018, 0x00100012, 0x00000000, 0x00100796, 0x00000001, 0x00100006, 0x00000002 - -// CHECK-NEXT: dxsa.eq precise r<0>, r<1>, r<2> -0x07780018, 0x001000f2, 0x00000000, 0x00100e46, 0x00000001, 0x00100e46, 0x00000002 - -// CHECK-NEXT: } diff --git a/mlir/test/Target/DXSA/condition/ge.test b/mlir/test/Target/DXSA/condition/ge.test deleted file mode 100644 index af4c8bc95da7..000000000000 --- a/mlir/test/Target/DXSA/condition/ge.test +++ /dev/null @@ -1,21 +0,0 @@ -// RUN: mlir-translate --import-dxsa-hex %s | FileCheck %s -// RUN: mlir-translate --import-dxsa-hex %s | mlir-opt --verify-roundtrip - -// CHECK: dxsa.module { - -// CHECK-NEXT: dxsa.ge r<0>, r<1>, r<2> -0x0700001d, 0x001000f2, 0x00000000, 0x00100e46, 0x00000001, 0x00100e46, 0x00000002 - -// CHECK-NEXT: dxsa.ge r<0>, -r<1>, |r<2>| -0x0900001d, 0x001000f2, 0x00000000, 0x80100e46, 0x00000041, 0x00000001, 0x80100e46, 0x00000081, 0x00000002 - -// CHECK-NEXT: dxsa.ge r<0>, -|r<1>|, r<2> -0x0800001d, 0x001000f2, 0x00000000, 0x80100e46, 0x000000c1, 0x00000001, 0x00100e46, 0x00000002 - -// CHECK-NEXT: dxsa.ge r<0, >, r<1, >, r<2, > -0x0700001d, 0x00100012, 0x00000000, 0x00100796, 0x00000001, 0x00100006, 0x00000002 - -// CHECK-NEXT: dxsa.ge precise r<0>, r<1>, r<2> -0x0778001d, 0x001000f2, 0x00000000, 0x00100e46, 0x00000001, 0x00100e46, 0x00000002 - -// CHECK-NEXT: } diff --git a/mlir/test/Target/DXSA/condition/ieq.test b/mlir/test/Target/DXSA/condition/ieq.test deleted file mode 100644 index 1de2028f8f3a..000000000000 --- a/mlir/test/Target/DXSA/condition/ieq.test +++ /dev/null @@ -1,15 +0,0 @@ -// RUN: mlir-translate --import-dxsa-hex %s | FileCheck %s -// RUN: mlir-translate --import-dxsa-hex %s | mlir-opt --verify-roundtrip - -// CHECK: dxsa.module { - -// CHECK-NEXT: dxsa.ieq r<0>, r<1>, r<2> -0x07000020, 0x001000f2, 0x00000000, 0x00100e46, 0x00000001, 0x00100e46, 0x00000002 - -// CHECK-NEXT: dxsa.ieq r<0, >, r<1, >, r<2, > -0x07000020, 0x00100012, 0x00000000, 0x00100796, 0x00000001, 0x00100006, 0x00000002 - -// CHECK-NEXT: dxsa.ieq precise r<0>, r<1>, r<2> -0x07780020, 0x001000f2, 0x00000000, 0x00100e46, 0x00000001, 0x00100e46, 0x00000002 - -// CHECK-NEXT: } diff --git a/mlir/test/Target/DXSA/condition/ige.test b/mlir/test/Target/DXSA/condition/ige.test deleted file mode 100644 index 80e142d50a46..000000000000 --- a/mlir/test/Target/DXSA/condition/ige.test +++ /dev/null @@ -1,15 +0,0 @@ -// RUN: mlir-translate --import-dxsa-hex %s | FileCheck %s -// RUN: mlir-translate --import-dxsa-hex %s | mlir-opt --verify-roundtrip - -// CHECK: dxsa.module { - -// CHECK-NEXT: dxsa.ige r<0>, r<1>, r<2> -0x07000021, 0x001000f2, 0x00000000, 0x00100e46, 0x00000001, 0x00100e46, 0x00000002 - -// CHECK-NEXT: dxsa.ige r<0, >, r<1, >, r<2, > -0x07000021, 0x00100012, 0x00000000, 0x00100796, 0x00000001, 0x00100006, 0x00000002 - -// CHECK-NEXT: dxsa.ige precise r<0>, r<1>, r<2> -0x07780021, 0x001000f2, 0x00000000, 0x00100e46, 0x00000001, 0x00100e46, 0x00000002 - -// CHECK-NEXT: } diff --git a/mlir/test/Target/DXSA/condition/ilt.test b/mlir/test/Target/DXSA/condition/ilt.test deleted file mode 100644 index ac5013f288ad..000000000000 --- a/mlir/test/Target/DXSA/condition/ilt.test +++ /dev/null @@ -1,15 +0,0 @@ -// RUN: mlir-translate --import-dxsa-hex %s | FileCheck %s -// RUN: mlir-translate --import-dxsa-hex %s | mlir-opt --verify-roundtrip - -// CHECK: dxsa.module { - -// CHECK-NEXT: dxsa.ilt r<0>, r<1>, r<2> -0x07000022, 0x001000f2, 0x00000000, 0x00100e46, 0x00000001, 0x00100e46, 0x00000002 - -// CHECK-NEXT: dxsa.ilt r<0, >, r<1, >, r<2, > -0x07000022, 0x00100012, 0x00000000, 0x00100796, 0x00000001, 0x00100006, 0x00000002 - -// CHECK-NEXT: dxsa.ilt precise r<0>, r<1>, r<2> -0x07780022, 0x001000f2, 0x00000000, 0x00100e46, 0x00000001, 0x00100e46, 0x00000002 - -// CHECK-NEXT: } diff --git a/mlir/test/Target/DXSA/condition/ine.test b/mlir/test/Target/DXSA/condition/ine.test deleted file mode 100644 index fb844801a0d5..000000000000 --- a/mlir/test/Target/DXSA/condition/ine.test +++ /dev/null @@ -1,15 +0,0 @@ -// RUN: mlir-translate --import-dxsa-hex %s | FileCheck %s -// RUN: mlir-translate --import-dxsa-hex %s | mlir-opt --verify-roundtrip - -// CHECK: dxsa.module { - -// CHECK-NEXT: dxsa.ine r<0>, r<1>, r<2> -0x07000027, 0x001000f2, 0x00000000, 0x00100e46, 0x00000001, 0x00100e46, 0x00000002 - -// CHECK-NEXT: dxsa.ine r<0, >, r<1, >, r<2, > -0x07000027, 0x00100012, 0x00000000, 0x00100796, 0x00000001, 0x00100006, 0x00000002 - -// CHECK-NEXT: dxsa.ine precise r<0>, r<1>, r<2> -0x07780027, 0x001000f2, 0x00000000, 0x00100e46, 0x00000001, 0x00100e46, 0x00000002 - -// CHECK-NEXT: } diff --git a/mlir/test/Target/DXSA/condition/lt.test b/mlir/test/Target/DXSA/condition/lt.test deleted file mode 100644 index acf942611e99..000000000000 --- a/mlir/test/Target/DXSA/condition/lt.test +++ /dev/null @@ -1,21 +0,0 @@ -// RUN: mlir-translate --import-dxsa-hex %s | FileCheck %s -// RUN: mlir-translate --import-dxsa-hex %s | mlir-opt --verify-roundtrip - -// CHECK: dxsa.module { - -// CHECK-NEXT: dxsa.lt r<0>, r<1>, r<2> -0x07000031, 0x001000f2, 0x00000000, 0x00100e46, 0x00000001, 0x00100e46, 0x00000002 - -// CHECK-NEXT: dxsa.lt r<0>, -r<1>, |r<2>| -0x09000031, 0x001000f2, 0x00000000, 0x80100e46, 0x00000041, 0x00000001, 0x80100e46, 0x00000081, 0x00000002 - -// CHECK-NEXT: dxsa.lt r<0>, -|r<1>|, r<2> -0x08000031, 0x001000f2, 0x00000000, 0x80100e46, 0x000000c1, 0x00000001, 0x00100e46, 0x00000002 - -// CHECK-NEXT: dxsa.lt r<0, >, r<1, >, r<2, > -0x07000031, 0x00100012, 0x00000000, 0x00100796, 0x00000001, 0x00100006, 0x00000002 - -// CHECK-NEXT: dxsa.lt precise r<0>, r<1>, r<2> -0x07780031, 0x001000f2, 0x00000000, 0x00100e46, 0x00000001, 0x00100e46, 0x00000002 - -// CHECK-NEXT: } diff --git a/mlir/test/Target/DXSA/condition/ne.test b/mlir/test/Target/DXSA/condition/ne.test deleted file mode 100644 index 18eecf650e05..000000000000 --- a/mlir/test/Target/DXSA/condition/ne.test +++ /dev/null @@ -1,21 +0,0 @@ -// RUN: mlir-translate --import-dxsa-hex %s | FileCheck %s -// RUN: mlir-translate --import-dxsa-hex %s | mlir-opt --verify-roundtrip - -// CHECK: dxsa.module { - -// CHECK-NEXT: dxsa.ne r<0>, r<1>, r<2> -0x07000039, 0x001000f2, 0x00000000, 0x00100e46, 0x00000001, 0x00100e46, 0x00000002 - -// CHECK-NEXT: dxsa.ne r<0>, -r<1>, |r<2>| -0x09000039, 0x001000f2, 0x00000000, 0x80100e46, 0x00000041, 0x00000001, 0x80100e46, 0x00000081, 0x00000002 - -// CHECK-NEXT: dxsa.ne r<0>, -|r<1>|, r<2> -0x08000039, 0x001000f2, 0x00000000, 0x80100e46, 0x000000c1, 0x00000001, 0x00100e46, 0x00000002 - -// CHECK-NEXT: dxsa.ne r<0, >, r<1, >, r<2, > -0x07000039, 0x00100012, 0x00000000, 0x00100796, 0x00000001, 0x00100006, 0x00000002 - -// CHECK-NEXT: dxsa.ne precise r<0>, r<1>, r<2> -0x07780039, 0x001000f2, 0x00000000, 0x00100e46, 0x00000001, 0x00100e46, 0x00000002 - -// CHECK-NEXT: } diff --git a/mlir/test/Target/DXSA/condition/uge.test b/mlir/test/Target/DXSA/condition/uge.test deleted file mode 100644 index 98a89f0a4fab..000000000000 --- a/mlir/test/Target/DXSA/condition/uge.test +++ /dev/null @@ -1,15 +0,0 @@ -// RUN: mlir-translate --import-dxsa-hex %s | FileCheck %s -// RUN: mlir-translate --import-dxsa-hex %s | mlir-opt --verify-roundtrip - -// CHECK: dxsa.module { - -// CHECK-NEXT: dxsa.uge r<0>, r<1>, r<2> -0x07000050, 0x001000f2, 0x00000000, 0x00100e46, 0x00000001, 0x00100e46, 0x00000002 - -// CHECK-NEXT: dxsa.uge r<0, >, r<1, >, r<2, > -0x07000050, 0x00100012, 0x00000000, 0x00100796, 0x00000001, 0x00100006, 0x00000002 - -// CHECK-NEXT: dxsa.uge precise r<0>, r<1>, r<2> -0x07780050, 0x001000f2, 0x00000000, 0x00100e46, 0x00000001, 0x00100e46, 0x00000002 - -// CHECK-NEXT: } diff --git a/mlir/test/Target/DXSA/condition/ult.test b/mlir/test/Target/DXSA/condition/ult.test deleted file mode 100644 index 4ed3a61161bc..000000000000 --- a/mlir/test/Target/DXSA/condition/ult.test +++ /dev/null @@ -1,15 +0,0 @@ -// RUN: mlir-translate --import-dxsa-hex %s | FileCheck %s -// RUN: mlir-translate --import-dxsa-hex %s | mlir-opt --verify-roundtrip - -// CHECK: dxsa.module { - -// CHECK-NEXT: dxsa.ult r<0>, r<1>, r<2> -0x0700004f, 0x001000f2, 0x00000000, 0x00100e46, 0x00000001, 0x00100e46, 0x00000002 - -// CHECK-NEXT: dxsa.ult r<0, >, r<1, >, r<2, > -0x0700004f, 0x00100012, 0x00000000, 0x00100796, 0x00000001, 0x00100006, 0x00000002 - -// CHECK-NEXT: dxsa.ult precise r<0>, r<1>, r<2> -0x0778004f, 0x001000f2, 0x00000000, 0x00100e46, 0x00000001, 0x00100e46, 0x00000002 - -// CHECK-NEXT: } diff --git a/mlir/test/Target/DXSA/condition_ops.test b/mlir/test/Target/DXSA/condition_ops.test new file mode 100644 index 000000000000..bc80c2ed3542 --- /dev/null +++ b/mlir/test/Target/DXSA/condition_ops.test @@ -0,0 +1,140 @@ +// RUN: mlir-translate --split-input-file --import-dxsa-hex %s | FileCheck %s +// RUN: mlir-translate --split-input-file --import-dxsa-hex %s | mlir-opt --split-input-file --verify-roundtrip + +// CHECK-LABEL: dxsa.module { +// CHECK-NEXT: dxsa.eq r<0, >, -r<1, >, -|r<2, >| +// CHECK-NEXT: } +0x09000018, 0x00100012, 0x00000000, 0x80100796, 0x00000041, 0x00000001, 0x80100006, 0x000000c1, 0x00000002 + +// ----- + +// CHECK-LABEL: dxsa.module { +// CHECK-NEXT: dxsa.eq precise r<0>, r<1>, |r<2>| +// CHECK-NEXT: } +0x08780018, 0x001000f2, 0x00000000, 0x00100e46, 0x00000001, 0x80100e46, 0x00000081, 0x00000002 + +// ----- + +// CHECK-LABEL: dxsa.module { +// CHECK-NEXT: dxsa.ge r<0, >, -r<1, >, -|r<2, >| +// CHECK-NEXT: } +0x0900001d, 0x00100012, 0x00000000, 0x80100796, 0x00000041, 0x00000001, 0x80100006, 0x000000c1, 0x00000002 + +// ----- + +// CHECK-LABEL: dxsa.module { +// CHECK-NEXT: dxsa.ge precise r<0>, r<1>, |r<2>| +// CHECK-NEXT: } +0x0878001d, 0x001000f2, 0x00000000, 0x00100e46, 0x00000001, 0x80100e46, 0x00000081, 0x00000002 + +// ----- + +// CHECK-LABEL: dxsa.module { +// CHECK-NEXT: dxsa.lt r<0, >, -r<1, >, -|r<2, >| +// CHECK-NEXT: } +0x09000031, 0x00100012, 0x00000000, 0x80100796, 0x00000041, 0x00000001, 0x80100006, 0x000000c1, 0x00000002 + +// ----- + +// CHECK-LABEL: dxsa.module { +// CHECK-NEXT: dxsa.lt precise r<0>, r<1>, |r<2>| +// CHECK-NEXT: } +0x08780031, 0x001000f2, 0x00000000, 0x00100e46, 0x00000001, 0x80100e46, 0x00000081, 0x00000002 + +// ----- + +// CHECK-LABEL: dxsa.module { +// CHECK-NEXT: dxsa.ne r<0, >, -r<1, >, -|r<2, >| +// CHECK-NEXT: } +0x09000039, 0x00100012, 0x00000000, 0x80100796, 0x00000041, 0x00000001, 0x80100006, 0x000000c1, 0x00000002 + +// ----- + +// CHECK-LABEL: dxsa.module { +// CHECK-NEXT: dxsa.ne precise r<0>, r<1>, |r<2>| +// CHECK-NEXT: } +0x08780039, 0x001000f2, 0x00000000, 0x00100e46, 0x00000001, 0x80100e46, 0x00000081, 0x00000002 + +// ----- + +// CHECK-LABEL: dxsa.module { +// CHECK-NEXT: dxsa.ieq r<0, >, r<1, >, r<2, > +// CHECK-NEXT: } +0x07000020, 0x00100012, 0x00000000, 0x00100796, 0x00000001, 0x00100006, 0x00000002 + +// ----- + +// CHECK-LABEL: dxsa.module { +// CHECK-NEXT: dxsa.ieq precise r<0>, r<1>, r<2> +// CHECK-NEXT: } +0x07780020, 0x001000f2, 0x00000000, 0x00100e46, 0x00000001, 0x00100e46, 0x00000002 + +// ----- + +// CHECK-LABEL: dxsa.module { +// CHECK-NEXT: dxsa.ige r<0, >, r<1, >, r<2, > +// CHECK-NEXT: } +0x07000021, 0x00100012, 0x00000000, 0x00100796, 0x00000001, 0x00100006, 0x00000002 + +// ----- + +// CHECK-LABEL: dxsa.module { +// CHECK-NEXT: dxsa.ige precise r<0>, r<1>, r<2> +// CHECK-NEXT: } +0x07780021, 0x001000f2, 0x00000000, 0x00100e46, 0x00000001, 0x00100e46, 0x00000002 + +// ----- + +// CHECK-LABEL: dxsa.module { +// CHECK-NEXT: dxsa.ilt r<0, >, r<1, >, r<2, > +// CHECK-NEXT: } +0x07000022, 0x00100012, 0x00000000, 0x00100796, 0x00000001, 0x00100006, 0x00000002 + +// ----- + +// CHECK-LABEL: dxsa.module { +// CHECK-NEXT: dxsa.ilt precise r<0>, r<1>, r<2> +// CHECK-NEXT: } +0x07780022, 0x001000f2, 0x00000000, 0x00100e46, 0x00000001, 0x00100e46, 0x00000002 + +// ----- + +// CHECK-LABEL: dxsa.module { +// CHECK-NEXT: dxsa.ine r<0, >, r<1, >, r<2, > +// CHECK-NEXT: } +0x07000027, 0x00100012, 0x00000000, 0x00100796, 0x00000001, 0x00100006, 0x00000002 + +// ----- + +// CHECK-LABEL: dxsa.module { +// CHECK-NEXT: dxsa.ine precise r<0>, r<1>, r<2> +// CHECK-NEXT: } +0x07780027, 0x001000f2, 0x00000000, 0x00100e46, 0x00000001, 0x00100e46, 0x00000002 + +// ----- + +// CHECK-LABEL: dxsa.module { +// CHECK-NEXT: dxsa.uge r<0, >, r<1, >, r<2, > +// CHECK-NEXT: } +0x07000050, 0x00100012, 0x00000000, 0x00100796, 0x00000001, 0x00100006, 0x00000002 + +// ----- + +// CHECK-LABEL: dxsa.module { +// CHECK-NEXT: dxsa.uge precise r<0>, r<1>, r<2> +// CHECK-NEXT: } +0x07780050, 0x001000f2, 0x00000000, 0x00100e46, 0x00000001, 0x00100e46, 0x00000002 + +// ----- + +// CHECK-LABEL: dxsa.module { +// CHECK-NEXT: dxsa.ult r<0, >, r<1, >, r<2, > +// CHECK-NEXT: } +0x0700004f, 0x00100012, 0x00000000, 0x00100796, 0x00000001, 0x00100006, 0x00000002 + +// ----- + +// CHECK-LABEL: dxsa.module { +// CHECK-NEXT: dxsa.ult precise r<0>, r<1>, r<2> +// CHECK-NEXT: } +0x0778004f, 0x001000f2, 0x00000000, 0x00100e46, 0x00000001, 0x00100e46, 0x00000002