You are viewing a plain text version of this content. The canonical link for it is here.
Posted to github@arrow.apache.org by GitBox <gi...@apache.org> on 2022/05/23 14:49:02 UTC
[GitHub] [arrow-datafusion] waynexia commented on pull request #2587: Evaluate JIT'd expression over arrays
waynexia commented on PR #2587:
URL: https://github.com/apache/arrow-datafusion/pull/2587#issuecomment-1134774026
I got this from compiled function:
```
function u0:0(i64, i64, i64, i64) system_v {
block0(v0: i64, v1: i64, v2: i64, v3: i64):
v11 -> v0
v14 -> v1
v17 -> v2
v6 -> v3
v4 = iconst.i64 0
jump block1(v4)
block1(v5: i64):
v7 = icmp slt v5, v6
v8 = bint.i64 v7
brz v8, block3
jump block2
block2:
v9 = iconst.i64 8
v10 = imul.i64 v5, v9
v12 = iadd.i64 v11, v10
v13 = load.i64 v12
v15 = iadd.i64 v14, v10
v16 = load.i64 v15
v18 = iadd.i64 v17, v10
v19 = iadd v13, v16
store v19, v18
v20 = iconst.i64 1
v21 = iadd.i64 v5, v20
jump block1(v21)
block3:
return
}
```
It just looks like a bare translation of what we build. So I suspect the vectorization is not done here (after translation). Further, I find this [`I64X8` type](https://docs.rs/cranelift-codegen/latest/cranelift_codegen/ir/types/constant.I64X8.html) from the document (we are currently using [`I64`](https://docs.rs/cranelift-codegen/latest/cranelift_codegen/ir/types/constant.I64.html)). Perhaps this means that we need to manually vectorize our computation.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: github-unsubscribe@arrow.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org