<p dir="ltr">OK, please! Thank you!</p>
<p dir="ltr">-Jiangning</p>
<div class="gmail_quote">2013-12-7 ÉÏÎç11:33ÓÚ "Ana Pazos" <<a href="mailto:apazos@codeaurora.org">apazos@codeaurora.org</a>>дµÀ£º<br type="attribution"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div lang="EN-US" link="blue" vlink="purple"><div><p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d">Hi Jiangning,<u></u><u></u></span></p><p class="MsoNormal">
<span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d"><u></u> <u></u></span></p><p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d">I suggest we do these changes to the test case:<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d"><u></u> <u></u></span></p><p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d">- Put the intrinsic test you created into the existing /test/CodeGen/AArch64/neon-aba-abd.ll instead of creating a new file.<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d">  That is where the sabd tests are.<u></u><u></u></span></p><p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d"><u></u> <u></u></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d">- Add a couple of test cases into test/CodeGen/AArch64/neon-mov.ll to cover movi 1D scenario without using the intrinsic as well.<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d"><u></u> <u></u></span></p><p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d">If you want I can do the changes and check in for you, if you are OOO.<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d"><u></u> <u></u></span></p><p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d">Thanks,<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d">Ana.<u></u><u></u></span></p><p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d"><u></u> <u></u></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d">Examples:<u></u><u></u></span></p><p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d"><u></u> <u></u></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d">+define <2 x i32> @movi1d_1() {<u></u><u></u></span></p><p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d">+; CHECK: movi    d0, #0xffffffff0000<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d">+  ret <2 x i32> < i32  -65536, i32 65535><u></u><u></u></span></p><p class="MsoNormal">
<span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d">+}<u></u><u></u></span></p><p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d">+<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d">+<u></u><u></u></span></p><p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d">+declare <2 x i32> @test_movi1d(<2 x i32>, <2 x i32>)<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d">+define <2 x i32> @movi1d() {<u></u><u></u></span></p><p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d">+; CHECK: movi     d1, #0xffffffff0000<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d">+  %1 = tail call <2 x i32> @test_movi1d(<2 x i32> <i32 -2147483648, i32 2147450880>, <2 x i32> <i32 -65536, i32 65535>)<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d">+  ret <2 x i32> %1<u></u><u></u></span></p><p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d">+}<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d"><u></u> <u></u></span></p><p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d">Thanks,<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d">Ana.<u></u><u></u></span></p><p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d"><u></u> <u></u></span></p>
<p class="MsoNormal"><b><span style="font-size:10.0pt;font-family:"Tahoma","sans-serif"">From:</span></b><span style="font-size:10.0pt;font-family:"Tahoma","sans-serif""> <a href="mailto:llvm-commits-bounces@cs.uiuc.edu" target="_blank">llvm-commits-bounces@cs.uiuc.edu</a> [mailto:<a href="mailto:llvm-commits-bounces@cs.uiuc.edu" target="_blank">llvm-commits-bounces@cs.uiuc.edu</a>] <b>On Behalf Of </b>Jiangning Liu<br>
<b>Sent:</b> Friday, December 06, 2013 5:07 AM<br><b>To:</b> <a href="mailto:llvm-commits@cs.uiuc.edu" target="_blank">llvm-commits@cs.uiuc.edu</a> for LLVM<br><b>Subject:</b> [PATCH] [AArch64] Fix a pattern match failure for movi with 1D result<u></u><u></u></span></p>
<p class="MsoNormal"><u></u> <u></u></p><div><div><p class="MsoNormal"><span style="font-family:"Arial","sans-serif"">Hi,<br><br>Attached patch is to fix a pattern match failure for neon movi with scalar 1D result.<br>
<br>diff --git a/lib/Target/AArch64/AArch64InstrNEON.td b/lib/Target/AArch64/AArch64InstrNEON.td<br>old mode 100644<br>new mode 100755<br>index eb62c13..7a63935<br>--- a/lib/Target/AArch64/AArch64InstrNEON.td<br>+++ b/lib/Target/AArch64/AArch64InstrNEON.td<br>
@@ -1423,9 +1423,8 @@ let isReMaterializable = 1 in {<br> def MOVIdi : NeonI_1VModImm<0b0, 0b1,<br>                            (outs FPR64:$Rd), (ins neon_uimm64_mask:$Imm),<br>                            "movi\t $Rd, $Imm",<br>
-                           [(set (f64 FPR64:$Rd),<br>-                              (f64 (bitconvert<br>-                                (v1i64 (Neon_movi (timm:$Imm), (i32 imm))))))],<br>+                           [(set (v1i64 FPR64:$Rd),<br>
+                              (v1i64 (Neon_movi (timm:$Imm), (i32 imm))))],<br>                            NoItinerary> {<br>   let cmode = 0b1110;<br> }<br>diff --git a/test/CodeGen/AArch64/neon-movi.ll b/test/CodeGen/AArch64/neon-movi.ll<br>
new file mode 100644<br>index 0000000..680ec47<br>--- /dev/null<br>+++ b/test/CodeGen/AArch64/neon-movi.ll<br>@@ -0,0 +1,8 @@<br>+; RUN: llc < %s -O2 -verify-machineinstrs -mtriple=aarch64-none-linux-gnu -mattr=+neon | FileCheck %s<br>
+<br>+declare <2 x i32> @llvm.arm.neon.vabds.v2i32(<2 x i32>, <2 x i32>)<br>+define <2 x i32> @test_movi_1d() {<br>+; CHECK: movi     d1, #0xffffffff0000<br>+  %1 = tail call <2 x i32> @llvm.arm.neon.vabds.v2i32(<2 x i32> <i32 -2147483648, i32 2147450880>, <2 x i32> <i32 -65536, i32 65535>)<br>
+  ret <2 x i32> %1<br>+}<br clear="all"><u></u><u></u></span></p></div><p class="MsoNormal"><br>-- <u></u><u></u></p><div><p class="MsoNormal"><span style="font-family:"Courier New"">Thanks,</span><u></u><u></u></p>
<div><p class="MsoNormal"><span style="font-family:"Courier New"">-Jiangning</span><u></u><u></u></p></div></div></div></div></div></blockquote></div>