30 lines
1.2 KiB
MLIR
30 lines
1.2 KiB
MLIR
// RUN: mlir-opt -allow-unregistered-dialect %s -pass-pipeline='builtin.module(func.func(cse))' | FileCheck %s
|
|
|
|
// This test is checking that CSE does not remove 'arm_sme.zero/get_tile' ops as
|
|
// duplicates.
|
|
|
|
// CHECK-LABEL: @zero_tile
|
|
// CHECK: %[[TILE_0:.*]] = arm_sme.zero : vector<[4]x[4]xi32>
|
|
// CHECK: %[[TILE_1:.*]] = arm_sme.zero : vector<[4]x[4]xi32>
|
|
// CHECK: "prevent.dce"(%[[TILE_0]]) : (vector<[4]x[4]xi32>) -> ()
|
|
// CHECK: "prevent.dce"(%[[TILE_1]]) : (vector<[4]x[4]xi32>) -> ()
|
|
func.func @zero_tile() {
|
|
%tile_1 = arm_sme.zero : vector<[4]x[4]xi32>
|
|
%tile_2 = arm_sme.zero : vector<[4]x[4]xi32>
|
|
"prevent.dce"(%tile_1) : (vector<[4]x[4]xi32>) -> ()
|
|
"prevent.dce"(%tile_2) : (vector<[4]x[4]xi32>) -> ()
|
|
return
|
|
}
|
|
|
|
// CHECK-LABEL: @get_tile
|
|
// CHECK: %[[TILE_0:.*]] = arm_sme.get_tile : vector<[4]x[4]xi32>
|
|
// CHECK: %[[TILE_1:.*]] = arm_sme.get_tile : vector<[4]x[4]xi32>
|
|
// CHECK: "prevent.dce"(%[[TILE_0]]) : (vector<[4]x[4]xi32>) -> ()
|
|
// CHECK: "prevent.dce"(%[[TILE_1]]) : (vector<[4]x[4]xi32>) -> ()
|
|
func.func @get_tile() {
|
|
%tile_1 = arm_sme.get_tile : vector<[4]x[4]xi32>
|
|
%tile_2 = arm_sme.get_tile : vector<[4]x[4]xi32>
|
|
"prevent.dce"(%tile_1) : (vector<[4]x[4]xi32>) -> ()
|
|
"prevent.dce"(%tile_2) : (vector<[4]x[4]xi32>) -> ()
|
|
return
|
|
}
|