Using target specific nodes for shuffle nodes makes the mask
authorBruno Cardoso Lopes <bruno.cardoso@gmail.com>
Wed, 1 Sep 2010 22:33:20 +0000 (22:33 +0000)
committerBruno Cardoso Lopes <bruno.cardoso@gmail.com>
Wed, 1 Sep 2010 22:33:20 +0000 (22:33 +0000)
commit29c353b9c3d8094b9ac7cbbc23cfc8d23a010db4
treea4e807aa743aaad1195266c8c98117f992df82c6
parent543cf05b9cb98f50a22cf05137d97bb3bb61f94a
Using target specific nodes for shuffle nodes makes the mask
check more strict, breaking some cases not checked in the
testsuite, but also exposes some foldings not done before,
as this example:

  movaps  (%rdi), %xmm0
  movaps  (%rax), %xmm1
  movaps  %xmm0, %xmm2
  movss %xmm1, %xmm2
  shufps  $36, %xmm2, %xmm0

now is generated as:

  movaps  (%rdi), %xmm0
  movaps  %xmm0, %xmm1
  movlps  (%rax), %xmm1
  shufps  $36, %xmm1, %xmm0

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112753 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Target/X86/X86InstrSSE.td
test/CodeGen/X86/vec_shuffle-37.ll [new file with mode: 0644]