轴归约/扩展操作

本文档描述行/列归约和广播操作。

操作总数: 23


操作

TROWSUM

该指令的详细介绍请见isa/TROWSUM

AS Level 1 (SSA):

%dst = pto.trowsum %src, %tmp : (!pto.tile<...>, !pto.tile<...>) -> !pto.tile<...>

AS Level 2 (DPS):

pto.trowsum ins(%src, %tmp : !pto.tile_buf<...>, !pto.tile_buf<...>) outs(%dst : !pto.tile_buf<...>)

TCOLSUM

该指令的详细介绍请见isa/TCOLSUM

AS Level 1 (SSA):

%dst = pto.tcolsum %src : !pto.tile<...> -> !pto.tile<...>
%dst = pto.tcolsum %src, %tmp {isBinary = false} : (!pto.tile<...>, !pto.tile<...>) -> !pto.tile<...>

AS Level 2 (DPS):

pto.tcolsum ins(%src : !pto.tile_buf<...>) outs(%dst : !pto.tile_buf<...>)
pto.tcolsum ins(%src, %tmp {isBinary = false} : !pto.tile_buf<...>, !pto.tile_buf<...>) outs(%dst : !pto.tile_buf<...>)

TCOLPROD

该指令的详细介绍请见isa/TCOLPROD

AS Level 1 (SSA):

%dst = pto.tcolprod %src : !pto.tile<...> -> !pto.tile<...>

AS Level 2 (DPS):

pto.tcolprod ins(%src : !pto.tile_buf<...>) outs(%dst : !pto.tile_buf<...>)

TCOLMAX

该指令的详细介绍请见isa/TCOLMAX

AS Level 1 (SSA):

%dst = pto.tcolmax %src : !pto.tile<...> -> !pto.tile<...>

AS Level 2 (DPS):

pto.tcolmax ins(%src : !pto.tile_buf<...>) outs(%dst : !pto.tile_buf<...>)

TROWMAX

该指令的详细介绍请见isa/TROWMAX

AS Level 1 (SSA):

%dst = pto.trowmax %src, %tmp : (!pto.tile<...>, !pto.tile<...>) -> !pto.tile<...>

AS Level 2 (DPS):

pto.trowmax ins(%src, %tmp : !pto.tile_buf<...>, !pto.tile_buf<...>) outs(%dst : !pto.tile_buf<...>)

TROWMIN

该指令的详细介绍请见isa/TROWMIN

AS Level 1 (SSA):

%dst = pto.trowmin %src, %tmp : (!pto.tile<...>, !pto.tile<...>) -> !pto.tile<...>

AS Level 2 (DPS):

pto.trowmin ins(%src, %tmp : !pto.tile_buf<...>, !pto.tile_buf<...>) outs(%dst : !pto.tile_buf<...>)

TROWEXPAND

该指令的详细介绍请见isa/TROWEXPAND

AS Level 1 (SSA):

%dst = pto.trowexpand %src : !pto.tile<...> -> !pto.tile<...>

AS Level 2 (DPS):

pto.trowexpand ins(%src : !pto.tile_buf<...>) outs(%dst : !pto.tile_buf<...>)

TROWEXPANDDIV

该指令的详细介绍请见isa/TROWEXPANDDIV

AS Level 1 (SSA):

%dst = pto.tcolexpanddiv %src0, %src1 : !pto.tile<...>, !pto.tile<...> -> !pto.tile<...>

AS Level 2 (DPS):

pto.tcolexpanddiv ins(%src0, %src1 : !pto.tile_buf<...>, !pto.tile_buf<...>) outs(%dst : !pto.tile_buf<...>)

TROWEXPANDMUL

该指令的详细介绍请见isa/TROWEXPANDMUL

AS Level 1 (SSA):

%dst = pto.tcolexpandmul %src0, %src1 : !pto.tile<...>, !pto.tile<...> -> !pto.tile<...>

AS Level 2 (DPS):

pto.tcolexpandmul ins(%src0, %src1 : !pto.tile_buf<...>, !pto.tile_buf<...>) outs(%dst : !pto.tile_buf<...>)

TROWEXPANDSUB

该指令的详细介绍请见isa/TROWEXPANDSUB

AS Level 1 (SSA):

%dst = pto.tcolexpandsub %src0, %src1 : !pto.tile<...>, !pto.tile<...> -> !pto.tile<...>

AS Level 2 (DPS):

pto.tcolexpandsub ins(%src0, %src1 : !pto.tile_buf<...>, !pto.tile_buf<...>) outs(%dst : !pto.tile_buf<...>)

TROWEXPANDADD

该指令的详细介绍请见isa/TROWEXPANDADD

AS Level 1 (SSA):

%dst = pto.trowexpandadd %src0, %src1 : !pto.tile<...>, !pto.tile<...> -> !pto.tile<...>

AS Level 2 (DPS):

pto.trowexpandadd ins(%src0, %src1 : !pto.tile_buf<...>, !pto.tile_buf<...>) outs(%dst : !pto.tile_buf<...>)

TROWEXPANDMAX

该指令的详细介绍请见isa/TROWEXPANDMAX

AS Level 1 (SSA):

%dst = pto.trowexpandmax %src0, %src1 : !pto.tile<...>, !pto.tile<...> -> !pto.tile<...>

AS Level 2 (DPS):

pto.trowexpandmax ins(%src0, %src1 : !pto.tile_buf<...>, !pto.tile_buf<...>) outs(%dst : !pto.tile_buf<...>)

