[AArch64][GlobalISel] Implement selection og G_MERGE of two s32s into s64.
authorAmara Emerson <aemerson@apple.com>
Thu, 20 Dec 2018 01:11:04 +0000 (01:11 +0000)
committerAmara Emerson <aemerson@apple.com>
Thu, 20 Dec 2018 01:11:04 +0000 (01:11 +0000)
commit8cb186ce17b9c263f079ad9043eec598dbcf31c7
tree370107b38cab428b0de13607167b06108552cefd
parent68ddb768071a01398a01894b6d6d5e7189440613
[AArch64][GlobalISel] Implement selection og G_MERGE of two s32s into s64.

This code pattern is an unfortunate side effect of the way some types get split
at call lowering. Ideally we'd either not generate it at all or combine it away
in the legalizer artifact combiner.

Until then, add selection support anyway which is a significant proportion of
our current fallbacks on CTMark.

rdar://46491420

llvm-svn: 349712
llvm/lib/Target/AArch64/AArch64InstructionSelector.cpp
llvm/test/CodeGen/AArch64/GlobalISel/select-scalar-merge.mir [new file with mode: 0644]