Matt Devereau
8ff47f6032
[LoopVectorize] Enable integer Mul and Add as select reduction patterns
...
This patch vectorizes Phi node loop reductions for select's whos condition
comes from a floating-point comparison, with its operands being integers
for Add, Sub, and Mul reductions.
Example:
int foo(float *x, int n) {
int sum = 0;
for (int i=0; i<n; ++i) {
float elem = x[i];
if (elem > 0) {
sum += 2;
}
}
return sum;
}
This would previously fail to vectorize due to the integer reduction.
2023-01-30 09:41:40 +00:00
..
2023-01-20 18:52:38 +01:00
2022-12-14 15:16:59 +01:00
2023-01-18 09:58:32 +01:00
2022-12-14 15:16:59 +01:00
2023-01-18 09:58:32 +01:00
2023-01-18 09:58:32 +01:00
2023-01-18 09:58:32 +01:00
2022-12-14 15:16:59 +01:00
2023-01-18 09:58:32 +01:00
2023-01-04 17:25:42 +01:00
2022-12-14 15:16:59 +01:00
2022-12-08 02:38:47 +03:00
2022-12-14 15:16:59 +01:00
2022-12-14 15:16:59 +01:00
2022-12-14 15:16:59 +01:00
2022-12-14 15:16:59 +01:00
2022-12-14 15:16:59 +01:00
2022-12-27 23:01:41 +00:00
2022-12-14 15:16:59 +01:00
2022-12-14 15:16:59 +01:00
2022-12-14 15:16:59 +01:00
2022-12-14 15:16:59 +01:00
2023-01-18 09:58:32 +01:00
2023-01-18 09:58:32 +01:00
2022-12-14 15:16:59 +01:00
2022-12-14 15:16:59 +01:00
2022-06-22 10:49:27 +07:00
2022-12-14 15:16:59 +01:00
2022-12-14 15:16:59 +01:00
2022-12-14 15:16:59 +01:00
2022-12-14 15:16:59 +01:00
2022-12-14 15:16:59 +01:00
2022-12-14 15:16:59 +01:00
2022-12-14 15:16:59 +01:00
2022-12-14 15:16:59 +01:00
2022-12-14 15:16:59 +01:00
2022-12-14 15:16:59 +01:00
2022-12-14 15:27:31 +01:00
2023-01-11 14:08:06 +00:00
2023-01-04 17:25:42 +01:00
2023-01-11 14:08:06 +00:00
2022-12-14 15:16:59 +01:00
2022-12-14 15:16:59 +01:00
2022-12-14 15:16:59 +01:00
2022-12-14 15:16:59 +01:00
2022-12-14 15:16:59 +01:00
2022-12-19 20:55:44 +00:00
2022-12-19 20:55:44 +00:00
2023-01-11 14:08:06 +00:00
2023-01-11 14:08:06 +00:00
2023-01-21 17:14:13 +00:00
2023-01-11 14:08:06 +00:00
2022-12-14 15:16:59 +01:00
2022-12-14 15:16:59 +01:00
2023-01-08 15:52:57 +00:00
2023-01-11 14:08:06 +00:00
2022-12-14 15:16:59 +01:00
2022-12-14 15:16:59 +01:00
2023-01-06 10:56:17 +00:00
2022-12-14 15:16:59 +01:00
2022-12-05 22:17:30 +03:00
2022-12-14 15:16:59 +01:00
2022-12-14 15:16:59 +01:00
2022-12-14 15:16:59 +01:00
2023-01-04 17:25:42 +01:00
2022-12-14 15:16:59 +01:00
2022-12-14 15:16:59 +01:00
2022-12-14 15:16:59 +01:00
2022-12-14 15:16:59 +01:00
2022-12-14 15:16:59 +01:00
2022-12-14 15:16:59 +01:00
2022-12-14 15:27:31 +01:00
2022-12-14 15:16:59 +01:00
2022-12-14 15:16:59 +01:00
2023-01-11 14:08:06 +00:00
2022-12-14 15:16:59 +01:00
2023-01-11 14:08:06 +00:00
2023-01-30 09:41:40 +00:00
2022-12-14 15:16:59 +01:00
2022-12-14 15:16:59 +01:00
2023-01-18 09:58:32 +01:00
2022-12-14 15:16:59 +01:00
2023-01-04 17:25:42 +01:00
2023-01-11 14:08:06 +00:00
2022-12-14 15:16:59 +01:00
2023-01-11 14:08:06 +00:00
2022-12-14 15:16:59 +01:00
2023-01-11 14:08:06 +00:00
2022-12-14 15:16:59 +01:00
2023-01-21 17:14:13 +00:00
2022-12-14 15:16:59 +01:00
2022-12-14 15:16:59 +01:00
2022-12-14 15:16:59 +01:00
2022-12-14 15:16:59 +01:00
2022-12-14 15:16:59 +01:00
2022-12-14 15:16:59 +01:00
2022-12-14 15:16:59 +01:00
2023-01-18 09:58:32 +01:00
2022-12-14 15:16:59 +01:00
2022-12-14 15:16:59 +01:00
2023-01-06 10:56:17 +00:00
2023-01-06 10:56:17 +00:00
2022-12-14 15:16:59 +01:00
2023-01-18 09:58:32 +01:00
2022-12-23 12:51:21 +00:00
2022-12-14 15:16:59 +01:00
2022-12-14 15:16:59 +01:00
2023-01-11 14:08:06 +00:00
2023-01-06 12:14:45 +01:00
2022-12-14 15:16:59 +01:00
2022-12-14 15:16:59 +01:00
2023-01-06 10:56:17 +00:00
2022-12-14 15:16:59 +01:00
2022-12-14 15:16:59 +01:00
2022-12-14 15:16:59 +01:00
2022-12-14 15:16:59 +01:00
2022-12-14 15:16:59 +01:00
2022-12-14 15:16:59 +01:00
2022-12-14 15:16:59 +01:00
2023-01-11 14:08:06 +00:00
2022-12-14 15:16:59 +01:00
2022-12-14 15:16:59 +01:00
2023-01-18 09:58:32 +01:00
2022-12-14 15:16:59 +01:00
2023-01-11 14:08:06 +00:00
2022-12-14 15:16:59 +01:00
2022-12-14 15:16:59 +01:00
2022-12-14 15:16:59 +01:00
2022-12-14 15:16:59 +01:00
2023-01-18 09:58:32 +01:00
2022-12-14 15:16:59 +01:00
2022-12-14 15:16:59 +01:00
2022-12-05 22:17:30 +03:00
2022-12-14 15:16:59 +01:00
2022-12-14 15:16:59 +01:00
2022-12-14 15:16:59 +01:00
2022-12-14 15:16:59 +01:00
2022-12-14 15:16:59 +01:00
2022-12-14 15:16:59 +01:00
2022-12-14 15:16:59 +01:00
2022-12-14 15:16:59 +01:00
2022-12-14 15:16:59 +01:00
2023-01-04 17:25:42 +01:00
2022-12-14 15:16:59 +01:00
2022-09-19 18:14:35 +01:00
2022-12-14 15:16:59 +01:00
2022-12-21 13:58:50 +00:00
2022-12-14 15:27:31 +01:00
2022-12-14 15:16:59 +01:00
2023-01-11 14:08:06 +00:00
2023-01-11 14:08:06 +00:00
2023-01-11 14:08:06 +00:00
2023-01-11 14:08:06 +00:00
2023-01-11 14:08:06 +00:00
2022-12-14 15:16:59 +01:00
2022-12-14 15:16:59 +01:00
2023-01-04 17:25:42 +01:00
2023-01-06 10:56:17 +00:00
2022-12-14 15:16:59 +01:00
2022-12-14 15:16:59 +01:00
2023-01-11 14:08:06 +00:00
2022-12-14 15:16:59 +01:00
2023-01-06 12:14:45 +01:00
2022-12-14 15:16:59 +01:00
2022-12-14 15:16:59 +01:00
2022-12-14 15:16:59 +01:00
2022-12-14 15:16:59 +01:00
2022-12-08 02:38:47 +03:00
2023-01-18 09:58:32 +01:00
2022-12-14 15:16:59 +01:00
2022-12-14 15:16:59 +01:00
2023-01-06 12:14:45 +01:00
2023-01-06 12:14:45 +01:00
2022-12-14 15:16:59 +01:00
2023-01-18 09:58:32 +01:00
2023-01-11 14:08:06 +00:00
2023-01-11 14:08:06 +00:00
2022-12-14 15:16:59 +01:00
2022-12-14 15:16:59 +01:00
2022-12-14 15:16:59 +01:00
2022-12-14 15:16:59 +01:00
2022-12-14 15:16:59 +01:00
2023-01-11 14:08:06 +00:00
2023-01-11 14:08:06 +00:00
2022-06-23 13:36:02 +02:00
2023-01-11 14:08:06 +00:00
2023-01-18 09:58:32 +01:00
2022-12-14 15:16:59 +01:00
2022-12-14 15:16:59 +01:00
2022-12-14 15:16:59 +01:00
2022-12-14 15:16:59 +01:00
2022-12-14 15:16:59 +01:00
2022-12-14 15:16:59 +01:00
2022-12-14 15:16:59 +01:00
2023-01-05 11:37:37 +00:00
2023-01-18 09:58:32 +01:00
2022-12-14 15:16:59 +01:00
2022-12-14 15:16:59 +01:00
2022-12-14 15:16:59 +01:00
2023-01-11 14:08:06 +00:00
2023-01-18 09:58:32 +01:00
2022-12-14 15:16:59 +01:00
2022-12-14 15:16:59 +01:00
2022-12-14 15:16:59 +01:00
2022-12-14 15:16:59 +01:00
2022-12-14 15:16:59 +01:00
2022-12-14 15:16:59 +01:00
2022-12-14 15:27:31 +01:00
2022-12-14 15:16:59 +01:00
2022-12-14 15:16:59 +01:00
2022-12-14 15:16:59 +01:00
2022-12-14 15:27:31 +01:00
2023-01-18 09:58:32 +01:00
2022-08-26 20:39:52 +01:00
2022-12-14 15:16:59 +01:00
2022-12-14 15:16:59 +01:00
2022-12-14 15:16:59 +01:00
2022-12-14 15:16:59 +01:00
2023-01-11 14:08:06 +00:00
2023-01-11 14:08:06 +00:00
2023-01-18 09:58:32 +01:00
2023-01-11 14:08:06 +00:00
2022-12-14 15:16:59 +01:00
2023-01-11 14:08:06 +00:00
2023-01-11 14:08:06 +00:00
2022-12-14 15:16:59 +01:00
2023-01-18 09:58:32 +01:00
2022-12-14 15:16:59 +01:00
2022-12-05 22:17:30 +03:00
2023-01-18 09:58:32 +01:00
2022-12-14 15:16:59 +01:00
2023-01-04 17:25:42 +01:00
2022-12-14 15:16:59 +01:00
2023-01-11 14:08:06 +00:00
2022-08-14 17:44:11 +01:00
2023-01-11 14:08:06 +00:00
2022-12-14 15:16:59 +01:00
2023-01-11 14:08:06 +00:00
2022-12-19 20:55:44 +00:00
2022-12-14 15:16:59 +01:00
2022-12-14 15:16:59 +01:00
2022-12-14 15:16:59 +01:00
2022-12-14 15:16:59 +01:00
2022-12-14 15:16:59 +01:00
2023-01-04 17:25:42 +01:00
2023-01-04 17:25:42 +01:00
2022-12-14 15:16:59 +01:00
2022-12-14 15:16:59 +01:00
2022-12-14 15:16:59 +01:00
2022-12-14 15:16:59 +01:00
2023-01-18 09:58:32 +01:00
2022-12-14 15:16:59 +01:00
2022-12-14 15:16:59 +01:00
2022-12-14 15:16:59 +01:00
2022-12-14 15:16:59 +01:00
2022-12-14 15:16:59 +01:00
2022-12-14 15:16:59 +01:00
2023-01-18 09:58:32 +01:00
2023-01-04 17:25:42 +01:00
2022-12-14 15:16:59 +01:00
2022-12-14 15:16:59 +01:00
2022-12-14 15:16:59 +01:00
2022-12-05 22:17:30 +03:00
2022-12-14 15:16:59 +01:00
2023-01-18 09:58:32 +01:00
2022-12-24 18:34:54 +00:00
2023-01-06 10:56:17 +00:00
2022-12-14 15:16:59 +01:00
2022-12-14 15:16:59 +01:00
2022-12-14 15:16:59 +01:00
2022-12-14 15:16:59 +01:00
2022-12-14 15:16:59 +01:00
2022-12-26 22:47:09 +00:00
2022-12-05 22:17:30 +03:00
2022-12-14 15:16:59 +01:00
2022-12-26 22:47:09 +00:00
2022-12-26 22:47:09 +00:00
2023-01-21 17:14:13 +00:00
2022-12-14 15:16:59 +01:00
2022-12-19 20:44:44 +00:00
2022-12-19 20:44:44 +00:00
2023-01-11 14:08:06 +00:00
2022-12-14 15:16:59 +01:00
2023-01-18 09:58:32 +01:00