gas/
[deliverable/binutils-gdb.git] / gas / testsuite / gas / bfin / vector2.s
CommitLineData
c1db045b
BS
1
2.EXTERN MY_LABEL2;
3.section .text;
4
5//
6//14 VECTOR OPERATIONS
7//
8
9//Dreg_hi = Dreg_lo = SIGN ( Dreg_hi ) * Dreg_hi + SIGN ( Dreg_lo ) * Dreg_lo ; /* (b) */
10
11r7.h=r7.l=sign(r2.h)*r3.h+sign(r2.l)*r3.l ;
12r0.h=r0.l=sign(r1.h)*r2.h+sign(r1.l)*r2.l ;
13r3.h=r3.l=sign(r4.h)*r5.h+sign(r4.l)*r5.l ;
14r6.h=r6.l=sign(r7.h)*r0.h+sign(r7.l)*r0.l ;
15r1.h=r1.l=sign(r2.h)*r3.h+sign(r2.l)*r3.l ;
16r4.h=r4.l=sign(r5.h)*r6.h+sign(r5.l)*r6.l ;
17r7.h=r7.l=sign(r0.h)*r1.h+sign(r0.l)*r1.l ;
18r2.h=r2.l=sign(r3.h)*r4.h+sign(r3.l)*r4.l ;
19
20//Dual 16-Bit Operation
21//Dreg = VIT_MAX ( Dreg , Dreg ) (ASL) ; /* shift history bits left (b) */
22//Dreg = VIT_MAX ( Dreg , Dreg ) (ASR) ; /* shift history bits right (b) */
23//Single 16-Bit Operation
24//Dreg_lo = VIT_MAX ( Dreg ) (ASL) ; /* shift history bits left (b) */
25//Dreg_lo = VIT_MAX ( Dreg ) (ASR) ; /* shift history bits right (b) */
26r5 = vit_max(r3, r2)(asl) ; /* shift left, dual operation */
27r7 = vit_max (r1, r0) (asr) ; /* shift right, dual operation */
28
29r0 = vit_max(r1, r2)(asl) ; /* shift left, dual operation */
30r3 = vit_max (r4, r5) (asr) ; /* shift right, dual operation */
31r6 = vit_max(r7, r0)(asl) ; /* shift left, dual operation */
32r1 = vit_max (r2, r3) (asr) ; /* shift right, dual operation */
33r4 = vit_max(r5, r6)(asl) ; /* shift left, dual operation */
34r7 = vit_max (r0, r1) (asr) ; /* shift right, dual operation */
35r2 = vit_max(r3, r4)(asl) ; /* shift left, dual operation */
36r5 = vit_max (r6, r7) (asr) ; /* shift right, dual operation */
37
38
39r3.l = vit_max (r1)(asl) ; /* shift left, single operation */
40r3.l = vit_max (r1)(asr) ; /* shift right, single operation */
41
42r0.l = vit_max (r1)(asl) ; /* shift left, single operation */
43r2.l = vit_max (r3)(asr) ; /* shift right, single operation */
44r4.l = vit_max (r5)(asl) ; /* shift left, single operation */
45r6.l = vit_max (r7)(asr) ; /* shift right, single operation */
46r1.l = vit_max (r2)(asl) ; /* shift left, single operation */
47r3.l = vit_max (r4)(asr) ; /* shift right, single operation */
48r5.l = vit_max (r6)(asl) ; /* shift left, single operation */
49r7.l = vit_max (r0)(asr) ; /* shift right, single operation */
50
51//Dreg = ABS Dreg (V) ; /* (b) */
52r3 = abs r1 (v) ;
53
54r0 = abs r0 (v) ;
55r0 = abs r1 (v) ;
56r2 = abs r3 (v) ;
57r4 = abs r5 (v) ;
58r6 = abs r7 (v) ;
59r1 = abs r0 (v) ;
60r3 = abs r2 (v) ;
61r5 = abs r4 (v) ;
62r7 = abs r6 (v) ;
63
64//Dual 16-Bit Operations
65//Dreg = Dreg +|+ Dreg (opt_mode_0) ; /* add | add (b) */
66r5=r3 +|+ r4 ; /* dual 16-bit operations, add|add */
67
68r0=r1 +|+ r2 ;
69r3=r4 +|+ r5 ;
70r6=r7 +|+ r0 ;
71r1=r2 +|+ r3 ;
72r4=r3 +|+ r5 ;
73r6=r3 +|+ r7 ;
74
75r0=r1 +|+ r2 (S);
76r3=r4 +|+ r5 (S);
77r6=r7 +|+ r0 (S);
78r1=r2 +|+ r3 (S);
79r4=r3 +|+ r5 (S);
80r6=r3 +|+ r7 (S);
81
82r0=r1 +|+ r2 (CO);
83r3=r4 +|+ r5 (CO);
84r6=r7 +|+ r0 (CO) ;
85r1=r2 +|+ r3 (CO);
86r4=r3 +|+ r5 (CO);
87r6=r3 +|+ r7 (CO);
88
89r0=r1 +|+ r2 (SCO);
90r3=r4 +|+ r5 (SCO);
91r6=r7 +|+ r0 (SCO);
92r1=r2 +|+ r3 (SCO);
93r4=r3 +|+ r5 (SCO);
94r6=r3 +|+ r7 (SCO);
95