mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-08-05 13:26:55 +00:00
Optimized integer vector multiplication operation by replacing it with shift/xor/sub when it is possible. Fixed a bug in SDIV, where the const operand is not a splat constant vector.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184931 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -103,9 +103,10 @@ define <32 x i8> @vshift12(<32 x i8> %a) nounwind readnone {
|
||||
|
||||
;;; Support variable shifts
|
||||
; CHECK: _vshift08
|
||||
; CHECK: vpslld $23
|
||||
; CHECK: vextractf128 $1
|
||||
; CHECK: vpslld $23
|
||||
; CHECK: vpslld $23
|
||||
; CHECK: ret
|
||||
define <8 x i32> @vshift08(<8 x i32> %a) nounwind {
|
||||
%bitop = shl <8 x i32> <i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1>, %a
|
||||
ret <8 x i32> %bitop
|
||||
|
Reference in New Issue
Block a user