public inbox for gcc-patches@gcc.gnu.org
 help / color / mirror / Atom feed
* [PATCH,rs6000] Change -mcrypto to only affect Category:Vector.Crypto instructions
@ 2015-03-04 20:14 Bill Schmidt
  2015-03-04 22:32 ` David Edelsohn
  2015-04-29 13:27 ` David Edelsohn
  0 siblings, 2 replies; 4+ messages in thread
From: Bill Schmidt @ 2015-03-04 20:14 UTC (permalink / raw)
  To: gcc-patches; +Cc: dje.gcc

Hi,

I recently observed that -mno-crypto disables all instructions in
section 5.11 of the 2.07 ISA, rather than just those flagged as
Category:Vector.Crypto.  This patch fixes that undesirable situation.

The main fix is to ensure the remaining instructions are gated by
TARGET_P8_VECTOR rather than TARGET_CRYPTO.  This leaves us in a
somewhat ugly state where we have builtins named __builtin_crypto_* that
are not controlled by -mcrypto.  However, we have to keep support for
these existing builtins.  As discussed elsewhere, the longer-term plan
is to implement a different common naming scheme for these builtins
across all POWER compilers, at which point the __builtin_crypto_* forms
will be deprecated.

The changes to rs6000-builtin.def aren't the prettiest in the world, but
were the best I could think of that continues support for the existing
builtins while changing their predicates.  Let me know if there's a
better way.

Ok for trunk once GCC 5 branches?  I would eventually like to fix this
in 4.8, 4.9, and 5 as well.

Thanks,
Bill


[gcc]

2015-03-04  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	* config/rs6000/crypto.md (crypto_vpmsum<CR_char>): Change
	TARGET_CRYPTO to TARGET_P8_VECTOR>
	(crypto_vpermxor_<mode>): Likewise.
	* config/rs6000/rs6000-builtin.def (BU_CRYPTO_2A): New #define.
	(BU_CRYPTO_3A): Likewise.
	(BU_CRYPTO_OVERLOAD_2A): Rename from BU_CRYPTO_OVERLOAD_2.
	(BU_CRYPTO_OVERLOAD_3A): New #define.
	(VPMSUMB): Change from BU_CRYPTO_2 to BU_CRYPTO_2A.
	(VPMSUMH): Likewise.
	(VPMSUMW): Likewise.
	(VPMSUMD): Likewise.
	(VPERMXOR_V2DI): Change from BU_CRYPTO_3 to BU_CRYPTO_3A.
	(VPERMXOR_V4SI): Likewise.
	(VPERMXOR_V8HI): Likewise.
	(VPERMXOR_V16QI): Likewise.
	(VPMSUM): Change from BU_CRYPTO_OVERLOAD_2 to
	BU_CRYPTO_OVERLOAD_2A.
	(VPERMXOR): Change from BU_CRYPTO_OVERLOAD3 to
	BU_CRYPTO_OVERLOAD_3A.
	* config/rs6000/rs6000.opt (mcrypto): Change description of
	option.

[gcc/testsuite]

2015-03-04  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	* gcc.target/powerpc/crypto-builtin-2.c: New.


Index: gcc/config/rs6000/crypto.md
===================================================================
--- gcc/config/rs6000/crypto.md	(revision 221118)
+++ gcc/config/rs6000/crypto.md	(working copy)
@@ -18,6 +18,15 @@
 ;; along with GCC; see the file COPYING3.  If not see
 ;; <http://www.gnu.org/licenses/>.
 
+;; NOTE: Although this file contains all the instructions from
+;; section 5.11 of ISA 2.07, only those in sections 5.11.1 and
+;; 5.11.2 are in Category:Vector.Crypto.  Those are the only
+;; ones controlled by -m[no-]crypto.
+
+;; FIXME: The builtin names for the instructions in this file
+;; are likely to be deprecated in favor of other names to be
+;; agreed upon with the XL compilers and LLVM.
+
 (define_c_enum "unspec"
   [UNSPEC_VCIPHER
    UNSPEC_VNCIPHER
@@ -65,7 +74,7 @@
 	(unspec:CR_mode [(match_operand:CR_mode 1 "register_operand" "v")
 			 (match_operand:CR_mode 2 "register_operand" "v")]
 			UNSPEC_VPMSUM))]
