19 lines
789 B
MLIR
19 lines
789 B
MLIR
// RUN: mlir-opt %s -allocate-arm-sme-tiles -split-input-file -verify-diagnostics
|
|
|
|
// -----
|
|
|
|
func.func @selecting_between_different_tiles_is_unsupported(%dest : memref<?x?xi32>, %cond: i1) {
|
|
%c0 = arith.constant 0 : index
|
|
%tileA = arm_sme.get_tile : vector<[4]x[4]xi32>
|
|
%tileB = arm_sme.get_tile : vector<[4]x[4]xi32>
|
|
// Select between tileA and tileB. This is currently unsupported as it would
|
|
// require inserting tile move operations during tile allocation.
|
|
%tile = scf.if %cond -> vector<[4]x[4]xi32> {
|
|
scf.yield %tileA : vector<[4]x[4]xi32>
|
|
} else {
|
|
scf.yield %tileB : vector<[4]x[4]xi32>
|
|
}
|
|
// expected-error@+1 {{op already assigned different SME virtual tile!}}
|
|
arm_sme.tile_store %tile, %dest[%c0, %c0] : memref<?x?xi32>, vector<[4]x[4]xi32>
|
|
return
|
|
}
|