28 lines
620 B
LLVM
28 lines
620 B
LLVM
; RUN: llc -mtriple nvptx64-nvidia-cuda -stop-after machine-cp -o - < %s 2>&1 | FileCheck %s
|
|
|
|
; Check that convergent calls are emitted using convergent MIR instructions,
|
|
; while non-convergent calls are not.
|
|
|
|
target triple = "nvptx64-nvidia-cuda"
|
|
|
|
declare void @conv() convergent
|
|
declare void @not_conv()
|
|
|
|
define void @test(void ()* %f) {
|
|
; CHECK: ConvergentCallUniPrintCall
|
|
; CHECK-NEXT: @conv
|
|
call void @conv()
|
|
|
|
; CHECK: CallUniPrintCall
|
|
; CHECK-NEXT: @not_conv
|
|
call void @not_conv()
|
|
|
|
; CHECK: ConvergentCallPrintCall
|
|
call void %f() convergent
|
|
|
|
; CHECK: CallPrintCall
|
|
call void %f()
|
|
|
|
ret void
|
|
}
|