TROWEXPANDMIN

该指令的详细介绍请见isa/TROWEXPANDMIN

AS Level 1 (SSA):

%dst = pto.trowexpandmin %src0, %src1 : !pto.tile<...>, !pto.tile<...> -> !pto.tile<...>

AS Level 2 (DPS):

pto.trowexpandmin ins(%src0, %src1 : !pto.tile_buf<...>, !pto.tile_buf<...>) outs(%dst : !pto.tile_buf<...>)

TROWEXPANDEXPDIF

该指令的详细介绍请见isa/TROWEXPANDEXPDIF

AS Level 1 (SSA):

%dst = pto.trowexpandexpdif %src0, %src1 : !pto.tile<...>, !pto.tile<...> -> !pto.tile<...>

AS Level 2 (DPS):

pto.trowexpandexpdif ins(%src0, %src1 : !pto.tile_buf<...>, !pto.tile_buf<...>) outs(%dst : !pto.tile_buf<...>)

TCOLMIN

该指令的详细介绍请见isa/TCOLMIN

AS Level 1 (SSA):

%dst = pto.tcolmin %src : !pto.tile<...> -> !pto.tile<...>

AS Level 2 (DPS):

pto.tcolmin ins(%src : !pto.tile_buf<...>) outs(%dst : !pto.tile_buf<...>)

TCOLEXPAND

该指令的详细介绍请见isa/TCOLEXPAND

AS Level 1 (SSA):

%dst = pto.tcolexpand %src : !pto.tile<...> -> !pto.tile<...>

AS Level 2 (DPS):

pto.tcolexpand ins(%src : !pto.tile_buf<...>) outs(%dst : !pto.tile_buf<...>)

TCOLEXPANDDIV

该指令的详细介绍请见isa/TCOLEXPANDDIV

AS Level 1 (SSA):

%dst = pto.tcolexpanddiv %src0, %src1 : !pto.tile<...>, !pto.tile<...> -> !pto.tile<...>

AS Level 2 (DPS):

pto.tcolexpanddiv ins(%src0, %src1 : !pto.tile_buf<...>, !pto.tile_buf<...>) outs(%dst : !pto.tile_buf<...>)

TCOLEXPANDMUL

该指令的详细介绍请见isa/TCOLEXPANDMUL

AS Level 1 (SSA):

%dst = pto.tcolexpandmul %src0, %src1 : !pto.tile<...>, !pto.tile<...> -> !pto.tile<...>

AS Level 2 (DPS):

pto.tcolexpandmul ins(%src0, %src1 : !pto.tile_buf<...>, !pto.tile_buf<...>) outs(%dst : !pto.tile_buf<...>)

TCOLEXPANDADD

该指令的详细介绍请见isa/TCOLEXPANDADD

AS Level 1 (SSA):

%dst = pto.tcolexpandadd %src0, %src1 : !pto.tile<...>, !pto.tile<...> -> !pto.tile<...>

AS Level 2 (DPS):

pto.tcolexpandadd ins(%src0, %src1 : !pto.tile_buf<...>, !pto.tile_buf<...>) outs(%dst : !pto.tile_buf<...>)

TCOLEXPANDMAX

该指令的详细介绍请见isa/TCOLEXPANDMAX

AS Level 1 (SSA):

%dst = pto.tcolexpandmax %src0, %src1 : !pto.tile<...>, !pto.tile<...> -> !pto.tile<...>

AS Level 2 (DPS):

pto.tcolexpandmax ins(%src0, %src1 : !pto.tile_buf<...>, !pto.tile_buf<...>) outs(%dst : !pto.tile_buf<...>)

TCOLEXPANDMIN

该指令的详细介绍请见isa/TCOLEXPANDMIN

AS Level 1 (SSA):

%dst = pto.tcolexpandmin %src0, %src1 : !pto.tile<...>, !pto.tile<...> -> !pto.tile<...>

AS Level 2 (DPS):

pto.tcolexpandmin ins(%src0, %src1 : !pto.tile_buf<...>, !pto.tile_buf<...>) outs(%dst : !pto.tile_buf<...>)

TCOLEXPANDSUB

该指令的详细介绍请见isa/TCOLEXPANDSUB

AS Level 1 (SSA):

%dst = pto.tcolexpandsub %src0, %src1 : !pto.tile<...>, !pto.tile<...> -> !pto.tile<...>

AS Level 2 (DPS):

pto.tcolexpandsub ins(%src0, %src1 : !pto.tile_buf<...>, !pto.tile_buf<...>) outs(%dst : !pto.tile_buf<...>)

TCOLEXPANDEXPDIF

该指令的详细介绍请见isa/TCOLEXPANDEXPDIF

AS Level 1 (SSA):

%dst = pto.tcolexpandexpdif %src0, %src1 : !pto.tile<...>, !pto.tile<...> -> !pto.tile<...>

AS Level 2 (DPS):

pto.tcolexpandexpdif ins(%src0, %src1 : !pto.tile_buf<...>, !pto.tile_buf<...>) outs(%dst : !pto.tile_buf<...>)

TROWPROD

该指令的详细介绍请见isa/TROWPROD

AS Level 1 (SSA):

%dst = pto.trowprod %src, %tmp : (!pto.tile<...>, !pto.tile<...>) -> !pto.tile<...>

AS Level 2 (DPS): pto.trowprod ins(%src, %tmp : !pto.tile_buf<...>, !pto.tile_buf<...>) outs(%dst : !pto.tile_buf<...>) ```