[LLVMdev] Duplicate Label in Generates ISel

David Greene dag at cray.com
Thu Dec 3 13:45:13 PST 2009


On Thursday 03 December 2009 13:52, David Greene wrote:
> On Thursday 03 December 2009 13:43, David Greene wrote:
> > Whoops, I forgot to fill in types:
> >
> > (outs VR128:$dst), (ins VR129:$src1, i32i8imm:$src2)
> >
> > [(set DSTREGCLASS:$dst,
> >       (v4f32 (extract_subreg
> >                   (vector_shuffle
> >                      (v8f32 undef),
> >                      (v8f32 SRCREGCLASS:$src1),
> >                      VEXTRACTF128_shuffle_mask:$src2),
> >                   x86_subreg_128bit)))],
>
> Well, it's conflicting with the hard-coded case statement from
> DAGISelEmitter.cpp.  What's the best way to resolve this?  Introduce
> another DAG operator that means the same thing as ISD::EXTRACT_SUBREG
> but that can be used as the top-level operator in a pattern?

I added X86ISD::EXTRACT_SUBREG and that works for now.  But I don't think
that's an appropriate long-term solution.  Any opinions?

                              -Dave



More information about the llvm-dev mailing list