Home | History | Annotate | Download | only in libFLAC

Lines Matching full:info

47 static void disable_sse(FLAC__CPUInfo *info)
49 info->ia32.sse = false;
50 info->ia32.sse2 = false;
51 info->ia32.sse3 = false;
52 info->ia32.ssse3 = false;
53 info->ia32.sse41 = false;
54 info->ia32.sse42 = false;
57 static void disable_avx(FLAC__CPUInfo *info)
59 info->ia32.avx = false;
60 info->ia32.avx2 = false;
61 info->ia32.fma = false;
66 static void disable_avx(FLAC__CPUInfo *info)
68 info->x86.avx = false;
69 info->x86.avx2 = false;
70 info->x86.fma = false;
143 void FLAC__cpu_info(FLAC__CPUInfo *info)
152 memset(info, 0, sizeof(*info));
153 info->type = FLAC__CPUINFO_TYPE_IA32;
155 info->use_asm = true; /* we assume a minimum of 80386 with FLAC__CPU_IA32 */
168 info->ia32.intel = (flags_ebx == 0x756E6547 && flags_edx == 0x49656E69 && flags_ecx == 0x6C65746E)? true : false; /* GenuineIntel */
174 info->ia32.cmov = (flags_edx & FLAC__CPUINFO_IA32_CPUID_CMOV )? true : false;
175 info->ia32.mmx = (flags_edx & FLAC__CPUINFO_IA32_CPUID_MMX )? true : false;
177 info->ia32.sse = (flags_edx & FLAC__CPUINFO_IA32_CPUID_SSE )? true : false;
178 info->ia32.sse2 = (flags_edx & FLAC__CPUINFO_IA32_CPUID_SSE2 )? true : false;
179 info->ia32.sse3 = (flags_ecx & FLAC__CPUINFO_IA32_CPUID_SSE3 )? true : false;
180 info->ia32.ssse3 = (flags_ecx & FLAC__CPUINFO_IA32_CPUID_SSSE3)? true : false;
181 info->ia32.sse41 = (flags_ecx & FLAC__CPUINFO_IA32_CPUID_SSE41)? true : false;
182 info->ia32.sse42 = (flags_ecx & FLAC__CPUINFO_IA32_CPUID_SSE42)? true : false;
185 info->ia32.avx = (flags_ecx & FLAC__CPUINFO_IA32_CPUID_AVX )? true : false;
186 info->ia32.fma = (flags_ecx & FLAC__CPUINFO_IA32_CPUID_FMA )? true : false;
188 info->ia32.avx2 = (flags_ebx & FLAC__CPUINFO_IA32_CPUID_AVX2 )? true : false;
193 fprintf(stderr, "CPU info (IA-32):\n");
194 fprintf(stderr, " CMOV ....... %c\n", info->ia32.cmov ? 'Y' : 'n');
195 fprintf(stderr, " MMX ........ %c\n", info->ia32.mmx ? 'Y' : 'n');
196 fprintf(stderr, " SSE ........ %c\n", info->ia32.sse ? 'Y' : 'n');
197 fprintf(stderr, " SSE2 ....... %c\n", info->ia32.sse2 ? 'Y' : 'n');
198 fprintf(stderr, " SSE3 ....... %c\n", info->ia32.sse3 ? 'Y' : 'n');
199 fprintf(stderr, " SSSE3 ...... %c\n", info->ia32.ssse3 ? 'Y' : 'n');
200 fprintf(stderr, " SSE41 ...... %c\n", info->ia32.sse41 ? 'Y' : 'n');
201 fprintf(stderr, " SSE42 ...... %c\n", info->ia32.sse42 ? 'Y' : 'n');
203 fprintf(stderr, " AVX ........ %c\n", info->ia32.avx ? 'Y' : 'n');
204 fprintf(stderr, " FMA ........ %c\n", info->ia32.fma ? 'Y' : 'n');
205 fprintf(stderr, " AVX2 ....... %c\n", info->ia32.avx2 ? 'Y' : 'n');
212 if(info->ia32.sse) {
215 disable_sse(info);
225 disable_sse(info);
231 disable_sse(info);
236 disable_sse(info);
237 info->ia32.sse = true;
241 disable_sse(info);
277 disable_sse(info);
286 disable_sse(info);
312 disable_sse(info);
315 disable_sse(info);
318 fprintf(stderr, " SSE OS sup . %c\n", info->ia32.sse ? 'Y' : 'n');
321 else /* info->ia32.sse == false */
322 disable_sse(info);
327 if(info->ia32.avx && ia32_osxsave) {
330 disable_avx(info);
332 fprintf(stderr, " AVX OS sup . %c\n", info->ia32.avx ? 'Y' : 'n');
336 disable_avx(info);
338 info->use_asm = false;
347 memset(info, 0, sizeof(*info));
348 info->type = FLAC__CPUINFO_TYPE_X86_64;
350 info->use_asm = true;
355 info->x86.intel = (flags_ebx == 0x756E6547 && flags_edx == 0x49656E69 && flags_ecx == 0x6C65746E)? true : false; /* GenuineIntel */
357 info->x86.sse3 = (flags_ecx & FLAC__CPUINFO_IA32_CPUID_SSE3 )? true : false;
358 info->x86.ssse3 = (flags_ecx & FLAC__CPUINFO_IA32_CPUID_SSSE3)? true : false;
359 info->x86.sse41 = (flags_ecx & FLAC__CPUINFO_IA32_CPUID_SSE41)? true : false;
360 info->x86.sse42 = (flags_ecx & FLAC__CPUINFO_IA32_CPUID_SSE42)? true : false;
363 info->x86.avx = (flags_ecx & FLAC__CPUINFO_IA32_CPUID_AVX )? true : false;
364 info->x86.fma = (flags_ecx & FLAC__CPUINFO_IA32_CPUID_FMA )? true : false;
366 info->x86.avx2 = (flags_ebx & FLAC__CPUINFO_IA32_CPUID_AVX2 )? true : false;
370 fprintf(stderr, "CPU info (x86-64):\n");
371 fprintf(stderr, " SSE3 ....... %c\n", info->x86.sse3 ? 'Y' : 'n');
372 fprintf(stderr, " SSSE3 ...... %c\n", info->x86.ssse3 ? 'Y' : 'n');
373 fprintf(stderr, " SSE41 ...... %c\n", info->x86.sse41 ? 'Y' : 'n');
374 fprintf(stderr, " SSE42 ...... %c\n", info->x86.sse42 ? 'Y' : 'n');
376 fprintf(stderr, " AVX ........ %c\n", info->x86.avx ? 'Y' : 'n');
377 fprintf(stderr, " FMA ........ %c\n", info->x86.fma ? 'Y' : 'n');
378 fprintf(stderr, " AVX2 ....... %c\n", info->x86.avx2 ? 'Y' : 'n');
385 if(info->x86.avx && x86_osxsave) {
388 disable_avx(info);
390 fprintf(stderr, " AVX OS sup . %c\n", info->x86.avx ? 'Y' : 'n');
394 disable_avx(info);
396 info->use_asm = false;
403 info->type = FLAC__CPUINFO_TYPE_UNKNOWN;
404 info->use_asm = false;