aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEli Friedman <eli.friedman@gmail.com>2011-07-02 00:57:27 +0000
committerEli Friedman <eli.friedman@gmail.com>2011-07-02 00:57:27 +0000
commit1310c68bb08b43778528d45789a0358158980b5d (patch)
treedf954d96285d90772b60bed5d83cb77ab44e467d
parent42f96b78ec393edef29255296cfa2b6ac624e40a (diff)
downloadllvm-1310c68bb08b43778528d45789a0358158980b5d.zip
llvm-1310c68bb08b43778528d45789a0358158980b5d.tar.gz
llvm-1310c68bb08b43778528d45789a0358158980b5d.tar.bz2
Don't use x86_mmx where it isn't necessary.
The start of some work on getting -mno-mmx working the way we want it to. llvm-svn: 134300
-rw-r--r--clang/lib/CodeGen/TargetInfo.cpp7
-rw-r--r--clang/test/CodeGen/x86_64-arguments.c3
2 files changed, 4 insertions, 6 deletions
diff --git a/clang/lib/CodeGen/TargetInfo.cpp b/clang/lib/CodeGen/TargetInfo.cpp
index f65fc18..8736d59 100644
--- a/clang/lib/CodeGen/TargetInfo.cpp
+++ b/clang/lib/CodeGen/TargetInfo.cpp
@@ -1801,12 +1801,7 @@ ABIArgInfo X86_64ABIInfo::classifyArgumentType(QualType Ty, unsigned &neededInt,
// order from %xmm0 to %xmm7.
case SSE: {
const llvm::Type *IRType = CGT.ConvertTypeRecursive(Ty);
- if (Hi != NoClass || !UseX86_MMXType(IRType))
- ResType = GetSSETypeAtOffset(IRType, 0, Ty, 0);
- else
- // This is an MMX type. Treat it as such.
- ResType = llvm::Type::getX86_MMXTy(getVMContext());
-
+ ResType = GetSSETypeAtOffset(IRType, 0, Ty, 0);
++neededSSE;
break;
}
diff --git a/clang/test/CodeGen/x86_64-arguments.c b/clang/test/CodeGen/x86_64-arguments.c
index 75c4788..090e70d 100644
--- a/clang/test/CodeGen/x86_64-arguments.c
+++ b/clang/test/CodeGen/x86_64-arguments.c
@@ -259,3 +259,6 @@ void f9122143()
func(ss);
}
+// CHECK: define double @f36(double %arg.coerce)
+typedef unsigned v2i32 __attribute((__vector_size__(8)));
+v2i32 f36(v2i32 arg) { return arg; }