156615a26SAndrew Litteken; NOTE: Assertions have been autogenerated by utils/update_test_checks.py
2f02c4c87SAndrew Litteken; RUN: opt -disable-output -S -passes=print-ir-similarity < %s 2>&1 | FileCheck %s
3f02c4c87SAndrew Litteken
4f02c4c87SAndrew Litteken; This is a simple test to make sure the IRSimilarityIdentifier and
5f02c4c87SAndrew Litteken; IRSimilarityPrinterPass is working.
6f02c4c87SAndrew Litteken
7f02c4c87SAndrew Litteken; CHECK: 4 candidates of length 2.  Found in:
8f02c4c87SAndrew Litteken; CHECK-NEXT:  Function: turtle, Basic Block: (unnamed)
956615a26SAndrew Litteken; CHECK-NEXT:    Start Instruction:   store i32 5, i32* %5, align 4
1056615a26SAndrew Litteken; CHECK-NEXT:      End Instruction:   store i32 6, i32* %6, align 4
11f02c4c87SAndrew Litteken; CHECK-NEXT:  Function: cat, Basic Block: entry
12*bd4b1b5fSAndrew Litteken; CHECK-NEXT:    Start Instruction:   store i32 4, i32* %4, align 4
1356615a26SAndrew Litteken; CHECK-NEXT:      End Instruction:   store i32 5, i32* %5, align 4
14f02c4c87SAndrew Litteken; CHECK-NEXT:  Function: fish, Basic Block: entry
15*bd4b1b5fSAndrew Litteken; CHECK-NEXT:    Start Instruction:   store i32 4, i32* %4, align 4
1656615a26SAndrew Litteken; CHECK-NEXT:      End Instruction:   store i32 5, i32* %5, align 4
17f02c4c87SAndrew Litteken; CHECK-NEXT:  Function: dog, Basic Block: entry
18*bd4b1b5fSAndrew Litteken; CHECK-NEXT:    Start Instruction:   store i32 4, i32* %4, align 4
1956615a26SAndrew Litteken; CHECK-NEXT:      End Instruction:   store i32 5, i32* %5, align 4
20*bd4b1b5fSAndrew Litteken; CHECK-NEXT:4 candidates of length 3.  Found in:
21f02c4c87SAndrew Litteken; CHECK-NEXT:  Function: turtle, Basic Block: (unnamed)
2256615a26SAndrew Litteken; CHECK-NEXT:    Start Instruction:   store i32 4, i32* %4, align 4
2356615a26SAndrew Litteken; CHECK-NEXT:      End Instruction:   store i32 6, i32* %6, align 4
24f02c4c87SAndrew Litteken; CHECK-NEXT:  Function: cat, Basic Block: entry
25*bd4b1b5fSAndrew Litteken; CHECK-NEXT:    Start Instruction:   store i32 3, i32* %3, align 4
2656615a26SAndrew Litteken; CHECK-NEXT:      End Instruction:   store i32 5, i32* %5, align 4
27f02c4c87SAndrew Litteken; CHECK-NEXT:  Function: fish, Basic Block: entry
28*bd4b1b5fSAndrew Litteken; CHECK-NEXT:    Start Instruction:   store i32 3, i32* %3, align 4
2956615a26SAndrew Litteken; CHECK-NEXT:      End Instruction:   store i32 5, i32* %5, align 4
30f02c4c87SAndrew Litteken; CHECK-NEXT:  Function: dog, Basic Block: entry
31*bd4b1b5fSAndrew Litteken; CHECK-NEXT:    Start Instruction:   store i32 3, i32* %3, align 4
3256615a26SAndrew Litteken; CHECK-NEXT:      End Instruction:   store i32 5, i32* %5, align 4
33*bd4b1b5fSAndrew Litteken; CHECK-NEXT:4 candidates of length 4.  Found in:
34f02c4c87SAndrew Litteken; CHECK-NEXT:  Function: turtle, Basic Block: (unnamed)
3556615a26SAndrew Litteken; CHECK-NEXT:    Start Instruction:   store i32 3, i32* %3, align 4
3656615a26SAndrew Litteken; CHECK-NEXT:      End Instruction:   store i32 6, i32* %6, align 4
37f02c4c87SAndrew Litteken; CHECK-NEXT:  Function: cat, Basic Block: entry
38*bd4b1b5fSAndrew Litteken; CHECK-NEXT:    Start Instruction:   store i32 2, i32* %2, align 4
3956615a26SAndrew Litteken; CHECK-NEXT:      End Instruction:   store i32 5, i32* %5, align 4
40f02c4c87SAndrew Litteken; CHECK-NEXT:  Function: fish, Basic Block: entry
41*bd4b1b5fSAndrew Litteken; CHECK-NEXT:    Start Instruction:   store i32 2, i32* %2, align 4
4256615a26SAndrew Litteken; CHECK-NEXT:      End Instruction:   store i32 5, i32* %5, align 4
43f02c4c87SAndrew Litteken; CHECK-NEXT:  Function: dog, Basic Block: entry
44*bd4b1b5fSAndrew Litteken; CHECK-NEXT:    Start Instruction:   store i32 2, i32* %2, align 4
4556615a26SAndrew Litteken; CHECK-NEXT:      End Instruction:   store i32 5, i32* %5, align 4
46*bd4b1b5fSAndrew Litteken; CHECK-NEXT:4 candidates of length 5.  Found in:
47f02c4c87SAndrew Litteken; CHECK-NEXT:  Function: turtle, Basic Block: (unnamed)
4856615a26SAndrew Litteken; CHECK-NEXT:    Start Instruction:   store i32 2, i32* %2, align 4
4956615a26SAndrew Litteken; CHECK-NEXT:      End Instruction:   store i32 6, i32* %6, align 4
50*bd4b1b5fSAndrew Litteken; CHECK-NEXT:  Function: cat, Basic Block: entry
51*bd4b1b5fSAndrew Litteken; CHECK-NEXT:    Start Instruction:   store i32 1, i32* %1, align 4
52*bd4b1b5fSAndrew Litteken; CHECK-NEXT:      End Instruction:   store i32 5, i32* %5, align 4
53*bd4b1b5fSAndrew Litteken; CHECK-NEXT:  Function: fish, Basic Block: entry
54*bd4b1b5fSAndrew Litteken; CHECK-NEXT:    Start Instruction:   store i32 1, i32* %1, align 4
55*bd4b1b5fSAndrew Litteken; CHECK-NEXT:      End Instruction:   store i32 5, i32* %5, align 4
56*bd4b1b5fSAndrew Litteken; CHECK-NEXT:  Function: dog, Basic Block: entry
57*bd4b1b5fSAndrew Litteken; CHECK-NEXT:    Start Instruction:   store i32 1, i32* %1, align 4
58*bd4b1b5fSAndrew Litteken; CHECK-NEXT:      End Instruction:   store i32 5, i32* %5, align 4
59f02c4c87SAndrew Litteken; CHECK-NEXT:4 candidates of length 6.  Found in:
60*bd4b1b5fSAndrew Litteken; CHECK-NEXT:  Function: turtle, Basic Block: (unnamed)
61*bd4b1b5fSAndrew Litteken; CHECK-NEXT:    Start Instruction:   store i32 1, i32* %1, align 4
62*bd4b1b5fSAndrew Litteken; CHECK-NEXT:      End Instruction:   store i32 6, i32* %6, align 4
63f02c4c87SAndrew Litteken; CHECK-NEXT:  Function: cat, Basic Block: entry
6456615a26SAndrew Litteken; CHECK-NEXT:    Start Instruction:   store i32 6, i32* %0, align 4
6556615a26SAndrew Litteken; CHECK-NEXT:      End Instruction:   store i32 5, i32* %5, align 4
66f02c4c87SAndrew Litteken; CHECK-NEXT:  Function: fish, Basic Block: entry
6756615a26SAndrew Litteken; CHECK-NEXT:    Start Instruction:   store i32 6, i32* %0, align 4
6856615a26SAndrew Litteken; CHECK-NEXT:      End Instruction:   store i32 5, i32* %5, align 4
69f02c4c87SAndrew Litteken; CHECK-NEXT:  Function: dog, Basic Block: entry
7056615a26SAndrew Litteken; CHECK-NEXT:    Start Instruction:   store i32 6, i32* %0, align 4
7156615a26SAndrew Litteken; CHECK-NEXT:      End Instruction:   store i32 5, i32* %5, align 4
72f02c4c87SAndrew Litteken
73f02c4c87SAndrew Littekendefine linkonce_odr void @fish() {
74f02c4c87SAndrew Littekenentry:
75f02c4c87SAndrew Litteken  %0 = alloca i32, align 4
76f02c4c87SAndrew Litteken  %1 = alloca i32, align 4
77f02c4c87SAndrew Litteken  %2 = alloca i32, align 4
78f02c4c87SAndrew Litteken  %3 = alloca i32, align 4
79f02c4c87SAndrew Litteken  %4 = alloca i32, align 4
80f02c4c87SAndrew Litteken  %5 = alloca i32, align 4
81f02c4c87SAndrew Litteken  store i32 6, i32* %0, align 4
82f02c4c87SAndrew Litteken  store i32 1, i32* %1, align 4
83f02c4c87SAndrew Litteken  store i32 2, i32* %2, align 4
84f02c4c87SAndrew Litteken  store i32 3, i32* %3, align 4
85f02c4c87SAndrew Litteken  store i32 4, i32* %4, align 4
86f02c4c87SAndrew Litteken  store i32 5, i32* %5, align 4
87f02c4c87SAndrew Litteken  ret void
88f02c4c87SAndrew Litteken}
89f02c4c87SAndrew Litteken
90f02c4c87SAndrew Littekendefine void @turtle() {
91f02c4c87SAndrew Litteken  %1 = alloca i32, align 4
92f02c4c87SAndrew Litteken  %2 = alloca i32, align 4
93f02c4c87SAndrew Litteken  %3 = alloca i32, align 4
94f02c4c87SAndrew Litteken  %4 = alloca i32, align 4
95f02c4c87SAndrew Litteken  %5 = alloca i32, align 4
96f02c4c87SAndrew Litteken  %6 = alloca i32, align 4
97f02c4c87SAndrew Litteken  store i32 1, i32* %1, align 4
98f02c4c87SAndrew Litteken  store i32 2, i32* %2, align 4
99f02c4c87SAndrew Litteken  store i32 3, i32* %3, align 4
100f02c4c87SAndrew Litteken  store i32 4, i32* %4, align 4
101f02c4c87SAndrew Litteken  store i32 5, i32* %5, align 4
102f02c4c87SAndrew Litteken  store i32 6, i32* %6, align 4
103f02c4c87SAndrew Litteken  ret void
104f02c4c87SAndrew Litteken}
105f02c4c87SAndrew Litteken
106f02c4c87SAndrew Littekendefine void @cat() {
107f02c4c87SAndrew Littekenentry:
108f02c4c87SAndrew Litteken  %0 = alloca i32, align 4
109f02c4c87SAndrew Litteken  %1 = alloca i32, align 4
110f02c4c87SAndrew Litteken  %2 = alloca i32, align 4
111f02c4c87SAndrew Litteken  %3 = alloca i32, align 4
112f02c4c87SAndrew Litteken  %4 = alloca i32, align 4
113f02c4c87SAndrew Litteken  %5 = alloca i32, align 4
114f02c4c87SAndrew Litteken  store i32 6, i32* %0, align 4
115f02c4c87SAndrew Litteken  store i32 1, i32* %1, align 4
116f02c4c87SAndrew Litteken  store i32 2, i32* %2, align 4
117f02c4c87SAndrew Litteken  store i32 3, i32* %3, align 4
118f02c4c87SAndrew Litteken  store i32 4, i32* %4, align 4
119f02c4c87SAndrew Litteken  store i32 5, i32* %5, align 4
120f02c4c87SAndrew Litteken  ret void
121f02c4c87SAndrew Litteken}
122f02c4c87SAndrew Litteken
123f02c4c87SAndrew Littekendefine void @dog() {
124f02c4c87SAndrew Littekenentry:
125f02c4c87SAndrew Litteken  %0 = alloca i32, align 4
126f02c4c87SAndrew Litteken  %1 = alloca i32, align 4
127f02c4c87SAndrew Litteken  %2 = alloca i32, align 4
128f02c4c87SAndrew Litteken  %3 = alloca i32, align 4
129f02c4c87SAndrew Litteken  %4 = alloca i32, align 4
130f02c4c87SAndrew Litteken  %5 = alloca i32, align 4
131f02c4c87SAndrew Litteken  store i32 6, i32* %0, align 4
132f02c4c87SAndrew Litteken  store i32 1, i32* %1, align 4
133f02c4c87SAndrew Litteken  store i32 2, i32* %2, align 4
134f02c4c87SAndrew Litteken  store i32 3, i32* %3, align 4
135f02c4c87SAndrew Litteken  store i32 4, i32* %4, align 4
136f02c4c87SAndrew Litteken  store i32 5, i32* %5, align 4
137f02c4c87SAndrew Litteken  ret void
138f02c4c87SAndrew Litteken}
139