Re-enabling of RDRND for Silvermont.
authorSebastian Peryt <sebastian.peryt@intel.com>
Wed, 17 Jan 2018 09:02:13 +0000 (10:02 +0100)
committerSebastian Peryt <speryt@gcc.gnu.org>
Wed, 17 Jan 2018 09:02:13 +0000 (10:02 +0100)
2018-01-15  Sebastian Peryt  <sebastian.peryt@intel.com>

gcc/

PR target/83546
* config/i386/i386.c (ix86_option_override_internal): Add PTA_RDRND
to PTA_SILVERMONT.

2018-01-15  Sebastian Peryt  <sebastian.peryt@intel.com>

gcc/testsuite/

PR target/83546
* gcc.target/i386/pr83546.c: New test.

From-SVN: r256777

gcc/ChangeLog
gcc/config/i386/i386.c
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.target/i386/pr83546.c [new file with mode: 0644]

index 9034ebec2d4b0e503f3a32097d98b7677699e73c..4f83eb6b64b521ff32171ee294c22cc5ed04e63c 100644 (file)
@@ -1,3 +1,9 @@
+2018-01-16  Sebastian Peryt  <sebastian.peryt@intel.com>
+
+       PR target/83546
+       * config/i386/i386.c (ix86_option_override_internal): Add PTA_RDRND
+       to PTA_SILVERMONT.
+
 2018-01-16  Michael Meissner  <meissner@linux.vnet.ibm.com>
 
        * config.gcc (powerpc*-linux*-*): Add support for 64-bit little
index ea9c462fbba397f7785c830a1f6398d3e7817f34..6dd6bfd5de881659855491963c0c19be2a6522b7 100644 (file)
@@ -3474,7 +3474,7 @@ ix86_option_override_internal (bool main_args_p,
 #define PTA_BONNELL \
   (PTA_CORE2 | PTA_MOVBE)
 #define PTA_SILVERMONT \
-  (PTA_WESTMERE | PTA_MOVBE)
+  (PTA_WESTMERE | PTA_MOVBE | PTA_RDRND)
 #define PTA_KNM \
   (PTA_KNL | PTA_AVX5124VNNIW | PTA_AVX5124FMAPS | PTA_AVX512VPOPCNTDQ)
 
index a4fc221f136cbe07a15e731116122e8f285ad5ad..29b9cb8faecb3daff806eaddf5941abed1fc1c72 100644 (file)
@@ -1,3 +1,8 @@
+2018-01-16  Sebastian Peryt  <sebastian.peryt@intel.com>
+
+       PR target/83546
+       * gcc.target/i386/pr83546.c: New test.
+
 2018-01-16  Eric Botcazou  <ebotcazou@adacore.com>
 
        * c-c++-common/Warray-bounds-3.c (test_memmove_bounds): Fix mismatch.
diff --git a/gcc/testsuite/gcc.target/i386/pr83546.c b/gcc/testsuite/gcc.target/i386/pr83546.c
new file mode 100644 (file)
index 0000000..12fa2b8
--- /dev/null
@@ -0,0 +1,18 @@
+/* PR target/83546 */
+/* { dg-do compile } */
+/* { dg-options "-O2 -march=silvermont" } */
+
+int test (void)
+{
+  unsigned int number = 0;
+  int result0, result1, result2, result3;
+
+  result0 = __builtin_ia32_rdrand32_step (&number);
+  result1 = __builtin_ia32_rdrand32_step (&number);
+  result2 = __builtin_ia32_rdrand32_step (&number);
+  result3 = __builtin_ia32_rdrand32_step (&number);
+
+  return result0 + result1 +result2 + result3;
+}
+
+/* { dg-final { scan-assembler-times "rdrand" 4 } } */