[PATCH] D119287: [CodeGen] Expand complex multiply and divide intrinsics for codegen.
Joshua Cranmer via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Tue Feb 8 14:15:40 PST 2022
jcranmer-intel created this revision.
Herald added subscribers: pengfei, hiraditya, mgorny.
jcranmer-intel requested review of this revision.
Herald added a project: LLVM.
Herald added a subscriber: llvm-commits.
For architectures without complex multiply or divide intrinsics (most of them),
a pass is needed to expand these intrinsics before codegen.
The tricky thing here is that where the intrinsics need to expand into a
compiler-rt helper function (e.g., __mulsc3), the ABI of complex floating point
types needs to be retrieved from the target. However, this target information
isn't fully validated for all targets, only x86.
This also adds support for lowering the complex multiple intrinsic directly to
instructions for the x86 backend.
Depends on D119286 <https://reviews.llvm.org/D119286>
Repository:
rG LLVM Github Monorepo
https://reviews.llvm.org/D119287
Files:
llvm/include/llvm/CodeGen/ExpandComplex.h
llvm/include/llvm/CodeGen/ISDOpcodes.h
llvm/include/llvm/CodeGen/Passes.h
llvm/include/llvm/CodeGen/TargetLowering.h
llvm/include/llvm/InitializePasses.h
llvm/include/llvm/Target/TargetSelectionDAG.td
llvm/lib/CodeGen/CMakeLists.txt
llvm/lib/CodeGen/ExpandComplex.cpp
llvm/lib/CodeGen/SelectionDAG/LegalizeVectorTypes.cpp
llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
llvm/lib/CodeGen/SelectionDAG/SelectionDAGDumper.cpp
llvm/lib/CodeGen/TargetPassConfig.cpp
llvm/lib/Target/X86/X86ISelLowering.cpp
llvm/lib/Target/X86/X86ISelLowering.h
llvm/test/CodeGen/X86/O0-pipeline.ll
llvm/test/CodeGen/X86/complex-32bit.ll
llvm/test/CodeGen/X86/complex-64bit.ll
llvm/test/CodeGen/X86/complex-divide.ll
llvm/test/CodeGen/X86/complex-multiply.ll
llvm/test/CodeGen/X86/complex-win32.ll
llvm/test/CodeGen/X86/complex-win64.ll
llvm/test/CodeGen/X86/fp16-complex-multiply.ll
llvm/test/Transforms/InstCombine/complex-math.ll
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D119287.406970.patch
Type: text/x-patch
Size: 99520 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20220208/f8a2ca1e/attachment-0001.bin>
More information about the llvm-commits
mailing list