aboutsummaryrefslogtreecommitdiff
path: root/clang/lib/Frontend/InitPreprocessor.cpp
diff options
context:
space:
mode:
authorJasmine Tang <jjasmine@igalia.com>2025-08-15 12:06:47 -0700
committerGitHub <noreply@github.com>2025-08-15 12:06:47 -0700
commitd7a29e5d5605f277d991b03a3923597a033d73ed (patch)
treed9623d11a877807ba82039a3d742b9f1cce43431 /clang/lib/Frontend/InitPreprocessor.cpp
parent79cf877627ec341c62f64e25a44f3ba340edad1e (diff)
downloadllvm-d7a29e5d5605f277d991b03a3923597a033d73ed.zip
llvm-d7a29e5d5605f277d991b03a3923597a033d73ed.tar.gz
llvm-d7a29e5d5605f277d991b03a3923597a033d73ed.tar.bz2
[WebAssembly] Reapply #149461 with correct CondCode in combine of SETCC (#153703)
This PR reapplies https://github.com/llvm/llvm-project/pull/149461 In the original `combineVectorSizedSetCCEquality`, the result of setcc is being negated by returning setcc with the same cond code, leading to wrong logic. For example, with ```llvm %cmp_16 = call i32 @memcmp(ptr %a, ptr %b, i32 16) %res = icmp eq i32 %cmp_16, 0 ``` the original PR producese all_true and then also compares the result equal to 0 (using the same SETEQ in the returning setcc), meaning that semantically, it effectively is calling icmp ne. Instead, the PR should have use SETNE in the returning setcc, this way, all true return 1, then it is compared again ne 0, which is equivalent to icmp eq.
Diffstat (limited to 'clang/lib/Frontend/InitPreprocessor.cpp')
0 files changed, 0 insertions, 0 deletions