constant.ll 899 B

12345678910111213141516171819202122232425262728293031323334
  1. ; RUN: opt -S -lowerbitsets < %s | FileCheck %s
  2. target datalayout = "e-p:32:32"
  3. @a = constant i32 1
  4. @b = constant [2 x i32] [i32 2, i32 3]
  5. !0 = !{!"bitset1", i32* @a, i32 0}
  6. !1 = !{!"bitset1", [2 x i32]* @b, i32 4}
  7. !llvm.bitsets = !{ !0, !1 }
  8. declare i1 @llvm.bitset.test(i8* %ptr, metadata %bitset) nounwind readnone
  9. ; CHECK: @foo(
  10. define i1 @foo() {
  11. ; CHECK: ret i1 true
  12. %x = call i1 @llvm.bitset.test(i8* bitcast (i32* @a to i8*), metadata !"bitset1")
  13. ret i1 %x
  14. }
  15. ; CHECK: @bar(
  16. define i1 @bar() {
  17. ; CHECK: ret i1 true
  18. %x = call i1 @llvm.bitset.test(i8* bitcast (i32* getelementptr ([2 x i32], [2 x i32]* @b, i32 0, i32 1) to i8*), metadata !"bitset1")
  19. ret i1 %x
  20. }
  21. ; CHECK: @baz(
  22. define i1 @baz() {
  23. ; CHECK-NOT: ret i1 true
  24. %x = call i1 @llvm.bitset.test(i8* bitcast (i32* getelementptr ([2 x i32], [2 x i32]* @b, i32 0, i32 0) to i8*), metadata !"bitset1")
  25. ret i1 %x
  26. }