[llvm-dev] extract_vector_elt type mismatch?

Matt Arsenault via llvm-dev llvm-dev at lists.llvm.org
Thu Aug 18 10:46:49 PDT 2016


On 08/18/2016 10:24 AM, Xiaochu Liu via llvm-dev wrote:
>
> Hi there,
>
> I'm trying to map extract_vector_elt use the following pattern in tbl 
> file.
>
> Def : Pat <(i64 (extractelt v2i32:$src, 0)), (i64 (SRLIMM GPR:$src, 32))>;
>
> But the tblgen shows :
>
> Type inference contradiction found , forcing v2i32 to have a vector 
> element of type i64
>
> But the manual says this instruction allows return type to be larger 
> than element type.
>
> Anyone can show me any pointers ?
>
> Thanks,
> Xiaochu
>
>
>
> _______________________________________________
> LLVM Developers mailing list
> llvm-dev at lists.llvm.org
> http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev


I think this is just intended as a quirk for some weird targets that 
have a legal vector type, but the scalar type itself is not legal, so it 
requires an implicit extension when extracting it. I don't think it's 
intended as something you can arbitrarily do for any vector type, and I 
wouldn't recommend trying to use it if you don't have to. This probably 
requires custom selector code

-Matt

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20160818/a2233a66/attachment.html>


More information about the llvm-dev mailing list