<div dir="ltr"><div>Hi Tim,</div><div><br></div><div>I think essentially you are intending to remove some of the builtins from 32-bit ARM target. My aarch64 patch doesn't introduce any new builtin and the the list below contains ARM builtins being used for aarch64.</div>

<div><br></div><div>ARM::BI__builtin_neon_vaddhn_v     // remove<br></div><div>ARM::BI__builtin_neon_vraddhn_v    // keep<br></div><div>ARM::BI__builtin_neon_vsubhn_v     // remove<br></div><div>ARM::BI__builtin_neon_vrsubhn_v    // keep<br>

</div><div>ARM::BI__builtin_neon_vmull_v       // remove<br></div><div>ARM::BI__builtin_neon_vqdmull_v    // keep<br></div><div>ARM::BI__builtin_neon_vqdmlal_v    // remove<br></div><div>ARM::BI__builtin_neon_vqdmlsl_v    // remove<br>

</div><div><br></div><div>I add comments for each one, and can you confirm this list?</div><div><br></div><div>Thanks,</div><div>-Jiangning</div><div><br></div></div><div class="gmail_extra"><br><br><div class="gmail_quote">
2013/8/27 Jiangning Liu <span dir="ltr"><<a href="mailto:liujiangning1@gmail.com" target="_blank">liujiangning1@gmail.com</a>></span><br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div dir="ltr"><br><div class="gmail_extra"><div class="gmail_quote"><div class="im"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">


Don't these have reasonably simple LLVM IR representations? For example:<br>
<br>
define <2 x i32> @addhn(<2 x i64> %lhs, <2 x i64> %rhs) {<br>
  %sum = add <2 x i64> %lhs, %rhs<br>
  %shift = shl <2 x i64> %sum, <i64 32, i64 32><br>
  %trunc = trunc <2 x i64> %shift to <2 x i32><br>
  ret <2 x i32> %trunc<br>
}<br><br></blockquote><div><br></div></div><div>Do you mean to use lshr instead of shl, because addhn is to get high narrow, so we could have,</div><div class="im"><div><br></div>define <2 x i32> @addhn(<2 x i64> %lhs, <2 x i64> %rhs) {<br>

  %sum = add <2 x i64> %lhs, %rhs<br></div>  %shift = lshr <2 x i64> %sum, <i64 32, i64 32><div class="im"><br>  %trunc = trunc <2 x i64> %shift to <2 x i32><br>  ret <2 x i32> %trunc<br>
}<br><div><br></div>
</div><div>Thanks,</div><div>-Jiangning</div></div>
</div></div>
</blockquote></div><br><br clear="all"><div><br></div>-- <br>Thanks,<div>-Jiangning</div>
</div>