mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-01 08:23:21 +01:00
8282fc9e3b
On x86: (shl V, 1) -> add V,V Hardware support for vector-shift is sparse and in many cases we scalarize the result. Additionally, on sandybridge padd is faster than shl. llvm-svn: 143311
21 lines
450 B
LLVM
21 lines
450 B
LLVM
; RUN: llc < %s -march=x86 -mcpu=corei7 | FileCheck %s
|
|
|
|
;CHECK: addXX_test
|
|
;CHECK: padd
|
|
;CHECK: ret
|
|
|
|
|
|
define <16 x i8> @addXX_test(<16 x i8> %a) {
|
|
%b = add <16 x i8> %a, %a
|
|
ret <16 x i8> %b
|
|
}
|
|
|
|
;CHECK: instcombine_test
|
|
;CHECK: padd
|
|
;CHECK: ret
|
|
define <16 x i8> @instcombine_test(<16 x i8> %a) {
|
|
%b = shl <16 x i8> %a, <i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1>
|
|
ret <16 x i8> %b
|
|
}
|
|
|