1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-25 04:02:41 +01:00
llvm-mirror/test/CodeGen/ARM/useaa.ll
David Green 219b65e574 [ARM] Enable useAA() for the in-order Cortex-R52
This option allows codegen (such as DAGCombine or MI scheduling) to use alias
analysis information, which can help with the codegen on in-order cpu's,
especially machine scheduling. Here I have done things the same way as AArch64,
adding a subtarget feature to enable this for specific cores, and enabled it for
the R52 where we have a schedule to make use of it.

Differential Revision: https://reviews.llvm.org/D48074

llvm-svn: 335249
2018-06-21 15:48:29 +00:00

27 lines
711 B
LLVM

; RUN: llc < %s -mtriple=armv8r-eabi -mcpu=cortex-r52 | FileCheck %s --check-prefix=CHECK --check-prefix=USEAA
; RUN: llc < %s -mtriple=armv8r-eabi -mcpu=generic | FileCheck %s --check-prefix=CHECK --check-prefix=GENERIC
; Check we use AA during codegen, so can interleave these loads/stores.
; CHECK-LABEL: test
; GENERIC: ldr
; GENERIC: str
; GENERIC: ldr
; GENERIC: str
; USEAA: ldr
; USEAA: ldr
; USEAA: str
; USEAA: str
define void @test(i32* nocapture %a, i32* noalias nocapture %b) {
entry:
%0 = load i32, i32* %a, align 4
%add = add nsw i32 %0, 10
store i32 %add, i32* %a, align 4
%1 = load i32, i32* %b, align 4
%add2 = add nsw i32 %1, 20
store i32 %add2, i32* %b, align 4
ret void
}