I did make distclean after each configure change.


    I found some other reports about SSE problems on Phenom II 9xx.

    This is the exact part number: HDZ965FBK4DGM

http://www.cpu-world.com/CPUs/K10/AMD-Phenom%20II%20X4%20965%20Black%20Edition%20-%20HDZ965FBK4DGM%20(HDZ965FBGMBOX).html

    It is a CPU that claims SSE3 support but Linux does not recognize it as such.

    Both the machines that give incorrect results have exactly this part number.


    Let me me modify the SSE3 detection code.


On 29/12/2019 22:57, Even Rouault wrote:
On dimanche 29 décembre 2019 22:36:24 CET Momtchil Momtchev wrote:
      Disabling HAVE_SSSE3_AT_COMPILE_TIME had no effect,
Make sure you run "make clean" after running ./configure

but after
short-circuiting the #ifdef I got a correct result.
Hum so it seems that the SSSE3 detection doesn't work properly.

Can you :

1. undo your code changes

2. modify port/cpl_cpu_features.cpp at line 98 to replace the code of the
CPLDetectSSE3() function by

static inline bool CPLDetectSSE3()
{
     int cpuinfo[4] = { 0, 0, 0, 0 };
     CPL_CPUID(0, cpuinfo);
     if( cpuinfo[REG_EAX] <= 0 )
         return false;
     CPL_CPUID(1, cpuinfo);
     return (cpuinfo[REG_ECX] & (1 << CPUID_SSSE3_ECX_BIT)) != 0;
}

(note: this function should really be called CPLDetectSSSE3 ... missing S...
but that doesn't matter)

3. modify port/cpl_cpu_features.h to add just after line 47 "#if __SSSE3__" a
new line with "dummy" as content. Normally this shouldn't be compiled... but
this is just to make sure the compiler doesn't define SSSE3 as available
unconditionnally at runtime.

4. run configure again *without* disabling ssse3
5. make clean
6. make (possibly with -j something)


--
Momtchil Momtchev <[email protected]>

_______________________________________________
gdal-dev mailing list
[email protected]
https://lists.osgeo.org/mailman/listinfo/gdal-dev

Reply via email to