aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/Support/CommandLine.cpp
diff options
context:
space:
mode:
authorDavid Green <david.green@arm.com>2021-08-19 16:08:07 +0100
committerDavid Green <david.green@arm.com>2021-08-19 16:08:07 +0100
commitd10f23a25d5c7b6dd61cbab8e16bf2099151be42 (patch)
tree75850652f42845c260ac9754cf39eed3d889e417 /llvm/lib/Support/CommandLine.cpp
parenta9cc6627226cc816300f8b0189ed6bfddd5c0286 (diff)
downloadllvm-d10f23a25d5c7b6dd61cbab8e16bf2099151be42.zip
llvm-d10f23a25d5c7b6dd61cbab8e16bf2099151be42.tar.gz
llvm-d10f23a25d5c7b6dd61cbab8e16bf2099151be42.tar.bz2
[ISel] Expand saddsat and ssubsat via asr and xor
This changes the lowering of saddsat and ssubsat so that instead of using: r,o = saddo x, y c = setcc r < 0 s = c ? INTMAX : INTMIN ret o ? s : r into using asr and xor to materialize the INTMAX/INTMIN constants: r,o = saddo x, y s = ashr r, BW-1 x = xor s, INTMIN ret o ? x : r https://alive2.llvm.org/ce/z/TYufgD This seems to reduce the instruction count in most testcases across most architectures. X86 has some custom lowering added to compensate for cases where it can increase instruction count. Differential Revision: https://reviews.llvm.org/D105853
Diffstat (limited to 'llvm/lib/Support/CommandLine.cpp')
0 files changed, 0 insertions, 0 deletions