# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py # RUN: llc -mtriple=i386-unknown-linux-musl -verify-machineinstrs -run-pass=regallocfast -o - %s | FileCheck %s # Test for correct management of allocatable and non-allocatable # live-ins in fastregalloc --- name: live_through_ecx tracksRegLiveness: true body: | ; CHECK-LABEL: name: live_through_ecx ; CHECK: bb.0: ; CHECK: successors: %bb.1(0x80000000) ; CHECK: liveins: $ecx ; CHECK: NOOP implicit $ecx ; CHECK: bb.1: ; CHECK: liveins: $ecx ; CHECK: RET implicit killed $ecx bb.0: liveins: $ecx NOOP implicit $ecx bb.1: liveins: $ecx RET implicit $ecx ... --- name: live_out_ecx tracksRegLiveness: true body: | ; CHECK-LABEL: name: live_out_ecx ; CHECK: bb.0: ; CHECK: successors: %bb.1(0x80000000) ; CHECK: liveins: $eax, $ebx ; CHECK: renamable $ecx = COPY killed $ebx ; CHECK: bb.1: ; CHECK: liveins: $ecx ; CHECK: RET implicit killed $ecx bb.0: liveins: $eax, $ebx %0:gr32 = COPY $eax %1:gr32 = COPY $ebx $ecx = COPY %1 bb.1: liveins: $ecx RET implicit $ecx ... --- name: live_out_eflags tracksRegLiveness: true body: | ; CHECK-LABEL: name: live_out_eflags ; CHECK: bb.0: ; CHECK: successors: %bb.1(0x80000000) ; CHECK: liveins: $eax, $ebx ; CHECK: TEST32rr killed renamable $eax, killed renamable $ebx, implicit-def $eflags ; CHECK: bb.1: ; CHECK: liveins: $eflags ; CHECK: RET implicit killed $eflags bb.0: liveins: $eax, $ebx %0:gr32 = COPY $eax %1:gr32 = COPY $ebx TEST32rr %0, %1, implicit-def $eflags bb.1: liveins: $eflags RET implicit $eflags ...