Skip to content

Compilation failure with RISCV+RVV vectors #8455

@steven-johnson

Description

@steven-johnson

Still debugging this, but here is a simple repro case that fails at Halide compilation time:

int main(int argc, char **argv) {
    Var x{"x"}, y{"y"}, c{"c"};

    ImageParam input(UInt(8), 3, "input");

    Func output("output");
    output(x, y, c) = input(x, y, c);

    input.dim(0).set_bounds(0, 48)
         .dim(1).set_bounds(0, 1)
         .dim(2).set_bounds(0, 3);

    output.output_buffer()
        .dim(0).set_stride(3).set_bounds(0, 48)
        .dim(1).set_bounds(0, 1)
        .dim(2).set_stride(1).set_bounds(0, 3);

    Target t("riscv-64-android-no_runtime-no_asserts-rvv-vector_bits_128");

    output.reorder(c, x, y)
        .vectorize(x, t.natural_vector_size<uint8_t>())
        .unroll(c);

    std::map<OutputFileType, std::string> outputs = {
        {OutputFileType::static_library, "/tmp/foo.a"},
        {OutputFileType::llvm_assembly, "/tmp/foo.ll"},
    };
    output.compile_to(outputs, output.infer_arguments(), "", t);

    return 0;
}

Failure is in

Metadata

Metadata

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions