<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote"><div style>Hi Stephen,</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><div class="h5">

> The "and FMAs are legal" portion of the above comment is simply a lie;<br>
> the legality of FMA operations is not checked before lowering fmuladd<br>
> to ISD::FMA</div></div></blockquote><div><br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><div class="h5">> However, on further investigation, it seems like not checking the<br>

> legality of an FMA operation in lowering fmuladd intrinsics is a<br>
> feature, not a bug, since it allows formation of FMAs with types like<br>
> v16f32, as long as they legalize (via splitting, scalarization,<br>
> promotion, etc.) to types that support FMAs</div></div></blockquote><div><br></div><div style>Right - isFMAFasterThanMulAndAdd originally checked for legality (hence the comment), but that was removed to support fusing in cases where the code would eventually legalize.</div>
<div style><br></div><div style>This patch looks good to me. Thanks for working on it.</div><div style><br></div><div style>- Lang.</div><div style><br></div><div style><br></div></div></div></div>