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