xref: /llvm-project/llvm/test/Analysis/AliasSet/memset.ll (revision 656bf13004d62b8f8360d8d496bb1e6e08407c22)
1458ae539SNikita Popov; RUN: opt -passes=print-alias-sets -S -o - < %s 2>&1 | FileCheck %s
29f091612SPhilip Reames
39f091612SPhilip Reames@s = global i8 1, align 1
49f091612SPhilip Reames@d = global i8 2, align 1
59f091612SPhilip Reames
69f091612SPhilip Reames; CHECK: Alias sets for function 'test_known_size':
79f091612SPhilip Reames; CHECK: Alias Set Tracker: 1 alias sets for 1 pointer values.
8*656bf130SBruno De Fraine; CHECK:   AliasSet[0x{{[0-9a-f]+}}, 1] must alias, Mod       Memory locations: (ptr %d, LocationSize::precise(1))
9ac924305SNikita Popovdefine void @test_known_size(ptr noalias %d) {
109f091612SPhilip Reamesentry:
11ac924305SNikita Popov  call void @llvm.memset.p0.i64(ptr align 1 %d, i8 0, i64 1, i1 false)
129f091612SPhilip Reames  ret void
139f091612SPhilip Reames}
149f091612SPhilip Reames
159f091612SPhilip Reames; CHECK: Alias sets for function 'test_unknown_size':
169f091612SPhilip Reames; CHECK: Alias Set Tracker: 1 alias sets for 1 pointer values.
17*656bf130SBruno De Fraine; CHECK:   AliasSet[0x{{[0-9a-f]+}}, 1] must alias, Mod       Memory locations: (ptr %d, unknown after)
18ac924305SNikita Popovdefine void @test_unknown_size(ptr noalias %d, i64 %len) {
199f091612SPhilip Reamesentry:
20ac924305SNikita Popov  call void @llvm.memset.p0.i64(ptr align 1 %d, i8 0, i64 %len, i1 false)
219f091612SPhilip Reames  ret void
229f091612SPhilip Reames}
239f091612SPhilip Reames
249f091612SPhilip Reames
259f091612SPhilip Reames; CHECK: Alias sets for function 'test_atomic_known_size':
269f091612SPhilip Reames; CHECK: Alias Set Tracker: 1 alias sets for 1 pointer values.
27*656bf130SBruno De Fraine; CHECK:   AliasSet[0x{{[0-9a-f]+}}, 1] must alias, Mod       Memory locations: (ptr %d, LocationSize::precise(1))
28ac924305SNikita Popovdefine void @test_atomic_known_size(ptr noalias %d) {
299f091612SPhilip Reamesentry:
30ac924305SNikita Popov  call void @llvm.memset.element.unordered.atomic.p0.i32(ptr align 1 %d, i8 0, i64 1, i32 1)
319f091612SPhilip Reames  ret void
329f091612SPhilip Reames}
339f091612SPhilip Reames
349f091612SPhilip Reames; CHECK: Alias sets for function 'test_atomic_unknown_size':
359f091612SPhilip Reames; CHECK: Alias Set Tracker: 1 alias sets for 1 pointer values.
36*656bf130SBruno De Fraine; CHECK:   AliasSet[0x{{[0-9a-f]+}}, 1] must alias, Mod       Memory locations: (ptr %d, unknown after)
37ac924305SNikita Popovdefine void @test_atomic_unknown_size(ptr noalias %d, i64 %len) {
389f091612SPhilip Reamesentry:
39ac924305SNikita Popov  call void @llvm.memset.element.unordered.atomic.p0.i32(ptr align 1 %d, i8 0, i64 %len, i32 1)
409f091612SPhilip Reames  ret void
419f091612SPhilip Reames}
429f091612SPhilip Reames
43ac924305SNikita Popovdeclare void @llvm.memset.p0.i64(ptr %dest, i8 %val,
449f091612SPhilip Reames                                   i64 %len, i1 %isvolatile)
45ac924305SNikita Popovdeclare void @llvm.memset.element.unordered.atomic.p0.i32(ptr %dest,
469f091612SPhilip Reames                                                            i8 %value,
479f091612SPhilip Reames                                                            i64 %len,
489f091612SPhilip Reames                                                            i32 %element_size)
49