brintos

brintos / llvm-project-archived public Read only

0
0
Text · 5.0 KiB · f2572f5 Raw
145 lines · plain
1# REQUIRES: x86-registered-target2# RUN: llc -mtriple=x86_64-unknown-linux-gnu -run-pass=none -print-mir2vec -mir2vec-vocab-path=%S/Inputs/mir2vec_dummy_3D_vocab.json %s -o /dev/null 2>&1 | FileCheck %s3 4--- |5  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"6  7  define dso_local i32 @abc(i32 noundef %a, i32 noundef %b) {8  entry:9    %retval = alloca i32, align 410    %a.addr = alloca i32, align 411    %b.addr = alloca i32, align 412    store i32 %a, ptr %a.addr, align 413    store i32 %b, ptr %b.addr, align 414    %0 = load i32, ptr %a.addr, align 415    %1 = load i32, ptr %b.addr, align 416    %cmp = icmp sgt i32 %0, %117    br i1 %cmp, label %if.then, label %if.else18  19  if.then:                                          ; preds = %entry20    %2 = load i32, ptr %b.addr, align 421    store i32 %2, ptr %retval, align 422    br label %return23  24  if.else:                                          ; preds = %entry25    %3 = load i32, ptr %a.addr, align 426    store i32 %3, ptr %retval, align 427    br label %return28  29  return:                                           ; preds = %if.else, %if.then30    %4 = load i32, ptr %retval, align 431    ret i32 %432  }33...34---35name:            abc36alignment:       1637exposesReturnsTwice: false38legalized:       false39regBankSelected: false40selected:        false41failedISel:      false42tracksRegLiveness: true43hasWinCFI:       false44noPhis:          false45isSSA:           true46noVRegs:         false47hasFakeUses:     false48callsEHReturn:   false49callsUnwindInit: false50hasEHContTarget: false51hasEHScopes:     false52hasEHFunclets:   false53isOutlined:      false54debugInstrRef:   true55failsVerification: false56tracksDebugUserValues: false57registers:58  - { id: 0, class: gr32, preferred-register: '', flags: [  ] }59  - { id: 1, class: gr32, preferred-register: '', flags: [  ] }60  - { id: 2, class: gr32, preferred-register: '', flags: [  ] }61  - { id: 3, class: gr32, preferred-register: '', flags: [  ] }62  - { id: 4, class: gr32, preferred-register: '', flags: [  ] }63  - { id: 5, class: gr32, preferred-register: '', flags: [  ] }64liveins:65  - { reg: '$edi', virtual-reg: '%0' }66  - { reg: '$esi', virtual-reg: '%1' }67frameInfo:68  isFrameAddressTaken: false69  isReturnAddressTaken: false70  hasStackMap:     false71  hasPatchPoint:   false72  stackSize:       073  offsetAdjustment: 074  maxAlignment:    475  adjustsStack:    false76  hasCalls:        false77  stackProtector:  ''78  functionContext: ''79  maxCallFrameSize: 429496729580  cvBytesOfCalleeSavedRegisters: 081  hasOpaqueSPAdjustment: false82  hasVAStart:      false83  hasMustTailInVarArgFunc: false84  hasTailCall:     false85  isCalleeSavedInfoValid: false86  localFrameSize:  087fixedStack:      []88stack:89  - { id: 0, name: retval, type: default, offset: 0, size: 4, alignment: 4, 90      stack-id: default, callee-saved-register: '', callee-saved-restored: true, 91      debug-info-variable: '', debug-info-expression: '', debug-info-location: '' }92  - { id: 1, name: a.addr, type: default, offset: 0, size: 4, alignment: 4, 93      stack-id: default, callee-saved-register: '', callee-saved-restored: true, 94      debug-info-variable: '', debug-info-expression: '', debug-info-location: '' }95  - { id: 2, name: b.addr, type: default, offset: 0, size: 4, alignment: 4, 96      stack-id: default, callee-saved-register: '', callee-saved-restored: true, 97      debug-info-variable: '', debug-info-expression: '', debug-info-location: '' }98entry_values:    []99callSites:       []100debugValueSubstitutions: []101constants:       []102machineFunctionInfo:103  amxProgModel:    None104body:             |105  bb.0.entry:106    successors: %bb.1(0x40000000), %bb.2(0x40000000)107    liveins: $edi, $esi108  109    %1:gr32 = COPY $esi110    %0:gr32 = COPY $edi111    MOV32mr %stack.1.a.addr, 1, $noreg, 0, $noreg, %0 :: (store (s32) into %ir.a.addr)112    MOV32mr %stack.2.b.addr, 1, $noreg, 0, $noreg, %1 :: (store (s32) into %ir.b.addr)113    %2:gr32 = SUB32rr %0, %1, implicit-def $eflags114    JCC_1 %bb.2, 14, implicit $eflags115    JMP_1 %bb.1116  117  bb.1.if.then:118    successors: %bb.3(0x80000000)119  120    %4:gr32 = MOV32rm %stack.2.b.addr, 1, $noreg, 0, $noreg :: (dereferenceable load (s32) from %ir.b.addr)121    MOV32mr %stack.0.retval, 1, $noreg, 0, $noreg, killed %4 :: (store (s32) into %ir.retval)122    JMP_1 %bb.3123  124  bb.2.if.else:125    successors: %bb.3(0x80000000)126  127    %3:gr32 = MOV32rm %stack.1.a.addr, 1, $noreg, 0, $noreg :: (dereferenceable load (s32) from %ir.a.addr)128    MOV32mr %stack.0.retval, 1, $noreg, 0, $noreg, killed %3 :: (store (s32) into %ir.retval)129  130  bb.3.return:131    %5:gr32 = MOV32rm %stack.0.retval, 1, $noreg, 0, $noreg :: (dereferenceable load (s32) from %ir.retval)132    $eax = COPY %5133    RET 0, $eax134...135 136# CHECK: Machine basic block vectors:137# CHECK-NEXT: Machine basic block: abc:entry:138# CHECK-NEXT:  [ 23.60  24.20  24.80 ]139# CHECK-NEXT: Machine basic block: abc:if.then:140# CHECK-NEXT:  [ 7.30  7.60  7.90 ]141# CHECK-NEXT: Machine basic block: abc:if.else:142# CHECK-NEXT:  [ 3.40  3.60  3.80 ]143# CHECK-NEXT: Machine basic block: abc:return:144# CHECK-NEXT:  [ 8.80  9.10  9.40 ]145