diff options
author | Elena Demikhovsky <elena.demikhovsky@intel.com> | 2012-09-04 12:49:02 +0000 |
---|---|---|
committer | Elena Demikhovsky <elena.demikhovsky@intel.com> | 2012-09-04 12:49:02 +0000 |
commit | cbe99bbb36b1baa3986d92c2633d5cd08fda67a1 (patch) | |
tree | df9e06fd65438b297f0d77fd5165d0b82eb7ec5b /llvm/lib/Bitcode/Reader/BitcodeReader.cpp | |
parent | 0342b473b1b54646832b58b8ce63f5496166951d (diff) | |
download | bcm5719-llvm-cbe99bbb36b1baa3986d92c2633d5cd08fda67a1.tar.gz bcm5719-llvm-cbe99bbb36b1baa3986d92c2633d5cd08fda67a1.zip |
This patch optimizes shuffle instruction - generates 2 instructions instead of 4.
Since this specific shuffle is widely used in many workloads we have ~10% performance on them.
shufflevector <8 x float> %A, <8 x float> %B, <8 x i32> <i32 0, i32 8, i32 2, i32 10, i32 4, i32 12, i32 6, i32 14>
vmovaps (%rdx), %ymm0
vshufps $8, %ymm0, %ymm0, %ymm0
vmovaps (%rcx), %ymm1
vshufps $8, %ymm0, %ymm1, %ymm1
vunpcklps %ymm0, %ymm1, %ymm0
vmovaps (%rcx), %ymm0
vmovsldup (%rdx), %ymm1
vblendps $85, %ymm0, %ymm1, %ymm0
llvm-svn: 163134
Diffstat (limited to 'llvm/lib/Bitcode/Reader/BitcodeReader.cpp')
0 files changed, 0 insertions, 0 deletions