Issue 172961
Summary Remove vp.reverse
Labels new issue
Assignees
Reporter Mel-Chen
    Currently, vp.reverse is only used for reverse accesses. Taking a reverse load as an example:
```
vp.reverse(
 vp.load(vec_end_ptr(addr, evl), true /* mask */, evl),
  true /* mask */,
 evl
)
```

Its semantics are equivalent to:
```
vector.reverse(
 vector.splice(
    poison,
    vp.load(vec_end_ptr(addr, evl), true /* mask */, evl),
    evl
  )
)
```

With this approach, we no longer need the vp.reverse intrinsic. Moreover, after the reverse operation is simplified away, optimizeMaskToEVL can still transform it into an reverse load/store with EVL tail folding.
_______________________________________________
llvm-bugs mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs

Reply via email to