97 lines · plain
1# REQUIRES: x86-registered-target2# RUN: llvm-ir2vec triplets --mode=mir %s -o - | FileCheck %s3 4# CHECK-LABEL: MAX_RELATION=45# CHECK-NEXT: [[COPY:[0-9]+]] [[VirtReg_GR32:[0-9]+]] 16# CHECK-NEXT: [[COPY]] [[PhyReg_GR32_BSI_and_GR32_SIDI:[0-9]+]] 27# CHECK-NEXT: [[COPY]] [[COPY]] 08# CHECK-NEXT: [[COPY]] [[VirtReg_GR32:[0-9]+]] 19# CHECK-NEXT: [[COPY]] [[PhyReg_GR32_DIBP_and_GR32_SIDI:[0-9]+]] 210# CHECK-NEXT: [[COPY]] [[ADD:[0-9]+]] 011# CHECK-NEXT: [[ADD]] [[VirtReg_GR32]] 112# CHECK-NEXT: [[ADD]] [[VirtReg_GR32]] 213# CHECK-NEXT: [[ADD]] [[VirtReg_GR32]] 314# CHECK-NEXT: [[ADD]] [[PhyReg_CCR:[0-9]+]] 415# CHECK-NEXT: [[ADD]] [[COPY]] 016# CHECK-NEXT: [[COPY]] [[PhyReg_GR32_AD:[0-9]+]] 117# CHECK-NEXT: [[COPY]] [[VirtReg_GR32]] 218# CHECK-NEXT: [[COPY]] [[RET:[0-9]+]] 019# CHECK-NEXT: [[RET]] [[Immediate:[0-9]+]] 120# CHECK-NEXT: [[RET]] [[PhyReg_GR32_AD]] 221# CHECK-NEXT: [[COPY]] [[VirtReg_GR32]] 122# CHECK-NEXT: [[COPY]] [[PhyReg_GR32_BSI_and_GR32_SIDI]] 223# CHECK-NEXT: [[COPY]] [[COPY]] 024# CHECK-NEXT: [[COPY]] [[VirtReg_GR32]] 125# CHECK-NEXT: [[COPY]] [[PhyReg_GR32_DIBP_and_GR32_SIDI]] 226# CHECK-NEXT: [[COPY]] [[IMUL:[0-9]+]] 027# CHECK-NEXT: [[IMUL]] [[VirtReg_GR32]] 128# CHECK-NEXT: [[IMUL]] [[VirtReg_GR32]] 229# CHECK-NEXT: [[IMUL]] [[VirtReg_GR32]] 330# CHECK-NEXT: [[IMUL]] [[PhyReg_CCR]] 431# CHECK-NEXT: [[IMUL]] [[COPY]] 032# CHECK-NEXT: [[COPY]] [[PhyReg_GR32_AD]] 133# CHECK-NEXT: [[COPY]] [[VirtReg_GR32]] 234# CHECK-NEXT: [[COPY]] [[RET]] 035# CHECK-NEXT: [[RET]] [[Immediate]] 136# CHECK-NEXT: [[RET]] [[PhyReg_GR32_AD]] 237 38 39 40--- |41 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"42 target triple = "x86_64-unknown-linux-gnu"43 44 define dso_local noundef i32 @add_function(i32 noundef %a, i32 noundef %b) {45 entry:46 %sum = add nsw i32 %a, %b47 ret i32 %sum48 }49 50 define dso_local noundef i32 @mul_function(i32 noundef %x, i32 noundef %y) {51 entry:52 %product = mul nsw i32 %x, %y53 ret i32 %product54 }55...56---57name: add_function58alignment: 1659tracksRegLiveness: true60registers:61 - { id: 0, class: gr32 }62 - { id: 1, class: gr32 }63 - { id: 2, class: gr32 }64liveins:65 - { reg: '$edi', virtual-reg: '%0' }66 - { reg: '$esi', virtual-reg: '%1' }67body: |68 bb.0.entry:69 liveins: $edi, $esi70 71 %1:gr32 = COPY $esi72 %0:gr32 = COPY $edi73 %2:gr32 = nsw ADD32rr %0, %1, implicit-def dead $eflags74 $eax = COPY %275 RET 0, $eax76 77---78name: mul_function79alignment: 1680tracksRegLiveness: true81registers:82 - { id: 0, class: gr32 }83 - { id: 1, class: gr32 }84 - { id: 2, class: gr32 }85liveins:86 - { reg: '$edi', virtual-reg: '%0' }87 - { reg: '$esi', virtual-reg: '%1' }88body: |89 bb.0.entry:90 liveins: $edi, $esi91 92 %1:gr32 = COPY $esi93 %0:gr32 = COPY $edi94 %2:gr32 = nsw IMUL32rr %0, %1, implicit-def dead $eflags95 $eax = COPY %296 RET 0, $eax97