• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1; RUN: opt %s -mtriple amdgcn-- -analyze -divergence | FileCheck %s
2
3; CHECK-LABEL: Printing analysis 'Divergence Analysis' for function 'test_amdgpu_ps':
4; CHECK: DIVERGENT:
5; CHECK-NOT: %arg0
6; CHECK-NOT: %arg1
7; CHECK-NOT: %arg2
8; CHECK: <2 x i32> %arg3
9; CHECK: DIVERGENT:  <3 x i32> %arg4
10; CHECK: DIVERGENT:  float %arg5
11; CHECK: DIVERGENT:  i32 %arg6
12
13define amdgpu_ps void @test_amdgpu_ps([4 x <16 x i8>] addrspace(2)* byval %arg0, float inreg %arg1, i32 inreg %arg2, <2 x i32> %arg3, <3 x i32> %arg4, float %arg5, i32 %arg6) #0 {
14  ret void
15}
16
17; CHECK-LABEL: Printing analysis 'Divergence Analysis' for function 'test_amdgpu_kernel':
18; CHECK-NOT: %arg0
19; CHECK-NOT: %arg1
20; CHECK-NOT: %arg2
21; CHECK-NOT: %arg3
22; CHECK-NOT: %arg4
23; CHECK-NOT: %arg5
24; CHECK-NOT: %arg6
25define amdgpu_kernel void @test_amdgpu_kernel([4 x <16 x i8>] addrspace(2)* byval %arg0, float inreg %arg1, i32 inreg %arg2, <2 x i32> %arg3, <3 x i32> %arg4, float %arg5, i32 %arg6) #0 {
26  ret void
27}
28
29; CHECK-LABEL: Printing analysis 'Divergence Analysis' for function 'test_c':
30; CHECK: DIVERGENT:
31; CHECK: DIVERGENT:
32; CHECK: DIVERGENT:
33; CHECK: DIVERGENT:
34; CHECK: DIVERGENT:
35; CHECK: DIVERGENT:
36; CHECK: DIVERGENT:
37define void @test_c([4 x <16 x i8>] addrspace(2)* byval %arg0, float inreg %arg1, i32 inreg %arg2, <2 x i32> %arg3, <3 x i32> %arg4, float %arg5, i32 %arg6) #0 {
38  ret void
39}
40
41attributes #0 = { nounwind }
42