[RISCV] Add shrinkwrap test cases showing gaps in current impl
[llvm-project.git] / llvm / test / CodeGen / X86 / cfi-epilogue-with-return.mir
blob583e54b097faf011c43e805833973db667600978
1 # RUN: llc -o - %s -mtriple=x86_64-- -run-pass=prologepilog 2>&1 | FileCheck %s
2 --- |
3   define i64 @_Z3foob(i1 zeroext %cond) #0 {
4     ret i64 0
5   }
6   attributes #0 = {"frame-pointer"="all"}
7 ...
8 ---
9 # If the epilogue bb.1 is a return block, no .cfi_restore is
10 # needed in it.
11 # CHECK:    bb.1:
12 # CHECK-NOT:  CFI_INSTRUCTION restore
13 # CHECK:      RET 0
14 # CHECK:    bb.2:
15 # CHECK:      RET 0
16 name:            _Z3foob
17 alignment:       16
18 tracksRegLiveness: true
19 liveins:
20   - { reg: '$edi' }
21 frameInfo:
22   maxAlignment:    1
23   hasCalls:        true
24   savePoint:       '%bb.1'
25   restorePoint:    '%bb.1'
26 machineFunctionInfo: {}
27 body:             |
28   bb.0:
29     liveins: $edi
30   
31     TEST8rr renamable $dil, renamable $dil, implicit-def $eflags, implicit killed $edi
32     JCC_1 %bb.2, 4, implicit killed $eflags
33     JMP_1 %bb.1
34   
35   bb.1:
36     renamable $rbx = IMPLICIT_DEF
37     renamable $r14 = IMPLICIT_DEF
38     renamable $r15 = IMPLICIT_DEF
39     renamable $r12 = IMPLICIT_DEF
40     renamable $r13 = IMPLICIT_DEF
41     dead $eax = MOV32r0 implicit-def dead $eflags, implicit-def $rax
42     RET 0, killed $rax
43   
44   bb.2:
45     dead $eax = MOV32r0 implicit-def dead $eflags, implicit-def $rax
46     RET 0, killed $rax
48 ...