mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-23 11:13:28 +01:00
096ba9c487
In the case of a conditional branch without a preceding cmp we used to emit a "and; cmp; b.eq/b.ne" sequence, use tbz/tbnz instead. Differential Revision: http://reviews.llvm.org/D15122 llvm-svn: 254621
20 lines
490 B
LLVM
20 lines
490 B
LLVM
; RUN: llc -mtriple=aarch64-apple-darwin -O0 -fast-isel -fast-isel-abort=0 -verify-machineinstrs < %s | FileCheck %s
|
|
|
|
define void @test(i64 %a, i64 %b, i2* %c) {
|
|
; CHECK-LABEL: test
|
|
; CHECK: and [[REG1:w[0-9]+]], w8, #0x3
|
|
; CHECK-NEXT: strb [[REG1]], {{\[}}x2{{\]}}
|
|
; CHECK-NEXT: tbz w9, #0,
|
|
%1 = trunc i64 %a to i2
|
|
%2 = trunc i64 %b to i1
|
|
; Force fast-isel to fall back to SDAG.
|
|
store i2 %1, i2* %c, align 8
|
|
br i1 %2, label %bb1, label %bb2
|
|
|
|
bb1:
|
|
ret void
|
|
|
|
bb2:
|
|
ret void
|
|
}
|