Skip to content

Conversation

justinfargnoli
Copy link
Contributor

@justinfargnoli justinfargnoli commented Aug 28, 2025

Reland #154439. Reverted with #155914.

Account for:

  • Windows ptxas outputting error messages to stdout instead of stderr: 10613ed
  • Tests in llvm/test/DebugInfo/NVPTX: 56535ff

@justinfargnoli justinfargnoli requested a review from Copilot August 28, 2025 21:20
@justinfargnoli justinfargnoli self-assigned this Aug 28, 2025
Copy link
Contributor

@Copilot Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

This PR refactors the ptxas feature detection system in LLVM's lit testing framework to move from CUDA toolkit version-based checks to more granular ISA version and architecture-specific checks. This enables more precise testing by checking for specific SM architectures and PTX ISA versions that ptxas supports.

Key changes include:

  • Refactored ptxas version detection and feature availability functions
  • Updated test files to use new granular feature checks (ptxas-sm_XX, ptxas-isa-X.Y, ptxas-ptr32)
  • Replaced broad version checks with specific capability-based checks

Reviewed Changes

Copilot reviewed 175 out of 175 changed files in this pull request and generated no comments.

File Description
llvm/test/lit.cfg.py Completely refactored ptxas feature detection with new functions for ISA versions, SM architectures, and address size support
Various .ll/.py test files Updated from version-based ptxas checks to granular feature-based checks using new ptxas-sm_XX and ptxas-isa-X.Y patterns
Comments suppressed due to low confidence (3)

@justinfargnoli
Copy link
Contributor Author

For reference: #155912 (comment)

@justinfargnoli
Copy link
Contributor Author

justinfargnoli commented Aug 28, 2025

@justinfargnoli justinfargnoli changed the title Reland "[lit] Refactor available ptxas features"" Reland "[lit] Refactor available ptxas features" Aug 29, 2025
@justinfargnoli justinfargnoli marked this pull request as ready for review August 29, 2025 17:57
@llvmbot
Copy link
Member

llvmbot commented Aug 29, 2025

@llvm/pr-subscribers-debuginfo

Author: Justin Fargnoli (justinfargnoli)

Changes

Reland #154439. Reverted with #155914.

Account for:

  • Windows ptxas outputting error messages to stdout instead of stderr: 10613ed
  • Tests in llvm/test/DebugInfo/NVPTX: 56535ff

Patch is 161.94 KiB, truncated to 20.00 KiB below, full version: https://github.com/llvm/llvm-project/pull/155923.diff

180 Files Affected:

  • (modified) llvm/test/CodeGen/NVPTX/access-non-generic.ll (+1-1)
  • (modified) llvm/test/CodeGen/NVPTX/activemask.ll (+1-1)
  • (modified) llvm/test/CodeGen/NVPTX/addrspacecast-ptx64.ll (+2-2)
  • (modified) llvm/test/CodeGen/NVPTX/addrspacecast.ll (+1-1)
  • (modified) llvm/test/CodeGen/NVPTX/alias.ll (+1-1)
  • (modified) llvm/test/CodeGen/NVPTX/annotations.ll (+1-1)
  • (modified) llvm/test/CodeGen/NVPTX/applypriority.ll (+1-1)
  • (modified) llvm/test/CodeGen/NVPTX/arithmetic-fp-sm20.ll (+1-1)
  • (modified) llvm/test/CodeGen/NVPTX/arithmetic-int.ll (+1-1)
  • (modified) llvm/test/CodeGen/NVPTX/async-copy.ll (+2-2)
  • (modified) llvm/test/CodeGen/NVPTX/atomicrmw-expand.ll (+1-1)
  • (modified) llvm/test/CodeGen/NVPTX/atomics-b128.ll (+1-1)
  • (modified) llvm/test/CodeGen/NVPTX/atomics-sm60.ll (+2-2)
  • (modified) llvm/test/CodeGen/NVPTX/atomics-sm70.ll (+3-3)
  • (modified) llvm/test/CodeGen/NVPTX/atomics-sm90.ll (+3-3)
  • (modified) llvm/test/CodeGen/NVPTX/atomics-with-scope.ll (+2-2)
  • (modified) llvm/test/CodeGen/NVPTX/b52037.ll (+1-1)
  • (modified) llvm/test/CodeGen/NVPTX/barrier.ll (+1-1)
  • (modified) llvm/test/CodeGen/NVPTX/bf16-instructions.ll (+3-3)
  • (modified) llvm/test/CodeGen/NVPTX/bf16x2-instructions-approx.ll (+1-1)
  • (modified) llvm/test/CodeGen/NVPTX/bf16x2-instructions.ll (+2-2)
  • (modified) llvm/test/CodeGen/NVPTX/bmsk.ll (+1-1)
  • (modified) llvm/test/CodeGen/NVPTX/bswap.ll (+2-2)
  • (modified) llvm/test/CodeGen/NVPTX/byval-arg-vectorize.ll (+1-1)
  • (modified) llvm/test/CodeGen/NVPTX/byval-const-global.ll (+1-1)
  • (modified) llvm/test/CodeGen/NVPTX/calling-conv.ll (+1-1)
  • (modified) llvm/test/CodeGen/NVPTX/cluster-dim.ll (+1-1)
  • (modified) llvm/test/CodeGen/NVPTX/clusterlaunchcontrol-multicast.ll (+6-6)
  • (modified) llvm/test/CodeGen/NVPTX/clusterlaunchcontrol.ll (+2-2)
  • (modified) llvm/test/CodeGen/NVPTX/cmpxchg-sm60.ll (+1-1)
  • (modified) llvm/test/CodeGen/NVPTX/cmpxchg-sm70.ll (+1-1)
  • (modified) llvm/test/CodeGen/NVPTX/cmpxchg-sm90.ll (+1-1)
  • (modified) llvm/test/CodeGen/NVPTX/cmpxchg.ll (+1-1)
  • (modified) llvm/test/CodeGen/NVPTX/combine-mad.ll (+1-1)
  • (modified) llvm/test/CodeGen/NVPTX/combine-min-max.ll (+2-2)
  • (modified) llvm/test/CodeGen/NVPTX/common-linkage.ll (+2-2)
  • (modified) llvm/test/CodeGen/NVPTX/compare-int.ll (+1-1)
  • (modified) llvm/test/CodeGen/NVPTX/convert-call-to-indirect.ll (+1-1)
  • (modified) llvm/test/CodeGen/NVPTX/convert-fp.ll (+1-1)
  • (modified) llvm/test/CodeGen/NVPTX/convert-int-sm20.ll (+1-1)
  • (modified) llvm/test/CodeGen/NVPTX/convert-sm100.ll (+1-1)
  • (modified) llvm/test/CodeGen/NVPTX/convert-sm100a.ll (+3-3)
  • (modified) llvm/test/CodeGen/NVPTX/convert-sm80.ll (+1-1)
  • (modified) llvm/test/CodeGen/NVPTX/convert-sm89.ll (+1-1)
  • (modified) llvm/test/CodeGen/NVPTX/convert-sm90.ll (+1-1)
  • (modified) llvm/test/CodeGen/NVPTX/cp-async-bulk-s2g-sm100.ll (+2-2)
  • (modified) llvm/test/CodeGen/NVPTX/cp-async-bulk-tensor-g2s-1cta.ll (+2-2)
  • (modified) llvm/test/CodeGen/NVPTX/cp-async-bulk-tensor-g2s-2cta.ll (+2-2)
  • (modified) llvm/test/CodeGen/NVPTX/cp-async-bulk-tensor-g2s-cta-sm100.ll (+2-2)
  • (modified) llvm/test/CodeGen/NVPTX/cp-async-bulk-tensor-g2s-cta-sm100a.ll (+2-2)
  • (modified) llvm/test/CodeGen/NVPTX/cp-async-bulk-tensor-g2s-cta-sm90.ll (+2-2)
  • (modified) llvm/test/CodeGen/NVPTX/cp-async-bulk-tensor-g2s-gather4.ll (+2-2)
  • (modified) llvm/test/CodeGen/NVPTX/cp-async-bulk-tensor-g2s-im2colw.ll (+2-2)
  • (modified) llvm/test/CodeGen/NVPTX/cp-async-bulk-tensor-g2s-im2colw128.ll (+2-2)
  • (modified) llvm/test/CodeGen/NVPTX/cp-async-bulk-tensor-g2s.ll (+2-2)
  • (modified) llvm/test/CodeGen/NVPTX/cp-async-bulk-tensor-prefetch-sm100a.ll (+2-2)
  • (modified) llvm/test/CodeGen/NVPTX/cp-async-bulk-tensor-prefetch.ll (+1-1)
  • (modified) llvm/test/CodeGen/NVPTX/cp-async-bulk-tensor-reduce.ll (+1-1)
  • (modified) llvm/test/CodeGen/NVPTX/cp-async-bulk-tensor-s2g-scatter4.ll (+2-2)
  • (modified) llvm/test/CodeGen/NVPTX/cp-async-bulk-tensor-s2g.ll (+2-2)
  • (modified) llvm/test/CodeGen/NVPTX/cp-async-bulk.ll (+2-2)
  • (modified) llvm/test/CodeGen/NVPTX/discard.ll (+1-1)
  • (modified) llvm/test/CodeGen/NVPTX/distributed-shared-cluster.ll (+1-1)
  • (modified) llvm/test/CodeGen/NVPTX/dynamic_stackalloc.ll (+2-2)
  • (modified) llvm/test/CodeGen/NVPTX/elect.ll (+1-1)
  • (modified) llvm/test/CodeGen/NVPTX/f16-abs.ll (+4-4)
  • (modified) llvm/test/CodeGen/NVPTX/f16-ex2.ll (+1-1)
  • (modified) llvm/test/CodeGen/NVPTX/f16-instructions.ll (+4-4)
  • (modified) llvm/test/CodeGen/NVPTX/f16x2-instructions.ll (+3-3)
  • (modified) llvm/test/CodeGen/NVPTX/f32-ex2.ll (+1-1)
  • (modified) llvm/test/CodeGen/NVPTX/f32-lg2.ll (+1-1)
  • (modified) llvm/test/CodeGen/NVPTX/f32x2-instructions.ll (+2-2)
  • (modified) llvm/test/CodeGen/NVPTX/fabs-intrinsics.ll (+1-1)
  • (modified) llvm/test/CodeGen/NVPTX/fence-cluster.ll (+1-1)
  • (modified) llvm/test/CodeGen/NVPTX/fence-nocluster.ll (+3-3)
  • (modified) llvm/test/CodeGen/NVPTX/fence-proxy-tensormap.ll (+1-1)
  • (modified) llvm/test/CodeGen/NVPTX/fexp2.ll (+3-3)
  • (modified) llvm/test/CodeGen/NVPTX/flog2.ll (+1-1)
  • (modified) llvm/test/CodeGen/NVPTX/fma-disable.ll (+2-2)
  • (modified) llvm/test/CodeGen/NVPTX/fminimum-fmaximum.ll (+1-1)
  • (modified) llvm/test/CodeGen/NVPTX/fns.ll (+1-1)
  • (modified) llvm/test/CodeGen/NVPTX/fold-movs.ll (+1-1)
  • (modified) llvm/test/CodeGen/NVPTX/fp-contract-f32x2.ll (+2-2)
  • (modified) llvm/test/CodeGen/NVPTX/global-addrspace.ll (+1-1)
  • (modified) llvm/test/CodeGen/NVPTX/global-ordering.ll (+1-1)
  • (modified) llvm/test/CodeGen/NVPTX/griddepcontrol.ll (+1-1)
  • (modified) llvm/test/CodeGen/NVPTX/i16x2-instructions.ll (+2-2)
  • (modified) llvm/test/CodeGen/NVPTX/idioms.ll (+1-1)
  • (modified) llvm/test/CodeGen/NVPTX/indirect_byval.ll (+1-1)
  • (modified) llvm/test/CodeGen/NVPTX/inline-asm-b128-test1.ll (+1-1)
  • (modified) llvm/test/CodeGen/NVPTX/inline-asm-b128-test2.ll (+1-1)
  • (modified) llvm/test/CodeGen/NVPTX/inline-asm-b128-test3.ll (+1-1)
  • (modified) llvm/test/CodeGen/NVPTX/intrinsic-old.ll (+1-1)
  • (modified) llvm/test/CodeGen/NVPTX/intrinsics-sm90.ll (+1-1)
  • (modified) llvm/test/CodeGen/NVPTX/intrinsics.ll (+2-2)
  • (modified) llvm/test/CodeGen/NVPTX/kernel-param-align.ll (+1-1)
  • (modified) llvm/test/CodeGen/NVPTX/ld-addrspace.ll (+1-1)
  • (modified) llvm/test/CodeGen/NVPTX/ld-generic.ll (+1-1)
  • (modified) llvm/test/CodeGen/NVPTX/ld-st-addrrspace.py (+1-1)
  • (modified) llvm/test/CodeGen/NVPTX/ldg-invariant-256.ll (+2-2)
  • (modified) llvm/test/CodeGen/NVPTX/load-store-256-addressing-invariant.ll (+1-1)
  • (modified) llvm/test/CodeGen/NVPTX/load-store-256-addressing.ll (+1-1)
  • (modified) llvm/test/CodeGen/NVPTX/load-store-scalars.ll (+1-1)
  • (modified) llvm/test/CodeGen/NVPTX/load-store-sm-70.ll (+1-1)
  • (modified) llvm/test/CodeGen/NVPTX/load-store-sm-90.ll (+1-1)
  • (modified) llvm/test/CodeGen/NVPTX/load-store-vectors-256.ll (+2-2)
  • (modified) llvm/test/CodeGen/NVPTX/local-stack-frame.ll (+1-1)
  • (modified) llvm/test/CodeGen/NVPTX/managed.ll (+1-1)
  • (modified) llvm/test/CodeGen/NVPTX/match.ll (+1-1)
  • (modified) llvm/test/CodeGen/NVPTX/math-intrins-sm53-ptx42.ll (+1-1)
  • (modified) llvm/test/CodeGen/NVPTX/math-intrins-sm80-ptx70-autoupgrade.ll (+1-1)
  • (modified) llvm/test/CodeGen/NVPTX/math-intrins-sm80-ptx70.ll (+1-1)
  • (modified) llvm/test/CodeGen/NVPTX/math-intrins-sm86-ptx72-autoupgrade.ll (+1-1)
  • (modified) llvm/test/CodeGen/NVPTX/math-intrins-sm86-ptx72.ll (+1-1)
  • (modified) llvm/test/CodeGen/NVPTX/math-intrins.ll (+2-2)
  • (modified) llvm/test/CodeGen/NVPTX/mbarrier.ll (+2-2)
  • (modified) llvm/test/CodeGen/NVPTX/nanosleep.ll (+1-1)
  • (modified) llvm/test/CodeGen/NVPTX/nofunc.ll (+1-1)
  • (modified) llvm/test/CodeGen/NVPTX/noreturn.ll (+1-1)
  • (modified) llvm/test/CodeGen/NVPTX/nvcl-param-align.ll (+1-1)
  • (modified) llvm/test/CodeGen/NVPTX/packed-aggr.ll (+2-2)
  • (modified) llvm/test/CodeGen/NVPTX/param-overalign.ll (+1-1)
  • (modified) llvm/test/CodeGen/NVPTX/pr126337.ll (+1-1)
  • (modified) llvm/test/CodeGen/NVPTX/pr13291-i1-store.ll (+1-1)
  • (modified) llvm/test/CodeGen/NVPTX/prefetch-inferas-test.ll (+1-1)
  • (modified) llvm/test/CodeGen/NVPTX/prefetch.ll (+1-1)
  • (modified) llvm/test/CodeGen/NVPTX/reduction-intrinsics.ll (+2-2)
  • (modified) llvm/test/CodeGen/NVPTX/redux-sync-f32.ll (+1-1)
  • (modified) llvm/test/CodeGen/NVPTX/redux-sync.ll (+1-1)
  • (modified) llvm/test/CodeGen/NVPTX/reg-types.ll (+1-1)
  • (modified) llvm/test/CodeGen/NVPTX/setmaxnreg-sm100a.ll (+1-1)
  • (modified) llvm/test/CodeGen/NVPTX/setmaxnreg.ll (+1-1)
  • (modified) llvm/test/CodeGen/NVPTX/sext-setcc.ll (+1-1)
  • (modified) llvm/test/CodeGen/NVPTX/shfl-sync-p.ll (+1-1)
  • (modified) llvm/test/CodeGen/NVPTX/shfl-sync.ll (+1-1)
  • (modified) llvm/test/CodeGen/NVPTX/short-ptr.ll (+1-1)
  • (modified) llvm/test/CodeGen/NVPTX/simple-call.ll (+1-1)
  • (modified) llvm/test/CodeGen/NVPTX/st-addrspace.ll (+1-1)
  • (modified) llvm/test/CodeGen/NVPTX/st-generic.ll (+1-1)
  • (modified) llvm/test/CodeGen/NVPTX/st-param-imm.ll (+1-1)
  • (modified) llvm/test/CodeGen/NVPTX/st_bulk.ll (+2-2)
  • (modified) llvm/test/CodeGen/NVPTX/stacksaverestore.ll (+1-1)
  • (modified) llvm/test/CodeGen/NVPTX/surf-tex.py (+1-1)
  • (modified) llvm/test/CodeGen/NVPTX/symbol-naming.ll (+2-2)
  • (modified) llvm/test/CodeGen/NVPTX/szext.ll (+1-1)
  • (modified) llvm/test/CodeGen/NVPTX/tanhf.ll (+1-1)
  • (modified) llvm/test/CodeGen/NVPTX/tcgen05-alloc.ll (+2-2)
  • (modified) llvm/test/CodeGen/NVPTX/tcgen05-commit.ll (+2-2)
  • (modified) llvm/test/CodeGen/NVPTX/tcgen05-cp.ll (+1-1)
  • (modified) llvm/test/CodeGen/NVPTX/tcgen05-fence.ll (+1-1)
  • (modified) llvm/test/CodeGen/NVPTX/tcgen05-ld.ll (+2-2)
  • (modified) llvm/test/CodeGen/NVPTX/tcgen05-shift.ll (+1-1)
  • (modified) llvm/test/CodeGen/NVPTX/tcgen05-st.ll (+2-2)
  • (modified) llvm/test/CodeGen/NVPTX/trunc-setcc.ll (+1-1)
  • (modified) llvm/test/CodeGen/NVPTX/trunc-tofp.ll (+1-1)
  • (modified) llvm/test/CodeGen/NVPTX/unreachable.ll (+1-1)
  • (modified) llvm/test/CodeGen/NVPTX/vaargs.ll (+2-2)
  • (modified) llvm/test/CodeGen/NVPTX/variadics-backend.ll (+1-1)
  • (modified) llvm/test/CodeGen/NVPTX/vector-compare.ll (+1-1)
  • (modified) llvm/test/CodeGen/NVPTX/vector-select.ll (+1-1)
  • (modified) llvm/test/CodeGen/NVPTX/vote.ll (+1-1)
  • (modified) llvm/test/CodeGen/NVPTX/weak-global.ll (+2-2)
  • (modified) llvm/test/CodeGen/NVPTX/wgmma-sm90a-fence.ll (+1-1)
  • (modified) llvm/test/CodeGen/NVPTX/wmma-ptx60-sm70.py (+1-1)
  • (modified) llvm/test/CodeGen/NVPTX/wmma-ptx61-sm70.py (+1-1)
  • (modified) llvm/test/CodeGen/NVPTX/wmma-ptx63-sm72.py (+1-1)
  • (modified) llvm/test/CodeGen/NVPTX/wmma-ptx63-sm75.py (+1-1)
  • (modified) llvm/test/CodeGen/NVPTX/wmma-ptx64-sm70.py (+1-1)
  • (modified) llvm/test/CodeGen/NVPTX/wmma-ptx65-sm75.py (+1-1)
  • (modified) llvm/test/CodeGen/NVPTX/wmma-ptx71-sm80.py (+1-1)
  • (modified) llvm/test/CodeGen/NVPTX/wmma-ptx78-sm90.py (+1-1)
  • (modified) llvm/test/CodeGen/NVPTX/wmma-ptx86-sm100a.py (+1-1)
  • (modified) llvm/test/CodeGen/NVPTX/wmma-ptx86-sm101a.py (+1-1)
  • (modified) llvm/test/CodeGen/NVPTX/wmma-ptx86-sm120a.py (+1-1)
  • (modified) llvm/test/DebugInfo/NVPTX/dbg-value-const-byref.ll (+1-1)
  • (modified) llvm/test/DebugInfo/NVPTX/debug-info.ll (+1-1)
  • (modified) llvm/test/DebugInfo/NVPTX/debug-loc-offset.ll (+1-1)
  • (modified) llvm/test/DebugInfo/NVPTX/debug-name-table.ll (+1-1)
  • (modified) llvm/test/DebugInfo/NVPTX/debug-ptx-symbols.ll (+1-1)
  • (modified) llvm/test/lit.cfg.py (+123-64)
