aboutsummaryrefslogtreecommitdiff
path: root/lldb/source/Plugins/Process/gdb-remote/GDBRemoteRegisterContext.cpp
diff options
context:
space:
mode:
authorYeting Kuo <46629943+yetingk@users.noreply.github.com>2023-11-07 16:21:35 +0800
committerGitHub <noreply@github.com>2023-11-07 16:21:35 +0800
commita5c1ecada27a84161e8d947b4f4564c785aa3807 (patch)
treecf59e95fc00d97830bb2b12e9d08fe2d57c20dd9 /lldb/source/Plugins/Process/gdb-remote/GDBRemoteRegisterContext.cpp
parent0b3d54973c75facf69daf2738c21f064c1854b33 (diff)
downloadllvm-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