diff options
Diffstat (limited to 'clang')
-rw-r--r-- | clang/lib/CodeGen/TargetInfo.cpp | 1 | ||||
-rw-r--r-- | clang/test/CodeGen/x86_32-arguments.c | 7 |
2 files changed, 7 insertions, 1 deletions
diff --git a/clang/lib/CodeGen/TargetInfo.cpp b/clang/lib/CodeGen/TargetInfo.cpp index d2bd33258cd..bf261200bc3 100644 --- a/clang/lib/CodeGen/TargetInfo.cpp +++ b/clang/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/clang/test/CodeGen/x86_32-arguments.c b/clang/test/CodeGen/x86_32-arguments.c index 19a0f5214e1..75dfb82b32a 100644 --- a/clang/test/CodeGen/x86_32-arguments.c +++ b/clang/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; } + |