[Mlir-commits] [mlir] [mlir] Add Memref Normalization support for reinterpret_cast op (PR #133417)

Uday Bondhugula llvmlistbot at llvm.org
Fri Apr 4 07:59:10 PDT 2025


================
@@ -165,3 +165,35 @@ func.func @prefetch_normalize(%arg0: memref<512xf32, affine_map<(d0) -> (d0 floo
   }
   return
 }
+
+#map_strided = affine_map<(d0, d1) -> (d0 * 7 + d1)>
+
+// CHECK-LABEL: test_reinterpret_cast
+func.func @test_reinterpret_cast(%arg0: memref<5x7xf32>, %arg1: memref<5x7xf32>, %arg2: memref<5x7xf32>) {
+  %0 = memref.reinterpret_cast %arg0 to offset: [0], sizes: [5, 7], strides: [7, 1] : memref<5x7xf32> to memref<5x7xf32, #map_strided>
+  // CHECK: memref.reinterpret_cast %{{.*}} to offset: [0], sizes: [35], strides: [1] : memref<5x7xf32> to memref<35xf32>
+  affine.for %arg5 = 0 to 5 {
+    affine.for %arg6 = 0 to 7 {
+      %1 = affine.load %0[%arg5, %arg6] : memref<5x7xf32, #map_strided>
+      // CHECK: affine.load %reinterpret_cast[%{{.*}} * 7 + %{{.*}}] : memref<35xf32>
+      %2 = affine.load %arg1[%arg5, %arg6] : memref<5x7xf32>
+      %3 = arith.subf %1, %2 : f32
+      affine.store %3, %arg2[%arg5, %arg6] : memref<5x7xf32>
+    }
+  }
+  return
+}
+
+
----------------
bondhugula wrote:

Drop blaank line.

https://github.com/llvm/llvm-project/pull/133417


More information about the Mlir-commits mailing list