When compiling using AVX2, I had this message:
***************************************************
Building BrowseForFolder.obj.
Building Gray.obj.
Building Log.obj.
Building MemorySetTo0.obj.
Building Profile.obj.
Building Search.obj.
C:\Users\51966\Documents\# IA 2024\Search\Speed Test\Search.c(451): warning #2804: Consider changing type to 'size_t' for loop variable '_i'.
C:\Users\51966\Documents\# IA 2024\Search\Speed Test\Search.c(451): warning #2804: Consider changing type to 'size_t' for loop variable '_i'.
fatal error: Internal error: get_rule_number().
*** Error code: 1 ***
Done.
********************************************************
For CPU-Z I have the following CPU
CPU-Z TXT Report
-------------------------------------------------------------------------
CPU-Z version 2.11.2.x64
Processors
-------------------------------------------------------------------------
CPU Groups 1
CPU Group 0 16 threads, mask=0xFFFF
Number of sockets 1
Number of threads 16
Timers
-------------------------------------------------------------------------
ACPI timer 3.580 MHz
Perf timer 10.000 MHz
Sys timer 1.000 KHz
Processors Information
-------------------------------------------------------------------------
Socket 1 ID = 0
Number of cores 8 (max
Number of threads 16 (max 16)
Number of CCDs 1
Manufacturer AuthenticAMD
Name AMD Ryzen 7 Mobile 5700U
Codename Lucienne
Specification AMD Ryzen 7 5700U with Radeon Graphics
Package Socket FP6
CPUID F.8.1
Extended CPUID 17.68
Core Stepping
Technology 7 nm
Core Speed 1926.9 MHz
Multiplier x Bus Speed 19.33 x 99.7 MHz
Base frequency (cores) 99.7 MHz
Instructions sets MMX (+), SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, SSE4A, x86-64, AES, AVX, AVX2, FMA3, SHA
Microcode Revision 0x8608107
L1 Data cache 8 x 32 KB (8-way, 64-byte line)
L1 Instruction cache 8 x 32 KB (8-way, 64-byte line)
L2 cache 8 x 512 KB (8-way, 64-byte line)
L3 cache 2 x 4 MB (16-way, 64-byte line)
Max CPUID level 0000000Dh
Max CPUID ext. level 80000020h
FID/VID Control yes
# of P-States 3
P-State FID 0xA5A - VID 0x35 (18.00x - 1.219 V)
P-State FID 0xC66 - VID 0x60 (17.00x - 0.950 V)
P-State FID 0xE62 - VID 0x66 (14.00x - 0.912 V)
Software
-------------------------------------------------------------------------
Windows Version Microsoft Windows 11 Home (x64), Version 23H2, Build 22631.4391
Windows Installation Date 10/26/2024
DirectX Version 12.0
Register Spaces
-------------------------------------------------------------------------
Register space PCI
Register space PCI #2
Register space PCI Express, base address = 0x0F0000000
Register space LPC, base address = 0x0CD0
Register space SMBus, base address = 0x0B00
What can I do? Only SSE2?
Thanks
Philippe
C compiler problem, so rearrange code and test it without / with optimization.
Also try another compiler, like Clang, as it can give lot of hints for code problems.
I only have Pelle's Compiler but I will try your advice
Thanks
Philippe
Example with Clang and Pelles C modified headers:
C:\code\PellesC\_Forum\_test\StructInfo_GDI+.c
(27,2): warning: format specifies type 'int' but the argument has type 'unsigned long long' [-Wformat]
PRINTSIZE(GDIPLUSSTARTUPINPUT);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
C:\code\PellesC\_Forum\_test\StructInfo_GDI+.c(14,58): note: expanded from macro 'PRINTSIZE'
#define PRINTSIZE(x) printf("\n%-16s %d %Xh bytes\n",#x,sizeof(x),sizeof(x));
~~ ^~~~~~~~~
C:\code\PellesC\_Forum\_test\StructInfo_GDI+.c(27,2): warning: format specifies type 'unsigned int' but the argument has type 'unsigned long long' [-Wformat]
PRINTSIZE(GDIPLUSSTARTUPINPUT);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
C:\code\PellesC\_Forum\_test\StructInfo_GDI+.c(14,68): note: expanded from macro 'PRINTSIZE'
#define PRINTSIZE(x) printf("\n%-16s %d %Xh bytes\n",#x,sizeof(x),sizeof(x));
~~ ^~~~~~~~~
C:\code\PellesC\_Forum\_test\StructInfo_GDI+.c(28,2): warning: cast to smaller integer type 'LONG' (aka 'long') from 'UINT32 *' (aka 'unsigned int *') [-Wpointer-to-int-cast]
PRINTOFSSIZE(GDIPLUSSTARTUPINPUT,GdiplusVersion);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
C:\code\PellesC\_Forum\_test\StructInfo_GDI+.c(15,67): note: expanded from macro 'PRINTOFSSIZE'
#define PRINTOFSSIZE(type,field) printf("%-16s +%Xh %Xh\n",#field,(LONG)&(((type *)0)->field),sizeof(((type *)0)->field));
^~~~~~~~~~~~~~~~~~~~~~~~~~~
C:\code\PellesC\_Forum\_test\StructInfo_GDI+.c(28,2): warning: format specifies type 'unsigned int' but the argument has type 'LONG' (aka 'long') [-Wformat]
PRINTOFSSIZE(GDIPLUSSTARTUPINPUT,GdiplusVersion);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
C:\code\PellesC\_Forum\_test\StructInfo_GDI+.c(15,67): note: expanded from macro 'PRINTOFSSIZE'
#define PRINTOFSSIZE(type,field) printf("%-16s +%Xh %Xh\n",#field,(LONG)&(((type *)0)->field),sizeof(((type *)0)->field));
~~ ^~~~~~~~~~~~~~~~~~~~~~~~~~~
C:\code\PellesC\_Forum\_test\StructInfo_GDI+.c(28,2): warning: format specifies type 'unsigned int' but the argument has type 'unsigned long long' [-Wformat]
PRINTOFSSIZE(GDIPLUSSTARTUPINPUT,GdiplusVersion);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
C:\code\PellesC\_Forum\_test\StructInfo_GDI+.c(15,95): note: expanded from macro 'PRINTOFSSIZE'
#define PRINTOFSSIZE(type,field) printf("%-16s +%Xh %Xh\n",#field,(LONG)&(((type *)0)->field),sizeof(((type *)0)->field));
~~ ^~~~~~~~~~~~~~~~~~~~~~~~~~
C:\code\PellesC\_Forum\_test\StructInfo_GDI+.c(29,2): warning: cast to smaller integer type 'LONG' (aka 'long') from 'void **' [-Wpointer-to-int-cast]
PRINTOFSSIZE(GDIPLUSSTARTUPINPUT,DebugEventCallback);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
C:\code\PellesC\_Forum\_test\StructInfo_GDI+.c(15,67): note: expanded from macro 'PRINTOFSSIZE'
#define PRINTOFSSIZE(type,field) printf("%-16s +%Xh %Xh\n",#field,(LONG)&(((type *)0)->field),sizeof(((type *)0)->field));
^~~~~~~~~~~~~~~~~~~~~~~~~~~
C:\code\PellesC\_Forum\_test\StructInfo_GDI+.c(29,2): warning: format specifies type 'unsigned int' but the argument has type 'LONG' (aka 'long') [-Wformat]
PRINTOFSSIZE(GDIPLUSSTARTUPINPUT,DebugEventCallback);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
C:\code\PellesC\_Forum\_test\StructInfo_GDI+.c(15,67): note: expanded from macro 'PRINTOFSSIZE'
#define PRINTOFSSIZE(type,field) printf("%-16s +%Xh %Xh\n",#field,(LONG)&(((type *)0)->field),sizeof(((type *)0)->field));
~~ ^~~~~~~~~~~~~~~~~~~~~~~~~~~
C:\code\PellesC\_Forum\_test\StructInfo_GDI+.c(29,2): warning: format specifies type 'unsigned int' but the argument has type 'unsigned long long' [-Wformat]
PRINTOFSSIZE(GDIPLUSSTARTUPINPUT,DebugEventCallback);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
C:\code\PellesC\_Forum\_test\StructInfo_GDI+.c(15,95): note: expanded from macro 'PRINTOFSSIZE'
#define PRINTOFSSIZE(type,field) printf("%-16s +%Xh %Xh\n",#field,(LONG)&(((type *)0)->field),sizeof(((type *)0)->field));
~~ ^~~~~~~~~~~~~~~~~~~~~~~~~~
C:\code\PellesC\_Forum\_test\StructInfo_GDI+.c(30,2): warning: cast to smaller integer type 'LONG' (aka 'long') from 'BOOL *' (aka 'int *') [-Wpointer-to-int-cast]
PRINTOFSSIZE(GDIPLUSSTARTUPINPUT,SuppressBackgroundThread);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
C:\code\PellesC\_Forum\_test\StructInfo_GDI+.c(15,67): note: expanded from macro 'PRINTOFSSIZE'
#define PRINTOFSSIZE(type,field) printf("%-16s +%Xh %Xh\n",#field,(LONG)&(((type *)0)->field),sizeof(((type *)0)->field));
^~~~~~~~~~~~~~~~~~~~~~~~~~~
C:\code\PellesC\_Forum\_test\StructInfo_GDI+.c(30,2): warning: format specifies type 'unsigned int' but the argument has type 'LONG' (aka 'long') [-Wformat]
PRINTOFSSIZE(GDIPLUSSTARTUPINPUT,SuppressBackgroundThread);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
C:\code\PellesC\_Forum\_test\StructInfo_GDI+.c(15,67): note: expanded from macro 'PRINTOFSSIZE'
#define PRINTOFSSIZE(type,field) printf("%-16s +%Xh %Xh\n",#field,(LONG)&(((type *)0)->field),sizeof(((type *)0)->field));
~~ ^~~~~~~~~~~~~~~~~~~~~~~~~~~
C:\code\PellesC\_Forum\_test\StructInfo_GDI+.c(30,2): warning: format specifies type 'unsigned int' but the argument has type 'unsigned long long' [-Wformat]
PRINTOFSSIZE(GDIPLUSSTARTUPINPUT,SuppressBackgroundThread);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
C:\code\PellesC\_Forum\_test\StructInfo_GDI+.c(15,95): note: expanded from macro 'PRINTOFSSIZE'
#define PRINTOFSSIZE(type,field) printf("%-16s +%Xh %Xh\n",#field,(LONG)&(((type *)0)->field),sizeof(((type *)0)->field));
~~ ^~~~~~~~~~~~~~~~~~~~~~~~~~
C:\code\PellesC\_Forum\_test\StructInfo_GDI+.c(31,2): warning: cast to smaller integer type 'LONG' (aka 'long') from 'BOOL *' (aka 'int *') [-Wpointer-to-int-cast]
PRINTOFSSIZE(GDIPLUSSTARTUPINPUT,SuppressExternalCodecs);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
C:\code\PellesC\_Forum\_test\StructInfo_GDI+.c(15,67): note: expanded from macro 'PRINTOFSSIZE'
#define PRINTOFSSIZE(type,field) printf("%-16s +%Xh %Xh\n",#field,(LONG)&(((type *)0)->field),sizeof(((type *)0)->field));
^~~~~~~~~~~~~~~~~~~~~~~~~~~
C:\code\PellesC\_Forum\_test\StructInfo_GDI+.c(31,2): warning: format specifies type 'unsigned int' but the argument has type 'LONG' (aka 'long') [-Wformat]
PRINTOFSSIZE(GDIPLUSSTARTUPINPUT,SuppressExternalCodecs);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
C:\code\PellesC\_Forum\_test\StructInfo_GDI+.c(15,67): note: expanded from macro 'PRINTOFSSIZE'
#define PRINTOFSSIZE(type,field) printf("%-16s +%Xh %Xh\n",#field,(LONG)&(((type *)0)->field),sizeof(((type *)0)->field));
~~ ^~~~~~~~~~~~~~~~~~~~~~~~~~~
C:\code\PellesC\_Forum\_test\StructInfo_GDI+.c(31,2): warning: format specifies type 'unsigned int' but the argument has type 'unsigned long long' [-Wformat]
PRINTOFSSIZE(GDIPLUSSTARTUPINPUT,SuppressExternalCodecs);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
C:\code\PellesC\_Forum\_test\StructInfo_GDI+.c(15,95): note: expanded from macro 'PRINTOFSSIZE'
#define PRINTOFSSIZE(type,field) printf("%-16s +%Xh %Xh\n",#field,(LONG)&(((type *)0)->field),sizeof(((type *)0)->field));
~~ ^~~~~~~~~~~~~~~~~~~~~~~~~~
24
warnings and 2 errors generated.
Done.
Merci I don't load the compiler
Quote from: HellOfMice on November 05, 2024, 07:27:23 PM
Merci I don't load the compiler
Only some of us needs several C compilers to verify code issues.
Hi Timo,
Just some words
I am reading AMD docs because I would like to compute average, deviation and std deviation.
But I can't find any instruction that insert 0 between rgb values and like this I could compute a sum
my program is slow when computing them in C
I tried the profiler and passed from 2.2% to 0.5%
I would like to try with SSE2.. SSE4.1 instructions
have you any idea?
Thank you for your help
Philippe