// RUN: mlir-opt %s -sparse-tensor-codegen -verify-diagnostics // NOTE: This test has valid IR, however we are testing whether // the legalization failure occurs when important passes are // missing. Notably, using --lower-sparse-ops-to-foreach // followed by --lower-sparse-foreach-to-scf prior to // sparse codegen will convert the dense tensor correctly. #SparseVector = #sparse_tensor.encoding<{ map = (d0) -> (d0 : compressed) }> module { func.func @main() -> tensor<8xf32, #SparseVector> { %dense = arith.constant dense<[1.0, 0.0, 0.0, 2.0, 0.0, 3.0, 0.0, 0.0]> : tensor<8xf32> // expected-error@+1 {{failed to legalize operation 'sparse_tensor.convert' that was explicitly marked illegal}} %sparse = sparse_tensor.convert %dense : tensor<8xf32> to tensor<8xf32, #SparseVector> return %sparse : tensor<8xf32, #SparseVector> } } // -----