|  | # RUN: llc -march=x86-64 -run-pass none -o - %s | FileCheck %s | 
|  | # This test ensures that the MIR parser parses basic block liveins correctly. | 
|  |  | 
|  | --- | | 
|  |  | 
|  | define i32 @test(i32 %a, i32 %b) { | 
|  | body: | 
|  | %c = add i32 %a, %b | 
|  | ret i32 %c | 
|  | } | 
|  |  | 
|  | define i32 @test2(i32 %a, i32 %b) { | 
|  | body: | 
|  | %c = add i32 %a, %b | 
|  | ret i32 %c | 
|  | } | 
|  |  | 
|  | define i32 @test3() { | 
|  | body: | 
|  | ret i32 0 | 
|  | } | 
|  |  | 
|  | ... | 
|  | --- | 
|  | name: test | 
|  | tracksRegLiveness: true | 
|  | body: | | 
|  | ; CHECK-LABEL: bb.0.body: | 
|  | ; CHECK-NEXT:    liveins: $edi, $esi | 
|  | bb.0.body: | 
|  | liveins: $edi, $esi | 
|  |  | 
|  | $eax = LEA64_32r killed $rdi, 1, killed $rsi, 0, _ | 
|  | RET64 $eax | 
|  | ... | 
|  | --- | 
|  | name: test2 | 
|  | tracksRegLiveness: true | 
|  | body: | | 
|  | ; CHECK-LABEL: name: test2 | 
|  | ; Verify that we can have multiple lists of liveins that will be merged into | 
|  | ; one. | 
|  | ; CHECK:       bb.0.body: | 
|  | ; CHECK-NEXT:    liveins: $edi, $esi | 
|  | bb.0.body: | 
|  | liveins: $edi | 
|  | liveins: $esi | 
|  |  | 
|  | $eax = LEA64_32r killed $rdi, 1, killed $rsi, 0, _ | 
|  | RET64 $eax | 
|  | ... | 
|  | --- | 
|  | name: test3 | 
|  | tracksRegLiveness: true | 
|  | body: | | 
|  | ; Verify that we can have an empty list of liveins. | 
|  | ; CHECK-LABEL: name: test3 | 
|  | ; CHECK:       bb.0.body: | 
|  | ; CHECK-NEXT:    $eax = MOV32r0 implicit-def dead $eflags | 
|  | bb.0.body: | 
|  | liveins: | 
|  |  | 
|  | $eax = MOV32r0 implicit-def dead $eflags | 
|  | RET64 killed $eax | 
|  | ... |