Lines Matching defs:affine

34 namespace affine {
37 } // namespace affine
41 using namespace affine;
110 /// affine.for %i = ? to ? step ? {
296 /// affine.for %i = %M to %N {
297 /// %a = affine.load %A[%i] : memref<?xf32>
305 /// affine.for %i = floor(%M, 128) to ceil(%N, 128) {
306 /// affine.for %ii = max(%M, 128 * %i) to min(%N, 128*%i + 127) {
307 /// %a = affine.load %A[%ii] : memref<?xf32>
315 /// affine.for %i = ? to ? step ? {
335 /// affine.for %i = %M to %N step 128 {
363 /// affine.for %i0 = 0 to %M {
364 /// affine.for %i1 = 0 to %N {
366 /// affine.store %f1, %A[%i0, %i1] : memref<?x?xf32, 0>
369 /// affine.for %i2 = 0 to %M {
370 /// affine.for %i3 = 0 to %N {
372 /// affine.store %f2, %B[%i2, %i3] : memref<?x?xf32, 0>
375 /// affine.for %i4 = 0 to %M {
376 /// affine.for %i5 = 0 to %N {
377 /// %a5 = affine.load %A[%i4, %i5] : memref<?x?xf32, 0>
378 /// %b5 = affine.load %B[%i4, %i5] : memref<?x?xf32, 0>
386 /// affine.store %s8, %C[%i4, %i5] : memref<?x?xf32, 0>
396 /// The -affine-super-vectorize pass with the following arguments:
398 /// -affine-super-vectorize="virtual-vector-size=256 test-fastest-varying=0"
409 /// affine.for %i0 = 0 to %arg0 {
410 /// affine.for %i1 = 0 to %arg1 step 256 {
417 /// affine.for %i2 = 0 to %arg0 {
418 /// affine.for %i3 = 0 to %arg1 step 256 {
425 /// affine.for %i4 = 0 to %arg0 {
426 /// affine.for %i5 = 0 to %arg1 step 256 {
450 /// The -affine-super-vectorize pass with the following arguments:
452 /// -affine-super-vectorize="virtual-vector-size=32,256 \
464 /// affine.for %i0 = 0 to %arg0 step 32 {
465 /// affine.for %i1 = 0 to %arg1 step 256 {
472 /// affine.for %i2 = 0 to %arg0 step 32 {
473 /// affine.for %i3 = 0 to %arg1 step 256 {
480 /// affine.for %i4 = 0 to %arg0 step 32 {
481 /// affine.for %i5 = 0 to %arg1 step 256 {
530 /// %sum = affine.for %i = 0 to 500 iter_args(%part_sum = %cst) -> (f32) {
531 /// %ld = affine.load %in[%i] : memref<512xf32>
534 /// affine.yield %add : f32
540 /// The -affine-super-vectorize pass with the following arguments:
542 /// -affine-super-vectorize="virtual-vector-size=128 test-fastest-varying=0 \
551 /// %0 = affine.for %arg1 = 0 to 500 step 128 iter_args(%arg2 = %cst_0)
554 /// %2 = affine.apply #map(%arg1)
563 /// affine.yield %7 : vector<128xf32>
591 using affine::matcher::For;
612 static auto pattern = affine::matcher::Op(
621 struct Vectorize : public affine::impl::AffineVectorizeBase<Vectorize> {
716 /// or affine.apply results that are within the loop be vectorized and will
731 /// * 'replaced': %0 = affine.for %i = 0 to 512 iter_args(%x = ...) -> (f32)
846 /// or affine.apply results that are within the loop be vectorized and will
868 /// * 'replaced': %0 = affine.for %i = 0 to 512 iter_args(%x = ...) -> (f32)
971 /// We have no need to vectorize affine.apply. However, we still need to
979 dbgs() << "\n[early-vect]+++++ affine.apply on vector operand\n");
992 // Register the new affine.apply result.
1055 // %elems_left = affine.apply #map(%iv)
1060 // First we get the upper bound of the loop using `affine.apply` or
1061 // `affine.min`.
1076 // If the affine maps were successfully composed then `ub` is unneeded.
1184 /// Vectorizes an affine load with the vectorization strategy in 'state' by
1205 // Check the operand in loadOp affine map does not come from AffineApplyOp.
1234 /// Vectorizes an affine store with the vectorization strategy in 'state' by
1465 // affine.yield %res : vector<128xf32>
1559 /// Internal implementation to vectorize affine loops from a single loop nest
1682 /// Internal implementation to vectorize affine loops in 'loops' using the n-D
1793 /// Verify that affine loops in 'loops' meet the nesting criteria expected by
1832 /// External utility to vectorize affine loops in 'loops' using the n-D
1840 void mlir::affine::vectorizeAffineLoops(
1850 /// External utility to vectorize affine loops from a single loop nest using an
1863 /// affine.for %i0 = 0 to 64 {
1864 /// affine.for %i1 = 0 to 128 {
1865 /// affine.for %i2 = 0 to 512 {
1866 /// %ld = affine.load %in0[%i0, %i1, %i2] : memref<64x128x512xf32>
1867 /// affine.store %ld, %out0[%i0, %i1, %i2] : memref<64x128x512xf32>
1869 /// affine.for %i3 = 0 to 128 {
1870 /// %ld = affine.load %in1[%i0, %i1, %i3] : memref<64x128x128xf32>
1871 /// affine.store %ld, %out1[%i0, %i1, %i3] : memref<64x128x128xf32>
1885 LogicalResult mlir::affine::vectorizeAffineLoopNest(