diff --git a/llvm/test/CodeGen/NVPTX/access-non-generic.ll b/llvm/test/CodeGen/NVPTX/access-non-generic.ll
index 601a35288f54d..9eb5048e8adf3 100644
--- a/llvm/test/CodeGen/NVPTX/access-non-generic.ll
+++ b/llvm/test/CodeGen/NVPTX/access-non-generic.ll
@@ -2,7 +2,7 @@
 ; RUN: llc < %s -mtriple=nvptx64 -mcpu=sm_20 | FileCheck %s --check-prefix PTX
 ; RUN: opt -mtriple=nvptx-- < %s -S -passes=infer-address-spaces | FileCheck %s --check-prefix IR
 ; RUN: opt -mtriple=nvptx64-- < %s -S -passes=infer-address-spaces | FileCheck %s --check-prefix IR
-; RUN: %if ptxas && !ptxas-12.0 %{ llc < %s -mtriple=nvptx -mcpu=sm_20 | %ptxas-verify %}
+; RUN: %if ptxas-ptr32 %{ llc < %s -mtriple=nvptx -mcpu=sm_20 | %ptxas-verify %}
 ; RUN: %if ptxas %{ llc < %s -mtriple=nvptx64 -mcpu=sm_20 | %ptxas-verify %}
 
 @array = internal addrspace(3) global [10 x float] zeroinitializer, align 4
diff --git a/llvm/test/CodeGen/NVPTX/activemask.ll b/llvm/test/CodeGen/NVPTX/activemask.ll
index aa3c5819d7f91..18918c514a4cd 100644
--- a/llvm/test/CodeGen/NVPTX/activemask.ll
+++ b/llvm/test/CodeGen/NVPTX/activemask.ll
@@ -1,5 +1,5 @@
 ; RUN: llc < %s -mtriple=nvptx64 -O2 -mcpu=sm_52 -mattr=+ptx62 | FileCheck %s
-; RUN: %if ptxas %{ llc < %s -mtriple=nvptx64 -mcpu=sm_52 -mattr=+ptx62 | %ptxas-verify %}
+; RUN: %if ptxas-isa-6.2 %{ llc < %s -mtriple=nvptx64 -mcpu=sm_52 -mattr=+ptx62 | %ptxas-verify %}
 
 declare i32 @llvm.nvvm.activemask()
 
diff --git a/llvm/test/CodeGen/NVPTX/addrspacecast-ptx64.ll b/llvm/test/CodeGen/NVPTX/addrspacecast-ptx64.ll
index 00b17896d2c9e..929196fcb00a8 100644
--- a/llvm/test/CodeGen/NVPTX/addrspacecast-ptx64.ll
+++ b/llvm/test/CodeGen/NVPTX/addrspacecast-ptx64.ll
@@ -1,8 +1,8 @@
 ; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 5
 ; RUN: llc -O0 < %s -mtriple=nvptx64 -mcpu=sm_90 -mattr=+ptx78 | FileCheck %s -check-prefixes=NOPTRCONV
 ; RUN: llc -O0 < %s -mtriple=nvptx64 -mcpu=sm_90 -mattr=+ptx78 --nvptx-short-ptr | FileCheck %s -check-prefixes=PTRCONV
