Roman Lebedev
8e37b53360
[X86] Rewrite getScalarizationOverhead()
...
All of our insert/extract ops work on 128-bit lanes.
For `Insert`, we need to extract affected 128-bit lane,
unless it's being fully overwritten (FIXME: do we need to be
careful about legalization-induced padding that we obviously don't demand?),
perform insertions, and then insert the 128-bit lane back.
But hold on. If we are operating on an 256-bit legal vector,
and thus have two 128-bit subvectors, and are fully overwriting them both,
we don't actually need to insert *both* subvectors,
only the second one, into the implicitly-widened first one.
Also, `Insert` wasn't actually querying the costs,
but just assuming them to be `1`.
`getShuffleCost(TTI::SK_ExtractSubvector)` notes:
```
// Note that in general, the insertion starting at the beginning of a vector
// isn't free, because we need to preserve the rest of the wide vector.
```
... so as far as i can tell, we didn't account for that.
I was hoping this would allow vectorization at a higher VF at one case i looked at,
but the subvector insertion cost is still dis-advising that.
The change for `Extract` is NFC, and is for consistency only,
i wanted to get rid of of that weird explicit discounting of insertion of 0'th element,
since the general code should already deal with that.
Reviewed By: RKSimon
Differential Revision: https://reviews.llvm.org/D137913
2022-11-15 21:07:12 +03:00
..
2022-10-13 10:44:38 +02:00
2022-10-13 10:44:38 +02:00
2022-10-13 10:44:38 +02:00
2022-10-07 14:54:34 -07:00
2022-10-07 14:54:34 -07:00
2022-10-07 14:54:34 -07:00
2022-10-07 14:54:34 -07:00
2022-11-10 10:59:54 -08:00
2022-10-07 14:54:34 -07:00
2022-10-07 14:54:34 -07:00
2022-10-07 14:54:34 -07:00
2022-10-07 14:54:34 -07:00
2022-10-13 10:44:38 +02:00
2022-10-07 14:54:34 -07:00
2022-10-13 10:44:38 +02:00
2022-10-13 10:44:38 +02:00
2022-10-13 10:44:38 +02:00
2022-10-13 10:44:38 +02:00
2022-10-13 10:44:38 +02:00
2022-10-18 09:57:06 -07:00
2021-11-22 07:41:07 -08:00
2022-10-13 10:44:38 +02:00
2022-10-13 10:44:38 +02:00
2022-10-13 10:44:38 +02:00
2022-10-13 10:44:38 +02:00
2022-10-13 10:44:38 +02:00
2022-10-18 09:57:06 -07:00
2022-10-13 10:44:38 +02:00
2022-10-13 10:44:38 +02:00
2022-10-13 10:44:38 +02:00
2022-10-13 10:44:38 +02:00
2022-10-13 10:44:38 +02:00
2022-10-13 10:44:38 +02:00
2022-10-13 10:44:38 +02:00
2022-10-13 10:44:38 +02:00
2022-10-13 10:44:38 +02:00
2022-10-13 10:44:38 +02:00
2022-10-13 10:44:38 +02:00
2022-10-13 10:44:38 +02:00
2022-10-13 10:44:38 +02:00
2022-10-13 10:44:38 +02:00
2022-10-13 10:44:38 +02:00
2022-10-07 14:54:34 -07:00
2022-10-13 10:44:38 +02:00
2022-06-10 14:06:32 +01:00
2022-05-02 12:03:58 -07:00
2022-10-18 09:57:06 -07:00
2022-10-13 10:44:38 +02:00
2022-11-10 10:59:54 -08:00
2022-10-13 10:44:38 +02:00
2022-10-13 10:44:38 +02:00
2022-10-13 10:44:38 +02:00
2022-10-13 10:44:38 +02:00
2022-11-10 10:59:54 -08:00
2022-11-10 10:59:54 -08:00
2022-10-07 14:54:34 -07:00
2022-10-07 14:54:34 -07:00
2022-10-13 10:44:38 +02:00
2022-02-03 06:24:10 -08:00
2022-02-03 06:24:10 -08:00
2022-11-10 10:59:54 -08:00
2022-10-13 10:44:38 +02:00
2022-10-13 10:44:38 +02:00
2022-11-10 10:59:54 -08:00
2022-11-10 10:59:54 -08:00
2022-10-13 10:44:38 +02:00
2022-10-13 10:44:38 +02:00
2022-10-13 10:44:38 +02:00
2022-10-07 14:54:34 -07:00
2022-10-13 10:44:38 +02:00
2022-10-07 14:54:34 -07:00
2022-10-07 14:54:34 -07:00
2022-11-10 10:59:54 -08:00
2022-10-07 14:54:34 -07:00
2022-11-10 10:59:54 -08:00
2022-10-07 14:54:34 -07:00
2022-10-07 14:54:34 -07:00
2022-10-07 14:54:34 -07:00
2022-10-07 14:54:34 -07:00
2022-10-07 14:54:34 -07:00
2022-10-07 14:54:34 -07:00
2022-10-13 10:44:38 +02:00
2022-10-13 10:44:38 +02:00
2022-10-13 10:44:38 +02:00
2022-10-07 14:54:34 -07:00
2022-10-07 14:54:34 -07:00
2022-10-13 10:44:38 +02:00
2022-10-13 10:44:38 +02:00
2022-10-07 14:54:34 -07:00
2022-10-13 10:44:38 +02:00
2022-11-10 10:59:54 -08:00
2022-10-13 10:44:38 +02:00
2022-10-13 10:44:38 +02:00
2022-10-13 10:44:38 +02:00
2022-10-07 14:54:34 -07:00
2022-10-07 14:54:34 -07:00
2022-10-13 10:44:38 +02:00
2022-10-13 10:44:38 +02:00
2022-10-13 10:44:38 +02:00
2022-10-13 10:44:38 +02:00
2022-10-13 10:44:38 +02:00
2022-10-13 10:44:38 +02:00
2022-10-13 10:44:38 +02:00
2022-10-07 14:54:34 -07:00
2022-11-10 10:59:54 -08:00
2022-10-13 10:44:38 +02:00
2022-11-10 10:59:54 -08:00
2022-10-13 10:44:38 +02:00
2022-10-13 10:44:38 +02:00
2022-10-07 14:54:34 -07:00
2022-10-07 14:54:34 -07:00
2022-10-12 08:18:30 -07:00
2022-11-10 10:59:54 -08:00
2022-11-10 10:59:54 -08:00
2022-10-13 10:44:38 +02:00
2022-10-13 10:44:38 +02:00
2022-10-13 10:44:38 +02:00
2022-10-13 10:44:38 +02:00
2022-10-07 14:54:34 -07:00
2022-10-13 10:44:38 +02:00
2022-10-13 10:44:38 +02:00
2022-10-13 10:44:38 +02:00
2022-10-13 10:44:38 +02:00
2022-10-13 10:44:38 +02:00
2022-10-13 10:44:38 +02:00
2022-10-13 10:44:38 +02:00
2022-10-13 10:44:38 +02:00
2022-10-13 10:44:38 +02:00
2022-10-13 10:44:38 +02:00
2022-10-13 10:44:38 +02:00
2022-10-13 10:44:38 +02:00
2022-10-13 10:44:38 +02:00
2022-10-13 10:44:38 +02:00
2022-10-13 10:44:38 +02:00
2022-10-07 14:54:34 -07:00
2022-10-07 14:54:34 -07:00
2022-10-07 14:54:34 -07:00
2022-11-10 10:59:54 -08:00
2022-10-13 10:44:38 +02:00
2022-10-13 10:44:38 +02:00
2022-10-13 10:44:38 +02:00
2022-10-07 14:54:34 -07:00
2022-10-07 14:54:34 -07:00
2022-10-07 14:54:34 -07:00
2022-11-10 10:59:54 -08:00
2022-10-13 10:44:38 +02:00
2022-10-13 10:44:38 +02:00
2022-10-13 10:44:38 +02:00
2022-10-13 10:44:38 +02:00
2022-10-13 10:44:38 +02:00
2022-10-13 10:44:38 +02:00
2022-11-10 10:59:54 -08:00
2022-10-13 10:44:38 +02:00
2022-10-13 10:44:38 +02:00
2022-10-13 10:44:38 +02:00
2022-10-13 10:44:38 +02:00
2022-10-07 14:54:34 -07:00
2022-05-23 07:06:45 -07:00
2022-11-10 10:59:54 -08:00
2022-10-13 10:44:38 +02:00
2022-10-13 10:44:38 +02:00
2022-10-13 10:44:38 +02:00
2022-02-26 11:44:26 +07:00
2021-10-20 15:16:17 +02:00
2022-10-13 10:44:38 +02:00
2022-10-13 10:44:38 +02:00
2022-10-13 10:44:38 +02:00
2022-10-13 10:44:38 +02:00
2022-10-07 14:54:34 -07:00
2022-11-10 10:59:54 -08:00
2022-10-13 10:44:38 +02:00
2022-10-13 10:44:38 +02:00
2022-11-10 10:59:54 -08:00
2022-09-19 09:57:37 -07:00
2022-10-07 14:54:34 -07:00
2021-12-13 16:56:22 -08:00
2022-10-07 14:54:34 -07:00
2022-10-07 14:54:34 -07:00
2022-10-13 10:44:38 +02:00
2022-10-07 14:54:34 -07:00
2022-10-13 10:44:38 +02:00
2022-10-13 10:44:38 +02:00
2022-10-07 14:54:34 -07:00
2022-11-10 10:59:54 -08:00
2022-10-07 14:54:34 -07:00
2022-11-10 10:59:54 -08:00
2022-10-07 14:54:34 -07:00
2022-10-13 10:44:38 +02:00
2022-10-07 14:54:34 -07:00
2022-11-10 10:59:54 -08:00
2022-10-07 14:54:34 -07:00
2022-10-13 10:44:38 +02:00
2022-10-13 10:44:38 +02:00
2022-10-13 10:44:38 +02:00
2022-10-13 10:44:38 +02:00
2022-10-13 10:44:38 +02:00
2022-10-07 14:54:34 -07:00
2022-10-13 10:44:38 +02:00
2022-10-13 10:44:38 +02:00
2022-10-13 10:44:38 +02:00
2022-10-13 10:44:38 +02:00
2022-10-13 10:44:38 +02:00
2022-10-13 10:44:38 +02:00
2022-10-13 10:44:38 +02:00
2022-10-13 10:44:38 +02:00
2021-12-13 16:56:22 -08:00
2022-10-13 10:44:38 +02:00
2022-10-13 10:44:38 +02:00
2022-10-13 10:44:38 +02:00
2022-10-13 10:44:38 +02:00
2022-02-24 09:01:20 +01:00
2022-05-25 14:25:07 -07:00
2022-09-19 11:01:41 -07:00
2022-09-19 11:01:41 -07:00
2022-03-16 13:54:59 -07:00
2022-10-13 10:44:38 +02:00
2022-09-25 16:22:42 +01:00
2022-10-13 10:44:38 +02:00
2022-10-13 10:44:38 +02:00
2022-10-13 10:44:38 +02:00
2022-10-13 10:44:38 +02:00
2022-10-18 11:55:59 -07:00
2022-10-13 10:44:38 +02:00
2022-10-13 10:44:38 +02:00
2022-10-13 10:44:38 +02:00
2022-11-10 10:59:54 -08:00
2022-10-13 10:44:38 +02:00
2022-10-13 10:44:38 +02:00
2022-10-13 10:44:38 +02:00
2022-11-10 10:59:54 -08:00
2022-10-13 10:44:38 +02:00
2022-10-13 10:44:38 +02:00
2022-11-10 10:59:54 -08:00
2022-10-13 10:44:38 +02:00
2022-10-13 10:44:38 +02:00
2022-10-13 10:44:38 +02:00
2022-10-13 10:44:38 +02:00
2022-10-18 11:55:59 -07:00
2022-10-13 10:44:38 +02:00
2022-10-07 14:54:34 -07:00
2022-10-13 10:44:38 +02:00
2022-10-13 10:44:38 +02:00
2022-10-13 10:44:38 +02:00
2022-11-10 10:59:54 -08:00
2022-10-13 07:20:41 -07:00
2022-10-13 10:44:38 +02:00
2022-10-13 07:20:41 -07:00
2022-10-13 10:44:38 +02:00
2022-10-13 10:44:38 +02:00
2022-11-10 10:59:54 -08:00
2022-10-13 10:44:38 +02:00
2022-11-10 10:59:54 -08:00
2022-10-13 10:44:38 +02:00
2022-10-13 10:44:38 +02:00
2022-10-13 10:44:38 +02:00
2022-10-13 10:44:38 +02:00
2022-05-23 07:06:45 -07:00
2022-10-13 10:44:38 +02:00
2022-10-13 10:44:38 +02:00
2022-10-13 10:44:38 +02:00
2022-11-10 10:59:54 -08:00
2022-10-13 10:44:38 +02:00
2022-10-07 14:54:34 -07:00
2022-10-13 10:44:38 +02:00
2022-10-07 14:54:34 -07:00
2022-10-18 11:55:59 -07:00
2022-10-13 10:44:38 +02:00
2022-11-10 10:59:54 -08:00
2022-10-13 10:44:38 +02:00
2022-05-09 09:48:15 -07:00
2022-10-13 10:44:38 +02:00
2022-10-13 10:44:38 +02:00
2022-10-13 10:44:38 +02:00
2022-10-13 10:44:38 +02:00
2022-10-13 10:44:38 +02:00
2022-10-13 10:44:38 +02:00
2022-10-13 10:44:38 +02:00
2022-10-13 10:44:38 +02:00
2022-10-13 10:44:38 +02:00
2022-10-13 10:44:38 +02:00
2022-10-13 10:44:38 +02:00
2022-10-13 10:44:38 +02:00
2022-10-07 14:54:34 -07:00
2022-10-27 16:29:16 -07:00
2022-10-27 16:29:16 -07:00
2022-10-13 10:44:38 +02:00
2022-10-13 10:44:38 +02:00
2022-10-13 10:44:38 +02:00
2022-11-10 10:12:51 -08:00
2022-10-13 10:44:38 +02:00
2022-10-13 10:44:38 +02:00
2022-10-13 10:44:38 +02:00
2022-10-13 10:44:38 +02:00
2022-10-13 10:44:38 +02:00
2022-10-13 10:44:38 +02:00
2022-10-13 10:44:38 +02:00
2022-10-13 10:44:38 +02:00
2022-10-13 10:44:38 +02:00
2022-03-28 20:10:13 -07:00
2022-10-13 10:44:38 +02:00
2022-10-13 10:44:38 +02:00
2022-10-13 10:44:38 +02:00
2022-10-13 10:44:38 +02:00
2022-10-13 10:44:38 +02:00
2022-10-13 10:44:38 +02:00
2022-10-13 10:44:38 +02:00
2022-10-13 10:44:38 +02:00
2022-10-13 10:44:38 +02:00
2022-10-13 10:44:38 +02:00
2022-10-13 10:44:38 +02:00
2022-10-13 10:44:38 +02:00
2022-10-13 10:44:38 +02:00
2022-03-28 20:10:13 -07:00
2022-10-13 10:44:38 +02:00
2022-10-13 10:44:38 +02:00
2022-11-15 21:07:12 +03:00
2022-03-28 20:10:13 -07:00
2022-11-10 10:59:54 -08:00
2022-10-13 10:44:38 +02:00
2022-10-13 10:44:38 +02:00