1/*
2* Copyright (c) 2017, Intel Corporation
3*
4* Permission is hereby granted, free of charge, to any person obtaining a
5* copy of this software and associated documentation files (the "Software"),
6* to deal in the Software without restriction, including without limitation
7* the rights to use, copy, modify, merge, publish, distribute, sublicense,
8* and/or sell copies of the Software, and to permit persons to whom the
9* Software is furnished to do so, subject to the following conditions:
10*
11* The above copyright notice and this permission notice shall be included
12* in all copies or substantial portions of the Software.
13*
14* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
15* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
16* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
17* THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR
18* OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
19* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
20* OTHER DEALINGS IN THE SOFTWARE.
21*/
22
23L0:
24         cmp      (1|M0)     (eq)f0.0    null.0<1>:w              r[a0.3]<0;1,0>:uw          0x0:uw
25(W&f0.0) jmpi     L272
26L32:
27         cmp      (16|M0)    (ne)f0.0    null.0<1>:w              r[a0.7]<16;16,1>:uw        0x0:uw
28         and      (1|M0)                 f0.0<1>:uw               f0.0<0;1,0>:uw             r[a0.3]<0;1,0>:uw
29(f0.0)   if       (16|M0)                L256                     L256
30L80:
31         add      (16|M0)                (sat)r17.0<1>:uw         r[a0.7]<16;16,1>:uw        0x100:uw
32         add      (16|M0)                (sat)r16.0<1>:uw         -r[a0.7]<16;16,1>:uw       0xFF00:uw
33         mul      (16|M0)                acc0.0<1>:w              r[a0.4]<16;16,1>:uw        r17.0<16;16,1>:uw
34         mac      (16|M0)                acc0.0<1>:w              r[a0.0]<16;16,1>:uw        r16.0<16;16,1>:uw
35         shr      (16|M0)                (sat)r[a0.0]<1>:uw       acc0.0<16;16,1>:w          0x10:uw
36         mul      (16|M0)                acc0.0<1>:w              r[a0.5]<16;16,1>:uw        r17.0<16;16,1>:uw
37         mac      (16|M0)                acc0.0<1>:w              r[a0.1]<16;16,1>:uw        r16.0<16;16,1>:uw
38         shr      (16|M0)                (sat)r[a0.1]<1>:uw       acc0.0<16;16,1>:w          0x10:uw
39         mul      (16|M0)                acc0.0<1>:w              r[a0.6]<16;16,1>:uw        r17.0<16;16,1>:uw
40         mac      (16|M0)                acc0.0<1>:w              r[a0.2]<16;16,1>:uw        r16.0<16;16,1>:uw
41         shr      (16|M0)                (sat)r[a0.2]<1>:uw       acc0.0<16;16,1>:w          0x10:uw
42L256:
43         endif    (16|M0)                L272
44L272:
45         cmp      (1|M0)     (eq)f0.0    null.0<1>:w              r[a0.3,2]<0;1,0>:uw        0x0:uw
46(W&f0.0) jmpi     L544
47L304:
48         cmp      (16|M0)    (ne)f0.0    null.0<1>:w              r[a0.7,32]<16;16,1>:uw     0x0:uw
49         and      (1|M0)                 f0.0<1>:uw               f0.0<0;1,0>:uw             r[a0.3,2]<0;1,0>:uw
50(f0.0)   if       (16|M0)                L528                     L528
51L352:
52         add      (16|M0)                (sat)r17.0<1>:uw         r[a0.7,32]<16;16,1>:uw     0x100:uw
53         add      (16|M0)                (sat)r16.0<1>:uw         -r[a0.7,32]<16;16,1>:uw    0xFF00:uw
54         mul      (16|M0)                acc0.0<1>:w              r[a0.4,32]<16;16,1>:uw     r17.0<16;16,1>:uw
55         mac      (16|M0)                acc0.0<1>:w              r[a0.0,32]<16;16,1>:uw     r16.0<16;16,1>:uw
56         shr      (16|M0)                (sat)r[a0.0,32]<1>:uw    acc0.0<16;16,1>:w          0x10:uw
57         mul      (16|M0)                acc0.0<1>:w              r[a0.5,32]<16;16,1>:uw     r17.0<16;16,1>:uw
58         mac      (16|M0)                acc0.0<1>:w              r[a0.1,32]<16;16,1>:uw     r16.0<16;16,1>:uw
59         shr      (16|M0)                (sat)r[a0.1,32]<1>:uw    acc0.0<16;16,1>:w          0x10:uw
60         mul      (16|M0)                acc0.0<1>:w              r[a0.6,32]<16;16,1>:uw     r17.0<16;16,1>:uw
61         mac      (16|M0)                acc0.0<1>:w              r[a0.2,32]<16;16,1>:uw     r16.0<16;16,1>:uw
62         shr      (16|M0)                (sat)r[a0.2,32]<1>:uw    acc0.0<16;16,1>:w          0x10:uw
63L528:
64         endif    (16|M0)                L544
65L544:
66         add      (4|M0)                 a0.0<1>:ud               a0.0<4;4,1>:ud             r22.4<1;2,0>:ud
67         add      (1|M0)                 a0.3<1>:w                a0.3<0;1,0>:w              -r22.9<0;1,0>:w
68         cmp      (1|M0)     (eq)f0.0    null.0<1>:w              r[a0.3,4]<0;1,0>:uw        0x0:uw
69(W&f0.0) jmpi     L848
70L608:
71         cmp      (16|M0)    (ne)f0.0    null.0<1>:w              r[a0.7]<16;16,1>:uw        0x0:uw
72         and      (1|M0)                 f0.0<1>:uw               f0.0<0;1,0>:uw             r[a0.3,4]<0;1,0>:uw
73(f0.0)   if       (16|M0)                L832                     L832
74L656:
75         add      (16|M0)                (sat)r17.0<1>:uw         r[a0.7]<16;16,1>:uw        0x100:uw
76         add      (16|M0)                (sat)r16.0<1>:uw         -r[a0.7]<16;16,1>:uw       0xFF00:uw
77         mul      (16|M0)                acc0.0<1>:w              r[a0.4]<16;16,1>:uw        r17.0<16;16,1>:uw
78         mac      (16|M0)                acc0.0<1>:w              r[a0.0]<16;16,1>:uw        r16.0<16;16,1>:uw
79         shr      (16|M0)                (sat)r[a0.0]<1>:uw       acc0.0<16;16,1>:w          0x10:uw
80         mul      (16|M0)                acc0.0<1>:w              r[a0.5]<16;16,1>:uw        r17.0<16;16,1>:uw
81         mac      (16|M0)                acc0.0<1>:w              r[a0.1]<16;16,1>:uw        r16.0<16;16,1>:uw
82         shr      (16|M0)                (sat)r[a0.1]<1>:uw       acc0.0<16;16,1>:w          0x10:uw
83         mul      (16|M0)                acc0.0<1>:w              r[a0.6]<16;16,1>:uw        r17.0<16;16,1>:uw
84         mac      (16|M0)                acc0.0<1>:w              r[a0.2]<16;16,1>:uw        r16.0<16;16,1>:uw
85         shr      (16|M0)                (sat)r[a0.2]<1>:uw       acc0.0<16;16,1>:w          0x10:uw
86L832:
87         endif    (16|M0)                L848
88L848:
89         cmp      (1|M0)     (eq)f0.0    null.0<1>:w              r[a0.3,6]<0;1,0>:uw        0x0:uw
90(W&f0.0) jmpi     L1120
91L880:
92         cmp      (16|M0)    (ne)f0.0    null.0<1>:w              r[a0.7,32]<16;16,1>:uw     0x0:uw
93         and      (1|M0)                 f0.0<1>:uw               f0.0<0;1,0>:uw             r[a0.3,6]<0;1,0>:uw
94(f0.0)   if       (16|M0)                L1104                    L1104
95L928:
96         add      (16|M0)                (sat)r17.0<1>:uw         r[a0.7,32]<16;16,1>:uw     0x100:uw
97         add      (16|M0)                (sat)r16.0<1>:uw         -r[a0.7,32]<16;16,1>:uw    0xFF00:uw
98         mul      (16|M0)                acc0.0<1>:w              r[a0.4,32]<16;16,1>:uw     r17.0<16;16,1>:uw
99         mac      (16|M0)                acc0.0<1>:w              r[a0.0,32]<16;16,1>:uw     r16.0<16;16,1>:uw
100         shr      (16|M0)                (sat)r[a0.0,32]<1>:uw    acc0.0<16;16,1>:w          0x10:uw
101         mul      (16|M0)                acc0.0<1>:w              r[a0.5,32]<16;16,1>:uw     r17.0<16;16,1>:uw
102         mac      (16|M0)                acc0.0<1>:w              r[a0.1,32]<16;16,1>:uw     r16.0<16;16,1>:uw
103         shr      (16|M0)                (sat)r[a0.1,32]<1>:uw    acc0.0<16;16,1>:w          0x10:uw
104         mul      (16|M0)                acc0.0<1>:w              r[a0.6,32]<16;16,1>:uw     r17.0<16;16,1>:uw
105         mac      (16|M0)                acc0.0<1>:w              r[a0.2,32]<16;16,1>:uw     r16.0<16;16,1>:uw
106         shr      (16|M0)                (sat)r[a0.2,32]<1>:uw    acc0.0<16;16,1>:w          0x10:uw
107L1104:
108         endif    (16|M0)                L1120
109L1120:
110         nop
111