diff options
| author | Peter Collingbourne <peter@pcc.me.uk> | 2015-09-08 22:49:35 +0000 |
|---|---|---|
| committer | Peter Collingbourne <peter@pcc.me.uk> | 2015-09-08 22:49:35 +0000 |
| commit | 8d24ae9441eee4b6fe4512ba8262638deef11e07 (patch) | |
| tree | b31e2266f9f11411c318aa5bcd3354fde74d3af8 /llvm/test/Transforms/LowerBitSets/nonstring.ll | |
| parent | 0d0200d727927ee7b20581f52066915b22c16105 (diff) | |
| download | bcm5719-llvm-8d24ae9441eee4b6fe4512ba8262638deef11e07.tar.gz bcm5719-llvm-8d24ae9441eee4b6fe4512ba8262638deef11e07.zip | |
Re-apply r247080 with order of evaluation fix.
llvm-svn: 247095
Diffstat (limited to 'llvm/test/Transforms/LowerBitSets/nonstring.ll')
| -rw-r--r-- | llvm/test/Transforms/LowerBitSets/nonstring.ll | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/llvm/test/Transforms/LowerBitSets/nonstring.ll b/llvm/test/Transforms/LowerBitSets/nonstring.ll new file mode 100644 index 00000000000..0d655da3bb0 --- /dev/null +++ b/llvm/test/Transforms/LowerBitSets/nonstring.ll @@ -0,0 +1,34 @@ +; RUN: opt -S -lowerbitsets < %s | FileCheck %s + +; Tests that non-string metadata nodes may be used as bitset identifiers. + +target datalayout = "e-p:32:32" + +; CHECK: @[[BNAME:.*]] = private constant { [2 x i32] } +; CHECK: @[[ANAME:.*]] = private constant { i32 } + +@a = constant i32 1 +@b = constant [2 x i32] [i32 2, i32 3] + +!0 = !{!2, i32* @a, i32 0} +!1 = !{!3, [2 x i32]* @b, i32 0} +!2 = distinct !{} +!3 = distinct !{} + +!llvm.bitsets = !{ !0, !1 } + +declare i1 @llvm.bitset.test(i8* %ptr, metadata %bitset) nounwind readnone + +; CHECK-LABEL: @foo +define i1 @foo(i8* %p) { + ; CHECK: icmp eq i32 {{.*}}, ptrtoint ({ i32 }* @[[ANAME]] to i32) + %x = call i1 @llvm.bitset.test(i8* %p, metadata !2) + ret i1 %x +} + +; CHECK-LABEL: @bar +define i1 @bar(i8* %p) { + ; CHECK: icmp eq i32 {{.*}}, ptrtoint ({ [2 x i32] }* @[[BNAME]] to i32) + %x = call i1 @llvm.bitset.test(i8* %p, metadata !3) + ret i1 %x +} |

