brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.6 KiB · fc8db54 Raw
39 lines · plain
1// RUN: mlir-opt -memref-expand %s -split-input-file | FileCheck %s2 3// CHECK-LABEL: func @atomic_rmw_no_conversion4func.func @atomic_rmw_no_conversion(%F: memref<10xf32>, %f: f32, %i: index) -> (f32, f32) {5  %x = memref.atomic_rmw addf %f, %F[%i] : (f32, memref<10xf32>) -> f326  %y = memref.atomic_rmw maximumf %f, %F[%i] : (f32, memref<10xf32>) -> f327  return %x, %y : f32, f328}9// CHECK-NOT: generic_atomic_rmw10 11// -----12 13// CHECK-LABEL: func @memref_reshape(14func.func @memref_reshape(%input: memref<*xf32>,15                     %shape: memref<3xi32>) -> memref<?x?x8xf32> {16  %result = memref.reshape %input(%shape)17               : (memref<*xf32>, memref<3xi32>) -> memref<?x?x8xf32>18  return %result : memref<?x?x8xf32>19}20// CHECK-SAME: [[SRC:%.*]]: memref<*xf32>,21// CHECK-SAME: [[SHAPE:%.*]]: memref<3xi32>) -> memref<?x?x8xf32> {22 23// CHECK: [[C8:%.*]] = arith.constant 8 : index24// CHECK: [[C1:%.*]] = arith.constant 1 : index25// CHECK: [[DIM_1:%.*]] = memref.load [[SHAPE]]{{\[}}[[C1]]] : memref<3xi32>26// CHECK: [[SIZE_1:%.*]] = arith.index_cast [[DIM_1]] : i32 to index27 28// CHECK: [[C8_:%.*]] = arith.constant 8 : index29// CHECK: [[STRIDE_0:%.*]] = arith.muli [[C8_]], [[SIZE_1]] : index30 31// CHECK: [[C0:%.*]] = arith.constant 0 : index32// CHECK: [[DIM_0:%.*]] = memref.load [[SHAPE]]{{\[}}[[C0]]] : memref<3xi32>33// CHECK: [[SIZE_0:%.*]] = arith.index_cast [[DIM_0]] : i32 to index34 35// CHECK: [[RESULT:%.*]] = memref.reinterpret_cast [[SRC]]36// CHECK-SAME: to offset: [0], sizes: {{\[}}[[SIZE_0]], [[SIZE_1]], 8],37// CHECK-SAME: strides: {{\[}}[[STRIDE_0]], 8, 1]38// CHECK-SAME: : memref<*xf32> to memref<?x?x8xf32>39