-  "TARGET_CRYPTO"
+  "TARGET_P8_VECTOR"
   "vpmsum<CR_char> %0,%1,%2"
   [(set_attr "type" "crypto")])
 
@@ -76,7 +85,7 @@
 			 (match_operand:CR_mode 2 "register_operand" "v")
 			 (match_operand:CR_mode 3 "register_operand" "v")]
 			UNSPEC_VPERMXOR))]
-  "TARGET_CRYPTO"
+  "TARGET_P8_VECTOR"
   "vpermxor %0,%1,%2,%3"
   [(set_attr "type" "crypto")])
 
Index: gcc/config/rs6000/rs6000-builtin.def
===================================================================
--- gcc/config/rs6000/rs6000-builtin.def	(revision 221118)
+++ gcc/config/rs6000/rs6000-builtin.def	(working copy)
@@ -392,6 +392,14 @@
 		     | RS6000_BTC_BINARY),				\
 		    CODE_FOR_ ## ICODE)			/* ICODE */
 
+#define BU_CRYPTO_2A(ENUM, NAME, ATTR, ICODE)				\
+  RS6000_BUILTIN_2 (CRYPTO_BUILTIN_ ## ENUM,		/* ENUM */	\
+		    "__builtin_crypto_" NAME,		/* NAME */	\
+		    RS6000_BTM_P8_VECTOR,		/* MASK */	\
+		    (RS6000_BTC_ ## ATTR		/* ATTR */	\
+		     | RS6000_BTC_BINARY),				\
+		    CODE_FOR_ ## ICODE)			/* ICODE */
+
 #define BU_CRYPTO_3(ENUM, NAME, ATTR, ICODE)				\
   RS6000_BUILTIN_3 (CRYPTO_BUILTIN_ ## ENUM,		/* ENUM */	\
 		    "__builtin_crypto_" NAME,		/* NAME */	\
@@ -400,6 +408,14 @@
 		     | RS6000_BTC_TERNARY),				\
 		    CODE_FOR_ ## ICODE)			/* ICODE */
 
+#define BU_CRYPTO_3A(ENUM, NAME, ATTR, ICODE)				\
+  RS6000_BUILTIN_3 (CRYPTO_BUILTIN_ ## ENUM,		/* ENUM */	\
+		    "__builtin_crypto_" NAME,		/* NAME */	\
+		    RS6000_BTM_P8_VECTOR,		/* MASK */	\
+		    (RS6000_BTC_ ## ATTR		/* ATTR */	\
+		     | RS6000_BTC_TERNARY),				\
+		    CODE_FOR_ ## ICODE)			/* ICODE */
+
 #define BU_CRYPTO_OVERLOAD_1(ENUM, NAME)				\
   RS6000_BUILTIN_1 (CRYPTO_BUILTIN_ ## ENUM,		/* ENUM */	\
 		    "__builtin_crypto_" NAME,		/* NAME */	\
@@ -408,10 +424,10 @@
 		     | RS6000_BTC_UNARY),				\
 		    CODE_FOR_nothing)			/* ICODE */
 
-#define BU_CRYPTO_OVERLOAD_2(ENUM, NAME)				\
+#define BU_CRYPTO_OVERLOAD_2A(ENUM, NAME)				\
   RS6000_BUILTIN_2 (CRYPTO_BUILTIN_ ## ENUM,		/* ENUM */	\
 		    "__builtin_crypto_" NAME,		/* NAME */	\
-		    RS6000_BTM_CRYPTO,			/* MASK */	\
+		    RS6000_BTM_P8_VECTOR,		/* MASK */	\
 		    (RS6000_BTC_OVERLOADED		/* ATTR */	\
 		     | RS6000_BTC_BINARY),				\
 		    CODE_FOR_nothing)			/* ICODE */
@@ -424,6 +440,14 @@
 		     | RS6000_BTC_TERNARY),				\
 		    CODE_FOR_nothing)			/* ICODE */
 
