<div dir="ltr">Hi,<div><br></div><div>   Attached is implementation of 'umov', 'smov' and 'ins' in llvm, covering both of MC definition and IR pattern match.</div><div><br></div><div>1)  smov is implemented as signed-extend following to <span style="background-color:rgb(248,248,248);color:rgb(0,0,0);font-family:Consolas,'Deja Vu Sans Mono','Bitstream Vera Sans Mono',monospace;font-size:0.95em;line-height:16px">extractelement.</span></div>
<div><font color="#000000" face="Consolas, Deja Vu Sans Mono, Bitstream Vera Sans Mono, monospace"><span style="font-size:12px;line-height:16px">2) </span></font>umov is implemented as zero-extend following to <span style="background-color:rgb(248,248,248);color:rgb(0,0,0);font-family:Consolas,'Deja Vu Sans Mono','Bitstream Vera Sans Mono',monospace;font-size:0.95em;line-height:16px">extractelement, or just extractelement only.</span></div>
<div><font color="#000000" face="Consolas, Deja Vu Sans Mono, Bitstream Vera Sans Mono, monospace"><span style="font-size:12px;line-height:16px">3) ins has 2 versions: one is insert from main, which is implemented as insertelement; the other is insert from element, which is implemented as </span></font><span style="color:rgb(0,0,0);font-family:Consolas,'Deja Vu Sans Mono','Bitstream Vera Sans Mono',monospace;font-size:12px;line-height:16px">insertelement following to </span><span style="color:rgb(0,0,0);font-family:Consolas,'Deja Vu Sans Mono','Bitstream Vera Sans Mono',monospace;font-size:12px;line-height:16px;background-color:rgb(248,248,248)">extractelement.</span></div>
<div><font color="#000000" face="Consolas, Deja Vu Sans Mono, Bitstream Vera Sans Mono, monospace"><span style="font-size:12px;line-height:16px"><br></span></font></div><div><font color="#000000" face="Consolas, Deja Vu Sans Mono, Bitstream Vera Sans Mono, monospace"><span style="font-size:12px;line-height:16px">To avoid legalizing </span></font>signed-extend and zero-extend to 'and' and 'sign_extend_inreg', we combined them with <span style="background-color:rgb(248,248,248);color:rgb(0,0,0);font-family:Consolas,'Deja Vu Sans Mono','Bitstream Vera Sans Mono',monospace;font-size:12px;line-height:16px">extractelement in early combine stage, presenting as '</span><font color="#000000" face="Consolas, Deja Vu Sans Mono, Bitstream Vera Sans Mono, monospace"><span style="font-size:12px;line-height:16px">Neon_vector_extract' node.</span></font></div>
<div><font color="#000000" face="Consolas, Deja Vu Sans Mono, Bitstream Vera Sans Mono, monospace"><span style="font-size:12px;line-height:16px"><br></span></font></div><div><font color="#000000" face="Consolas, Deja Vu Sans Mono, Bitstream Vera Sans Mono, monospace"><span style="font-size:12px;line-height:16px">Also, some codes are added to copyPhysReg() function to let llvm know how to use these instructions when</span></font><span style="font-size:12px;line-height:16px;color:rgb(0,0,0);font-family:Consolas,'Deja Vu Sans Mono','Bitstream Vera Sans Mono',monospace"> generating </span><span style="color:rgb(0,0,0);font-family:Consolas,'Deja Vu Sans Mono','Bitstream Vera Sans Mono',monospace;font-size:12px;line-height:16px">copy</span><span style="color:rgb(0,0,0);font-family:Consolas,'Deja Vu Sans Mono','Bitstream Vera Sans Mono',monospace;font-size:12px;line-height:16px"> machine instruction between GPR and FPR.</span></div>
<div><font color="#000000" face="Consolas, Deja Vu Sans Mono, Bitstream Vera Sans Mono, monospace"><span style="font-size:12px;line-height:16px"><br></span></font></div><div><font color="#000000" face="Consolas, Deja Vu Sans Mono, Bitstream Vera Sans Mono, monospace"><span style="font-size:12px;line-height:16px">Please review this patch, thanks.</span></font></div>
<div><div><br></div>-- <br><div dir="ltr">Best Regards,<div><br></div><div>Kevin Qin</div></div>
</div></div>