<div dir="ltr">Hi Arnold,<div><br></div><div style>Check all and both JPEG tests pass! Feel free to commit.</div><div style><br></div><div style>thanks!</div><div style>--renato</div></div><div class="gmail_extra"><br><br>
<div class="gmail_quote">On 14 May 2013 22:06, Jim Grosbach <span dir="ltr"><<a href="mailto:grosbach@apple.com" target="_blank">grosbach@apple.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div style="word-wrap:break-word">Very cool. Thanks, Arnold.<div><br></div><div>Trivial nitpick:  s/GetExtensionTo64Bits/getExtensionTo64Bits/.</div><div><br></div><div>Assuming Renato’s tests come back OK, this looks good to me.</div>
<div><br></div><div>-Jim</div><div><br><div><div><div class="h5"><div>On May 14, 2013, at 12:52 PM, Arnold Schwaighofer <<a href="mailto:aschwaighofer@apple.com" target="_blank">aschwaighofer@apple.com</a>> wrote:</div>
<br></div></div><blockquote type="cite"><div style="letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px"><div><div class="h5">The transformation happening here is that we want to turn a<br>
"mul(ext(X), ext(X))" into a "vmull(X, X)", stripping off the extension. We have<br>to make sure that X still has a valid vector type - possibly recreate an<br>extension to a smaller type. In case of a extload of a memory type smaller than<br>
64 bit we used create a ext(load()). The problem with doing this - instead of<br>recreating an extload - is that an illegal type is exposed.<br><br>This patch fixes this by creating extloads instead of ext(load()) sequences.<br>
<br>Fixes PR15970.<br><br><a>radar://13871383</a><br><br>From the bug report:<br><br>Initially we had a<br><br> mul (v4i32 zextload(from v4i8), v4i32 zextload(from v4i8))<br><br>the transform should create<br><br> vmull(v4i16 zextload(from v4i8), ...)<br>
<br>out of this. But instead it creates a<br><br> vmull(v4i16 zext( v4i8 load()), ...<br><br>where an illegal type is exposed.<br><br>(This would only be exposed if this transform would run during normal legalization because vector legalization is allowed to create illegal types.)<br>
<br></div></div><span><0001-ARM-ISel-Don-t-create-illegal-types-during-LowerMUL.patch></span></div></blockquote></div><br></div></div></blockquote></div><br></div>