@@ -96,9 +96,31 @@ entry:
96
96
ret void
97
97
}
98
98
99
+ ; test3 : memcpy
100
+ ; Function Attrs: convergent mustprogress norecurse
101
+ define spir_kernel void @test.3 (ptr addrspace (1 ) align 4 %arg_a , ptr %arg_b ) {
102
+ entry:
103
+ %this.addr.i = alloca ptr addrspace (4 ), align 8
104
+ %arg_a.addr = alloca ptr addrspace (1 ), align 8
105
+ %MyIP = alloca %struct.MyIP , align 8
106
+ %arg_a.addr.ascast = addrspacecast ptr %arg_a.addr to ptr addrspace (4 )
107
+ %MyIP.ascast = addrspacecast ptr %MyIP to ptr addrspace (4 )
108
+ store ptr addrspace (1 ) %arg_a , ptr addrspace (4 ) %arg_a.addr.ascast , align 8
109
+ %a = getelementptr inbounds %struct.MyIP , ptr addrspace (4 ) %MyIP.ascast , i32 0 , i32 0
110
+ %0 = call ptr addrspace (4 ) @llvm.ptr.annotation.p4.p0 (ptr addrspace (4 ) %a , ptr getelementptr inbounds ([19 x i8 ], ptr @.str.4 , i32 0 , i32 0 ), ptr getelementptr inbounds ([9 x i8 ], ptr @.str.1 , i32 0 , i32 0 ), i32 7 , ptr null )
111
+ call void @llvm.memcpy.p4.p0 (ptr addrspace (4 ) %0 , ptr %arg_b , i64 4 , i1 false )
112
+ ; CHECK-LLVM: %[[INTRINSIC_CALL:[[:alnum:].]+]] = call ptr addrspace(4) @llvm.ptr.annotation.p4.p0(ptr addrspace(4) %a, ptr @[[ANN_STR]], ptr undef, i32 undef, ptr undef)
113
+ ; CHECK-LLVM: %[[BITCAST:[[:alnum:].]+]] = bitcast ptr addrspace(4) %[[INTRINSIC_CALL]] to ptr addrspace(4)
114
+ ; CHECK-LLVM: llvm.memcpy.p4.p0.i64(ptr addrspace(4) %[[BITCAST]], ptr %arg_b, i64 4, i1 false)
115
+ ret void
116
+ }
117
+
99
118
; Function Attrs: nocallback nofree nosync nounwind willreturn memory(inaccessiblemem: readwrite)
100
119
declare ptr addrspace (4 ) @llvm.ptr.annotation.p4.p0 (ptr addrspace (4 ), ptr , ptr , i32 , ptr ) #1
101
120
121
+ ; Function Attrs: argmemonly nofree nounwind willreturn
122
+ declare void @llvm.memcpy.p4.p0 (ptr addrspace (4 ) noalias nocapture writeonly , ptr noalias nocapture readonly , i64 , i1 immarg) #2
123
+
102
124
!opencl.enable.FP_CONTRACT = !{}
103
125
!opencl.ocl.version = !{!0 }
104
126
!opencl.spir.version = !{!0 }
0 commit comments