Well, add support for ct* for 21264 only.
authorAndrew Lenharth <andrewl@lenharth.org>
Wed, 4 May 2005 19:12:09 +0000 (19:12 +0000)
committerAndrew Lenharth <andrewl@lenharth.org>
Wed, 4 May 2005 19:12:09 +0000 (19:12 +0000)
21164 is broken until expand works.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21692 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Target/Alpha/AlphaAsmPrinter.cpp
lib/Target/Alpha/AlphaISelPattern.cpp

index abfc16cd38bfa488895149741b54f5c96f77a017..4bf7b56e7c98d34b35ac1f0e1f413110d6b8f9a2 100644 (file)
@@ -31,6 +31,7 @@ using namespace llvm;
 
 namespace llvm {
   extern cl::opt<bool> EnableAlphaFTOI;
+  extern cl::opt<bool> EnableAlphaCT;
 }
 
 namespace {
@@ -234,7 +235,7 @@ void AlphaAsmPrinter::printConstantPool(MachineConstantPool *MCP) {
 bool AlphaAsmPrinter::doInitialization(Module &M)
 {
   AsmPrinter::doInitialization(M);
-  if(EnableAlphaFTOI)
+  if(EnableAlphaFTOI || EnableAlphaCT)
     O << "\t.arch ev6\n";
   else
     O << "\t.arch ev56\n";
index 53d8a9e561ca75941c61ed473cd036292a1c4a9a..aa4ed3b13c3c826b0f68b3f626cd1b3f18826e54 100644 (file)
@@ -36,9 +36,12 @@ namespace llvm {
   cl::opt<bool> EnableAlphaIDIV("enable-alpha-intfpdiv",
                              cl::desc("Use the FP div instruction for integer div when possible"),
                              cl::Hidden);
-  cl::opt<bool> EnableAlphaFTOI("enable-alpha-ftoi",
+  cl::opt<bool> EnableAlphaFTOI("enable-alpha-FTOI",
                              cl::desc("Enable use of ftoi* and itof* instructions (ev6 and higher)"),
                              cl::Hidden);
+  cl::opt<bool> EnableAlphaCT("enable-alpha-CT",
+                              cl::desc("Enable use of the ctpop, ctlz, and cttz instructions"),
+                              cl::Hidden);
   cl::opt<bool> EnableAlphaCount("enable-alpha-count",
                              cl::desc("Print estimates on live ins and outs"),
                              cl::Hidden);
@@ -76,9 +79,11 @@ namespace {
       setOperationAction(ISD::SREM     , MVT::f32  , Expand);
       setOperationAction(ISD::SREM     , MVT::f64  , Expand);
 
-      //      setOperationAction(ISD::CTPOP    , MVT::i64  , Expand);
-      //      setOperationAction(ISD::CTTZ     , MVT::i64  , Expand);
-      //      setOperationAction(ISD::CTTZ     , MVT::i64  , Expand);
+      if (!EnableAlphaCT) {
+        setOperationAction(ISD::CTPOP    , MVT::i64  , Expand);
+        setOperationAction(ISD::CTTZ     , MVT::i64  , Expand);
+        setOperationAction(ISD::CTTZ     , MVT::i64  , Expand);
+      }
 
       //If this didn't legalize into a div....
       //      setOperationAction(ISD::SREM     , MVT::i64, Expand);