<div dir="ltr">Hi Duncan,<div><br></div><div>I appreciate your comment. I opened the bug report to bugzilla of llvm.</div><div><br></div><div style>Thanks,</div><div style>JinGu Kang</div></div><div class="gmail_extra"><br>
<br><div class="gmail_quote">2013/5/28 Duncan Sands <span dir="ltr"><<a href="mailto:baldrick@free.fr" target="_blank">baldrick@free.fr</a>></span><br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Hi JinGu Kang,<div class="im"><br>
<br>
On 28/05/13 17:18, jingu kang wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Hi all,<br>
<br>
I met the error while compiling the code with vector type with some<br>
architecture. IR is as following.<br>
<br>
   %cmp = icmp sgt <3 x i8> %x, zeroinitializer<br>
   %sub = sub <3 x i8> zeroinitializer, %x<br>
   %cond = select <3 x i1> %cmp, <3 x i8> %x, <3 x i8> %sub<br>
<br>
'select' IR is converted to 'vselect' dag and is combined to 'sra (X,<br>
size(X)-1); xor (add (X, Y), Y)'. There is a problem here. If the target support<br>
i8 type as promote integer to make size(X), size(X) has i32 type. and then type<br>
legalize pass do widening the vector like this.<br>
<br>
   v4i8 = BUILD_VECTOR 0x99d90a8: i32 = Constant<7> [ID=-3], 0x99d90a8: i32 =<br>
Constant<7> [ID=-3], 0x99d90a8: i32 = Constant<7> [ID=-3], 0x9a6c6c8: i8 = undef<br>
</blockquote>
<br></div>
this BUILD_VECTOR is invalid (the last element should be i32 = undef).  Please<br>
open a bugreport with a testcase that allows people to reproduce this.<br>
<br>
Best wishes, Duncan.<br>
<br>
<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="im">
<br>
In the end, type legalizer generates a error like this "Operands must all have<br>
the same type"'. I tested this code with ARM and MIPS.<br>
<br>
Target specific dag combiner functions runs after default dag combiner functions<br>
so I feel it's not possible to support target specific dag combiner function of<br>
vselect to fix this problem. Should I check the sra? What do you think about<br>
this? In order to remove this error, I just removed the vselect dag combiner<br>
function.<br>
<br>
Thanks,<br>
JinGu Kang<br>
<br>
<br></div>
______________________________<u></u>_________________<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/<u></u>mailman/listinfo/llvmdev</a><br>
<br>
</blockquote>
<br>
______________________________<u></u>_________________<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/<u></u>mailman/listinfo/llvmdev</a><br>
</blockquote></div><br></div>