aboutsummaryrefslogtreecommitdiff
path: root/clang/lib/AST/ByteCode/InterpBuiltin.cpp
diff options
context:
space:
mode:
authorJan Górski <jan.a.gorski@wp.pl>2025-04-28 17:35:51 +0200
committerGitHub <noreply@github.com>2025-04-28 08:35:51 -0700
commitd7e631c7cd6d9c13b9519991ec6becf08bc6b8aa (patch)
tree650c9aeb39f975a0d2a3fabf95ab68f241e81397 /clang/lib/AST/ByteCode/InterpBuiltin.cpp
parenta6f4a54891979c7c6d3c9e01598827da8b413f4f (diff)
downloadllvm-d7e631c7cd6d9c13b9519991ec6becf08bc6b8aa.zip
llvm-d7e631c7cd6d9c13b9519991ec6becf08bc6b8aa.tar.gz
llvm-d7e631c7cd6d9c13b9519991ec6becf08bc6b8aa.tar.bz2
[RISCV] Remove `AND` mask generated by `( zext ( atomic_load ) )` by replacing the load with `zextload` for orderings not stronger then monotonic. (#136502)
Extends changes from [ff687af](https://github.com/llvm/llvm-project/commit/ff687af04f5b0e85305250587b524cb0b3849aa0). Fixes https://github.com/llvm/llvm-project/issues/131476. This patch adds a DAG combine to replace an `AND` of an `ATOMIC_LOAD` with a full-bit mask (e.g. `0xFF`, `0xFFFF`, etc.) which is generated as a result of `(zext (atomic_load))`, by a zero-extended load, provided the atomic operation is monotonic or weaker.
Diffstat (limited to 'clang/lib/AST/ByteCode/InterpBuiltin.cpp')
0 files changed, 0 insertions, 0 deletions