mirror of
https://github.com/RPCSX/llvm.git
synced 2024-12-04 10:04:33 +00:00
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:
parent
50f778deed
commit
a9e75631a7
@ -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:
|
||||
|
Loading…
Reference in New Issue
Block a user