Expand ZERO_EXTEND operations for NEON vector types.

Testcase from Nick Lewycky.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111341 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Bob Wilson 2010-08-18 01:45:52 +00:00
parent f9d1163769
commit 2003bcfbd2
2 changed files with 8 additions and 0 deletions

View File

@ -125,6 +125,7 @@ void ARMTargetLowering::addTypeForNEON(EVT VT, EVT PromotedLdStVT,
setOperationAction(ISD::EXTRACT_SUBVECTOR, VT.getSimpleVT(), Expand);
setOperationAction(ISD::SELECT, VT.getSimpleVT(), Expand);
setOperationAction(ISD::SELECT_CC, VT.getSimpleVT(), Expand);
setOperationAction(ISD::ZERO_EXTEND, VT.getSimpleVT(), Expand);
if (VT.isInteger()) {
setOperationAction(ISD::SHL, VT.getSimpleVT(), Custom);
setOperationAction(ISD::SRA, VT.getSimpleVT(), Custom);

View File

@ -0,0 +1,7 @@
; RUN: llc -march=arm -mattr=+neon -O2 -o /dev/null
; This used to crash.
define <4 x i32> @test1(<4 x i16> %a) {
%A = zext <4 x i16> %a to <4 x i32>
ret <4 x i32> %A
}