xref: /llvm-project/llvm/test/Analysis/IRSimilarityIdentifier/basic.ll (revision e240e6b8b7cc68a29bc8a5d6a7d0e3b7eaa61dc0)
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
7*e240e6b8SAndrew Litteken; CHECK: 4 candidates of length 6.  Found in:
8f02c4c87SAndrew Litteken; CHECK-NEXT:  Function: turtle, Basic Block: (unnamed)
9*e240e6b8SAndrew Litteken; CHECK-NEXT:    Start Instruction:   store i32 1, ptr %1, align 4
10da839fffSNikita Popov; CHECK-NEXT:      End Instruction:   store i32 6, ptr %6, align 4
11f02c4c87SAndrew Litteken; CHECK-NEXT:  Function: cat, Basic Block: entry
12*e240e6b8SAndrew Litteken; CHECK-NEXT:    Start Instruction:   store i32 6, ptr %0, align 4
13da839fffSNikita Popov; CHECK-NEXT:      End Instruction:   store i32 5, ptr %5, align 4
14f02c4c87SAndrew Litteken; CHECK-NEXT:  Function: fish, Basic Block: entry
15*e240e6b8SAndrew Litteken; CHECK-NEXT:    Start Instruction:   store i32 6, ptr %0, align 4
16da839fffSNikita Popov; CHECK-NEXT:      End Instruction:   store i32 5, ptr %5, align 4
17f02c4c87SAndrew Litteken; CHECK-NEXT:  Function: dog, Basic Block: entry
18*e240e6b8SAndrew Litteken; CHECK-NEXT:    Start Instruction:   store i32 6, ptr %0, align 4
199baaf4fbSAndrew Litteken; CHECK-NEXT:      End Instruction:   store i32 5, ptr %5, align 4
209baaf4fbSAndrew Litteken; CHECK-NEXT:4 candidates of length 5.  Found in:
219baaf4fbSAndrew Litteken; CHECK-NEXT:  Function: turtle, Basic Block: (unnamed)
229baaf4fbSAndrew Litteken; CHECK-NEXT:    Start Instruction:   store i32 2, ptr %2, align 4
239baaf4fbSAndrew Litteken; CHECK-NEXT:      End Instruction:   store i32 6, ptr %6, align 4
249baaf4fbSAndrew Litteken; CHECK-NEXT:  Function: cat, Basic Block: entry
259baaf4fbSAndrew Litteken; CHECK-NEXT:    Start Instruction:   store i32 1, ptr %1, align 4
269baaf4fbSAndrew Litteken; CHECK-NEXT:      End Instruction:   store i32 5, ptr %5, align 4
279baaf4fbSAndrew Litteken; CHECK-NEXT:  Function: fish, Basic Block: entry
289baaf4fbSAndrew Litteken; CHECK-NEXT:    Start Instruction:   store i32 1, ptr %1, align 4
299baaf4fbSAndrew Litteken; CHECK-NEXT:      End Instruction:   store i32 5, ptr %5, align 4
309baaf4fbSAndrew Litteken; CHECK-NEXT:  Function: dog, Basic Block: entry
319baaf4fbSAndrew Litteken; CHECK-NEXT:    Start Instruction:   store i32 1, ptr %1, align 4
329baaf4fbSAndrew Litteken; CHECK-NEXT:      End Instruction:   store i32 5, ptr %5, align 4
33*e240e6b8SAndrew Litteken; CHECK-NEXT:4 candidates of length 4.  Found in:
349baaf4fbSAndrew Litteken; CHECK-NEXT:  Function: turtle, Basic Block: (unnamed)
35*e240e6b8SAndrew Litteken; CHECK-NEXT:    Start Instruction:   store i32 3, ptr %3, align 4
369baaf4fbSAndrew Litteken; CHECK-NEXT:      End Instruction:   store i32 6, ptr %6, align 4
379baaf4fbSAndrew Litteken; CHECK-NEXT:  Function: cat, Basic Block: entry
38*e240e6b8SAndrew Litteken; CHECK-NEXT:    Start Instruction:   store i32 2, ptr %2, align 4
399baaf4fbSAndrew Litteken; CHECK-NEXT:      End Instruction:   store i32 5, ptr %5, align 4
409baaf4fbSAndrew Litteken; CHECK-NEXT:  Function: fish, Basic Block: entry
41*e240e6b8SAndrew Litteken; CHECK-NEXT:    Start Instruction:   store i32 2, ptr %2, align 4
429baaf4fbSAndrew Litteken; CHECK-NEXT:      End Instruction:   store i32 5, ptr %5, align 4
439baaf4fbSAndrew Litteken; CHECK-NEXT:  Function: dog, Basic Block: entry
44*e240e6b8SAndrew Litteken; CHECK-NEXT:    Start Instruction:   store i32 2, ptr %2, align 4
45*e240e6b8SAndrew Litteken; CHECK-NEXT:      End Instruction:   store i32 5, ptr %5, align 4
46*e240e6b8SAndrew Litteken; CHECK-NEXT:4 candidates of length 3.  Found in:
47*e240e6b8SAndrew Litteken; CHECK-NEXT:  Function: turtle, Basic Block: (unnamed)
48*e240e6b8SAndrew Litteken; CHECK-NEXT:    Start Instruction:   store i32 4, ptr %4, align 4
49*e240e6b8SAndrew Litteken; CHECK-NEXT:      End Instruction:   store i32 6, ptr %6, align 4
50*e240e6b8SAndrew Litteken; CHECK-NEXT:  Function: cat, Basic Block: entry
51*e240e6b8SAndrew Litteken; CHECK-NEXT:    Start Instruction:   store i32 3, ptr %3, align 4
52*e240e6b8SAndrew Litteken; CHECK-NEXT:      End Instruction:   store i32 5, ptr %5, align 4
53*e240e6b8SAndrew Litteken; CHECK-NEXT:  Function: fish, Basic Block: entry
54*e240e6b8SAndrew Litteken; CHECK-NEXT:    Start Instruction:   store i32 3, ptr %3, align 4
55*e240e6b8SAndrew Litteken; CHECK-NEXT:      End Instruction:   store i32 5, ptr %5, align 4
56*e240e6b8SAndrew Litteken; CHECK-NEXT:  Function: dog, Basic Block: entry
57*e240e6b8SAndrew Litteken; CHECK-NEXT:    Start Instruction:   store i32 3, ptr %3, align 4
58*e240e6b8SAndrew Litteken; CHECK-NEXT:      End Instruction:   store i32 5, ptr %5, align 4
59*e240e6b8SAndrew Litteken; CHECK-NEXT:4 candidates of length 2.  Found in:
60*e240e6b8SAndrew Litteken; CHECK-NEXT:  Function: turtle, Basic Block: (unnamed)
61*e240e6b8SAndrew Litteken; CHECK-NEXT:    Start Instruction:   store i32 5, ptr %5, align 4
62*e240e6b8SAndrew Litteken; CHECK-NEXT:      End Instruction:   store i32 6, ptr %6, align 4
63*e240e6b8SAndrew Litteken; CHECK-NEXT:  Function: cat, Basic Block: entry
64*e240e6b8SAndrew Litteken; CHECK-NEXT:    Start Instruction:   store i32 4, ptr %4, align 4
65*e240e6b8SAndrew Litteken; CHECK-NEXT:      End Instruction:   store i32 5, ptr %5, align 4
66*e240e6b8SAndrew Litteken; CHECK-NEXT:  Function: fish, Basic Block: entry
67*e240e6b8SAndrew Litteken; CHECK-NEXT:    Start Instruction:   store i32 4, ptr %4, align 4
68*e240e6b8SAndrew Litteken; CHECK-NEXT:      End Instruction:   store i32 5, ptr %5, align 4
69*e240e6b8SAndrew Litteken; CHECK-NEXT:  Function: dog, Basic Block: entry
70*e240e6b8SAndrew Litteken; CHECK-NEXT:    Start Instruction:   store i32 4, ptr %4, align 4
71da839fffSNikita Popov; CHECK-NEXT:      End Instruction:   store i32 5, ptr %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
81da839fffSNikita Popov  store i32 6, ptr %0, align 4
82da839fffSNikita Popov  store i32 1, ptr %1, align 4
83da839fffSNikita Popov  store i32 2, ptr %2, align 4
84da839fffSNikita Popov  store i32 3, ptr %3, align 4
85da839fffSNikita Popov  store i32 4, ptr %4, align 4
86da839fffSNikita Popov  store i32 5, ptr %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
97da839fffSNikita Popov  store i32 1, ptr %1, align 4
98da839fffSNikita Popov  store i32 2, ptr %2, align 4
99da839fffSNikita Popov  store i32 3, ptr %3, align 4
100da839fffSNikita Popov  store i32 4, ptr %4, align 4
101da839fffSNikita Popov  store i32 5, ptr %5, align 4
102da839fffSNikita Popov  store i32 6, ptr %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
114da839fffSNikita Popov  store i32 6, ptr %0, align 4
115da839fffSNikita Popov  store i32 1, ptr %1, align 4
116da839fffSNikita Popov  store i32 2, ptr %2, align 4
117da839fffSNikita Popov  store i32 3, ptr %3, align 4
118da839fffSNikita Popov  store i32 4, ptr %4, align 4
119da839fffSNikita Popov  store i32 5, ptr %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
131da839fffSNikita Popov  store i32 6, ptr %0, align 4
132da839fffSNikita Popov  store i32 1, ptr %1, align 4
133da839fffSNikita Popov  store i32 2, ptr %2, align 4
134da839fffSNikita Popov  store i32 3, ptr %3, align 4
135da839fffSNikita Popov  store i32 4, ptr %4, align 4
136da839fffSNikita Popov  store i32 5, ptr %5, align 4
137f02c4c87SAndrew Litteken  ret void
138f02c4c87SAndrew Litteken}
139*e240e6b8SAndrew Litteken;; NOTE: These prefixes are unused and the list is autogenerated. Do not add tests below this line:
140*e240e6b8SAndrew Litteken; CHECK: {{.*}}
141