1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
|
#include "Halide.h"
#include <stdio.h>
using namespace Halide;
int main(int argc, char **argv) {
Var x("x");
Func f("f"), g("g");
f(x) = 2 * x;
g(x) = f(x) / 2;
Var xo, xi;
f.compute_at(g, x).split(x, xo, xi, 16).vectorize(xi, 8).unroll(xi);
g.compute_root().vectorize(x, 16);
Buffer<int> r = g.realize({16});
for (int i = 0; i < 16; i++) {
if (r(i) != i) {
std::cout << "Error at " << i << ": " << r(i) << std::endl;
return 1;
}
}
printf("Success!\n");
return 0;
}
|