mirror of
https://github.com/capstone-engine/llvm-capstone.git
synced 2025-02-07 18:10:24 +00:00
[mlir][tensor] Do not use affine ops on non-perfect-tiling unpack cases.
Do not create an Affine ops for expanded size because the affine op is too complicated which would hit an assertion in affine ops simplification. Reviewed By: mravishankar Differential Revision: https://reviews.llvm.org/D144151
This commit is contained in:
parent
2b2b8409e6
commit
5fa9933c13
@ -318,8 +318,11 @@ static UnpackTileDimInfo getUnpackTileDimInfo(OpBuilder &b, UnPackOp unpackOp,
|
||||
ab.add(AV(dim0).bind(lengthMinusOne), AV(dim1).bind(oneAttr));
|
||||
info.sourceOffset = firstCoord.quotient;
|
||||
info.resultOffset = firstCoord.remainder;
|
||||
info.destExpandedSize =
|
||||
ab.mul(AV(dim0).bind(info.sourceSize), AV(sym0).bind(innerTileSize));
|
||||
// Do not create an Affine ops for expanded size because the affine op is too
|
||||
// complicated which would trigger an issue in affine ops simplification.
|
||||
info.destExpandedSize = b.createOrFold<arith::MulIOp>(
|
||||
loc, getValueOrCreateConstantIndexOp(b, loc, info.sourceSize),
|
||||
getValueOrCreateConstantIndexOp(b, loc, innerTileSize));
|
||||
return info;
|
||||
}
|
||||
|
||||
|
@ -391,11 +391,9 @@ transform.sequence failures(propagate) {
|
||||
// CHECK-DAG: #[[MAP0:.+]] = affine_map<(d0) -> (d0 floordiv 32)>
|
||||
// CHECK-DAG: #[[MAP1:.+]] = affine_map<(d0) -> (d0 mod 32)>
|
||||
// CHECK-DAG: #[[MAP2:.+]] = affine_map<(d0) -> ((d0 + 1) floordiv 32 - d0 floordiv 32 + 1)>
|
||||
// CHECK-DAG: #[[MAP3:.+]] = affine_map<(d0) -> (((d0 + 1) floordiv 32) * 32 - (d0 floordiv 32) * 32 + 32)>
|
||||
// CHECK-DAG: #[[MAP4:.+]] = affine_map<(d0) -> (d0 floordiv 16)>
|
||||
// CHECK-DAG: #[[MAP5:.+]] = affine_map<(d0) -> (d0 mod 16)>
|
||||
// CHECK-DAG: #[[MAP6:.+]] = affine_map<(d0) -> ((d0 + 3) floordiv 16 - d0 floordiv 16 + 1)>
|
||||
// CHECK-DAG: #[[MAP7:.+]] = affine_map<(d0) -> (((d0 + 3) floordiv 16) * 16 - (d0 floordiv 16) * 16 + 16)>
|
||||
// CHECK: func.func @NCnc_to_NC
|
||||
// CHECK-SAME: %[[IN:[A-Za-z0-9]+]]:
|
||||
// CHECK-SAME: %[[OUT:[A-Za-z0-9]+]]:
|
||||
@ -440,11 +438,9 @@ transform.sequence failures(propagate) {
|
||||
// CHECK-DAG: #[[MAP0:.+]] = affine_map<(d0) -> (d0 floordiv 32)>
|
||||
// CHECK-DAG: #[[MAP1:.+]] = affine_map<(d0) -> (d0 mod 32)>
|
||||
// CHECK-DAG: #[[MAP2:.+]] = affine_map<(d0) -> ((d0 + 1) floordiv 32 - d0 floordiv 32 + 1)>
|
||||
// CHECK-DAG: #[[MAP3:.+]] = affine_map<(d0) -> (((d0 + 1) floordiv 32) * 32 - (d0 floordiv 32) * 32 + 32)>
|
||||
// CHECK-DAG: #[[MAP4:.+]] = affine_map<(d0) -> (d0 floordiv 8)>
|
||||
// CHECK-DAG: #[[MAP5:.+]] = affine_map<(d0) -> (d0 mod 8)>
|
||||
// CHECK-DAG: #[[MAP6:.+]] = affine_map<(d0) -> ((d0 + 3) floordiv 8 - d0 floordiv 8 + 1)>
|
||||
// CHECK-DAG: #[[MAP7:.+]] = affine_map<(d0) -> (((d0 + 3) floordiv 8) * 8 - (d0 floordiv 8) * 8 + 8)>
|
||||
// CHECK: func.func @CKkc_to_KC
|
||||
// CHECK-SAME: %[[IN:[A-Za-z0-9]+]]:
|
||||
// CHECK-SAME: %[[OUT:[A-Za-z0-9]+]]:
|
||||
|
Loading…
x
Reference in New Issue
Block a user