aboutsummaryrefslogtreecommitdiff
path: root/clang/lib/Lex/ModuleMap.cpp
diff options
context:
space:
mode:
authorDavid Green <david.green@arm.com>2023-06-15 09:17:50 +0100
committerDavid Green <david.green@arm.com>2023-06-15 09:17:50 +0100
commit1643197e1911a81a939debcd0af99635d53bc831 (patch)
treee8842a92c80563811f42b142da0b24c8c1b1b112 /clang/lib/Lex/ModuleMap.cpp
parentb92ccc355acb8a329918ceb2837df1b351675ece (diff)
downloadllvm-1643197e1911a81a939debcd0af99635d53bc831.zip
llvm-1643197e1911a81a939debcd0af99635d53bc831.tar.gz
llvm-1643197e1911a81a939debcd0af99635d53bc831.tar.bz2
[AArch64][SVE] Enable shouldFoldSelectWithIdentityConstant for SVE.
Instcombine will canonicalize `select(c, binop(a, b), a)` to `binop(select(c, b, identityvalue), a)`. The original select form makes a more natural form for vector predicated operations for vector architectures like SVE where predication is well supported. This patch enables shouldFoldSelectWithIdentityConstant for SVE so that more predicated instructions can be generated, helping simplify the handling with identity constants. Predicated FMA patterns have also been adjusted here as they need to look at FMF's. Other operations like add/sub, mul, and/or/xor and mla/mls have been recently updated. There is one test (scalable_int_min_max) that increases in size. There are multiple selects that could be combined into a single select but does not currently fold. Differential Revision: https://reviews.llvm.org/D149967
Diffstat (limited to 'clang/lib/Lex/ModuleMap.cpp')
0 files changed, 0 insertions, 0 deletions