loongarch: rewrite optimization functions in loongarch/itx.S
Change-Id: I1566e8145d36296f2c76107cf15fc2cc7ac0ecc7
This commit is contained in:
+2085
-9475
File diff suppressed because it is too large
Load Diff
@@ -87,4 +87,106 @@
|
||||
vpackod.w \in7, \in7, \in9
|
||||
.endm
|
||||
|
||||
.macro vld_x8 src, start, stride, in0, in1, in2, in3, in4, in5, in6, in7
|
||||
vld \in0, \src, \start
|
||||
vld \in1, \src, \start+(\stride*1)
|
||||
vld \in2, \src, \start+(\stride*2)
|
||||
vld \in3, \src, \start+(\stride*3)
|
||||
vld \in4, \src, \start+(\stride*4)
|
||||
vld \in5, \src, \start+(\stride*5)
|
||||
vld \in6, \src, \start+(\stride*6)
|
||||
vld \in7, \src, \start+(\stride*7)
|
||||
.endm
|
||||
|
||||
.macro vst_x8 src, start, stride, in0, in1, in2, in3, in4, in5, in6, in7
|
||||
vst \in0, \src, \start
|
||||
vst \in1, \src, \start+(\stride*1)
|
||||
vst \in2, \src, \start+(\stride*2)
|
||||
vst \in3, \src, \start+(\stride*3)
|
||||
vst \in4, \src, \start+(\stride*4)
|
||||
vst \in5, \src, \start+(\stride*5)
|
||||
vst \in6, \src, \start+(\stride*6)
|
||||
vst \in7, \src, \start+(\stride*7)
|
||||
.endm
|
||||
|
||||
.macro vld_x16 src, start, stride, in0, in1, in2, in3, in4, in5, in6, in7, \
|
||||
in8, in9, in10, in11, in12, in13, in14, in15
|
||||
|
||||
vld_x8 \src, \start, \stride, \in0, \in1, \in2, \in3, \in4, \in5, \in6, \in7
|
||||
|
||||
vld \in8, \src, \start+(\stride*8)
|
||||
vld \in9, \src, \start+(\stride*9)
|
||||
vld \in10, \src, \start+(\stride*10)
|
||||
vld \in11, \src, \start+(\stride*11)
|
||||
vld \in12, \src, \start+(\stride*12)
|
||||
vld \in13, \src, \start+(\stride*13)
|
||||
vld \in14, \src, \start+(\stride*14)
|
||||
vld \in15, \src, \start+(\stride*15)
|
||||
.endm
|
||||
|
||||
.macro vst_x16 src, start, stride, in0, in1, in2, in3, in4, in5, in6, in7, \
|
||||
in8, in9, in10, in11, in12, in13, in14, in15
|
||||
|
||||
vst_x8 \src, \start, \stride, \in0, \in1, \in2, \in3, \in4, \in5, \in6, \in7
|
||||
|
||||
vst \in8, \src, \start+(\stride*8)
|
||||
vst \in9, \src, \start+(\stride*9)
|
||||
vst \in10, \src, \start+(\stride*10)
|
||||
vst \in11, \src, \start+(\stride*11)
|
||||
vst \in12, \src, \start+(\stride*12)
|
||||
vst \in13, \src, \start+(\stride*13)
|
||||
vst \in14, \src, \start+(\stride*14)
|
||||
vst \in15, \src, \start+(\stride*15)
|
||||
.endm
|
||||
|
||||
.macro xvld_x8 src, start, stride, in0, in1, in2, in3, in4, in5, in6, in7
|
||||
xvld \in0, \src, \start
|
||||
xvld \in1, \src, \start+(\stride)
|
||||
xvld \in2, \src, \start+(\stride<<1)
|
||||
xvld \in3, \src, \start+(\stride<<1)+(\stride)
|
||||
xvld \in4, \src, \start+(\stride<<2)
|
||||
xvld \in5, \src, \start+(\stride<<2)+(\stride)
|
||||
xvld \in6, \src, \start+(\stride*6)
|
||||
xvld \in7, \src, \start+(\stride<<3)-(\stride)
|
||||
.endm
|
||||
|
||||
.macro xvst_x8 src, start, stride, in0, in1, in2, in3, in4, in5, in6, in7
|
||||
xvst \in0, \src, \start
|
||||
xvst \in1, \src, \start+(\stride)
|
||||
xvst \in2, \src, \start+(\stride<<1)
|
||||
xvst \in3, \src, \start+(\stride<<1)+(\stride)
|
||||
xvst \in4, \src, \start+(\stride<<2)
|
||||
xvst \in5, \src, \start+(\stride<<2)+(\stride)
|
||||
xvst \in6, \src, \start+(\stride*6)
|
||||
xvst \in7, \src, \start+(\stride<<3)-(\stride)
|
||||
.endm
|
||||
|
||||
.macro xvld_x16 src, start, stride, in0, in1, in2, in3, in4, in5, in6, in7, \
|
||||
in8, in9, in10, in11, in12, in13, in14, in15
|
||||
xvld_x8 \src, \start, \stride, \in0, \in1, \in2, \in3, \in4, \in5, \in6, \in7
|
||||
|
||||
xvld \in8, \src, \start+(\stride<<3)
|
||||
xvld \in9, \src, \start+(\stride<<3)+(\stride)
|
||||
xvld \in10, \src, \start+(\stride*10)
|
||||
xvld \in11, \src, \start+(\stride*11)
|
||||
xvld \in12, \src, \start+(\stride*12)
|
||||
xvld \in13, \src, \start+(\stride*13)
|
||||
xvld \in14, \src, \start+(\stride*14)
|
||||
xvld \in15, \src, \start+(\stride<<4)-(\stride)
|
||||
.endm
|
||||
|
||||
.macro xvst_x16 src, start, stride, in0, in1, in2, in3, in4, in5, in6, in7, \
|
||||
in8, in9, in10, in11, in12, in13, in14, in15
|
||||
xvst_x8 \src, \start, \stride, \in0, \in1, \in2, \in3, \in4, \in5, \in6, \in7
|
||||
|
||||
xvst \in8, \src, \start+(\stride<<3)
|
||||
xvst \in9, \src, \start+(\stride<<3)+(\stride)
|
||||
xvst \in10, \src, \start+(\stride*10)
|
||||
xvst \in11, \src, \start+(\stride*11)
|
||||
xvst \in12, \src, \start+(\stride*12)
|
||||
xvst \in13, \src, \start+(\stride*13)
|
||||
xvst \in14, \src, \start+(\stride*14)
|
||||
xvst \in15, \src, \start+(\stride<<4)-(\stride)
|
||||
.endm
|
||||
|
||||
#endif /* DAV1D_SRC_LOONGSON_UTIL_S */
|
||||
|
||||
Reference in New Issue
Block a user