brintos

brintos / llvm-project-archived public Read only

0
0
Text · 3.0 KiB · e50947a Raw
93 lines · plain
1# RUN: llc -mtriple=i686-unknown-unknown -run-pass=x86-flags-copy-lowering \2# RUN:  -print-after=x86-flags-copy-lowering %s -o - | FileCheck %s3#4# Check that $eflags is removed from live-in lists of successor blocks.5#6# CHECK-NOT: liveins: $eflags7 8--- |9  define void @fun(i16 %arg, i64 %arg1, i8 %arg2, ptr %arg3, i32 %arg4) { ret void}10...11---12name:            fun13alignment:       1614tracksRegLiveness: true15registers:16  - { id: 0, class: gr16 }17  - { id: 1, class: gr16 }18  - { id: 2, class: gr16 }19  - { id: 3, class: gr32 }20  - { id: 4, class: gr32 }21  - { id: 5, class: gr8 }22  - { id: 6, class: gr32 }23  - { id: 7, class: gr32 }24  - { id: 8, class: gr32 }25  - { id: 9, class: gr32 }26  - { id: 10, class: gr32 }27  - { id: 11, class: gr32 }28  - { id: 12, class: gr32 }29  - { id: 13, class: gr8 }30  - { id: 14, class: gr32 }31  - { id: 15, class: gr32 }32  - { id: 16, class: gr32_abcd }33  - { id: 17, class: gr8 }34  - { id: 18, class: gr8 }35  - { id: 19, class: gr32 }36  - { id: 20, class: gr32 }37frameInfo:38  maxAlignment:    439fixedStack:40  - { id: 0, offset: 20, size: 4, alignment: 4, isImmutable: true }41  - { id: 1, offset: 16, size: 4, alignment: 4, isImmutable: true }42  - { id: 2, offset: 12, size: 1, alignment: 4, isImmutable: true }43  - { id: 3, offset: 8, size: 4, alignment: 4, isImmutable: true }44  - { id: 4, offset: 4, size: 4, alignment: 4, isImmutable: true }45  - { id: 5, size: 2, alignment: 4, isImmutable: true }46machineFunctionInfo: {}47body:             |48  bb.0:49    %4:gr32 = MOV32rm %fixed-stack.3, 1, $noreg, 0, $noreg :: (load (s32) from %fixed-stack.3)50    %3:gr32 = MOV32rm %fixed-stack.4, 1, $noreg, 0, $noreg :: (load (s32) from %fixed-stack.4)51    %7:gr32 = MOV32rm %fixed-stack.0, 1, $noreg, 0, $noreg :: (load (s32) from %fixed-stack.0)52    %6:gr32 = MOV32rm %fixed-stack.1, 1, $noreg, 0, $noreg :: (load (s32) from %fixed-stack.1)53    %5:gr8 = MOV8rm %fixed-stack.2, 1, $noreg, 0, $noreg :: (load (s8) from %fixed-stack.2, align 4)54    %9:gr32 = IMPLICIT_DEF55    %11:gr32 = IMPLICIT_DEF56  57  bb.1:58    successors: %bb.2, %bb.359  60    CMP32rr %3, %9, implicit-def $eflags61    %10:gr32 = SBB32rr %4, %11, implicit-def $eflags, implicit $eflags62    %12:gr32 = COPY $eflags63    %13:gr8 = SETCCr 12, implicit $eflags64    %14:gr32 = MOVZX32rr8 killed %1365    %15:gr32 = NEG32r %14, implicit-def dead $eflags66    %16:gr32_abcd = MOV32r0 implicit-def dead $eflags67    $eflags = COPY %1268    %17:gr8 = COPY %16.sub_8bit69    JCC_1 %bb.3, 12, implicit $eflags70  71  bb.2:72    liveins: $eflags73  74  75  bb.3:76    successors: %bb.4, %bb.577    liveins: $eflags78  79    %18:gr8 = PHI %5, %bb.2, %17, %bb.180    MOV8mr %6, 1, $noreg, 0, $noreg, killed %18 :: (volatile store (s8) into %ir.arg3)81    JCC_1 %bb.5, 12, implicit $eflags82  83  bb.4:84  85  bb.5:86    %19:gr32 = PHI %16, %bb.4, %15, %bb.387    $eax = COPY %788    CDQ implicit-def $eax, implicit-def $edx, implicit $eax89    IDIV32r killed %19, implicit-def dead $eax, implicit-def $edx, implicit-def dead $eflags, implicit $eax, implicit $edx90    JMP_1 %bb.191 92...93