From: Chris Lattner Date: Mon, 30 Aug 2010 22:03:23 +0000 (+0000) Subject: Fix PR8029, a x86-32 ABI regression in introduced in r112211 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=4599f346cb90bef15e1afd5c66f20c18703e41ae;p=clang Fix PR8029, a x86-32 ABI regression in introduced in r112211 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@112537 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/CodeGen/TargetInfo.cpp b/lib/CodeGen/TargetInfo.cpp index d2bd33258c..bf261200bc 100644 --- a/lib/CodeGen/TargetInfo.cpp +++ b/lib/CodeGen/TargetInfo.cpp @@ -598,7 +598,6 @@ ABIArgInfo X86_32ABIInfo::classifyArgumentType(QualType Ty) const { (Size == 64 && VT->getNumElements() == 1)) return ABIArgInfo::getDirect(llvm::IntegerType::get(getVMContext(), Size)); - return ABIArgInfo::getIndirect(0); } return ABIArgInfo::getDirect(); diff --git a/test/CodeGen/x86_32-arguments.c b/test/CodeGen/x86_32-arguments.c index 19a0f5214e..75dfb82b32 100644 --- a/test/CodeGen/x86_32-arguments.c +++ b/test/CodeGen/x86_32-arguments.c @@ -221,3 +221,10 @@ typedef unsigned short v2i16 __attribute__((__vector_size__(4))); // rdar://8359483 v2i16 f54(v2i16 arg) { return arg+arg; } + +typedef int v4i32 __attribute__((__vector_size__(16))); + +// CHECK: define <2 x i64> @f55(<4 x i32> %arg) +// PR8029 +v4i32 f55(v4i32 arg) { return arg+arg; } +