diff options
author | Eli Friedman <eli.friedman@gmail.com> | 2011-07-02 00:57:27 +0000 |
---|---|---|
committer | Eli Friedman <eli.friedman@gmail.com> | 2011-07-02 00:57:27 +0000 |
commit | 1310c68bb08b43778528d45789a0358158980b5d (patch) | |
tree | df954d96285d90772b60bed5d83cb77ab44e467d | |
parent | 42f96b78ec393edef29255296cfa2b6ac624e40a (diff) | |
download | llvm-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.cpp | 7 | ||||
-rw-r--r-- | clang/test/CodeGen/x86_64-arguments.c | 3 |
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; } |