llvm-project/llvm/test/Analysis/CostModel
Roman Lebedev 77a0da926c
[LV] Remove `LoopVectorizationCostModel::useEmulatedMaskMemRefHack()`
D43208 extracted `useEmulatedMaskMemRefHack()` from legality into cost model.
What it essentially does is prevents scalarized vectorization of masked memory operations:
```
  // TODO: Cost model for emulated masked load/store is completely
  // broken. This hack guides the cost model to use an artificially
  // high enough value to practically disable vectorization with such
  // operations, except where previously deployed legality hack allowed
  // using very low cost values. This is to avoid regressions coming simply
  // from moving "masked load/store" check from legality to cost model.
  // Masked Load/Gather emulation was previously never allowed.
  // Limited number of Masked Store/Scatter emulation was allowed.
```

While i don't really understand about what specifically `is completely broken`
was talking about, i believe that at least on X86 with AVX2-or-later,
this is no longer true. (or at least, i would like to know what is still broken).
So i would like to follow suit after D111460, and like wise disable that hack for AVX2+.

But since this was added for X86 specifically, let's just instead completely remove this hack.

Reviewed By: RKSimon

Differential Revision: https://reviews.llvm.org/D114779
2022-02-07 16:08:31 +03:00
..
AArch64 [AArch64] Fix costs of float vector compare/selects pairs. 2022-01-31 10:18:29 +00:00
AMDGPU [AMDGPU] Make v8i16/v8f16 legal 2022-01-24 11:51:08 -08:00
ARM [CostModel] Use cost of target trunc type when only it is the only use of a non-register sized load 2022-01-12 18:03:50 -06:00
PowerPC [CostModel] Use cost of target trunc type when only it is the only use of a non-register sized load 2022-01-12 18:03:50 -06:00
RISCV [RISCV] Remove experimental prefix from rvv-related extensions. 2022-01-22 20:18:40 -08:00
SystemZ [CostModel] Use cost of target trunc type when only it is the only use of a non-register sized load 2022-01-12 18:03:50 -06:00
X86 [LV] Remove `LoopVectorizationCostModel::useEmulatedMaskMemRefHack()` 2022-02-07 16:08:31 +03:00
free-intrinsics-datalayout.ll [Tests] Fix incorrect noalias metadata 2021-09-18 20:51:00 +02:00
free-intrinsics-no_info.ll [Tests] Fix incorrect noalias metadata 2021-09-18 20:51:00 +02:00
no_info.ll