]> granicus.if.org Git - llvm/commit
[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)
commit7cd893a9859dcba1045aef2ca66de95f0561344b
tree7524b413f41f1b5da2eb7273e06bade4f022dcc1
parent23356d4d64d4511d340bc6dad1464c8a3c65473b
[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.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@209864 91177308-0d34-0410-b5e6-96231b3b80d8
include/llvm/IR/IntrinsicsX86.td
lib/Target/X86/X86InstrSSE.td
test/CodeGen/X86/avx-intrinsics-x86.ll