93 lines · plain
1# REQUIRES: x86_64-linux2# RUN: llvm-ir2vec embeddings --mode=mir --mir2vec-vocab-path=%S/../../CodeGen/MIR2Vec/Inputs/mir2vec_dummy_3D_vocab.json %s | FileCheck %s -check-prefix=CHECK-DEFAULT3# RUN: llvm-ir2vec embeddings --mode=mir --level=func --mir2vec-vocab-path=%S/../../CodeGen/MIR2Vec/Inputs/mir2vec_dummy_3D_vocab.json %s | FileCheck %s -check-prefix=CHECK-FUNC-LEVEL4# RUN: llvm-ir2vec embeddings --mode=mir --level=func --function=add_function --mir2vec-vocab-path=%S/../../CodeGen/MIR2Vec/Inputs/mir2vec_dummy_3D_vocab.json %s | FileCheck %s -check-prefix=CHECK-FUNC-LEVEL-ADD5# RUN: not llvm-ir2vec embeddings --mode=mir --level=func --function=missing_function --mir2vec-vocab-path=%S/../../CodeGen/MIR2Vec/Inputs/mir2vec_dummy_3D_vocab.json %s 2>&1 | FileCheck %s -check-prefix=CHECK-FUNC-MISSING6# RUN: llvm-ir2vec embeddings --mode=mir --level=bb --mir2vec-vocab-path=%S/../../CodeGen/MIR2Vec/Inputs/mir2vec_dummy_3D_vocab.json %s | FileCheck %s -check-prefix=CHECK-BB-LEVEL7# RUN: llvm-ir2vec embeddings --mode=mir --level=inst --function=add_function --mir2vec-vocab-path=%S/../../CodeGen/MIR2Vec/Inputs/mir2vec_dummy_3D_vocab.json %s | FileCheck %s -check-prefix=CHECK-INST-LEVEL8 9--- |10 target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128"11 target triple = "x86_64-unknown-linux-gnu"12 13 define dso_local noundef i32 @add_function(i32 noundef %a, i32 noundef %b) {14 entry:15 %sum = add nsw i32 %a, %b16 %result = mul nsw i32 %sum, 217 ret i32 %result18 }19 20 define dso_local void @simple_function() {21 entry:22 ret void23 }24...25---26name: add_function27alignment: 1628tracksRegLiveness: true29registers:30 - { id: 0, class: gr32 }31 - { id: 1, class: gr32 }32 - { id: 2, class: gr32 }33 - { id: 3, class: gr32 }34liveins:35 - { reg: '$edi', virtual-reg: '%0' }36 - { reg: '$esi', virtual-reg: '%1' }37body: |38 bb.0.entry:39 liveins: $edi, $esi40 41 %1:gr32 = COPY $esi42 %0:gr32 = COPY $edi43 %2:gr32 = nsw ADD32rr %0, %1, implicit-def dead $eflags44 %3:gr32 = ADD32rr %2, %2, implicit-def dead $eflags45 $eax = COPY %346 RET 0, $eax47 48---49name: simple_function50alignment: 1651tracksRegLiveness: true52body: |53 bb.0.entry:54 RET 055 56# CHECK-DEFAULT: MIR2Vec embeddings for machine function add_function:57# CHECK-DEFAULT-NEXT: Function vector: [ 26.50 27.10 27.70 ]58# CHECK-DEFAULT: MIR2Vec embeddings for machine function simple_function:59# CHECK-DEFAULT-NEXT: Function vector: [ 1.10 1.20 1.30 ]60 61# CHECK-FUNC-LEVEL: MIR2Vec embeddings for machine function add_function:62# CHECK-FUNC-LEVEL-NEXT: Function vector: [ 26.50 27.10 27.70 ]63# CHECK-FUNC-LEVEL: MIR2Vec embeddings for machine function simple_function:64# CHECK-FUNC-LEVEL-NEXT: Function vector: [ 1.10 1.20 1.30 ]65 66# CHECK-FUNC-LEVEL-ADD: MIR2Vec embeddings for machine function add_function:67# CHECK-FUNC-LEVEL-ADD-NEXT: Function vector: [ 26.50 27.10 27.70 ]68# CHECK-FUNC-LEVEL-ADD-NOT: simple_function69 70# CHECK-FUNC-MISSING: error: Function 'missing_function' not found71 72# CHECK-BB-LEVEL: MIR2Vec embeddings for machine function add_function:73# CHECK-BB-LEVEL-NEXT: Basic block vectors:74# CHECK-BB-LEVEL-NEXT: MBB entry: [ 26.50 27.10 27.70 ]75# CHECK-BB-LEVEL: MIR2Vec embeddings for machine function simple_function:76# CHECK-BB-LEVEL-NEXT: Basic block vectors:77# CHECK-BB-LEVEL-NEXT: MBB entry: [ 1.10 1.20 1.30 ]78 79# CHECK-INST-LEVEL: MIR2Vec embeddings for machine function add_function:80# CHECK-INST-LEVEL-NEXT: Instruction vectors:81# CHECK-INST-LEVEL: %1:gr32 = COPY $esi82# CHECK-INST-LEVEL-NEXT: -> [ 6.00 6.10 6.20 ]83# CHECK-INST-LEVEL-NEXT: %0:gr32 = COPY $edi84# CHECK-INST-LEVEL-NEXT: -> [ 6.00 6.10 6.20 ]85# CHECK-INST-LEVEL: %2:gr32 = nsw ADD32rr86# CHECK-INST-LEVEL: -> [ 3.70 3.80 3.90 ]87# CHECK-INST-LEVEL: %3:gr32 = ADD32rr88# CHECK-INST-LEVEL: -> [ 3.70 3.80 3.90 ]89# CHECK-INST-LEVEL: $eax = COPY %3:gr3290# CHECK-INST-LEVEL-NEXT: -> [ 6.00 6.10 6.20 ]91# CHECK-INST-LEVEL: RET 0, $eax92# CHECK-INST-LEVEL-NEXT: -> [ 1.10 1.20 1.30 ]93