mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-12-12 13:30:51 +00:00
6df2b69098
the legalization cost must be included to get an accurate estimation of the total cost of the scalarized vector. The inaccurate cost triggered unprofitable SLP vectorization on 32-bit X86. Summary: Include legalization overhead when computing scalarization cost Reviewers: hfinkel, nadav CC: chandlerc, rnk, llvm-commits Differential Revision: http://llvm-reviews.chandlerc.com/D2992 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@203509 91177308-0d34-0410-b5e6-96231b3b80d8
42 lines
1.3 KiB
LLVM
42 lines
1.3 KiB
LLVM
; RUN: opt < %s -cost-model -analyze -mtriple=i386 -mcpu=corei7-avx | FileCheck %s -check-prefix=CHECK32
|
|
; RUN: opt < %s -cost-model -analyze -mtriple=x86_64-apple-macosx10.8.0 -mcpu=corei7-avx | FileCheck %s -check-prefix=CHECK64
|
|
|
|
; Test vector scalarization costs.
|
|
; RUN: llc < %s -march=x86 -mcpu=i386
|
|
; RUN: llc < %s -march=x86 -mcpu=yonah
|
|
|
|
%i4 = type <4 x i32>
|
|
%i8 = type <2 x i64>
|
|
|
|
;;; TEST HANDLING OF VARIOUS VECTOR SIZES
|
|
|
|
declare %i4 @llvm.bswap.v4i32(%i4)
|
|
declare %i8 @llvm.bswap.v2i64(%i8)
|
|
|
|
declare %i4 @llvm.ctpop.v4i32(%i4)
|
|
declare %i8 @llvm.ctpop.v2i64(%i8)
|
|
|
|
; CHECK32-LABEL: test_scalarized_intrinsics
|
|
; CHECK64-LABEL: test_scalarized_intrinsics
|
|
define void @test_scalarized_intrinsics() {
|
|
%r1 = add %i8 undef, undef
|
|
|
|
; CHECK32: cost of 12 {{.*}}bswap.v4i32
|
|
; CHECK64: cost of 12 {{.*}}bswap.v4i32
|
|
%r2 = call %i4 @llvm.bswap.v4i32(%i4 undef)
|
|
; CHECK32: cost of 10 {{.*}}bswap.v2i64
|
|
; CHECK64: cost of 6 {{.*}}bswap.v2i64
|
|
%r3 = call %i8 @llvm.bswap.v2i64(%i8 undef)
|
|
|
|
; CHECK32: cost of 12 {{.*}}ctpop.v4i32
|
|
; CHECK64: cost of 12 {{.*}}ctpop.v4i32
|
|
%r4 = call %i4 @llvm.ctpop.v4i32(%i4 undef)
|
|
; CHECK32: cost of 10 {{.*}}ctpop.v2i64
|
|
; CHECK64: cost of 6 {{.*}}ctpop.v2i64
|
|
%r5 = call %i8 @llvm.ctpop.v2i64(%i8 undef)
|
|
|
|
; CHECK32: ret
|
|
; CHECK64: ret
|
|
ret void
|
|
}
|