blob: b179732371d97b479c72463361fe847815e56cdf (
plain)
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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
|
; RUN: llc -O0 -mtriple=spirv32-unknown-unknown %s -o - | FileCheck %s --check-prefix=CHECK-SPIRV
; RUN: %if spirv-tools %{ llc -O0 -mtriple=spirv32-unknown-unknown %s -o - -filetype=obj | spirv-val %}
; CHECK-SPIRV-DAG: OpDecorate %[[#Id0:]] BuiltIn GlobalLinearId
; CHECK-SPIRV-DAG: OpDecorate %[[#Id1:]] BuiltIn GlobalInvocationId
; CHECK-SPIRV-DAG: OpDecorate %[[#Id2:]] BuiltIn LocalInvocationIndex
; CHECK-SPIRV-DAG: OpDecorate %[[#Id3:]] BuiltIn WorkDim
; CHECK-SPIRV-DAG: OpDecorate %[[#Id4:]] BuiltIn SubgroupSize
; CHECK-SPIRV-DAG: OpDecorate %[[#Id5:]] BuiltIn SubgroupMaxSize
; CHECK-SPIRV-DAG: OpDecorate %[[#Id6:]] BuiltIn NumSubgroups
; CHECK-SPIRV-DAG: OpDecorate %[[#Id7:]] BuiltIn NumEnqueuedSubgroups
; CHECK-SPIRV-DAG: OpDecorate %[[#Id8:]] BuiltIn SubgroupId
; CHECK-SPIRV-DAG: OpDecorate %[[#Id9:]] BuiltIn SubgroupLocalInvocationId
; CHECK-SPIRV-DAG: OpDecorate %[[#Id10:]] BuiltIn SubgroupEqMask
; CHECK-SPIRV-DAG: OpDecorate %[[#Id11:]] BuiltIn SubgroupGeMask
; CHECK-SPIRV-DAG: OpDecorate %[[#Id12:]] BuiltIn SubgroupGtMask
; CHECK-SPIRV-DAG: OpDecorate %[[#Id13:]] BuiltIn SubgroupLeMask
; CHECK-SPIRV-DAG: OpDecorate %[[#Id14:]] BuiltIn SubgroupLtMask
; CHECK-SPIRV-DAG: OpDecorate %[[#Id15:]] BuiltIn LocalInvocationId
; CHECK-SPIRV-DAG: OpDecorate %[[#Id16:]] BuiltIn WorkgroupSize
; CHECK-SPIRV-DAG: OpDecorate %[[#Id17:]] BuiltIn GlobalSize
; CHECK-SPIRV-DAG: OpDecorate %[[#Id18:]] BuiltIn WorkgroupId
; CHECK-SPIRV-DAG: OpDecorate %[[#Id19:]] BuiltIn EnqueuedWorkgroupSize
; CHECK-SPIRV-DAG: OpDecorate %[[#Id20:]] BuiltIn NumWorkgroups
; CHECK-SPIRV-DAG: OpDecorate %[[#Id21:]] BuiltIn GlobalOffset
; CHECK-SPIRV: %[[#Id0:]] = OpVariable %[[#]] Input
; CHECK-SPIRV: %[[#Id1:]] = OpVariable %[[#]] Input
; CHECK-SPIRV: %[[#Id2:]] = OpVariable %[[#]] Input
; CHECK-SPIRV: %[[#Id3:]] = OpVariable %[[#]] Input
; CHECK-SPIRV: %[[#Id4:]] = OpVariable %[[#]] Input
; CHECK-SPIRV: %[[#Id5:]] = OpVariable %[[#]] Input
; CHECK-SPIRV: %[[#Id6:]] = OpVariable %[[#]] Input
; CHECK-SPIRV: %[[#Id7:]] = OpVariable %[[#]] Input
; CHECK-SPIRV: %[[#Id8:]] = OpVariable %[[#]] Input
; CHECK-SPIRV: %[[#Id9:]] = OpVariable %[[#]] Input
; CHECK-SPIRV: %[[#Id10:]] = OpVariable %[[#]] Input
; CHECK-SPIRV: %[[#Id11:]] = OpVariable %[[#]] Input
; CHECK-SPIRV: %[[#Id12:]] = OpVariable %[[#]] Input
; CHECK-SPIRV: %[[#Id13:]] = OpVariable %[[#]] Input
; CHECK-SPIRV: %[[#Id14:]] = OpVariable %[[#]] Input
; CHECK-SPIRV: %[[#Id15:]] = OpVariable %[[#]] Input
; CHECK-SPIRV: %[[#Id16:]] = OpVariable %[[#]] Input
; CHECK-SPIRV: %[[#Id17:]] = OpVariable %[[#]] Input
; CHECK-SPIRV: %[[#Id18:]] = OpVariable %[[#]] Input
; CHECK-SPIRV: %[[#Id19:]] = OpVariable %[[#]] Input
; CHECK-SPIRV: %[[#Id20:]] = OpVariable %[[#]] Input
; CHECK-SPIRV: %[[#Id21:]] = OpVariable %[[#]] Input
define spir_kernel void @f() {
entry:
%0 = call spir_func i32 @_Z29__spirv_BuiltInGlobalLinearIdv()
%1 = call spir_func i64 @_Z33__spirv_BuiltInGlobalInvocationIdi(i32 1)
%2 = call spir_func i64 @_Z35__spirv_BuiltInLocalInvocationIndexv()
%3 = call spir_func i32 @_Z22__spirv_BuiltInWorkDimv()
%4 = call spir_func i32 @_Z27__spirv_BuiltInSubgroupSizev()
%5 = call spir_func i32 @_Z30__spirv_BuiltInSubgroupMaxSizev()
%6 = call spir_func i32 @_Z27__spirv_BuiltInNumSubgroupsv()
%7 = call spir_func i32 @_Z35__spirv_BuiltInNumEnqueuedSubgroupsv()
%8 = call spir_func i32 @_Z25__spirv_BuiltInSubgroupIdv()
%9 = call spir_func i32 @_Z40__spirv_BuiltInSubgroupLocalInvocationIdv()
%10 = call spir_func <4 x i32> @_Z29__spirv_BuiltInSubgroupEqMaskv()
%11 = call spir_func <4 x i32> @_Z32__spirv_BuiltInSubgroupEqMaskKHRv()
%12 = call spir_func <4 x i32> @_Z29__spirv_BuiltInSubgroupGeMaskv()
%13 = call spir_func <4 x i32> @_Z32__spirv_BuiltInSubgroupGeMaskKHRv()
%14 = call spir_func <4 x i32> @_Z29__spirv_BuiltInSubgroupGtMaskv()
%15 = call spir_func <4 x i32> @_Z32__spirv_BuiltInSubgroupGtMaskKHRv()
%16 = call spir_func <4 x i32> @_Z29__spirv_BuiltInSubgroupLeMaskv()
%17 = call spir_func <4 x i32> @_Z32__spirv_BuiltInSubgroupLeMaskKHRv()
%18 = call spir_func <4 x i32> @_Z29__spirv_BuiltInSubgroupLtMaskv()
%19 = call spir_func <4 x i32> @_Z32__spirv_BuiltInSubgroupLtMaskKHRv()
%20 = call spir_func i64 @_Z32__spirv_BuiltInLocalInvocationIdi(i32 0)
%21 = call spir_func i64 @_Z28__spirv_BuiltInWorkgroupSizei(i32 0)
%22 = call spir_func i64 @_Z25__spirv_BuiltInGlobalSizei(i32 0)
%23 = call spir_func i64 @_Z26__spirv_BuiltInWorkgroupIdi(i32 0)
%24 = call spir_func i64 @_Z36__spirv_BuiltInEnqueuedWorkgroupSizei(i32 0)
%25 = call spir_func i64 @_Z28__spirv_BuiltInNumWorkgroupsi(i32 0)
%26 = call spir_func i64 @_Z27__spirv_BuiltInGlobalOffseti(i32 0)
ret void
}
declare spir_func i32 @_Z29__spirv_BuiltInGlobalLinearIdv()
declare spir_func i64 @_Z33__spirv_BuiltInGlobalInvocationIdi(i32)
declare spir_func i64 @_Z35__spirv_BuiltInLocalInvocationIndexv()
declare spir_func i32 @_Z22__spirv_BuiltInWorkDimv()
declare spir_func i32 @_Z27__spirv_BuiltInSubgroupSizev()
declare spir_func i32 @_Z30__spirv_BuiltInSubgroupMaxSizev()
declare spir_func i32 @_Z27__spirv_BuiltInNumSubgroupsv()
declare spir_func i32 @_Z35__spirv_BuiltInNumEnqueuedSubgroupsv()
declare spir_func i32 @_Z25__spirv_BuiltInSubgroupIdv()
declare spir_func i32 @_Z40__spirv_BuiltInSubgroupLocalInvocationIdv()
declare spir_func <4 x i32> @_Z29__spirv_BuiltInSubgroupEqMaskv()
declare spir_func <4 x i32> @_Z32__spirv_BuiltInSubgroupEqMaskKHRv()
declare spir_func <4 x i32> @_Z29__spirv_BuiltInSubgroupGeMaskv()
declare spir_func <4 x i32> @_Z32__spirv_BuiltInSubgroupGeMaskKHRv()
declare spir_func <4 x i32> @_Z29__spirv_BuiltInSubgroupGtMaskv()
declare spir_func <4 x i32> @_Z32__spirv_BuiltInSubgroupGtMaskKHRv()
declare spir_func <4 x i32> @_Z29__spirv_BuiltInSubgroupLeMaskv()
declare spir_func <4 x i32> @_Z32__spirv_BuiltInSubgroupLeMaskKHRv()
declare spir_func <4 x i32> @_Z29__spirv_BuiltInSubgroupLtMaskv()
declare spir_func <4 x i32> @_Z32__spirv_BuiltInSubgroupLtMaskKHRv()
declare spir_func i64 @_Z32__spirv_BuiltInLocalInvocationIdi(i32)
declare spir_func i64 @_Z28__spirv_BuiltInWorkgroupSizei(i32)
declare spir_func i64 @_Z25__spirv_BuiltInGlobalSizei(i32)
declare spir_func i64 @_Z26__spirv_BuiltInWorkgroupIdi(i32)
declare spir_func i64 @_Z36__spirv_BuiltInEnqueuedWorkgroupSizei(i32)
declare spir_func i64 @_Z28__spirv_BuiltInNumWorkgroupsi(i32)
declare spir_func i64 @_Z27__spirv_BuiltInGlobalOffseti(i32)
|