diff mbox

PR target/66746: Failure to compile #include <x86intrin.h> with -miamcu

Message ID CAMe9rOrSRz=EMwfUgSQhA8HJmReTOYaU_biOTtEtboDgMQ6wMQ@mail.gmail.com
State New
Headers show

Commit Message

H.J. Lu July 8, 2015, 4:43 p.m. UTC
On Thu, Jul 2, 2015 at 11:16 PM, Uros Bizjak <ubizjak@gmail.com> wrote:
> On Fri, Jul 3, 2015 at 5:53 AM, H.J. Lu <hjl.tools@gmail.com> wrote:
>> x86intrin.h has useful intrinsics for instructions for IA MCU.  This
>> patch adds __iamcu__ check to x86intrin.h and ia32intrin.h.
>>
>> OK for trunk?
>>
>> H.J.
>> ---
>> gcc/
>>
>>         PR target/66746
>>         * config/i386/ia32intrin.h (__crc32b): Don't define if __iamcu__
>>         is defined.
>>         (__crc32w): Likewise.
>>         (__crc32d): Likewise.
>>         (__rdpmc): Likewise.
>>         (__rdtscp): Likewise.
>>         (_rdpmc): Likewise.
>>         (_rdtscp): Likewise.
>>         * config/i386/x86intrin.h: Only include ia32intrin.h if __iamcu__
>>         is defined.
>>
>> gcc/testsuite/
>>
>>         PR target/66746
>>         * gcc.target/i386/pr66746.c: New file.
>
> OK.
>

It is OK to include <adxintrin.h> for IA MCU since GCC can generate ADX
intrinsics with alternative instuctions if ADX isn't enabled.

OK for trunk?

H.J.
---
PR target/66746
* config/i386/x86intrin.h: Include <adxintrin.h> if
__iamcu__ is defined.

Comments

Uros Bizjak July 8, 2015, 5:56 p.m. UTC | #1
On Wed, Jul 8, 2015 at 6:43 PM, H.J. Lu <hjl.tools@gmail.com> wrote:

>>> x86intrin.h has useful intrinsics for instructions for IA MCU.  This
>>> patch adds __iamcu__ check to x86intrin.h and ia32intrin.h.
>>>
>>> OK for trunk?
>>>
>>> H.J.
>>> ---
>>> gcc/
>>>
>>>         PR target/66746
>>>         * config/i386/ia32intrin.h (__crc32b): Don't define if __iamcu__
>>>         is defined.
>>>         (__crc32w): Likewise.
>>>         (__crc32d): Likewise.
>>>         (__rdpmc): Likewise.
>>>         (__rdtscp): Likewise.
>>>         (_rdpmc): Likewise.
>>>         (_rdtscp): Likewise.
>>>         * config/i386/x86intrin.h: Only include ia32intrin.h if __iamcu__
>>>         is defined.
>>>
>>> gcc/testsuite/
>>>
>>>         PR target/66746
>>>         * gcc.target/i386/pr66746.c: New file.
>>
>> OK.
>>
>
> It is OK to include <adxintrin.h> for IA MCU since GCC can generate ADX
> intrinsics with alternative instuctions if ADX isn't enabled.
>
> OK for trunk?
>
> H.J.
> ---
> PR target/66746
> * config/i386/x86intrin.h: Include <adxintrin.h> if
> __iamcu__ is defined.

Ok if tested properly.

Thanks,
Uros.
diff mbox

Patch

From b1c38ef504f92ce6b085a1faace7d85566335654 Mon Sep 17 00:00:00 2001
From: "H.J. Lu" <hjl.tools@gmail.com>
Date: Wed, 8 Jul 2015 09:36:27 -0700
Subject: [PATCH] Allow <adxintrin.h> for IA MCU

It is OK to include <adxintrin.h> for IA MCU since GCC can generate ADX
intrinsics with alternative instuctions if ADX isn't enabled.

	PR target/66746
	* config/i386/x86intrin.h: Include <adxintrin.h> if
	__iamcu__ is defined.
---
 gcc/config/i386/x86intrin.h | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/gcc/config/i386/x86intrin.h b/gcc/config/i386/x86intrin.h
index be0a1a1..3ff571d 100644
--- a/gcc/config/i386/x86intrin.h
+++ b/gcc/config/i386/x86intrin.h
@@ -75,8 +75,12 @@ 
 
 #include <xsaveoptintrin.h>
 
+#endif /* __iamcu__ */
+
 #include <adxintrin.h>
 
+#ifndef __iamcu__
+
 #include <clwbintrin.h>
 
 #include <pcommitintrin.h>
-- 
2.4.3