diff options
| author | Philip Reames <listmail@philipreames.com> | 2018-09-10 23:14:30 +0000 |
|---|---|---|
| committer | Philip Reames <listmail@philipreames.com> | 2018-09-10 23:14:30 +0000 |
| commit | 9f0916129024a06e5f1e230d8308cd78e123bace (patch) | |
| tree | 94ca9f0f1578687b7accf5c33e307e8b68a10828 /llvm/test/Analysis/AliasSet/memset.ll | |
| parent | 387564392854e2307dc7cd50fc5b19a156fb1522 (diff) | |
| download | bcm5719-llvm-9f0916129024a06e5f1e230d8308cd78e123bace.tar.gz bcm5719-llvm-9f0916129024a06e5f1e230d8308cd78e123bace.zip | |
[AST] Add test coverage of memsets
Immediately after posting https://reviews.llvm.org/D51895, I noticed a small bug. These tests would have caught that.
llvm-svn: 341880
Diffstat (limited to 'llvm/test/Analysis/AliasSet/memset.ll')
| -rw-r--r-- | llvm/test/Analysis/AliasSet/memset.ll | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/llvm/test/Analysis/AliasSet/memset.ll b/llvm/test/Analysis/AliasSet/memset.ll new file mode 100644 index 00000000000..ef0ae759163 --- /dev/null +++ b/llvm/test/Analysis/AliasSet/memset.ll @@ -0,0 +1,48 @@ +; RUN: opt -basicaa -print-alias-sets -S -o - < %s 2>&1 | FileCheck %s + +@s = global i8 1, align 1 +@d = global i8 2, align 1 + +; CHECK: Alias sets for function 'test_known_size': +; CHECK: Alias Set Tracker: 1 alias sets for 1 pointer values. +; CHECK: AliasSet[0x{{[0-9a-f]+}}, 1] must alias, Mod Pointers: (i8* %d, 1) +define void @test_known_size(i8* noalias %d) { +entry: + call void @llvm.memset.p0i8.i64(i8* align 1 %d, i8 0, i64 1, i1 false) + ret void +} + +; CHECK: Alias sets for function 'test_unknown_size': +; CHECK: Alias Set Tracker: 1 alias sets for 1 pointer values. +; CHECK: AliasSet[0x{{[0-9a-f]+}}, 1] must alias, Mod Pointers: (i8* %d, unknown) +define void @test_unknown_size(i8* noalias %d, i64 %len) { +entry: + call void @llvm.memset.p0i8.i64(i8* align 1 %d, i8 0, i64 %len, i1 false) + ret void +} + + +; CHECK: Alias sets for function 'test_atomic_known_size': +; CHECK: Alias Set Tracker: 1 alias sets for 1 pointer values. +; CHECK: AliasSet[0x{{[0-9a-f]+}}, 1] must alias, Mod Pointers: (i8* %d, 1) +define void @test_atomic_known_size(i8* noalias %d) { +entry: + call void @llvm.memset.element.unordered.atomic.p0i8.i32(i8* align 1 %d, i8 0, i64 1, i32 1) + ret void +} + +; CHECK: Alias sets for function 'test_atomic_unknown_size': +; CHECK: Alias Set Tracker: 1 alias sets for 1 pointer values. +; CHECK: AliasSet[0x{{[0-9a-f]+}}, 1] must alias, Mod Pointers: (i8* %d, unknown) +define void @test_atomic_unknown_size(i8* noalias %d, i64 %len) { +entry: + call void @llvm.memset.element.unordered.atomic.p0i8.i32(i8* align 1 %d, i8 0, i64 %len, i32 1) + ret void +} + +declare void @llvm.memset.p0i8.i64(i8* %dest, i8 %val, + i64 %len, i1 %isvolatile) +declare void @llvm.memset.element.unordered.atomic.p0i8.i32(i8* %dest, + i8 %value, + i64 %len, + i32 %element_size) |

