[LLVMdev] Duplicate Label in Generates ISel

David Greene dag at cray.com
Thu Dec 3 11:39:56 PST 2009


I've got the following problem in the X86 selector generated by
TableGen:

llvm/lib/Target/X86/X86GenDAGISel.inc:91821: error: duplicate case value
llvm/lib/Target/X86/X86GenDAGISel.inc:91442: error: previously used here

This seems to happen because of a pattern I added for VEXTRACTF128 which uses 
extract_subreg:

[(set DSTREGCLASS:$dst,
      (DSTTYPE (extract_subreg
                  (vector_shuffle 
                     (SRCTYPE undef),
                     (SRCTYPE SRCREGCLASS:$src1),
                     VEXTRACTF128_shuffle_mask:$src2),
                  x86_subreg_128bit)))],

def x86_subreg_128bit  : PatLeaf<(i32 1)>;

Curiously, I have analogous patterns for VINSERTF128 that use insert_subreg 
but it doesn't generate any duplicate case values.

Anyone seen something like this before?  Any ideas on how to fix it?

                                 -Dave



More information about the llvm-dev mailing list