re PR target/15184 (Direct access to byte inside word not working with -march=pentiumpro)
authorUros Bizjak <ubizjak@gmail.com>
Fri, 30 Jan 2015 10:53:53 +0000 (11:53 +0100)
committerUros Bizjak <uros@gcc.gnu.org>
Fri, 30 Jan 2015 10:53:53 +0000 (11:53 +0100)
PR target/15184
* gcc.target/i386/pr15184-1.c: Compile for ia32 target only.
(dg-options): Remove -m32.
(dg-final): Scan for "movb %al" only.
* gcc.target/i386/pr15184-2.c: Ditto.

From-SVN: r220277

gcc/testsuite/ChangeLog
gcc/testsuite/gcc.target/i386/pr15184-1.c
gcc/testsuite/gcc.target/i386/pr15184-2.c

index 5ce99e61dbf2e8537af0acd47694200b162fd89f..e90c8b0a636b0cf5d8dc5473381275fdd9267213 100644 (file)
@@ -1,3 +1,11 @@
+2015-01-30  Uros Bizjak  <ubizjak@gmail.com>
+
+       PR target/15184
+       * gcc.target/i386/pr15184-1.c: Compile for ia32 target only.
+       (dg-options): Remove -m32.
+       (dg-final): Scan for "movb %al" only.
+       * gcc.target/i386/pr15184-2.c: Ditto.
+
 2015-01-30  Richard Biener  <rguenther@suse.de>
 
        PR tree-optimization/64829
index 9eb544c10ef5a518b0dbe8cc13587c2c4c96e872..8c19e47585250cc80e99315f734c2ea4287c7cca 100644 (file)
@@ -1,11 +1,10 @@
 /* PR 15184 first two tests, plus two addition ones.  */
-/* { dg-do compile } */
-/* { dg-options "-O2 -m32 -march=pentiumpro" } */
+/* { dg-do compile { target ia32 } } */
+/* { dg-options "-O2 -march=pentiumpro" } */
 
-#define regparm __attribute__((__regparm__(3)))
+#define regparm __attribute__((__regparm__(1)))
 
 extern unsigned int x;
-extern unsigned short y;
 
 void regparm f0(unsigned char c)
 {
@@ -29,5 +28,5 @@ void regparm f3(unsigned char c)
 
 /* Each function should compile down to a byte move from
    the input register into x, possibly at an offset within x.  */
-/* { dg-final { scan-assembler-times "\tmovb\t%al, x" 4 } } */
+/* { dg-final { scan-assembler-times "movb\[ \\t\]+%al" 4 } } */
 
index 99fdbc8eed677ed8377d9af0716b4cb54344997d..a6cb9ebc24eb374b9a25aa79235fa17a04109f42 100644 (file)
@@ -1,10 +1,9 @@
 /* PR 15184 second two tests
-/* { dg-do compile } */
-/* { dg-options "-O2 -m32 -march=pentiumpro" } */
+/* { dg-do compile { target ia32 } } */
+/* { dg-options "-O2 -march=pentiumpro" } */
 
-#define regparm __attribute__((__regparm__(3)))
+#define regparm __attribute__((__regparm__(1)))
 
-extern unsigned int x;
 extern unsigned short y;
 
 void regparm g0(unsigned char c)
@@ -18,6 +17,6 @@ void regparm g1(unsigned char c)
 }
 
 /* Each function should compile down to a byte move from
-   the input register into x, possibly at an offset within x.  */
-/* { dg-final { scan-assembler-times "\tmovb\t%al, y" 2 } } */
+   the input register into y, possibly at an offset within y.  */
+/* { dg-final { scan-assembler-times "movb\[ \\t\]+%al" 2 } } */