| 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