[llvm-commits] [PATCH] Remove redundant register copies when inserting to Q registers on ARM
Jakob Stoklund Olesen
stoklund at 2pi.dk
Fri Aug 31 09:41:39 PDT 2012
On Aug 31, 2012, at 8:26 AM, James Molloy <James.Molloy at arm.com> wrote:
> Hi Jakob,
>
> That would be neat, and indeed makes sense and works for i32 set-lanes:
>
> def : Pat<(insertelt (v4i32 QPR:$src1), GPR:$src2, imm:$lane),
> (v4i32 (INSERT_SUBREG QPR:$src1,
> GPR:$src2,
> (SSubReg_f32_reg imm:$lane)))>;
>
> But this doesn't work for i16 or i8; lane widths that are smaller than
> the smallest subregister (ssubx).
Ah, I see.
Could you use the pattern above for 32-bit lanes, and the pseudos for smaller lanes?
BTW, I am planning on fixing the coalescer so it can handle stuff like this. It's not yet clear when that will happen, though.
Thanks,
/jakob
More information about the llvm-commits
mailing list