Changeset View
Changeset View
Standalone View
Standalone View
mlir/test/CAPI/ir.c
Show First 20 Lines • Show All 1,001 Lines • ▼ Show 20 Lines | int printBuiltinAttributes(MlirContext ctx) { | ||||
mlirAttributeDump(sparseAttr); | mlirAttributeDump(sparseAttr); | ||||
// CHECK: sparse<[4, 7], [0.000000e+00, 1.000000e+00]> : tensor<1x2xf32> | // CHECK: sparse<[4, 7], [0.000000e+00, 1.000000e+00]> : tensor<1x2xf32> | ||||
return 0; | return 0; | ||||
} | } | ||||
int printAffineMap(MlirContext ctx) { | int printAffineMap(MlirContext ctx) { | ||||
MlirAffineMap emptyAffineMap = mlirAffineMapEmptyGet(ctx); | MlirAffineMap emptyAffineMap = mlirAffineMapEmptyGet(ctx); | ||||
MlirAffineMap affineMap = mlirAffineMapGet(ctx, 3, 2); | MlirAffineMap affineMap = mlirAffineMapZeroResultGet(ctx, 3, 2); | ||||
MlirAffineMap constAffineMap = mlirAffineMapConstantGet(ctx, 2); | MlirAffineMap constAffineMap = mlirAffineMapConstantGet(ctx, 2); | ||||
MlirAffineMap multiDimIdentityAffineMap = | MlirAffineMap multiDimIdentityAffineMap = | ||||
mlirAffineMapMultiDimIdentityGet(ctx, 3); | mlirAffineMapMultiDimIdentityGet(ctx, 3); | ||||
MlirAffineMap minorIdentityAffineMap = | MlirAffineMap minorIdentityAffineMap = | ||||
mlirAffineMapMinorIdentityGet(ctx, 3, 2); | mlirAffineMapMinorIdentityGet(ctx, 3, 2); | ||||
unsigned permutation[] = {1, 2, 0}; | unsigned permutation[] = {1, 2, 0}; | ||||
MlirAffineMap permutationAffineMap = mlirAffineMapPermutationGet( | MlirAffineMap permutationAffineMap = mlirAffineMapPermutationGet( | ||||
ctx, sizeof(permutation) / sizeof(unsigned), permutation); | ctx, sizeof(permutation) / sizeof(unsigned), permutation); | ||||
▲ Show 20 Lines • Show All 251 Lines • ▼ Show 20 Lines | if (!mlirAffineExprEqual(affineDimExpr, otherDimExpr)) | ||||
return 18; | return 18; | ||||
if (mlirAffineExprIsNull(affineDimExpr)) | if (mlirAffineExprIsNull(affineDimExpr)) | ||||
return 19; | return 19; | ||||
return 0; | return 0; | ||||
} | } | ||||
int affineMapFromExprs(MlirContext ctx) { | |||||
MlirAffineExpr affineDimExpr = mlirAffineDimExprGet(ctx, 0); | |||||
MlirAffineExpr affineSymbolExpr = mlirAffineSymbolExprGet(ctx, 1); | |||||
MlirAffineExpr exprs[] = {affineDimExpr, affineSymbolExpr}; | |||||
MlirAffineMap map = mlirAffineMapGet(ctx, 3, 3, 2, exprs); | |||||
// CHECK-LABEL: @affineMapFromExprs | |||||
fprintf(stderr, "@affineMapFromExprs"); | |||||
// CHECK: (d0, d1, d2)[s0, s1, s2] -> (d0, s1) | |||||
mlirAffineMapDump(map); | |||||
if (mlirAffineMapGetNumResults(map) != 2) | |||||
return 1; | |||||
if (!mlirAffineExprEqual(mlirAffineMapGetResult(map, 0), affineDimExpr)) | |||||
return 2; | |||||
if (!mlirAffineExprEqual(mlirAffineMapGetResult(map, 1), affineSymbolExpr)) | |||||
return 3; | |||||
return 0; | |||||
} | |||||
int registerOnlyStd() { | int registerOnlyStd() { | ||||
MlirContext ctx = mlirContextCreate(); | MlirContext ctx = mlirContextCreate(); | ||||
// The built-in dialect is always loaded. | // The built-in dialect is always loaded. | ||||
if (mlirContextGetNumLoadedDialects(ctx) != 1) | if (mlirContextGetNumLoadedDialects(ctx) != 1) | ||||
return 1; | return 1; | ||||
MlirDialect std = | MlirDialect std = | ||||
mlirContextGetOrLoadDialect(ctx, mlirStandardDialectGetNamespace()); | mlirContextGetOrLoadDialect(ctx, mlirStandardDialectGetNamespace()); | ||||
▲ Show 20 Lines • Show All 84 Lines • ▼ Show 20 Lines | int main() { | ||||
if (printBuiltinTypes(ctx)) | if (printBuiltinTypes(ctx)) | ||||
return 2; | return 2; | ||||
if (printBuiltinAttributes(ctx)) | if (printBuiltinAttributes(ctx)) | ||||
return 3; | return 3; | ||||
if (printAffineMap(ctx)) | if (printAffineMap(ctx)) | ||||
return 4; | return 4; | ||||
if (printAffineExpr(ctx)) | if (printAffineExpr(ctx)) | ||||
return 5; | return 5; | ||||
if (registerOnlyStd()) | if (affineMapFromExprs(ctx)) | ||||
return 6; | return 6; | ||||
if (registerOnlyStd()) | |||||
return 7; | |||||
mlirContextDestroy(ctx); | mlirContextDestroy(ctx); | ||||
testDiagnostics(); | testDiagnostics(); | ||||
return 0; | return 0; | ||||
} | } |