1 /* 2 * Copyright 2019 The libgav1 Authors 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 */ 16 17 #ifndef LIBGAV1_SRC_DSP_X86_INTRAPRED_SSE4_H_ 18 #define LIBGAV1_SRC_DSP_X86_INTRAPRED_SSE4_H_ 19 20 #include "src/dsp/dsp.h" 21 #include "src/utils/cpu.h" 22 23 namespace libgav1 { 24 namespace dsp { 25 26 // Initializes Dsp::intra_predictors. See the defines below for specifics. 27 // These functions are not thread-safe. 28 void IntraPredInit_SSE4_1(); 29 30 } // namespace dsp 31 } // namespace libgav1 32 33 // If sse4 is enabled and the baseline isn't set due to a higher level of 34 // optimization being enabled, signal the sse4 implementation should be used. 35 #if LIBGAV1_TARGETING_SSE4_1 36 #ifndef LIBGAV1_Dsp8bpp_TransformSize4x4_IntraPredictorDcTop 37 #define LIBGAV1_Dsp8bpp_TransformSize4x4_IntraPredictorDcTop LIBGAV1_CPU_SSE4_1 38 #endif 39 40 #ifndef LIBGAV1_Dsp8bpp_TransformSize4x8_IntraPredictorDcTop 41 #define LIBGAV1_Dsp8bpp_TransformSize4x8_IntraPredictorDcTop LIBGAV1_CPU_SSE4_1 42 #endif 43 44 #ifndef LIBGAV1_Dsp8bpp_TransformSize4x16_IntraPredictorDcTop 45 #define LIBGAV1_Dsp8bpp_TransformSize4x16_IntraPredictorDcTop LIBGAV1_CPU_SSE4_1 46 #endif 47 48 #ifndef LIBGAV1_Dsp8bpp_TransformSize8x4_IntraPredictorDcTop 49 #define LIBGAV1_Dsp8bpp_TransformSize8x4_IntraPredictorDcTop LIBGAV1_CPU_SSE4_1 50 #endif 51 52 #ifndef LIBGAV1_Dsp8bpp_TransformSize8x8_IntraPredictorDcTop 53 #define LIBGAV1_Dsp8bpp_TransformSize8x8_IntraPredictorDcTop LIBGAV1_CPU_SSE4_1 54 #endif 55 56 #ifndef LIBGAV1_Dsp8bpp_TransformSize8x16_IntraPredictorDcTop 57 #define LIBGAV1_Dsp8bpp_TransformSize8x16_IntraPredictorDcTop LIBGAV1_CPU_SSE4_1 58 #endif 59 60 #ifndef LIBGAV1_Dsp8bpp_TransformSize8x32_IntraPredictorDcTop 61 #define LIBGAV1_Dsp8bpp_TransformSize8x32_IntraPredictorDcTop LIBGAV1_CPU_SSE4_1 62 #endif 63 64 #ifndef LIBGAV1_Dsp8bpp_TransformSize16x4_IntraPredictorDcTop 65 #define LIBGAV1_Dsp8bpp_TransformSize16x4_IntraPredictorDcTop LIBGAV1_CPU_SSE4_1 66 #endif 67 68 #ifndef LIBGAV1_Dsp8bpp_TransformSize16x8_IntraPredictorDcTop 69 #define LIBGAV1_Dsp8bpp_TransformSize16x8_IntraPredictorDcTop LIBGAV1_CPU_SSE4_1 70 #endif 71 72 #ifndef LIBGAV1_Dsp8bpp_TransformSize16x16_IntraPredictorDcTop 73 #define LIBGAV1_Dsp8bpp_TransformSize16x16_IntraPredictorDcTop \ 74 LIBGAV1_CPU_SSE4_1 75 #endif 76 77 #ifndef LIBGAV1_Dsp8bpp_TransformSize16x32_IntraPredictorDcTop 78 #define LIBGAV1_Dsp8bpp_TransformSize16x32_IntraPredictorDcTop \ 79 LIBGAV1_CPU_SSE4_1 80 #endif 81 82 #ifndef LIBGAV1_Dsp8bpp_TransformSize16x64_IntraPredictorDcTop 83 #define LIBGAV1_Dsp8bpp_TransformSize16x64_IntraPredictorDcTop \ 84 LIBGAV1_CPU_SSE4_1 85 #endif 86 87 #ifndef LIBGAV1_Dsp8bpp_TransformSize32x8_IntraPredictorDcTop 88 #define LIBGAV1_Dsp8bpp_TransformSize32x8_IntraPredictorDcTop LIBGAV1_CPU_SSE4_1 89 #endif 90 91 #ifndef LIBGAV1_Dsp8bpp_TransformSize32x16_IntraPredictorDcTop 92 #define LIBGAV1_Dsp8bpp_TransformSize32x16_IntraPredictorDcTop \ 93 LIBGAV1_CPU_SSE4_1 94 #endif 95 96 #ifndef LIBGAV1_Dsp8bpp_TransformSize32x32_IntraPredictorDcTop 97 #define LIBGAV1_Dsp8bpp_TransformSize32x32_IntraPredictorDcTop \ 98 LIBGAV1_CPU_SSE4_1 99 #endif 100 101 #ifndef LIBGAV1_Dsp8bpp_TransformSize32x64_IntraPredictorDcTop 102 #define LIBGAV1_Dsp8bpp_TransformSize32x64_IntraPredictorDcTop \ 103 LIBGAV1_CPU_SSE4_1 104 #endif 105 106 #ifndef LIBGAV1_Dsp8bpp_TransformSize64x16_IntraPredictorDcTop 107 #define LIBGAV1_Dsp8bpp_TransformSize64x16_IntraPredictorDcTop \ 108 LIBGAV1_CPU_SSE4_1 109 #endif 110 111 #ifndef LIBGAV1_Dsp8bpp_TransformSize64x32_IntraPredictorDcTop 112 #define LIBGAV1_Dsp8bpp_TransformSize64x32_IntraPredictorDcTop \ 113 LIBGAV1_CPU_SSE4_1 114 #endif 115 116 #ifndef LIBGAV1_Dsp8bpp_TransformSize64x64_IntraPredictorDcTop 117 #define LIBGAV1_Dsp8bpp_TransformSize64x64_IntraPredictorDcTop \ 118 LIBGAV1_CPU_SSE4_1 119 #endif 120 121 #ifndef LIBGAV1_Dsp8bpp_TransformSize4x4_IntraPredictorDcLeft 122 #define LIBGAV1_Dsp8bpp_TransformSize4x4_IntraPredictorDcLeft LIBGAV1_CPU_SSE4_1 123 #endif 124 125 #ifndef LIBGAV1_Dsp8bpp_TransformSize4x8_IntraPredictorDcLeft 126 #define LIBGAV1_Dsp8bpp_TransformSize4x8_IntraPredictorDcLeft LIBGAV1_CPU_SSE4_1 127 #endif 128 129 #ifndef LIBGAV1_Dsp8bpp_TransformSize4x16_IntraPredictorDcLeft 130 #define LIBGAV1_Dsp8bpp_TransformSize4x16_IntraPredictorDcLeft \ 131 LIBGAV1_CPU_SSE4_1 132 #endif 133 134 #ifndef LIBGAV1_Dsp8bpp_TransformSize8x4_IntraPredictorDcLeft 135 #define LIBGAV1_Dsp8bpp_TransformSize8x4_IntraPredictorDcLeft LIBGAV1_CPU_SSE4_1 136 #endif 137 138 #ifndef LIBGAV1_Dsp8bpp_TransformSize8x8_IntraPredictorDcLeft 139 #define LIBGAV1_Dsp8bpp_TransformSize8x8_IntraPredictorDcLeft LIBGAV1_CPU_SSE4_1 140 #endif 141 142 #ifndef LIBGAV1_Dsp8bpp_TransformSize8x16_IntraPredictorDcLeft 143 #define LIBGAV1_Dsp8bpp_TransformSize8x16_IntraPredictorDcLeft \ 144 LIBGAV1_CPU_SSE4_1 145 #endif 146 147 #ifndef LIBGAV1_Dsp8bpp_TransformSize8x32_IntraPredictorDcLeft 148 #define LIBGAV1_Dsp8bpp_TransformSize8x32_IntraPredictorDcLeft \ 149 LIBGAV1_CPU_SSE4_1 150 #endif 151 152 #ifndef LIBGAV1_Dsp8bpp_TransformSize16x4_IntraPredictorDcLeft 153 #define LIBGAV1_Dsp8bpp_TransformSize16x4_IntraPredictorDcLeft \ 154 LIBGAV1_CPU_SSE4_1 155 #endif 156 157 #ifndef LIBGAV1_Dsp8bpp_TransformSize16x8_IntraPredictorDcLeft 158 #define LIBGAV1_Dsp8bpp_TransformSize16x8_IntraPredictorDcLeft \ 159 LIBGAV1_CPU_SSE4_1 160 #endif 161 162 #ifndef LIBGAV1_Dsp8bpp_TransformSize16x16_IntraPredictorDcLeft 163 #define LIBGAV1_Dsp8bpp_TransformSize16x16_IntraPredictorDcLeft \ 164 LIBGAV1_CPU_SSE4_1 165 #endif 166 167 #ifndef LIBGAV1_Dsp8bpp_TransformSize16x32_IntraPredictorDcLeft 168 #define LIBGAV1_Dsp8bpp_TransformSize16x32_IntraPredictorDcLeft \ 169 LIBGAV1_CPU_SSE4_1 170 #endif 171 172 #ifndef LIBGAV1_Dsp8bpp_TransformSize16x64_IntraPredictorDcLeft 173 #define LIBGAV1_Dsp8bpp_TransformSize16x64_IntraPredictorDcLeft \ 174 LIBGAV1_CPU_SSE4_1 175 #endif 176 177 #ifndef LIBGAV1_Dsp8bpp_TransformSize32x8_IntraPredictorDcLeft 178 #define LIBGAV1_Dsp8bpp_TransformSize32x8_IntraPredictorDcLeft \ 179 LIBGAV1_CPU_SSE4_1 180 #endif 181 182 #ifndef LIBGAV1_Dsp8bpp_TransformSize32x16_IntraPredictorDcLeft 183 #define LIBGAV1_Dsp8bpp_TransformSize32x16_IntraPredictorDcLeft \ 184 LIBGAV1_CPU_SSE4_1 185 #endif 186 187 #ifndef LIBGAV1_Dsp8bpp_TransformSize32x32_IntraPredictorDcLeft 188 #define LIBGAV1_Dsp8bpp_TransformSize32x32_IntraPredictorDcLeft \ 189 LIBGAV1_CPU_SSE4_1 190 #endif 191 192 #ifndef LIBGAV1_Dsp8bpp_TransformSize32x64_IntraPredictorDcLeft 193 #define LIBGAV1_Dsp8bpp_TransformSize32x64_IntraPredictorDcLeft \ 194 LIBGAV1_CPU_SSE4_1 195 #endif 196 197 #ifndef LIBGAV1_Dsp8bpp_TransformSize64x16_IntraPredictorDcLeft 198 #define LIBGAV1_Dsp8bpp_TransformSize64x16_IntraPredictorDcLeft \ 199 LIBGAV1_CPU_SSE4_1 200 #endif 201 202 #ifndef LIBGAV1_Dsp8bpp_TransformSize64x32_IntraPredictorDcLeft 203 #define LIBGAV1_Dsp8bpp_TransformSize64x32_IntraPredictorDcLeft \ 204 LIBGAV1_CPU_SSE4_1 205 #endif 206 207 #ifndef LIBGAV1_Dsp8bpp_TransformSize64x64_IntraPredictorDcLeft 208 #define LIBGAV1_Dsp8bpp_TransformSize64x64_IntraPredictorDcLeft \ 209 LIBGAV1_CPU_SSE4_1 210 #endif 211 212 #ifndef LIBGAV1_Dsp8bpp_TransformSize4x4_IntraPredictorDc 213 #define LIBGAV1_Dsp8bpp_TransformSize4x4_IntraPredictorDc LIBGAV1_CPU_SSE4_1 214 #endif 215 216 #ifndef LIBGAV1_Dsp8bpp_TransformSize4x8_IntraPredictorDc 217 #define LIBGAV1_Dsp8bpp_TransformSize4x8_IntraPredictorDc LIBGAV1_CPU_SSE4_1 218 #endif 219 220 #ifndef LIBGAV1_Dsp8bpp_TransformSize4x16_IntraPredictorDc 221 #define LIBGAV1_Dsp8bpp_TransformSize4x16_IntraPredictorDc LIBGAV1_CPU_SSE4_1 222 #endif 223 224 #ifndef LIBGAV1_Dsp8bpp_TransformSize8x4_IntraPredictorDc 225 #define LIBGAV1_Dsp8bpp_TransformSize8x4_IntraPredictorDc LIBGAV1_CPU_SSE4_1 226 #endif 227 228 #ifndef LIBGAV1_Dsp8bpp_TransformSize8x8_IntraPredictorDc 229 #define LIBGAV1_Dsp8bpp_TransformSize8x8_IntraPredictorDc LIBGAV1_CPU_SSE4_1 230 #endif 231 232 #ifndef LIBGAV1_Dsp8bpp_TransformSize8x16_IntraPredictorDc 233 #define LIBGAV1_Dsp8bpp_TransformSize8x16_IntraPredictorDc LIBGAV1_CPU_SSE4_1 234 #endif 235 236 #ifndef LIBGAV1_Dsp8bpp_TransformSize8x32_IntraPredictorDc 237 #define LIBGAV1_Dsp8bpp_TransformSize8x32_IntraPredictorDc LIBGAV1_CPU_SSE4_1 238 #endif 239 240 #ifndef LIBGAV1_Dsp8bpp_TransformSize16x4_IntraPredictorDc 241 #define LIBGAV1_Dsp8bpp_TransformSize16x4_IntraPredictorDc LIBGAV1_CPU_SSE4_1 242 #endif 243 244 #ifndef LIBGAV1_Dsp8bpp_TransformSize16x8_IntraPredictorDc 245 #define LIBGAV1_Dsp8bpp_TransformSize16x8_IntraPredictorDc LIBGAV1_CPU_SSE4_1 246 #endif 247 248 #ifndef LIBGAV1_Dsp8bpp_TransformSize16x16_IntraPredictorDc 249 #define LIBGAV1_Dsp8bpp_TransformSize16x16_IntraPredictorDc LIBGAV1_CPU_SSE4_1 250 #endif 251 252 #ifndef LIBGAV1_Dsp8bpp_TransformSize16x32_IntraPredictorDc 253 #define LIBGAV1_Dsp8bpp_TransformSize16x32_IntraPredictorDc LIBGAV1_CPU_SSE4_1 254 #endif 255 256 #ifndef LIBGAV1_Dsp8bpp_TransformSize16x64_IntraPredictorDc 257 #define LIBGAV1_Dsp8bpp_TransformSize16x64_IntraPredictorDc LIBGAV1_CPU_SSE4_1 258 #endif 259 260 #ifndef LIBGAV1_Dsp8bpp_TransformSize32x8_IntraPredictorDc 261 #define LIBGAV1_Dsp8bpp_TransformSize32x8_IntraPredictorDc LIBGAV1_CPU_SSE4_1 262 #endif 263 264 #ifndef LIBGAV1_Dsp8bpp_TransformSize32x16_IntraPredictorDc 265 #define LIBGAV1_Dsp8bpp_TransformSize32x16_IntraPredictorDc LIBGAV1_CPU_SSE4_1 266 #endif 267 268 #ifndef LIBGAV1_Dsp8bpp_TransformSize32x32_IntraPredictorDc 269 #define LIBGAV1_Dsp8bpp_TransformSize32x32_IntraPredictorDc LIBGAV1_CPU_SSE4_1 270 #endif 271 272 #ifndef LIBGAV1_Dsp8bpp_TransformSize32x64_IntraPredictorDc 273 #define LIBGAV1_Dsp8bpp_TransformSize32x64_IntraPredictorDc LIBGAV1_CPU_SSE4_1 274 #endif 275 276 #ifndef LIBGAV1_Dsp8bpp_TransformSize64x16_IntraPredictorDc 277 #define LIBGAV1_Dsp8bpp_TransformSize64x16_IntraPredictorDc LIBGAV1_CPU_SSE4_1 278 #endif 279 280 #ifndef LIBGAV1_Dsp8bpp_TransformSize64x32_IntraPredictorDc 281 #define LIBGAV1_Dsp8bpp_TransformSize64x32_IntraPredictorDc LIBGAV1_CPU_SSE4_1 282 #endif 283 284 #ifndef LIBGAV1_Dsp8bpp_TransformSize64x64_IntraPredictorDc 285 #define LIBGAV1_Dsp8bpp_TransformSize64x64_IntraPredictorDc LIBGAV1_CPU_SSE4_1 286 #endif 287 288 #ifndef LIBGAV1_Dsp8bpp_TransformSize4x4_IntraPredictorPaeth 289 #define LIBGAV1_Dsp8bpp_TransformSize4x4_IntraPredictorPaeth LIBGAV1_CPU_SSE4_1 290 #endif 291 292 #ifndef LIBGAV1_Dsp8bpp_TransformSize4x8_IntraPredictorPaeth 293 #define LIBGAV1_Dsp8bpp_TransformSize4x8_IntraPredictorPaeth LIBGAV1_CPU_SSE4_1 294 #endif 295 296 #ifndef LIBGAV1_Dsp8bpp_TransformSize4x16_IntraPredictorPaeth 297 #define LIBGAV1_Dsp8bpp_TransformSize4x16_IntraPredictorPaeth LIBGAV1_CPU_SSE4_1 298 #endif 299 300 #ifndef LIBGAV1_Dsp8bpp_TransformSize8x4_IntraPredictorPaeth 301 #define LIBGAV1_Dsp8bpp_TransformSize8x4_IntraPredictorPaeth LIBGAV1_CPU_SSE4_1 302 #endif 303 304 #ifndef LIBGAV1_Dsp8bpp_TransformSize8x8_IntraPredictorPaeth 305 #define LIBGAV1_Dsp8bpp_TransformSize8x8_IntraPredictorPaeth LIBGAV1_CPU_SSE4_1 306 #endif 307 308 #ifndef LIBGAV1_Dsp8bpp_TransformSize8x16_IntraPredictorPaeth 309 #define LIBGAV1_Dsp8bpp_TransformSize8x16_IntraPredictorPaeth LIBGAV1_CPU_SSE4_1 310 #endif 311 312 #ifndef LIBGAV1_Dsp8bpp_TransformSize8x32_IntraPredictorPaeth 313 #define LIBGAV1_Dsp8bpp_TransformSize8x32_IntraPredictorPaeth LIBGAV1_CPU_SSE4_1 314 #endif 315 316 #ifndef LIBGAV1_Dsp8bpp_TransformSize16x4_IntraPredictorPaeth 317 #define LIBGAV1_Dsp8bpp_TransformSize16x4_IntraPredictorPaeth LIBGAV1_CPU_SSE4_1 318 #endif 319 320 #ifndef LIBGAV1_Dsp8bpp_TransformSize16x8_IntraPredictorPaeth 321 #define LIBGAV1_Dsp8bpp_TransformSize16x8_IntraPredictorPaeth LIBGAV1_CPU_SSE4_1 322 #endif 323 324 #ifndef LIBGAV1_Dsp8bpp_TransformSize16x16_IntraPredictorPaeth 325 #define LIBGAV1_Dsp8bpp_TransformSize16x16_IntraPredictorPaeth \ 326 LIBGAV1_CPU_SSE4_1 327 #endif 328 329 #ifndef LIBGAV1_Dsp8bpp_TransformSize16x32_IntraPredictorPaeth 330 #define LIBGAV1_Dsp8bpp_TransformSize16x32_IntraPredictorPaeth \ 331 LIBGAV1_CPU_SSE4_1 332 #endif 333 334 #ifndef LIBGAV1_Dsp8bpp_TransformSize16x64_IntraPredictorPaeth 335 #define LIBGAV1_Dsp8bpp_TransformSize16x64_IntraPredictorPaeth \ 336 LIBGAV1_CPU_SSE4_1 337 #endif 338 339 #ifndef LIBGAV1_Dsp8bpp_TransformSize32x8_IntraPredictorPaeth 340 #define LIBGAV1_Dsp8bpp_TransformSize32x8_IntraPredictorPaeth LIBGAV1_CPU_SSE4_1 341 #endif 342 343 #ifndef LIBGAV1_Dsp8bpp_TransformSize32x16_IntraPredictorPaeth 344 #define LIBGAV1_Dsp8bpp_TransformSize32x16_IntraPredictorPaeth \ 345 LIBGAV1_CPU_SSE4_1 346 #endif 347 348 #ifndef LIBGAV1_Dsp8bpp_TransformSize32x32_IntraPredictorPaeth 349 #define LIBGAV1_Dsp8bpp_TransformSize32x32_IntraPredictorPaeth \ 350 LIBGAV1_CPU_SSE4_1 351 #endif 352 353 #ifndef LIBGAV1_Dsp8bpp_TransformSize32x64_IntraPredictorPaeth 354 #define LIBGAV1_Dsp8bpp_TransformSize32x64_IntraPredictorPaeth \ 355 LIBGAV1_CPU_SSE4_1 356 #endif 357 358 #ifndef LIBGAV1_Dsp8bpp_TransformSize64x16_IntraPredictorPaeth 359 #define LIBGAV1_Dsp8bpp_TransformSize64x16_IntraPredictorPaeth \ 360 LIBGAV1_CPU_SSE4_1 361 #endif 362 363 #ifndef LIBGAV1_Dsp8bpp_TransformSize64x32_IntraPredictorPaeth 364 #define LIBGAV1_Dsp8bpp_TransformSize64x32_IntraPredictorPaeth \ 365 LIBGAV1_CPU_SSE4_1 366 #endif 367 368 #ifndef LIBGAV1_Dsp8bpp_TransformSize64x64_IntraPredictorPaeth 369 #define LIBGAV1_Dsp8bpp_TransformSize64x64_IntraPredictorPaeth \ 370 LIBGAV1_CPU_SSE4_1 371 #endif 372 373 #ifndef LIBGAV1_Dsp8bpp_TransformSize4x4_IntraPredictorHorizontal 374 #define LIBGAV1_Dsp8bpp_TransformSize4x4_IntraPredictorHorizontal \ 375 LIBGAV1_CPU_SSE4_1 376 #endif 377 378 #ifndef LIBGAV1_Dsp8bpp_TransformSize4x8_IntraPredictorHorizontal 379 #define LIBGAV1_Dsp8bpp_TransformSize4x8_IntraPredictorHorizontal \ 380 LIBGAV1_CPU_SSE4_1 381 #endif 382 383 #ifndef LIBGAV1_Dsp8bpp_TransformSize4x16_IntraPredictorHorizontal 384 #define LIBGAV1_Dsp8bpp_TransformSize4x16_IntraPredictorHorizontal \ 385 LIBGAV1_CPU_SSE4_1 386 #endif 387 388 #ifndef LIBGAV1_Dsp8bpp_TransformSize8x4_IntraPredictorHorizontal 389 #define LIBGAV1_Dsp8bpp_TransformSize8x4_IntraPredictorHorizontal \ 390 LIBGAV1_CPU_SSE4_1 391 #endif 392 393 #ifndef LIBGAV1_Dsp8bpp_TransformSize8x8_IntraPredictorHorizontal 394 #define LIBGAV1_Dsp8bpp_TransformSize8x8_IntraPredictorHorizontal \ 395 LIBGAV1_CPU_SSE4_1 396 #endif 397 398 #ifndef LIBGAV1_Dsp8bpp_TransformSize8x16_IntraPredictorHorizontal 399 #define LIBGAV1_Dsp8bpp_TransformSize8x16_IntraPredictorHorizontal \ 400 LIBGAV1_CPU_SSE4_1 401 #endif 402 403 #ifndef LIBGAV1_Dsp8bpp_TransformSize8x32_IntraPredictorHorizontal 404 #define LIBGAV1_Dsp8bpp_TransformSize8x32_IntraPredictorHorizontal \ 405 LIBGAV1_CPU_SSE4_1 406 #endif 407 408 #ifndef LIBGAV1_Dsp8bpp_TransformSize16x4_IntraPredictorHorizontal 409 #define LIBGAV1_Dsp8bpp_TransformSize16x4_IntraPredictorHorizontal \ 410 LIBGAV1_CPU_SSE4_1 411 #endif 412 413 #ifndef LIBGAV1_Dsp8bpp_TransformSize16x8_IntraPredictorHorizontal 414 #define LIBGAV1_Dsp8bpp_TransformSize16x8_IntraPredictorHorizontal \ 415 LIBGAV1_CPU_SSE4_1 416 #endif 417 418 #ifndef LIBGAV1_Dsp8bpp_TransformSize16x16_IntraPredictorHorizontal 419 #define LIBGAV1_Dsp8bpp_TransformSize16x16_IntraPredictorHorizontal \ 420 LIBGAV1_CPU_SSE4_1 421 #endif 422 423 #ifndef LIBGAV1_Dsp8bpp_TransformSize16x32_IntraPredictorHorizontal 424 #define LIBGAV1_Dsp8bpp_TransformSize16x32_IntraPredictorHorizontal \ 425 LIBGAV1_CPU_SSE4_1 426 #endif 427 428 #ifndef LIBGAV1_Dsp8bpp_TransformSize16x64_IntraPredictorHorizontal 429 #define LIBGAV1_Dsp8bpp_TransformSize16x64_IntraPredictorHorizontal \ 430 LIBGAV1_CPU_SSE4_1 431 #endif 432 433 #ifndef LIBGAV1_Dsp8bpp_TransformSize32x8_IntraPredictorHorizontal 434 #define LIBGAV1_Dsp8bpp_TransformSize32x8_IntraPredictorHorizontal \ 435 LIBGAV1_CPU_SSE4_1 436 #endif 437 438 #ifndef LIBGAV1_Dsp8bpp_TransformSize32x16_IntraPredictorHorizontal 439 #define LIBGAV1_Dsp8bpp_TransformSize32x16_IntraPredictorHorizontal \ 440 LIBGAV1_CPU_SSE4_1 441 #endif 442 443 #ifndef LIBGAV1_Dsp8bpp_TransformSize32x16_IntraPredictorHorizontal 444 #define LIBGAV1_Dsp8bpp_TransformSize32x16_IntraPredictorHorizontal \ 445 LIBGAV1_CPU_SSE4_1 446 #endif 447 448 #ifndef LIBGAV1_Dsp8bpp_TransformSize32x32_IntraPredictorHorizontal 449 #define LIBGAV1_Dsp8bpp_TransformSize32x32_IntraPredictorHorizontal \ 450 LIBGAV1_CPU_SSE4_1 451 #endif 452 453 #ifndef LIBGAV1_Dsp8bpp_TransformSize32x64_IntraPredictorHorizontal 454 #define LIBGAV1_Dsp8bpp_TransformSize32x64_IntraPredictorHorizontal \ 455 LIBGAV1_CPU_SSE4_1 456 #endif 457 458 #ifndef LIBGAV1_Dsp8bpp_TransformSize64x16_IntraPredictorHorizontal 459 #define LIBGAV1_Dsp8bpp_TransformSize64x16_IntraPredictorHorizontal \ 460 LIBGAV1_CPU_SSE4_1 461 #endif 462 463 #ifndef LIBGAV1_Dsp8bpp_TransformSize64x32_IntraPredictorHorizontal 464 #define LIBGAV1_Dsp8bpp_TransformSize64x32_IntraPredictorHorizontal \ 465 LIBGAV1_CPU_SSE4_1 466 #endif 467 468 #ifndef LIBGAV1_Dsp8bpp_TransformSize64x64_IntraPredictorHorizontal 469 #define LIBGAV1_Dsp8bpp_TransformSize64x64_IntraPredictorHorizontal \ 470 LIBGAV1_CPU_SSE4_1 471 #endif 472 473 //------------------------------------------------------------------------------ 474 // 10bpp 475 476 #ifndef LIBGAV1_Dsp10bpp_TransformSize4x4_IntraPredictorDcTop 477 #define LIBGAV1_Dsp10bpp_TransformSize4x4_IntraPredictorDcTop LIBGAV1_CPU_SSE4_1 478 #endif 479 480 #ifndef LIBGAV1_Dsp10bpp_TransformSize4x4_IntraPredictorDcLeft 481 #define LIBGAV1_Dsp10bpp_TransformSize4x4_IntraPredictorDcLeft \ 482 LIBGAV1_CPU_SSE4_1 483 #endif 484 485 #ifndef LIBGAV1_Dsp10bpp_TransformSize4x4_IntraPredictorDc 486 #define LIBGAV1_Dsp10bpp_TransformSize4x4_IntraPredictorDc LIBGAV1_CPU_SSE4_1 487 #endif 488 489 #ifndef LIBGAV1_Dsp10bpp_TransformSize4x4_IntraPredictorHorizontal 490 #define LIBGAV1_Dsp10bpp_TransformSize4x4_IntraPredictorHorizontal \ 491 LIBGAV1_CPU_SSE4_1 492 #endif 493 494 #ifndef LIBGAV1_Dsp10bpp_TransformSize4x8_IntraPredictorHorizontal 495 #define LIBGAV1_Dsp10bpp_TransformSize4x8_IntraPredictorHorizontal \ 496 LIBGAV1_CPU_SSE4_1 497 #endif 498 499 #ifndef LIBGAV1_Dsp10bpp_TransformSize4x16_IntraPredictorHorizontal 500 #define LIBGAV1_Dsp10bpp_TransformSize4x16_IntraPredictorHorizontal \ 501 LIBGAV1_CPU_SSE4_1 502 #endif 503 504 #ifndef LIBGAV1_Dsp10bpp_TransformSize8x4_IntraPredictorHorizontal 505 #define LIBGAV1_Dsp10bpp_TransformSize8x4_IntraPredictorHorizontal \ 506 LIBGAV1_CPU_SSE4_1 507 #endif 508 509 #ifndef LIBGAV1_Dsp10bpp_TransformSize8x8_IntraPredictorHorizontal 510 #define LIBGAV1_Dsp10bpp_TransformSize8x8_IntraPredictorHorizontal \ 511 LIBGAV1_CPU_SSE4_1 512 #endif 513 514 #ifndef LIBGAV1_Dsp10bpp_TransformSize8x16_IntraPredictorHorizontal 515 #define LIBGAV1_Dsp10bpp_TransformSize8x16_IntraPredictorHorizontal \ 516 LIBGAV1_CPU_SSE4_1 517 #endif 518 519 #ifndef LIBGAV1_Dsp10bpp_TransformSize8x32_IntraPredictorHorizontal 520 #define LIBGAV1_Dsp10bpp_TransformSize8x32_IntraPredictorHorizontal \ 521 LIBGAV1_CPU_SSE4_1 522 #endif 523 524 #ifndef LIBGAV1_Dsp10bpp_TransformSize16x4_IntraPredictorHorizontal 525 #define LIBGAV1_Dsp10bpp_TransformSize16x4_IntraPredictorHorizontal \ 526 LIBGAV1_CPU_SSE4_1 527 #endif 528 529 #ifndef LIBGAV1_Dsp10bpp_TransformSize16x8_IntraPredictorHorizontal 530 #define LIBGAV1_Dsp10bpp_TransformSize16x8_IntraPredictorHorizontal \ 531 LIBGAV1_CPU_SSE4_1 532 #endif 533 534 #ifndef LIBGAV1_Dsp10bpp_TransformSize16x16_IntraPredictorHorizontal 535 #define LIBGAV1_Dsp10bpp_TransformSize16x16_IntraPredictorHorizontal \ 536 LIBGAV1_CPU_SSE4_1 537 #endif 538 539 #ifndef LIBGAV1_Dsp10bpp_TransformSize16x32_IntraPredictorHorizontal 540 #define LIBGAV1_Dsp10bpp_TransformSize16x32_IntraPredictorHorizontal \ 541 LIBGAV1_CPU_SSE4_1 542 #endif 543 544 #ifndef LIBGAV1_Dsp10bpp_TransformSize16x64_IntraPredictorHorizontal 545 #define LIBGAV1_Dsp10bpp_TransformSize16x64_IntraPredictorHorizontal \ 546 LIBGAV1_CPU_SSE4_1 547 #endif 548 549 #ifndef LIBGAV1_Dsp10bpp_TransformSize32x8_IntraPredictorHorizontal 550 #define LIBGAV1_Dsp10bpp_TransformSize32x8_IntraPredictorHorizontal \ 551 LIBGAV1_CPU_SSE4_1 552 #endif 553 554 #ifndef LIBGAV1_Dsp10bpp_TransformSize32x16_IntraPredictorHorizontal 555 #define LIBGAV1_Dsp10bpp_TransformSize32x16_IntraPredictorHorizontal \ 556 LIBGAV1_CPU_SSE4_1 557 #endif 558 559 #ifndef LIBGAV1_Dsp10bpp_TransformSize32x16_IntraPredictorHorizontal 560 #define LIBGAV1_Dsp10bpp_TransformSize32x16_IntraPredictorHorizontal \ 561 LIBGAV1_CPU_SSE4_1 562 #endif 563 564 #ifndef LIBGAV1_Dsp10bpp_TransformSize32x32_IntraPredictorHorizontal 565 #define LIBGAV1_Dsp10bpp_TransformSize32x32_IntraPredictorHorizontal \ 566 LIBGAV1_CPU_SSE4_1 567 #endif 568 569 #ifndef LIBGAV1_Dsp10bpp_TransformSize32x64_IntraPredictorHorizontal 570 #define LIBGAV1_Dsp10bpp_TransformSize32x64_IntraPredictorHorizontal \ 571 LIBGAV1_CPU_SSE4_1 572 #endif 573 574 #ifndef LIBGAV1_Dsp10bpp_TransformSize64x16_IntraPredictorHorizontal 575 #define LIBGAV1_Dsp10bpp_TransformSize64x16_IntraPredictorHorizontal \ 576 LIBGAV1_CPU_SSE4_1 577 #endif 578 579 #ifndef LIBGAV1_Dsp10bpp_TransformSize64x32_IntraPredictorHorizontal 580 #define LIBGAV1_Dsp10bpp_TransformSize64x32_IntraPredictorHorizontal \ 581 LIBGAV1_CPU_SSE4_1 582 #endif 583 584 #ifndef LIBGAV1_Dsp10bpp_TransformSize64x64_IntraPredictorHorizontal 585 #define LIBGAV1_Dsp10bpp_TransformSize64x64_IntraPredictorHorizontal \ 586 LIBGAV1_CPU_SSE4_1 587 #endif 588 589 #endif // LIBGAV1_TARGETING_SSE4_1 590 591 #endif // LIBGAV1_SRC_DSP_X86_INTRAPRED_SSE4_H_ 592