; RUN: llc < %s -mtriple=nvptx64 -O2 -mcpu=sm_52 -mattr=+ptx62 | FileCheck %s ; RUN: %if ptxas-isa-6.2 %{ llc < %s -mtriple=nvptx64 -mcpu=sm_52 -mattr=+ptx62 | %ptxas-verify %} declare i32 @llvm.nvvm.activemask() ; CHECK-LABEL: activemask( ; ; CHECK: activemask.b32 %[[REG:.+]]; ; CHECK-NEXT: st.param.b32 [func_retval0], %[[REG]]; ; CHECK-NEXT: ret; define dso_local i32 @activemask() { entry: %mask = call i32 @llvm.nvvm.activemask() ret i32 %mask } ; CHECK-LABEL: convergent( ; ; CHECK: activemask.b32 %[[REG:.+]]; ; CHECK: activemask.b32 %[[REG]]; ; CHECK: .param.b32 [func_retval0], %[[REG]]; ; CHECK-NEXT: ret; define dso_local i32 @convergent(i1 %cond) { entry: br i1 %cond, label %if.else, label %if.then if.then: %0 = call i32 @llvm.nvvm.activemask() br label %if.end if.else: %1 = call i32 @llvm.nvvm.activemask() br label %if.end if.end: %mask = phi i32 [ %0, %if.then ], [ %1, %if.else ] ret i32 %mask }