brintos

brintos / llvm-project-archived public Read only

0
0
Text · 3.6 KiB · 95c96d0 Raw
136 lines · plain
1# RUN: llc -mtriple=x86_64-- -run-pass branch-folder -O3 -o - %s | FileCheck %s2 3---4name:            test1a5body:             |6  ; CHECK-LABEL: name: test1a7  ; CHECK: bb.0:8  ; CHECK:   TEST8rr killed renamable $al, renamable $al, implicit-def $eflags9  ; CHECK:   JCC_1 %bb.2, 5, implicit $eflags10  ; CHECK: bb.1:11  ; CHECK:   successors: %bb.2(0x80000000)12  ; CHECK:   MOV8mi $r12, 1, $noreg, 0, $noreg, 013  ; CHECK-NOT: RET14  ; CHECK: bb.2:15  ; CHECK:   MOV8mi $r13, 1, $noreg, 0, $noreg, 016  ; CHECK:   RET 017  bb.0:18    TEST8rr killed renamable $al, renamable $al, implicit-def $eflags19    JCC_1 %bb.2, 5, implicit killed $eflags20 21  bb.1:22    MOV8mi $r12, 1, $noreg, 0, $noreg, 023    MOV8mi $r13, 1, $noreg, 0, $noreg, 024    RET 025 26  bb.2:27    MOV8mi $r13, 1, $noreg, 0, $noreg, 028    RET 029...30 31---32name:            test1b33body:             |34 35  ; Verify that we get the same rewrites as in test1a when adding some36  ; DBG_VALUE instructions in the mix.37  ;38  ; CHECK-LABEL: name: test1b39  ; CHECK: bb.0:40  ; CHECK:   TEST8rr killed renamable $al, renamable $al, implicit-def $eflags41  ; CHECK:   JCC_1 %bb.2, 5, implicit $eflags42  ; CHECK: bb.1:43  ; CHECK:   successors: %bb.2(0x80000000)44  ; CHECK:   MOV8mi $r12, 1, $noreg, 0, $noreg, 045  ; CHECK-NOT: RET46  ; CHECK: bb.2:47  ; CHECK:   DBG_VALUE48  ; CHECK:   DBG_VALUE49  ; CHECK:   MOV8mi $r13, 1, $noreg, 0, $noreg, 050  ; CHECK:   RET 051  bb.0:52    TEST8rr killed renamable $al, renamable $al, implicit-def $eflags53    JCC_1 %bb.2, 5, implicit killed $eflags54 55  bb.1:56    MOV8mi $r12, 1, $noreg, 0, $noreg, 057    MOV8mi $r13, 1, $noreg, 0, $noreg, 058    RET 059 60  bb.2:61    DBG_VALUE62    DBG_VALUE63    MOV8mi $r13, 1, $noreg, 0, $noreg, 064    RET 065...66 67---68name:            test2a69body:             |70  ; CFI instruction currently prevents the rewrite here (although technically71  ; I suppose that branch folding could let bb.1 fallthrough into bb.2 here).72  ;73  ; CHECK-LABEL: name: test2a74  ; CHECK: bb.0:75  ; CHECK:   TEST8rr killed renamable $al, renamable $al, implicit-def $eflags76  ; CHECK:   JCC_1 %bb.2, 5, implicit killed $eflags77  ; CHECK: bb.1:78  ; CHECK:   MOV8mi $r12, 1, $noreg, 0, $noreg, 079  ; CHECK:   MOV8mi $r13, 1, $noreg, 0, $noreg, 080  ; CHECK:   RET 081  ; CHECK: bb.2:82  ; CHECK:   CFI_INSTRUCTION def_cfa_offset 883  ; CHECK:   MOV8mi $r13, 1, $noreg, 0, $noreg, 084  ; CHECK:   RET 085  bb.0:86    TEST8rr killed renamable $al, renamable $al, implicit-def $eflags87    JCC_1 %bb.2, 5, implicit killed $eflags88 89  bb.1:90    MOV8mi $r12, 1, $noreg, 0, $noreg, 091    MOV8mi $r13, 1, $noreg, 0, $noreg, 092    RET 093 94  bb.2:95    CFI_INSTRUCTION def_cfa_offset 896    MOV8mi $r13, 1, $noreg, 0, $noreg, 097    RET 098...99 100---101name:            test2b102body:             |103  ; Verify that we get the same rewrites as in test1a when adding some104  ; DBG_VALUE instructions in the mix.105  ;106  ; CHECK-LABEL: name: test2b107  ; CHECK: bb.0:108  ; CHECK:   TEST8rr killed renamable $al, renamable $al, implicit-def $eflags109  ; CHECK:   JCC_1 %bb.2, 5, implicit killed $eflags110  ; CHECK: bb.1:111  ; CHECK:   MOV8mi $r12, 1, $noreg, 0, $noreg, 0112  ; CHECK:   MOV8mi $r13, 1, $noreg, 0, $noreg, 0113  ; CHECK:   RET 0114  ; CHECK: bb.2:115  ; CHECK:   DBG_VALUE116  ; CHECK:   CFI_INSTRUCTION def_cfa_offset 8117  ; CHECK:   DBG_VALUE118  ; CHECK:   MOV8mi $r13, 1, $noreg, 0, $noreg, 0119  ; CHECK:   RET 0120  bb.0:121    TEST8rr killed renamable $al, renamable $al, implicit-def $eflags122    JCC_1 %bb.2, 5, implicit killed $eflags123 124  bb.1:125    MOV8mi $r12, 1, $noreg, 0, $noreg, 0126    MOV8mi $r13, 1, $noreg, 0, $noreg, 0127    RET 0128 129  bb.2:130    DBG_VALUE131    CFI_INSTRUCTION def_cfa_offset 8132    DBG_VALUE133    MOV8mi $r13, 1, $noreg, 0, $noreg, 0134    RET 0135...136