[X86] Remove AVX1 vbroadcast intrinsics
authorAdam Nemet <anemet@apple.com>
Thu, 29 May 2014 23:35:36 +0000 (23:35 +0000)
committerAdam Nemet <anemet@apple.com>
Thu, 29 May 2014 23:35:36 +0000 (23:35 +0000)
commit35b80eaef19f9a928273cc35b6fd6d91016b2110
tree2ae964883446b61f38b8c8d7199527970ee3fa23
parent39066800e9eb8fdad2e52592b344a0498e288353
[X86] Remove AVX1 vbroadcast intrinsics

The corresponding CFE patch replaces these intrinsics with vector initializers
in avxintrin.h.  This patch removes the LLVM intrinsics from the backend.

We now stop lowering at X86ISD::VBROADCAST custom node rather than lowering
that further to the intrinsics.

The patch only changes VBROADCASTS* and leaves VBROADCAST[FI]128 to continue
to use intrinsics.  As explained in the CFE patch, the reason is that we
currently don't generate as good code for them without the intrinsics.

CodeGen/X86/avx-vbroadcast.ll already provides coverage for this change.  It
checks that for a series of insertelements we generate the appropriate
vbroadcast instruction.

Also verified that there was no assembly change in the test-suite before and
after this patch.

llvm-svn: 209864
llvm/include/llvm/IR/IntrinsicsX86.td
llvm/lib/Target/X86/X86InstrSSE.td
llvm/test/CodeGen/X86/avx-intrinsics-x86.ll