@@ -31,32 +31,34 @@ 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
+ // clang-format off
35
+ None, // /< Not a recurrence.
36
+ Add, // /< Sum of integers.
37
+ Mul, // /< Product of integers.
38
+ Or, // /< Bitwise or logical OR of integers.
39
+ And, // /< Bitwise or logical AND of integers.
40
+ Xor, // /< Bitwise or logical XOR of integers.
41
+ SMin, // /< Signed integer min implemented in terms of select(cmp()).
42
+ SMax, // /< Signed integer max implemented in terms of select(cmp()).
43
+ UMin, // /< Unsigned integer min implemented in terms of select(cmp()).
44
+ UMax, // /< Unsigned integer max implemented in terms of select(cmp()).
45
+ FAdd, // /< Sum of floats.
46
+ FMul, // /< Product of floats.
47
+ FMin, // /< FP min implemented in terms of select(cmp()).
48
+ FMax, // /< FP max implemented in terms of select(cmp()).
49
+ FMinimum, // /< FP min with llvm.minimum semantics
50
+ FMaximum, // /< FP max with llvm.maximum semantics
50
51
FMinimumNum, // /< FP min with llvm.minimumnum semantics
51
52
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.
53
+ FMulAdd, // /< Sum of float products with llvm.fmuladd(a * b + sum).
54
+ IAnyOf, // /< Any_of reduction with select(icmp(),x,y) where one of (x,y) is
55
+ // /< loop invariant, and both x and y are integer type.
56
+ FAnyOf, // /< Any_of reduction with select(fcmp(),x,y) where one of (x,y) is
57
+ // /< loop invariant, and both x and y are integer type.
57
58
FindLastIV, // /< FindLast reduction with select(cmp(),x,y) where one of
58
59
// /< (x,y) is increasing loop induction, and both x and y are
59
60
// /< integer type.
61
+ // clang-format on
60
62
// TODO: Any_of and FindLast reduction need not be restricted to integer type
61
63
// only.
62
64
};
0 commit comments