Support R_SPARC_WDISP10 and R_SPARC_H34.
[external/binutils.git] / sim / testsuite / sim / bfin / random_0019.S
1 # Test a few (W32) corner cases
2 # mach: bfin
3 #include "test.h"
4 .include "testutils.inc"
5
6         start
7
8         dmm32 ASTAT, (0x68b0ca90 | _VS | _AV1S | _AV0S | _CC | _AC0_COPY | _AN | _AZ);
9         dmm32 A1.w, 0x70da33ff;
10         dmm32 A1.x, 0x0000000f;
11         imm32 R0, 0x5e29f819;
12         imm32 R1, 0x3f59520b;
13         A1 += R0.L * R1.L (M, W32);
14         checkreg A1.w, 0x7fffffff;
15         checkreg A1.x, 0x00000000;
16         checkreg ASTAT, (0x68b0ca90 | _VS | _AV1S | _AV1 | _AV0S | _CC | _AC0_COPY | _AN | _AZ);
17
18         dmm32 ASTAT, (0x18300c10 | _VS | _AV1S | _AN);
19         dmm32 A0.w, 0x1096b1c1;
20         dmm32 A0.x, 0xfffffff1;
21         imm32 R6, 0x3a0178ee;
22         imm32 R7, 0x17c95e45;
23         A0 -= R6.L * R7.L (W32);
24         checkreg A0.w, 0x80000000;
25         checkreg A0.x, 0xffffffff;
26         checkreg ASTAT, (0x18300c10 | _VS | _AV1S | _AV0S | _AV0 | _AN);
27
28         dmm32 ASTAT, (0x68508800 | _VS | _AV1S | _AV0S | _CC | _AZ);
29         dmm32 A0.w, 0x30c8f917;
30         dmm32 A0.x, 0xffffffc8;
31         imm32 R3, 0x7ad1091c;
32         imm32 R4, 0x80002874;
33         A0 -= R3.L * R4.L (W32);
34         checkreg A0.w, 0x80000000;
35         checkreg A0.x, 0xffffffff;
36         checkreg ASTAT, (0x68508800 | _VS | _AV1S | _AV0S | _AV0 | _CC | _AZ);
37
38         dmm32 ASTAT, (0x58708e90 | _VS | _AV0 | _AC1 | _AC0 | _AQ | _AC0_COPY);
39         dmm32 A0.w, 0x13de4c3d;
40         dmm32 A0.x, 0xffffffa5;
41         imm32 R0, 0xf70f956f;
42         imm32 R2, 0xf837e08c;
43         A0 -= R0.L * R2.H (W32);
44         checkreg A0.w, 0x80000000;
45         checkreg A0.x, 0xffffffff;
46         checkreg ASTAT, (0x58708e90 | _VS | _AV0S | _AV0 | _AC1 | _AC0 | _AQ | _AC0_COPY);
47
48         dmm32 ASTAT, (0x70800280 | _VS | _AV1S | _AC1 | _AQ | _CC | _AC0_COPY);
49         dmm32 A0.w, 0x80140410;
50         dmm32 A0.x, 0x00000000;
51         imm32 R1, 0x028b09a4;
52         imm32 R4, 0x00007ffc;
53         A0 += R4.L * R1.H (W32);
54         checkreg A0.w, 0x7fffffff;
55         checkreg A0.x, 0x00000000;
56         checkreg ASTAT, (0x70800280 | _VS | _AV1S | _AV0S | _AV0 | _AC1 | _AQ | _CC | _AC0_COPY);
57
58         dmm32 ASTAT, (0x0060c610 | _VS | _AC1 | _AC0 | _AC0_COPY | _AN | _AZ);
59         dmm32 A1.w, 0x1794b937;
60         dmm32 A1.x, 0xfffffff5;
61         imm32 R6, 0x008e1c0d;
62         A1 -= R6.L * R6.L (W32);
63         checkreg A1.w, 0x80000000;
64         checkreg A1.x, 0xffffffff;
65         checkreg ASTAT, (0x0060c610 | _VS | _AV1S | _AV1 | _AC1 | _AC0 | _AC0_COPY | _AN | _AZ);
66
67         dmm32 ASTAT, (0x2c600410 | _VS | _AV0S | _AC1 | _CC | _AN);
68         dmm32 A1.w, 0x2d03ef79;
69         dmm32 A1.x, 0x00000079;
70         imm32 R5, 0x15d1b500;
71         imm32 R6, 0xf7962b39;
72         A1 += R6.L * R5.H (W32);
73         checkreg A1.w, 0x7fffffff;
74         checkreg A1.x, 0x00000000;
75         checkreg ASTAT, (0x2c600410 | _VS | _AV1S | _AV1 | _AV0S | _AC1 | _CC | _AN);
76
77         dmm32 ASTAT, (0x5cf04e10 | _VS | _AV0S | _AC1 | _CC | _AC0_COPY);
78         dmm32 A0.w, 0x4d50b3f0;
79         dmm32 A0.x, 0xfffffffc;
80         imm32 R4, 0x6671002a;
81         imm32 R7, 0x00288000;
82         A0 += R4.L * R7.L (W32);
83         checkreg A0.w, 0x80000000;
84         checkreg A0.x, 0xffffffff;
85         checkreg ASTAT, (0x5cf04e10 | _VS | _AV0S | _AV0 | _AC1 | _CC | _AC0_COPY);
86
87
88         dmm32 ASTAT, (0x28908000 | _VS | _V | _AV1S | _AV0S | _AQ | _V_COPY | _AN);
89         dmm32 A1.w, 0xc94e99f1;
90         dmm32 A1.x, 0x00000021;
91         imm32 R4, 0x7fff52b7;
92         imm32 R7, 0x3ebb26c6;
93         A1 += R7.L * R4.L (M, W32);
94         checkreg A1.w, 0x7fffffff;
95         checkreg A1.x, 0x00000000;
96         checkreg ASTAT, (0x28908000 | _VS | _V | _AV1S | _AV1 | _AV0S | _AQ | _V_COPY | _AN);
97
98         dmm32 ASTAT, (0x34708a00 | _VS | _AV0S | _AQ | _CC | _AC0_COPY);
99         dmm32 A1.w, 0xf61f316d;
100         dmm32 A1.x, 0x00000061;
101         imm32 R1, 0x86f0ffff;
102         imm32 R3, 0x791048c5;
103         A1 += R1.L * R3.L (M, W32);
104         checkreg A1.w, 0x7fffffff;
105         checkreg A1.x, 0x00000000;
106         checkreg ASTAT, (0x34708a00 | _VS | _AV1S | _AV1 | _AV0S | _AQ | _CC | _AC0_COPY);
107
108         dmm32 ASTAT, (0x5020c280 | _VS | _V | _AC1 | _AC0 | _V_COPY);
109         dmm32 A1.w, 0x8700591f;
110         dmm32 A1.x, 0x00000007;
111         imm32 R2, 0x145b00b1;
112         imm32 R3, 0x7fffffff;
113         A1 -= R3.L * R2.H (M, W32);
114         checkreg A1.w, 0x7fffffff;
115         checkreg A1.x, 0x00000000;
116         checkreg ASTAT, (0x5020c280 | _VS | _V | _AV1S | _AV1 | _AC1 | _AC0 | _V_COPY);
117
118         dmm32 ASTAT, (0x00000290 | _VS | _V | _AV1S | _AV0S | _AC1 | _AQ | _CC | _V_COPY);
119         dmm32 A0.w, 0xfe84e1ec;
120         dmm32 A0.x, 0xffffffff;
121         imm32 R1, 0x07e73e7b;
122         imm32 R3, 0x00033e7b;
123         A0 -= R3.L * R1.H (W32);
124         checkreg A0.w, 0xfaa965f2;
125         checkreg A0.x, 0xffffffff;
126         checkreg ASTAT, (0x00000290 | _VS | _V | _AV1S | _AV0S | _AC1 | _AQ | _CC | _V_COPY);
127
128         dmm32 ASTAT, (0x78204a80 | _VS | _AV1S | _CC | _AN);
129         dmm32 A0.w, 0xca398210;
130         dmm32 A0.x, 0xffffffff;
131         imm32 R3, 0xffff0000;
132         imm32 R7, 0x00000000;
133         A0 += R7.L * R3.L (W32);
134         checkreg ASTAT, (0x78204a80 | _VS | _AV1S | _CC | _AN);
135
136         dmm32 ASTAT, (0x04208890 | _VS | _AC1 | _AC0_COPY);
137         dmm32 A0.w, 0x224cbaee;
138         dmm32 A0.x, 0x00000000;
139         imm32 R3, 0x3db86584;
140         imm32 R6, 0xdb505ed8;
141         A0 -= R6.L * R3.H (W32);
142         checkreg A0.w, 0xf491746e;
143         checkreg A0.x, 0xffffffff;
144         checkreg ASTAT, (0x04208890 | _VS | _AC1 | _AC0_COPY);
145
146         dmm32 ASTAT, (0x3c908600 | _VS | _AV1S | _AV0S | _AC0 | _AQ | _AC0_COPY);
147         dmm32 A0.w, 0x03f7c0ec;
148         dmm32 A0.x, 0x00000000;
149         imm32 R1, 0x1c25c7b4;
150         imm32 R5, 0x3f7da612;
151         A0 -= R5.L * R1.L (W32);
152         checkreg A0.w, 0xdc6a3b9c;
153         checkreg A0.x, 0xffffffff;
154         checkreg ASTAT, (0x3c908600 | _VS | _AV1S | _AV0S | _AC0 | _AQ | _AC0_COPY);
155
156         dmm32 ASTAT, (0x7cb08680 | _VS | _AQ | _CC | _AN);
157         dmm32 A0.w, 0xdc7c243c;
158         dmm32 A0.x, 0xffffffff;
159         imm32 R0, 0xe2ccef4c;
160         imm32 R5, 0x7fff8000;
161         A0 += R5.L * R0.L (W32);
162         checkreg A0.w, 0xed30243c;
163         checkreg A0.x, 0xffffffff;
164         checkreg ASTAT, (0x7cb08680 | _VS | _AQ | _CC | _AN);
165
166         dmm32 ASTAT, (0x78f00080 | _VS | _V | _AV1S | _AC1 | _AQ | _V_COPY | _AN);
167         dmm32 A0.w, 0x39180f38;
168         dmm32 A0.x, 0x00000000;
169         imm32 R4, 0x01308ac1;
170         imm32 R6, 0x7ffff8fd;
171         A0 = R6.L * R4.H (W32);
172         checkreg A0.w, 0xffef58e0;
173         checkreg A0.x, 0xffffffff;
174         checkreg ASTAT, (0x78f00080 | _VS | _V | _AV1S | _AC1 | _AQ | _V_COPY | _AN);
175
176         dmm32 ASTAT, (0x7050c090 | _VS | _V | _AV1S | _AV0S | _AC0 | _V_COPY | _AC0_COPY | _AN);
177         dmm32 A1.w, 0x010909b0;
178         dmm32 A1.x, 0x00000000;
179         imm32 R0, 0x80000000;
180         imm32 R6, 0x6ad06150;
181         A1 = R6.L * R0.H (W32);
182         checkreg A1.w, 0x9eb00000;
183         checkreg A1.x, 0xffffffff;
184         checkreg ASTAT, (0x7050c090 | _VS | _V | _AV1S | _AV0S | _AC0 | _V_COPY | _AC0_COPY | _AN);
185
186         dmm32 ASTAT, (0x68c04c10 | _VS | _V | _AV0S | _AC0 | _AQ | _V_COPY | _AN);
187         dmm32 A0.w, 0x43687862;
188         dmm32 A0.x, 0x00000000;
189         imm32 R2, 0xff278000;
190         imm32 R4, 0x0000436a;
191         A0 += R2.L * R4.L (W32);
192         checkreg A0.w, 0xfffe7862;
193         checkreg A0.x, 0xffffffff;
194         checkreg ASTAT, (0x68c04c10 | _VS | _V | _AV0S | _AC0 | _AQ | _V_COPY | _AN);
195
196         dmm32 ASTAT, (0x74a00200 | _AV1 | _AV0S | _AV0 | _AC1 | _V_COPY | _AC0_COPY | _AN | _AZ);
197         dmm32 A1.w, 0x64c15e6b;
198         dmm32 A1.x, 0xffffff87;
199         imm32 R4, 0x30b3e20d;
200         imm32 R7, 0x4a562069;
201         A1 = R4.L * R7.H (M, W32);
202         checkreg A1.w, 0xf74db25e;
203         checkreg A1.x, 0xffffffff;
204         checkreg ASTAT, (0x74a00200 | _AV0S | _AV0 | _AC1 | _V_COPY | _AC0_COPY | _AN | _AZ);
205
206         dmm32 ASTAT, (0x70f08410 | _AV0 | _AC1 | _AC0_COPY | _AN | _AZ);
207         dmm32 A0.w, 0x5f011b0d;
208         dmm32 A0.x, 0xffffff86;
209         imm32 R3, 0x21f93a90;
210         imm32 R4, 0x1c82d429;
211         A0 = R3.H * R4.L (W32);
212         checkreg A0.w, 0xf45d49c2;
213         checkreg A0.x, 0xffffffff;
214         checkreg ASTAT, (0x70f08410 | _AC1 | _AC0_COPY | _AN | _AZ);
215
216         pass