Skip to content

Conversation

@FrozenGene
Copy link
Member

@FrozenGene FrozenGene commented Jan 7, 2019

see issue: #2364

LLVM br instruction can only accept i1 type of condition (https://llvm.org/docs/LangRef.html#br-instruction), if the condition type is not i1, we couldn't rewrite to tvm_if_then_else, which is converted to LLVM br instruction. This situation could happen in the situation conv2d + prelu via auto tvm tunning on ARM CPU.

@tqchen please help to review it.
cc: @nttstar

@tqchen
Copy link
Member

tqchen commented Jan 7, 2019

This is a bit strange, shall we make sure the condition of prelu is bool instead?

@FrozenGene
Copy link
Member Author

FrozenGene commented Jan 7, 2019

Prelu is implemented in select statement, prelu helps us expose this issue. In theory, we can constrtuct other cases using select (condition type is N x i1) to expose this issue.

@FrozenGene
Copy link
Member Author

Supplement of previous comment. LLVM select instruction can accept i1 or vector of i1 (N xi1) type, see: https://llvm.org/docs/LangRef.html#select-instruction But br can only accept i1 type, so this is why I say we can construct using select (N x i1) to expose this issue.

@tqchen tqchen merged commit 536ba30 into apache:master Jan 8, 2019
@tqchen
Copy link
Member

tqchen commented Jan 8, 2019

Thanks, @FrozenGene for the explaination. I have a follow-up PR that is related #2389 The root cause of this error is when if_then_else get vectorized which causes incorrect semantics.

FrozenGene added a commit to FrozenGene/tvm that referenced this pull request Jan 10, 2019
@FrozenGene FrozenGene mentioned this pull request Jan 28, 2019
wweic pushed a commit to neo-ai/tvm that referenced this pull request Feb 20, 2019
wweic pushed a commit to neo-ai/tvm that referenced this pull request Feb 20, 2019
@FrozenGene FrozenGene deleted the llvm_fix branch September 10, 2019 13:41
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants