Revert " [LoongArch][ISel] Check the number of sign bits in `PatGprGpr_32` (#107432)"
[llvm-project.git] / llvm / test / CodeGen / X86 / regalloc-fast-missing-live-out-spill.mir
blob143b6864b1191bd54fc8bfae7c2566968900f642
1 # NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py
2 # RUN: llc -mtriple=x86_64-grtev4-linux-gnu -run-pass=regallocfast -o - %s | FileCheck %s
3 # RUN: llc -mtriple=x86_64-grtev4-linux-gnu -passes=regallocfast -o - %s | FileCheck %s
5 # Bug 41973. Make sure %12 is detected as live out of %bb.0, even
6 # though the use is allocated before the def block %bb.3. Previously
7 # mayLiveOut only recorded on defs, and would not find the virtual
8 # register use if it had already been replaced with a physical
9 # register.
11 ---
12 name:            main
13 tracksRegLiveness: true
14 body:             |
15   ; CHECK-LABEL: name: main
16   ; CHECK: bb.0:
17   ; CHECK:   successors: %bb.3(0x80000000)
18   ; CHECK:   liveins: $edi, $rsi
19   ; CHECK:   MOV64mr %stack.0, 1, $noreg, 0, $noreg, killed $rsi :: (store (s64) into %stack.0)
20   ; CHECK:   JMP_1 %bb.3
21   ; CHECK: bb.1:
22   ; CHECK:   successors:
23   ; CHECK: bb.2:
24   ; CHECK:   successors: %bb.3(0x80000000)
25   ; CHECK:   $rcx = MOV64rm %stack.1, 1, $noreg, 0, $noreg :: (load (s64) from %stack.1)
26   ; CHECK:   renamable $eax = MOV32r0 implicit-def dead $eflags
27   ; CHECK:   renamable $rax = SUBREG_TO_REG 0, killed renamable $eax, %subreg.sub_32bit
28   ; CHECK:   MOV64mi32 killed renamable $rcx, 1, $noreg, 0, $noreg, 0 :: (volatile store (s64))
29   ; CHECK:   MOV64mr %stack.0, 1, $noreg, 0, $noreg, killed $rax :: (store (s64) into %stack.0)
30   ; CHECK: bb.3:
31   ; CHECK:   successors: %bb.2(0x40000000), %bb.1(0x40000000)
32   ; CHECK:   $rax = MOV64rm %stack.0, 1, $noreg, 0, $noreg :: (load (s64) from %stack.0)
33   ; CHECK:   renamable $ecx = MOV32r0 implicit-def dead $eflags
34   ; CHECK:   renamable $rcx = SUBREG_TO_REG 0, killed renamable $ecx, %subreg.sub_32bit
35   ; CHECK:   MOV64mr %stack.1, 1, $noreg, 0, $noreg, killed $rcx :: (store (s64) into %stack.1)
36   ; CHECK:   JMP64r killed renamable $rax
37   bb.0:
38     liveins: $edi, $rsi
40     %4:gr64 = COPY $rsi
41     %2:gr32 = COPY $edi
42     %3:gr32 = COPY killed %2
43     %5:gr64 = COPY killed %4
44     %13:gr64 = COPY %5
45     JMP_1 %bb.3
47   bb.1:
48     successors:
50   bb.2:
51     %0:gr64 = COPY %12
52     %10:gr32 = MOV32r0 implicit-def $eflags
53     %11:gr64 = SUBREG_TO_REG 0, %10, %subreg.sub_32bit
54     MOV64mi32 %0, 1, $noreg, 0, $noreg, 0 :: (volatile store (s64))
55     %13:gr64 = COPY %11
57   bb.3:
58     successors: %bb.2, %bb.1
60     %1:gr64 = COPY %13
61     %9:gr32 = MOV32r0 implicit-def dead $eflags
62     %8:gr64 = SUBREG_TO_REG 0, killed %9, %subreg.sub_32bit
63     %12:gr64 = COPY %8
64     JMP64r %1
66 ...