1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-25 20:23:11 +01:00
llvm-mirror/test/Analysis/CostModel/PowerPC/unaligned_ld_st.ll
Guozhi Wei ad2db4b935 [PPC] Give unaligned memory access lower cost on processor that supports it
Newer ppc supports unaligned memory access, it reduces the cost of unaligned memory access significantly. This patch handles this case in PPCTTIImpl::getMemoryOpCost.

This patch fixes pr31492.

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

This is resubmit of r292680, which was reverted by r293092. The internal application failures were actually caused by a source code bug.

llvm-svn: 295506
2017-02-17 22:29:39 +00:00

27 lines
889 B
LLVM

; RUN: opt < %s -cost-model -analyze -mtriple=powerpc64-unknown-linux-gnu -mcpu=pwr8 -mattr=+vsx | FileCheck %s
target datalayout = "E-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-f128:128:128-v128:128:128-n32:64"
target triple = "powerpc64-unknown-linux-gnu"
define i32 @test(i32 %arg) {
; CHECK: cost of 1 {{.*}} load
load i8, i8* undef, align 1
; CHECK: cost of 1 {{.*}} load
load i16, i16* undef, align 1
; CHECK: cost of 1 {{.*}} load
load i32, i32* undef, align 1
; CHECK: cost of 1 {{.*}} load
load i64, i64* undef, align 1
; CHECK: cost of 1 {{.*}} store
store i8 undef, i8* undef, align 1
; CHECK: cost of 1 {{.*}} store
store i16 undef, i16* undef, align 1
; CHECK: cost of 1 {{.*}} store
store i32 undef, i32* undef, align 1
; CHECK: cost of 1 {{.*}} store
store i64 undef, i64* undef, align 1
ret i32 undef
}