[all-commits] [llvm/llvm-project] 781133: [mlir][ArmSVE] Add `arm_sve.psel` operation (#95764)

Benjamin Maxwell via All-commits all-commits at lists.llvm.org
Wed Jun 19 05:33:45 PDT 2024


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 781133037387eefa4080aa31c73554cc0452e6e6
      https://github.com/llvm/llvm-project/commit/781133037387eefa4080aa31c73554cc0452e6e6
  Author: Benjamin Maxwell <benjamin.maxwell at arm.com>
  Date:   2024-06-19 (Wed, 19 Jun 2024)

  Changed paths:
    M mlir/include/mlir/Dialect/ArmSVE/IR/ArmSVE.td
    M mlir/lib/Dialect/ArmSVE/Transforms/LegalizeForLLVMExport.cpp
    M mlir/test/Dialect/ArmSVE/invalid.mlir
    M mlir/test/Dialect/ArmSVE/legalize-for-llvm.mlir
    M mlir/test/Dialect/ArmSVE/roundtrip.mlir
    M mlir/test/Target/LLVMIR/arm-sve.mlir

  Log Message:
  -----------
  [mlir][ArmSVE] Add `arm_sve.psel` operation (#95764)

This adds a new operation for the SME/SVE2.1 psel instruction. This
allows selecting a predicate based on a bit within another predicate,
essentially allowing for 2-D predication. Informally, the semantics are:

```mlir
%pd = arm_sve.psel %p1, %p2[%index] : vector<[4]xi1>, vector<[8]xi1>
```

=>

```
if p2[index % num_elements(p2)] == 1:
  pd = p1 : type(p1)
else:
  pd = all-false : type(p1)
```



To unsubscribe from these emails, change your notification settings at https://github.com/llvm/llvm-project/settings/notifications


More information about the All-commits mailing list