1 ; RUN: opt -basicaa -gvn -S < %s | FileCheck %s
3 define i32 @test1(i32* %p) {
4 ; CHECK-LABEL: @test1(i32* %p)
5 ; CHECK: %a = load i32, i32* %p, !range ![[RANGE0:[0-9]+]]
6 ; CHECK: %c = add i32 %a, %a
7 %a = load i32, i32* %p, !range !0
8 %b = load i32, i32* %p, !range !0
13 define i32 @test2(i32* %p) {
14 ; CHECK-LABEL: @test2(i32* %p)
15 ; CHECK: %a = load i32, i32* %p, !range ![[RANGE0]]
16 ; CHECK: %c = add i32 %a, %a
17 %a = load i32, i32* %p, !range !0
18 %b = load i32, i32* %p
23 define i32 @test3(i32* %p) {
24 ; CHECK-LABEL: @test3(i32* %p)
25 ; CHECK: %a = load i32, i32* %p, !range ![[RANGE0]]
26 ; CHECK: %c = add i32 %a, %a
27 %a = load i32, i32* %p, !range !0
28 %b = load i32, i32* %p, !range !1
33 define i32 @test4(i32* %p) {
34 ; CHECK-LABEL: @test4(i32* %p)
35 ; CHECK: %a = load i32, i32* %p, !range ![[RANGE0]]
36 ; CHECK: %c = add i32 %a, %a
37 %a = load i32, i32* %p, !range !0
38 %b = load i32, i32* %p, !range !2
43 define i32 @test5(i32* %p) {
44 ; CHECK-LABEL: @test5(i32* %p)
45 ; CHECK: %a = load i32, i32* %p, !range ![[RANGE3:[0-9]+]]
46 ; CHECK: %c = add i32 %a, %a
47 %a = load i32, i32* %p, !range !3
48 %b = load i32, i32* %p, !range !4
53 define i32 @test6(i32* %p) {
54 ; CHECK-LABEL: @test6(i32* %p)
55 ; CHECK: %a = load i32, i32* %p, !range ![[RANGE5:[0-9]+]]
56 ; CHECK: %c = add i32 %a, %a
57 %a = load i32, i32* %p, !range !5
58 %b = load i32, i32* %p, !range !6
63 define i32 @test7(i32* %p) {
64 ; CHECK-LABEL: @test7(i32* %p)
65 ; CHECK: %a = load i32, i32* %p, !range ![[RANGE7:[0-9]+]]
66 ; CHECK: %c = add i32 %a, %a
67 %a = load i32, i32* %p, !range !7
68 %b = load i32, i32* %p, !range !8
73 define i32 @test8(i32* %p) {
74 ; CHECK-LABEL: @test8(i32* %p)
75 ; CHECK: %a = load i32, i32* %p, !range ![[RANGE9:[0-9]+]]
77 ; CHECK: %c = add i32 %a, %a
78 %a = load i32, i32* %p, !range !9
79 %b = load i32, i32* %p, !range !10
84 ; CHECK: ![[RANGE0]] = !{i32 0, i32 2}
85 ; CHECK: ![[RANGE3]] = !{i32 -5, i32 -2}
86 ; CHECK: ![[RANGE5]] = !{i32 10, i32 1}
87 ; CHECK: ![[RANGE7]] = !{i32 1, i32 2, i32 3, i32 4}
88 ; CHECK: ![[RANGE9]] = !{i32 1, i32 5}
93 !3 = !{i32 -5, i32 -2}
96 !6 = !{i32 12, i32 16}
97 !7 = !{i32 1, i32 2, i32 3, i32 4}
100 !10 = !{i32 5, i32 1}