]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - test/CodeGen/MIR/X86/basic-block-liveins.mir
Vendor import of llvm trunk r291274:
[FreeBSD/FreeBSD.git] / test / CodeGen / MIR / X86 / basic-block-liveins.mir
1 # RUN: llc -march=x86-64 -run-pass none -o - %s | FileCheck %s
2 # This test ensures that the MIR parser parses basic block liveins correctly.
3
4 --- |
5
6   define i32 @test(i32 %a, i32 %b) {
7   body:
8     %c = add i32 %a, %b
9     ret i32 %c
10   }
11
12   define i32 @test2(i32 %a, i32 %b) {
13   body:
14     %c = add i32 %a, %b
15     ret i32 %c
16   }
17
18   define i32 @test3() {
19   body:
20     ret i32 0
21   }
22
23 ...
24 ---
25 name: test
26 tracksRegLiveness: true
27 body: |
28   ; CHECK-LABEL: bb.0.body:
29   ; CHECK-NEXT:    liveins: %edi, %esi
30   bb.0.body:
31     liveins: %edi, %esi
32
33     %eax = LEA64_32r killed %rdi, 1, killed %rsi, 0, _
34     RETQ %eax
35 ...
36 ---
37 name: test2
38 tracksRegLiveness: true
39 body: |
40   ; CHECK-LABEL: name: test2
41   ; Verify that we can have multiple lists of liveins that will be merged into
42   ; one.
43   ; CHECK:       bb.0.body:
44   ; CHECK-NEXT:    liveins: %edi, %esi
45   bb.0.body:
46     liveins: %edi
47     liveins: %esi
48
49     %eax = LEA64_32r killed %rdi, 1, killed %rsi, 0, _
50     RETQ %eax
51 ...
52 ---
53 name: test3
54 tracksRegLiveness: true
55 body: |
56   ; Verify that we can have an empty list of liveins.
57   ; CHECK-LABEL: name: test3
58   ; CHECK:       bb.0.body:
59   ; CHECK-NEXT:    %eax = MOV32r0 implicit-def dead %eflags
60   bb.0.body:
61     liveins:
62
63     %eax = MOV32r0 implicit-def dead %eflags
64     RETQ killed %eax
65 ...