[PATCH] D33958: [GlobalISel][X86] Support vector type G_MERGE_VALUES selection.
    Igor Breger via Phabricator via llvm-commits 
    llvm-commits at lists.llvm.org
       
    Tue Jun 27 00:17:25 PDT 2017
    
    
  
igorb added inline comments.
================
Comment at: lib/Target/X86/X86InstructionSelector.cpp:902
+  MRI.setRegBank(DefReg, RegBank);
+  if (!emitInsertSubreg(DefReg, I.getOperand(1).getReg(), I, MRI, MF))
+    return false;
----------------
guyblank wrote:
> why not use G_INSERT for the first element as well?
For the first element i need to create G_INSERT undef, val
    %0(<8 x s32>) = IMPLICIT_DEF
    %1(<4 x s32>) = COPY %xmm1
    %2(<8 x s32>) = G_INSERT %0(<8 x s32>), %1(<4 x s32>), 0
That will be lowered to InsertSubreg. IMPLICIT_DEF  is dead code and doesn't get RegClass constrain so MachineVerifier fail.  In general case we have dead code elimination so this problem doesn't exist.
https://reviews.llvm.org/D33958
    
    
More information about the llvm-commits
mailing list