mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2025-02-01 05:01:59 +01:00
27571a5d37
VSX has instructions lxsiwax/lxsdx that can load 32/64 bit value into VSX register cheaply. That patch makes it known to memory cost model, so the vectorization of the test case in pr30990 is beneficial. Differential Revision: https://reviews.llvm.org/D26713 llvm-svn: 288560
20 lines
647 B
LLVM
20 lines
647 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 @loads(i32 %arg) {
|
|
; CHECK: cost of 1 {{.*}} load
|
|
load <4 x i8>, <4 x i8>* undef, align 1
|
|
|
|
; CHECK: cost of 1 {{.*}} load
|
|
load <8 x i8>, <8 x i8>* undef, align 1
|
|
|
|
; CHECK: cost of 1 {{.*}} load
|
|
load <2 x i16>, <2 x i16>* undef, align 2
|
|
|
|
; CHECK: cost of 1 {{.*}} load
|
|
load <4 x i16>, <4 x i16>* undef, align 2
|
|
|
|
ret i32 undef
|
|
}
|