49 lines · plain
1; RUN: opt -passes=print-alias-sets -S -o - < %s 2>&1 | FileCheck %s2 3@s = global i8 1, align 14@d = global i8 2, align 15 6; CHECK: Alias sets for function 'test_known_size':7; CHECK: Alias Set Tracker: 1 alias sets for 1 pointer values.8; CHECK: AliasSet[0x{{[0-9a-f]+}}, 1] must alias, Mod Memory locations: (ptr %d, LocationSize::precise(1))9define void @test_known_size(ptr noalias %d) {10entry:11 call void @llvm.memset.p0.i64(ptr align 1 %d, i8 0, i64 1, i1 false)12 ret void13}14 15; CHECK: Alias sets for function 'test_unknown_size':16; CHECK: Alias Set Tracker: 1 alias sets for 1 pointer values.17; CHECK: AliasSet[0x{{[0-9a-f]+}}, 1] must alias, Mod Memory locations: (ptr %d, unknown after)18define void @test_unknown_size(ptr noalias %d, i64 %len) {19entry:20 call void @llvm.memset.p0.i64(ptr align 1 %d, i8 0, i64 %len, i1 false)21 ret void22}23 24 25; CHECK: Alias sets for function 'test_atomic_known_size':26; CHECK: Alias Set Tracker: 1 alias sets for 1 pointer values.27; CHECK: AliasSet[0x{{[0-9a-f]+}}, 1] must alias, Mod Memory locations: (ptr %d, LocationSize::precise(1))28define void @test_atomic_known_size(ptr noalias %d) {29entry:30 call void @llvm.memset.element.unordered.atomic.p0.i32(ptr align 1 %d, i8 0, i64 1, i32 1)31 ret void32}33 34; CHECK: Alias sets for function 'test_atomic_unknown_size':35; CHECK: Alias Set Tracker: 1 alias sets for 1 pointer values.36; CHECK: AliasSet[0x{{[0-9a-f]+}}, 1] must alias, Mod Memory locations: (ptr %d, unknown after)37define void @test_atomic_unknown_size(ptr noalias %d, i64 %len) {38entry:39 call void @llvm.memset.element.unordered.atomic.p0.i32(ptr align 1 %d, i8 0, i64 %len, i32 1)40 ret void41}42 43declare void @llvm.memset.p0.i64(ptr %dest, i8 %val,44 i64 %len, i1 %isvolatile)45declare void @llvm.memset.element.unordered.atomic.p0.i32(ptr %dest,46 i8 %value,47 i64 %len,48 i32 %element_size)49