]> git.ipfire.org Git - thirdparty/gcc.git/commit
i386: Do not allow pointer conversion for CMPccXADD intrin under -O0
authorHaochen Jiang <haochen.jiang@intel.com>
Fri, 1 Nov 2024 07:59:47 +0000 (15:59 +0800)
committerHaochen Jiang <haochen.jiang@intel.com>
Fri, 1 Nov 2024 18:19:06 +0000 (02:19 +0800)
commit82bfb6c5ba6d1f84472271f367221988cd50f478
treedfdb3b52c6d2d62e8787e03e57d5d8d39f342155
parent9a5ee8da09b705fc2a4197453789db0749387db3
i386: Do not allow pointer conversion for CMPccXADD intrin under -O0

The pointer conversion to wider type under macro would not consider
whether the higher bit is cleaned or not. It will lead to unexpected
cmp result.

After this change, it will throw an incompatible pointer type error just
like -O2 does currently.

gcc/ChangeLog:

* config/i386/cmpccxaddintrin.h (_cmpccxadd_epi32): Do not do
type conversion for pointer.
(_cmpccxadd_epi64): Ditto.

gcc/testsuite/ChangeLog:

* gcc.target/i386/cmpccxadd-1b.c: New test.
gcc/config/i386/cmpccxaddintrin.h
gcc/testsuite/gcc.target/i386/cmpccxadd-1b.c [new file with mode: 0644]