Autoupgrade support the rename of x86.fma4 intrinsics to x86.fma from r157898.
authorCraig Topper <craig.topper@gmail.com>
Sun, 3 Jun 2012 08:07:25 +0000 (08:07 +0000)
committerCraig Topper <craig.topper@gmail.com>
Sun, 3 Jun 2012 08:07:25 +0000 (08:07 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@157899 91177308-0d34-0410-b5e6-96231b3b80d8

lib/VMCore/AutoUpgrade.cpp

index 522b07e45452d9aeaf5b5be75dd0823a98289adb..409accb8f69030dc38ed32fe968f219ec36f8dd5 100644 (file)
@@ -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;
   }
   }