[PATCH] D153445: [SVE ACLE] Remove DAG combines that are no longer relevant.

Paul Walker via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Thu Jun 22 02:41:21 PDT 2023


paulwalker-arm added inline comments.


================
Comment at: llvm/test/CodeGen/AArch64/sve-intrinsics-logical-imm.ll:269
   %pg.d = tail call <vscale x 2 x i1> @llvm.aarch64.sve.ptrue.nxv2i1(i32 31)
   %pg.b = tail call <vscale x 16 x i1> @llvm.aarch64.sve.convert.to.svbool.nxv2i1(<vscale x 2 x i1> %pg.d)
   %pg.s = tail call <vscale x 4 x i1> @llvm.aarch64.sve.convert.from.svbool.nxv4i1(<vscale x 16 x i1> %pg.b)
----------------
mgabka wrote:
> @paulwalker-arm, I have a question here, what is the semantic of llvm.aarch64.sve.convert.from.svbool/ llvm.aarch64.sve.convert.to.svbool  ? 
`llvm.aarch64.sve.convert.from.svbool` returns a boolean vector that contains only those lanes that are relevant for the result type. For example, when the return type is `<vscale x 4 x i1>` it returns every 4th lane of the `<vscale x 16 x i1>` input.

`llvm.aarch64.sve.convert.to.svbool` returns a boolean vector of type `<vscale x 16 x i1>` whereby the input is evenly distributed, for example, when the input type is `<vscale x 2 x i1>` each input lane is distribute across every 8th lane of the result, with all other result lanes set to zero.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D153445/new/

https://reviews.llvm.org/D153445



More information about the llvm-commits mailing list