llvm-project/mlir/test/Dialect
Nicolas Vasilache 35b65be041 [mlir][Vector] Add transformation + pattern to split vector.transfer_read into full and partial copies.
This revision adds a transformation and a pattern that rewrites a "maybe masked" `vector.transfer_read %view[...], %pad `into a pattern resembling:

```
   %1:3 = scf.if (%inBounds) {
      scf.yield %view : memref<A...>, index, index
    } else {
      %2 = vector.transfer_read %view[...], %pad : memref<A...>, vector<...>
      %3 = vector.type_cast %extra_alloc : memref<...> to
      memref<vector<...>> store %2, %3[] : memref<vector<...>> %4 =
      memref_cast %extra_alloc: memref<B...> to memref<A...> scf.yield %4 :
      memref<A...>, index, index
   }
   %res= vector.transfer_read %1#0[%1#1, %1#2] {masked = [false ... false]}
```
where `extra_alloc` is a top of the function alloca'ed buffer of one vector.

This rewrite makes it possible to realize the "always full tile" abstraction where vector.transfer_read operations are guaranteed to read from a padded full buffer.
The extra work only occurs on the boundary tiles.

Differential Revision: https://reviews.llvm.org/D84631
2020-08-03 04:53:43 -04:00
..
AVX512 [mlir][AVX512] Start a primitive AVX512 dialect 2020-03-20 14:11:57 -04:00
Affine [MLIR][Affine] Add test for non-hyperrectangular loop tiling 2020-07-26 20:17:23 +05:30
GPU [MLIR][Standard] Make the `dim` operation index an operand. 2020-06-10 13:54:47 +00:00
LLVMIR [mlir] LLVM dialect: use addressof instead of constant to create function pointers 2020-06-29 12:21:33 +02:00
Linalg [mlir][Linalg] Conv {1,2,3}D ops defined with TC syntax 2020-07-31 13:20:17 +02:00
OpenMP [mlir][OpenMP] Add custom parser and pretty printer for parallel construct 2020-06-16 13:35:42 +01:00
Quant Enable FileCheck -enable-var-scope by default in MLIR test 2020-06-12 00:43:09 +00:00
SCF [MLIR] Add type checking capability to RegionBranchOpInterface 2020-07-15 11:14:07 -07:00
SPIRV [MLIR][SPIRV] Control attributes support for loop and selection 2020-08-03 09:31:37 +03:00
Shape [mlir] Add shape.with_shape op 2020-07-31 14:46:48 -07:00
Standard [MLIR][Standard] Erase redundant assertions `std.assert` 2020-07-14 10:09:39 +00:00
Vector [mlir][Vector] Add transformation + pattern to split vector.transfer_read into full and partial copies. 2020-08-03 04:53:43 -04:00
traits.mlir [mlir] Generalize broadcastable trait operands 2020-01-20 13:02:14 -08:00