<div dir="ltr">Thank you. i understood how avx512 vector instructions are written in x86instravx512. i need to define my vector instructions so i wrote;<div><br></div><div><div style="font-size:12.8px"> def VMOV_256B_RM : I<0x6F, MRMSrcMem, (outs VR2048:$dst), (ins i32mem:$src),</div><div style="font-size:12.8px"> "vmov_256B_rm\t{$src, $dst|$dst, $src}",</div><div style="font-size:12.8px"> [(set VR2048:$dst, (v64i32 (scalar_to_vector (loadi32 addr:$src))))],</div><div style="font-size:12.8px"> IIC_MOV_MEM>, EVEX;</div><div style="font-size:12.8px"><br></div><div style="font-size:12.8px">def VMOV_256B_MR : I<0x7F, MRMDestMem, (outs), (ins i32mem:$dst, VR2048:$src),</div><div style="font-size:12.8px"> "vmov_256B_mr\t{$src, $dst|$dst, $src}",</div><div style="font-size:12.8px"> [(store (i32 (bitconvert VR2048:$src)), addr:$dst)], IIC_MOV_MEM>, EVEX;</div><div style="font-size:12.8px"><br></div><div style="font-size:12.8px">in <a href="http://x86instrinfo.td">x86instrinfo.td</a>; </div><div style="font-size:12.8px"><br></div><div style="font-size:12.8px">when i build i got these instructions in X86GenInstrInfo. </div><div style="font-size:12.8px">but still my instruction is not selected when i run input file in debug mode; getting following errors;</div><div style="font-size:12.8px"><br></div><div style="font-size:12.8px"><br></div><div><div><span style="font-size:12.8px">===== Instruction selection begins: BB#1 'vector.body'</span></div><div><span style="font-size:12.8px">Selecting: t9: ch = store<ST256[bitcast ([65 x i32]* @c to <64 x i32>*)](align=16)(tbaa=<0x3817578>)> t8, t7, t11, undef:i64</span></div><div><span style="font-size:12.8px"><br></span></div><div><span style="font-size:12.8px">ISEL: Starting pattern match on root node: t9: ch = store<ST256[bitcast ([65 x i32]* @c to <64 x i32>*)](align=16)(tbaa=<0x3817578>)> t8, t7, t11, undef:i64</span></div><div><span style="font-size:12.8px"><br></span></div><div><span style="font-size:12.8px"> Skipped scope entry (due to false predicate) at index 14, continuing at 81</span></div><div><span style="font-size:12.8px"> Skipped scope entry (due to false predicate) at index 82, continuing at 149</span></div><div><span style="font-size:12.8px"> Skipped scope entry (due to false predicate) at index 150, continuing at 217</span></div><div><span style="font-size:12.8px"> Skipped scope entry (due to false predicate) at index 218, continuing at 267</span></div><div><span style="font-size:12.8px"> Skipped scope entry (due to false predicate) at index 268, continuing at 317</span></div><div><span style="font-size:12.8px"> Skipped scope entry (due to false predicate) at index 318, continuing at 367</span></div><div><span style="font-size:12.8px"> Skipped scope entry (due to false predicate) at index 368, continuing at 394</span></div><div><span style="font-size:12.8px"> Skipped scope entry (due to false predicate) at index 395, continuing at 421</span></div><div><span style="font-size:12.8px"> Skipped scope entry (due to false predicate) at index 422, continuing at 471</span></div><div><span style="font-size:12.8px"> Skipped scope entry (due to false predicate) at index 472, continuing at 521</span></div><div><span style="font-size:12.8px"> Skipped scope entry (due to false predicate) at index 522, continuing at 571</span></div><div><span style="font-size:12.8px"> Skipped scope entry (due to false predicate) at index 572, continuing at 639</span></div><div><span style="font-size:12.8px"> Skipped scope entry (due to false predicate) at index 640, continuing at 707</span></div><div><span style="font-size:12.8px"> Skipped scope entry (due to false predicate) at index 708, continuing at 775</span></div><div><span style="font-size:12.8px"> Skipped scope entry (due to false predicate) at index 776, continuing at 804</span></div><div><span style="font-size:12.8px"> Skipped scope entry (due to false predicate) at index 805, continuing at 833</span></div><div><span style="font-size:12.8px"> Skipped scope entry (due to false predicate) at index 834, continuing at 862</span></div><div><span style="font-size:12.8px"> Skipped scope entry (due to false predicate) at index 863, continuing at 891</span></div><div><span style="font-size:12.8px"> Skipped scope entry (due to false predicate) at index 892, continuing at 920</span></div><div><span style="font-size:12.8px"> Skipped scope entry (due to false predicate) at index 921, continuing at 949</span></div><div><span style="font-size:12.8px"> Skipped scope entry (due to false predicate) at index 950, continuing at 987</span></div><div><span style="font-size:12.8px"> Skipped scope entry (due to false predicate) at index 988, continuing at 1025</span></div><div><span style="font-size:12.8px"> Match failed at index 12</span></div><div><span style="font-size:12.8px"> Continuing at 1026</span></div><div><span style="font-size:12.8px"> OpcodeSwitch from 1029 to 5725</span></div><div><span style="font-size:12.8px"> Match failed at index 5743</span></div><div><span style="font-size:12.8px"> Continuing at 5772</span></div><div><span style="font-size:12.8px"> Match failed at index 5776</span></div><div><span style="font-size:12.8px"> Continuing at 5805</span></div><div><span style="font-size:12.8px"> Match failed at index 5809</span></div><div><span style="font-size:12.8px"> Continuing at 5838</span></div><div><span style="font-size:12.8px"> Match failed at index 5842</span></div><div><span style="font-size:12.8px"> Continuing at 5911</span></div><div><span style="font-size:12.8px"> Match failed at index 5915</span></div><div><span style="font-size:12.8px"> Continuing at 5953</span></div><div><span style="font-size:12.8px"> Match failed at index 5957</span></div><div><span style="font-size:12.8px"> Continuing at 5995</span></div><div><span style="font-size:12.8px"> Match failed at index 5999</span></div><div><span style="font-size:12.8px"> Continuing at 6037</span></div><div><span style="font-size:12.8px"> Match failed at index 6041</span></div><div><span style="font-size:12.8px"> Continuing at 6084</span></div><div><span style="font-size:12.8px"> Match failed at index 6088</span></div><div><span style="font-size:12.8px"> Continuing at 6131</span></div><div><span style="font-size:12.8px"> Skipped scope entry (due to false predicate) at index 6138, continuing at 6181</span></div><div><span style="font-size:12.8px"> Skipped scope entry (due to false predicate) at index 6182, continuing at 6228</span></div><div><span style="font-size:12.8px"> Skipped scope entry (due to false predicate) at index 6235, continuing at 6384</span></div><div><span style="font-size:12.8px"> Match failed at index 6388</span></div><div><span style="font-size:12.8px"> Continuing at 6419</span></div><div><span style="font-size:12.8px"> Match failed at index 6423</span></div><div><span style="font-size:12.8px"> Continuing at 6454</span></div><div><span style="font-size:12.8px"> Match failed at index 6458</span></div><div><span style="font-size:12.8px"> Continuing at 6489</span></div><div><span style="font-size:12.8px"> Continuing at 6490</span></div><div><span style="font-size:12.8px"> Continuing at 6491</span></div><div><span style="font-size:12.8px"> Continuing at 6492</span></div><div><span style="font-size:12.8px"> Match failed at index 6514</span></div><div><span style="font-size:12.8px"> Continuing at 6545</span></div><div><span style="font-size:12.8px"> Match failed at index 6562</span></div><div><span style="font-size:12.8px"> Continuing at 6593</span></div><div><span style="font-size:12.8px"> Match failed at index 6610</span></div><div><span style="font-size:12.8px"> Continuing at 6641</span></div><div><span style="font-size:12.8px"> Continuing at 6642</span></div><div><span style="font-size:12.8px"> Match failed at index 6658</span></div><div><span style="font-size:12.8px"> Continuing at 6772</span></div><div><span style="font-size:12.8px"> Match failed at index 6788</span></div><div><span style="font-size:12.8px"> Continuing at 6902</span></div><div><span style="font-size:12.8px"> Continuing at 13636</span></div><div><span style="font-size:12.8px"> Match failed at index 13640</span></div><div><span style="font-size:12.8px"> Continuing at 14940</span></div><div><span style="font-size:12.8px"> Match failed at index 14943</span></div><div><span style="font-size:12.8px"> Continuing at 15415</span></div><div><span style="font-size:12.8px"> Match failed at index 15417</span></div><div><span style="font-size:12.8px"> Continuing at 15570</span></div><div><span style="font-size:12.8px"> Match failed at index 15571</span></div><div><span style="font-size:12.8px"> Continuing at 15598</span></div><div><span style="font-size:12.8px"> Match failed at index 15599</span></div><div><span style="font-size:12.8px"> Continuing at 15716</span></div><div><span style="font-size:12.8px"> Match failed at index 15719</span></div><div><span style="font-size:12.8px"> Continuing at 15837</span></div><div><span style="font-size:12.8px"> Match failed at index 15840</span></div><div><span style="font-size:12.8px"> Continuing at 16198</span></div><div><span style="font-size:12.8px"> Skipped scope entry (due to false predicate) at index 16203, continuing at 16285</span></div><div><span style="font-size:12.8px"> Skipped scope entry (due to false predicate) at index 16286, continuing at 16394</span></div><div><span style="font-size:12.8px"> Skipped scope entry (due to false predicate) at index 16395, continuing at 16464</span></div><div><span style="font-size:12.8px"> Skipped scope entry (due to false predicate) at index 16465, continuing at 16487</span></div><div><span style="font-size:12.8px"> Skipped scope entry (due to false predicate) at index 16488, continuing at 16510</span></div><div><span style="font-size:12.8px"> Skipped scope entry (due to false predicate) at index 16511, continuing at 16533</span></div><div><span style="font-size:12.8px"> Skipped scope entry (due to false predicate) at index 16534, continuing at 16556</span></div><div><span style="font-size:12.8px"> Skipped scope entry (due to false predicate) at index 16557, continuing at 16680</span></div><div><span style="font-size:12.8px"> Skipped scope entry (due to false predicate) at index 16681, continuing at 16804</span></div><div><span style="font-size:12.8px"> Skipped scope entry (due to false predicate) at index 16805, continuing at 16890</span></div><div><span style="font-size:12.8px"> Skipped scope entry (due to false predicate) at index 16891, continuing at 16976</span></div><div><span style="font-size:12.8px"> Skipped scope entry (due to false predicate) at index 16978, continuing at 17169</span></div><div><span style="font-size:12.8px"> Skipped scope entry (due to false predicate) at index 17171, continuing at 17342</span></div><div><span style="font-size:12.8px"> Skipped scope entry (due to false predicate) at index 17344, continuing at 17497</span></div><div><span style="font-size:12.8px"> Skipped scope entry (due to false predicate) at index 17499, continuing at 17632</span></div><div><span style="font-size:12.8px"> Skipped scope entry (due to false predicate) at index 17634, continuing at 17801</span></div><div><span style="font-size:12.8px"> Skipped scope entry (due to false predicate) at index 17803, continuing at 17944</span></div><div><span style="font-size:12.8px"> Skipped scope entry (due to false predicate) at index 17946, continuing at 18074</span></div><div><span style="font-size:12.8px"> Skipped scope entry (due to false predicate) at index 18075, continuing at 18178</span></div><div><span style="font-size:12.8px"> Skipped scope entry (due to false predicate) at index 18179, continuing at 18253</span></div><div><span style="font-size:12.8px"> Skipped scope entry (due to false predicate) at index 18254, continuing at 18278</span></div><div><span style="font-size:12.8px"> Skipped scope entry (due to false predicate) at index 18279, continuing at 18303</span></div><div><span style="font-size:12.8px"> Skipped scope entry (due to false predicate) at index 18304, continuing at 18328</span></div><div><span style="font-size:12.8px"> Skipped scope entry (due to false predicate) at index 18329, continuing at 18376</span></div><div><span style="font-size:12.8px"> Skipped scope entry (due to false predicate) at index 18377, continuing at 18424</span></div><div><span style="font-size:12.8px"> Skipped scope entry (due to false predicate) at index 18425, continuing at 18520</span></div><div><span style="font-size:12.8px"> Skipped scope entry (due to false predicate) at index 18521, continuing at 18636</span></div><div><span style="font-size:12.8px"> Skipped scope entry (due to false predicate) at index 18637, continuing at 18661</span></div><div><span style="font-size:12.8px"> Skipped scope entry (due to false predicate) at index 18662, continuing at 18711</span></div><div><span style="font-size:12.8px"> Skipped scope entry (due to false predicate) at index 18712, continuing at 18736</span></div><div><span style="font-size:12.8px"> Skipped scope entry (due to false predicate) at index 18737, continuing at 18770</span></div><div><span style="font-size:12.8px"> Skipped scope entry (due to false predicate) at index 18771, continuing at 18856</span></div><div><span style="font-size:12.8px"> Skipped scope entry (due to false predicate) at index 18857, continuing at 18942</span></div><div><span style="font-size:12.8px"> Skipped scope entry (due to false predicate) at index 18943, continuing at 19028</span></div><div><span style="font-size:12.8px"> Match failed at index 16201</span></div><div><span style="font-size:12.8px"> Continuing at 19029</span></div><div><span style="font-size:12.8px">LLVM ERROR: Cannot select: t9: ch = store<ST256[bitcast ([65 x i32]* @c to <64 x i32>*)](align=16)(tbaa=<0x3817578>)> t8, t7, t11, undef:i64</span></div><div><span style="font-size:12.8px"> t7: v64i32 = add t6, t4</span></div><div><span style="font-size:12.8px"> t6: v64i32,ch = load<LD256[bitcast ([65 x i32]* @c to <64 x i32>*)](align=16)(tbaa=<0x3817578>)(dereferenceable)> t0, t11, undef:i64</span></div><div><span style="font-size:12.8px"> t11: i64 = X86ISD::Wrapper TargetGlobalAddress:i64<[65 x i32]* @c> 0</span></div><div><span style="font-size:12.8px"> t10: i64 = TargetGlobalAddress<[65 x i32]* @c> 0</span></div><div><span style="font-size:12.8px"> t3: i64 = undef</span></div><div><span style="font-size:12.8px"> t4: v64i32,ch = load<LD256[bitcast ([65 x i32]* @b to <64 x i32>*)](align=16)(tbaa=<0x3817578>)(dereferenceable)> t0, t13, undef:i64</span></div><div><span style="font-size:12.8px"> t13: i64 = X86ISD::Wrapper TargetGlobalAddress:i64<[65 x i32]* @b> 0</span></div><div><span style="font-size:12.8px"> t12: i64 = TargetGlobalAddress<[65 x i32]* @b> 0</span></div><div><span style="font-size:12.8px"> t3: i64 = undef</span></div><div><span style="font-size:12.8px"> t11: i64 = X86ISD::Wrapper TargetGlobalAddress:i64<[65 x i32]* @c> 0</span></div><div><span style="font-size:12.8px"> t10: i64 = TargetGlobalAddress<[65 x i32]* @c> 0</span></div><div><span style="font-size:12.8px"> t3: i64 = undef</span></div><div><span style="font-size:12.8px">In function: foo</span></div><div style="font-size:12.8px"><br></div></div><div style="font-size:12.8px"><br></div><div style="font-size:12.8px"><br></div><div style="font-size:12.8px">What could be the reason of this?? Please correct me.</div><div style="font-size:12.8px">I am stuck at this point....</div><div style="font-size:12.8px"><br></div><div><br></div><div class="gmail_extra"><br><div class="gmail_quote">On Fri, Jul 7, 2017 at 10:59 PM, Friedman, Eli <span dir="ltr"><<a href="mailto:efriedma@codeaurora.org" target="_blank">efriedma@codeaurora.org</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<div bgcolor="#FFFFFF">
<div class="gmail-m_5534112967121961479m_2178888266627977060moz-cite-prefix">The word "fold" is used all over LLVM.
It generally refers to transformations which delete an
instruction.<br>
<br>
If you're asking about
<a class="gmail-m_5534112967121961479m_2178888266627977060moz-txt-link-freetext" href="http://llvm.org/docs/CodeGenerator.html#instruction-folding" target="_blank">http://llvm.org/docs/CodeGener<wbr>ator.html#instruction-folding</a> , it
just means an instruction which was produced by the "instruction
folding" transform; there isn't anything special about the
instruction itself.<span class="gmail-m_5534112967121961479HOEnZb"><font color="#888888"><br>
<br>
-Eli</font></span><div><div class="gmail-m_5534112967121961479h5"><br>
<br>
On 7/6/2017 10:51 PM, hameeza ahmed wrote:<br>
</div></div></div><div><div class="gmail-m_5534112967121961479h5">
<blockquote type="cite">
<div dir="ltr">What is meant by folded instructions in LLVM?
<div>How they work?</div>
</div>
<div class="gmail_extra"><br>
<div class="gmail_quote">On Fri, Jul 7, 2017 at 10:19 AM,
hameeza ahmed <span dir="ltr"><<a href="mailto:hahmed2305@gmail.com" target="_blank">hahmed2305@gmail.com</a>></span>
wrote:<br>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<div dir="ltr">Thank You.
<div>
<div class="gmail-m_5534112967121961479m_2178888266627977060h5">
<div class="gmail_extra"><br>
<div class="gmail_quote">On Fri, Jul 7, 2017 at
10:03 AM, Craig Topper <span dir="ltr"><<a href="mailto:craig.topper@gmail.com" target="_blank">craig.topper@gmail.com</a>></span>
wrote:<br>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<div dir="ltr">Yes, that error is from
instruction selection. I think your
legalization changes worked fine.</div>
<div class="gmail_extra"><span class="gmail-m_5534112967121961479m_2178888266627977060m_-8555168154250104585HOEnZb"><font color="#888888"><br clear="all">
<div>
<div class="gmail-m_5534112967121961479m_2178888266627977060m_-8555168154250104585m_1599938104135976837gmail_signature">~Craig</div>
</div>
</font></span>
<div>
<div class="gmail-m_5534112967121961479m_2178888266627977060m_-8555168154250104585h5">
<br>
<div class="gmail_quote">On Thu, Jul 6,
2017 at 8:21 PM, hameeza ahmed via
llvm-dev <span dir="ltr"><<a href="mailto:llvm-dev@lists.llvm.org" target="_blank">llvm-dev@lists.llvm.org</a>></span>
wrote:<br>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<div dir="ltr">also i further run the
following command;
<div>llc -debug filer-knl_o3.ll<br>
</div>
<div><br>
</div>
<div>and its output is attached
here. by looking at the output can
we say that legalization runs fine
and the error is due to
instruction selection/ pattern
matching which is not yet
implemented?</div>
<div><br>
</div>
<div>so do i need to worry and try
to correct it at this stage or
should i move forward to implement
instruction selection/ pattern
matching?</div>
<div><br>
</div>
<div>Please guide me.</div>
<div><br>
</div>
<div>Thank You</div>
</div>
<div class="gmail-m_5534112967121961479m_2178888266627977060m_-8555168154250104585m_1599938104135976837HOEnZb">
<div class="gmail-m_5534112967121961479m_2178888266627977060m_-8555168154250104585m_1599938104135976837h5">
<div class="gmail_extra"><br>
<div class="gmail_quote">On Fri,
Jul 7, 2017 at 8:00 AM,
hameeza ahmed <span dir="ltr"><<a href="mailto:hahmed2305@gmail.com" target="_blank">hahmed2305@gmail.com</a>></span>
wrote:<br>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<div dir="ltr">Thank You.
well i have seen these
links. but they dont cover
the problem that i have
mentioned. actually i am
doing all the things step
by step.
<div><br>
</div>
<div>so i havent yet
worked with instruction
selection phase/ files.
rather before that i am
trying to do
legalization by allowing
vector elements>16
i.e 64xi32. here i have
mainly worked with 2
files uptil now, i.e <a href="http://registerinfo.td" target="_blank">registerinfo.td</a>
to define register class
to be called in
legalization. and most
importantly i am dealing
with file <span style="font-size:12.8px">X86ISelLowering.cpp.</span></div>
<div><span style="font-size:12.8px"><br>
</span></div>
<div><span style="font-size:12.8px">Now
is there any relation
in this and
instruction selection.
since instruction
selection comes after
combine and legalize
so i havent yet worked
on it.</span></div>
<div><span style="font-size:12.8px"><br>
</span></div>
<div><span style="font-size:12.8px"><br>
</span></div>
<div><span style="font-size:12.8px">Please
correct me, I am stuck
here.</span></div>
<div><span style="font-size:12.8px"><br>
</span></div>
<div><span style="font-size:12.8px">Thank
You again</span></div>
</div>
<div class="gmail-m_5534112967121961479m_2178888266627977060m_-8555168154250104585m_1599938104135976837m_3376525912337003014HOEnZb">
<div class="gmail-m_5534112967121961479m_2178888266627977060m_-8555168154250104585m_1599938104135976837m_3376525912337003014h5">
<div class="gmail_extra"><br>
<div class="gmail_quote">On
Fri, Jul 7, 2017 at
7:11 AM, Friedman,
Eli <span dir="ltr"><<a href="mailto:efriedma@codeaurora.org" target="_blank">efriedma@codeaurora.org</a>></span>
wrote:<br>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<div bgcolor="#FFFFFF">
<div class="gmail-m_5534112967121961479m_2178888266627977060m_-8555168154250104585m_1599938104135976837m_3376525912337003014m_1036672289896603809m_-3066541527091829227moz-cite-prefix">Have
you read <a class="gmail-m_5534112967121961479m_2178888266627977060m_-8555168154250104585m_1599938104135976837m_3376525912337003014m_1036672289896603809m_-3066541527091829227moz-txt-link-freetext" href="http://llvm.org/docs/WritingAnLLVMBackend.html" target="_blank">http://llvm.org/docs/WritingAn<wbr>LLVMBackend.html</a>
and <a class="gmail-m_5534112967121961479m_2178888266627977060m_-8555168154250104585m_1599938104135976837m_3376525912337003014m_1036672289896603809m_-3066541527091829227moz-txt-link-freetext" href="http://llvm.org/docs/CodeGenerator.html" target="_blank">http://llvm.org/docs/CodeGener<wbr>ator.html</a>
? <a class="gmail-m_5534112967121961479m_2178888266627977060m_-8555168154250104585m_1599938104135976837m_3376525912337003014m_1036672289896603809m_-3066541527091829227moz-txt-link-freetext" href="http://llvm.org/docs/WritingAnLLVMBackend.html#instruction-selector" target="_blank">http://llvm.org/docs/WritingAn<wbr>LLVMBackend.html#instruction-s<wbr>elector</a>
describes how
to define a
store
instruction.<br>
<br>
-Eli
<div>
<div class="gmail-m_5534112967121961479m_2178888266627977060m_-8555168154250104585m_1599938104135976837m_3376525912337003014m_1036672289896603809h5"><br>
<br>
On 7/6/2017
6:51 PM,
hameeza ahmed
via llvm-dev
wrote:<br>
</div>
</div>
</div>
<blockquote type="cite">
<div>
<div class="gmail-m_5534112967121961479m_2178888266627977060m_-8555168154250104585m_1599938104135976837m_3376525912337003014m_1036672289896603809h5">
<div dir="auto">
<div>Please
correct me i m
stuck at this
point.<br>
<div class="gmail_extra"><br>
<div class="gmail_quote">On
Jul 6, 2017
5:18 PM,
"hameeza
ahmed" <<a href="mailto:hahmed2305@gmail.com" target="_blank">hahmed2305@gmail.com</a>>
wrote:<br type="attribution">
<blockquote class="gmail-m_5534112967121961479m_2178888266627977060m_-8555168154250104585m_1599938104135976837m_3376525912337003014m_1036672289896603809m_-3066541527091829227quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<div dir="ltr">Hello,
<div>i am
experimenting
with the
increase in
register/
vector width
to 64 elements
of 32 bits
instead of 16
in x86
backend. </div>
<div>for eg.</div>
<div>i have a
loop with 65
iterations;</div>
<div>if my IR
generates
v64i32 and 1
scalar, still
the backend
breaks the
v64i32 into 4
v16i32. i want
it to retain
v64i32. like
if there are
128 elements
in loop then
it should
break it into
2 v64i32
instructions.</div>
<div><br>
</div>
<div>in order
to do this i
have made
necessary
changes in
X86ISelLowering.cpp.
and rebuild
llvm. then
when i use the
command -view-dag-combine2-dag<wbr>s i get the required output in graph
but the
following
error on
console:</div>
<div><br>
</div>
<div>
<div>LLVM
ERROR: Cannot
select: t10:
ch =
store<ST256[bitcast
([65 x i32]*
@a to <64 x
i32>*)](align=16)(tbaa=<0x30c5<wbr>438>)> t9, t7, t12,
undef:i64</div>
<div> t7:
v64i32 = add
t6, t4</div>
<div> t6:
v64i32,ch =
load<LD256[bitcast
([65 x i32]*
@c to <64 x
i32>*)](align=16)(tbaa=<0x30c5<wbr>438>)(dereferenceable)>
t0, t14,
undef:i64</div>
<div>
t14: i64 =
X86ISD::Wrapper
TargetGlobalAddress:i64<[65 x i32]* @c> 0</div>
<div>
t13: i64 =
TargetGlobalAddress<[65
x i32]* @c>
0</div>
<div> t3:
i64 = undef</div>
<div> t4:
v64i32,ch =
load<LD256[bitcast
([65 x i32]*
@b to <64 x
i32>*)](align=16)(tbaa=<0x30c5<wbr>438>)(dereferenceable)>
t0, t16,
undef:i64</div>
<div>
t16: i64 =
X86ISD::Wrapper
TargetGlobalAddress:i64<[65 x i32]* @b> 0</div>
<div>
t15: i64 =
TargetGlobalAddress<[65
x i32]* @b>
0</div>
<div> t3:
i64 = undef</div>
<div> t12:
i64 =
X86ISD::Wrapper
TargetGlobalAddress:i64<[65 x i32]* @a> 0</div>
<div> t11:
i64 =
TargetGlobalAddress<[65
x i32]* @a>
0</div>
<div> t3: i64
= undef</div>
<div>In
function: foo</div>
</div>
<div><br>
</div>
<div>The dag
after
legalization
is also
attached here.</div>
<div><br>
</div>
<div>the
source is
vector sum of
65 elements.</div>
<div><br>
</div>
<div><br>
</div>
<div>Kindly
correct me.</div>
</div>
</blockquote>
</div>
<br>
</div>
</div>
</div>
<br>
<fieldset class="gmail-m_5534112967121961479m_2178888266627977060m_-8555168154250104585m_1599938104135976837m_3376525912337003014m_1036672289896603809m_-3066541527091829227mimeAttachmentHeader"></fieldset>
<br>
</div>
</div>
<pre>______________________________<wbr>_________________
LLVM Developers mailing list
<a class="gmail-m_5534112967121961479m_2178888266627977060m_-8555168154250104585m_1599938104135976837m_3376525912337003014m_1036672289896603809m_-3066541527091829227moz-txt-link-abbreviated" href="mailto:llvm-dev@lists.llvm.org" target="_blank">llvm-dev@lists.llvm.org</a>
<a class="gmail-m_5534112967121961479m_2178888266627977060m_-8555168154250104585m_1599938104135976837m_3376525912337003014m_1036672289896603809m_-3066541527091829227moz-txt-link-freetext" href="http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev" target="_blank">http://lists.llvm.org/cgi-bin/<wbr>mailman/listinfo/llvm-dev</a><span class="gmail-m_5534112967121961479m_2178888266627977060m_-8555168154250104585m_1599938104135976837m_3376525912337003014m_1036672289896603809HOEnZb"><font color="#888888">
</font></span></pre>
<span class="gmail-m_5534112967121961479m_2178888266627977060m_-8555168154250104585m_1599938104135976837m_3376525912337003014m_1036672289896603809HOEnZb"><font color="#888888"> </font></span></blockquote>
<span class="gmail-m_5534112967121961479m_2178888266627977060m_-8555168154250104585m_1599938104135976837m_3376525912337003014m_1036672289896603809HOEnZb"><font color="#888888">
<p><br>
</p>
<pre class="gmail-m_5534112967121961479m_2178888266627977060m_-8555168154250104585m_1599938104135976837m_3376525912337003014m_1036672289896603809m_-3066541527091829227moz-signature" cols="72">--
Employee of Qualcomm Innovation Center, Inc.
Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, a Linux Foundation Collaborative Project</pre>
</font></span></div>
</blockquote>
</div>
<br>
</div>
</div>
</div>
</blockquote>
</div>
<br>
</div>
</div>
</div>
<br>
______________________________<wbr>_________________<br>
LLVM Developers mailing list<br>
<a href="mailto:llvm-dev@lists.llvm.org" target="_blank">llvm-dev@lists.llvm.org</a><br>
<a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev" rel="noreferrer" target="_blank">http://lists.llvm.org/cgi-bin/<wbr>mailman/listinfo/llvm-dev</a><br>
<br>
</blockquote>
</div>
<br>
</div>
</div>
</div>
</blockquote>
</div>
<br>
</div>
</div>
</div>
</div>
</blockquote>
</div>
<br>
</div>
</blockquote>
<p><br>
</p>
<pre class="gmail-m_5534112967121961479m_2178888266627977060moz-signature" cols="72">--
Employee of Qualcomm Innovation Center, Inc.
Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, a Linux Foundation Collaborative Project</pre>
</div></div></div>
</blockquote></div><br></div></div></div>