UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
radaudio_decoder_simd_tables.h
Go to the documentation of this file.
1// Copyright Epic Games Tools, LLC. All Rights Reserved.
2#ifndef RADAUDIO_DECODER_SIMD_TABLES_H
3#define RADAUDIO_DECODER_SIMD_TABLES_H
4
5#include "rrCore.h"
6
7/*
8
9#!/usr/bin/python3
10print('static const U8 s_popcnt_table[256] = {')
11for x in range(256):
12 if (x & 15) == 0:
13 print(' ', end='')
14 npop = sum([(x >> k) & 1 for k in range(8)])
15 print('{:2},'.format(npop), end='')
16 if (x & 15) == 15:
17 print('')
18print('};')
19print('')
20print('static const S8 s_shuffle_table[256][8] = {')
21for x in range(256):
22 if (x & 3) == 0:
23 print(' ', end='')
24 print('{ ', end='')
25 k = 0
26 for j in range(8):
27 if (x & (1 << j)) == 0:
28 print('-1,', end='')
29 else:
30 print(f'{k:2},', end='')
31 k += 1
32 print(' },', end='')
33 if (x & 3) == 3:
34 print('')
35print('};')
36
37*/
38
39static const U8 s_popcnt_table[256] = {
40 0, 1, 1, 2, 1, 2, 2, 3, 1, 2, 2, 3, 2, 3, 3, 4,
41 1, 2, 2, 3, 2, 3, 3, 4, 2, 3, 3, 4, 3, 4, 4, 5,
42 1, 2, 2, 3, 2, 3, 3, 4, 2, 3, 3, 4, 3, 4, 4, 5,
43 2, 3, 3, 4, 3, 4, 4, 5, 3, 4, 4, 5, 4, 5, 5, 6,
44 1, 2, 2, 3, 2, 3, 3, 4, 2, 3, 3, 4, 3, 4, 4, 5,
45 2, 3, 3, 4, 3, 4, 4, 5, 3, 4, 4, 5, 4, 5, 5, 6,
46 2, 3, 3, 4, 3, 4, 4, 5, 3, 4, 4, 5, 4, 5, 5, 6,
47 3, 4, 4, 5, 4, 5, 5, 6, 4, 5, 5, 6, 5, 6, 6, 7,
48 1, 2, 2, 3, 2, 3, 3, 4, 2, 3, 3, 4, 3, 4, 4, 5,
49 2, 3, 3, 4, 3, 4, 4, 5, 3, 4, 4, 5, 4, 5, 5, 6,
50 2, 3, 3, 4, 3, 4, 4, 5, 3, 4, 4, 5, 4, 5, 5, 6,
51 3, 4, 4, 5, 4, 5, 5, 6, 4, 5, 5, 6, 5, 6, 6, 7,
52 2, 3, 3, 4, 3, 4, 4, 5, 3, 4, 4, 5, 4, 5, 5, 6,
53 3, 4, 4, 5, 4, 5, 5, 6, 4, 5, 5, 6, 5, 6, 6, 7,
54 3, 4, 4, 5, 4, 5, 5, 6, 4, 5, 5, 6, 5, 6, 6, 7,
55 4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
56};
57
58static const S8 s_shuffle_table[256][8] = {
59 { -1,-1,-1,-1,-1,-1,-1,-1, },{ 0,-1,-1,-1,-1,-1,-1,-1, },{ -1, 0,-1,-1,-1,-1,-1,-1, },{ 0, 1,-1,-1,-1,-1,-1,-1, },
60 { -1,-1, 0,-1,-1,-1,-1,-1, },{ 0,-1, 1,-1,-1,-1,-1,-1, },{ -1, 0, 1,-1,-1,-1,-1,-1, },{ 0, 1, 2,-1,-1,-1,-1,-1, },
61 { -1,-1,-1, 0,-1,-1,-1,-1, },{ 0,-1,-1, 1,-1,-1,-1,-1, },{ -1, 0,-1, 1,-1,-1,-1,-1, },{ 0, 1,-1, 2,-1,-1,-1,-1, },
62 { -1,-1, 0, 1,-1,-1,-1,-1, },{ 0,-1, 1, 2,-1,-1,-1,-1, },{ -1, 0, 1, 2,-1,-1,-1,-1, },{ 0, 1, 2, 3,-1,-1,-1,-1, },
63 { -1,-1,-1,-1, 0,-1,-1,-1, },{ 0,-1,-1,-1, 1,-1,-1,-1, },{ -1, 0,-1,-1, 1,-1,-1,-1, },{ 0, 1,-1,-1, 2,-1,-1,-1, },
64 { -1,-1, 0,-1, 1,-1,-1,-1, },{ 0,-1, 1,-1, 2,-1,-1,-1, },{ -1, 0, 1,-1, 2,-1,-1,-1, },{ 0, 1, 2,-1, 3,-1,-1,-1, },
65 { -1,-1,-1, 0, 1,-1,-1,-1, },{ 0,-1,-1, 1, 2,-1,-1,-1, },{ -1, 0,-1, 1, 2,-1,-1,-1, },{ 0, 1,-1, 2, 3,-1,-1,-1, },
66 { -1,-1, 0, 1, 2,-1,-1,-1, },{ 0,-1, 1, 2, 3,-1,-1,-1, },{ -1, 0, 1, 2, 3,-1,-1,-1, },{ 0, 1, 2, 3, 4,-1,-1,-1, },
67 { -1,-1,-1,-1,-1, 0,-1,-1, },{ 0,-1,-1,-1,-1, 1,-1,-1, },{ -1, 0,-1,-1,-1, 1,-1,-1, },{ 0, 1,-1,-1,-1, 2,-1,-1, },
68 { -1,-1, 0,-1,-1, 1,-1,-1, },{ 0,-1, 1,-1,-1, 2,-1,-1, },{ -1, 0, 1,-1,-1, 2,-1,-1, },{ 0, 1, 2,-1,-1, 3,-1,-1, },
69 { -1,-1,-1, 0,-1, 1,-1,-1, },{ 0,-1,-1, 1,-1, 2,-1,-1, },{ -1, 0,-1, 1,-1, 2,-1,-1, },{ 0, 1,-1, 2,-1, 3,-1,-1, },
70 { -1,-1, 0, 1,-1, 2,-1,-1, },{ 0,-1, 1, 2,-1, 3,-1,-1, },{ -1, 0, 1, 2,-1, 3,-1,-1, },{ 0, 1, 2, 3,-1, 4,-1,-1, },
71 { -1,-1,-1,-1, 0, 1,-1,-1, },{ 0,-1,-1,-1, 1, 2,-1,-1, },{ -1, 0,-1,-1, 1, 2,-1,-1, },{ 0, 1,-1,-1, 2, 3,-1,-1, },
72 { -1,-1, 0,-1, 1, 2,-1,-1, },{ 0,-1, 1,-1, 2, 3,-1,-1, },{ -1, 0, 1,-1, 2, 3,-1,-1, },{ 0, 1, 2,-1, 3, 4,-1,-1, },
73 { -1,-1,-1, 0, 1, 2,-1,-1, },{ 0,-1,-1, 1, 2, 3,-1,-1, },{ -1, 0,-1, 1, 2, 3,-1,-1, },{ 0, 1,-1, 2, 3, 4,-1,-1, },
74 { -1,-1, 0, 1, 2, 3,-1,-1, },{ 0,-1, 1, 2, 3, 4,-1,-1, },{ -1, 0, 1, 2, 3, 4,-1,-1, },{ 0, 1, 2, 3, 4, 5,-1,-1, },
75 { -1,-1,-1,-1,-1,-1, 0,-1, },{ 0,-1,-1,-1,-1,-1, 1,-1, },{ -1, 0,-1,-1,-1,-1, 1,-1, },{ 0, 1,-1,-1,-1,-1, 2,-1, },
76 { -1,-1, 0,-1,-1,-1, 1,-1, },{ 0,-1, 1,-1,-1,-1, 2,-1, },{ -1, 0, 1,-1,-1,-1, 2,-1, },{ 0, 1, 2,-1,-1,-1, 3,-1, },
77 { -1,-1,-1, 0,-1,-1, 1,-1, },{ 0,-1,-1, 1,-1,-1, 2,-1, },{ -1, 0,-1, 1,-1,-1, 2,-1, },{ 0, 1,-1, 2,-1,-1, 3,-1, },
78 { -1,-1, 0, 1,-1,-1, 2,-1, },{ 0,-1, 1, 2,-1,-1, 3,-1, },{ -1, 0, 1, 2,-1,-1, 3,-1, },{ 0, 1, 2, 3,-1,-1, 4,-1, },
79 { -1,-1,-1,-1, 0,-1, 1,-1, },{ 0,-1,-1,-1, 1,-1, 2,-1, },{ -1, 0,-1,-1, 1,-1, 2,-1, },{ 0, 1,-1,-1, 2,-1, 3,-1, },
80 { -1,-1, 0,-1, 1,-1, 2,-1, },{ 0,-1, 1,-1, 2,-1, 3,-1, },{ -1, 0, 1,-1, 2,-1, 3,-1, },{ 0, 1, 2,-1, 3,-1, 4,-1, },
81 { -1,-1,-1, 0, 1,-1, 2,-1, },{ 0,-1,-1, 1, 2,-1, 3,-1, },{ -1, 0,-1, 1, 2,-1, 3,-1, },{ 0, 1,-1, 2, 3,-1, 4,-1, },
82 { -1,-1, 0, 1, 2,-1, 3,-1, },{ 0,-1, 1, 2, 3,-1, 4,-1, },{ -1, 0, 1, 2, 3,-1, 4,-1, },{ 0, 1, 2, 3, 4,-1, 5,-1, },
83 { -1,-1,-1,-1,-1, 0, 1,-1, },{ 0,-1,-1,-1,-1, 1, 2,-1, },{ -1, 0,-1,-1,-1, 1, 2,-1, },{ 0, 1,-1,-1,-1, 2, 3,-1, },
84 { -1,-1, 0,-1,-1, 1, 2,-1, },{ 0,-1, 1,-1,-1, 2, 3,-1, },{ -1, 0, 1,-1,-1, 2, 3,-1, },{ 0, 1, 2,-1,-1, 3, 4,-1, },
85 { -1,-1,-1, 0,-1, 1, 2,-1, },{ 0,-1,-1, 1,-1, 2, 3,-1, },{ -1, 0,-1, 1,-1, 2, 3,-1, },{ 0, 1,-1, 2,-1, 3, 4,-1, },
86 { -1,-1, 0, 1,-1, 2, 3,-1, },{ 0,-1, 1, 2,-1, 3, 4,-1, },{ -1, 0, 1, 2,-1, 3, 4,-1, },{ 0, 1, 2, 3,-1, 4, 5,-1, },
87 { -1,-1,-1,-1, 0, 1, 2,-1, },{ 0,-1,-1,-1, 1, 2, 3,-1, },{ -1, 0,-1,-1, 1, 2, 3,-1, },{ 0, 1,-1,-1, 2, 3, 4,-1, },
88 { -1,-1, 0,-1, 1, 2, 3,-1, },{ 0,-1, 1,-1, 2, 3, 4,-1, },{ -1, 0, 1,-1, 2, 3, 4,-1, },{ 0, 1, 2,-1, 3, 4, 5,-1, },
89 { -1,-1,-1, 0, 1, 2, 3,-1, },{ 0,-1,-1, 1, 2, 3, 4,-1, },{ -1, 0,-1, 1, 2, 3, 4,-1, },{ 0, 1,-1, 2, 3, 4, 5,-1, },
90 { -1,-1, 0, 1, 2, 3, 4,-1, },{ 0,-1, 1, 2, 3, 4, 5,-1, },{ -1, 0, 1, 2, 3, 4, 5,-1, },{ 0, 1, 2, 3, 4, 5, 6,-1, },
91 { -1,-1,-1,-1,-1,-1,-1, 0, },{ 0,-1,-1,-1,-1,-1,-1, 1, },{ -1, 0,-1,-1,-1,-1,-1, 1, },{ 0, 1,-1,-1,-1,-1,-1, 2, },
92 { -1,-1, 0,-1,-1,-1,-1, 1, },{ 0,-1, 1,-1,-1,-1,-1, 2, },{ -1, 0, 1,-1,-1,-1,-1, 2, },{ 0, 1, 2,-1,-1,-1,-1, 3, },
93 { -1,-1,-1, 0,-1,-1,-1, 1, },{ 0,-1,-1, 1,-1,-1,-1, 2, },{ -1, 0,-1, 1,-1,-1,-1, 2, },{ 0, 1,-1, 2,-1,-1,-1, 3, },
94 { -1,-1, 0, 1,-1,-1,-1, 2, },{ 0,-1, 1, 2,-1,-1,-1, 3, },{ -1, 0, 1, 2,-1,-1,-1, 3, },{ 0, 1, 2, 3,-1,-1,-1, 4, },
95 { -1,-1,-1,-1, 0,-1,-1, 1, },{ 0,-1,-1,-1, 1,-1,-1, 2, },{ -1, 0,-1,-1, 1,-1,-1, 2, },{ 0, 1,-1,-1, 2,-1,-1, 3, },
96 { -1,-1, 0,-1, 1,-1,-1, 2, },{ 0,-1, 1,-1, 2,-1,-1, 3, },{ -1, 0, 1,-1, 2,-1,-1, 3, },{ 0, 1, 2,-1, 3,-1,-1, 4, },
97 { -1,-1,-1, 0, 1,-1,-1, 2, },{ 0,-1,-1, 1, 2,-1,-1, 3, },{ -1, 0,-1, 1, 2,-1,-1, 3, },{ 0, 1,-1, 2, 3,-1,-1, 4, },
98 { -1,-1, 0, 1, 2,-1,-1, 3, },{ 0,-1, 1, 2, 3,-1,-1, 4, },{ -1, 0, 1, 2, 3,-1,-1, 4, },{ 0, 1, 2, 3, 4,-1,-1, 5, },
99 { -1,-1,-1,-1,-1, 0,-1, 1, },{ 0,-1,-1,-1,-1, 1,-1, 2, },{ -1, 0,-1,-1,-1, 1,-1, 2, },{ 0, 1,-1,-1,-1, 2,-1, 3, },
100 { -1,-1, 0,-1,-1, 1,-1, 2, },{ 0,-1, 1,-1,-1, 2,-1, 3, },{ -1, 0, 1,-1,-1, 2,-1, 3, },{ 0, 1, 2,-1,-1, 3,-1, 4, },
101 { -1,-1,-1, 0,-1, 1,-1, 2, },{ 0,-1,-1, 1,-1, 2,-1, 3, },{ -1, 0,-1, 1,-1, 2,-1, 3, },{ 0, 1,-1, 2,-1, 3,-1, 4, },
102 { -1,-1, 0, 1,-1, 2,-1, 3, },{ 0,-1, 1, 2,-1, 3,-1, 4, },{ -1, 0, 1, 2,-1, 3,-1, 4, },{ 0, 1, 2, 3,-1, 4,-1, 5, },
103 { -1,-1,-1,-1, 0, 1,-1, 2, },{ 0,-1,-1,-1, 1, 2,-1, 3, },{ -1, 0,-1,-1, 1, 2,-1, 3, },{ 0, 1,-1,-1, 2, 3,-1, 4, },
104 { -1,-1, 0,-1, 1, 2,-1, 3, },{ 0,-1, 1,-1, 2, 3,-1, 4, },{ -1, 0, 1,-1, 2, 3,-1, 4, },{ 0, 1, 2,-1, 3, 4,-1, 5, },
105 { -1,-1,-1, 0, 1, 2,-1, 3, },{ 0,-1,-1, 1, 2, 3,-1, 4, },{ -1, 0,-1, 1, 2, 3,-1, 4, },{ 0, 1,-1, 2, 3, 4,-1, 5, },
106 { -1,-1, 0, 1, 2, 3,-1, 4, },{ 0,-1, 1, 2, 3, 4,-1, 5, },{ -1, 0, 1, 2, 3, 4,-1, 5, },{ 0, 1, 2, 3, 4, 5,-1, 6, },
107 { -1,-1,-1,-1,-1,-1, 0, 1, },{ 0,-1,-1,-1,-1,-1, 1, 2, },{ -1, 0,-1,-1,-1,-1, 1, 2, },{ 0, 1,-1,-1,-1,-1, 2, 3, },
108 { -1,-1, 0,-1,-1,-1, 1, 2, },{ 0,-1, 1,-1,-1,-1, 2, 3, },{ -1, 0, 1,-1,-1,-1, 2, 3, },{ 0, 1, 2,-1,-1,-1, 3, 4, },
109 { -1,-1,-1, 0,-1,-1, 1, 2, },{ 0,-1,-1, 1,-1,-1, 2, 3, },{ -1, 0,-1, 1,-1,-1, 2, 3, },{ 0, 1,-1, 2,-1,-1, 3, 4, },
110 { -1,-1, 0, 1,-1,-1, 2, 3, },{ 0,-1, 1, 2,-1,-1, 3, 4, },{ -1, 0, 1, 2,-1,-1, 3, 4, },{ 0, 1, 2, 3,-1,-1, 4, 5, },
111 { -1,-1,-1,-1, 0,-1, 1, 2, },{ 0,-1,-1,-1, 1,-1, 2, 3, },{ -1, 0,-1,-1, 1,-1, 2, 3, },{ 0, 1,-1,-1, 2,-1, 3, 4, },
112 { -1,-1, 0,-1, 1,-1, 2, 3, },{ 0,-1, 1,-1, 2,-1, 3, 4, },{ -1, 0, 1,-1, 2,-1, 3, 4, },{ 0, 1, 2,-1, 3,-1, 4, 5, },
113 { -1,-1,-1, 0, 1,-1, 2, 3, },{ 0,-1,-1, 1, 2,-1, 3, 4, },{ -1, 0,-1, 1, 2,-1, 3, 4, },{ 0, 1,-1, 2, 3,-1, 4, 5, },
114 { -1,-1, 0, 1, 2,-1, 3, 4, },{ 0,-1, 1, 2, 3,-1, 4, 5, },{ -1, 0, 1, 2, 3,-1, 4, 5, },{ 0, 1, 2, 3, 4,-1, 5, 6, },
115 { -1,-1,-1,-1,-1, 0, 1, 2, },{ 0,-1,-1,-1,-1, 1, 2, 3, },{ -1, 0,-1,-1,-1, 1, 2, 3, },{ 0, 1,-1,-1,-1, 2, 3, 4, },
116 { -1,-1, 0,-1,-1, 1, 2, 3, },{ 0,-1, 1,-1,-1, 2, 3, 4, },{ -1, 0, 1,-1,-1, 2, 3, 4, },{ 0, 1, 2,-1,-1, 3, 4, 5, },
117 { -1,-1,-1, 0,-1, 1, 2, 3, },{ 0,-1,-1, 1,-1, 2, 3, 4, },{ -1, 0,-1, 1,-1, 2, 3, 4, },{ 0, 1,-1, 2,-1, 3, 4, 5, },
118 { -1,-1, 0, 1,-1, 2, 3, 4, },{ 0,-1, 1, 2,-1, 3, 4, 5, },{ -1, 0, 1, 2,-1, 3, 4, 5, },{ 0, 1, 2, 3,-1, 4, 5, 6, },
119 { -1,-1,-1,-1, 0, 1, 2, 3, },{ 0,-1,-1,-1, 1, 2, 3, 4, },{ -1, 0,-1,-1, 1, 2, 3, 4, },{ 0, 1,-1,-1, 2, 3, 4, 5, },
120 { -1,-1, 0,-1, 1, 2, 3, 4, },{ 0,-1, 1,-1, 2, 3, 4, 5, },{ -1, 0, 1,-1, 2, 3, 4, 5, },{ 0, 1, 2,-1, 3, 4, 5, 6, },
121 { -1,-1,-1, 0, 1, 2, 3, 4, },{ 0,-1,-1, 1, 2, 3, 4, 5, },{ -1, 0,-1, 1, 2, 3, 4, 5, },{ 0, 1,-1, 2, 3, 4, 5, 6, },
122 { -1,-1, 0, 1, 2, 3, 4, 5, },{ 0,-1, 1, 2, 3, 4, 5, 6, },{ -1, 0, 1, 2, 3, 4, 5, 6, },{ 0, 1, 2, 3, 4, 5, 6, 7, },
123};
124
125#endif
RAD_S8 S8
Definition egttypes.h:476
RAD_U8 U8
Definition egttypes.h:481