File indexing completed on 2026-05-10 08:43:28
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014 #ifndef LLVM_CODEGEN_COMPLEXDEINTERLEAVING_H
0015 #define LLVM_CODEGEN_COMPLEXDEINTERLEAVING_H
0016
0017 #include "llvm/IR/PassManager.h"
0018
0019 namespace llvm {
0020
0021 class Function;
0022 class TargetMachine;
0023
0024 struct ComplexDeinterleavingPass
0025 : public PassInfoMixin<ComplexDeinterleavingPass> {
0026 private:
0027 TargetMachine *TM;
0028
0029 public:
0030 ComplexDeinterleavingPass(TargetMachine *TM) : TM(TM) {}
0031
0032 PreservedAnalyses run(Function &F, FunctionAnalysisManager &AM);
0033 };
0034
0035 enum class ComplexDeinterleavingOperation {
0036 CAdd,
0037 CMulPartial,
0038 CDot,
0039
0040
0041 Deinterleave,
0042 Splat,
0043 Symmetric,
0044 ReductionPHI,
0045 ReductionOperation,
0046 ReductionSelect,
0047 ReductionSingle
0048 };
0049
0050 enum class ComplexDeinterleavingRotation {
0051 Rotation_0 = 0,
0052 Rotation_90 = 1,
0053 Rotation_180 = 2,
0054 Rotation_270 = 3,
0055 };
0056
0057 }
0058
0059 #endif