mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-23 03:02:36 +01:00
eebf5e9394
This feature controls whether AA is used into the backend, and was previously turned on for certain subtargets to help create less constrained scheduling graphs. This patch turns it on for all subtargets, so that they can all make use of the extra information to produce better code. Differential Revision: https://reviews.llvm.org/D69796
29 lines
932 B
LLVM
29 lines
932 B
LLVM
; RUN: llc < %s -mtriple=armv8r-eabi -mcpu=cortex-r52 | FileCheck %s --check-prefix=CHECK --check-prefix=USEAA
|
|
; RUN: llc < %s -mtriple=armv7m-eabi -mcpu=cortex-m4 | FileCheck %s --check-prefix=CHECK --check-prefix=USEAA
|
|
; RUN: llc < %s -mtriple=armv8m-eabi -mcpu=cortex-m33 | 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: ldr
|
|
; GENERIC: str
|
|
; 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
|
|
}
|
|
|