aboutsummaryrefslogtreecommitdiff
path: root/lib/VMCore/AutoUpgrade.cpp
diff options
context:
space:
mode:
authorCraig Topper <craig.topper@gmail.com>2012-06-03 08:07:25 +0000
committerCraig Topper <craig.topper@gmail.com>2012-06-03 08:07:25 +0000
commit7678de45b27b6a07ea28113c415ccfcb68871950 (patch)
treeb203dd5faac6d5ef4075e1250e7de73702fe70f4 /lib/VMCore/AutoUpgrade.cpp
parent529ce07c5ff20b17b053b9a7e08d419b7856ec55 (diff)
Autoupgrade support the rename of x86.fma4 intrinsics to x86.fma from r157898.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@157899 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/VMCore/AutoUpgrade.cpp')
-rw-r--r--lib/VMCore/AutoUpgrade.cpp74
1 files changed, 74 insertions, 0 deletions
diff --git a/lib/VMCore/AutoUpgrade.cpp b/lib/VMCore/AutoUpgrade.cpp
index 522b07e454..409accb8f6 100644
--- a/lib/VMCore/AutoUpgrade.cpp
+++ b/lib/VMCore/AutoUpgrade.cpp
@@ -64,6 +64,80 @@ static bool UpgradeIntrinsicFunction1(Function *F, Function *&NewFn) {
NewFn = 0;
return true;
}
+ // Fix the FMA4 intrinsics to remove the 4
+ if (Name.startswith("x86.fma4.")) {
+ const char* NewFnName = 0;
+ if (Name == "x86.fma4.vfmadd.ss")
+ NewFnName = "llvm.x86.fma.vfmadd.ss";
+ else if (Name == "x86.fma4.vfmadd.sd")
+ NewFnName = "llvm.x86.fma.vfmadd.sd";
+ else if (Name == "x86.fma4.vfmadd.ps")
+ NewFnName = "llvm.x86.fma.vfmadd.ps";
+ else if (Name == "x86.fma4.vfmadd.pd")
+ NewFnName = "llvm.x86.fma.vfmadd.pd";
+ else if (Name == "x86.fma4.vfmadd.ps.256")
+ NewFnName = "llvm.x86.fma.vfmadd.ps.256";
+ else if (Name == "x86.fma4.vfmadd.pd.256")
+ NewFnName = "llvm.x86.fma.vfmadd.pd.256";
+ else if (Name == "x86.fma4.vfmsub.ss")
+ NewFnName = "llvm.x86.fma.vfmsub.ss";
+ else if (Name == "x86.fma4.vfmsub.sd")
+ NewFnName = "llvm.x86.fma.vfmsub.sd";
+ else if (Name == "x86.fma4.vfmsub.ps")
+ NewFnName = "llvm.x86.fma.vfmsub.ps";
+ else if (Name == "x86.fma4.vfmsub.pd")
+ NewFnName = "llvm.x86.fma.vfmsub.pd";
+ else if (Name == "x86.fma4.vfmsub.ps.256")
+ NewFnName = "llvm.x86.fma.vfmsub.ps.256";
+ else if (Name == "x86.fma4.vfmsub.pd.256")
+ NewFnName = "llvm.x86.fma.vfmsub.pd.256";
+ else if (Name == "x86.fma4.vfnmadd.ss")
+ NewFnName = "llvm.x86.fma.vfnmadd.ss";
+ else if (Name == "x86.fma4.vfnmadd.sd")
+ NewFnName = "llvm.x86.fma.vfnmadd.sd";
+ else if (Name == "x86.fma4.vfnmadd.ps")
+ NewFnName = "llvm.x86.fma.vfnmadd.ps";
+ else if (Name == "x86.fma4.vfnmadd.pd")
+ NewFnName = "llvm.x86.fma.vfnmadd.pd";
+ else if (Name == "x86.fma4.vfnmadd.ps.256")
+ NewFnName = "llvm.x86.fma.vfnmadd.ps.256";
+ else if (Name == "x86.fma4.vfnmadd.pd.256")
+ NewFnName = "llvm.x86.fma.vfnmadd.pd.256";
+ else if (Name == "x86.fma4.vfnmsub.ss")
+ NewFnName = "llvm.x86.fma.vfnmsub.ss";
+ else if (Name == "x86.fma4.vfnmsub.sd")
+ NewFnName = "llvm.x86.fma.vfnmsub.sd";
+ else if (Name == "x86.fma4.vfnmsub.ps")
+ NewFnName = "llvm.x86.fma.vfnmsub.ps";
+ else if (Name == "x86.fma4.vfnmsub.pd")
+ NewFnName = "llvm.x86.fma.vfnmsub.pd";
+ else if (Name == "x86.fma4.vfnmsub.ps.256")
+ NewFnName = "llvm.x86.fma.vfnmsub.ps.256";
+ else if (Name == "x86.fma4.vfnmsub.pd.256")
+ NewFnName = "llvm.x86.fma.vfnmsub.pd.256";
+ else if (Name == "x86.fma4.vfmaddsub.ps")
+ NewFnName = "llvm.x86.fma.vfmaddsub.ps";
+ else if (Name == "x86.fma4.vfmaddsub.pd")
+ NewFnName = "llvm.x86.fma.vfmaddsub.pd";
+ else if (Name == "x86.fma4.vfmaddsub.ps.256")
+ NewFnName = "llvm.x86.fma.vfmaddsub.ps.256";
+ else if (Name == "x86.fma4.vfmaddsub.pd.256")
+ NewFnName = "llvm.x86.fma.vfmaddsub.pd.256";
+ else if (Name == "x86.fma4.vfmsubadd.ps")
+ NewFnName = "llvm.x86.fma.vfmsubadd.ps";
+ else if (Name == "x86.fma4.vfmsubadd.pd")
+ NewFnName = "llvm.x86.fma.vfmsubadd.pd";
+ else if (Name == "x86.fma4.vfmsubadd.ps.256")
+ NewFnName = "llvm.x86.fma.vfmsubadd.ps.256";
+ else if (Name == "x86.fma4.vfmsubadd.pd.256")
+ NewFnName = "llvm.x86.fma.vfmsubadd.pd.256";
+
+ if (NewFnName) {
+ F->setName(NewFnName);
+ NewFn = F;
+ return true;
+ }
+ }
break;
}
}