void-packages/srcpkgs/Clp/patches/disable-avx.patch
Đoàn Trần Công Danh ec4c2d75fa srcpkgs/[A-Z]*: convert patches to -Np1
```sh
git grep -l '^patch_args=-Np0' "srcpkgs/$1*/template" |
while read template; do
	for p in ${template%/template}/patches/*; do
		sed -i '
			\,^[+-][+-][+-] /dev/null,b
			/^[*-]\+ [0-9]\+\(,[0-9]\+\)\? [*-]\+$/b
			s,^[*][*][*] ,&a/,
			/^--- /{
				s,\(^--- \)\(./\)*,\1a/,
				s,[.-][Oo][Rr][Ii][Gg]\([	/]\),\1,
				s/[.-][Oo][Rr][Ii][Gg]$//
				s/[.]patched[.]\([^.]\)/.\1/
				h
			}
			/^+++ -/{
				g
				s/^--- a/+++ b/
				b
			}
			s,\(^+++ \)\(./\)*,\1b/,
		' "$p"
	done
	sed -i '/^patch_args=/d' $template
done
```
2021-06-20 13:17:29 +07:00

47 lines
1.5 KiB
Diff

This disables AVX2 usage on x86_64 (by defining NO_AVX_HARDWARE) as well as
removes now-unused includes for AVX2/AVX512 instrinsics (the NEON header
was never used in the first place and the way it's included is completely
wrong anyway).
We need it disabled on x86_64 because we're generic (and AVX is sandybridge
and newer, but the enabled code was for haswell and newer), and on other
arches it's disabled for obvious reasons.
--- a/Clp/src/ClpPackedMatrix.cpp
+++ b/Clp/src/ClpPackedMatrix.cpp
@@ -6749,11 +6749,6 @@ ClpPackedMatrix3::ClpPackedMatrix3()
}
#ifdef _MSC_VER
#include <intrin.h>
-#elif defined(__arm__)
-#include <arm_neon.h>
-#else
-#include <immintrin.h>
-//#include <fmaintrin.h>
#endif
/* Constructor from copy. */
ClpPackedMatrix3::ClpPackedMatrix3(ClpSimplex *model, const CoinPackedMatrix *columnCopy)
@@ -6777,7 +6772,7 @@ ClpPackedMatrix3::ClpPackedMatrix3(ClpSimplex *model, const CoinPackedMatrix *co
{
//#undef COIN_AVX2
//#define COIN_AVX2 8
- //#define NO_AVX_HARDWARE
+#define NO_AVX_HARDWARE
#ifndef COIN_AVX2
#define COIN_AVX2 4
#else
--- a/Clp/src/ClpSimplexDual.cpp
+++ b/Clp/src/ClpSimplexDual.cpp
@@ -3556,11 +3556,6 @@ void moveAndZero(clpTempInfo *info, int type, void *extra)
#endif
#ifdef _MSC_VER
#include <intrin.h>
-#elif defined(__arm__)
-#include <arm_neon.h>
-#else
-#include <immintrin.h>
-//#include <fmaintrin.h>
#endif
int ClpSimplexDual::dualColumn0(const CoinIndexedVector *rowArray,
const CoinIndexedVector *columnArray,