mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-10-24 05:23:45 +02:00
500ec86b5d
In the case we optimize an integer extend away and replace it directly with the source register, we also have to clear all kill flags at all its uses. This is necessary, because the orignal IR instruction might be trivially dead, but we replaced it with a nop at MI level. llvm-svn: 221628
21 lines
419 B
LLVM
21 lines
419 B
LLVM
; RUN: llc -mtriple=aarch64-apple-darwin -fast-isel -fast-isel-abort -verify-machineinstrs < %s | FileCheck %s
|
|
|
|
define i32 @kill_flag(i16 signext %a) {
|
|
; CHECK-LABEL: kill_flag
|
|
entry:
|
|
%0 = sext i16 %a to i32
|
|
br label %bb1
|
|
|
|
bb1:
|
|
%1 = icmp slt i32 undef, %0
|
|
br i1 %1, label %loop, label %exit
|
|
|
|
loop:
|
|
%2 = sext i16 %a to i32
|
|
%3 = icmp slt i32 undef, %2
|
|
br i1 %3, label %bb1, label %exit
|
|
|
|
exit:
|
|
ret i32 0
|
|
}
|