-; RUN: %if ptxas-12.8 %{ llc -O0 < %s -mtriple=nvptx64 -mcpu=sm_90 -mattr=+ptx78 | %ptxas-verify -arch=sm_90 %}
-; RUN: %if ptxas-12.8 %{ llc -O0 < %s -mtriple=nvptx64 -mcpu=sm_90 -mattr=+ptx78 --nvptx-short-ptr | %ptxas-verify -arch=sm_90 %}
+; RUN: %if ptxas-sm_90 && ptxas-isa-7.8 %{ llc -O0 < %s -mtriple=nvptx64 -mcpu=sm_90 -mattr=+ptx78 | %ptxas-verify -arch=sm_90 %}
+; RUN: %if ptxas-sm_90 && ptxas-isa-7.8 %{ llc -O0 < %s -mtriple=nvptx64 -mcpu=sm_90 -mattr=+ptx78 --nvptx-short-ptr | %ptxas-verify -arch=sm_90 %}
 
 ; ALL-LABEL: conv_shared_cluster_to_generic
 define i32 @conv_shared_cluster_to_generic(ptr addrspace(7) %ptr) {
diff --git a/llvm/test/CodeGen/NVPTX/addrspacecast.ll b/llvm/test/CodeGen/NVPTX/addrspacecast.ll
index 86008a1b70058..e7212ce71ca09 100644
--- a/llvm/test/CodeGen/NVPTX/addrspacecast.ll
+++ b/llvm/test/CodeGen/NVPTX/addrspacecast.ll
@@ -1,7 +1,7 @@
 ; RUN: llc -O0 < %s -mtriple=nvptx -mcpu=sm_20 | FileCheck %s -check-prefixes=ALL,CLS32
 ; RUN: llc -O0 < %s -mtriple=nvptx64 -mcpu=sm_20 | FileCheck %s -check-prefixes=ALL,NOPTRCONV,CLS64
 ; RUN: llc -O0 < %s -mtriple=nvptx64 -mcpu=sm_20 --nvptx-short-ptr | FileCheck %s -check-prefixes=ALL,PTRCONV,CLS64
-; RUN: %if ptxas && !ptxas-12.0 %{ llc -O0 < %s -mtriple=nvptx -mcpu=sm_20 | %ptxas-verify %}
+; RUN: %if ptxas-ptr32 %{ llc -O0 < %s -mtriple=nvptx -mcpu=sm_20 | %ptxas-verify %}
 ; RUN: %if ptxas %{ llc -O0 < %s -mtriple=nvptx64 -mcpu=sm_20 | %ptxas-verify %}
 ; RUN: %if ptxas %{ llc -O0 < %s -mtriple=nvptx64 -mcpu=sm_20 --nvptx-short-ptr | %ptxas-verify %}
 
diff --git a/llvm/test/CodeGen/NVPTX/alias.ll b/llvm/test/CodeGen/NVPTX/alias.ll
index 01761c21ab103..d5d0c76816b99 100644
--- a/llvm/test/CodeGen/NVPTX/alias.ll
+++ b/llvm/test/CodeGen/NVPTX/alias.ll
@@ -1,5 +1,5 @@
 ; RUN: llc < %s -mtriple=nvptx64 -mcpu=sm_30 -mattr=+ptx64 | FileCheck %s
-; RUN: %if ptxas %{ llc < %s -mtriple=nvptx64 -mcpu=sm_30 -mattr=+ptx64 | %ptxas-verify %}
+; RUN: %if ptxas-isa-6.4 %{ llc < %s -mtriple=nvptx64 -mcpu=sm_30 -mattr=+ptx64 | %ptxas-verify %}
 
 define i32 @a() { ret i32 0 }
 @b = internal alias i32 (), ptr @a
diff --git a/llvm/test/CodeGen/NVPTX/annotations.ll b/llvm/test/CodeGen/NVPTX/annotations.ll
index 5360e8988777b..8972953e91451 100644
--- a/llvm/test/CodeGen/NVPTX/annotations.ll
+++ b/llvm/test/CodeGen/NVPTX/annotations.ll
@@ -1,6 +1,6 @@
 ; RUN: llc < %s -mtriple=nvptx -mcpu=sm_20 | FileCheck %s
 ; RUN: llc < %s -mtriple=nvptx64 -mcpu=sm_20 | FileCheck %s
-; RUN: %if ptxas && !ptxas-12.0 %{ llc < %s -mtriple=nvptx -mcpu=sm_20 | %ptxas-verify %}
+; RUN: %if ptxas-ptr32 %{ llc < %s -mtriple=nvptx -mcpu=sm_20 | %ptxas-verify %}
 ; RUN: %if ptxas %{ llc < %s -mtriple=nvptx64 -mcpu=sm_20 | %ptxas-verify %}
 
 @texture = internal addrspace(1) global i64 0, align 8
diff --git a/llvm/test/CodeGen/NVPTX/applypriority.ll b/llvm/test/CodeGen/NVPTX/applypriority.ll
index 23b1bda9a32bf..92092a704933a 100644
--- a/llvm/test/CodeGen/NVPTX/applypriority.ll
+++ b/llvm/test/CodeGen/NVPTX/applypriority.ll
@@ -1,6 +1,6 @@
 ; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 5
 ; RUN: llc < %s -mtriple=nvptx64 -mcpu=sm_80 -mattr=+ptx74| FileCheck --check-prefixes=CHECK-PTX64 %s
-; RUN: %if ptxas-11.4 %{ llc < %s -mtriple=nvptx64 -mcpu=sm_80 -mattr=+ptx74| %ptxas-verify -arch=sm_80 %}
+; RUN: %if ptxas-sm_80 && ptxas-isa-7.4 %{ llc < %s -mtriple=nvptx64 -mcpu=sm_80 -mattr=+ptx74| %ptxas-verify -arch=sm_80 %}
 
 target triple = "nvptx64-nvidia-cuda"
 
diff --git a/llvm/test/CodeGen/NVPTX/arithmetic-fp-sm20.ll b/llvm/test/CodeGen/NVPTX/arithmetic-fp-sm20.ll
index ce71d3a78c0de..500ff4f541b23 100644
--- a/llvm/test/CodeGen/NVPTX/arithmetic-fp-sm20.ll
+++ b/llvm/test/CodeGen/NVPTX/arithmetic-fp-sm20.ll
@@ -1,6 +1,6 @@
 ; RUN: llc < %s -mtriple=nvptx -mcpu=sm_20 -fp-contract=fast | FileCheck %s
 ; RUN: llc < %s -mtriple=nvptx64 -mcpu=sm_20 -fp-contract=fast | FileCheck %s
-; RUN: %if ptxas && !ptxas-12.0 %{ llc < %s -mtriple=nvptx -mcpu=sm_20 -fp-contract=fast | %ptxas-verify %}
+; RUN: %if ptxas-ptr32 %{ llc < %s -mtriple=nvptx -mcpu=sm_20 -fp-contract=fast | %ptxas-verify %}
 ; RUN: %if ptxas %{ llc < %s -mtriple=nvptx64 -mcpu=sm_20 -fp-contract=fast | %ptxas-verify %}
 
 ;; These tests should run for all targets
diff --git a/llvm/test/CodeGen/NVPTX/arithmetic-int.ll b/llvm/test/CodeGen/NVPTX/arithmetic-int.ll
index 1fbfd0a987d7a..5e02a7d74aa34 100644
--- a/llvm/test/CodeGen/NVPTX/arithmetic-int.ll
+++ b/llvm/test/CodeGen/NVPTX/arithmetic-int.ll
@@ -1,6 +1,6 @@
 ; RUN: llc < %s -mtriple=nvptx -mcpu=sm_20 | FileCheck %s
 ; RUN: llc < %s -mtriple=nvptx64 -mcpu=sm_20 | FileCheck %s
-; RUN: %if ptxas && !ptxas-12.0 %{ llc < %s -mtriple=nvptx -mcpu=sm_20 | %ptxas-verify %}
+; RUN: %if ptxas-ptr32 %{ llc < %s -mtriple=nvptx -mcpu=sm_20 | %ptxas-verify %}
 ; RUN: %if ptxas %{ llc < %s -mtriple=nvptx64 -mcpu=sm_20 | %ptxas-verify %}
 
 ;; These tests should run for all targets
diff --git a/llvm/test/CodeGen/NVPTX/async-copy.ll b/llvm/test/CodeGen/NVPTX/async-copy.ll
index cefb8ede9fa58..0d8e23047af04 100644
--- a/llvm/test/CodeGen/NVPTX/async-copy.ll
+++ b/llvm/test/CodeGen/NVPTX/async-copy.ll
@@ -1,7 +1,7 @@
 ; RUN: llc < %s -mtriple=nvptx -mcpu=sm_80 -mattr=+ptx70 | FileCheck -check-prefixes=CHECK,CHECK_PTX32 %s
 ; RUN: llc < %s -mtriple=nvptx64 -mcpu=sm_80 -mattr=+ptx70 | FileCheck -check-prefixes=CHECK,CHECK_PTX64 %s
-; RUN: %if ptxas-11.0 && ! ptxas-12.0 %{ llc < %s -mtriple=nvptx -mcpu=sm_80 -mattr=+ptx70 | %ptxas-verify -arch=sm_80 %}
-; RUN: %if ptxas-11.0 %{ llc < %s -mtriple=nvptx64 -mcpu=sm_80 -mattr=+ptx70 | %ptxas-verify -arch=sm_80 %}
+; RUN: %if ptxas-sm_80 && ptxas-isa-7.0 && ptxas-ptr32 %{ llc < %s -mtriple=nvptx -mcpu=sm_80 -mattr=+ptx70 | %ptxas-verify -arch=sm_80 %}
+; RUN: %if ptxas-sm_80 && ptxas-isa-7.0 %{ llc < %s -mtriple=nvptx64 -mcpu=sm_80 -mattr=+ptx70 | %ptxas-verify -arch=sm_80 %}
 
 declare void @llvm.nvvm.cp.async.wait.group(i32)
 
diff --git a/llvm/test/CodeGen/NVPTX/atomicrmw-expand.ll b/llvm/test/CodeGen/NVPTX/atomicrmw-expand.ll
index 94b3f0a2e1c3e..88fae7a3f78a0 100644
--- a/llvm/test/CodeGen/NVPTX/atomicrmw-expand.ll
+++ b/llvm/test/CodeGen/NVPTX/atomicrmw-expand.ll
@@ -1,7 +1,7 @@
 ; RUN: llc < %s -mtriple=nvptx64 -mcpu=sm_30 | FileCheck %s --check-prefixes=ALL,SM30
 ; RUN: llc < %s -mtriple=nvptx64 -mcpu=sm_60 | FileCheck %s --check-prefixes=ALL,SM60
 ; RUN: %if ptxas %{ llc < %s -mtriple=nvptx64 -mcpu=sm_30 | %ptxas-verify %}
-; RUN: %if ptxas %{ llc < %s -mtriple=nvptx64 -mcpu=sm_60 | %ptxas-verify -arch=sm_60 %}
+; RUN: %if ptxas-sm_60 %{ llc < %s -mtriple=nvptx64 -mcpu=sm_60 | %ptxas-verify -arch=sm_60 %}
 
 ; CHECK-LABEL: fadd_double
 define void @fadd_double(ptr %0, double %1) {
diff --git a/llvm/test/CodeGen/NVPTX/atomics-b128.ll b/llvm/test/CodeGen/NVPTX/atomics-b128.ll
index fa1f2b4107b7f..7cae7ebb642b3 100644
--- a/llvm/test/CodeGen/NVPTX/atomics-b128.ll
+++ b/llvm/test/CodeGen/NVPTX/atomics-b128.ll
@@ -2,7 +2,7 @@
 ; RUN: not llc < %s -mcpu=sm_90 -mattr=+ptx82 2>&1 | FileCheck %s --check-prefix=ERROR
 ; RUN: not llc < %s -mcpu=sm_80 -mattr=+ptx84 2>&1 | FileCheck %s --check-prefix=ERROR
 ; RUN: llc < %s -mcpu=sm_90 -mattr=+ptx84 | FileCheck %s --check-prefix=CHECK
-; RUN: %if ptxas-12.4 %{ llc < %s -mcpu=sm_90 -mattr=+ptx84 | %ptxas-verify -arch=sm_90 %}
+; RUN: %if ptxas-sm_90 && ptxas-isa-8.4 %{ llc < %s -mcpu=sm_90 -mattr=+ptx84 | %ptxas-verify -arch=sm_90 %}
 
 ;; TODO: Update cmpxchg.py so that it can automatically generate the IR for
 ;;       these test cases.
diff --git a/llvm/test/CodeGen/NVPTX/atomics-sm60.ll b/llvm/test/CodeGen/NVPTX/atomics-sm60.ll
index 2e11323d1b3e1..ae10526ec8365 100644
--- a/llvm/test/CodeGen/NVPTX/atomics-sm60.ll
+++ b/llvm/test/CodeGen/NVPTX/atomics-sm60.ll
@@ -1,7 +1,7 @@
 ; RUN: llc < %s -mtriple=nvptx -mcpu=sm_60 | FileCheck %s
 ; RUN: llc < %s -mtriple=nvptx64 -mcpu=sm_60 | FileCheck %s
-; RUN: %if ptxas && !ptxas-12.0 %{ llc < %s -mtriple=nvptx -mcpu=sm_60 | %ptxas-verify -arch=sm_60 %}
-; RUN: %if ptxas %{ llc < %s -mtriple=nvptx64 -mcpu=sm_60 | %ptxas-verify -arch=sm_60 %}
+; RUN: %if ptxas-sm_60 && ptxas-ptr32 %{ llc < %s -mtriple=nvptx -mcpu=sm_60 | %ptxas-verify -arch=sm_60 %}
+; RUN: %if ptxas-sm_60 %{ llc < %s -mtriple=nvptx64 -mcpu=sm_60 | %ptxas-verify -arch=sm_60 %}
 
 ; CHECK-LABEL: .func test(
 define void @test(ptr %dp0, ptr addrspace(1) %dp1, ptr addrspace(3) %dp3, double %d) {
diff --git a/llvm/test/CodeGen/NVPTX/atomics-sm70.ll b/llvm/test/CodeGen/NVPTX/atomics-sm70.ll
index 5f4856acb317c..e2762bac45a35 100644
--- a/llvm/test/CodeGen/NVPTX/atomics-sm70.ll
+++ b/llvm/test/CodeGen/NVPTX/atomics-sm70.ll
@@ -2,9 +2,9 @@
 ; RUN: llc < %s -mtriple=nvptx -mcpu=sm_70 -mattr=+ptx63 | FileCheck %s --check-prefixes=CHECK
 ; RUN: llc < %s -mtriple=nvptx64 -mcpu=sm_70 -mattr=+ptx63 | FileCheck %s --check-prefixes=CHECK64
 ; RUN: llc < %s -mtriple=nvptx -mcpu=sm_70 -mattr=+ptx62 | FileCheck %s --check-prefixes=CHECKPTX62
-; RUN: %if ptxas && !ptxas-12.0 %{ llc < %s -mtriple=nvptx -mcpu=sm_70 -mattr=+ptx63 | %ptxas-verify -arch=sm_70 %}
-; RUN: %if ptxas %{ llc < %s -mtriple=nvptx64 -mcpu=sm_70 -mattr=+ptx63 | %ptxas-verify -arch=sm_70 %}
-; RUN: %if ptxas && !ptxas-12.0 %{ llc < %s -mtriple=nvptx -mcpu=sm_70 -mattr=+ptx62 | %ptxas-verify -arch=sm_70 %}
+; RUN: %if ptxas-sm_70 && ptxas-isa-6.3 && ptxas-ptr32 %{ llc < %s -mtriple=nvptx -mcpu=sm_70 -mattr=+ptx63 | %ptxas-verify -arch=sm_70 %}
+; RUN: %if ptxas-sm_70 && ptxas-isa-6.3 %{ llc < %s -mtriple=nvptx64 -mcpu=sm_70 -mattr=+ptx63 | %ptxas-verify -arch=sm_70 %}
+; RUN: %if ptxas-sm_70 && ptxas-isa-6.2 && ptxas-ptr32 %{ llc < %s -mtriple=nvptx -mcpu=sm_70 -mattr=+ptx62 | %ptxas-verify -arch=sm_70 %}
 
 target triple = "nvptx64-nvidia-cuda"
 
diff --git a/llvm/test/CodeGen/NVPTX/atomics-sm90.ll b/llvm/test/CodeGen/NVPTX/atomics-sm90.ll
index e560d4386c20d..e6c6a73eef14d 100644
--- a/llvm/test/CodeGen/NVPTX/atomics-sm90.ll
+++ b/llvm/test/CodeGen/NVPTX/atomics-sm90.ll
@@ -2,9 +2,9 @@
 ; RUN: llc < %s -mtriple=nvptx -mcpu=sm_90 -mattr=+ptx78 | FileCheck %s --check-prefixes=CHECK
 ; RUN: llc < %s -mtriple=nvptx64 -mcpu=sm_90 -mattr=+ptx78 | FileCheck %s --check-prefixes=CHECK64
 ; RUN: llc < %s -mtriple=nvptx -mcpu=sm_86 -mattr=+ptx71 | FileCheck %s --check-prefixes=CHECKPTX71
-; RUN: %if ptxas && !ptxas-12.0 %{ llc < %s -mtriple=nvptx -mcpu=sm_90 -mattr=+ptx78 | %ptxas-verify -arch=sm_90 %}
-; RUN: %if ptxas %{ llc < %s -mtriple=nvptx64 -mcpu=sm_90 -mattr=+ptx78 | %ptxas-verify -arch=sm_90 %}
-; RUN: %if ptxas && !ptxas-12.0 %{ llc < %s -mtriple=nvptx -mcpu=sm_86 -mattr=+ptx71 | %ptxas-verify -arch=sm_86 %}
+; RUN: %if ptxas-sm_90 && ptxas-isa-7.8 && ptxas-ptr32 %{ llc < %s -mtriple=nvptx -mcpu=sm_90 -mattr=+ptx78 | %ptxas-verify -arch=sm_90 %}
+; RUN: %if ptxas-sm_90 && ptxas-isa-7.8 %{ llc < %s -mtriple=nvptx64 -mcpu=sm_90 -mattr=+ptx78 | %ptxas-verify -arch=sm_90 %}
+; RUN: %if ptxas-sm_86 && ptxas-isa-7.1 && ptxas-ptr32 %{ llc < %s -mtriple=nvptx -mcpu=sm_86 -mattr=+ptx71 | %ptxas-verify -arch=sm_86 %}
 
 target triple = "nvptx64-nvidia-cuda"
 
diff --git a/llvm/test/CodeGen/NVPTX/atomics-with-scope.ll b/llvm/test/CodeGen/NVPTX/atomics-with-scope.ll
index e6636d706b49d..d406f9c1e33f8 100644
--- a/llvm/test/CodeGen/NVPTX/atomics-with-scope.ll
+++ b/llvm/test/CodeGen/NVPTX/atomics-with-scope.ll
@@ -1,7 +1,7 @@
 ; RUN: llc < %s -mtriple=nvptx -mcpu=sm_60 | FileCheck %s -check-prefixes=CHECK,CHECK32
 ; RUN: llc < %s -mtriple=nvptx64 -mcpu=sm_60 | FileCheck %s
-; RUN: %if ptxas && !ptxas-12.0 %{ llc < %s -mtriple=nvptx -mcpu=sm_60 | %ptxas-verify -arch=sm_60 %}
-; RUN: %if ptxas %{ llc < %s -mtriple=nvptx64 -mcpu=sm_60 | %ptxas-verify -arch=sm_60 %}
+; RUN: %if ptxas-sm_60 && ptxas-ptr32 %{ llc < %s -mtriple=nvptx -mcpu=sm_60 | %ptxas-verify -arch=sm_60 %}
+; RUN: %if ptxas-sm_60 %{ llc < %s -mtriple=nvptx64 -mcpu=sm_60 | %ptxas-verify -arch=sm_60 %}
 
 ; CHECK-LABEL: .func test_atomics_scope(
 define void @test_atomics_scope(ptr %fp, float %f,
diff --git a/llvm/test/CodeGen/NVPTX/b52037.ll b/llvm/test/CodeGen/NVPTX/b52037.ll
index b6317dfb28597..268a8972ebd22 100644
--- a/llvm/test/CodeGen/NVPTX/b52037.ll
+++ b/llvm/test/CodeGen/NVPTX/b52037.ll
@@ -4,7 +4,7 @@
 ; https://bugs.llvm.org/show_bug.cgi?id=52037 for the gory details.
 ;
 ; RUN: llc -mtriple=nvptx64-nvidia-cuda -mcpu=sm_70 -O3 -o - %s | FileCheck %s
-; RUN: %if ptxas %{ llc -mtriple=nvptx64-nvidia-cuda -mcpu=sm_70 -O3 -o - %s | %ptxas-verify -arch=sm_70 %}
+; RUN: %if ptxas-sm_70 %{ llc -mtriple=nvptx64-nvidia-cuda -mcpu=sm_70 -O3 -o - %s | %ptxas-verify -arch=sm_70 %}
 
 ; CHECK-LABEL: .visible .entry barney(
 ; CHECK-NOT:  .local{{.*}}__local_depot
diff --git a/llvm/test/CodeGen/NVPTX/barrier.ll b/llvm/test/CodeGen/NVPTX/barrier.ll
index a3b0d21f098f2..f2d6f2354038f 100644
--- a/llvm/test/CodeGen/NVPTX/barrier.ll
+++ b/llvm/test/CodeGen/NVPTX/barrier.ll
@@ -1,6 +1,6 @@
 ; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 5
 ; RUN: llc < %s -mtriple=nvptx64 -mcpu=sm_30 -mattr=+ptx60 | FileCheck %s
-; RUN: %if ptxas %{ llc < %s -mtriple=nvptx64 -mcpu=sm_30 -mattr=+ptx60 | %ptxas-verify %}
+; RUN: %if ptxas-isa-6.0 %{ llc < %s -mtriple=nvptx64 -mcpu=sm_30 -mattr=+ptx60 | %ptxas-verify %}
 
 declare void @llvm.nvvm.bar.warp.sync(i32)
 declare void @llvm.nvvm.barrier.cta.sync.aligned.all(i32)
diff --git a/llvm/test/CodeGen/NVPTX/bf16-instructions.ll b/llvm/test/CodeGen/NVPTX/bf16-instructions.ll
index a386e4292777b..4d930cd9e57c0 100644
--- a/llvm/test/CodeGen/NVPTX/bf16-instructions.ll
+++ b/llvm/test/CodeGen/NVPTX/bf16-instructions.ll
@@ -3,9 +3,9 @@
 ; RUN: llc < %s -mtriple=nvptx64 -mcpu=sm_80 -mattr=+ptx71 | FileCheck --check-prefixes=CHECK,SM80 %s
 ; RUN: llc < %s -mtriple=nvptx64 -mcpu=sm_80 -mattr=+ptx71 -denormal-fp-math-f32=preserve-sign | FileCheck --check-prefixes=CHECK,SM80-FTZ %s
 ; RUN: llc < %s -mtriple=nvptx64 -mcpu=sm_90 -mattr=+ptx78 | FileCheck --check-prefixes=CHECK,SM90 %s
-; RUN: %if ptxas-11.8 %{ llc < %s -mtriple=nvptx64 -mcpu=sm_80 -mattr=+ptx71 | %ptxas-verify -arch=sm_80 %}
-; RUN: %if ptxas-11.8 %{ llc < %s -mtriple=nvptx64 -mcpu=sm_80 -mattr=+ptx71 -denormal-fp-math-f32=preserve-sign | %ptxas-verify -arch=sm_80 %}
-; RUN: %if ptxas-11.8 %{ llc < %s -mtriple=nvptx64 -mcpu=sm_90 -mattr=+ptx78 | %ptxas-verify -arch=sm_90 %}
+; RUN: %if ptxas-sm_80 && ptxas-isa-7.1 %{ llc < %s -mtriple=nvptx64 -mcpu=sm_80 -mattr=+ptx71 | %ptxas-verify -arch=sm_80 %}
+; RUN: %if ptxas-sm_80 && ptxas-isa-7.1 %{ llc < %s -mtriple=nvptx64 -mcpu=sm_80 -mattr=+ptx71 -denormal-fp-math-f32=preserve-sign | %ptxas-verify -arch=sm_80 %}
+; RUN: %if ptxas-sm_90 && ptxas-isa-7.8 %{ llc < %s -mtriple=nvptx64 -mcpu=sm_90 -mattr=+ptx78 | %ptxas-verify -arch=sm_90 %}
 
 target triple = "nvptx64-nvidia-cuda"
 
diff --git a/llvm/test/CodeGen/NVPTX/bf16x2-instructions-approx.ll b/llvm/test/CodeGen/NVPTX/bf16x2-instructions-approx.ll
index e1d4ef1073a78..2c4aa6b3f8f30 100644
--- a/llvm/test/CodeGen/NVPTX/bf16x2-instructions-approx.ll
+++ b/llvm/test/CodeGen/NVPTX/bf16x2-instructions-approx.ll
@@ -1,6 +1,6 @@
 ; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 5
 ; RUN: llc < %s -mtriple=nvptx64 -mcpu=sm_80 -mattr=+ptx71 | FileCheck --check-prefixes=CHECK %s
-; RUN: %if ptxas-11.8 %{ llc < %s -mtriple=nvptx64 -mcpu=sm_80 -mattr=+ptx71 | %ptxas-verify -arch=sm_80 %}
+; RUN: %if ptxas-sm_80 && ptxas-isa-7.1 %{ llc < %s -mtriple=nvptx64 -mcpu=sm_80 -mattr=+ptx71 | %ptxas-verify -arch=sm_80 %}
 
 target datalayout = "e-m:o-i64:64-i128:128-n32:64-S128"
 
diff --git a/llvm/test/CodeGen/NVPTX/bf16x2-instructions.ll b/llvm/test/CodeGen/NVPTX/bf16x2-instructions.ll
index 6c4ae1937e158..3c6fb4b7517b8 100644
--- a/llvm/test/CodeGen/NVPTX/bf16x2-instructions.ll
+++ b/llvm/test/CodeGen/NVPTX/bf16x2-instructions.ll
@@ -1,8 +1,8 @@
 ; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 5
 ; RUN: llc < %s -mtriple=nvptx64 -mcpu=sm_80 -mattr=+ptx71 | FileCheck --check-prefixes=CHECK,SM80 %s
 ; RUN: llc < %s -mtriple=nvptx64 -mcpu=sm_90 -mattr=+ptx78 | FileCheck --check-prefixes=CHECK,SM90 %s
-; RUN: %if ptxas-11.8 %{ llc < %s -mtriple=nvptx64 -mcpu=sm_80 -mattr=+ptx71 | %ptxas-verify -arch=sm_80 %}
-; RUN: %if ptxas-11.8 %{ llc < %s -mtriple=nvptx64 -mcpu=sm_90 -mattr=+ptx78 | %ptxas-verify -arch=sm_90 %}
+; RUN: %if ptxas-sm_80 && ptxas-isa-7.1 %{ llc < %s -mtriple=nvptx64 -mcpu=sm_80 -mattr=+ptx71 | %ptxas-verify -arch=sm_80 %}
+; RUN: %if ptxas-sm_90 && ptxas-isa-7.8 %{ llc < %s -mtriple=nvptx64 -mcpu=sm_90 -mattr=+ptx78 | %ptxas-verify -arch=sm_90 %}
 
 target datalayout = "e-m:o-i64:64-i128:128-n32:64-S128"
 
diff --git a/llvm/test/CodeGen/NVPTX/bmsk.ll b/llvm/test/CodeGen/NVPTX/bmsk.ll
index d5b278657bd52..dee5a76f4c9d9 100644
--- a/llvm/test/CodeGen/NVPTX/bmsk.ll
+++ b/llvm/test/CodeGen/NVPTX/bmsk.ll
@@ -1,6 +1,6 @@
 ; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 5
 ; RUN: llc -o - < %s -mcpu=sm_70 -mattr=+ptx76 | FileCheck %s
-; RUN: %if ptxas %{ llc < %s -mcpu=sm_70 -mattr=+ptx76 | %ptxas-verify -arch=sm_70 %}
+; RUN: %if ptxas-sm_70 && ptxas-isa-7.6 %{ llc < %s -mcpu=sm_70 -mattr=+ptx76 | %ptxas-verify -arch=sm_70 %}
 
 target triple = "nvptx64-unknown-cuda"
 
diff --git a/llvm/test/CodeGen/NVPTX/bswap.ll b/llvm/test/CodeGen/NVPTX/bswap.ll
index 0d1d6da4ba2b6..e3d1c80922609 100644
--- a/llvm/test/CodeGen/NVPTX/bswap.ll
+++ b/llvm/test/CodeGen/NVPTX/bswap.ll
@@ -1,9 +1,9 @@
 ; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 4
 ; RUN: llc < %s -mtriple=nvptx64 -mcpu=sm_20 -mattr=+ptx70 | FileCheck -check-prefixes CHECK,PTX70 %s
 ; RUN: %if ptxas %{ llc < %s -mtriple=nvptx64 -mcpu=sm_20 | %ptxas-verify %}
-; RUN: %if ptxas-11.0 %{ llc < %s -mtriple=nvptx64 -mcpu=sm_20 -mattr=+ptx70 | %ptxas-verify %}
+; RUN: %if ptxas-isa-7.0 %{ llc < %s -mtriple=nvptx64 -mcpu=sm_20 -mattr=+ptx70 | %ptxas-verify %}
 ; RUN: llc < %s -mtriple=nvptx64 -mcpu=sm_20 -mattr=+ptx71 | FileCheck -check-prefixes CHECK,PTX71 %s
-; RUN: %if ptxas-11.0 %{ llc < %s -mtriple=nvptx64 -mcpu=sm_20 -mattr=+ptx71 | %ptxas-verify %}
+; RUN: %if ptxas-isa-7.1 %{ llc < %s -mtriple=nvptx64 -mcpu=sm_20 -mattr=+ptx71 | %ptxas-verify %}
 
 target triple = "nvptx64-nvidia-cuda"
 
diff --git a/llvm/test/CodeGen/NVPTX/byval-arg-vectorize.ll ...
[truncated]

@llvmbot
Copy link
Member

llvmbot commented Aug 29, 2025

@llvm/pr-subscribers-backend-nvptx

Author: Justin Fargnoli (justinfargnoli)

Changes

Reland #154439. Reverted with #155914.

Account for:

  • Windows ptxas outputting error messages to stdout instead of stderr: 10613ed
  • Tests in llvm/test/DebugInfo/NVPTX: 56535ff

Patch is 161.94 KiB, truncated to 20.00 KiB below, full version: https://github.com/llvm/llvm-project/pull/155923.diff

180 Files Affected:

  • (modified) llvm/test/CodeGen/NVPTX/access-non-generic.ll (+1-1)
  • (modified) llvm/test/CodeGen/NVPTX/activemask.ll (+1-1)
  • (modified) llvm/test/CodeGen/NVPTX/addrspacecast-ptx64.ll (+2-2)
  • (modified) llvm/test/CodeGen/NVPTX/addrspacecast.ll (+1-1)
  • (modified) llvm/test/CodeGen/NVPTX/alias.ll (+1-1)
  • (modified) llvm/test/CodeGen/NVPTX/annotations.ll (+1-1)
  • (modified) llvm/test/CodeGen/NVPTX/applypriority.ll (+1-1)
  • (modified) llvm/test/CodeGen/NVPTX/arithmetic-fp-sm20.ll (+1-1)
  • (modified) llvm/test/CodeGen/NVPTX/arithmetic-int.ll (+1-1)
  • (modified) llvm/test/CodeGen/NVPTX/async-copy.ll (+2-2)
  • (modified) llvm/test/CodeGen/NVPTX/atomicrmw-expand.ll (+1-1)
  • (modified) llvm/test/CodeGen/NVPTX/atomics-b128.ll (+1-1)
  • (modified) llvm/test/CodeGen/NVPTX/atomics-sm60.ll (+2-2)
  • (modified) llvm/test/CodeGen/NVPTX/atomics-sm70.ll (+3-3)
  • (modified) llvm/test/CodeGen/NVPTX/atomics-sm90.ll (+3-3)
  • (modified) llvm/test/CodeGen/NVPTX/atomics-with-scope.ll (+2-2)
  • (modified) llvm/test/CodeGen/NVPTX/b52037.ll (+1-1)
  • (modified) llvm/test/CodeGen/NVPTX/barrier.ll (+1-1)
  • (modified) llvm/test/CodeGen/NVPTX/bf16-instructions.ll (+3-3)
  • (modified) llvm/test/CodeGen/NVPTX/bf16x2-instructions-approx.ll (+1-1)
  • (modified) llvm/test/CodeGen/NVPTX/bf16x2-instructions.ll (+2-2)
  • (modified) llvm/test/CodeGen/NVPTX/bmsk.ll (+1-1)
  • (modified) llvm/test/CodeGen/NVPTX/bswap.ll (+2-2)
  • (modified) llvm/test/CodeGen/NVPTX/byval-arg-vectorize.ll (+1-1)
  • (modified) llvm/test/CodeGen/NVPTX/byval-const-global.ll (+1-1)
  • (modified) llvm/test/CodeGen/NVPTX/calling-conv.ll (+1-1)
  • (modified) llvm/test/CodeGen/NVPTX/cluster-dim.ll (+1-1)
  • (modified) llvm/test/CodeGen/NVPTX/clusterlaunchcontrol-multicast.ll (+6-6)
  • (modified) llvm/test/CodeGen/NVPTX/clusterlaunchcontrol.ll (+2-2)
  • (modified) llvm/test/CodeGen/NVPTX/cmpxchg-sm60.ll (+1-1)
  • (modified) llvm/test/CodeGen/NVPTX/cmpxchg-sm70.ll (+1-1)
  • (modified) llvm/test/CodeGen/NVPTX/cmpxchg-sm90.ll (+1-1)
  • (modified) llvm/test/CodeGen/NVPTX/cmpxchg.ll (+1-1)
  • (modified) llvm/test/CodeGen/NVPTX/combine-mad.ll (+1-1)
  • (modified) llvm/test/CodeGen/NVPTX/combine-min-max.ll (+2-2)
  • (modified) llvm/test/CodeGen/NVPTX/common-linkage.ll (+2-2)
  • (modified) llvm/test/CodeGen/NVPTX/compare-int.ll (+1-1)
  • (modified) llvm/test/CodeGen/NVPTX/convert-call-to-indirect.ll (+1-1)
  • (modified) llvm/test/CodeGen/NVPTX/convert-fp.ll (+1-1)
  • (modified) llvm/test/CodeGen/NVPTX/convert-int-sm20.ll (+1-1)
  • (modified) llvm/test/CodeGen/NVPTX/convert-sm100.ll (+1-1)
  • (modified) llvm/test/CodeGen/NVPTX/convert-sm100a.ll (+3-3)
  • (modified) llvm/test/CodeGen/NVPTX/convert-sm80.ll (+1-1)
  • (modified) llvm/test/CodeGen/NVPTX/convert-sm89.ll (+1-1)
  • (modified) llvm/test/CodeGen/NVPTX/convert-sm90.ll (+1-1)
  • (modified) llvm/test/CodeGen/NVPTX/cp-async-bulk-s2g-sm100.ll (+2-2)
  • (modified) llvm/test/CodeGen/NVPTX/cp-async-bulk-tensor-g2s-1cta.ll (+2-2)
  • (modified) llvm/test/CodeGen/NVPTX/cp-async-bulk-tensor-g2s-2cta.ll (+2-2)
  • (modified) llvm/test/CodeGen/NVPTX/cp-async-bulk-tensor-g2s-cta-sm100.ll (+2-2)
  • (modified) llvm/test/CodeGen/NVPTX/cp-async-bulk-tensor-g2s-cta-sm100a.ll (+2-2)
  • (modified) llvm/test/CodeGen/NVPTX/cp-async-bulk-tensor-g2s-cta-sm90.ll (+2-2)
  • (modified) llvm/test/CodeGen/NVPTX/cp-async-bulk-tensor-g2s-gather4.ll (+2-2)
  • (modified) llvm/test/CodeGen/NVPTX/cp-async-bulk-tensor-g2s-im2colw.ll (+2-2)
  • (modified) llvm/test/CodeGen/NVPTX/cp-async-bulk-tensor-g2s-im2colw128.ll (+2-2)
  • (modified) llvm/test/CodeGen/NVPTX/cp-async-bulk-tensor-g2s.ll (+2-2)
  • (modified) llvm/test/CodeGen/NVPTX/cp-async-bulk-tensor-prefetch-sm100a.ll (+2-2)
  • (modified) llvm/test/CodeGen/NVPTX/cp-async-bulk-tensor-prefetch.ll (+1-1)
  • (modified) llvm/test/CodeGen/NVPTX/cp-async-bulk-tensor-reduce.ll (+1-1)
  • (modified) llvm/test/CodeGen/NVPTX/cp-async-bulk-tensor-s2g-scatter4.ll (+2-2)
  • (modified) llvm/test/CodeGen/NVPTX/cp-async-bulk-tensor-s2g.ll (+2-2)
  • (modified) llvm/test/CodeGen/NVPTX/cp-async-bulk.ll (+2-2)
  • (modified) llvm/test/CodeGen/NVPTX/discard.ll (+1-1)
  • (modified) llvm/test/CodeGen/NVPTX/distributed-shared-cluster.ll (+1-1)
  • (modified) llvm/test/CodeGen/NVPTX/dynamic_stackalloc.ll (+2-2)
  • (modified) llvm/test/CodeGen/NVPTX/elect.ll (+1-1)
  • (modified) llvm/test/CodeGen/NVPTX/f16-abs.ll (+4-4)
  • (modified) llvm/test/CodeGen/NVPTX/f16-ex2.ll (+1-1)
  • (modified) llvm/test/CodeGen/NVPTX/f16-instructions.ll (+4-4)
  • (modified) llvm/test/CodeGen/NVPTX/f16x2-instructions.ll (+3-3)
  • (modified) llvm/test/CodeGen/NVPTX/f32-ex2.ll (+1-1)
  • (modified) llvm/test/CodeGen/NVPTX/f32-lg2.ll (+1-1)
  • (modified) llvm/test/CodeGen/NVPTX/f32x2-instructions.ll (+2-2)
  • (modified) llvm/test/CodeGen/NVPTX/fabs-intrinsics.ll (+1-1)
  • (modified) llvm/test/CodeGen/NVPTX/fence-cluster.ll (+1-1)
  • (modified) llvm/test/CodeGen/NVPTX/fence-nocluster.ll (+3-3)
  • (modified) llvm/test/CodeGen/NVPTX/fence-proxy-tensormap.ll (+1-1)
  • (modified) llvm/test/CodeGen/NVPTX/fexp2.ll (+3-3)
  • (modified) llvm/test/CodeGen/NVPTX/flog2.ll (+1-1)
  • (modified) llvm/test/CodeGen/NVPTX/fma-disable.ll (+2-2)
  • (modified) llvm/test/CodeGen/NVPTX/fminimum-fmaximum.ll (+1-1)
  • (modified) llvm/test/CodeGen/NVPTX/fns.ll (+1-1)
  • (modified) llvm/test/CodeGen/NVPTX/fold-movs.ll (+1-1)
  • (modified) llvm/test/CodeGen/NVPTX/fp-contract-f32x2.ll (+2-2)
  • (modified) llvm/test/CodeGen/NVPTX/global-addrspace.ll (+1-1)
  • (modified) llvm/test/CodeGen/NVPTX/global-ordering.ll (+1-1)
  • (modified) llvm/test/CodeGen/NVPTX/griddepcontrol.ll (+1-1)
  • (modified) llvm/test/CodeGen/NVPTX/i16x2-instructions.ll (+2-2)
  • (modified) llvm/test/CodeGen/NVPTX/idioms.ll (+1-1)
  • (modified) llvm/test/CodeGen/NVPTX/indirect_byval.ll (+1-1)
  • (modified) llvm/test/CodeGen/NVPTX/inline-asm-b128-test1.ll (+1-1)
  • (modified) llvm/test/CodeGen/NVPTX/inline-asm-b128-test2.ll (+1-1)
  • (modified) llvm/test/CodeGen/NVPTX/inline-asm-b128-test3.ll (+1-1)
  • (modified) llvm/test/CodeGen/NVPTX/intrinsic-old.ll (+1-1)
  • (modified) llvm/test/CodeGen/NVPTX/intrinsics-sm90.ll (+1-1)
  • (modified) llvm/test/CodeGen/NVPTX/intrinsics.ll (+2-2)
  • (modified) llvm/test/CodeGen/NVPTX/kernel-param-align.ll (+1-1)
  • (modified) llvm/test/CodeGen/NVPTX/ld-addrspace.ll (+1-1)
  • (modified) llvm/test/CodeGen/NVPTX/ld-generic.ll (+1-1)
  • (modified) llvm/test/CodeGen/NVPTX/ld-st-addrrspace.py (+1-1)
  • (modified) llvm/test/CodeGen/NVPTX/ldg-invariant-256.ll (+2-2)
  • (modified) llvm/test/CodeGen/NVPTX/load-store-256-addressing-invariant.ll (+1-1)
  • (modified) llvm/test/CodeGen/NVPTX/load-store-256-addressing.ll (+1-1)
  • (modified) llvm/test/CodeGen/NVPTX/load-store-scalars.ll (+1-1)
  • (modified) llvm/test/CodeGen/NVPTX/load-store-sm-70.ll (+1-1)
  • (modified) llvm/test/CodeGen/NVPTX/load-store-sm-90.ll (+1-1)
  • (modified) llvm/test/CodeGen/NVPTX/load-store-vectors-256.ll (+2-2)
  • (modified) llvm/test/CodeGen/NVPTX/local-stack-frame.ll (+1-1)
  • (modified) llvm/test/CodeGen/NVPTX/managed.ll (+1-1)
  • (modified) llvm/test/CodeGen/NVPTX/match.ll (+1-1)
  • (modified) llvm/test/CodeGen/NVPTX/math-intrins-sm53-ptx42.ll (+1-1)
  • (modified) llvm/test/CodeGen/NVPTX/math-intrins-sm80-ptx70-autoupgrade.ll (+1-1)
  • (modified) llvm/test/CodeGen/NVPTX/math-intrins-sm80-ptx70.ll (+1-1)
  • (modified) llvm/test/CodeGen/NVPTX/math-intrins-sm86-ptx72-autoupgrade.ll (+1-1)
  • (modified) llvm/test/CodeGen/NVPTX/math-intrins-sm86-ptx72.ll (+1-1)
  • (modified) llvm/test/CodeGen/NVPTX/math-intrins.ll (+2-2)
  • (modified) llvm/test/CodeGen/NVPTX/mbarrier.ll (+2-2)
  • (modified) llvm/test/CodeGen/NVPTX/nanosleep.ll (+1-1)
  • (modified) llvm/test/CodeGen/NVPTX/nofunc.ll (+1-1)
  • (modified) llvm/test/CodeGen/NVPTX/noreturn.ll (+1-1)
  • (modified) llvm/test/CodeGen/NVPTX/nvcl-param-align.ll (+1-1)
  • (modified) llvm/test/CodeGen/NVPTX/packed-aggr.ll (+2-2)
  • (modified) llvm/test/CodeGen/NVPTX/param-overalign.ll (+1-1)
  • (modified) llvm/test/CodeGen/NVPTX/pr126337.ll (+1-1)
  • (modified) llvm/test/CodeGen/NVPTX/pr13291-i1-store.ll (+1-1)
  • (modified) llvm/test/CodeGen/NVPTX/prefetch-inferas-test.ll (+1-1)
  • (modified) llvm/test/CodeGen/NVPTX/prefetch.ll (+1-1)
  • (modified) llvm/test/CodeGen/NVPTX/reduction-intrinsics.ll (+2-2)
  • (modified) llvm/test/CodeGen/NVPTX/redux-sync-f32.ll (+1-1)
  • (modified) llvm/test/CodeGen/NVPTX/redux-sync.ll (+1-1)
  • (modified) llvm/test/CodeGen/NVPTX/reg-types.ll (+1-1)
  • (modified) llvm/test/CodeGen/NVPTX/setmaxnreg-sm100a.ll (+1-1)
  • (modified) llvm/test/CodeGen/NVPTX/setmaxnreg.ll (+1-1)
  • (modified) llvm/test/CodeGen/NVPTX/sext-setcc.ll (+1-1)
  • (modified) llvm/test/CodeGen/NVPTX/shfl-sync-p.ll (+1-1)
  • (modified) llvm/test/CodeGen/NVPTX/shfl-sync.ll (+1-1)
  • (modified) llvm/test/CodeGen/NVPTX/short-ptr.ll (+1-1)
  • (modified) llvm/test/CodeGen/NVPTX/simple-call.ll (+1-1)
  • (modified) llvm/test/CodeGen/NVPTX/st-addrspace.ll (+1-1)
  • (modified) llvm/test/CodeGen/NVPTX/st-generic.ll (+1-1)
  • (modified) llvm/test/CodeGen/NVPTX/st-param-imm.ll (+1-1)
  • (modified) llvm/test/CodeGen/NVPTX/st_bulk.ll (+2-2)
  • (modified) llvm/test/CodeGen/NVPTX/stacksaverestore.ll (+1-1)
  • (modified) llvm/test/CodeGen/NVPTX/surf-tex.py (+1-1)
  • (modified) llvm/test/CodeGen/NVPTX/symbol-naming.ll (+2-2)
  • (modified) llvm/test/CodeGen/NVPTX/szext.ll (+1-1)
  • (modified) llvm/test/CodeGen/NVPTX/tanhf.ll (+1-1)
  • (modified) llvm/test/CodeGen/NVPTX/tcgen05-alloc.ll (+2-2)
  • (modified) llvm/test/CodeGen/NVPTX/tcgen05-commit.ll (+2-2)
  • (modified) llvm/test/CodeGen/NVPTX/tcgen05-cp.ll (+1-1)
  • (modified) llvm/test/CodeGen/NVPTX/tcgen05-fence.ll (+1-1)
  • (modified) llvm/test/CodeGen/NVPTX/tcgen05-ld.ll (+2-2)
  • (modified) llvm/test/CodeGen/NVPTX/tcgen05-shift.ll (+1-1)
  • (modified) llvm/test/CodeGen/NVPTX/tcgen05-st.ll (+2-2)
  • (modified) llvm/test/CodeGen/NVPTX/trunc-setcc.ll (+1-1)
  • (modified) llvm/test/CodeGen/NVPTX/trunc-tofp.ll (+1-1)
  • (modified) llvm/test/CodeGen/NVPTX/unreachable.ll (+1-1)
  • (modified) llvm/test/CodeGen/NVPTX/vaargs.ll (+2-2)
  • (modified) llvm/test/CodeGen/NVPTX/variadics-backend.ll (+1-1)
  • (modified) llvm/test/CodeGen/NVPTX/vector-compare.ll (+1-1)
  • (modified) llvm/test/CodeGen/NVPTX/vector-select.ll (+1-1)
  • (modified) llvm/test/CodeGen/NVPTX/vote.ll (+1-1)
  • (modified) llvm/test/CodeGen/NVPTX/weak-global.ll (+2-2)
  • (modified) llvm/test/CodeGen/NVPTX/wgmma-sm90a-fence.ll (+1-1)
  • (modified) llvm/test/CodeGen/NVPTX/wmma-ptx60-sm70.py (+1-1)
  • (modified) llvm/test/CodeGen/NVPTX/wmma-ptx61-sm70.py (+1-1)
  • (modified) llvm/test/CodeGen/NVPTX/wmma-ptx63-sm72.py (+1-1)
  • (modified) llvm/test/CodeGen/NVPTX/wmma-ptx63-sm75.py (+1-1)
  • (modified) llvm/test/CodeGen/NVPTX/wmma-ptx64-sm70.py (+1-1)
  • (modified) llvm/test/CodeGen/NVPTX/wmma-ptx65-sm75.py (+1-1)
  • (modified) llvm/test/CodeGen/NVPTX/wmma-ptx71-sm80.py (+1-1)
  • (modified) llvm/test/CodeGen/NVPTX/wmma-ptx78-sm90.py (+1-1)
  • (modified) llvm/test/CodeGen/NVPTX/wmma-ptx86-sm100a.py (+1-1)
  • (modified) llvm/test/CodeGen/NVPTX/wmma-ptx86-sm101a.py (+1-1)
  • (modified) llvm/test/CodeGen/NVPTX/wmma-ptx86-sm120a.py (+1-1)
  • (modified) llvm/test/DebugInfo/NVPTX/dbg-value-const-byref.ll (+1-1)
  • (modified) llvm/test/DebugInfo/NVPTX/debug-info.ll (+1-1)
  • (modified) llvm/test/DebugInfo/NVPTX/debug-loc-offset.ll (+1-1)
  • (modified) llvm/test/DebugInfo/NVPTX/debug-name-table.ll (+1-1)
  • (modified) llvm/test/DebugInfo/NVPTX/debug-ptx-symbols.ll (+1-1)
  • (modified) llvm/test/lit.cfg.py (+123-64)
diff --git a/llvm/test/CodeGen/NVPTX/access-non-generic.ll b/llvm/test/CodeGen/NVPTX/access-non-generic.ll
index 601a35288f54d..9eb5048e8adf3 100644
--- a/llvm/test/CodeGen/NVPTX/access-non-generic.ll
+++ b/llvm/test/CodeGen/NVPTX/access-non-generic.ll
@@ -2,7 +2,7 @@
 ; RUN: llc < %s -mtriple=nvptx64 -mcpu=sm_20 | FileCheck %s --check-prefix PTX
 ; RUN: opt -mtriple=nvptx-- < %s -S -passes=infer-address-spaces | FileCheck %s --check-prefix IR
 ; RUN: opt -mtriple=nvptx64-- < %s -S -passes=infer-address-spaces | FileCheck %s --check-prefix IR
-; RUN: %if ptxas && !ptxas-12.0 %{ llc < %s -mtriple=nvptx -mcpu=sm_20 | %ptxas-verify %}
+; RUN: %if ptxas-ptr32 %{ llc < %s -mtriple=nvptx -mcpu=sm_20 | %ptxas-verify %}
 ; RUN: %if ptxas %{ llc < %s -mtriple=nvptx64 -mcpu=sm_20 | %ptxas-verify %}
 
 @array = internal addrspace(3) global [10 x float] zeroinitializer, align 4
diff --git a/llvm/test/CodeGen/NVPTX/activemask.ll b/llvm/test/CodeGen/NVPTX/activemask.ll
index aa3c5819d7f91..18918c514a4cd 100644
--- a/llvm/test/CodeGen/NVPTX/activemask.ll
+++ b/llvm/test/CodeGen/NVPTX/activemask.ll
@@ -1,5 +1,5 @@
 ; RUN: llc < %s -mtriple=nvptx64 -O2 -mcpu=sm_52 -mattr=+ptx62 | FileCheck %s
-; RUN: %if ptxas %{ llc < %s -mtriple=nvptx64 -mcpu=sm_52 -mattr=+ptx62 | %ptxas-verify %}
+; RUN: %if ptxas-isa-6.2 %{ llc < %s -mtriple=nvptx64 -mcpu=sm_52 -mattr=+ptx62 | %ptxas-verify %}
 
 declare i32 @llvm.nvvm.activemask()
 
diff --git a/llvm/test/CodeGen/NVPTX/addrspacecast-ptx64.ll b/llvm/test/CodeGen/NVPTX/addrspacecast-ptx64.ll
index 00b17896d2c9e..929196fcb00a8 100644
--- a/llvm/test/CodeGen/NVPTX/addrspacecast-ptx64.ll
+++ b/llvm/test/CodeGen/NVPTX/addrspacecast-ptx64.ll
@@ -1,8 +1,8 @@
 ; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 5
 ; RUN: llc -O0 < %s -mtriple=nvptx64 -mcpu=sm_90 -mattr=+ptx78 | FileCheck %s -check-prefixes=NOPTRCONV
 ; RUN: llc -O0 < %s -mtriple=nvptx64 -mcpu=sm_90 -mattr=+ptx78 --nvptx-short-ptr | FileCheck %s -check-prefixes=PTRCONV
-; RUN: %if ptxas-12.8 %{ llc -O0 < %s -mtriple=nvptx64 -mcpu=sm_90 -mattr=+ptx78 | %ptxas-verify -arch=sm_90 %}
-; RUN: %if ptxas-12.8 %{ llc -O0 < %s -mtriple=nvptx64 -mcpu=sm_90 -mattr=+ptx78 --nvptx-short-ptr | %ptxas-verify -arch=sm_90 %}
+; RUN: %if ptxas-sm_90 && ptxas-isa-7.8 %{ llc -O0 < %s -mtriple=nvptx64 -mcpu=sm_90 -mattr=+ptx78 | %ptxas-verify -arch=sm_90 %}
+; RUN: %if ptxas-sm_90 && ptxas-isa-7.8 %{ llc -O0 < %s -mtriple=nvptx64 -mcpu=sm_90 -mattr=+ptx78 --nvptx-short-ptr | %ptxas-verify -arch=sm_90 %}
 
 ; ALL-LABEL: conv_shared_cluster_to_generic
 define i32 @conv_shared_cluster_to_generic(ptr addrspace(7) %ptr) {
diff --git a/llvm/test/CodeGen/NVPTX/addrspacecast.ll b/llvm/test/CodeGen/NVPTX/addrspacecast.ll
index 86008a1b70058..e7212ce71ca09 100644
--- a/llvm/test/CodeGen/NVPTX/addrspacecast.ll
+++ b/llvm/test/CodeGen/NVPTX/addrspacecast.ll
@@ -1,7 +1,7 @@
 ; RUN: llc -O0 < %s -mtriple=nvptx -mcpu=sm_20 | FileCheck %s -check-prefixes=ALL,CLS32
 ; RUN: llc -O0 < %s -mtriple=nvptx64 -mcpu=sm_20 | FileCheck %s -check-prefixes=ALL,NOPTRCONV,CLS64
 ; RUN: llc -O0 < %s -mtriple=nvptx64 -mcpu=sm_20 --nvptx-short-ptr | FileCheck %s -check-prefixes=ALL,PTRCONV,CLS64
-; RUN: %if ptxas && !ptxas-12.0 %{ llc -O0 < %s -mtriple=nvptx -mcpu=sm_20 | %ptxas-verify %}
+; RUN: %if ptxas-ptr32 %{ llc -O0 < %s -mtriple=nvptx -mcpu=sm_20 | %ptxas-verify %}
 ; RUN: %if ptxas %{ llc -O0 < %s -mtriple=nvptx64 -mcpu=sm_20 | %ptxas-verify %}
 ; RUN: %if ptxas %{ llc -O0 < %s -mtriple=nvptx64 -mcpu=sm_20 --nvptx-short-ptr | %ptxas-verify %}
 
diff --git a/llvm/test/CodeGen/NVPTX/alias.ll b/llvm/test/CodeGen/NVPTX/alias.ll
index 01761c21ab103..d5d0c76816b99 100644
--- a/llvm/test/CodeGen/NVPTX/alias.ll
+++ b/llvm/test/CodeGen/NVPTX/alias.ll
@@ -1,5 +1,5 @@
 ; RUN: llc < %s -mtriple=nvptx64 -mcpu=sm_30 -mattr=+ptx64 | FileCheck %s
-; RUN: %if ptxas %{ llc < %s -mtriple=nvptx64 -mcpu=sm_30 -mattr=+ptx64 | %ptxas-verify %}
+; RUN: %if ptxas-isa-6.4 %{ llc < %s -mtriple=nvptx64 -mcpu=sm_30 -mattr=+ptx64 | %ptxas-verify %}
 
 define i32 @a() { ret i32 0 }
 @b = internal alias i32 (), ptr @a
diff --git a/llvm/test/CodeGen/NVPTX/annotations.ll b/llvm/test/CodeGen/NVPTX/annotations.ll
index 5360e8988777b..8972953e91451 100644
--- a/llvm/test/CodeGen/NVPTX/annotations.ll
+++ b/llvm/test/CodeGen/NVPTX/annotations.ll
@@ -1,6 +1,6 @@
 ; RUN: llc < %s -mtriple=nvptx -mcpu=sm_20 | FileCheck %s
 ; RUN: llc < %s -mtriple=nvptx64 -mcpu=sm_20 | FileCheck %s
-; RUN: %if ptxas && !ptxas-12.0 %{ llc < %s -mtriple=nvptx -mcpu=sm_20 | %ptxas-verify %}
+; RUN: %if ptxas-ptr32 %{ llc < %s -mtriple=nvptx -mcpu=sm_20 | %ptxas-verify %}
 ; RUN: %if ptxas %{ llc < %s -mtriple=nvptx64 -mcpu=sm_20 | %ptxas-verify %}
 
 @texture = internal addrspace(1) global i64 0, align 8
diff --git a/llvm/test/CodeGen/NVPTX/applypriority.ll b/llvm/test/CodeGen/NVPTX/applypriority.ll
index 23b1bda9a32bf..92092a704933a 100644
--- a/llvm/test/CodeGen/NVPTX/applypriority.ll
+++ b/llvm/test/CodeGen/NVPTX/applypriority.ll
@@ -1,6 +1,6 @@
 ; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 5
 ; RUN: llc < %s -mtriple=nvptx64 -mcpu=sm_80 -mattr=+ptx74| FileCheck --check-prefixes=CHECK-PTX64 %s
-; RUN: %if ptxas-11.4 %{ llc < %s -mtriple=nvptx64 -mcpu=sm_80 -mattr=+ptx74| %ptxas-verify -arch=sm_80 %}
+; RUN: %if ptxas-sm_80 && ptxas-isa-7.4 %{ llc < %s -mtriple=nvptx64 -mcpu=sm_80 -mattr=+ptx74| %ptxas-verify -arch=sm_80 %}
 
 target triple = "nvptx64-nvidia-cuda"
 
diff --git a/llvm/test/CodeGen/NVPTX/arithmetic-fp-sm20.ll b/llvm/test/CodeGen/NVPTX/arithmetic-fp-sm20.ll
index ce71d3a78c0de..500ff4f541b23 100644
--- a/llvm/test/CodeGen/NVPTX/arithmetic-fp-sm20.ll
+++ b/llvm/test/CodeGen/NVPTX/arithmetic-fp-sm20.ll
@@ -1,6 +1,6 @@
 ; RUN: llc < %s -mtriple=nvptx -mcpu=sm_20 -fp-contract=fast | FileCheck %s
 ; RUN: llc < %s -mtriple=nvptx64 -mcpu=sm_20 -fp-contract=fast | FileCheck %s
-; RUN: %if ptxas && !ptxas-12.0 %{ llc < %s -mtriple=nvptx -mcpu=sm_20 -fp-contract=fast | %ptxas-verify %}
+; RUN: %if ptxas-ptr32 %{ llc < %s -mtriple=nvptx -mcpu=sm_20 -fp-contract=fast | %ptxas-verify %}
 ; RUN: %if ptxas %{ llc < %s -mtriple=nvptx64 -mcpu=sm_20 -fp-contract=fast | %ptxas-verify %}
 
 ;; These tests should run for all targets
diff --git a/llvm/test/CodeGen/NVPTX/arithmetic-int.ll b/llvm/test/CodeGen/NVPTX/arithmetic-int.ll
index 1fbfd0a987d7a..5e02a7d74aa34 100644
--- a/llvm/test/CodeGen/NVPTX/arithmetic-int.ll
+++ b/llvm/test/CodeGen/NVPTX/arithmetic-int.ll
@@ -1,6 +1,6 @@
 ; RUN: llc < %s -mtriple=nvptx -mcpu=sm_20 | FileCheck %s
 ; RUN: llc < %s -mtriple=nvptx64 -mcpu=sm_20 | FileCheck %s
-; RUN: %if ptxas && !ptxas-12.0 %{ llc < %s -mtriple=nvptx -mcpu=sm_20 | %ptxas-verify %}
+; RUN: %if ptxas-ptr32 %{ llc < %s -mtriple=nvptx -mcpu=sm_20 | %ptxas-verify %}
 ; RUN: %if ptxas %{ llc < %s -mtriple=nvptx64 -mcpu=sm_20 | %ptxas-verify %}
 
 ;; These tests should run for all targets
diff --git a/llvm/test/CodeGen/NVPTX/async-copy.ll b/llvm/test/CodeGen/NVPTX/async-copy.ll
index cefb8ede9fa58..0d8e23047af04 100644
--- a/llvm/test/CodeGen/NVPTX/async-copy.ll
+++ b/llvm/test/CodeGen/NVPTX/async-copy.ll
@@ -1,7 +1,7 @@
 ; RUN: llc < %s -mtriple=nvptx -mcpu=sm_80 -mattr=+ptx70 | FileCheck -check-prefixes=CHECK,CHECK_PTX32 %s
 ; RUN: llc < %s -mtriple=nvptx64 -mcpu=sm_80 -mattr=+ptx70 | FileCheck -check-prefixes=CHECK,CHECK_PTX64 %s
-; RUN: %if ptxas-11.0 && ! ptxas-12.0 %{ llc < %s -mtriple=nvptx -mcpu=sm_80 -mattr=+ptx70 | %ptxas-verify -arch=sm_80 %}
-; RUN: %if ptxas-11.0 %{ llc < %s -mtriple=nvptx64 -mcpu=sm_80 -mattr=+ptx70 | %ptxas-verify -arch=sm_80 %}
+; RUN: %if ptxas-sm_80 && ptxas-isa-7.0 && ptxas-ptr32 %{ llc < %s -mtriple=nvptx -mcpu=sm_80 -mattr=+ptx70 | %ptxas-verify -arch=sm_80 %}
+; RUN: %if ptxas-sm_80 && ptxas-isa-7.0 %{ llc < %s -mtriple=nvptx64 -mcpu=sm_80 -mattr=+ptx70 | %ptxas-verify -arch=sm_80 %}
 
 declare void @llvm.nvvm.cp.async.wait.group(i32)
 
diff --git a/llvm/test/CodeGen/NVPTX/atomicrmw-expand.ll b/llvm/test/CodeGen/NVPTX/atomicrmw-expand.ll
index 94b3f0a2e1c3e..88fae7a3f78a0 100644
--- a/llvm/test/CodeGen/NVPTX/atomicrmw-expand.ll
+++ b/llvm/test/CodeGen/NVPTX/atomicrmw-expand.ll
@@ -1,7 +1,7 @@
 ; RUN: llc < %s -mtriple=nvptx64 -mcpu=sm_30 | FileCheck %s --check-prefixes=ALL,SM30
 ; RUN: llc < %s -mtriple=nvptx64 -mcpu=sm_60 | FileCheck %s --check-prefixes=ALL,SM60
 ; RUN: %if ptxas %{ llc < %s -mtriple=nvptx64 -mcpu=sm_30 | %ptxas-verify %}
-; RUN: %if ptxas %{ llc < %s -mtriple=nvptx64 -mcpu=sm_60 | %ptxas-verify -arch=sm_60 %}
+; RUN: %if ptxas-sm_60 %{ llc < %s -mtriple=nvptx64 -mcpu=sm_60 | %ptxas-verify -arch=sm_60 %}
 
 ; CHECK-LABEL: fadd_double
 define void @fadd_double(ptr %0, double %1) {
diff --git a/llvm/test/CodeGen/NVPTX/atomics-b128.ll b/llvm/test/CodeGen/NVPTX/atomics-b128.ll
index fa1f2b4107b7f..7cae7ebb642b3 100644
--- a/llvm/test/CodeGen/NVPTX/atomics-b128.ll
+++ b/llvm/test/CodeGen/NVPTX/atomics-b128.ll
@@ -2,7 +2,7 @@
 ; RUN: not llc < %s -mcpu=sm_90 -mattr=+ptx82 2>&1 | FileCheck %s --check-prefix=ERROR
 ; RUN: not llc < %s -mcpu=sm_80 -mattr=+ptx84 2>&1 | FileCheck %s --check-prefix=ERROR
 ; RUN: llc < %s -mcpu=sm_90 -mattr=+ptx84 | FileCheck %s --check-prefix=CHECK
-; RUN: %if ptxas-12.4 %{ llc < %s -mcpu=sm_90 -mattr=+ptx84 | %ptxas-verify -arch=sm_90 %}
+; RUN: %if ptxas-sm_90 && ptxas-isa-8.4 %{ llc < %s -mcpu=sm_90 -mattr=+ptx84 | %ptxas-verify -arch=sm_90 %}
 
 ;; TODO: Update cmpxchg.py so that it can automatically generate the IR for
 ;;       these test cases.
diff --git a/llvm/test/CodeGen/NVPTX/atomics-sm60.ll b/llvm/test/CodeGen/NVPTX/atomics-sm60.ll
index 2e11323d1b3e1..ae10526ec8365 100644
--- a/llvm/test/CodeGen/NVPTX/atomics-sm60.ll
+++ b/llvm/test/CodeGen/NVPTX/atomics-sm60.ll
@@ -1,7 +1,7 @@
 ; RUN: llc < %s -mtriple=nvptx -mcpu=sm_60 | FileCheck %s
 ; RUN: llc < %s -mtriple=nvptx64 -mcpu=sm_60 | FileCheck %s
-; RUN: %if ptxas && !ptxas-12.0 %{ llc < %s -mtriple=nvptx -mcpu=sm_60 | %ptxas-verify -arch=sm_60 %}
-; RUN: %if ptxas %{ llc < %s -mtriple=nvptx64 -mcpu=sm_60 | %ptxas-verify -arch=sm_60 %}
+; RUN: %if ptxas-sm_60 && ptxas-ptr32 %{ llc < %s -mtriple=nvptx -mcpu=sm_60 | %ptxas-verify -arch=sm_60 %}
+; RUN: %if ptxas-sm_60 %{ llc < %s -mtriple=nvptx64 -mcpu=sm_60 | %ptxas-verify -arch=sm_60 %}
 
 ; CHECK-LABEL: .func test(
 define void @test(ptr %dp0, ptr addrspace(1) %dp1, ptr addrspace(3) %dp3, double %d) {
diff --git a/llvm/test/CodeGen/NVPTX/atomics-sm70.ll b/llvm/test/CodeGen/NVPTX/atomics-sm70.ll
index 5f4856acb317c..e2762bac45a35 100644
--- a/llvm/test/CodeGen/NVPTX/atomics-sm70.ll
+++ b/llvm/test/CodeGen/NVPTX/atomics-sm70.ll
@@ -2,9 +2,9 @@
 ; RUN: llc < %s -mtriple=nvptx -mcpu=sm_70 -mattr=+ptx63 | FileCheck %s --check-prefixes=CHECK
 ; RUN: llc < %s -mtriple=nvptx64 -mcpu=sm_70 -mattr=+ptx63 | FileCheck %s --check-prefixes=CHECK64
 ; RUN: llc < %s -mtriple=nvptx -mcpu=sm_70 -mattr=+ptx62 | FileCheck %s --check-prefixes=CHECKPTX62
-; RUN: %if ptxas && !ptxas-12.0 %{ llc < %s -mtriple=nvptx -mcpu=sm_70 -mattr=+ptx63 | %ptxas-verify -arch=sm_70 %}
-; RUN: %if ptxas %{ llc < %s -mtriple=nvptx64 -mcpu=sm_70 -mattr=+ptx63 | %ptxas-verify -arch=sm_70 %}
-; RUN: %if ptxas && !ptxas-12.0 %{ llc < %s -mtriple=nvptx -mcpu=sm_70 -mattr=+ptx62 | %ptxas-verify -arch=sm_70 %}
+; RUN: %if ptxas-sm_70 && ptxas-isa-6.3 && ptxas-ptr32 %{ llc < %s -mtriple=nvptx -mcpu=sm_70 -mattr=+ptx63 | %ptxas-verify -arch=sm_70 %}
+; RUN: %if ptxas-sm_70 && ptxas-isa-6.3 %{ llc < %s -mtriple=nvptx64 -mcpu=sm_70 -mattr=+ptx63 | %ptxas-verify -arch=sm_70 %}
+; RUN: %if ptxas-sm_70 && ptxas-isa-6.2 && ptxas-ptr32 %{ llc < %s -mtriple=nvptx -mcpu=sm_70 -mattr=+ptx62 | %ptxas-verify -arch=sm_70 %}
 
 target triple = "nvptx64-nvidia-cuda"
 
diff --git a/llvm/test/CodeGen/NVPTX/atomics-sm90.ll b/llvm/test/CodeGen/NVPTX/atomics-sm90.ll
index e560d4386c20d..e6c6a73eef14d 100644
--- a/llvm/test/CodeGen/NVPTX/atomics-sm90.ll
+++ b/llvm/test/CodeGen/NVPTX/atomics-sm90.ll
@@ -2,9 +2,9 @@
 ; RUN: llc < %s -mtriple=nvptx -mcpu=sm_90 -mattr=+ptx78 | FileCheck %s --check-prefixes=CHECK
 ; RUN: llc < %s -mtriple=nvptx64 -mcpu=sm_90 -mattr=+ptx78 | FileCheck %s --check-prefixes=CHECK64
 ; RUN: llc < %s -mtriple=nvptx -mcpu=sm_86 -mattr=+ptx71 | FileCheck %s --check-prefixes=CHECKPTX71
-; RUN: %if ptxas && !ptxas-12.0 %{ llc < %s -mtriple=nvptx -mcpu=sm_90 -mattr=+ptx78 | %ptxas-verify -arch=sm_90 %}
-; RUN: %if ptxas %{ llc < %s -mtriple=nvptx64 -mcpu=sm_90 -mattr=+ptx78 | %ptxas-verify -arch=sm_90 %}
-; RUN: %if ptxas && !ptxas-12.0 %{ llc < %s -mtriple=nvptx -mcpu=sm_86 -mattr=+ptx71 | %ptxas-verify -arch=sm_86 %}
+; RUN: %if ptxas-sm_90 && ptxas-isa-7.8 && ptxas-ptr32 %{ llc < %s -mtriple=nvptx -mcpu=sm_90 -mattr=+ptx78 | %ptxas-verify -arch=sm_90 %}
+; RUN: %if ptxas-sm_90 && ptxas-isa-7.8 %{ llc < %s -mtriple=nvptx64 -mcpu=sm_90 -mattr=+ptx78 | %ptxas-verify -arch=sm_90 %}
+; RUN: %if ptxas-sm_86 && ptxas-isa-7.1 && ptxas-ptr32 %{ llc < %s -mtriple=nvptx -mcpu=sm_86 -mattr=+ptx71 | %ptxas-verify -arch=sm_86 %}
 
 target triple = "nvptx64-nvidia-cuda"
 
diff --git a/llvm/test/CodeGen/NVPTX/atomics-with-scope.ll b/llvm/test/CodeGen/NVPTX/atomics-with-scope.ll
index e6636d706b49d..d406f9c1e33f8 100644
--- a/llvm/test/CodeGen/NVPTX/atomics-with-scope.ll
+++ b/llvm/test/CodeGen/NVPTX/atomics-with-scope.ll
@@ -1,7 +1,7 @@
 ; RUN: llc < %s -mtriple=nvptx -mcpu=sm_60 | FileCheck %s -check-prefixes=CHECK,CHECK32
 ; RUN: llc < %s -mtriple=nvptx64 -mcpu=sm_60 | FileCheck %s
-; RUN: %if ptxas && !ptxas-12.0 %{ llc < %s -mtriple=nvptx -mcpu=sm_60 | %ptxas-verify -arch=sm_60 %}
-; RUN: %if ptxas %{ llc < %s -mtriple=nvptx64 -mcpu=sm_60 | %ptxas-verify -arch=sm_60 %}
+; RUN: %if ptxas-sm_60 && ptxas-ptr32 %{ llc < %s -mtriple=nvptx -mcpu=sm_60 | %ptxas-verify -arch=sm_60 %}
+; RUN: %if ptxas-sm_60 %{ llc < %s -mtriple=nvptx64 -mcpu=sm_60 | %ptxas-verify -arch=sm_60 %}
 
 ; CHECK-LABEL: .func test_atomics_scope(
 define void @test_atomics_scope(ptr %fp, float %f,
diff --git a/llvm/test/CodeGen/NVPTX/b52037.ll b/llvm/test/CodeGen/NVPTX/b52037.ll
index b6317dfb28597..268a8972ebd22 100644
--- a/llvm/test/CodeGen/NVPTX/b52037.ll
+++ b/llvm/test/CodeGen/NVPTX/b52037.ll
@@ -4,7 +4,7 @@
 ; https://bugs.llvm.org/show_bug.cgi?id=52037 for the gory details.
 ;
 ; RUN: llc -mtriple=nvptx64-nvidia-cuda -mcpu=sm_70 -O3 -o - %s | FileCheck %s
-; RUN: %if ptxas %{ llc -mtriple=nvptx64-nvidia-cuda -mcpu=sm_70 -O3 -o - %s | %ptxas-verify -arch=sm_70 %}
+; RUN: %if ptxas-sm_70 %{ llc -mtriple=nvptx64-nvidia-cuda -mcpu=sm_70 -O3 -o - %s | %ptxas-verify -arch=sm_70 %}
 
 ; CHECK-LABEL: .visible .entry barney(
 ; CHECK-NOT:  .local{{.*}}__local_depot
diff --git a/llvm/test/CodeGen/NVPTX/barrier.ll b/llvm/test/CodeGen/NVPTX/barrier.ll
index a3b0d21f098f2..f2d6f2354038f 100644
--- a/llvm/test/CodeGen/NVPTX/barrier.ll
+++ b/llvm/test/CodeGen/NVPTX/barrier.ll
@@ -1,6 +1,6 @@
 ; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 5
 ; RUN: llc < %s -mtriple=nvptx64 -mcpu=sm_30 -mattr=+ptx60 | FileCheck %s
-; RUN: %if ptxas %{ llc < %s -mtriple=nvptx64 -mcpu=sm_30 -mattr=+ptx60 | %ptxas-verify %}
+; RUN: %if ptxas-isa-6.0 %{ llc < %s -mtriple=nvptx64 -mcpu=sm_30 -mattr=+ptx60 | %ptxas-verify %}
 
 declare void @llvm.nvvm.bar.warp.sync(i32)
 declare void @llvm.nvvm.barrier.cta.sync.aligned.all(i32)
diff --git a/llvm/test/CodeGen/NVPTX/bf16-instructions.ll b/llvm/test/CodeGen/NVPTX/bf16-instructions.ll
index a386e4292777b..4d930cd9e57c0 100644
--- a/llvm/test/CodeGen/NVPTX/bf16-instructions.ll
+++ b/llvm/test/CodeGen/NVPTX/bf16-instructions.ll
@@ -3,9 +3,9 @@
 ; RUN: llc < %s -mtriple=nvptx64 -mcpu=sm_80 -mattr=+ptx71 | FileCheck --check-prefixes=CHECK,SM80 %s
 ; RUN: llc < %s -mtriple=nvptx64 -mcpu=sm_80 -mattr=+ptx71 -denormal-fp-math-f32=preserve-sign | FileCheck --check-prefixes=CHECK,SM80-FTZ %s
 ; RUN: llc < %s -mtriple=nvptx64 -mcpu=sm_90 -mattr=+ptx78 | FileCheck --check-prefixes=CHECK,SM90 %s
-; RUN: %if ptxas-11.8 %{ llc < %s -mtriple=nvptx64 -mcpu=sm_80 -mattr=+ptx71 | %ptxas-verify -arch=sm_80 %}
-; RUN: %if ptxas-11.8 %{ llc < %s -mtriple=nvptx64 -mcpu=sm_80 -mattr=+ptx71 -denormal-fp-math-f32=preserve-sign | %ptxas-verify -arch=sm_80 %}
-; RUN: %if ptxas-11.8 %{ llc < %s -mtriple=nvptx64 -mcpu=sm_90 -mattr=+ptx78 | %ptxas-verify -arch=sm_90 %}
+; RUN: %if ptxas-sm_80 && ptxas-isa-7.1 %{ llc < %s -mtriple=nvptx64 -mcpu=sm_80 -mattr=+ptx71 | %ptxas-verify -arch=sm_80 %}
+; RUN: %if ptxas-sm_80 && ptxas-isa-7.1 %{ llc < %s -mtriple=nvptx64 -mcpu=sm_80 -mattr=+ptx71 -denormal-fp-math-f32=preserve-sign | %ptxas-verify -arch=sm_80 %}
+; RUN: %if ptxas-sm_90 && ptxas-isa-7.8 %{ llc < %s -mtriple=nvptx64 -mcpu=sm_90 -mattr=+ptx78 | %ptxas-verify -arch=sm_90 %}
 
 target triple = "nvptx64-nvidia-cuda"
 
diff --git a/llvm/test/CodeGen/NVPTX/bf16x2-instructions-approx.ll b/llvm/test/CodeGen/NVPTX/bf16x2-instructions-approx.ll
index e1d4ef1073a78..2c4aa6b3f8f30 100644
--- a/llvm/test/CodeGen/NVPTX/bf16x2-instructions-approx.ll
+++ b/llvm/test/CodeGen/NVPTX/bf16x2-instructions-approx.ll
@@ -1,6 +1,6 @@
 ; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 5
 ; RUN: llc < %s -mtriple=nvptx64 -mcpu=sm_80 -mattr=+ptx71 | FileCheck --check-prefixes=CHECK %s
-; RUN: %if ptxas-11.8 %{ llc < %s -mtriple=nvptx64 -mcpu=sm_80 -mattr=+ptx71 | %ptxas-verify -arch=sm_80 %}
+; RUN: %if ptxas-sm_80 && ptxas-isa-7.1 %{ llc < %s -mtriple=nvptx64 -mcpu=sm_80 -mattr=+ptx71 | %ptxas-verify -arch=sm_80 %}
 
 target datalayout = "e-m:o-i64:64-i128:128-n32:64-S128"
 
diff --git a/llvm/test/CodeGen/NVPTX/bf16x2-instructions.ll b/llvm/test/CodeGen/NVPTX/bf16x2-instructions.ll
index 6c4ae1937e158..3c6fb4b7517b8 100644
--- a/llvm/test/CodeGen/NVPTX/bf16x2-instructions.ll
+++ b/llvm/test/CodeGen/NVPTX/bf16x2-instructions.ll
@@ -1,8 +1,8 @@
 ; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 5
 ; RUN: llc < %s -mtriple=nvptx64 -mcpu=sm_80 -mattr=+ptx71 | FileCheck --check-prefixes=CHECK,SM80 %s
 ; RUN: llc < %s -mtriple=nvptx64 -mcpu=sm_90 -mattr=+ptx78 | FileCheck --check-prefixes=CHECK,SM90 %s
-; RUN: %if ptxas-11.8 %{ llc < %s -mtriple=nvptx64 -mcpu=sm_80 -mattr=+ptx71 | %ptxas-verify -arch=sm_80 %}
-; RUN: %if ptxas-11.8 %{ llc < %s -mtriple=nvptx64 -mcpu=sm_90 -mattr=+ptx78 | %ptxas-verify -arch=sm_90 %}
+; RUN: %if ptxas-sm_80 && ptxas-isa-7.1 %{ llc < %s -mtriple=nvptx64 -mcpu=sm_80 -mattr=+ptx71 | %ptxas-verify -arch=sm_80 %}
+; RUN: %if ptxas-sm_90 && ptxas-isa-7.8 %{ llc < %s -mtriple=nvptx64 -mcpu=sm_90 -mattr=+ptx78 | %ptxas-verify -arch=sm_90 %}
 
 target datalayout = "e-m:o-i64:64-i128:128-n32:64-S128"
 
diff --git a/llvm/test/CodeGen/NVPTX/bmsk.ll b/llvm/test/CodeGen/NVPTX/bmsk.ll
index d5b278657bd52..dee5a76f4c9d9 100644
--- a/llvm/test/CodeGen/NVPTX/bmsk.ll
+++ b/llvm/test/CodeGen/NVPTX/bmsk.ll
@@ -1,6 +1,6 @@
 ; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 5
 ; RUN: llc -o - < %s -mcpu=sm_70 -mattr=+ptx76 | FileCheck %s
-; RUN: %if ptxas %{ llc < %s -mcpu=sm_70 -mattr=+ptx76 | %ptxas-verify -arch=sm_70 %}
+; RUN: %if ptxas-sm_70 && ptxas-isa-7.6 %{ llc < %s -mcpu=sm_70 -mattr=+ptx76 | %ptxas-verify -arch=sm_70 %}
 
 target triple = "nvptx64-unknown-cuda"
 
diff --git a/llvm/test/CodeGen/NVPTX/bswap.ll b/llvm/test/CodeGen/NVPTX/bswap.ll
index 0d1d6da4ba2b6..e3d1c80922609 100644
--- a/llvm/test/CodeGen/NVPTX/bswap.ll
+++ b/llvm/test/CodeGen/NVPTX/bswap.ll
@@ -1,9 +1,9 @@
 ; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 4
 ; RUN: llc < %s -mtriple=nvptx64 -mcpu=sm_20 -mattr=+ptx70 | FileCheck -check-prefixes CHECK,PTX70 %s
 ; RUN: %if ptxas %{ llc < %s -mtriple=nvptx64 -mcpu=sm_20 | %ptxas-verify %}
-; RUN: %if ptxas-11.0 %{ llc < %s -mtriple=nvptx64 -mcpu=sm_20 -mattr=+ptx70 | %ptxas-verify %}
+; RUN: %if ptxas-isa-7.0 %{ llc < %s -mtriple=nvptx64 -mcpu=sm_20 -mattr=+ptx70 | %ptxas-verify %}
 ; RUN: llc < %s -mtriple=nvptx64 -mcpu=sm_20 -mattr=+ptx71 | FileCheck -check-prefixes CHECK,PTX71 %s
-; RUN: %if ptxas-11.0 %{ llc < %s -mtriple=nvptx64 -mcpu=sm_20 -mattr=+ptx71 | %ptxas-verify %}
+; RUN: %if ptxas-isa-7.1 %{ llc < %s -mtriple=nvptx64 -mcpu=sm_20 -mattr=+ptx71 | %ptxas-verify %}
 
 target triple = "nvptx64-nvidia-cuda"
 
diff --git a/llvm/test/CodeGen/NVPTX/byval-arg-vectorize.ll ...
[truncated]

@justinfargnoli
Copy link
Contributor Author

justinfargnoli commented Aug 29, 2025

I plan to land this on Tuesday, the 2nd, to prevent breaking ToT over the long weekend.

Copy link
Contributor

@vvereschaka vvereschaka left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@justinfargnoli ,

I see atomics-b128.ll test failures on the windows builders:

FAIL: LLVM :: CodeGen/NVPTX/atomics-b128.ll (16886 of 60734)
******************** TEST 'LLVM :: CodeGen/NVPTX/atomics-b128.ll' FAILED ********************
Exit Code: 4294967295

Command Output (stdout):
--
# RUN: at line 2
not c:\buildbot\temp\build\bin\llc.exe < C:\buildbot\temp\llvm-project\llvm\test\CodeGen\NVPTX\atomics-b128.ll -mcpu=sm_90 -mattr=+ptx82 2>&1 | c:\buildbot\temp\build\bin\filecheck.exe C:\buildbot\temp\llvm-project\llvm\test\CodeGen\NVPTX\atomics-b128.ll --check-prefix=ERROR
# executed command: not 'c:\buildbot\temp\build\bin\llc.exe' -mcpu=sm_90 -mattr=+ptx82
# executed command: 'c:\buildbot\temp\build\bin\filecheck.exe' 'C:\buildbot\temp\llvm-project\llvm\test\CodeGen\NVPTX\atomics-b128.ll' --check-prefix=ERROR
# RUN: at line 3
not c:\buildbot\temp\build\bin\llc.exe < C:\buildbot\temp\llvm-project\llvm\test\CodeGen\NVPTX\atomics-b128.ll -mcpu=sm_80 -mattr=+ptx84 2>&1 | c:\buildbot\temp\build\bin\filecheck.exe C:\buildbot\temp\llvm-project\llvm\test\CodeGen\NVPTX\atomics-b128.ll --check-prefix=ERROR
# executed command: not 'c:\buildbot\temp\build\bin\llc.exe' -mcpu=sm_80 -mattr=+ptx84
# executed command: 'c:\buildbot\temp\build\bin\filecheck.exe' 'C:\buildbot\temp\llvm-project\llvm\test\CodeGen\NVPTX\atomics-b128.ll' --check-prefix=ERROR
# RUN: at line 4
c:\buildbot\temp\build\bin\llc.exe < C:\buildbot\temp\llvm-project\llvm\test\CodeGen\NVPTX\atomics-b128.ll -mcpu=sm_90 -mattr=+ptx84 | c:\buildbot\temp\build\bin\filecheck.exe C:\buildbot\temp\llvm-project\llvm\test\CodeGen\NVPTX\atomics-b128.ll --check-prefix=CHECK
# executed command: 'c:\buildbot\temp\build\bin\llc.exe' -mcpu=sm_90 -mattr=+ptx84
# executed command: 'c:\buildbot\temp\build\bin\filecheck.exe' 'C:\buildbot\temp\llvm-project\llvm\test\CodeGen\NVPTX\atomics-b128.ll' --check-prefix=CHECK
# RUN: at line 5
c:\buildbot\temp\build\bin\llc.exe < C:\buildbot\temp\llvm-project\llvm\test\CodeGen\NVPTX\atomics-b128.ll -mcpu=sm_90 -mattr=+ptx84 | c:/buildbot/latest-cuda/bin/ptxas.exe -c - -arch=sm_90
# executed command: 'c:\buildbot\temp\build\bin\llc.exe' -mcpu=sm_90 -mattr=+ptx84
# executed command: c:/buildbot/latest-cuda/bin/ptxas.exe -c - -arch=sm_90
# .---command stdout------------
# | ptxas C:\Users\buildbot\AppData\Local\Temp\4\lit-tmp-xv6morib/tmpxft_000008d4_00000000-0_stdin, line 1082; error   : Unknown modifier '.seq_cst'
# | ptxas fatal   : Ptx assembly aborted due to errors
# `-----------------------------
# error: command failed with exit status: 0xffffffff

--

********************

I see the same problem on the windows buildbots for the past 20 hours.
https://lab.llvm.org/buildbot/#/builders/54/builds/12254/steps/7/logs/FAIL__LLVM__atomics-b128_ll

Do you plan to fix this test in the mainline?

@justinfargnoli
Copy link
Contributor Author

@vvereschaka that should be fixed by #156088.

Copy link
Contributor

@vvereschaka vvereschaka left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you @justinfargnoli

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants