@@ -486,7 +486,6 @@ static SIMDi SIMDi_NUM(14);
486486static SIMDi SIMDi_NUM (15 );
487487static SIMDi SIMDi_NUM (255 );
488488static SIMDi SIMDi_NUM (60493 );
489- static SIMDi SIMDi_NUM (0x40000000 );
490489static SIMDi SIMDi_NUM (0x7fffffff );
491490
492491static SIMDi SIMDi_NUM (xPrime);
@@ -528,7 +527,7 @@ void FUNC(InitSIMDValues)()
528527 SIMDf_NUM (G3 ) = SIMDf_SET (1 .f / 6 .f );
529528 SIMDf_NUM (G32 ) = SIMDf_SET (2 .f / 6 .f );
530529 SIMDf_NUM (G33 ) = SIMDf_SET (3 .f / 6 .f );
531- SIMDf_NUM (hash2Float) = SIMDf_SET (1 .f / 1073741824 .f );
530+ SIMDf_NUM (hash2Float) = SIMDf_SET (1 .f / 2147483648 .f );
532531 SIMDf_NUM (vectorSize) = SIMDf_SET (VECTOR_SIZE );
533532
534533#if SIMD_LEVEL == FN_AVX2
@@ -550,7 +549,6 @@ void FUNC(InitSIMDValues)()
550549 SIMDi_NUM (15 ) = SIMDi_SET (15 );
551550 SIMDi_NUM (255 ) = SIMDi_SET (255 );
552551 SIMDi_NUM (60493 ) = SIMDi_SET (60493 );
553- SIMDi_NUM (0x40000000 ) = SIMDi_SET (0x40000000 );
554552 SIMDi_NUM (0x7fffffff ) = SIMDi_SET (0x7fffffff );
555553
556554 SIMDi_NUM (xPrime) = SIMDi_SET (1619 );
@@ -599,9 +597,9 @@ static SIMDi VECTORCALL FUNC(Hash)(const SIMDi& seed, const SIMDi& x, const SIMD
599597{
600598 SIMDi hash = seed;
601599
602- hash = SIMDi_ADD (SIMDi_MUL (x, SIMDi_NUM (xPrime)), hash);
603- hash = SIMDi_ADD (SIMDi_MUL (y, SIMDi_NUM (yPrime)), hash);
604- hash = SIMDi_ADD (SIMDi_MUL (z, SIMDi_NUM (zPrime)), hash);
600+ hash = SIMDi_XOR (SIMDi_MUL (x, SIMDi_NUM (xPrime)), hash);
601+ hash = SIMDi_XOR (SIMDi_MUL (y, SIMDi_NUM (yPrime)), hash);
602+ hash = SIMDi_XOR (SIMDi_MUL (z, SIMDi_NUM (zPrime)), hash);
605603
606604 hash = SIMDi_MUL (SIMDi_MUL (SIMDi_MUL (hash, hash), SIMDi_NUM (60493 )), hash);
607605 hash = SIMDi_XOR (SIMDi_SHIFT_R (hash, 13 ), hash);
@@ -613,10 +611,10 @@ static SIMDi VECTORCALL FUNC(HashHB)(const SIMDi& seed, const SIMDi& x, const SI
613611{
614612 SIMDi hash = seed;
615613
616- hash = SIMDi_ADD (SIMDi_MUL (x, SIMDi_NUM (xPrime)), hash);
617- hash = SIMDi_ADD (SIMDi_MUL (y, SIMDi_NUM (yPrime)), hash);
618- hash = SIMDi_ADD (SIMDi_MUL (z, SIMDi_NUM (zPrime)), hash);
619- hash = SIMDi_XOR (SIMDi_SHIFT_R (hash, 13 ), hash);
614+ hash = SIMDi_XOR (SIMDi_MUL (x, SIMDi_NUM (xPrime)), hash);
615+ hash = SIMDi_XOR (SIMDi_MUL (y, SIMDi_NUM (yPrime)), hash);
616+ hash = SIMDi_XOR (SIMDi_MUL (z, SIMDi_NUM (zPrime)), hash);
617+ // hash = SIMDi_XOR(SIMDi_SHIFT_R(hash, 13), hash);
620618
621619 hash = SIMDi_MUL (SIMDi_MUL (SIMDi_MUL (hash, hash), SIMDi_NUM (60493 )), hash);
622620
@@ -628,14 +626,14 @@ static SIMDf VECTORCALL FUNC(ValCoord)(const SIMDi& seed, const SIMDi& x, const
628626 // High bit hash
629627 SIMDi hash = seed;
630628
631- hash = SIMDi_ADD (SIMDi_MUL (x, SIMDi_NUM (xPrime)), hash);
632- hash = SIMDi_ADD (SIMDi_MUL (y, SIMDi_NUM (yPrime)), hash);
633- hash = SIMDi_ADD (SIMDi_MUL (z, SIMDi_NUM (zPrime)), hash);
634- hash = SIMDi_XOR (SIMDi_SHIFT_R (hash, 13 ), hash);
629+ hash = SIMDi_XOR (SIMDi_MUL (x, SIMDi_NUM (xPrime)), hash);
630+ hash = SIMDi_XOR (SIMDi_MUL (y, SIMDi_NUM (yPrime)), hash);
631+ hash = SIMDi_XOR (SIMDi_MUL (z, SIMDi_NUM (zPrime)), hash);
632+ // hash = SIMDi_XOR(SIMDi_SHIFT_R(hash, 13), hash);
635633
636- hash = SIMDi_AND ( SIMDi_MUL (SIMDi_MUL (SIMDi_MUL (hash, hash), SIMDi_NUM (60493 )), hash), SIMDi_NUM ( 0x7fffffff ) );
634+ hash = SIMDi_MUL (SIMDi_MUL (SIMDi_MUL (hash, hash), SIMDi_NUM (60493 )), hash);
637635
638- return SIMDf_MUL (SIMDf_NUM (hash2Float), SIMDf_CONVERT_TO_FLOAT (SIMDi_SUB ( hash, SIMDi_NUM ( 0x40000000 )) ));
636+ return SIMDf_MUL (SIMDf_NUM (hash2Float), SIMDf_CONVERT_TO_FLOAT (hash));
639637}
640638
641639#if SIMD_LEVEL == FN_AVX2
@@ -1422,7 +1420,7 @@ static SIMDf VECTORCALL FUNC(CellularValue##distanceFunc##Single)(const SIMDi& s
14221420 yd = SIMDf_MUL_ADD (yd, invMag, ycf);\
14231421 zd = SIMDf_MUL_ADD (zd, invMag, SIMDf_SUB (SIMDf_CONVERT_TO_FLOAT (zc), z));\
14241422 \
1425- SIMDf newCellValue = SIMDf_MUL (SIMDf_NUM (hash2Float), SIMDf_CONVERT_TO_FLOAT (SIMDi_SUB ( SIMDi_AND ( hash, SIMDi_NUM ( 0x7fffffff )), SIMDi_NUM ( 0x40000000 )) ));\
1423+ SIMDf newCellValue = SIMDf_MUL (SIMDf_NUM (hash2Float), SIMDf_CONVERT_TO_FLOAT (hash));\
14261424 SIMDf newDistance = distanceFunc##_DISTANCE (xd, yd, zd);\
14271425 \
14281426 SIMDf closer = SIMDf_LESS_THAN (newDistance, distance);\
@@ -1516,7 +1514,7 @@ static SIMDf VECTORCALL FUNC(CellularLookup##distanceFunc##Single)(const SIMDi&
15161514 yCellNew = SIMDf_ADD (yCellNew, ycf); \
15171515 zCellNew = SIMDf_ADD (zCellNew, zcf); \
15181516 \
1519- SIMDf newCellValue = SIMDf_MUL (SIMDf_NUM (hash2Float), SIMDf_CONVERT_TO_FLOAT (SIMDi_SUB ( SIMDi_AND ( hash, SIMDi_NUM ( 0x7fffffff )), SIMDi_NUM ( 0x40000000 )) ));\
1517+ SIMDf newCellValue = SIMDf_MUL (SIMDf_NUM (hash2Float), SIMDf_CONVERT_TO_FLOAT (hash));\
15201518 SIMDf newDistance = distanceFunc##_DISTANCE (xd, yd, zd);\
15211519 \
15221520 SIMDf closer = SIMDf_LESS_THAN (newDistance, distance);\
0 commit comments