@@ -31,35 +31,32 @@ class StoreInst;
31
31
32
32
// / These are the kinds of recurrences that we support.
33
33
enum 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
50
50
FMinimumNum, // /< FP min with llvm.minimumnum semantics
51
51
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.
63
60
// TODO: Any_of and FindLast reduction need not be restricted to integer type
64
61
// only.
65
62
};
@@ -259,7 +256,7 @@ class RecurrenceDescriptor {
259
256
// / Returns true if the recurrence kind is of the form
260
257
// / select(cmp(),x,y) where one of (x,y) is increasing loop induction.
261
258
static bool isFindLastIVRecurrenceKind (RecurKind Kind) {
262
- return Kind == RecurKind::IFindLastIV || Kind == RecurKind::FFindLastIV ;
259
+ return Kind == RecurKind::FindLastIV ;
263
260
}
264
261
265
262
// / Returns the type of the recurrence. This type can be narrower than the
0 commit comments