1// RUN: mlir-opt %s -canonicalize | mlir-opt | FileCheck %s 2 3// This tests that dead tile values are removed from control flow. 4 5// CHECK-LABEL: @unused_ssa_tile_is_removed_from_blocks 6// CHECK-NOT: vector<[4]x[4]xf32> 7func.func @unused_ssa_tile_is_removed_from_blocks(%arg0: memref<?x?xi32>) { 8 %c10 = arith.constant 10 : index 9 %c0 = arith.constant 0 : index 10 %c1 = arith.constant 1 : index 11 %tile = arm_sme.get_tile : vector<[4]x[4]xf32> 12 cf.br ^bb1(%c0, %tile : index, vector<[4]x[4]xf32>) 13^bb1(%1: index, %2: vector<[4]x[4]xf32>): // 2 preds: ^bb0, ^bb2 14 %3 = arith.cmpi slt, %1, %c10 : index 15 cf.cond_br %3, ^bb2, ^bb3 16^bb2: // pred: ^bb1 17 %4 = arith.addi %1, %c1 : index 18 cf.br ^bb1(%4, %tile : index, vector<[4]x[4]xf32>) 19^bb3: // pred: ^bb1 20 return 21} 22