Created
May 13, 2019 18:17
-
-
Save abadams/3a94fe455c5053b01e80d25342568fdf to your computer and use it in GitHub Desktop.
halide convolution lowered IR
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
assert((reinterpret(uint64, tent.buffer) != (uint64)0), halide_error_buffer_argument_is_null("tent")) | |
assert((reinterpret(uint64, in.buffer) != (uint64)0), halide_error_buffer_argument_is_null("in")) | |
assert((reinterpret(uint64, blur2.buffer) != (uint64)0), halide_error_buffer_argument_is_null("blur2")) | |
let blur2 = _halide_buffer_get_host(blur2.buffer) | |
let blur2.min.0 = _halide_buffer_get_min(blur2.buffer, 0) | |
let blur2.extent.0 = _halide_buffer_get_extent(blur2.buffer, 0) | |
let blur2.stride.0 = _halide_buffer_get_stride(blur2.buffer, 0) | |
let blur2.min.1 = _halide_buffer_get_min(blur2.buffer, 1) | |
let blur2.extent.1 = _halide_buffer_get_extent(blur2.buffer, 1) | |
let blur2.stride.1 = _halide_buffer_get_stride(blur2.buffer, 1) | |
let in = _halide_buffer_get_host(in.buffer) | |
let in.min.0 = _halide_buffer_get_min(in.buffer, 0) | |
let in.extent.0 = _halide_buffer_get_extent(in.buffer, 0) | |
let in.stride.0 = _halide_buffer_get_stride(in.buffer, 0) | |
let in.min.1 = _halide_buffer_get_min(in.buffer, 1) | |
let in.extent.1 = _halide_buffer_get_extent(in.buffer, 1) | |
let in.stride.1 = _halide_buffer_get_stride(in.buffer, 1) | |
let tent = _halide_buffer_get_host(tent.buffer) | |
let tent.min.0 = _halide_buffer_get_min(tent.buffer, 0) | |
let tent.extent.0 = _halide_buffer_get_extent(tent.buffer, 0) | |
let tent.stride.0 = _halide_buffer_get_stride(tent.buffer, 0) | |
let tent.min.1 = _halide_buffer_get_min(tent.buffer, 1) | |
let tent.extent.1 = _halide_buffer_get_extent(tent.buffer, 1) | |
let tent.stride.1 = _halide_buffer_get_stride(tent.buffer, 1) | |
assert((blur2.stride.0 == 1), 0) | |
assert((in.stride.0 == 1), 0) | |
assert((in.min.0 == 0), 0) | |
assert((in.extent.0 == 128), 0) | |
assert((in.stride.1 == 128), 0) | |
assert((in.min.1 == 0), 0) | |
assert((in.extent.1 == 48), 0) | |
assert((tent.stride.0 == 1), 0) | |
assert((tent.min.0 == 0), 0) | |
assert((tent.extent.0 == 3), 0) | |
assert((tent.stride.1 == 3), 0) | |
assert((tent.min.1 == 0), 0) | |
assert((tent.extent.1 == 3), 0) | |
allocate input[uint16 * (max(blur2.extent.0, 4) + 2) * (blur2.extent.1 + 2)] | |
produce input { | |
let t80 = (5 - (min(blur2.extent.0, 4) + blur2.min.0)) | |
let t81 = (1 - blur2.min.1) | |
let t82 = (max(blur2.extent.0, 4) + 2) | |
let t76 = (blur2.min.1 + -1) | |
let t78 = (blur2.min.0 + -1) | |
let t77 = (blur2.extent.1 + 2) | |
let t79 = (blur2.extent.0 + 2) | |
for (input.s0.y, t76, t77) { | |
let t83 = (max(min(input.s0.y, 47), 0)*128) | |
let t84 = (((input.s0.y + t81)*t82) + t80) | |
for (input.s0.x, t78, t79) { | |
input[(input.s0.x + t84)] = in[(max(min(input.s0.x, 127), 0) + t83)] | |
} | |
} | |
} | |
produce blur2 { | |
consume input { | |
let t87 = max(blur2.extent.0, 4) | |
let t85 = ((blur2.extent.0 + 3)/4) | |
let t88 = (0 - min(blur2.extent.0, 4)) | |
let t90 = (0 - (blur2.min.1*blur2.stride.1)) | |
let t86 = (blur2.extent.0 + -4) | |
parallel (blur2.s0.y, blur2.min.1, blur2.extent.1) { | |
let t94 = ((blur2.s0.y*blur2.stride.1) + t90) | |
let t91 = ((t88 - t87) + 2) | |
let t92 = ((blur2.s0.y - blur2.min.1) + 1) | |
let t93 = (t87 + 2) | |
for (blur2.s0.x.x, 0, t85) { | |
let blur2.s0.x.v22.base.s = min((blur2.s0.x.x*4), t86) | |
allocate sum[uint16 * 4] | |
produce sum { | |
sum[ramp(0, 1, 4)] = x4((uint16)0) | |
let t95 = (blur2.s0.x.v22.base.s + t91) | |
for (sum.s1.r0$y, 0, 3) { | |
let t97 = (sum.s1.r0$y*3) | |
let t96 = (((sum.s1.r0$y + t92)*t93) + t95) | |
for (sum.s1.r0$x, 0, 3) { | |
sum[ramp(0, 1, 4)] = (sum[ramp(0, 1, 4)] + (input[ramp((sum.s1.r0$x + t96), 1, 4)]*x4(tent[(sum.s1.r0$x + t97)]))) | |
} | |
} | |
} | |
consume sum { | |
blur2[ramp((blur2.s0.x.v22.base.s + t94), 1, 4)] = sum[ramp(0, 1, 4)] | |
} | |
free sum | |
} | |
} | |
} | |
} | |
free input |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment