<div dir="ltr"><div dir="ltr"><br></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Mon, Sep 23, 2019 at 6:03 AM Tim Northover <<a href="mailto:t.p.northover@gmail.com">t.p.northover@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Hi Sebastian,<br>
<br>
> define <8 x half> @test_FMLSv8f16_OP1(<8 x half> %a, <8 x half> %b, <8 x half> %c) {<br>
> ; CHECK-LABEL: test_FMLSv8f16_OP1:<br>
> ; CHECK: fmls    {{v[0-9]+}}.8h, {{v[0-9]+}}.8h, {{v[0-9]+}}.8h<br>
> entry:<br>
>   %mul = fmul fast <8 x half> %c, %b<br>
>   %sub = fsub fast <8 x half> %mul, %a<br>
>   ret <8 x half> %sub<br>
> }<br>
<br>
This doesn't look right to me. The exact instruction produced is "fmls<br>
v0.8h, v2.8h, v1.8h", which I think calculates "v0 - v2*v1", but the<br>
IR is calculating "v2*v1-v0". The equivalent <4 x float> code also<br>
doesn't emit an fmls.<br>
<br></blockquote><div><br></div><div>You are right, I will send a patch to fix this.</div><div><br></div><div>Sebastian</div></div></div>