+#define BU_CRYPTO_OVERLOAD_3A(ENUM, NAME)				\
+  RS6000_BUILTIN_3 (CRYPTO_BUILTIN_ ## ENUM,		/* ENUM */	\
+		    "__builtin_crypto_" NAME,		/* NAME */	\
+		    RS6000_BTM_P8_VECTOR,		/* MASK */	\
+		    (RS6000_BTC_OVERLOADED		/* ATTR */	\
+		     | RS6000_BTC_TERNARY),				\
+		    CODE_FOR_nothing)			/* ICODE */
+
 /* HTM convenience macros.  */
 #define BU_HTM_0(ENUM, NAME, ATTR, ICODE)				\
   RS6000_BUILTIN_H (HTM_BUILTIN_ ## ENUM,		/* ENUM */	\
@@ -1611,24 +1635,24 @@ BU_CRYPTO_2 (VCIPHER,		"vcipher",	  CONST, crypto_
 BU_CRYPTO_2 (VCIPHERLAST,	"vcipherlast",	  CONST, crypto_vcipherlast)
 BU_CRYPTO_2 (VNCIPHER,		"vncipher",	  CONST, crypto_vncipher)
 BU_CRYPTO_2 (VNCIPHERLAST,	"vncipherlast",	  CONST, crypto_vncipherlast)
-BU_CRYPTO_2 (VPMSUMB,		"vpmsumb",	  CONST, crypto_vpmsumb)
-BU_CRYPTO_2 (VPMSUMH,		"vpmsumh",	  CONST, crypto_vpmsumh)
-BU_CRYPTO_2 (VPMSUMW,		"vpmsumw",	  CONST, crypto_vpmsumw)
-BU_CRYPTO_2 (VPMSUMD,		"vpmsumd",	  CONST, crypto_vpmsumd)
+BU_CRYPTO_2A (VPMSUMB,		"vpmsumb",	  CONST, crypto_vpmsumb)
+BU_CRYPTO_2A (VPMSUMH,		"vpmsumh",	  CONST, crypto_vpmsumh)
+BU_CRYPTO_2A (VPMSUMW,		"vpmsumw",	  CONST, crypto_vpmsumw)
+BU_CRYPTO_2A (VPMSUMD,		"vpmsumd",	  CONST, crypto_vpmsumd)
 
 /* 3 argument crypto functions.  */
-BU_CRYPTO_3 (VPERMXOR_V2DI,	"vpermxor_v2di",  CONST, crypto_vpermxor_v2di)
-BU_CRYPTO_3 (VPERMXOR_V4SI,	"vpermxor_v4si",  CONST, crypto_vpermxor_v4si)
-BU_CRYPTO_3 (VPERMXOR_V8HI,	"vpermxor_v8hi",  CONST, crypto_vpermxor_v8hi)
-BU_CRYPTO_3 (VPERMXOR_V16QI,	"vpermxor_v16qi", CONST, crypto_vpermxor_v16qi)
+BU_CRYPTO_3A (VPERMXOR_V2DI,	"vpermxor_v2di",  CONST, crypto_vpermxor_v2di)
+BU_CRYPTO_3A (VPERMXOR_V4SI,	"vpermxor_v4si",  CONST, crypto_vpermxor_v4si)
+BU_CRYPTO_3A (VPERMXOR_V8HI,	"vpermxor_v8hi",  CONST, crypto_vpermxor_v8hi)
+BU_CRYPTO_3A (VPERMXOR_V16QI,	"vpermxor_v16qi", CONST, crypto_vpermxor_v16qi)
 BU_CRYPTO_3 (VSHASIGMAW,	"vshasigmaw",	  CONST, crypto_vshasigmaw)
 BU_CRYPTO_3 (VSHASIGMAD,	"vshasigmad",	  CONST, crypto_vshasigmad)
 
 /* 2 argument crypto overloaded functions.  */
-BU_CRYPTO_OVERLOAD_2 (VPMSUM,	 "vpmsum")
+BU_CRYPTO_OVERLOAD_2A (VPMSUM,	 "vpmsum")
 
 /* 3 argument crypto overloaded functions.  */
-BU_CRYPTO_OVERLOAD_3 (VPERMXOR,	 "vpermxor")
+BU_CRYPTO_OVERLOAD_3A (VPERMXOR,	 "vpermxor")
 BU_CRYPTO_OVERLOAD_3 (VSHASIGMA, "vshasigma")
 
 \f
Index: gcc/config/rs6000/rs6000.opt
===================================================================
--- gcc/config/rs6000/rs6000.opt	(revision 221118)
+++ gcc/config/rs6000/rs6000.opt	(working copy)
@@ -559,7 +559,7 @@ Use/do not use vector and scalar instructions adde
 
 mcrypto
 Target Report Mask(CRYPTO) Var(rs6000_isa_flags)
-Use ISA 2.07 crypto instructions
+Use ISA 2.07 Category:Vector.Crypto instructions
 
 mdirect-move
 Target Report Mask(DIRECT_MOVE) Var(rs6000_isa_flags)
Index: gcc/testsuite/gcc.target/powerpc/crypto-builtin-2.c
===================================================================
--- gcc/testsuite/gcc.target/powerpc/crypto-builtin-2.c	(revision 0)
+++ gcc/testsuite/gcc.target/powerpc/crypto-builtin-2.c	(working copy)
@@ -0,0 +1,36 @@
+/* { dg-do compile { target { powerpc*-*-* } } } */
+/* { dg-skip-if "" { powerpc*-*-darwin* } { "*" } { "" } } */
+/* { dg-require-effective-target powerpc_vsx_ok } */
+/* { dg-skip-if "do not override -mcpu" { powerpc*-*-* } { "-mcpu=*" } { "-mcpu=power8" } } */
+/* { dg-options "-O2 -mcpu=power8 -mno-crypto" } */
+
+void use_builtins_d (__vector unsigned long long *p, __vector unsigned long long *q, __vector unsigned long long *r, __vector unsigned long long *s)
+{
+  p[0] = __builtin_crypto_vcipher (q[0], r[0]); /* { dg-error "Builtin function __builtin_crypto_vcipher is not supported with the current options" } */
+  p[1] = __builtin_crypto_vcipherlast (q[1], r[1]); /* { dg-error "Builtin function __builtin_crypto_vcipherlast is not supported with the current options" } */
+  p[2] = __builtin_crypto_vncipher (q[2], r[2]); /* { dg-error "Builtin function __builtin_crypto_vncipher is not supported with the current options" } */
+  p[3] = __builtin_crypto_vncipherlast (q[3], r[3]); /* { dg-error "Builtin function __builtin_crypto_vncipherlast is not supported with the current options" } */
+  p[4] = __builtin_crypto_vpermxor (q[4], r[4], s[4]);
+  p[5] = __builtin_crypto_vpmsumd (q[5], r[5]);
+  p[6] = __builtin_crypto_vshasigmad (q[6], 1, 15); /* { dg-error "Builtin function __builtin_crypto_vshasigmad is not supported with the current options" } */
+  p[7] = __builtin_crypto_vsbox (q[7]); /* { dg-error "Builtin function __builtin_crypto_vsbox is not supported with the current options" } */
+}
+
+void use_builtins_w (__vector unsigned int *p, __vector unsigned int *q, __vector unsigned int *r, __vector unsigned int *s)
+{
+  p[0] = __builtin_crypto_vpermxor (q[0], r[0], s[0]);
+  p[1] = __builtin_crypto_vpmsumw (q[1], r[1]);
+  p[2] = __builtin_crypto_vshasigmaw (q[2], 1, 15); /* { dg-error "Builtin function __builtin_crypto_vshasigmaw is not supported with the current options" } */
+}
+
+void use_builtins_h (__vector unsigned short *p, __vector unsigned short *q, __vector unsigned short *r, __vector unsigned short *s)
+{
+  p[0] = __builtin_crypto_vpermxor (q[0], r[0], s[0]);
+  p[1] = __builtin_crypto_vpmsumh (q[1], r[1]);
+}
+
+void use_builtins_b (__vector unsigned char *p, __vector unsigned char *q, __vector unsigned char *r, __vector unsigned char *s)
+{
+  p[0] = __builtin_crypto_vpermxor (q[0], r[0], s[0]);
+  p[1] = __builtin_crypto_vpmsumb (q[1], r[1]);
+}


^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCH,rs6000] Change -mcrypto to only affect Category:Vector.Crypto instructions
  2015-03-04 20:14 [PATCH,rs6000] Change -mcrypto to only affect Category:Vector.Crypto instructions Bill Schmidt
@ 2015-03-04 22:32 ` David Edelsohn
  2015-04-29 13:27 ` David Edelsohn
  1 sibling, 0 replies; 4+ messages in thread
From: David Edelsohn @ 2015-03-04 22:32 UTC (permalink / raw)
  To: Bill Schmidt; +Cc: GCC Patches

On Wed, Mar 4, 2015 at 3:14 PM, Bill Schmidt
<wschmidt@linux.vnet.ibm.com> wrote:
> Hi,
>
> I recently observed that -mno-crypto disables all instructions in
> section 5.11 of the 2.07 ISA, rather than just those flagged as
> Category:Vector.Crypto.  This patch fixes that undesirable situation.
>
> The main fix is to ensure the remaining instructions are gated by
> TARGET_P8_VECTOR rather than TARGET_CRYPTO.  This leaves us in a
> somewhat ugly state where we have builtins named __builtin_crypto_* that
> are not controlled by -mcrypto.  However, we have to keep support for
> these existing builtins.  As discussed elsewhere, the longer-term plan
> is to implement a different common naming scheme for these builtins
> across all POWER compilers, at which point the __builtin_crypto_* forms
> will be deprecated.
>
> The changes to rs6000-builtin.def aren't the prettiest in the world, but
> were the best I could think of that continues support for the existing
> builtins while changing their predicates.  Let me know if there's a
> better way.
>
> Ok for trunk once GCC 5 branches?  I would eventually like to fix this
> in 4.8, 4.9, and 5 as well.
>
> Thanks,
> Bill
>
>
> [gcc]
>
> 2015-03-04  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
>
>         * config/rs6000/crypto.md (crypto_vpmsum<CR_char>): Change
>         TARGET_CRYPTO to TARGET_P8_VECTOR>
>         (crypto_vpermxor_<mode>): Likewise.
>         * config/rs6000/rs6000-builtin.def (BU_CRYPTO_2A): New #define.
>         (BU_CRYPTO_3A): Likewise.
>         (BU_CRYPTO_OVERLOAD_2A): Rename from BU_CRYPTO_OVERLOAD_2.
>         (BU_CRYPTO_OVERLOAD_3A): New #define.
>         (VPMSUMB): Change from BU_CRYPTO_2 to BU_CRYPTO_2A.
>         (VPMSUMH): Likewise.
>         (VPMSUMW): Likewise.
>         (VPMSUMD): Likewise.
>         (VPERMXOR_V2DI): Change from BU_CRYPTO_3 to BU_CRYPTO_3A.
>         (VPERMXOR_V4SI): Likewise.
>         (VPERMXOR_V8HI): Likewise.
>         (VPERMXOR_V16QI): Likewise.
>         (VPMSUM): Change from BU_CRYPTO_OVERLOAD_2 to
>         BU_CRYPTO_OVERLOAD_2A.
>         (VPERMXOR): Change from BU_CRYPTO_OVERLOAD3 to
>         BU_CRYPTO_OVERLOAD_3A.
>         * config/rs6000/rs6000.opt (mcrypto): Change description of
>         option.
>
> [gcc/testsuite]
>
> 2015-03-04  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
>
>         * gcc.target/powerpc/crypto-builtin-2.c: New.

Okay.

This definitely should be fixed in all releases.

Thanks, David

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCH,rs6000] Change -mcrypto to only affect Category:Vector.Crypto instructions
  2015-03-04 20:14 [PATCH,rs6000] Change -mcrypto to only affect Category:Vector.Crypto instructions Bill Schmidt
  2015-03-04 22:32 ` David Edelsohn
@ 2015-04-29 13:27 ` David Edelsohn
  2015-04-30 21:58   ` Bill Schmidt
  1 sibling, 1 reply; 4+ messages in thread
From: David Edelsohn @ 2015-04-29 13:27 UTC (permalink / raw)
  To: Bill Schmidt; +Cc: GCC Patches

On Wed, Mar 4, 2015 at 3:14 PM, Bill Schmidt
<wschmidt@linux.vnet.ibm.com> wrote:
> Hi,
>
> I recently observed that -mno-crypto disables all instructions in
> section 5.11 of the 2.07 ISA, rather than just those flagged as
> Category:Vector.Crypto.  This patch fixes that undesirable situation.
>
> The main fix is to ensure the remaining instructions are gated by
> TARGET_P8_VECTOR rather than TARGET_CRYPTO.  This leaves us in a
> somewhat ugly state where we have builtins named __builtin_crypto_* that
> are not controlled by -mcrypto.  However, we have to keep support for
> these existing builtins.  As discussed elsewhere, the longer-term plan
> is to implement a different common naming scheme for these builtins
> across all POWER compilers, at which point the __builtin_crypto_* forms
> will be deprecated.
>
> The changes to rs6000-builtin.def aren't the prettiest in the world, but
> were the best I could think of that continues support for the existing
> builtins while changing their predicates.  Let me know if there's a
> better way.
>
> Ok for trunk once GCC 5 branches?  I would eventually like to fix this
> in 4.8, 4.9, and 5 as well.

> Index: gcc/testsuite/gcc.target/powerpc/crypto-builtin-2.c
> ===================================================================
> --- gcc/testsuite/gcc.target/powerpc/crypto-builtin-2.c (revision 0)
> +++ gcc/testsuite/gcc.target/powerpc/crypto-builtin-2.c (working copy)
> @@ -0,0 +1,36 @@
> +/* { dg-do compile { target { powerpc*-*-* } } } */
> +/* { dg-skip-if "" { powerpc*-*-darwin* } { "*" } { "" } } */
> +/* { dg-require-effective-target powerpc_vsx_ok } */
> +/* { dg-skip-if "do not override -mcpu" { powerpc*-*-* } { "-mcpu=*" } { "-mcpu=power8" } } */
> +/* { dg-options "-O2 -mcpu=power8 -mno-crypto" } */

Bill,

I think this test criterion is wrong and should be

Index: crypto-builtin-2.c
===================================================================
--- crypto-builtin-2.c  (revision 222534)
+++ crypto-builtin-2.c  (working copy)
@@ -1,6 +1,6 @@
 /* { dg-do compile { target { powerpc*-*-* } } } */
 /* { dg-skip-if "" { powerpc*-*-darwin* } { "*" } { "" } } */
-/* { dg-require-effective-target powerpc_vsx_ok } */
+/* { dg-require-effective-target powerpc_p8vector_ok } */
 /* { dg-skip-if "do not override -mcpu" { powerpc*-*-* } { "-mcpu=*"
} { "-mcpu=power8" } } */
 /* { dg-options "-O2 -mcpu=power8 -mno-crypto" } */

Thoughts?

- David

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCH,rs6000] Change -mcrypto to only affect Category:Vector.Crypto instructions
  2015-04-29 13:27 ` David Edelsohn
