@@ -31,35 +31,32 @@ class StoreInst;
3131
3232// / These are the kinds of recurrences that we support.
3333enum class RecurKind {
34- None, // /< Not a recurrence.
35- Add, // /< Sum of integers.
36- Mul, // /< Product of integers.
37- Or, // /< Bitwise or logical OR of integers.
38- And, // /< Bitwise or logical AND of integers.
39- Xor, // /< Bitwise or logical XOR of integers.
40- SMin, // /< Signed integer min implemented in terms of select(cmp()).
41- SMax, // /< Signed integer max implemented in terms of select(cmp()).
42- UMin, // /< Unsigned integer min implemented in terms of select(cmp()).
43- UMax, // /< Unsigned integer max implemented in terms of select(cmp()).
44- FAdd, // /< Sum of floats.
45- FMul, // /< Product of floats.
46- FMin, // /< FP min implemented in terms of select(cmp()).
47- FMax, // /< FP max implemented in terms of select(cmp()).
48- FMinimum, // /< FP min with llvm.minimum semantics
49- FMaximum, // /< FP max with llvm.maximum semantics
34+ None, // /< Not a recurrence.
35+ Add, // /< Sum of integers.
36+ Mul, // /< Product of integers.
37+ Or, // /< Bitwise or logical OR of integers.
38+ And, // /< Bitwise or logical AND of integers.
39+ Xor, // /< Bitwise or logical XOR of integers.
40+ SMin, // /< Signed integer min implemented in terms of select(cmp()).
41+ SMax, // /< Signed integer max implemented in terms of select(cmp()).
42+ UMin, // /< Unsigned integer min implemented in terms of select(cmp()).
43+ UMax, // /< Unsigned integer max implemented in terms of select(cmp()).
44+ FAdd, // /< Sum of floats.
45+ FMul, // /< Product of floats.
46+ FMin, // /< FP min implemented in terms of select(cmp()).
47+ FMax, // /< FP max implemented in terms of select(cmp()).
48+ FMinimum, // /< FP min with llvm.minimum semantics
49+ FMaximum, // /< FP max with llvm.maximum semantics
5050 FMinimumNum, // /< FP min with llvm.minimumnum semantics
5151 FMaximumNum, // /< FP max with llvm.maximumnum semantics
52- FMulAdd, // /< Sum of float products with llvm.fmuladd(a * b + sum).
53- IAnyOf, // /< Any_of reduction with select(icmp(),x,y) where one of (x,y) is
54- // /< loop invariant, and both x and y are integer type.
55- FAnyOf, // /< Any_of reduction with select(fcmp(),x,y) where one of (x,y) is
56- // /< loop invariant, and both x and y are integer type.
57- IFindLastIV, // /< FindLast reduction with select(icmp(),x,y) where one of
58- // /< (x,y) is increasing loop induction, and both x and y are
59- // /< integer type.
60- FFindLastIV // /< FindLast reduction with select(fcmp(),x,y) where one of (x,y)
61- // /< is increasing loop induction, and both x and y are integer
62- // /< type.
52+ FMulAdd, // /< Sum of float products with llvm.fmuladd(a * b + sum).
53+ IAnyOf, // /< Any_of reduction with select(icmp(),x,y) where one of (x,y) is
54+ // /< loop invariant, and both x and y are integer type.
55+ FAnyOf, // /< Any_of reduction with select(fcmp(),x,y) where one of (x,y) is
56+ // /< loop invariant, and both x and y are integer type.
57+ FindLastIV, // /< FindLast reduction with select(cmp(),x,y) where one of
58+ // /< (x,y) is increasing loop induction, and both x and y are
59+ // /< integer type.
6360 // TODO: Any_of and FindLast reduction need not be restricted to integer type
6461 // only.
6562};
@@ -259,7 +256,7 @@ class RecurrenceDescriptor {
259256 // / Returns true if the recurrence kind is of the form
260257 // / select(cmp(),x,y) where one of (x,y) is increasing loop induction.
261258 static bool isFindLastIVRecurrenceKind (RecurKind Kind) {
262- return Kind == RecurKind::IFindLastIV || Kind == RecurKind::FFindLastIV ;
259+ return Kind == RecurKind::FindLastIV ;
263260 }
264261
265262 // / Returns the type of the recurrence. This type can be narrower than the
0 commit comments