@@ -36,13 +36,12 @@ target datalayout = "e-p:32:32-i64:64-v16:16-v24:32-v32:32-v48:64-v96:128-v192:2
36
36
target triple = "spir-unknown-unknown"
37
37
38
38
%spirv.ConstantPipeStorage = type { i32 , i32 , i32 }
39
- %"class.cl::pipe_storage<int __attribute__((ext_vector_type(4))), 1>" = type { %spirv.PipeStorage addrspace (1 )* }
40
- %spirv.PipeStorage = type opaque
39
+ %"class.cl::pipe_storage<int __attribute__((ext_vector_type(4))), 1>" = type { ptr addrspace (1 ) }
41
40
%"class.cl::pipe<int __attribute__((ext_vector_type(4))), cl::pipe_access::read>" = type { target ("spirv.Pipe" , 0 ) }
42
41
%"class.cl::pipe<int __attribute__((ext_vector_type(4))), cl::pipe_access::write>" = type { target ("spirv.Pipe" , 1 ) }
43
42
44
43
@_ZN2cl9__details29OpConstantPipeStorage_CreatorILi16ELi16ELi1EE5valueE = linkonce_odr addrspace (1 ) global %spirv.ConstantPipeStorage { i32 16 , i32 16 , i32 1 }, align 4
45
- @mygpipe = addrspace (1 ) global %"class.cl::pipe_storage<int __attribute__((ext_vector_type(4))), 1>" { %spirv.PipeStorage addrspace (1 )* bitcast ( %spirv.ConstantPipeStorage addrspace ( 1 )* @_ZN2cl9__details29OpConstantPipeStorage_CreatorILi16ELi16ELi1EE5valueE to %spirv.PipeStorage addrspace ( 1 )*) }, align 4
44
+ @mygpipe = addrspace (1 ) global %"class.cl::pipe_storage<int __attribute__((ext_vector_type(4))), 1>" { ptr addrspace (1 ) @_ZN2cl9__details29OpConstantPipeStorage_CreatorILi16ELi16ELi1EE5valueE }, align 4
46
45
47
46
48
47
; Function Attrs: nounwind
64
63
; CHECK-SPIRV: PtrCastToGeneric {{[0-9]+}} [[SPIRV0:[0-9]+]] [[PIPE_STORAGE_ID]]
65
64
; CHECK-SPIRV: PtrAccessChain {{[0-9]+}} [[SPIRV1:[0-9]+]] [[SPIRV0]] [[CONSTANT_ZERO_ID]] [[CONSTANT_ZERO_ID]]
66
65
67
- %0 = addrspacecast % "class.cl::pipe_storage<int __attribute__((ext_vector_type(4))), 1>" addrspace (1 )* @mygpipe to % "class.cl::pipe_storage<int __attribute__((ext_vector_type(4))), 1>" addrspace (4 )*
68
- %1 = getelementptr %"class.cl::pipe_storage<int __attribute__((ext_vector_type(4))), 1>" , % "class.cl::pipe_storage<int __attribute__((ext_vector_type(4))), 1>" addrspace (4 )* %0 , i32 0 , i32 0
66
+ %0 = addrspacecast ptr addrspace (1 ) @mygpipe to ptr addrspace (4 )
67
+ %1 = getelementptr %"class.cl::pipe_storage<int __attribute__((ext_vector_type(4))), 1>" , ptr addrspace (4 ) %0 , i32 0 , i32 0
69
68
70
69
71
70
; CHECK-SPV-IR: %[[PIPE_STORAGE_1:[0-9]+]] = load ptr addrspace(1), ptr addrspace(4) %[[ID1]], align 4
@@ -80,10 +79,10 @@ entry:
80
79
; CHECK-SPIRV: PtrCastToGeneric {{[0-9]+}} [[GENERIC_WRITE_PIPE_WRAPPER_ID:[0-9]+]] [[WRITE_PIPE_WRAPPER_ID]]
81
80
; CHECK-SPIRV: FunctionCall {{[0-9]+}} {{[0-9]+}} [[WRITE_PIPE_WRAPPER_CTOR]] [[GENERIC_WRITE_PIPE_WRAPPER_ID]] [[WRITE_PIPE_ID]]
82
81
83
- %2 = load %spirv.PipeStorage addrspace (1 )*, %spirv.PipeStorage addrspace (1 )* addrspace ( 4 )* %1 , align 4
84
- %3 = tail call spir_func target ("spirv.Pipe" , 1 ) @_Z39__spirv_CreatePipeFromPipeStorage_writePU3AS1K19__spirv_PipeStorage (%spirv.PipeStorage addrspace (1 )* %2 )
85
- %4 = addrspacecast % "class.cl::pipe<int __attribute__((ext_vector_type(4))), cl::pipe_access::write>" * %mywpipe to % "class.cl::pipe<int __attribute__((ext_vector_type(4))), cl::pipe_access::write>" addrspace (4 )*
86
- call spir_func void @_ZNU3AS42cl4pipeIDv4_iLNS_11pipe_accessE1EEC1EPU3AS1NS_7__spirv10OpTypePipeILNS3_15AccessQualifierE1EEE (% "class.cl::pipe<int __attribute__((ext_vector_type(4))), cl::pipe_access::write>" addrspace (4 )* %4 , target ("spirv.Pipe" , 1 ) %3 )
82
+ %2 = load ptr addrspace (1 ), ptr addrspace (4 ) %1 , align 4
83
+ %3 = tail call spir_func target ("spirv.Pipe" , 1 ) @_Z39__spirv_CreatePipeFromPipeStorage_writePU3AS1K19__spirv_PipeStorage (ptr addrspace (1 ) %2 )
84
+ %4 = addrspacecast ptr %mywpipe to ptr addrspace (4 )
85
+ call spir_func void @_ZNU3AS42cl4pipeIDv4_iLNS_11pipe_accessE1EEC1EPU3AS1NS_7__spirv10OpTypePipeILNS3_15AccessQualifierE1EEE (ptr addrspace (4 ) %4 , target ("spirv.Pipe" , 1 ) %3 )
87
86
88
87
89
88
; CHECK-SPV-IR: %[[PIPE_STORAGE_2:[0-9]+]] = load ptr addrspace(1), ptr addrspace(4) %[[ID1]], align 4
@@ -98,50 +97,50 @@ entry:
98
97
; CHECK-SPIRV: PtrCastToGeneric {{[0-9]+}} [[GENERIC_READ_PIPE_WRAPPER_ID:[0-9]+]] [[READ_PIPE_WRAPPER_ID]]
99
98
; CHECK-SPIRV: FunctionCall {{[0-9]+}} {{[0-9]+}} [[READ_PIPE_WRAPPER_CTOR]] [[GENERIC_READ_PIPE_WRAPPER_ID]] [[READ_PIPE_ID]]
100
99
101
- %5 = load %spirv.PipeStorage addrspace (1 )*, %spirv.PipeStorage addrspace (1 )* addrspace ( 4 )* %1 , align 4
102
- %6 = tail call spir_func target ("spirv.Pipe" , 0 ) @_Z38__spirv_CreatePipeFromPipeStorage_readPU3AS1K19__spirv_PipeStorage (%spirv.PipeStorage addrspace (1 )* %5 )
103
- %7 = addrspacecast % "class.cl::pipe<int __attribute__((ext_vector_type(4))), cl::pipe_access::read>" * %myrpipe to % "class.cl::pipe<int __attribute__((ext_vector_type(4))), cl::pipe_access::read>" addrspace (4 )*
104
- call spir_func void @_ZNU3AS42cl4pipeIDv4_iLNS_11pipe_accessE0EEC1EPU3AS1NS_7__spirv10OpTypePipeILNS3_15AccessQualifierE0EEE (% "class.cl::pipe<int __attribute__((ext_vector_type(4))), cl::pipe_access::read>" addrspace (4 )* %7 , target ("spirv.Pipe" , 0 ) %6 )
100
+ %5 = load ptr addrspace (1 ), ptr addrspace (4 ) %1 , align 4
101
+ %6 = tail call spir_func target ("spirv.Pipe" , 0 ) @_Z38__spirv_CreatePipeFromPipeStorage_readPU3AS1K19__spirv_PipeStorage (ptr addrspace (1 ) %5 )
102
+ %7 = addrspacecast ptr %myrpipe to ptr addrspace (4 )
103
+ call spir_func void @_ZNU3AS42cl4pipeIDv4_iLNS_11pipe_accessE0EEC1EPU3AS1NS_7__spirv10OpTypePipeILNS3_15AccessQualifierE0EEE (ptr addrspace (4 ) %7 , target ("spirv.Pipe" , 0 ) %6 )
105
104
106
105
107
106
ret void
108
107
}
109
108
110
109
; Function Attrs: nounwind
111
- define linkonce_odr spir_func void @_ZNU3AS42cl4pipeIDv4_iLNS_11pipe_accessE0EEC1EPU3AS1NS_7__spirv10OpTypePipeILNS3_15AccessQualifierE0EEE (% "class.cl::pipe<int __attribute__((ext_vector_type(4))), cl::pipe_access::read>" addrspace (4 )* nocapture %this , target ("spirv.Pipe" , 0 ) %handle ) unnamed_addr align 2 {
110
+ define linkonce_odr spir_func void @_ZNU3AS42cl4pipeIDv4_iLNS_11pipe_accessE0EEC1EPU3AS1NS_7__spirv10OpTypePipeILNS3_15AccessQualifierE0EEE (ptr addrspace (4 ) nocapture %this , target ("spirv.Pipe" , 0 ) %handle ) unnamed_addr align 2 {
112
111
entry:
113
- tail call spir_func void @_ZNU3AS42cl4pipeIDv4_iLNS_11pipe_accessE0EEC2EPU3AS1NS_7__spirv10OpTypePipeILNS3_15AccessQualifierE0EEE (% "class.cl::pipe<int __attribute__((ext_vector_type(4))), cl::pipe_access::read>" addrspace (4 )* %this , target ("spirv.Pipe" , 0 ) %handle )
112
+ tail call spir_func void @_ZNU3AS42cl4pipeIDv4_iLNS_11pipe_accessE0EEC2EPU3AS1NS_7__spirv10OpTypePipeILNS3_15AccessQualifierE0EEE (ptr addrspace (4 ) %this , target ("spirv.Pipe" , 0 ) %handle )
114
113
ret void
115
114
}
116
115
117
116
; Function Attrs: nounwind
118
- define linkonce_odr spir_func void @_ZNU3AS42cl4pipeIDv4_iLNS_11pipe_accessE0EEC2EPU3AS1NS_7__spirv10OpTypePipeILNS3_15AccessQualifierE0EEE (% "class.cl::pipe<int __attribute__((ext_vector_type(4))), cl::pipe_access::read>" addrspace (4 )* nocapture %this , target ("spirv.Pipe" , 0 ) %handle ) unnamed_addr align 2 {
117
+ define linkonce_odr spir_func void @_ZNU3AS42cl4pipeIDv4_iLNS_11pipe_accessE0EEC2EPU3AS1NS_7__spirv10OpTypePipeILNS3_15AccessQualifierE0EEE (ptr addrspace (4 ) nocapture %this , target ("spirv.Pipe" , 0 ) %handle ) unnamed_addr align 2 {
119
118
entry:
120
- %_handle = getelementptr inbounds %"class.cl::pipe<int __attribute__((ext_vector_type(4))), cl::pipe_access::read>" , % "class.cl::pipe<int __attribute__((ext_vector_type(4))), cl::pipe_access::read>" addrspace (4 )* %this , i32 0 , i32 0
119
+ %_handle = getelementptr inbounds %"class.cl::pipe<int __attribute__((ext_vector_type(4))), cl::pipe_access::read>" , ptr addrspace (4 ) %this , i32 0 , i32 0
121
120
store target ("spirv.Pipe" , 0 ) %handle , target ("spirv.Pipe" , 0 ) addrspace (4 )* %_handle , align 4 , !tbaa !11
122
121
ret void
123
122
}
124
123
125
124
; Function Attrs: nounwind
126
- declare spir_func target ("spirv.Pipe" , 0 ) @_Z38__spirv_CreatePipeFromPipeStorage_readPU3AS1K19__spirv_PipeStorage (%spirv.PipeStorage addrspace (1 )* )
125
+ declare spir_func target ("spirv.Pipe" , 0 ) @_Z38__spirv_CreatePipeFromPipeStorage_readPU3AS1K19__spirv_PipeStorage (ptr addrspace (1 ))
127
126
128
127
; Function Attrs: nounwind
129
- define linkonce_odr spir_func void @_ZNU3AS42cl4pipeIDv4_iLNS_11pipe_accessE1EEC1EPU3AS1NS_7__spirv10OpTypePipeILNS3_15AccessQualifierE1EEE (% "class.cl::pipe<int __attribute__((ext_vector_type(4))), cl::pipe_access::write>" addrspace (4 )* nocapture %this , target ("spirv.Pipe" , 1 ) %handle ) unnamed_addr align 2 {
128
+ define linkonce_odr spir_func void @_ZNU3AS42cl4pipeIDv4_iLNS_11pipe_accessE1EEC1EPU3AS1NS_7__spirv10OpTypePipeILNS3_15AccessQualifierE1EEE (ptr addrspace (4 ) nocapture %this , target ("spirv.Pipe" , 1 ) %handle ) unnamed_addr align 2 {
130
129
entry:
131
- tail call spir_func void @_ZNU3AS42cl4pipeIDv4_iLNS_11pipe_accessE1EEC2EPU3AS1NS_7__spirv10OpTypePipeILNS3_15AccessQualifierE1EEE (% "class.cl::pipe<int __attribute__((ext_vector_type(4))), cl::pipe_access::write>" addrspace (4 )* %this , target ("spirv.Pipe" , 1 ) %handle )
130
+ tail call spir_func void @_ZNU3AS42cl4pipeIDv4_iLNS_11pipe_accessE1EEC2EPU3AS1NS_7__spirv10OpTypePipeILNS3_15AccessQualifierE1EEE (ptr addrspace (4 ) %this , target ("spirv.Pipe" , 1 ) %handle )
132
131
ret void
133
132
}
134
133
135
134
; Function Attrs: nounwind
136
- define linkonce_odr spir_func void @_ZNU3AS42cl4pipeIDv4_iLNS_11pipe_accessE1EEC2EPU3AS1NS_7__spirv10OpTypePipeILNS3_15AccessQualifierE1EEE (% "class.cl::pipe<int __attribute__((ext_vector_type(4))), cl::pipe_access::write>" addrspace (4 )* nocapture %this , target ("spirv.Pipe" , 1 ) %handle ) unnamed_addr align 2 {
135
+ define linkonce_odr spir_func void @_ZNU3AS42cl4pipeIDv4_iLNS_11pipe_accessE1EEC2EPU3AS1NS_7__spirv10OpTypePipeILNS3_15AccessQualifierE1EEE (ptr addrspace (4 ) nocapture %this , target ("spirv.Pipe" , 1 ) %handle ) unnamed_addr align 2 {
137
136
entry:
138
- %_handle = getelementptr inbounds %"class.cl::pipe<int __attribute__((ext_vector_type(4))), cl::pipe_access::write>" , % "class.cl::pipe<int __attribute__((ext_vector_type(4))), cl::pipe_access::write>" addrspace (4 )* %this , i32 0 , i32 0
137
+ %_handle = getelementptr inbounds %"class.cl::pipe<int __attribute__((ext_vector_type(4))), cl::pipe_access::write>" , ptr addrspace (4 ) %this , i32 0 , i32 0
139
138
store target ("spirv.Pipe" , 1 ) %handle , target ("spirv.Pipe" , 1 ) addrspace (4 )* %_handle , align 4 , !tbaa !13
140
139
ret void
141
140
}
142
141
143
142
; Function Attrs: nounwind
144
- declare spir_func target ("spirv.Pipe" , 1 ) @_Z39__spirv_CreatePipeFromPipeStorage_writePU3AS1K19__spirv_PipeStorage (%spirv.PipeStorage addrspace (1 )* )
143
+ declare spir_func target ("spirv.Pipe" , 1 ) @_Z39__spirv_CreatePipeFromPipeStorage_writePU3AS1K19__spirv_PipeStorage (ptr addrspace (1 ))
145
144
146
145
!opencl.enable.FP_CONTRACT = !{}
147
146
!opencl.spir.version = !{!0 }
0 commit comments