Skip to content

[PTO] 缺少 pto-spec 定义的 TSORT / TMRGSORT 编译接口(sorting 模块) #59

Description

@zzzyh222

背景

pto-spec 的 sorting 模块定义了两条 SFU 排序指令,规范链接:

现状(已确认)

当前仓库中这两条指令缺少可端到端使用的编译接口,具体如下:

1. dev-llvm15_56(LinxV5 后端)

  • AsmParser / InstPrinter 仅有 tsort32 / tmrgsort 到 TEPL selector 常量(108/109)的映射:
    • llvm/lib/Target/LinxV5/AsmParser/LinxV5AsmParser.cpp:2900-2901
    • llvm/lib/Target/LinxV5/MCTargetDesc/LinxV5InstPrinter.cpp:1026-1027
  • 缺失:LLVM IR intrinsic、Clang builtin、MLIR PTO op、LinxV5InstrInfo.td 指令定义 / 合法化 / 指令选择(ISel),因此从 C/MLIR 无法生成这两条指令,也无法表达 sort_width、ascending/descending、index 输出等语义。

2. main(LinxISA 后端 + MLIR PTO)

  • MLIR PTO dialect 已有 tsort32 / tmrgsort 的 op 定义与 verifier(含 DPS 与 tilebuf 变体),但 DPS 变体的 lowering 仅生成 EmitC CallOpaqueOp(C 函数调用 TSORT32 / TMRGSORT),tilebuf 变体没有 lowering;
  • LLVM LinxISA 后端仅有 tile engine 枚举 TSORT(0x06C)/ TMRGSORT(0x06D)(llvm/lib/Target/LinxISA/LinxISATileEnginesV058.h),AsmParser 无对应助记符,LinxISAInstrInfo.td 无指令定义。

期望

按 pto-spec 语义补齐接口,使这两条指令可以端到端生成:

  1. 提供可用的 MLIR PTO op / LLVM intrinsic / builtin,覆盖 sort_width、ascending/descending、original-index 输出等操作数语义;
  2. 补齐 LinxV5 / LinxISA 后端的指令定义、合法化与指令选择(ISel),让 tsort32 / tmrgsort 能由编译器直接生成。

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions