Lines Matching refs:RecurKind

40 bool RecurrenceDescriptor::isIntegerRecurrenceKind(RecurKind Kind) {  in isIntegerRecurrenceKind()
44 case RecurKind::Add: in isIntegerRecurrenceKind()
45 case RecurKind::Mul: in isIntegerRecurrenceKind()
46 case RecurKind::Or: in isIntegerRecurrenceKind()
47 case RecurKind::And: in isIntegerRecurrenceKind()
48 case RecurKind::Xor: in isIntegerRecurrenceKind()
49 case RecurKind::SMax: in isIntegerRecurrenceKind()
50 case RecurKind::SMin: in isIntegerRecurrenceKind()
51 case RecurKind::UMax: in isIntegerRecurrenceKind()
52 case RecurKind::UMin: in isIntegerRecurrenceKind()
53 case RecurKind::IAnyOf: in isIntegerRecurrenceKind()
54 case RecurKind::FAnyOf: in isIntegerRecurrenceKind()
60 bool RecurrenceDescriptor::isFloatingPointRecurrenceKind(RecurKind Kind) { in isFloatingPointRecurrenceKind()
61 return (Kind != RecurKind::None) && !isIntegerRecurrenceKind(Kind); in isFloatingPointRecurrenceKind()
181 static bool checkOrderedReduction(RecurKind Kind, Instruction *ExactFPMathInst, in checkOrderedReduction()
184 if (Kind != RecurKind::FAdd && Kind != RecurKind::FMulAdd) in checkOrderedReduction()
187 if (Kind == RecurKind::FAdd && Exit->getOpcode() != Instruction::FAdd) in checkOrderedReduction()
190 if (Kind == RecurKind::FMulAdd && in checkOrderedReduction()
202 if (Kind == RecurKind::FAdd && Op0 != Phi && Op1 != Phi) in checkOrderedReduction()
204 if (Kind == RecurKind::FMulAdd && Exit->getOperand(2) != Phi) in checkOrderedReduction()
214 PHINode *Phi, RecurKind Kind, Loop *TheLoop, FastMathFlags FuncFMF, in AddReductionVar()
398 if (ReduxDesc.getRecKind() != RecurKind::None) in AddReductionVar()
406 if (IsASelect && (Kind == RecurKind::FAdd || Kind == RecurKind::FMul) && in AddReductionVar()
419 if ((isIntMinMaxRecurrenceKind(Kind) || Kind == RecurKind::IAnyOf) && in AddReductionVar()
422 if ((isFPMinMaxRecurrenceKind(Kind) || Kind == RecurKind::FAnyOf) && in AddReductionVar()
659 return InstDesc(I, isa<ICmpInst>(I->getOperand(0)) ? RecurKind::IAnyOf in isAnyOfPattern()
660 : RecurKind::FAnyOf); in isAnyOfPattern()
664 RecurrenceDescriptor::isMinMaxPattern(Instruction *I, RecurKind Kind, in isMinMaxPattern()
687 return InstDesc(Kind == RecurKind::UMin, I); in isMinMaxPattern()
689 return InstDesc(Kind == RecurKind::UMax, I); in isMinMaxPattern()
691 return InstDesc(Kind == RecurKind::SMax, I); in isMinMaxPattern()
693 return InstDesc(Kind == RecurKind::SMin, I); in isMinMaxPattern()
695 return InstDesc(Kind == RecurKind::FMin, I); in isMinMaxPattern()
697 return InstDesc(Kind == RecurKind::FMax, I); in isMinMaxPattern()
699 return InstDesc(Kind == RecurKind::FMin, I); in isMinMaxPattern()
701 return InstDesc(Kind == RecurKind::FMax, I); in isMinMaxPattern()
703 return InstDesc(Kind == RecurKind::FMin, I); in isMinMaxPattern()
705 return InstDesc(Kind == RecurKind::FMax, I); in isMinMaxPattern()
707 return InstDesc(Kind == RecurKind::FMinimum, I); in isMinMaxPattern()
709 return InstDesc(Kind == RecurKind::FMaximum, I); in isMinMaxPattern()
724 RecurrenceDescriptor::isConditionalRdxPattern(RecurKind Kind, Instruction *I) { in isConditionalRdxPattern()
768 Instruction *I, RecurKind Kind, in isRecurrenceInstr()
770 assert(Prev.getRecKind() == RecurKind::None || Prev.getRecKind() == Kind); in isRecurrenceInstr()
778 return InstDesc(Kind == RecurKind::Add, I); in isRecurrenceInstr()
780 return InstDesc(Kind == RecurKind::Mul, I); in isRecurrenceInstr()
782 return InstDesc(Kind == RecurKind::And, I); in isRecurrenceInstr()
784 return InstDesc(Kind == RecurKind::Or, I); in isRecurrenceInstr()
786 return InstDesc(Kind == RecurKind::Xor, I); in isRecurrenceInstr()
789 return InstDesc(Kind == RecurKind::FMul, I, in isRecurrenceInstr()
793 return InstDesc(Kind == RecurKind::FAdd, I, in isRecurrenceInstr()
796 if (Kind == RecurKind::FAdd || Kind == RecurKind::FMul || in isRecurrenceInstr()
797 Kind == RecurKind::Add || Kind == RecurKind::Mul) in isRecurrenceInstr()
819 return InstDesc(Kind == RecurKind::FMulAdd, I, in isRecurrenceInstr()
852 if (AddReductionVar(Phi, RecurKind::Add, TheLoop, FMF, RedDes, DB, AC, DT, in isReductionPHI()
857 if (AddReductionVar(Phi, RecurKind::Mul, TheLoop, FMF, RedDes, DB, AC, DT, in isReductionPHI()
862 if (AddReductionVar(Phi, RecurKind::Or, TheLoop, FMF, RedDes, DB, AC, DT, in isReductionPHI()
867 if (AddReductionVar(Phi, RecurKind::And, TheLoop, FMF, RedDes, DB, AC, DT, in isReductionPHI()
872 if (AddReductionVar(Phi, RecurKind::Xor, TheLoop, FMF, RedDes, DB, AC, DT, in isReductionPHI()
877 if (AddReductionVar(Phi, RecurKind::SMax, TheLoop, FMF, RedDes, DB, AC, DT, in isReductionPHI()
882 if (AddReductionVar(Phi, RecurKind::SMin, TheLoop, FMF, RedDes, DB, AC, DT, in isReductionPHI()
887 if (AddReductionVar(Phi, RecurKind::UMax, TheLoop, FMF, RedDes, DB, AC, DT, in isReductionPHI()
892 if (AddReductionVar(Phi, RecurKind::UMin, TheLoop, FMF, RedDes, DB, AC, DT, in isReductionPHI()
897 if (AddReductionVar(Phi, RecurKind::IAnyOf, TheLoop, FMF, RedDes, DB, AC, DT, in isReductionPHI()
903 if (AddReductionVar(Phi, RecurKind::FMul, TheLoop, FMF, RedDes, DB, AC, DT, in isReductionPHI()
908 if (AddReductionVar(Phi, RecurKind::FAdd, TheLoop, FMF, RedDes, DB, AC, DT, in isReductionPHI()
913 if (AddReductionVar(Phi, RecurKind::FMax, TheLoop, FMF, RedDes, DB, AC, DT, in isReductionPHI()
918 if (AddReductionVar(Phi, RecurKind::FMin, TheLoop, FMF, RedDes, DB, AC, DT, in isReductionPHI()
923 if (AddReductionVar(Phi, RecurKind::FAnyOf, TheLoop, FMF, RedDes, DB, AC, DT, in isReductionPHI()
929 if (AddReductionVar(Phi, RecurKind::FMulAdd, TheLoop, FMF, RedDes, DB, AC, DT, in isReductionPHI()
934 if (AddReductionVar(Phi, RecurKind::FMaximum, TheLoop, FMF, RedDes, DB, AC, DT, in isReductionPHI()
939 if (AddReductionVar(Phi, RecurKind::FMinimum, TheLoop, FMF, RedDes, DB, AC, DT, in isReductionPHI()
1038 Value *RecurrenceDescriptor::getRecurrenceIdentity(RecurKind K, Type *Tp, in getRecurrenceIdentity()
1041 case RecurKind::Xor: in getRecurrenceIdentity()
1042 case RecurKind::Add: in getRecurrenceIdentity()
1043 case RecurKind::Or: in getRecurrenceIdentity()
1046 case RecurKind::Mul: in getRecurrenceIdentity()
1049 case RecurKind::And: in getRecurrenceIdentity()
1052 case RecurKind::FMul: in getRecurrenceIdentity()
1055 case RecurKind::FMulAdd: in getRecurrenceIdentity()
1056 case RecurKind::FAdd: in getRecurrenceIdentity()
1066 case RecurKind::UMin: in getRecurrenceIdentity()
1068 case RecurKind::UMax: in getRecurrenceIdentity()
1070 case RecurKind::SMin: in getRecurrenceIdentity()
1073 case RecurKind::SMax: in getRecurrenceIdentity()
1076 case RecurKind::FMin: in getRecurrenceIdentity()
1080 case RecurKind::FMax: in getRecurrenceIdentity()
1084 case RecurKind::FMinimum: in getRecurrenceIdentity()
1086 case RecurKind::FMaximum: in getRecurrenceIdentity()
1088 case RecurKind::IAnyOf: in getRecurrenceIdentity()
1089 case RecurKind::FAnyOf: in getRecurrenceIdentity()
1097 unsigned RecurrenceDescriptor::getOpcode(RecurKind Kind) { in getOpcode()
1099 case RecurKind::Add: in getOpcode()
1101 case RecurKind::Mul: in getOpcode()
1103 case RecurKind::Or: in getOpcode()
1105 case RecurKind::And: in getOpcode()
1107 case RecurKind::Xor: in getOpcode()
1109 case RecurKind::FMul: in getOpcode()
1111 case RecurKind::FMulAdd: in getOpcode()
1112 case RecurKind::FAdd: in getOpcode()
1114 case RecurKind::SMax: in getOpcode()
1115 case RecurKind::SMin: in getOpcode()
1116 case RecurKind::UMax: in getOpcode()
1117 case RecurKind::UMin: in getOpcode()
1118 case RecurKind::IAnyOf: in getOpcode()
1120 case RecurKind::FMax: in getOpcode()
1121 case RecurKind::FMin: in getOpcode()
1122 case RecurKind::FMaximum: in getOpcode()
1123 case RecurKind::FMinimum: in getOpcode()
1124 case RecurKind::FAnyOf: in getOpcode()