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