[NVPTX] Associate a minimum PTX version for each SM architecture
authorJustin Holewinski <jholewinski@nvidia.com>
Mon, 30 Mar 2015 19:30:55 +0000 (19:30 +0000)
committerJustin Holewinski <jholewinski@nvidia.com>
Mon, 30 Mar 2015 19:30:55 +0000 (19:30 +0000)
When a new SM architecture is introduced, it is only supported by the
current PTX version and later.  Make sure we are using at least the
minimum PTX version for the target architecture.

This also removes support for PTX ISA < 3.2.

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

lib/Target/NVPTX/NVPTX.td
test/CodeGen/NVPTX/ptx-version-30.ll [deleted file]
test/CodeGen/NVPTX/ptx-version-31.ll [deleted file]
test/CodeGen/NVPTX/sm-version-30.ll
test/CodeGen/NVPTX/sm-version-32.ll
test/CodeGen/NVPTX/sm-version-35.ll
test/CodeGen/NVPTX/sm-version-37.ll
test/CodeGen/NVPTX/sm-version-50.ll [new file with mode: 0644]
test/CodeGen/NVPTX/sm-version-52.ll
test/CodeGen/NVPTX/sm-version-53.ll

index e27fd75c23fd98f8a8a1ce05a48026dbb34311a2..96abfa8591194183869e066baec46b5bb13b71d8 100644 (file)
@@ -46,10 +46,6 @@ def SM53 : SubtargetFeature<"sm_53", "SmVersion", "53",
                             "Target SM 5.3">;
 
 // PTX Versions
-def PTX30 : SubtargetFeature<"ptx30", "PTXVersion", "30",
-                             "Use PTX version 3.0">;
-def PTX31 : SubtargetFeature<"ptx31", "PTXVersion", "31",
-                             "Use PTX version 3.1">;
 def PTX32 : SubtargetFeature<"ptx32", "PTXVersion", "32",
                              "Use PTX version 3.2">;
 def PTX40 : SubtargetFeature<"ptx40", "PTXVersion", "40",
@@ -69,12 +65,12 @@ class Proc<string Name, list<SubtargetFeature> Features>
 def : Proc<"sm_20", [SM20]>;
 def : Proc<"sm_21", [SM21]>;
 def : Proc<"sm_30", [SM30]>;
-def : Proc<"sm_32", [SM32]>;
+def : Proc<"sm_32", [SM32, PTX40]>;
 def : Proc<"sm_35", [SM35]>;
-def : Proc<"sm_37", [SM37]>;
-def : Proc<"sm_50", [SM50]>;
-def : Proc<"sm_52", [SM52]>;
-def : Proc<"sm_53", [SM53]>;
+def : Proc<"sm_37", [SM37, PTX41]>;
+def : Proc<"sm_50", [SM50, PTX40]>;
+def : Proc<"sm_52", [SM52, PTX41]>;
+def : Proc<"sm_53", [SM53, PTX42]>;
 
 
 def NVPTXInstrInfo : InstrInfo {
diff --git a/test/CodeGen/NVPTX/ptx-version-30.ll b/test/CodeGen/NVPTX/ptx-version-30.ll
deleted file mode 100644 (file)
index 0422b01..0000000
+++ /dev/null
@@ -1,6 +0,0 @@
-; RUN: llc < %s -march=nvptx -mcpu=sm_20 -mattr=ptx30 | FileCheck %s
-; RUN: llc < %s -march=nvptx64 -mcpu=sm_20 -mattr=ptx30 | FileCheck %s
-
-
-; CHECK: .version 3.0
-
diff --git a/test/CodeGen/NVPTX/ptx-version-31.ll b/test/CodeGen/NVPTX/ptx-version-31.ll
deleted file mode 100644 (file)
index d6e5730..0000000
+++ /dev/null
@@ -1,6 +0,0 @@
-; RUN: llc < %s -march=nvptx -mcpu=sm_20 -mattr=ptx31 | FileCheck %s
-; RUN: llc < %s -march=nvptx64 -mcpu=sm_20 -mattr=ptx31 | FileCheck %s
-
-
-; CHECK: .version 3.1
-
index 692b49a0d6b3794ee16885a58c43a3ab86a0504b..4f35cf04c63b7a813661ea0160a25627db03b127 100644 (file)
@@ -2,5 +2,6 @@
 ; RUN: llc < %s -march=nvptx64 -mcpu=sm_30 | FileCheck %s
 
 
+; CHECK: .version 3.2
 ; CHECK: .target sm_30
 
index b737f36a774fadcf43d929bfdcb6c057cf196e4c..d6a5082c5267db2e943d0858c8b1d533e481905e 100644 (file)
@@ -2,5 +2,6 @@
 ; RUN: llc < %s -march=nvptx64 -mcpu=sm_32 | FileCheck %s
 
 
+; CHECK: .version 4.0
 ; CHECK: .target sm_32
 
index 25368a01335e147f1959af249ccb6df6107026c8..8456c666677de4eae4d0799fffec82ef8b4773cb 100644 (file)
@@ -2,5 +2,6 @@
 ; RUN: llc < %s -march=nvptx64 -mcpu=sm_35 | FileCheck %s
 
 
+; CHECK: .version 3.2
 ; CHECK: .target sm_35
 
index 957a3d957056e2f820a896cd4e72f8a523a0cead..fd51a9c7063f639c23f6f7d2d33f35333501a4b5 100644 (file)
@@ -2,5 +2,6 @@
 ; RUN: llc < %s -march=nvptx64 -mcpu=sm_37 | FileCheck %s
 
 
+; CHECK: .version 4.1
 ; CHECK: .target sm_37
 
diff --git a/test/CodeGen/NVPTX/sm-version-50.ll b/test/CodeGen/NVPTX/sm-version-50.ll
new file mode 100644 (file)
index 0000000..374c6ea
--- /dev/null
@@ -0,0 +1,7 @@
+; RUN: llc < %s -march=nvptx -mcpu=sm_50 | FileCheck %s
+; RUN: llc < %s -march=nvptx64 -mcpu=sm_50 | FileCheck %s
+
+
+; CHECK: .version 4.0
+; CHECK: .target sm_50
+
index 9b8fc72b5a94a8c90aefd5314e29de5c05c8582e..18881b2e98cc4782f4326cf16edc6bf48688f5cb 100644 (file)
@@ -2,5 +2,6 @@
 ; RUN: llc < %s -march=nvptx64 -mcpu=sm_52 | FileCheck %s
 
 
+; CHECK: .version 4.1
 ; CHECK: .target sm_52
 
index f1b8e5bacf2d7f73d6a8dce808b8f69b8b0a4b97..50d2dec11bc58abc09b8678d3e8480f0d3095177 100644 (file)
@@ -2,5 +2,6 @@
 ; RUN: llc < %s -march=nvptx64 -mcpu=sm_53 | FileCheck %s
 
 
+; CHECK: .version 4.2
 ; CHECK: .target sm_53