diff options
author | Chris Lattner <sabre@nondot.org> | 2009-05-01 23:54:26 +0000 |
---|---|---|
committer | Chris Lattner <sabre@nondot.org> | 2009-05-01 23:54:26 +0000 |
commit | c650f1f141e966d3f8b14f5556937b8473784076 (patch) | |
tree | 859a69f80f21e0fe69afca89854347d6a3f2636b | |
parent | 837e59e2e8a0fc3133aa25cea26b9ee3c7e72c8f (diff) |
'The attached patch fixes an issue where llc -march=cpp fails with
"Invalid primitive type" on input containing the x86_fp80 type.'
Patch by Collin Winter!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70610 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r-- | lib/Target/CppBackend/CPPBackend.cpp | 7 | ||||
-rw-r--r-- | test/CodeGen/CPP/2009-05-01-Long-Double.ll | 13 |
2 files changed, 17 insertions, 3 deletions
diff --git a/lib/Target/CppBackend/CPPBackend.cpp b/lib/Target/CppBackend/CPPBackend.cpp index ffb805691f..6adb73ae25 100644 --- a/lib/Target/CppBackend/CPPBackend.cpp +++ b/lib/Target/CppBackend/CPPBackend.cpp @@ -359,9 +359,10 @@ namespace { unsigned BitWidth = cast<IntegerType>(Ty)->getBitWidth(); return "IntegerType::get(" + utostr(BitWidth) + ")"; } - case Type::FloatTyID: return "Type::FloatTy"; - case Type::DoubleTyID: return "Type::DoubleTy"; - case Type::LabelTyID: return "Type::LabelTy"; + case Type::X86_FP80TyID: return "Type::X86_FP80Ty"; + case Type::FloatTyID: return "Type::FloatTy"; + case Type::DoubleTyID: return "Type::DoubleTy"; + case Type::LabelTyID: return "Type::LabelTy"; default: error("Invalid primitive type"); break; diff --git a/test/CodeGen/CPP/2009-05-01-Long-Double.ll b/test/CodeGen/CPP/2009-05-01-Long-Double.ll new file mode 100644 index 0000000000..9d132ec00f --- /dev/null +++ b/test/CodeGen/CPP/2009-05-01-Long-Double.ll @@ -0,0 +1,13 @@ +; RUN: llvm-as < %s | llc -march=cpp -cppgen=program -f -o %t + +define x86_fp80 @some_func() nounwind { +entry: + %retval = alloca x86_fp80 ; <x86_fp80*> [#uses=2] + %call = call i32 (...)* @other_func() ; <i32> [#uses=1] + %conv = sitofp i32 %call to x86_fp80 ; <x86_fp80> [#uses=1] + store x86_fp80 %conv, x86_fp80* %retval + %0 = load x86_fp80* %retval ; <x86_fp80> [#uses=1] + ret x86_fp80 %0 +} + +declare i32 @other_func(...) |