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
|
||
|
}
|