141 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_test_checks.py2; RUN: opt -disable-output -S -passes=print-ir-similarity < %s 2>&1 | FileCheck %s3 4; This is a simple test to make sure the IRSimilarityIdentifier and5; IRSimilarityPrinterPass is working.6 7; CHECK: 4 candidates of length 6. Found in: 8; CHECK-NEXT: Function: turtle, Basic Block: (unnamed)9; CHECK-NEXT: Start Instruction: store i32 1, ptr %1, align 410; CHECK-NEXT: End Instruction: store i32 6, ptr %6, align 411; CHECK-NEXT: Function: cat, Basic Block: entry12; CHECK-NEXT: Start Instruction: store i32 6, ptr %0, align 413; CHECK-NEXT: End Instruction: store i32 5, ptr %5, align 414; CHECK-NEXT: Function: fish, Basic Block: entry15; CHECK-NEXT: Start Instruction: store i32 6, ptr %0, align 416; CHECK-NEXT: End Instruction: store i32 5, ptr %5, align 417; CHECK-NEXT: Function: dog, Basic Block: entry18; CHECK-NEXT: Start Instruction: store i32 6, ptr %0, align 419; CHECK-NEXT: End Instruction: store i32 5, ptr %5, align 420; CHECK-NEXT:4 candidates of length 5. Found in: 21; CHECK-NEXT: Function: turtle, Basic Block: (unnamed)22; CHECK-NEXT: Start Instruction: store i32 2, ptr %2, align 423; CHECK-NEXT: End Instruction: store i32 6, ptr %6, align 424; CHECK-NEXT: Function: cat, Basic Block: entry25; CHECK-NEXT: Start Instruction: store i32 1, ptr %1, align 426; CHECK-NEXT: End Instruction: store i32 5, ptr %5, align 427; CHECK-NEXT: Function: fish, Basic Block: entry28; CHECK-NEXT: Start Instruction: store i32 1, ptr %1, align 429; CHECK-NEXT: End Instruction: store i32 5, ptr %5, align 430; CHECK-NEXT: Function: dog, Basic Block: entry31; CHECK-NEXT: Start Instruction: store i32 1, ptr %1, align 432; CHECK-NEXT: End Instruction: store i32 5, ptr %5, align 433; CHECK-NEXT:4 candidates of length 4. Found in: 34; CHECK-NEXT: Function: turtle, Basic Block: (unnamed)35; CHECK-NEXT: Start Instruction: store i32 3, ptr %3, align 436; CHECK-NEXT: End Instruction: store i32 6, ptr %6, align 437; CHECK-NEXT: Function: cat, Basic Block: entry38; CHECK-NEXT: Start Instruction: store i32 2, ptr %2, align 439; CHECK-NEXT: End Instruction: store i32 5, ptr %5, align 440; CHECK-NEXT: Function: fish, Basic Block: entry41; CHECK-NEXT: Start Instruction: store i32 2, ptr %2, align 442; CHECK-NEXT: End Instruction: store i32 5, ptr %5, align 443; CHECK-NEXT: Function: dog, Basic Block: entry44; CHECK-NEXT: Start Instruction: store i32 2, ptr %2, align 445; CHECK-NEXT: End Instruction: store i32 5, ptr %5, align 446; CHECK-NEXT:4 candidates of length 3. Found in: 47; CHECK-NEXT: Function: turtle, Basic Block: (unnamed)48; CHECK-NEXT: Start Instruction: store i32 4, ptr %4, align 449; CHECK-NEXT: End Instruction: store i32 6, ptr %6, align 450; CHECK-NEXT: Function: cat, Basic Block: entry51; CHECK-NEXT: Start Instruction: store i32 3, ptr %3, align 452; CHECK-NEXT: End Instruction: store i32 5, ptr %5, align 453; CHECK-NEXT: Function: fish, Basic Block: entry54; CHECK-NEXT: Start Instruction: store i32 3, ptr %3, align 455; CHECK-NEXT: End Instruction: store i32 5, ptr %5, align 456; CHECK-NEXT: Function: dog, Basic Block: entry57; CHECK-NEXT: Start Instruction: store i32 3, ptr %3, align 458; CHECK-NEXT: End Instruction: store i32 5, ptr %5, align 459; CHECK-NEXT:4 candidates of length 2. Found in: 60; CHECK-NEXT: Function: turtle, Basic Block: (unnamed)61; CHECK-NEXT: Start Instruction: store i32 5, ptr %5, align 462; CHECK-NEXT: End Instruction: store i32 6, ptr %6, align 463; CHECK-NEXT: Function: cat, Basic Block: entry64; CHECK-NEXT: Start Instruction: store i32 4, ptr %4, align 465; CHECK-NEXT: End Instruction: store i32 5, ptr %5, align 466; CHECK-NEXT: Function: fish, Basic Block: entry67; CHECK-NEXT: Start Instruction: store i32 4, ptr %4, align 468; CHECK-NEXT: End Instruction: store i32 5, ptr %5, align 469; CHECK-NEXT: Function: dog, Basic Block: entry70; CHECK-NEXT: Start Instruction: store i32 4, ptr %4, align 471; CHECK-NEXT: End Instruction: store i32 5, ptr %5, align 472 73define linkonce_odr void @fish() {74entry:75 %0 = alloca i32, align 476 %1 = alloca i32, align 477 %2 = alloca i32, align 478 %3 = alloca i32, align 479 %4 = alloca i32, align 480 %5 = alloca i32, align 481 store i32 6, ptr %0, align 482 store i32 1, ptr %1, align 483 store i32 2, ptr %2, align 484 store i32 3, ptr %3, align 485 store i32 4, ptr %4, align 486 store i32 5, ptr %5, align 487 ret void88}89 90define void @turtle() {91 %1 = alloca i32, align 492 %2 = alloca i32, align 493 %3 = alloca i32, align 494 %4 = alloca i32, align 495 %5 = alloca i32, align 496 %6 = alloca i32, align 497 store i32 1, ptr %1, align 498 store i32 2, ptr %2, align 499 store i32 3, ptr %3, align 4100 store i32 4, ptr %4, align 4101 store i32 5, ptr %5, align 4102 store i32 6, ptr %6, align 4103 ret void104}105 106define void @cat() {107entry:108 %0 = alloca i32, align 4109 %1 = alloca i32, align 4110 %2 = alloca i32, align 4111 %3 = alloca i32, align 4112 %4 = alloca i32, align 4113 %5 = alloca i32, align 4114 store i32 6, ptr %0, align 4115 store i32 1, ptr %1, align 4116 store i32 2, ptr %2, align 4117 store i32 3, ptr %3, align 4118 store i32 4, ptr %4, align 4119 store i32 5, ptr %5, align 4120 ret void121}122 123define void @dog() {124entry:125 %0 = alloca i32, align 4126 %1 = alloca i32, align 4127 %2 = alloca i32, align 4128 %3 = alloca i32, align 4129 %4 = alloca i32, align 4130 %5 = alloca i32, align 4131 store i32 6, ptr %0, align 4132 store i32 1, ptr %1, align 4133 store i32 2, ptr %2, align 4134 store i32 3, ptr %3, align 4135 store i32 4, ptr %4, align 4136 store i32 5, ptr %5, align 4137 ret void138}139;; NOTE: These prefixes are unused and the list is autogenerated. Do not add tests below this line:140; CHECK: {{.*}}141