33 "movq (%1), %%mm0 \n\t"
34 "movq 1(%1), %%mm4 \n\t"
35 "movq %%mm0, %%mm1 \n\t"
36 "movq %%mm4, %%mm5 \n\t"
37 "punpcklbw %%mm7, %%mm0 \n\t"
38 "punpcklbw %%mm7, %%mm4 \n\t"
39 "punpckhbw %%mm7, %%mm1 \n\t"
40 "punpckhbw %%mm7, %%mm5 \n\t"
41 "paddusw %%mm0, %%mm4 \n\t"
42 "paddusw %%mm1, %%mm5 \n\t"
43 "xor %%"REG_a
", %%"REG_a
" \n\t"
47 "movq (%1, %%"REG_a
"), %%mm0 \n\t"
48 "movq 1(%1, %%"REG_a
"), %%mm2 \n\t"
49 "movq %%mm0, %%mm1 \n\t"
50 "movq %%mm2, %%mm3 \n\t"
51 "punpcklbw %%mm7, %%mm0 \n\t"
52 "punpcklbw %%mm7, %%mm2 \n\t"
53 "punpckhbw %%mm7, %%mm1 \n\t"
54 "punpckhbw %%mm7, %%mm3 \n\t"
55 "paddusw %%mm2, %%mm0 \n\t"
56 "paddusw %%mm3, %%mm1 \n\t"
57 "paddusw %%mm6, %%mm4 \n\t"
58 "paddusw %%mm6, %%mm5 \n\t"
59 "paddusw %%mm0, %%mm4 \n\t"
60 "paddusw %%mm1, %%mm5 \n\t"
61 "psrlw $2, %%mm4 \n\t"
62 "psrlw $2, %%mm5 \n\t"
63 "packuswb %%mm5, %%mm4 \n\t"
64 "movq %%mm4, (%2, %%"REG_a
") \n\t"
65 "add %3, %%"REG_a
" \n\t"
67 "movq (%1, %%"REG_a
"), %%mm2 \n\t"
68 "movq 1(%1, %%"REG_a
"), %%mm4 \n\t"
69 "movq %%mm2, %%mm3 \n\t"
70 "movq %%mm4, %%mm5 \n\t"
71 "punpcklbw %%mm7, %%mm2 \n\t"
72 "punpcklbw %%mm7, %%mm4 \n\t"
73 "punpckhbw %%mm7, %%mm3 \n\t"
74 "punpckhbw %%mm7, %%mm5 \n\t"
75 "paddusw %%mm2, %%mm4 \n\t"
76 "paddusw %%mm3, %%mm5 \n\t"
77 "paddusw %%mm6, %%mm0 \n\t"
78 "paddusw %%mm6, %%mm1 \n\t"
79 "paddusw %%mm4, %%mm0 \n\t"
80 "paddusw %%mm5, %%mm1 \n\t"
81 "psrlw $2, %%mm0 \n\t"
82 "psrlw $2, %%mm1 \n\t"
83 "packuswb %%mm1, %%mm0 \n\t"
84 "movq %%mm0, (%2, %%"REG_a
") \n\t"
85 "add %3, %%"REG_a
" \n\t"
89 :
"+g"(h),
"+S"(pixels)
103 "movq %0, %%mm0 \n\t"
104 "movq %1, %%mm1 \n\t"
105 OP_AVG(%%mm0, %%mm1, %%mm2, %%mm6)
106 "movq %%mm2, %0 \n\t"
123 "movq %0, %%mm0 \n\t"
124 "movq %1, %%mm1 \n\t"
125 OP_AVG(%%mm0, %%mm1, %%mm2, %%mm6)
126 "movq %%mm2, %0 \n\t"
127 "movq 8%0, %%mm0 \n\t"
128 "movq 8%1, %%mm1 \n\t"
129 OP_AVG(%%mm0, %%mm1, %%mm2, %%mm6)
130 "movq %%mm2, 8%0 \n\t"
146 "movq (%1), %%mm0 \n\t"
147 "movq 1(%1), %%mm4 \n\t"
148 "movq %%mm0, %%mm1 \n\t"
149 "movq %%mm4, %%mm5 \n\t"
150 "punpcklbw %%mm7, %%mm0 \n\t"
151 "punpcklbw %%mm7, %%mm4 \n\t"
152 "punpckhbw %%mm7, %%mm1 \n\t"
153 "punpckhbw %%mm7, %%mm5 \n\t"
154 "paddusw %%mm0, %%mm4 \n\t"
155 "paddusw %%mm1, %%mm5 \n\t"
156 "xor %%"REG_a
", %%"REG_a
" \n\t"
160 "movq (%1, %%"REG_a
"), %%mm0 \n\t"
161 "movq 1(%1, %%"REG_a
"), %%mm2 \n\t"
162 "movq %%mm0, %%mm1 \n\t"
163 "movq %%mm2, %%mm3 \n\t"
164 "punpcklbw %%mm7, %%mm0 \n\t"
165 "punpcklbw %%mm7, %%mm2 \n\t"
166 "punpckhbw %%mm7, %%mm1 \n\t"
167 "punpckhbw %%mm7, %%mm3 \n\t"
168 "paddusw %%mm2, %%mm0 \n\t"
169 "paddusw %%mm3, %%mm1 \n\t"
170 "paddusw %%mm6, %%mm4 \n\t"
171 "paddusw %%mm6, %%mm5 \n\t"
172 "paddusw %%mm0, %%mm4 \n\t"
173 "paddusw %%mm1, %%mm5 \n\t"
174 "psrlw $2, %%mm4 \n\t"
175 "psrlw $2, %%mm5 \n\t"
176 "movq (%2, %%"REG_a
"), %%mm3 \n\t"
177 "packuswb %%mm5, %%mm4 \n\t"
178 "pcmpeqd %%mm2, %%mm2 \n\t"
179 "paddb %%mm2, %%mm2 \n\t"
180 OP_AVG(%%mm3, %%mm4, %%mm5, %%mm2)
181 "movq %%mm5, (%2, %%"REG_a
") \n\t"
182 "add %3, %%"REG_a
" \n\t"
184 "movq (%1, %%"REG_a
"), %%mm2 \n\t"
185 "movq 1(%1, %%"REG_a
"), %%mm4 \n\t"
186 "movq %%mm2, %%mm3 \n\t"
187 "movq %%mm4, %%mm5 \n\t"
188 "punpcklbw %%mm7, %%mm2 \n\t"
189 "punpcklbw %%mm7, %%mm4 \n\t"
190 "punpckhbw %%mm7, %%mm3 \n\t"
191 "punpckhbw %%mm7, %%mm5 \n\t"
192 "paddusw %%mm2, %%mm4 \n\t"
193 "paddusw %%mm3, %%mm5 \n\t"
194 "paddusw %%mm6, %%mm0 \n\t"
195 "paddusw %%mm6, %%mm1 \n\t"
196 "paddusw %%mm4, %%mm0 \n\t"
197 "paddusw %%mm5, %%mm1 \n\t"
198 "psrlw $2, %%mm0 \n\t"
199 "psrlw $2, %%mm1 \n\t"
200 "movq (%2, %%"REG_a
"), %%mm3 \n\t"
201 "packuswb %%mm1, %%mm0 \n\t"
202 "pcmpeqd %%mm2, %%mm2 \n\t"
203 "paddb %%mm2, %%mm2 \n\t"
204 OP_AVG(%%mm3, %%mm0, %%mm1, %%mm2)
205 "movq %%mm1, (%2, %%"REG_a
") \n\t"
206 "add %3, %%"REG_a
" \n\t"
210 :
"+g"(h),
"+S"(pixels)