summaryrefslogtreecommitdiff
path: root/clang/lib/CodeGen/CodeGenModule.cpp
diff options
context:
space:
mode:
authorchuongg3 <chuong.goh@arm.com>2023-09-25 09:34:51 +0100
committerGitHub <noreply@github.com>2023-09-25 09:34:51 +0100
commit45f51f9f7c5bc36f0f91695bb5e600013c2114ec (patch)
treed0f0ef0c9974d041048211f6b4b5c39450a01e45 /clang/lib/CodeGen/CodeGenModule.cpp
parent75a71c27c12a943333405a3299c100b04f65a37e (diff)
[AArch64][GlobalISel] Select UMULL instruction (#65469)
Global ISel now selects `UMULL` and `UMULL2` instructions. G_MUL instruction with input operands coming from `SEXT` or `ZEXT` operations are turned into UMULL G_MUL instructions with v2s64 result type is always scalarised except: `mul ( unmerge( ext ), unmerge( ext ))` So the extend could be unmerged and fold away the unmerge in the middle: `mul ( unmerge( ext ), unmerge( ext ))` => `mul ( unmerge( merge( ext( unmerge )), unmerge( merge( ext( unmerge ))))` => `mul ( ext(unmerge)), ( ext( unmerge ))) `
Diffstat (limited to 'clang/lib/CodeGen/CodeGenModule.cpp')
0 files changed, 0 insertions, 0 deletions