brintos

brintos / llvm-project-archived public Read only

0
0
Text · 2.8 KiB · 4ea1010 Raw
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