<div dir="ltr"><div>So when I use a PatLeaf in 'shl' as an immediate such as:</div><div><br></div><div>def immZExt16 : PatLeaf<(imm), [{return isInt<16>)(N->getZExtValue());}]>;</div><div><br></div><div>I get 'could not infer all types' for 'shl' with imm and an assert 'isConcrete() && "Type isn't concrete yet"</div><div><br></div><div>Why does the type have to be concrete for shl? I'm obviously not getting this error for any other operations, such as add, sub, mul, div, divrem, etc... who all use the same super multiclass.</div><div><br></div><div>I'm trying to fit all 3 op alu instructions into two sub-multiclasses (commutative and non commutative, because LLVM makes the imm the rhs for commutative ops, you can't just do one multiclass for both without getting warnings/errors). It would make sense that shl would be able to fit into this multiclass (which takes PatLeaf for the imm as above).</div><div><br></div><div>Thanks.</div></div><div class="gmail_extra"><br><div class="gmail_quote">On Tue, Apr 21, 2015 at 12:21 AM, Matthias Braun <span dir="ltr"><<a href="mailto:matze@braunis.de" target="_blank">matze@braunis.de</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div style><div>There can also be other “problems" like this one: <a href="http://reviews.llvm.org/D6946" target="_blank">http://reviews.llvm.org/D6946</a></div><span class="HOEnZb"><font color="#888888"><div><br></div><div>- Matthias</div><br></font></span><div><blockquote type="cite"><div><div class="h5"><div>On Apr 20, 2015, at 1:44 PM, Tim Northover <<a href="mailto:t.p.northover@gmail.com" target="_blank">t.p.northover@gmail.com</a>> wrote:</div><br></div></div><div><div><div class="h5"><blockquote type="cite">The DAG combiner also performs the undefined shift -> undef though, so it<br>should still be OK<br></blockquote><br>DAG combiner doesn't really run to convergence as far as I'm aware, so<br>you often get extremely difficult to test but necessary checks like<br>this.<br><br>Tim.<br></div></div><span>_______________________________________________<br>LLVM Developers mailing list<br><a href="mailto:LLVMdev@cs.uiuc.edu" target="_blank">LLVMdev@cs.uiuc.edu</a>         <a href="http://llvm.cs.uiuc.edu" target="_blank">http://llvm.cs.uiuc.edu</a><br><a href="http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev" target="_blank">http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev</a><br></span></div></blockquote></div><br></div></blockquote></div><br></div>