Ensure that the backend no longer emits unnecessary vector insert instructions
authorAndrea Di Biagio <Andrea_DiBiagio@sn.scee.net>
Tue, 10 Dec 2013 15:22:48 +0000 (15:22 +0000)
committerAndrea Di Biagio <Andrea_DiBiagio@sn.scee.net>
Tue, 10 Dec 2013 15:22:48 +0000 (15:22 +0000)
commit4b3fcc21ec0561d09105862a63a9e8a66696ec8c
treedf4c7f64db801d2bd3243ac4d1e98c78a35ddfce
parentbb0e2be6a3fa92f5d14c7e7f54c13c6868da4ac8
Ensure that the backend no longer emits unnecessary vector insert instructions
immediately after SSE scalar fp instructions like addss or mulss.

Added patterns to select SSE scalar fp arithmetic instructions from a scalar
fp operation followed by a blend.

For example, given the following code:
  __m128 foo(__m128 A, __m128 B) {
    A[0] += B[0];
    return A;
  }

previously we generated:
  addss %xmm0, %xmm1
  movss %xmm1, %xmm0

now we generate:
  addss %xmm1, %xmm0

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