diff options
author | Yeting Kuo <46629943+yetingk@users.noreply.github.com> | 2023-11-07 16:21:35 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-11-07 16:21:35 +0800 |
commit | a5c1ecada27a84161e8d947b4f4564c785aa3807 (patch) | |
tree | cf59e95fc00d97830bb2b12e9d08fe2d57c20dd9 /lldb/source/Plugins/Process/gdb-remote/GDBRemoteRegisterContext.cpp | |
parent | 0b3d54973c75facf69daf2738c21f064c1854b33 (diff) | |
download | llvm-a5c1ecada27a84161e8d947b4f4564c785aa3807.zip llvm-a5c1ecada27a84161e8d947b4f4564c785aa3807.tar.gz llvm-a5c1ecada27a84161e8d947b4f4564c785aa3807.tar.bz2 |
[RISCV] Disable performCombineVMergeAndVOps for PseduoVIOTA_M. (#71483)
This transformation might be illegal for `PseduoVIOTA_M`. The value of
`viota.m vd, vs2` is the prefix sum of vd2 and adding mask for it may
cause wrong prefix sum.
Take an example, the result of following expression is `{5, 5, 5, 3}`,
```
; v4 = {1, 1, 1, 1}
viota.m v1, v4
; v0 = {0, 0, 0, 1}, v1 = {0, 1, 2, 3}, v8 = {5, 5, 5, 5}
vmerge.vvm v8, v8, v1, v0.t
; v8 = {5, 5, 5, 3}
```
but if we merge them to `viota.m v8, v4, v0.t`, then the result of is
`{5, 5, 5, 0}`.
Also, we still does `performCombineVMergeAndVOps` for `voita.m` when
mask of `vmerge.vvm` is a true mask.
Diffstat (limited to 'lldb/source/Plugins/Process/gdb-remote/GDBRemoteRegisterContext.cpp')
0 files changed, 0 insertions, 0 deletions