rs6000: Fix up #include <immintrin.h> or <x86gprintrin.h> [PR104239]
authorJakub Jelinek <jakub@redhat.com>
Wed, 26 Jan 2022 21:07:29 +0000 (22:07 +0100)
committerJakub Jelinek <jakub@redhat.com>
Wed, 26 Jan 2022 21:07:29 +0000 (22:07 +0100)
commit2bf8da684b712a16c67f3defc0dd97f175f8f4ad
tree0c20e1a6cc8944636839141b3c94521937c4c35d
parent9bf217920457f2e2d46b601f24721780a20a031b
rs6000: Fix up #include <immintrin.h> or <x86gprintrin.h> [PR104239]

r12-4717-g7d37abedf58d66 added immintrin.h and x86gprintrin.h headers
to rs6000, these headers are on x86 standalone headers that various
programs include directly rather than including them through
<x86intrin.h>.
Unfortunately, for that change the bmiintrin.h and bmi2intrin.h
headers haven't been adjusted, so the effect is that if one includes them
(without including also x86intrin.h first) #error will trigger.
Furthermore, when including such headers conditionally as some real-world
packages do, this means a regression.

The following patch fixes it and matches what the x86 bmi{,2}intrin.h
headers do.

2022-01-26  Jakub Jelinek  <jakub@redhat.com>

PR target/104239
* config/rs6000/bmiintrin.h: Test _X86GPRINTRIN_H_INCLUDED instead of
_X86INTRIN_H_INCLUDED and adjust #error wording.
* config/rs6000/bmi2intrin.h: Likewise.

* gcc.target/powerpc/pr104239-1.c: New test.
* gcc.target/powerpc/pr104239-2.c: New test.
gcc/config/rs6000/bmi2intrin.h
gcc/config/rs6000/bmiintrin.h
gcc/testsuite/gcc.target/powerpc/pr104239-1.c [new file with mode: 0644]
gcc/testsuite/gcc.target/powerpc/pr104239-2.c [new file with mode: 0644]