[ARM][CodeGen] Add support for complex deinterleaving
authorNicholas Guy <nicholas.guy@arm.com>
Mon, 14 Nov 2022 13:59:59 +0000 (13:59 +0000)
committerNicholas Guy <nicholas.guy@arm.com>
Mon, 14 Nov 2022 14:02:27 +0000 (14:02 +0000)
commitd52e2839f3b1a21d4a6090ccff6f4b7f1f89a1b3
treee61a435f7b9682aedc5edac855b89d4ece80c147
parentc92ff2a3c449d2de502dc8444a0fdad5b4c42ff4
[ARM][CodeGen] Add support for complex deinterleaving

Adds the Complex Deinterleaving Pass implementing support for complex numbers in a target-independent manner, deferring to the TargetLowering for the given target to create a target-specific intrinsic.

Differential Revision: https://reviews.llvm.org/D114174
18 files changed:
llvm/include/llvm/CodeGen/ComplexDeinterleavingPass.h [new file with mode: 0644]
llvm/include/llvm/CodeGen/Passes.h
llvm/include/llvm/CodeGen/TargetLowering.h
llvm/include/llvm/InitializePasses.h
llvm/lib/CodeGen/CMakeLists.txt
llvm/lib/CodeGen/ComplexDeinterleavingPass.cpp [new file with mode: 0644]
llvm/lib/Target/ARM/ARMISelLowering.cpp
llvm/lib/Target/ARM/ARMISelLowering.h
llvm/lib/Target/ARM/ARMTargetMachine.cpp
llvm/test/CodeGen/ARM/O3-pipeline.ll
llvm/test/CodeGen/Thumb2/mve-complex-deinterleaving-f16-add.ll [new file with mode: 0644]
llvm/test/CodeGen/Thumb2/mve-complex-deinterleaving-f16-mul.ll [new file with mode: 0644]
llvm/test/CodeGen/Thumb2/mve-complex-deinterleaving-f32-add.ll [new file with mode: 0644]
llvm/test/CodeGen/Thumb2/mve-complex-deinterleaving-f32-mul.ll [new file with mode: 0644]
llvm/test/CodeGen/Thumb2/mve-complex-deinterleaving-f64-add.ll [new file with mode: 0644]
llvm/test/CodeGen/Thumb2/mve-complex-deinterleaving-f64-mul.ll [new file with mode: 0644]
llvm/test/CodeGen/Thumb2/mve-complex-deinterleaving-mixed-cases.ll [new file with mode: 0644]
llvm/test/CodeGen/Thumb2/mve-complex-deinterleaving-uniform-cases.ll [new file with mode: 0644]