[LLVMdev] Vector promotion broken for <2 x [i8|i16]>

Villmow, Micah Micah.Villmow at amd.com
Tue Jul 31 14:02:02 PDT 2012


Ahh yep, thanks for catching that, new patch attached.

> -----Original Message-----
> From: Hal Finkel [mailto:hfinkel at anl.gov]
> Sent: Tuesday, July 31, 2012 1:40 PM
> To: Villmow, Micah
> Cc: Developers Mailing List
> Subject: Re: [LLVMdev] Vector promotion broken for <2 x [i8|i16]>
> 
> Micah,
> 
> I think that your patch is missing the necessary modifications in
> lib/VMCore/ValueTypes.cpp to EVT::getEVTString() and EVT::getTypeForEVT.
> 
>  -Hal
> 
> On Fri, 27 Jul 2012 22:54:24 +0000
> "Villmow, Micah" <Micah.Villmow at amd.com> wrote:
> 
> > Vector promotion which is new in LLVM 3.1 is broken for sub32 bit
> > types. The problem is in the VectorLegalizer::PromoteVectorOp. The
> > function getTypeToPromoteTo will return a <2 x i32> for a <2 x i8>,
> > <2 x i16> or <4 x i8>. The problem is that there are no vectors of
> > size 1 defined for i32 or i16. The attached patch fixes these issues.
> >
> > This can be reproduced by setting in any target:
> > setOperationAction(ISD::AND, MVT::i8, Promote);
> > setOperationAction(ISD::AND, MVT::v2i8, Promote);
> > setOperationAction(ISD::AND, MVT::i16, Promote);
> >
> > Let me know if this is good,
> > Micah
> >
> 
> 
> 
> --
> Hal Finkel
> Postdoctoral Appointee
> Leadership Computing Facility
> Argonne National Laboratory

-------------- next part --------------
A non-text attachment was scrubbed...
Name: codegen_new_vec1_types.patch
Type: application/octet-stream
Size: 11997 bytes
Desc: codegen_new_vec1_types.patch
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20120731/1492dd3a/attachment.obj>


More information about the llvm-dev mailing list