diff --git a/mlir/lib/Dialect/Vector/VectorOps.cpp b/mlir/lib/Dialect/Vector/VectorOps.cpp --- a/mlir/lib/Dialect/Vector/VectorOps.cpp +++ b/mlir/lib/Dialect/Vector/VectorOps.cpp @@ -2764,8 +2764,8 @@ PatternRewriter &rewriter) const override { switch (get1DMaskFormat(load.mask())) { case MaskFormat::AllTrue: - rewriter.replaceOpWithNewOp( - load, load.getType(), load.base(), load.indices(), false); + rewriter.replaceOpWithNewOp(load, load.getType(), + load.base(), load.indices()); return success(); case MaskFormat::AllFalse: rewriter.replaceOp(load, load.pass_thru()); @@ -2809,8 +2809,8 @@ PatternRewriter &rewriter) const override { switch (get1DMaskFormat(store.mask())) { case MaskFormat::AllTrue: - rewriter.replaceOpWithNewOp( - store, store.valueToStore(), store.base(), store.indices(), false); + rewriter.replaceOpWithNewOp( + store, store.valueToStore(), store.base(), store.indices()); return success(); case MaskFormat::AllFalse: rewriter.eraseOp(store); @@ -2951,8 +2951,8 @@ PatternRewriter &rewriter) const override { switch (get1DMaskFormat(expand.mask())) { case MaskFormat::AllTrue: - rewriter.replaceOpWithNewOp( - expand, expand.getType(), expand.base(), expand.indices(), false); + rewriter.replaceOpWithNewOp( + expand, expand.getType(), expand.base(), expand.indices()); return success(); case MaskFormat::AllFalse: rewriter.replaceOp(expand, expand.pass_thru()); @@ -2996,9 +2996,9 @@ PatternRewriter &rewriter) const override { switch (get1DMaskFormat(compress.mask())) { case MaskFormat::AllTrue: - rewriter.replaceOpWithNewOp( + rewriter.replaceOpWithNewOp( compress, compress.valueToStore(), compress.base(), - compress.indices(), false); + compress.indices()); return success(); case MaskFormat::AllFalse: rewriter.eraseOp(compress); diff --git a/mlir/test/Dialect/Linalg/sparse_vector.mlir b/mlir/test/Dialect/Linalg/sparse_vector.mlir --- a/mlir/test/Dialect/Linalg/sparse_vector.mlir +++ b/mlir/test/Dialect/Linalg/sparse_vector.mlir @@ -35,10 +35,10 @@ // CHECK-VEC1-DAG: %[[c16:.*]] = constant 16 : index // CHECK-VEC1-DAG: %[[c1024:.*]] = constant 1024 : index // CHECK-VEC1: scf.for %[[i:.*]] = %[[c0]] to %[[c1024]] step %[[c16]] { -// CHECK-VEC1: %[[r:.*]] = vector.transfer_read %{{.*}}[%[[i]]], %{{.*}} {masked = [false]} : memref<1024xf32>, vector<16xf32> +// CHECK-VEC1: %[[r:.*]] = vector.load %{{.*}}[%[[i]]] : memref<1024xf32>, vector<16xf32> // CHECK-VEC1: %[[b:.*]] = vector.broadcast %{{.*}} : f32 to vector<16xf32> // CHECK-VEC1: %[[m:.*]] = mulf %[[r]], %[[b]] : vector<16xf32> -// CHECK-VEC1: vector.transfer_write %[[m]], %{{.*}}[%[[i]]] {masked = [false]} : vector<16xf32>, memref<1024xf32> +// CHECK-VEC1: vector.store %[[m]], %{{.*}}[%[[i]]] : memref<1024xf32>, vector<16xf32> // CHECK-VEC1: } // CHECK-VEC1: return // @@ -47,10 +47,10 @@ // CHECK-VEC2-DAG: %[[c16:.*]] = constant 16 : index // CHECK-VEC2-DAG: %[[c1024:.*]] = constant 1024 : index // CHECK-VEC2: scf.for %[[i:.*]] = %[[c0]] to %[[c1024]] step %[[c16]] { -// CHECK-VEC2: %[[r:.*]] = vector.transfer_read %{{.*}}[%[[i]]], %{{.*}} {masked = [false]} : memref<1024xf32>, vector<16xf32> +// CHECK-VEC2: %[[r:.*]] = vector.load %{{.*}}[%[[i]]] : memref<1024xf32>, vector<16xf32> // CHECK-VEC2: %[[b:.*]] = vector.broadcast %{{.*}} : f32 to vector<16xf32> // CHECK-VEC2: %[[m:.*]] = mulf %[[r]], %[[b]] : vector<16xf32> -// CHECK-VEC2: vector.transfer_write %[[m]], %{{.*}}[%[[i]]] {masked = [false]} : vector<16xf32>, memref<1024xf32> +// CHECK-VEC2: vector.store %[[m]], %{{.*}}[%[[i]]] : memref<1024xf32>, vector<16xf32> // CHECK-VEC2: } // CHECK-VEC2: return // @@ -214,8 +214,8 @@ // CHECK-VEC1-DAG: %[[c1024:.*]] = constant 1024 : index // CHECK-VEC1-DAG: %[[v0:.*]] = constant dense<0.000000e+00> : vector<16xf32> // CHECK-VEC1: %[[red:.*]] = scf.for %[[i:.*]] = %[[c0]] to %[[c1024]] step %[[c16]] iter_args(%[[red_in:.*]] = %[[v0]]) -> (vector<16xf32>) { -// CHECK-VEC1: %[[la:.*]] = vector.transfer_read %{{.*}}[%[[i]]], %cst_0 {masked = [false]} : memref<1024xf32>, vector<16xf32> -// CHECK-VEC1: %[[lb:.*]] = vector.transfer_read %{{.*}}[%[[i]]], %cst_0 {masked = [false]} : memref<1024xf32>, vector<16xf32> +// CHECK-VEC1: %[[la:.*]] = vector.load %{{.*}}[%[[i]]] : memref<1024xf32>, vector<16xf32> +// CHECK-VEC1: %[[lb:.*]] = vector.load %{{.*}}[%[[i]]] : memref<1024xf32>, vector<16xf32> // CHECK-VEC1: %[[m:.*]] = mulf %[[la]], %[[lb]] : vector<16xf32> // CHECK-VEC1: %[[a:.*]] = addf %[[red_in]], %[[m]] : vector<16xf32> // CHECK-VEC1: scf.yield %[[a]] : vector<16xf32> @@ -229,8 +229,8 @@ // CHECK-VEC2-DAG: %[[c1024:.*]] = constant 1024 : index // CHECK-VEC2-DAG: %[[v0:.*]] = constant dense<0.000000e+00> : vector<16xf32> // CHECK-VEC2: %[[red:.*]] = scf.for %[[i:.*]] = %[[c0]] to %[[c1024]] step %[[c16]] iter_args(%[[red_in:.*]] = %[[v0]]) -> (vector<16xf32>) { -// CHECK-VEC2: %[[la:.*]] = vector.transfer_read %{{.*}}[%[[i]]], %cst_0 {masked = [false]} : memref<1024xf32>, vector<16xf32> -// CHECK-VEC2: %[[lb:.*]] = vector.transfer_read %{{.*}}[%[[i]]], %cst_0 {masked = [false]} : memref<1024xf32>, vector<16xf32> +// CHECK-VEC2: %[[la:.*]] = vector.load %{{.*}}[%[[i]]] : memref<1024xf32>, vector<16xf32> +// CHECK-VEC2: %[[lb:.*]] = vector.load %{{.*}}[%[[i]]] : memref<1024xf32>, vector<16xf32> // CHECK-VEC2: %[[m:.*]] = mulf %[[la]], %[[lb]] : vector<16xf32> // CHECK-VEC2: %[[a:.*]] = addf %[[red_in]], %[[m]] : vector<16xf32> // CHECK-VEC2: scf.yield %[[a]] : vector<16xf32> diff --git a/mlir/test/Dialect/Vector/vector-mem-transforms.mlir b/mlir/test/Dialect/Vector/vector-mem-transforms.mlir --- a/mlir/test/Dialect/Vector/vector-mem-transforms.mlir +++ b/mlir/test/Dialect/Vector/vector-mem-transforms.mlir @@ -4,8 +4,7 @@ // CHECK-SAME: %[[A0:.*]]: memref, // CHECK-SAME: %[[A1:.*]]: vector<16xf32>) -> vector<16xf32> { // CHECK-DAG: %[[C:.*]] = constant 0 : index -// CHECK-DAG: %[[D:.*]] = constant 0.000000e+00 : f32 -// CHECK-NEXT: %[[T:.*]] = vector.transfer_read %[[A0]][%[[C]]], %[[D]] {masked = [false]} : memref, vector<16xf32> +// CHECK-NEXT: %[[T:.*]] = vector.load %[[A0]][%[[C]]] : memref, vector<16xf32> // CHECK-NEXT: return %[[T]] : vector<16xf32> func @maskedload0(%base: memref, %pass_thru: vector<16xf32>) -> vector<16xf32> { %c0 = constant 0 : index @@ -19,8 +18,7 @@ // CHECK-SAME: %[[A0:.*]]: memref<16xf32>, // CHECK-SAME: %[[A1:.*]]: vector<16xf32>) -> vector<16xf32> { // CHECK-DAG: %[[C:.*]] = constant 0 : index -// CHECK-DAG: %[[D:.*]] = constant 0.000000e+00 : f32 -// CHECK-NEXT: %[[T:.*]] = vector.transfer_read %[[A0]][%[[C]]], %[[D]] {masked = [false]} : memref<16xf32>, vector<16xf32> +// CHECK-NEXT: %[[T:.*]] = vector.load %[[A0]][%[[C]]] : memref<16xf32>, vector<16xf32> // CHECK-NEXT: return %[[T]] : vector<16xf32> func @maskedload1(%base: memref<16xf32>, %pass_thru: vector<16xf32>) -> vector<16xf32> { %c0 = constant 0 : index @@ -46,8 +44,7 @@ // CHECK-SAME: %[[A0:.*]]: memref, // CHECK-SAME: %[[A1:.*]]: vector<16xf32>) -> vector<16xf32> { // CHECK-DAG: %[[C:.*]] = constant 8 : index -// CHECK-DAG: %[[D:.*]] = constant 0.000000e+00 : f32 -// CHECK-NEXT: %[[T:.*]] = vector.transfer_read %[[A0]][%[[C]]], %[[D]] {masked = [false]} : memref, vector<16xf32> +// CHECK-NEXT: %[[T:.*]] = vector.load %[[A0]][%[[C]]] : memref, vector<16xf32> // CHECK-NEXT: return %[[T]] : vector<16xf32> func @maskedload3(%base: memref, %pass_thru: vector<16xf32>) -> vector<16xf32> { %c8 = constant 8 : index @@ -61,7 +58,7 @@ // CHECK-SAME: %[[A0:.*]]: memref<16xf32>, // CHECK-SAME: %[[A1:.*]]: vector<16xf32>) { // CHECK-NEXT: %[[C:.*]] = constant 0 : index -// CHECK-NEXT: vector.transfer_write %[[A1]], %[[A0]][%[[C]]] {masked = [false]} : vector<16xf32>, memref<16xf32> +// CHECK-NEXT: vector.store %[[A1]], %[[A0]][%[[C]]] : memref<16xf32>, vector<16xf32> // CHECK-NEXT: return func @maskedstore1(%base: memref<16xf32>, %value: vector<16xf32>) { %c0 = constant 0 : index @@ -144,8 +141,7 @@ // CHECK-SAME: %[[A0:.*]]: memref<16xf32>, // CHECK-SAME: %[[A1:.*]]: vector<16xf32>) -> vector<16xf32> { // CHECK-DAG: %[[C:.*]] = constant 0 : index -// CHECK-DAG: %[[D:.*]] = constant 0.000000e+00 : f32 -// CHECK-NEXT: %[[T:.*]] = vector.transfer_read %[[A0]][%[[C]]], %[[D]] {masked = [false]} : memref<16xf32>, vector<16xf32> +// CHECK-NEXT: %[[T:.*]] = vector.load %[[A0]][%[[C]]] : memref<16xf32>, vector<16xf32> // CHECK-NEXT: return %[[T]] : vector<16xf32> func @expand1(%base: memref<16xf32>, %pass_thru: vector<16xf32>) -> vector<16xf32> { %c0 = constant 0 : index @@ -171,7 +167,7 @@ // CHECK-SAME: %[[A0:.*]]: memref<16xf32>, // CHECK-SAME: %[[A1:.*]]: vector<16xf32>) { // CHECK-NEXT: %[[C:.*]] = constant 0 : index -// CHECK-NEXT: vector.transfer_write %[[A1]], %[[A0]][%[[C]]] {masked = [false]} : vector<16xf32>, memref<16xf32> +// CHECK-NEXT: vector.store %[[A1]], %[[A0]][%[[C]]] : memref<16xf32>, vector<16xf32> // CHECK-NEXT: return func @compress1(%base: memref<16xf32>, %value: vector<16xf32>) { %c0 = constant 0 : index