1# RUN: llc -run-pass mir-namer -x mir -verify-machineinstrs %s -o - | FileCheck %s 2# RUN: llc -run-pass mir-canonicalizer -x mir -verify-machineinstrs %s -o - | FileCheck %s 3# RUN: llc -run-pass mir-namer -mir-vreg-namer-use-stable-hash -x mir -verify-machineinstrs %s -o - | FileCheck %s 4# RUN: llc -run-pass mir-canonicalizer -mir-vreg-namer-use-stable-hash -x mir -verify-machineinstrs %s -o - | FileCheck %s 5--- | 6 target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" 7 target triple = "x86_64-unknown-linux-gnu" 8 define i32 @_Z1fi(i32 %arg) { 9 %tmp = alloca i32, align 4 10 %tmp1 = alloca i32, align 4 11 ret i32 %arg 12 } 13 14... 15--- 16name: _Z1fi 17registers: 18 - { id: 0, class: _, preferred-register: '' } 19 - { id: 1, class: _, preferred-register: '' } 20 - { id: 2, class: _, preferred-register: '' } 21 - { id: 3, class: _, preferred-register: '' } 22 - { id: 4, class: _, preferred-register: '' } 23 - { id: 5, class: _, preferred-register: '' } 24 - { id: 6, class: _, preferred-register: '' } 25 - { id: 7, class: _, preferred-register: '' } 26 - { id: 8, class: _, preferred-register: '' } 27stack: 28 - { id: 0, name: tmp, type: default, offset: 0, size: 4, alignment: 4 } 29 - { id: 1, name: tmp1, type: default, offset: 0, size: 4, alignment: 4 } 30body: | 31 bb.0: 32 %tmp0:_(s32) = COPY $edi 33 %tmp1:_(s32) = G_CONSTANT i32 0 34 %tmp5:_(p0) = G_FRAME_INDEX %stack.0.tmp 35 %tmp6:_(p0) = G_FRAME_INDEX %stack.1.tmp1 36 G_STORE %tmp0(s32), %tmp5(p0) :: (store 4 into %ir.tmp) 37 %tmp7:_(s32) = G_LOAD %tmp5(p0) :: (load 4 from %ir.tmp) 38 %tmp8:_(s1) = G_ICMP intpred(ne), %tmp7(s32), %tmp1 39 G_BRCOND %tmp8(s1), %bb.1 40 G_BR %bb.2 41 42 ; CHECK: bb.1: 43 ; CHECK: %bb2_{{[0-9]+}}__1:_(s32) = G_CONSTANT 44 bb.1: 45 %tmp4:_(s32) = G_CONSTANT i32 1 46 G_STORE %tmp4(s32), %tmp6(p0) :: (store 4 into %ir.tmp1) 47 G_BR %bb.3 48 49 50 ; CHECK: bb.2: 51 ; CHECK: %bb1_{{[0-9]+}}__1:_(s32) = G_CONSTANT 52 bb.2: 53 %tmp3:_(s32) = G_CONSTANT i32 2 54 G_STORE %tmp3(s32), %tmp6(p0) :: (store 4 into %ir.tmp1) 55 56 ; CHECK: bb.3: 57 ; CHECK: %bb3_{{[0-9]+}}__1:_(s32) = G_LOAD 58 bb.3: 59 %tmp9:_(s32) = G_LOAD %tmp6(p0) :: (load 4 from %ir.tmp1) 60 $eax = COPY %tmp9(s32) 61 RET 0, implicit $eax 62 63... 64