aboutsummaryrefslogtreecommitdiff
path: root/clang/unittests/Interpreter/InterpreterTest.cpp
diff options
context:
space:
mode:
authorJasmine Tang <jjasmine@igalia.com>2025-08-12 11:04:37 -0700
committerGitHub <noreply@github.com>2025-08-12 11:04:37 -0700
commit348f01f89c272c08e46bbdc1779d658323f17214 (patch)
tree4bcb10c758915a0a13ef302b9159fbaef26cc2d4 /clang/unittests/Interpreter/InterpreterTest.cpp
parent44f41f55b4df5ec490df0d69e046b2d1a58acaeb (diff)
downloadllvm-348f01f89c272c08e46bbdc1779d658323f17214.zip
llvm-348f01f89c272c08e46bbdc1779d658323f17214.tar.gz
llvm-348f01f89c272c08e46bbdc1779d658323f17214.tar.bz2
[WebAssembly] Combine i128 to v16i8 for setcc & expand memcmp for 16 byte loads with simd128 (#149461)
Fixes https://github.com/llvm/llvm-project/issues/149230 Previously, even with simd enabled via `-mattr=+simd128`, the compiler cannot utilize v128 to optimize loads and setcc of i128, instead legalizing it to consecutive i64s. This PR then adds support for setcc of i128 by converting them to v16i8's anytrue and alltrue; consequently, this benefits memcmp of 16 bytes or more (when simd128 is present). The check for enabling this optimization is if the comparison operand is either a load or an integer in i128, with the comparison code being either `EQ | NE`, without `NoImplicitFloat` function flag. Inspiration taken from RISCV's isel lowering.
Diffstat (limited to 'clang/unittests/Interpreter/InterpreterTest.cpp')
0 files changed, 0 insertions, 0 deletions