blob: 55b447ba07b67e83b7f206c5d4eb61b0d30b512e [file] [log] [blame]
Tom Stellard49f8bfd2015-01-06 18:00:21 +00001; RUN: llc -march=amdgcn -mcpu=SI -verify-machineinstrs < %s | FileCheck -check-prefix=SI -check-prefix=FUNC %s
Marek Olsak75170772015-01-27 17:27:15 +00002; RUN: llc -march=amdgcn -mcpu=tonga -verify-machineinstrs < %s | FileCheck -check-prefix=SI -check-prefix=FUNC %s
Matt Arsenault46645fa2014-07-28 17:49:26 +00003
Pete Cooper72bc23e2015-11-18 22:17:24 +00004declare void @llvm.memcpy.p3i8.p3i8.i32(i8 addrspace(3)* nocapture, i8 addrspace(3)* nocapture, i32, i1) nounwind
5declare void @llvm.memcpy.p1i8.p1i8.i64(i8 addrspace(1)* nocapture, i8 addrspace(1)* nocapture, i64, i1) nounwind
Matt Arsenault46645fa2014-07-28 17:49:26 +00006
7
Tom Stellard79243d92014-10-01 17:15:17 +00008; FUNC-LABEL: {{^}}test_small_memcpy_i64_lds_to_lds_align1:
Tom Stellard326d6ec2014-11-05 14:50:53 +00009; SI: ds_read_u8
Tom Stellard326d6ec2014-11-05 14:50:53 +000010; SI: ds_read_u8
Tom Stellard326d6ec2014-11-05 14:50:53 +000011; SI: ds_read_u8
Tom Stellard326d6ec2014-11-05 14:50:53 +000012; SI: ds_read_u8
Tom Stellard326d6ec2014-11-05 14:50:53 +000013; SI: ds_read_u8
Tom Stellard326d6ec2014-11-05 14:50:53 +000014; SI: ds_read_u8
Tom Stellard326d6ec2014-11-05 14:50:53 +000015; SI: ds_read_u8
16; SI: ds_read_u8
Matt Arsenaultd5f4de22014-08-06 00:29:49 +000017
Tom Stellard83f0bce2015-01-29 16:55:25 +000018; SI: ds_read_u8
19; SI: ds_read_u8
20; SI: ds_read_u8
21; SI: ds_read_u8
22; SI: ds_read_u8
23; SI: ds_read_u8
24; SI: ds_read_u8
25; SI: ds_read_u8
Matt Arsenault46645fa2014-07-28 17:49:26 +000026
Tom Stellard326d6ec2014-11-05 14:50:53 +000027; SI: ds_read_u8
28; SI: ds_read_u8
29; SI: ds_read_u8
30; SI: ds_read_u8
31; SI: ds_read_u8
32; SI: ds_read_u8
33; SI: ds_read_u8
34; SI: ds_read_u8
Matt Arsenaultd5f4de22014-08-06 00:29:49 +000035
Tom Stellard326d6ec2014-11-05 14:50:53 +000036; SI: ds_read_u8
37; SI: ds_read_u8
38; SI: ds_read_u8
39; SI: ds_read_u8
40; SI: ds_read_u8
41; SI: ds_read_u8
42; SI: ds_read_u8
43; SI: ds_read_u8
Matt Arsenault46645fa2014-07-28 17:49:26 +000044
Tom Stellard326d6ec2014-11-05 14:50:53 +000045; SI: ds_write_b8
46; SI: ds_write_b8
47; SI: ds_write_b8
48; SI: ds_write_b8
49; SI: ds_write_b8
50; SI: ds_write_b8
51; SI: ds_write_b8
52; SI: ds_write_b8
Tom Stellard83f0bce2015-01-29 16:55:25 +000053
54; SI: ds_write_b8
55; SI: ds_write_b8
56; SI: ds_write_b8
57; SI: ds_write_b8
58; SI: ds_write_b8
59; SI: ds_write_b8
60; SI: ds_write_b8
Tom Stellard326d6ec2014-11-05 14:50:53 +000061; SI: ds_write_b8
Matt Arsenaultd5f4de22014-08-06 00:29:49 +000062
Tom Stellard326d6ec2014-11-05 14:50:53 +000063; SI: ds_write_b8
64; SI: ds_write_b8
65; SI: ds_write_b8
66; SI: ds_write_b8
67; SI: ds_write_b8
68; SI: ds_write_b8
69; SI: ds_write_b8
70; SI: ds_write_b8
Tom Stellard83f0bce2015-01-29 16:55:25 +000071
72; SI: ds_write_b8
73; SI: ds_write_b8
74; SI: ds_write_b8
75; SI: ds_write_b8
76; SI: ds_write_b8
77; SI: ds_write_b8
78; SI: ds_write_b8
Tom Stellard326d6ec2014-11-05 14:50:53 +000079; SI: ds_write_b8
Matt Arsenault46645fa2014-07-28 17:49:26 +000080
Tom Stellard326d6ec2014-11-05 14:50:53 +000081; SI: s_endpgm
Matt Arsenault46645fa2014-07-28 17:49:26 +000082define void @test_small_memcpy_i64_lds_to_lds_align1(i64 addrspace(3)* noalias %out, i64 addrspace(3)* noalias %in) nounwind {
83 %bcin = bitcast i64 addrspace(3)* %in to i8 addrspace(3)*
84 %bcout = bitcast i64 addrspace(3)* %out to i8 addrspace(3)*
Pete Cooper72bc23e2015-11-18 22:17:24 +000085 call void @llvm.memcpy.p3i8.p3i8.i32(i8 addrspace(3)* align 1 %bcout, i8 addrspace(3)* align 1 %bcin, i32 32, i1 false) nounwind
Matt Arsenault46645fa2014-07-28 17:49:26 +000086 ret void
87}
88
Tom Stellard79243d92014-10-01 17:15:17 +000089; FUNC-LABEL: {{^}}test_small_memcpy_i64_lds_to_lds_align2:
Tom Stellard326d6ec2014-11-05 14:50:53 +000090; SI: ds_read_u16
91; SI: ds_read_u16
92; SI: ds_read_u16
93; SI: ds_read_u16
94; SI: ds_read_u16
95; SI: ds_read_u16
96; SI: ds_read_u16
97; SI: ds_read_u16
Matt Arsenault46645fa2014-07-28 17:49:26 +000098
Tom Stellard326d6ec2014-11-05 14:50:53 +000099; SI: ds_read_u16
100; SI: ds_read_u16
101; SI: ds_read_u16
102; SI: ds_read_u16
103; SI: ds_read_u16
104; SI: ds_read_u16
105; SI: ds_read_u16
106; SI: ds_read_u16
Matt Arsenaultc10853f2014-08-06 00:29:43 +0000107
Tom Stellard326d6ec2014-11-05 14:50:53 +0000108; SI: ds_write_b16
109; SI: ds_write_b16
110; SI: ds_write_b16
111; SI: ds_write_b16
112; SI: ds_write_b16
113; SI: ds_write_b16
114; SI: ds_write_b16
115; SI: ds_write_b16
Matt Arsenault46645fa2014-07-28 17:49:26 +0000116
Tom Stellard326d6ec2014-11-05 14:50:53 +0000117; SI: ds_write_b16
118; SI: ds_write_b16
119; SI: ds_write_b16
120; SI: ds_write_b16
121; SI: ds_write_b16
122; SI: ds_write_b16
123; SI: ds_write_b16
124; SI: ds_write_b16
Matt Arsenaultd5f4de22014-08-06 00:29:49 +0000125
Tom Stellard326d6ec2014-11-05 14:50:53 +0000126; SI: s_endpgm
Matt Arsenault46645fa2014-07-28 17:49:26 +0000127define void @test_small_memcpy_i64_lds_to_lds_align2(i64 addrspace(3)* noalias %out, i64 addrspace(3)* noalias %in) nounwind {
128 %bcin = bitcast i64 addrspace(3)* %in to i8 addrspace(3)*
129 %bcout = bitcast i64 addrspace(3)* %out to i8 addrspace(3)*
Pete Cooper72bc23e2015-11-18 22:17:24 +0000130 call void @llvm.memcpy.p3i8.p3i8.i32(i8 addrspace(3)* align 2 %bcout, i8 addrspace(3)* align 2 %bcin, i32 32, i1 false) nounwind
Matt Arsenault46645fa2014-07-28 17:49:26 +0000131 ret void
132}
133
Tom Stellard79243d92014-10-01 17:15:17 +0000134; FUNC-LABEL: {{^}}test_small_memcpy_i64_lds_to_lds_align4:
Tom Stellard326d6ec2014-11-05 14:50:53 +0000135; SI-DAG: ds_read_b32
136; SI-DAG: ds_write_b32
Matt Arsenault46645fa2014-07-28 17:49:26 +0000137
Tom Stellard326d6ec2014-11-05 14:50:53 +0000138; SI-DAG: ds_read_b32
139; SI-DAG: ds_write_b32
Matt Arsenault46645fa2014-07-28 17:49:26 +0000140
Tom Stellard326d6ec2014-11-05 14:50:53 +0000141; SI-DAG: ds_read_b32
142; SI-DAG: ds_write_b32
Matt Arsenault46645fa2014-07-28 17:49:26 +0000143
Tom Stellard326d6ec2014-11-05 14:50:53 +0000144; SI-DAG: ds_read_b32
145; SI-DAG: ds_write_b32
Matt Arsenault46645fa2014-07-28 17:49:26 +0000146
Tom Stellard326d6ec2014-11-05 14:50:53 +0000147; SI-DAG: ds_read_b32
148; SI-DAG: ds_write_b32
Matt Arsenault46645fa2014-07-28 17:49:26 +0000149
Tom Stellard326d6ec2014-11-05 14:50:53 +0000150; SI-DAG: ds_read_b32
151; SI-DAG: ds_write_b32
Matt Arsenault46645fa2014-07-28 17:49:26 +0000152
Tom Stellard326d6ec2014-11-05 14:50:53 +0000153; SI-DAG: ds_read_b32
154; SI-DAG: ds_write_b32
Matt Arsenault46645fa2014-07-28 17:49:26 +0000155
Tom Stellard326d6ec2014-11-05 14:50:53 +0000156; SI-DAG: ds_read_b32
157; SI-DAG: ds_write_b32
Matt Arsenault46645fa2014-07-28 17:49:26 +0000158
Tom Stellard326d6ec2014-11-05 14:50:53 +0000159; SI-DAG: ds_read_b32
160; SI-DAG: ds_write_b32
Matt Arsenault46645fa2014-07-28 17:49:26 +0000161
Tom Stellard326d6ec2014-11-05 14:50:53 +0000162; SI: s_endpgm
Matt Arsenault46645fa2014-07-28 17:49:26 +0000163define void @test_small_memcpy_i64_lds_to_lds_align4(i64 addrspace(3)* noalias %out, i64 addrspace(3)* noalias %in) nounwind {
164 %bcin = bitcast i64 addrspace(3)* %in to i8 addrspace(3)*
165 %bcout = bitcast i64 addrspace(3)* %out to i8 addrspace(3)*
Pete Cooper72bc23e2015-11-18 22:17:24 +0000166 call void @llvm.memcpy.p3i8.p3i8.i32(i8 addrspace(3)* align 4 %bcout, i8 addrspace(3)* align 4 %bcin, i32 32, i1 false) nounwind
Matt Arsenault46645fa2014-07-28 17:49:26 +0000167 ret void
168}
169
170; FIXME: Use 64-bit ops
Tom Stellard79243d92014-10-01 17:15:17 +0000171; FUNC-LABEL: {{^}}test_small_memcpy_i64_lds_to_lds_align8:
Matt Arsenault46645fa2014-07-28 17:49:26 +0000172
Tom Stellard326d6ec2014-11-05 14:50:53 +0000173; SI-DAG: ds_read_b32
174; SI-DAG: ds_write_b32
Matt Arsenault46645fa2014-07-28 17:49:26 +0000175
Tom Stellard326d6ec2014-11-05 14:50:53 +0000176; SI-DAG: ds_read_b32
177; SI-DAG: ds_write_b32
Matt Arsenault46645fa2014-07-28 17:49:26 +0000178
Tom Stellard326d6ec2014-11-05 14:50:53 +0000179; SI-DAG: ds_read_b32
180; SI-DAG: ds_write_b32
Matt Arsenault46645fa2014-07-28 17:49:26 +0000181
Tom Stellard326d6ec2014-11-05 14:50:53 +0000182; SI-DAG: ds_read_b32
183; SI-DAG: ds_write_b32
Matt Arsenault46645fa2014-07-28 17:49:26 +0000184
Tom Stellard326d6ec2014-11-05 14:50:53 +0000185; SI-DAG: ds_read_b32
186; SI-DAG: ds_write_b32
Matt Arsenault46645fa2014-07-28 17:49:26 +0000187
Tom Stellard326d6ec2014-11-05 14:50:53 +0000188; SI-DAG: ds_read_b32
189; SI-DAG: ds_write_b32
Matt Arsenault46645fa2014-07-28 17:49:26 +0000190
Tom Stellard326d6ec2014-11-05 14:50:53 +0000191; SI-DAG: ds_read_b32
192; SI-DAG: ds_write_b32
Matt Arsenault46645fa2014-07-28 17:49:26 +0000193
Tom Stellard326d6ec2014-11-05 14:50:53 +0000194; SI-DAG: ds_read_b32
195; SI-DAG: ds_write_b32
Matt Arsenault46645fa2014-07-28 17:49:26 +0000196
Tom Stellard326d6ec2014-11-05 14:50:53 +0000197; SI-DAG: ds_read_b32
198; SI-DAG: ds_write_b32
Matt Arsenault46645fa2014-07-28 17:49:26 +0000199
Tom Stellard326d6ec2014-11-05 14:50:53 +0000200; SI-DAG: s_endpgm
Matt Arsenault46645fa2014-07-28 17:49:26 +0000201define void @test_small_memcpy_i64_lds_to_lds_align8(i64 addrspace(3)* noalias %out, i64 addrspace(3)* noalias %in) nounwind {
202 %bcin = bitcast i64 addrspace(3)* %in to i8 addrspace(3)*
203 %bcout = bitcast i64 addrspace(3)* %out to i8 addrspace(3)*
Pete Cooper72bc23e2015-11-18 22:17:24 +0000204 call void @llvm.memcpy.p3i8.p3i8.i32(i8 addrspace(3)* align 8 %bcout, i8 addrspace(3)* align 8 %bcin, i32 32, i1 false) nounwind
Matt Arsenault46645fa2014-07-28 17:49:26 +0000205 ret void
206}
207
Tom Stellard79243d92014-10-01 17:15:17 +0000208; FUNC-LABEL: {{^}}test_small_memcpy_i64_global_to_global_align1:
Tom Stellard326d6ec2014-11-05 14:50:53 +0000209; SI-DAG: buffer_load_ubyte
210; SI-DAG: buffer_store_byte
211; SI-DAG: buffer_load_ubyte
212; SI-DAG: buffer_store_byte
213; SI-DAG: buffer_load_ubyte
214; SI-DAG: buffer_store_byte
215; SI-DAG: buffer_load_ubyte
216; SI-DAG: buffer_store_byte
217; SI-DAG: buffer_load_ubyte
218; SI-DAG: buffer_store_byte
219; SI-DAG: buffer_load_ubyte
220; SI-DAG: buffer_store_byte
221; SI-DAG: buffer_load_ubyte
222; SI-DAG: buffer_store_byte
223; SI-DAG: buffer_load_ubyte
224; SI-DAG: buffer_store_byte
Matt Arsenault46645fa2014-07-28 17:49:26 +0000225
Tom Stellard326d6ec2014-11-05 14:50:53 +0000226; SI-DAG: buffer_load_ubyte
227; SI-DAG: buffer_store_byte
228; SI-DAG: buffer_load_ubyte
229; SI-DAG: buffer_store_byte
230; SI-DAG: buffer_load_ubyte
231; SI-DAG: buffer_store_byte
232; SI-DAG: buffer_load_ubyte
233; SI-DAG: buffer_store_byte
234; SI-DAG: buffer_load_ubyte
235; SI-DAG: buffer_store_byte
236; SI-DAG: buffer_load_ubyte
237; SI-DAG: buffer_store_byte
238; SI-DAG: buffer_load_ubyte
239; SI-DAG: buffer_store_byte
240; SI-DAG: buffer_load_ubyte
241; SI-DAG: buffer_store_byte
Matt Arsenault46645fa2014-07-28 17:49:26 +0000242
Tom Stellard326d6ec2014-11-05 14:50:53 +0000243; SI-DAG: buffer_load_ubyte
244; SI-DAG: buffer_store_byte
245; SI-DAG: buffer_load_ubyte
246; SI-DAG: buffer_store_byte
247; SI-DAG: buffer_load_ubyte
248; SI-DAG: buffer_store_byte
249; SI-DAG: buffer_load_ubyte
250; SI-DAG: buffer_store_byte
251; SI-DAG: buffer_load_ubyte
252; SI-DAG: buffer_store_byte
253; SI-DAG: buffer_load_ubyte
254; SI-DAG: buffer_store_byte
255; SI-DAG: buffer_load_ubyte
256; SI-DAG: buffer_store_byte
257; SI-DAG: buffer_load_ubyte
258; SI-DAG: buffer_store_byte
Matt Arsenault46645fa2014-07-28 17:49:26 +0000259
Tom Stellard326d6ec2014-11-05 14:50:53 +0000260; SI-DAG: buffer_load_ubyte
261; SI-DAG: buffer_store_byte
262; SI-DAG: buffer_load_ubyte
263; SI-DAG: buffer_store_byte
264; SI-DAG: buffer_load_ubyte
265; SI-DAG: buffer_store_byte
266; SI-DAG: buffer_load_ubyte
267; SI-DAG: buffer_store_byte
268; SI-DAG: buffer_load_ubyte
269; SI-DAG: buffer_store_byte
270; SI-DAG: buffer_load_ubyte
271; SI-DAG: buffer_store_byte
272; SI-DAG: buffer_load_ubyte
273; SI-DAG: buffer_store_byte
274; SI-DAG: buffer_load_ubyte
275; SI-DAG: buffer_store_byte
Matt Arsenault46645fa2014-07-28 17:49:26 +0000276
Tom Stellard326d6ec2014-11-05 14:50:53 +0000277; SI: s_endpgm
Matt Arsenault46645fa2014-07-28 17:49:26 +0000278define void @test_small_memcpy_i64_global_to_global_align1(i64 addrspace(1)* noalias %out, i64 addrspace(1)* noalias %in) nounwind {
279 %bcin = bitcast i64 addrspace(1)* %in to i8 addrspace(1)*
280 %bcout = bitcast i64 addrspace(1)* %out to i8 addrspace(1)*
Pete Cooper72bc23e2015-11-18 22:17:24 +0000281 call void @llvm.memcpy.p1i8.p1i8.i64(i8 addrspace(1)* align 1 %bcout, i8 addrspace(1)* align 1 %bcin, i64 32, i1 false) nounwind
Matt Arsenault46645fa2014-07-28 17:49:26 +0000282 ret void
283}
284
Tom Stellard79243d92014-10-01 17:15:17 +0000285; FUNC-LABEL: {{^}}test_small_memcpy_i64_global_to_global_align2:
Tom Stellard326d6ec2014-11-05 14:50:53 +0000286; SI-DAG: buffer_load_ushort
287; SI-DAG: buffer_load_ushort
288; SI-DAG: buffer_load_ushort
289; SI-DAG: buffer_load_ushort
290; SI-DAG: buffer_load_ushort
291; SI-DAG: buffer_load_ushort
292; SI-DAG: buffer_load_ushort
293; SI-DAG: buffer_load_ushort
294; SI-DAG: buffer_load_ushort
295; SI-DAG: buffer_load_ushort
296; SI-DAG: buffer_load_ushort
297; SI-DAG: buffer_load_ushort
298; SI-DAG: buffer_load_ushort
299; SI-DAG: buffer_load_ushort
300; SI-DAG: buffer_load_ushort
301; SI-DAG: buffer_load_ushort
Matt Arsenault46645fa2014-07-28 17:49:26 +0000302
Tom Stellard326d6ec2014-11-05 14:50:53 +0000303; SI-DAG: buffer_store_short
304; SI-DAG: buffer_store_short
305; SI-DAG: buffer_store_short
306; SI-DAG: buffer_store_short
307; SI-DAG: buffer_store_short
308; SI-DAG: buffer_store_short
309; SI-DAG: buffer_store_short
310; SI-DAG: buffer_store_short
311; SI-DAG: buffer_store_short
312; SI-DAG: buffer_store_short
313; SI-DAG: buffer_store_short
314; SI-DAG: buffer_store_short
315; SI-DAG: buffer_store_short
316; SI-DAG: buffer_store_short
317; SI-DAG: buffer_store_short
318; SI-DAG: buffer_store_short
Matt Arsenault46645fa2014-07-28 17:49:26 +0000319
Tom Stellard326d6ec2014-11-05 14:50:53 +0000320; SI: s_endpgm
Matt Arsenault46645fa2014-07-28 17:49:26 +0000321define void @test_small_memcpy_i64_global_to_global_align2(i64 addrspace(1)* noalias %out, i64 addrspace(1)* noalias %in) nounwind {
322 %bcin = bitcast i64 addrspace(1)* %in to i8 addrspace(1)*
323 %bcout = bitcast i64 addrspace(1)* %out to i8 addrspace(1)*
Pete Cooper72bc23e2015-11-18 22:17:24 +0000324 call void @llvm.memcpy.p1i8.p1i8.i64(i8 addrspace(1)* align 2 %bcout, i8 addrspace(1)* align 2 %bcin, i64 32, i1 false) nounwind
Matt Arsenault46645fa2014-07-28 17:49:26 +0000325 ret void
326}
327
Tom Stellard79243d92014-10-01 17:15:17 +0000328; FUNC-LABEL: {{^}}test_small_memcpy_i64_global_to_global_align4:
Tom Stellard326d6ec2014-11-05 14:50:53 +0000329; SI: buffer_load_dwordx4
330; SI: buffer_load_dwordx4
331; SI: buffer_store_dwordx4
332; SI: buffer_store_dwordx4
333; SI: s_endpgm
Matt Arsenault46645fa2014-07-28 17:49:26 +0000334define void @test_small_memcpy_i64_global_to_global_align4(i64 addrspace(1)* noalias %out, i64 addrspace(1)* noalias %in) nounwind {
335 %bcin = bitcast i64 addrspace(1)* %in to i8 addrspace(1)*
336 %bcout = bitcast i64 addrspace(1)* %out to i8 addrspace(1)*
Pete Cooper72bc23e2015-11-18 22:17:24 +0000337 call void @llvm.memcpy.p1i8.p1i8.i64(i8 addrspace(1)* align 4 %bcout, i8 addrspace(1)* align 4 %bcin, i64 32, i1 false) nounwind
Matt Arsenault46645fa2014-07-28 17:49:26 +0000338 ret void
339}
340
Tom Stellard79243d92014-10-01 17:15:17 +0000341; FUNC-LABEL: {{^}}test_small_memcpy_i64_global_to_global_align8:
Tom Stellard326d6ec2014-11-05 14:50:53 +0000342; SI: buffer_load_dwordx4
343; SI: buffer_load_dwordx4
344; SI: buffer_store_dwordx4
345; SI: buffer_store_dwordx4
346; SI: s_endpgm
Matt Arsenault46645fa2014-07-28 17:49:26 +0000347define void @test_small_memcpy_i64_global_to_global_align8(i64 addrspace(1)* noalias %out, i64 addrspace(1)* noalias %in) nounwind {
348 %bcin = bitcast i64 addrspace(1)* %in to i8 addrspace(1)*
349 %bcout = bitcast i64 addrspace(1)* %out to i8 addrspace(1)*
Pete Cooper72bc23e2015-11-18 22:17:24 +0000350 call void @llvm.memcpy.p1i8.p1i8.i64(i8 addrspace(1)* align 8 %bcout, i8 addrspace(1)* align 8 %bcin, i64 32, i1 false) nounwind
Matt Arsenault46645fa2014-07-28 17:49:26 +0000351 ret void
352}
353
Tom Stellard79243d92014-10-01 17:15:17 +0000354; FUNC-LABEL: {{^}}test_small_memcpy_i64_global_to_global_align16:
Tom Stellard326d6ec2014-11-05 14:50:53 +0000355; SI: buffer_load_dwordx4
356; SI: buffer_load_dwordx4
357; SI: buffer_store_dwordx4
358; SI: buffer_store_dwordx4
359; SI: s_endpgm
Matt Arsenault46645fa2014-07-28 17:49:26 +0000360define void @test_small_memcpy_i64_global_to_global_align16(i64 addrspace(1)* noalias %out, i64 addrspace(1)* noalias %in) nounwind {
361 %bcin = bitcast i64 addrspace(1)* %in to i8 addrspace(1)*
362 %bcout = bitcast i64 addrspace(1)* %out to i8 addrspace(1)*
Pete Cooper72bc23e2015-11-18 22:17:24 +0000363 call void @llvm.memcpy.p1i8.p1i8.i64(i8 addrspace(1)* align 16 %bcout, i8 addrspace(1)* align 16 %bcin, i64 32, i1 false) nounwind
Matt Arsenault46645fa2014-07-28 17:49:26 +0000364 ret void
365}