ranges.ll 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. ; RUN: opt -mergefunc -S < %s | FileCheck %s
  2. define i1 @cmp_with_range(i8*, i8*) {
  3. %v1 = load i8, i8* %0, !range !0
  4. %v2 = load i8, i8* %1, !range !0
  5. %out = icmp eq i8 %v1, %v2
  6. ret i1 %out
  7. }
  8. define i1 @cmp_no_range(i8*, i8*) {
  9. ; CHECK-LABEL: @cmp_no_range
  10. ; CHECK-NEXT %v1 = load i8, i8* %0
  11. ; CHECK-NEXT %v2 = load i8, i8* %1
  12. ; CHECK-NEXT %out = icmp eq i8 %v1, %v2
  13. ; CHECK-NEXT ret i1 %out
  14. %v1 = load i8, i8* %0
  15. %v2 = load i8, i8* %1
  16. %out = icmp eq i8 %v1, %v2
  17. ret i1 %out
  18. }
  19. define i1 @cmp_different_range(i8*, i8*) {
  20. ; CHECK-LABEL: @cmp_different_range
  21. ; CHECK-NEXT: %v1 = load i8, i8* %0, !range !1
  22. ; CHECK-NEXT: %v2 = load i8, i8* %1, !range !1
  23. ; CHECK-NEXT: %out = icmp eq i8 %v1, %v2
  24. ; CHECK-NEXT: ret i1 %out
  25. %v1 = load i8, i8* %0, !range !1
  26. %v2 = load i8, i8* %1, !range !1
  27. %out = icmp eq i8 %v1, %v2
  28. ret i1 %out
  29. }
  30. define i1 @cmp_with_same_range(i8*, i8*) {
  31. ; CHECK-LABEL: @cmp_with_same_range
  32. ; CHECK: tail call i1 @cmp_with_range
  33. %v1 = load i8, i8* %0, !range !0
  34. %v2 = load i8, i8* %1, !range !0
  35. %out = icmp eq i8 %v1, %v2
  36. ret i1 %out
  37. }
  38. !0 = !{i8 0, i8 2}
  39. !1 = !{i8 5, i8 7}