Elaborate on the entry on integer vector multiplication by constants.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51491 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Dan Gohman 2008-05-23 18:05:39 +00:00
parent 50f778deed
commit a9e75631a7

View File

@ -814,7 +814,7 @@ define <4 x i32> @f(<4 x i32> %i) nounwind {
ret <4 x i32> %A
}
Compiles into:
On targets without SSE4.1, this compiles into:
LCPI1_0: ## <4 x i32>
.long 10
@ -846,6 +846,11 @@ _f:
punpckldq %xmm2, %xmm0
ret
It would be better to synthesize integer vector multiplication by constants
using shifts and adds, pslld and paddd here. And even on targets with SSE4.1,
simple cases such as multiplication by powers of two would be better as
vector shifts than as multiplications.
//===---------------------------------------------------------------------===//
We compile this: