Go to file
Thiago Macieira f7a7a49f92 Fix the AVX2 ARGB->ARGB64 conversion code
Commit c8c5ff19de introduced the solution
as a simple scaling up of the code in qdrawhelper_sse4.cpp, but it's bad
due to the way that the 256-bit unpack instructions work: the unpack-low
instruction unpacks the lower half of each half of the 256-bit register.
So we fix it up by inserting a permute4x64 that swaps the middle two
quarters of the 256-bit register (permute8x32 requires a __m256i
parameter, instead of an immediate).

This introduces an instruction that costs 3 cycles in each loop, but
since the AVX2 code has double the throughput compared to SSE4 code, it
should still be faster.

This problem does not affect the ARGB->ARGB32 code because that repacks
at the end.

Change-Id: I4d4dadb709f1482fa8ccfffd1578620b45166a4f
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
2019-01-15 21:52:46 +00:00
bin syncqt: Do not clean header directory before "-minimal" run 2018-11-22 14:16:53 +00:00
config.tests configure: modernize iconv use 2018-12-19 19:22:16 +00:00
dist Merge remote-tracking branch 'origin/5.12' into dev 2018-12-13 01:00:11 +01:00
doc Merge remote-tracking branch 'origin/5.12' into dev 2018-10-25 07:21:53 +02:00
examples Cleanup Widgets examples - foreach 2019-01-07 13:15:59 +00:00
lib Purge all fonts 2015-08-18 19:59:14 +00:00
mkspecs Merge remote-tracking branch 'origin/5.12' into dev 2019-01-07 01:00:08 +01:00
qmake Merge remote-tracking branch 'origin/5.12' into dev 2019-01-07 01:00:08 +01:00
src Fix the AVX2 ARGB->ARGB64 conversion code 2019-01-15 21:52:46 +00:00
tests disabledProtocol() - use the right address when connecting 2019-01-09 05:36:45 +00:00
util Merge remote-tracking branch 'origin/5.12' into dev 2018-11-13 01:00:13 +01:00
.gitattributes Update the git-archive export options 2012-09-07 15:39:31 +02:00
.gitignore Remove support for qml1 plugins and modules 2018-11-15 19:52:13 +00:00
.qmake.conf Bump version 2018-11-08 11:26:39 +01:00
.tag Update the git-archive export options 2012-09-07 15:39:31 +02:00
config_help.txt Merge remote-tracking branch 'origin/5.12' into dev 2019-01-04 07:33:14 +01:00
configure configure: Treat win32-clang-g++ the same as win32-g++ 2018-10-10 04:10:40 +00:00
configure.bat configure: Prefer cl.exe over clang-cl.exe 2018-01-04 21:22:42 +00:00
configure.json Merge remote-tracking branch 'origin/5.12' into dev 2019-01-04 07:33:14 +01:00
configure.pri Merge remote-tracking branch 'origin/5.12' into dev 2018-11-27 01:00:36 +01:00
header.BSD Use placeholder for year in header.* files 2018-04-16 11:02:22 +00:00
header.COMM Use placeholder for year in header.* files 2018-04-16 11:02:22 +00:00
header.FDL Use placeholder for year in header.* files 2018-04-16 11:02:22 +00:00
header.GPL Use placeholder for year in header.* files 2018-04-16 11:02:22 +00:00
header.GPL-EXCEPT Use placeholder for year in header.* files 2018-04-16 11:02:22 +00:00
header.LGPL Use placeholder for year in header.* files 2018-04-16 11:02:22 +00:00
header.LGPL3 Use placeholder for year in header.* files 2018-04-16 11:02:22 +00:00
header.LGPL3-COMM Use placeholder for year in header.* files 2018-04-16 11:02:22 +00:00
header.LGPL-NOGPL2 Use placeholder for year in header.* files 2018-04-16 11:02:22 +00:00
header.LGPL-ONLY Use placeholder for year in header.* files 2018-04-16 11:02:22 +00:00
header.MIT qsimd: add support for new x86 CPU features 2018-05-05 06:20:07 +00:00
INSTALL Doc: Update links in INSTALL file 2015-02-16 09:06:41 +00:00
LICENSE.FDL Initial import from the monolithic Qt. 2011-04-27 12:05:43 +02:00
LICENSE.GPL2 Add new license header templates and license files 2016-01-14 20:43:46 +00:00
LICENSE.GPL3 Add new license header templates and license files 2016-01-14 20:43:46 +00:00
LICENSE.GPL3-EXCEPT Add new license header templates and license files 2016-01-14 20:43:46 +00:00
LICENSE.LGPL3 Add new license header templates and license files 2016-01-14 20:43:46 +00:00
LICENSE.LGPLv3 Remove LICENSE.GPLv3, LICENSE.LGPLv21, LGPL_EXCEPTION.txt 2018-04-16 11:02:14 +00:00
LICENSE.QT-LICENSE-AGREEMENT-4.0 Replace commercial preview license with Qt License Agreement 4.0 2018-06-21 11:39:15 +00:00
qtbase.pro nuke configure -host-option 2016-12-13 18:55:59 +00:00
sync.profile Fix build failed with ANGLE 2018-10-16 05:19:43 +00:00