Match deadcode elimination with cpu feature check
We check for Haswell, so don't just check for AVX2 when removing possible dead-code. Pick-to: 6.5 6.2 5.15 Fixes: QTBUG-113315 Change-Id: Id341aebcef99065f4b6a96ad0f60b9de40ed55ab Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
This commit is contained in:
parent
fd6ecd8561
commit
178c123a6f
@ -6323,7 +6323,7 @@ static void qInitDrawhelperFunctions()
|
||||
qt_memfill32 = qt_memfill_template<quint32>;
|
||||
qt_memfill64 = qt_memfill_template<quint64>;
|
||||
#elif defined(__SSE2__)
|
||||
# ifndef __AVX2__
|
||||
# ifndef __haswell__
|
||||
qt_memfill32 = qt_memfill32_sse2;
|
||||
qt_memfill64 = qt_memfill64_sse2;
|
||||
# endif
|
||||
@ -6430,7 +6430,7 @@ static void qInitDrawhelperFunctions()
|
||||
extern void QT_FASTCALL storeRGBx64FromRGBA64PM_sse4(uchar *, const QRgba64 *, int, int, const QList<QRgb> *, QDitherInfo *);
|
||||
extern void QT_FASTCALL destStore64ARGB32_sse4(QRasterBuffer *rasterBuffer, int x, int y, const QRgba64 *buffer, int length);
|
||||
extern void QT_FASTCALL destStore64RGBA8888_sse4(QRasterBuffer *rasterBuffer, int x, int y, const QRgba64 *buffer, int length);
|
||||
# ifndef __AVX2__
|
||||
# ifndef __haswell__
|
||||
qPixelLayouts[QImage::Format_ARGB32].fetchToARGB32PM = fetchARGB32ToARGB32PM_sse4;
|
||||
qPixelLayouts[QImage::Format_ARGB32].convertToARGB32PM = convertARGB32ToARGB32PM_sse4;
|
||||
qPixelLayouts[QImage::Format_RGBA8888].fetchToARGB32PM = fetchRGBA8888ToARGB32PM_sse4;
|
||||
|
@ -197,7 +197,7 @@ void QT_FASTCALL comp_func_Source_sse2(uint *dst, const uint *src, int length, u
|
||||
}
|
||||
}
|
||||
|
||||
#ifndef __AVX2__
|
||||
#ifndef __haswell__
|
||||
static Q_NEVER_INLINE
|
||||
void Q_DECL_VECTORCALL qt_memfillXX_aligned(void *dest, __m128i value128, quintptr bytecount)
|
||||
{
|
||||
@ -281,7 +281,7 @@ void qt_memfill32_sse2(quint32 *dest, quint32 value, qsizetype count)
|
||||
|
||||
qt_memfillXX_aligned(dest, _mm_set1_epi32(value), count * sizeof(quint32));
|
||||
}
|
||||
#endif // !__AVX2__
|
||||
#endif // !__haswell__
|
||||
|
||||
void QT_FASTCALL comp_func_solid_Source_sse2(uint *destPixels, int length, uint color, uint const_alpha)
|
||||
{
|
||||
|
@ -10,7 +10,7 @@
|
||||
|
||||
QT_BEGIN_NAMESPACE
|
||||
|
||||
#ifndef __AVX2__
|
||||
#ifndef __haswell__
|
||||
template<bool RGBA>
|
||||
static void convertARGBToARGB32PM_sse4(uint *buffer, const uint *src, int count)
|
||||
{
|
||||
@ -106,7 +106,7 @@ static void convertARGBToRGBA64PM_sse4(QRgba64 *buffer, const uint *src, int cou
|
||||
buffer[i] = QRgba64::fromArgb32(s).premultiplied();
|
||||
}
|
||||
}
|
||||
#endif // __AVX2__
|
||||
#endif // __haswell__
|
||||
|
||||
static inline __m128 Q_DECL_VECTORCALL reciprocal_mul_ps(__m128 a, float mul)
|
||||
{
|
||||
@ -375,7 +375,7 @@ static inline void convertRGBA64FromRGBA64PM_sse4(QRgba64 *buffer, const QRgba64
|
||||
}
|
||||
}
|
||||
|
||||
#ifndef __AVX2__
|
||||
#ifndef __haswell__
|
||||
void QT_FASTCALL convertARGB32ToARGB32PM_sse4(uint *buffer, int count, const QList<QRgb> *)
|
||||
{
|
||||
convertARGBToARGB32PM_sse4<false>(buffer, buffer, count);
|
||||
@ -427,7 +427,7 @@ const QRgba64 *QT_FASTCALL fetchRGBA8888ToRGBA64PM_sse4(QRgba64 *buffer, const u
|
||||
convertARGBToRGBA64PM_sse4<true>(buffer, reinterpret_cast<const uint *>(src) + index, count);
|
||||
return buffer;
|
||||
}
|
||||
#endif // __AVX2__
|
||||
#endif // __haswell__
|
||||
|
||||
void QT_FASTCALL storeRGB32FromARGB32PM_sse4(uchar *dest, const uint *src, int index, int count,
|
||||
const QList<QRgb> *, QDitherInfo *)
|
||||
|
Loading…
Reference in New Issue
Block a user