@ 2015-04-30 21:58   ` Bill Schmidt
  0 siblings, 0 replies; 4+ messages in thread
From: Bill Schmidt @ 2015-04-30 21:58 UTC (permalink / raw)
  To: David Edelsohn; +Cc: GCC Patches

Hi David,

I agree, and I'll fix the test as described and backport everywhere,
assuming I don't encounter any problems.  Thanks for catching this!

Bill

On Wed, 2015-04-29 at 09:21 -0400, David Edelsohn wrote:
> On Wed, Mar 4, 2015 at 3:14 PM, Bill Schmidt
> <wschmidt@linux.vnet.ibm.com> wrote:
> > Hi,
> >
> > I recently observed that -mno-crypto disables all instructions in
> > section 5.11 of the 2.07 ISA, rather than just those flagged as
> > Category:Vector.Crypto.  This patch fixes that undesirable situation.
> >
> > The main fix is to ensure the remaining instructions are gated by
> > TARGET_P8_VECTOR rather than TARGET_CRYPTO.  This leaves us in a
> > somewhat ugly state where we have builtins named __builtin_crypto_* that
> > are not controlled by -mcrypto.  However, we have to keep support for
> > these existing builtins.  As discussed elsewhere, the longer-term plan
> > is to implement a different common naming scheme for these builtins
> > across all POWER compilers, at which point the __builtin_crypto_* forms
> > will be deprecated.
> >
> > The changes to rs6000-builtin.def aren't the prettiest in the world, but
> > were the best I could think of that continues support for the existing
> > builtins while changing their predicates.  Let me know if there's a
> > better way.
> >
> > Ok for trunk once GCC 5 branches?  I would eventually like to fix this
> > in 4.8, 4.9, and 5 as well.
> 
> > Index: gcc/testsuite/gcc.target/powerpc/crypto-builtin-2.c
> > ===================================================================
> > --- gcc/testsuite/gcc.target/powerpc/crypto-builtin-2.c (revision 0)
> > +++ gcc/testsuite/gcc.target/powerpc/crypto-builtin-2.c (working copy)
> > @@ -0,0 +1,36 @@
> > +/* { dg-do compile { target { powerpc*-*-* } } } */
> > +/* { dg-skip-if "" { powerpc*-*-darwin* } { "*" } { "" } } */
> > +/* { dg-require-effective-target powerpc_vsx_ok } */
> > +/* { dg-skip-if "do not override -mcpu" { powerpc*-*-* } { "-mcpu=*" } { "-mcpu=power8" } } */
> > +/* { dg-options "-O2 -mcpu=power8 -mno-crypto" } */
> 
> Bill,
> 
> I think this test criterion is wrong and should be
> 
> Index: crypto-builtin-2.c
> ===================================================================
> --- crypto-builtin-2.c  (revision 222534)
> +++ crypto-builtin-2.c  (working copy)
> @@ -1,6 +1,6 @@
>  /* { dg-do compile { target { powerpc*-*-* } } } */
>  /* { dg-skip-if "" { powerpc*-*-darwin* } { "*" } { "" } } */
> -/* { dg-require-effective-target powerpc_vsx_ok } */
> +/* { dg-require-effective-target powerpc_p8vector_ok } */
>  /* { dg-skip-if "do not override -mcpu" { powerpc*-*-* } { "-mcpu=*"
> } { "-mcpu=power8" } } */
>  /* { dg-options "-O2 -mcpu=power8 -mno-crypto" } */
> 
> Thoughts?
> 
> - David
> 


^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2015-04-30 21:15 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-03-04 20:14 [PATCH,rs6000] Change -mcrypto to only affect Category:Vector.Crypto instructions Bill Schmidt
2015-03-04 22:32 ` David Edelsohn
2015-04-29 13:27 ` David Edelsohn
2015-04-30 21:58   ` Bill Schmidt

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).