<div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote">On Mon, Jul 3, 2017 at 4:28 PM, Friedman, Eli 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 bgcolor="#FFFFFF"><span class="gmail-">
<div class="gmail-m_-5922062362660930675moz-cite-prefix">On 7/2/2017 3:50 AM, Breger, Igor via
llvm-dev wrote:<br>
</div>
<blockquote type="cite">
<div class="gmail-m_-5922062362660930675WordSection1">
<p class="MsoNormal">Hi all,<u></u><u></u></p>
<p class="MsoNormal">I am working on enabling X86 using
GLobalIsel framework.<u></u><u></u></p>
<p class="MsoNormal">I have 32bit platform + float/double
configuration (-mtriple=i386-linux-gnu -mattr=+sse2 )
<u></u><u></u></p>
<p class="MsoNormal"> load i64, i64* %p1
- illegal, require narrowScalar action<u></u><u></u></p>
<p class="MsoNormal"> load double, double * %p1
- legal <u></u><u></u></p>
<p class="MsoNormal"><u></u> <u></u></p>
<p class="MsoNormal">What is the best approach to Legalize this
case ? Should I mark G_LOAD/G_STORE s64 as Custom?<u></u><u></u></p>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
</blockquote>
<br></span>
In the world of GlobalISel, i64 and double are both s64, so "load
i64" and "load double" are the same operation; if one is Legal, both
are Legal. This should just work, barring any bugs.<br>
<br>
The resulting code will probably be low-quality because there isn't
any good way to lower the resulting transfers between SSE and
integer registers, but you can put off dealing with that for now.<br>
</div><div bgcolor="#FFFFFF"><br></div></blockquote><div><br></div><div class="gmail-adn gmail-ads" style="font-size:medium"><div class="gmail-gs"><div id="gmail-:1p5" class="gmail-ii gmail-gt gmail-adP gmail-adO" style="font-size:12.8px"><div id="gmail-:1p6" class="gmail-a3s gmail-aXjCH gmail-m15d0a370ada4a255"><div dir="ltr"><div class="gmail_extra"><div class="gmail_quote"><div>Ok but for 32-bit target, will GlobalISel handle the splitting of i64/double on 2 32-bit registers automatically like the SelectionDAG is currently doing?</div><div class="gmail-yj6qo"></div></div></div></div></div></div><div class="gmail-hi"></div></div><div class="gmail-ajx"></div></div><div class="gmail-gA gmail-gt gmail-acV" style="font-size:12.8px;background-color:rgb(255,255,255)"><div class="gmail-gB gmail-xu"><div class="gmail-ip gmail-iq" style="padding-top:8px;padding-right:0px;padding-left:4px;border-top:1px solid rgb(216,216,216)"></div></div></div><div> </div></div><br></div></div>