| // 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 |
| } |