1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
| ; 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
}
|