[NVPTX] Fix issues in ptxas integration to LIT tests
authorAndrew Savonichev <andrew.savonichev@gmail.com>
Mon, 3 Oct 2022 21:23:55 +0000 (00:23 +0300)
committerAndrew Savonichev <andrew.savonichev@gmail.com>
Mon, 3 Oct 2022 21:29:42 +0000 (00:29 +0300)
1) Fixed a typo in PTXAS_EXECUTABLE CMake variable (PXTAS -> PTXAS).

2) Version check was implemented incorrectly,
   now version (major, minor) is converted to int for comparison.

3) ptxas -arch argument was incorrect (or missing) in 3 tests.

Differential Revision: https://reviews.llvm.org/D127866

llvm/test/CodeGen/NVPTX/atomicrmw-expand.ll
llvm/test/CodeGen/NVPTX/bug52623.ll
llvm/test/CodeGen/NVPTX/ldu-ldg.ll
llvm/test/lit.cfg.py
llvm/test/lit.site.cfg.py.in

index a2512df..5f57b3b 100644 (file)
@@ -1,7 +1,7 @@
 ; RUN: llc < %s -march=nvptx64 -mcpu=sm_30 | FileCheck %s --check-prefixes=ALL,SM30
 ; RUN: llc < %s -march=nvptx64 -mcpu=sm_60 | FileCheck %s --check-prefixes=ALL,SM60
-; RUN: %if ptxas %{ llc < %s -march=nvptx64 -mcpu=sm_30 | %ptxas-verify %}
-; RUN: %if ptxas %{ llc < %s -march=nvptx64 -mcpu=sm_60 | %ptxas-verify %}
+; RUN: %if ptxas %{ llc < %s -march=nvptx64 -mcpu=sm_30 | %ptxas-verify %if !ptxas-11.0 %{-arch=sm_30%} %}
+; RUN: %if ptxas %{ llc < %s -march=nvptx64 -mcpu=sm_60 | %ptxas-verify -arch=sm_60 %}
 
 ; CHECK-LABEL: fadd_double
 define void @fadd_double(ptr %0, double %1) {
index ea004bd..eb352d7 100644 (file)
@@ -1,5 +1,5 @@
-; RUN: llc < %s -march=nvptx -mcpu=sm_75 -verify-machineinstrs
-; RUN: %if ptxas %{ llc < %s -march=nvptx -mcpu=sm_75 | %ptxas-verify %}
+; RUN: llc < %s -march=nvptx -verify-machineinstrs
+; RUN: %if ptxas %{ llc < %s -march=nvptx | %ptxas-verify %}
 
 ; Check that llc will not crash even when first MBB doesn't contain
 ; any instruction.
index ab7767c..2cdbd3d 100644 (file)
@@ -1,5 +1,5 @@
-; RUN: llc < %s -march=nvptx -mcpu=sm_20 | FileCheck %s
-; RUN: %if ptxas %{ llc < %s -march=nvptx -mcpu=sm_20 | %ptxas-verify %}
+; RUN: llc < %s -march=nvptx -mcpu=sm_32 | FileCheck %s
+; RUN: %if ptxas %{ llc < %s -march=nvptx -mcpu=sm_32 | %ptxas-verify %if !ptxas-11.0 %{-arch=sm_32%} %}
 
 
 declare i8 @llvm.nvvm.ldu.global.i.i8.p1i8(i8 addrspace(1)* %ptr, i32 %align)
index 1da6274..e80a659 100644 (file)
@@ -216,19 +216,23 @@ def enable_ptxas(ptxas_executable):
             (11, 0), (11, 1), (11, 2), (11, 3), (11, 4), (11, 5), (11, 6),
         ]
 
+        def version_int(ver):
+            return ver[0] * 100 + ver[1]
+
         # ignore ptxas if its version is below the minimum supported
         # version
         min_version = ptxas_known_versions[0]
-        if version[0] < min_version[0] or version[1] < min_version[1]:
+        if version_int(version) < version_int(min_version):
             print(
                 'Warning: ptxas version {}.{} is not supported'.format(
                     version[0], version[1]))
             return
 
-        for known_major, known_minor in ptxas_known_versions:
-            if known_major <= version[0] and known_minor <= version[1]:
+        for known_version in ptxas_known_versions:
+            if version_int(known_version) <= version_int(version):
+                major, minor = known_version
                 config.available_features.add(
-                    'ptxas-{}.{}'.format(known_major, known_minor))
+                    'ptxas-{}.{}'.format(major, minor))
 
     config.available_features.add('ptxas')
     tools.extend([ToolSubst('%ptxas', ptxas_executable),
index 09210e2..c9ff7c0 100644 (file)
@@ -23,7 +23,7 @@ config.have_ocamlopt = @HAVE_OCAMLOPT@
 config.ocaml_flags = "@OCAMLFLAGS@"
 config.include_go_tests = @LLVM_INCLUDE_GO_TESTS@
 config.go_executable = "@GO_EXECUTABLE@"
-config.ptxas_executable = "@PXTAS_EXECUTABLE@"
+config.ptxas_executable = "@PTXAS_EXECUTABLE@"
 config.enable_shared = @ENABLE_SHARED@
 config.enable_assertions = @ENABLE_ASSERTIONS@
 config.targets_to_build = "@TARGETS_TO_BUILD@"