aboutsummaryrefslogtreecommitdiff
path: root/clang/lib/CodeGen/CodeGenModule.cpp
diff options
context:
space:
mode:
authorSimon Pilgrim <llvm-dev@redking.me.uk>2024-11-19 10:45:07 +0000
committerGitHub <noreply@github.com>2024-11-19 10:45:07 +0000
commit95ab42661e8d1f57a4ef8e9d058b44627af0e58d (patch)
tree9561b13aa6867a893dd7e3ae68af8b20851f6a97 /clang/lib/CodeGen/CodeGenModule.cpp
parent6f53ae6e613f5f7011c1752b94038114f4e1cc94 (diff)
downloadllvm-95ab42661e8d1f57a4ef8e9d058b44627af0e58d.zip
llvm-95ab42661e8d1f57a4ef8e9d058b44627af0e58d.tar.gz
llvm-95ab42661e8d1f57a4ef8e9d058b44627af0e58d.tar.bz2
[X86] Attempt to canonicalize vXf64 SHUFPD shuffle masks with undef elts to improve further folding (#116419)
Currently when creating a SHUFPD immediate mask, any undef shuffle elements are set to 0, which can limit options for further shuffle combining. This patch attempts to canonicalize the mask to improve folding: first by detecting a per-lane broadcast style mask (which can allow us to fold to UNPCK instead), and second ensure any undef elements are set to an 'inplace' value to improve chances of the SHUFPD later folding to a BLENDPD (or be bypassed in a SimplifyMultipleUseDemandedVectorElts call). This is very similar to canonicalization we already attempt in getV4X86ShuffleImm for vXi32/vXf32 SHUFPS/SHUFD shuffles.
Diffstat (limited to 'clang/lib/CodeGen/CodeGenModule.cpp')
0 files changed, 0 insertions, 0 deletions