Add the bidirectional MVP to optimize the VME parameter on Ivb
[profile/ivi/vaapi-intel-driver.git] / src / shaders / vme / mpeg2_inter_frame_haswell.gen75.asm
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163 __INTRA_START:
164 mov (16) r32.0<1>:UD 0x0:UD {align1};
165 mov (16) r34.0<1>:UD 0x0:UD {align1};
166 mov (16) r36.0<1>:UD 0x0:UD {align1} ;
167 mov (16) r38.0<1>:UD 0x0:UD {align1} ;
168 shl (2) r32.0<1>:D r5.0<2,2,1>:UB 4:UW {align1};
169 add (1) r32.0<1>:D r32.0<0,1,0>:D -8:W {align1};
170 add (1) r32.4<1>:D r32.4<0,1,0>:D -1:W {align1};
171 mov (1) r32.8<1>:UD 0x0000001F {align1};
172 mov (1) r32.20<1>:UB r0.20<0,1,0>:UB {align1};
173 shl (2) r33.0<1>:D r5.0<2,2,1>:UB 4:UW {align1};
174 add (1) r33.0<1>:D r33.0<0,1,0>:D -4:W {align1};
175 mov (1) r33.8<1>:UD 0x000F0003 {align1};
176 mov (1) r33.20<1>:UB r0.20<0,1,0>:UB {align1};
177 shl (2) r34.8<1>:UW r5.0<2,2,1>:UB 4:UW {align1};
178 mov (1) r34.20<1>:UB r0.20<0,1,0>:UB {align1};
179 mul (1) r36.8<1>:UD r5.2<0,1,0>:UW r5.1<0,1,0>:UB {align1};
180 add (1) r36.8<1>:UD r36.8<0,1,0>:UD r5.0<0,1,0>:UB {align1};
181 mul (1) r36.8<1>:UD r36.8<0,1,0>:UD 24:UD {align1};
182 mov (1) r36.20<1>:UB r0.20<0,1,0>:UB {align1};
183 mov (8) r64.0<1>:UD r32.0<8,8,1>:UD {align1};
184 send (8) 64 r28<1>:UB null read(4, 0, 0, 4) mlen 1 rlen 1 {align1};
185 mov (8) r64.0<1>:UD r33.0<8,8,1>:UD {align1};
186 send (8) 64 r29<1>:UB null read(4, 0, 0, 4) mlen 1 rlen 2 {align1};
187 shl (2) r32.0<1>:D r5.0<2,2,1>:UB 3:UW {align1};
188 mul (1) r32.0<1>:D r32.0<0,1,0>:D 2:W {align1};
189 add (1) r32.0<1>:D r32.0<0,1,0>:D -8:W {align1};
190 add (1) r32.4<1>:D r32.4<0,1,0>:D -1:W {align1};
191 mov (8) r64.0<1>:UD r32.0<8,8,1>:UD {align1};
192 send (8) 64 r48<1>:UB null read(6, 0, 0, 4) mlen 1 rlen 1 {align1};
193 shl (2) r33.0<1>:D r5.0<2,2,1>:UB 3:UW {align1};
194 mul (1) r33.0<1>:D r33.0<0,1,0>:D 2:W {align1};
195 add (1) r33.0<1>:D r33.0<0,1,0>:D -4:W {align1};
196 mov (1) r33.8<1>:UD 0x00070003 {align1};
197 mov (8) r64.0<1>:UD r33.0<8,8,1>:UD {align1};
198 send (8) 64 r49<1>:UB null read(6, 0, 0, 4) mlen 1 rlen 1 {align1};
199 mov (8) r43<1>:UD r1.0<8,8,1>:UD {align1};
200 mov (8) r66<1>:UD r43.0<8,8,1>:UD {align1};
201 mov (8) r67<1>:UD 0x0:UD {align1};
202 mov (1) r28.0<1>:UD 0x0:UD {align1};
203 and (1) r28.4<1>:UD r28.4<0,1,0>:UD 0xFF000000:UD {align1};
204 mov (8) r68<1>:UD r28.0<8,8,1>:UD {align1};
205 mov (8) r69<1>:UD 0x0:UD {align1};
206 mov (16) r69.0<1>:UB r29.3<32,8,4>:UB {align1};
207 mov (1) r69.16<1>:UD 0x11111111:UD {align1};
208 mov (1) r69.28<1>:UD 0x010101:UD {align1};
209 mov (1) r69.20<1>:UW r48.6<0,1,0>:UW {align1};
210 mov (4) r70.16<1>:UD r48.8<4,4,1>:UD {align1};
211 mov (8) r70.0<1>:UW r49.2<16,8,2>:UW {align1};
212 mov (8) r64.0<1>:UD r34.0<8,8,1>:UD {align1};
213 mov (1) r32.0<1>:UW 0x1:UW {align1};
214 mov (1) r68.5<1>:UB r32.0<0,1,0>:UB {align1};
215 mov (1) r35.28<1>:UW 0x0:UW {align1} ;
216 and.z.f0.0 (1) null<1>:UW r5.4<0,1,0>:UB 1:UW {align1};
217 (f0.0) mov (1) r35.28<1>:UB 0x2 {align1};
218 mov (1) r35.29<1>:UB r5.5<0,1,0>:UB {align1};
219 mov (1) r32.0<1>:UW 0x0020:UW {align1};
220 mov (1) r35.30<1>:UB r32.0<0,1,0>:UB {align1};
221 mov (1) r34.12<1>:UD 0x00800000:UD {align1};
222 mov (8) r64.0<1>:UD r34.0<8,8,1>:UD {align1};
223 mov (8) r65<1>:UD r35.0<8,8,1>:UD {align1};
224 send (8)
225         64
226         r12<1>:UD
227         null
228         cre(
229                 0,
230                 1
231         )
232         mlen 7
233         rlen 7
234         {align1};
235 mov (8) r64.0<1>:UD r36<8,8,1>:UD {align1};
236 mov (1) r65.0<1>:UD r12.0<0,1,0>:UD {align1};
237 mov (1) r65.4<1>:UD r12.16<0,1,0>:UD {align1};
238 mov (1) r65.8<1>:UD r12.20<0,1,0>:UD {align1};
239 mov (1) r65.12<1>:UD r12.24<0,1,0>:UD {align1};
240 mov (1) r65.16<1>:UW r12.12<0,1,0>:UW {align1};
241 mov (1) r65.20<1>:UD r12.8<0,1,0>:UD {align1};
242 mov (1) r65.24<1>:UD r12.28<0,1,0>:UD {align1};
243 mov (1) r65.28<1>:UD r36.8<0,1,0>:UD {align1};
244 send (16)
245         64
246         null<1>:W
247         null
248         data_port(
249                 10,
250                 8,
251                 2,
252                 3,
253                 0,
254                 1
255         )
256         mlen 2
257         rlen 0
258         {align1};
259 mov (1) r34.12<1>:UD 0x00000000 + 0x7e000000 + 0x00200000:UD {align1};
260 mov (1) r34.22<1>:UW 0x2830:UW {align1};
261 mov (1) r34.0<1>:UD r34.8<0,1,0>:UD {align1};
262 add (1) r34.0<1>:W r34.0<0,1,0>:W -16:W {align1};
263 add (1) r34.2<1>:W r34.2<0,1,0>:W -12:W {align1};
264 mov (1) r34.0<1>:W -16:W {align1};
265 mov (1) r34.2<1>:W -12:W {align1};
266 mov (1) r34.4<1>:UD r34.0<0,1,0>:UD {align1};
267 mov (8) r64.0<1>:UD r34.0<8,8,1>:UD {align1};
268 mov (1) r35.0<1>:UD 0x00000002:ud {align1} ;
269 mov (1) r35.4<1>:UB r4.28<0,1,0>:UB {align1};
270 mov (1) r35.8<1>:UD 0x30000000 + 0x00003030:UD {align1};
271 mov (8) r65.0<1>:UD r35.0<8,8,1>:UD {align1};
272 mov (8) r66<1>:UD r43.0<8,8,1>:UD {align1};
273 mov (1) r67.0<1>:UD 0x01010101:UD {align1};
274 mov (1) r67.4<1>:UD 0x10010101:UD {align1};
275 mov (1) r67.8<1>:UD 0x0F0F0F0F:UD {align1};
276 mov (1) r67.12<1>:UD 0x100F0F0F:UD {align1};
277 mov (1) r67.16<1>:UD 0x01010101:UD {align1};
278 mov (1) r67.20<1>:UD 0x10010101:UD {align1};
279 mov (1) r67.24<1>:UD 0x0F0F0F0F:UD {align1};
280 mov (1) r67.28<1>:UD 0x100F0F0F:UD {align1};
281 mov (1) r68.0<1>:UD 0x01010101:UD {align1};
282 mov (1) r68.4<1>:UD 0x10010101:UD {align1};
283 mov (1) r68.8<1>:UD 0x0F0F0F0F:UD {align1};
284 mov (1) r68.12<1>:UD 0x000F0F0F:UD {align1};
285 mov (4) r68.16<1>:UD 0x0:UD {align1};
286 send (8)
287         64
288         r12<1>:UD
289         null
290         vme(
291                 0,
292                 0,
293                 0,
294                 2
295         )
296         mlen 5
297         rlen 7 {align1};
298 mov (1) r43.20<1>:UD 0x0:UD {align1};
299 mov (1) r43.21<1>:UB r12.25<0,1,0>:UB {align1};
300 mov (1) r43.22<1>:UB r12.26<0,1,0>:UB {align1};
301 and (1) r32.0<1>:UW r12.0<0,1,0>:UW 0x03:UW {align1};
302 mov (1) r43.20<1>:UB r32.0<0,1,0>:UB {align1};
303 add (1) r36.8<1>:UD r36.8<0,1,0>:UD 0x02:UD {align1};
304 mov (8) r64.0<1>:UD r36<8,8,1>:UD {align1};
305 mov (1) r65.0<1>:UD r12.0<0,1,0>:UD {align1};
306 mov (1) r65.4<1>:UD r12.24<0,1,0>:UD {align1};
307 mov (1) r65.8<1>:UD r12.8<0,1,0>:UD {align1};
308 mov (1) r65.12<1>:UD r36.8<0,1,0>:UD {align1};
309 send (16)
310         64
311         null<1>:W
312         null
313         data_port(
314                 10,
315                 8,
316                 0,
317                 3,
318                 0,
319                 1
320         )
321         mlen 2
322         rlen 0
323         {align1};
324 add (1) r36.8<1>:UD r36.8<0,1,0>:UD 0x01:UD {align1};
325 mov (8) r64.0<1>:UD r36<8,8,1>:UD {align1};
326 mov (8) r65.0<1>:UD r13.0<8,8,1>:UD {align1};
327 mov (8) r66.0<1>:ud r14.0<8,8,1>:ud {align1};
328 mov (8) r67.0<1>:ud r15.0<8,8,1>:ud {align1};
329 mov (8) r68.0<1>:ud r16.0<8,8,1>:ud {align1};
330 send (16)
331         64
332         null<1>:W
333         null
334         data_port(
335                 10,
336                 8,
337                 4,
338                 3,
339                 0,
340                 1
341         )
342         mlen 5
343         rlen 0
344         {align1};
345 add (1) r36.8<1>:UD r36.8<0,1,0>:UD 0x08:UD {align1};
346 mov (8) r64.0<1>:UD r36<8,8,1>:UD {align1};
347 mov (8) r65.0<1>:UD r18.0<8,8,1>:UD {align1};
348 send (16)
349         64
350         null<1>:W
351         null
352         data_port(
353                 10,
354                 8,
355                 2,
356                 3,
357                 0,
358                 1
359         )
360         mlen 2
361         rlen 0
362         {align1};
363 mov (8) r67.0<1>:UD r13.0<8,8,1>:UD {align1};
364 mov (8) r68.0<1>:ud r14.0<8,8,1>:ud {align1};
365 mov (8) r69.0<1>:ud r15.0<8,8,1>:ud {align1};
366 mov (8) r70.0<1>:ud r16.0<8,8,1>:ud {align1};
367 mov (1) r34.12<1>:UD 0x00200000 + 0x00003000 + 0x00040000:UD {align1};
368 mov (8) r64.0<1>:UD r34.0<8,8,1>:UD {align1};
369 mov (8) r65.0<1>:UD r35.0<8,8,1>:UD {align1};
370 mov (8) r66.0<1>:UD r43.0<8,8,1>:UD {align1};
371 send (8)
372         64
373         r12<1>:UD
374         null
375         cre(
376                 0,
377                 3
378         )
379         mlen 7
380         rlen 7
381         {align1};
382 add (1) r36.8<1>:UD r36.8<0,1,0>:UD 0x02:UD {align1};
383 mov (8) r64.0<1>:UD r36<8,8,1>:UD {align1};
384 mov (1) r65.0<1>:UD r12.0<0,1,0>:UD {align1};
385 mov (1) r65.4<1>:UD r12.24<0,1,0>:UD {align1};
386 mov (1) r65.8<1>:UD r12.8<0,1,0>:UD {align1};
387 mov (1) r65.12<1>:UD r43.20<0,1,0>:UD {align1};
388 send (16)
389         64
390         null<1>:W
391         null
392         data_port(
393                 10,
394                 8,
395                 0,
396                 3,
397                 0,
398                 1
399         )
400         mlen 2
401         rlen 0
402         {align1};
403 add (1) r36.8<1>:UD r36.8<0,1,0>:UD 0x01:UD {align1};
404 mov (8) r64.0<1>:UD r36.0<8,8,1>:UD {align1};
405 mov (8) r65.0<1>:UD r13.0<8,8,1>:UD {align1};
406 mov (8) r66.0<1>:ud r14.0<8,8,1>:ud {align1};
407 mov (8) r67.0<1>:ud r15.0<8,8,1>:ud {align1};
408 mov (8) r68.0<1>:ud r16.0<8,8,1>:ud {align1};
409 send (16)
410         64
411         null<1>:W
412         null
413         data_port(
414                 10,
415                 8,
416                 4,
417                 3,
418                 0,
419                 1
420         )
421         mlen 5
422         rlen 0
423         {align1};
424 add (1) r36.8<1>:UD r36.8<0,1,0>:UD 0x08:UD {align1};
425 mov (8) r64.0<1>:UD r36<8,8,1>:UD {align1};
426 mov (8) r65.0<1>:UD r18.0<8,8,1>:UD {align1};
427 send (16)
428         64
429         null<1>:W
430         null
431         data_port(
432                 10,
433                 8,
434                 2,
435                 3,
436                 0,
437                 1
438         )
439         mlen 2
440         rlen 0
441         {align1};
442 __EXIT:
443 mov (8) r112<1>:UD r0<8,8,1>:UD {align1};
444 send (16) 112 acc0<1>UW null thread_spawner(0, 0, 1) mlen 1 rlen 0 {align1 EOT};