In these cases, we need to add a second regex to match Darwin/Mach-O or
to amend the use of symbols to include USER_LABEL_PREFIX.

gcc/testsuite/ChangeLog:

        * gcc.target/i386/builtin-memmove-13.c: Add support for Mach-O.
        * gcc.target/i386/cf_check-11.c: Likewise.
        * gcc.target/i386/memcpy-pr120683-1.c: Likewise.
        * gcc.target/i386/memcpy-strategy-13.c: Likewise.
        * gcc.target/i386/memset-pr120683-10.c: Likewise.
        * gcc.target/i386/memset-pr120683-20.c: Likewise.
        * gcc.target/i386/memset-pr120683-21.c: Likewise.
        * gcc.target/i386/memset-strategy-27.c: Likewise.
        * gcc.target/i386/opt-comi-1.c: Likewise.
        * gcc.target/i386/pr122343-1a.c: Likewise.
        * gcc.target/i386/pr122343-1b.c: Likewise.
        * gcc.target/i386/pr122343-2a.c: Likewise.
        * gcc.target/i386/pr122343-2b.c: Likewise.
        * gcc.target/i386/pr125355-2.c: Likewise.
        * gcc.target/i386/pr125355.c: Likewise.
        * gcc.target/i386/prefetchi-1.c: Likewise.
        * gcc.target/i386/prefetchi-1b.c: Likewise.

Signed-off-by: Iain Sandoe <[email protected]>
---
 .../gcc.target/i386/builtin-memmove-13.c      | 13 +++++++-
 gcc/testsuite/gcc.target/i386/cf_check-11.c   |  2 +-
 .../gcc.target/i386/memcpy-pr120683-1.c       | 32 +++++++++++++++++--
 .../gcc.target/i386/memcpy-strategy-13.c      |  4 +--
 .../gcc.target/i386/memset-pr120683-10.c      | 18 +++++++++--
 .../gcc.target/i386/memset-pr120683-20.c      | 26 +++++++++++++--
 .../gcc.target/i386/memset-pr120683-21.c      | 26 +++++++++++++--
 .../gcc.target/i386/memset-strategy-27.c      |  4 +--
 gcc/testsuite/gcc.target/i386/opt-comi-1.c    |  1 +
 gcc/testsuite/gcc.target/i386/pr111657-1.c    | 24 ++++++++++++--
 gcc/testsuite/gcc.target/i386/pr122343-1a.c   | 13 +++++++-
 gcc/testsuite/gcc.target/i386/pr122343-1b.c   | 14 +++++++-
 gcc/testsuite/gcc.target/i386/pr122343-2a.c   | 15 +++++++--
 gcc/testsuite/gcc.target/i386/pr122343-2b.c   | 16 ++++++++--
 gcc/testsuite/gcc.target/i386/pr122343-3.c    | 13 ++++++--
 gcc/testsuite/gcc.target/i386/pr122343-4a.c   | 18 ++++++++++-
 gcc/testsuite/gcc.target/i386/pr122343-4b.c   | 21 ++++++++++--
 gcc/testsuite/gcc.target/i386/pr122343-5a.c   | 13 ++++++--
 gcc/testsuite/gcc.target/i386/pr122343-5b.c   | 16 ++++++++--
 gcc/testsuite/gcc.target/i386/pr122343-6a.c   | 21 ++++++++++--
 gcc/testsuite/gcc.target/i386/pr122343-6b.c   | 23 +++++++++++--
 gcc/testsuite/gcc.target/i386/pr122343-7.c    | 16 ++++++++--
 gcc/testsuite/gcc.target/i386/pr122675-1.c    |  2 +-
 gcc/testsuite/gcc.target/i386/pr125351.c      |  1 +
 gcc/testsuite/gcc.target/i386/pr125355-2.c    |  4 +--
 gcc/testsuite/gcc.target/i386/pr125355.c      |  2 +-
 gcc/testsuite/gcc.target/i386/pr92080-17.c    | 16 ++++++++--
 gcc/testsuite/gcc.target/i386/prefetchi-1.c   |  4 +--
 gcc/testsuite/gcc.target/i386/prefetchi-1b.c  |  4 +--
 29 files changed, 335 insertions(+), 47 deletions(-)

diff --git a/gcc/testsuite/gcc.target/i386/builtin-memmove-13.c 
b/gcc/testsuite/gcc.target/i386/builtin-memmove-13.c
index b4854a5f835..91eff7fb95d 100644
--- a/gcc/testsuite/gcc.target/i386/builtin-memmove-13.c
+++ b/gcc/testsuite/gcc.target/i386/builtin-memmove-13.c
@@ -2,7 +2,8 @@
 /* { dg-options "-O2 -mno-avx -msse2 -mtune=generic -fno-pie" } */
 /* { dg-add-options check_function_bodies } */
 /* Keep labels and directives ('.cfi_startproc', '.cfi_endproc').  */
-/* { dg-final { check-function-bodies "**" "" "" { target { lp64 } } {^\t?\.} 
} } */
+/* { dg-final { check-function-bodies "**" "*#" "" { target { lp64 && { ! 
*-*-darwin* } } } {^\t?\.} } } */
+/* { dg-final { check-function-bodies "*D" "*E" "" { target { lp64 && 
*-*-darwin* } } {^\t?\.} } } */
 
 /*
 **foo:
@@ -15,6 +16,16 @@
 **     ret
 **     .cfi_endproc
 **...
+*#
+
+*Dfoo:
+*D     movl    3\+_a\(%rip\), %eax
+*D     movl    %eax, _a\(%rip\)
+*D     movzbl  7\+_a\(%rip\), %eax
+*D     movb    %al, 4\+_a\(%rip\)
+*D     ret
+*D...
+*E
 */
 
 char a[8] = "12345678";
diff --git a/gcc/testsuite/gcc.target/i386/cf_check-11.c 
b/gcc/testsuite/gcc.target/i386/cf_check-11.c
index 2a85a5b4e70..c8c91a2b878 100644
--- a/gcc/testsuite/gcc.target/i386/cf_check-11.c
+++ b/gcc/testsuite/gcc.target/i386/cf_check-11.c
@@ -22,4 +22,4 @@ foo (void)
 {
 }
 
-/* { dg-final { scan-assembler ".weak\[ \t\]_?foo" } } */
+/* { dg-final { scan-assembler ".weak(|_definition)\[ \t\]_?foo" } } */
diff --git a/gcc/testsuite/gcc.target/i386/memcpy-pr120683-1.c 
b/gcc/testsuite/gcc.target/i386/memcpy-pr120683-1.c
index 6d5ed4f805a..f50c8b6cff0 100644
--- a/gcc/testsuite/gcc.target/i386/memcpy-pr120683-1.c
+++ b/gcc/testsuite/gcc.target/i386/memcpy-pr120683-1.c
@@ -1,8 +1,8 @@
 /* { dg-do compile } */
 /* { dg-options "-O2 -mno-sse 
-mmemcpy-strategy=unrolled_loop:256:noalign,libcall:-1:noalign" } */
 /* { dg-add-options check_function_bodies } */
-/* Keep labels and directives ('.cfi_startproc', '.cfi_endproc').  */
-/* { dg-final { check-function-bodies "**" "" "" { target lp64 } {^\t?\.} } } 
*/
+/* { dg-final { check-function-bodies "**" "*#" "" { target { lp64 && { ! 
*-*-darwin* } } } {^\t?\.} } } */
+/* { dg-final { check-function-bodies "*D" "*E" "" { target { lp64 && 
*-*-darwin* } } {^\t?\.} } } */
 
 /*
 **foo:
@@ -32,6 +32,34 @@
 **     jb      .L[0-9]+
 **     ret
 **...
+*#
+
+*Dfoo:
+*D     movq    221\(%rsi\), %rax
+*D     xorl    %edx, %edx
+*D     movq    %rax, 221\(%rdi\)
+*D     movq    229\(%rsi\), %rax
+*D     movq    %rax, 229\(%rdi\)
+*D     movq    237\(%rsi\), %rax
+*D     movq    %rax, 237\(%rdi\)
+*D     movq    245\(%rsi\), %rax
+*D     movq    %rax, 245\(%rdi\)
+*D.L[0-9]+:
+*D     movl    %edx, %eax
+*D     addl    \$32, %edx
+*D     movq    \(%rsi,%rax\), %r10
+*D     cmpl    \$224, %edx
+*D     movq    8\(%rsi,%rax\), %r9
+*D     movq    16\(%rsi,%rax\), %r8
+*D     movq    24\(%rsi,%rax\), %rcx
+*D     movq    %r10, \(%rdi,%rax\)
+*D     movq    %r9, 8\(%rdi,%rax\)
+*D     movq    %r8, 16\(%rdi,%rax\)
+*D     movq    %rcx, 24\(%rdi,%rax\)
+*D     jb      .L[0-9]+
+*D     ret
+*D...
+*E
 */
 
 void
diff --git a/gcc/testsuite/gcc.target/i386/memcpy-strategy-13.c 
b/gcc/testsuite/gcc.target/i386/memcpy-strategy-13.c
index 109bd675a51..773c919f18b 100644
--- a/gcc/testsuite/gcc.target/i386/memcpy-strategy-13.c
+++ b/gcc/testsuite/gcc.target/i386/memcpy-strategy-13.c
@@ -1,7 +1,7 @@
 /* { dg-do compile } */
 /* { dg-options "-O2 -mtune=generic -mno-avx" } */
-/* { dg-final { scan-assembler "jmp\tmemcpy" { target { ! ia32 } } } } */
-/* { dg-final { scan-assembler "call\tmemcpy" { target ia32 } } } */
+/* { dg-final { scan-assembler "jmp\t_?memcpy" { target { ! ia32 } } } } */
+/* { dg-final { scan-assembler "call\t_?memcpy" { target ia32 } } } */
 /* { dg-final { scan-assembler-not "rep movsb" } } */
 
 void
diff --git a/gcc/testsuite/gcc.target/i386/memset-pr120683-10.c 
b/gcc/testsuite/gcc.target/i386/memset-pr120683-10.c
index 040e2937aee..90e923b2086 100644
--- a/gcc/testsuite/gcc.target/i386/memset-pr120683-10.c
+++ b/gcc/testsuite/gcc.target/i386/memset-pr120683-10.c
@@ -1,8 +1,8 @@
 /* { dg-do compile } */
 /* { dg-options "-O2 -mno-sse 
-mmemset-strategy=unrolled_loop:256:noalign,libcall:-1:noalign" } */
 /* { dg-add-options check_function_bodies } */
-/* Keep labels and directives ('.cfi_startproc', '.cfi_endproc').  */
-/* { dg-final { check-function-bodies "**" "" "" { target lp64 } {^\t?\.} } } 
*/
+/* { dg-final { check-function-bodies "**" "*#" "" { target { lp64 && { ! 
*-*-darwin* } } } {^\t?\.} } } */
+/* { dg-final { check-function-bodies "*D" "*E" "" { target { lp64 && 
*-*-darwin* } } {^\t?\.} } } */
 
 /*
 **foo:
@@ -18,6 +18,20 @@
 **     movq    \$0, 53\(%rdi\)
 **     ret
 **...
+*#
+
+*Dfoo:
+*D     movq    \$0, 29\(%rdi\)
+*D     movq    \$0, 37\(%rdi\)
+*D     movq    \$0, 45\(%rdi\)
+*D     movq    \$0, 53\(%rdi\)
+*D     movq    \$0, \(%rdi\)
+*D     movq    \$0, 8\(%rdi\)
+*D     movq    \$0, 16\(%rdi\)
+*D     movq    \$0, 24\(%rdi\)
+*D     ret
+*D...
+*E
 */
 
 void
diff --git a/gcc/testsuite/gcc.target/i386/memset-pr120683-20.c 
b/gcc/testsuite/gcc.target/i386/memset-pr120683-20.c
index 0a79f6909df..3fe800f27a9 100644
--- a/gcc/testsuite/gcc.target/i386/memset-pr120683-20.c
+++ b/gcc/testsuite/gcc.target/i386/memset-pr120683-20.c
@@ -1,8 +1,8 @@
 /* { dg-do compile } */
 /* { dg-options "-O2 -march=x86-64 
-mmemset-strategy=vector_loop:256:noalign,libcall:-1:noalign -fno-pie" } */
 /* { dg-add-options check_function_bodies } */
-/* Keep labels and directives ('.cfi_startproc', '.cfi_endproc').  */
-/* { dg-final { check-function-bodies "**" "" "" { target lp64 } {^\t?\.} } } 
*/
+/* { dg-final { check-function-bodies "**" "*#" "" { target { lp64 && { ! 
*-*-darwin* } } } {^\t?\.} } } */
+/* { dg-final { check-function-bodies "*D" "*E" "" { target { lp64 && 
*-*-darwin* } } {^\t?\.} } } */
 
 /*
 **foo:
@@ -26,6 +26,28 @@
 **     movd    %xmm0, dest\+175\(%rip\)
 **     ret
 **...
+*#
+
+*Dfoo:
+*D     movd    %edi, %xmm0
+*D     punpcklbw       %xmm0, %xmm0
+*D     punpcklwd       %xmm0, %xmm0
+*D     pshufd  \$0, %xmm0, %xmm0
+*D     movaps  %xmm0, 160\+_dest\(%rip\)
+*D     movaps  %xmm0, _dest\(%rip\)
+*D     movaps  %xmm0, 16\+_dest\(%rip\)
+*D     movaps  %xmm0, 32\+_dest\(%rip\)
+*D     movaps  %xmm0, 48\+_dest\(%rip\)
+*D     movaps  %xmm0, 64\+_dest\(%rip\)
+*D     movaps  %xmm0, 80\+_dest\(%rip\)
+*D     movaps  %xmm0, 96\+_dest\(%rip\)
+*D     movaps  %xmm0, 112\+_dest\(%rip\)
+*D     movaps  %xmm0, 128\+_dest\(%rip\)
+*D     movaps  %xmm0, 144\+_dest\(%rip\)
+*D     movd    %xmm0, 175\+_dest\(%rip\)
+*D     ret
+*D...
+*E
 */
 
 char dest[179];
diff --git a/gcc/testsuite/gcc.target/i386/memset-pr120683-21.c 
b/gcc/testsuite/gcc.target/i386/memset-pr120683-21.c
index c058a6572b0..9e7d453286f 100644
--- a/gcc/testsuite/gcc.target/i386/memset-pr120683-21.c
+++ b/gcc/testsuite/gcc.target/i386/memset-pr120683-21.c
@@ -1,8 +1,8 @@
 /* { dg-do compile } */
 /* { dg-options "-O2 -march=x86-64 
-mmemset-strategy=vector_loop:256:noalign,libcall:-1:noalign -fno-pie" } */
 /* { dg-add-options check_function_bodies } */
-/* Keep labels and directives ('.cfi_startproc', '.cfi_endproc').  */
-/* { dg-final { check-function-bodies "**" "" "" { target lp64 } {^\t?\.} } } 
*/
+/* { dg-final { check-function-bodies "**" "*#" "" { target { lp64 && { ! 
*-*-darwin* } } } {^\t?\.} } } */
+/* { dg-final { check-function-bodies "*D" "*E" "" { target { lp64 && 
*-*-darwin* } } {^\t?\.} } } */
 
 /*
 **foo:
@@ -26,6 +26,28 @@
 **     movaps  %xmm0, dest\+160\(%rip\)
 **     ret
 **...
+*#
+
+*Dfoo:
+*D     movd    %edi, %xmm0
+*D     movb    %dil, 176\+_dest\(%rip\)
+*D     punpcklbw       %xmm0, %xmm0
+*D     punpcklwd       %xmm0, %xmm0
+*D     pshufd  \$0, %xmm0, %xmm0
+*D     movaps  %xmm0, _dest\(%rip\)
+*D     movaps  %xmm0, 16\+_dest\(%rip\)
+*D     movaps  %xmm0, 32\+_dest\(%rip\)
+*D     movaps  %xmm0, 48\+_dest\(%rip\)
+*D     movaps  %xmm0, 64\+_dest\(%rip\)
+*D     movaps  %xmm0, 80\+_dest\(%rip\)
+*D     movaps  %xmm0, 96\+_dest\(%rip\)
+*D     movaps  %xmm0, 112\+_dest\(%rip\)
+*D     movaps  %xmm0, 128\+_dest\(%rip\)
+*D     movaps  %xmm0, 144\+_dest\(%rip\)
+*D     movaps  %xmm0, 160\+_dest\(%rip\)
+*D     ret
+*D...
+*E
 */
 
 char dest[177];
diff --git a/gcc/testsuite/gcc.target/i386/memset-strategy-27.c 
b/gcc/testsuite/gcc.target/i386/memset-strategy-27.c
index 685d6e5a5c2..57f25211bd2 100644
--- a/gcc/testsuite/gcc.target/i386/memset-strategy-27.c
+++ b/gcc/testsuite/gcc.target/i386/memset-strategy-27.c
@@ -1,7 +1,7 @@
 /* { dg-do compile } */
 /* { dg-options "-O2 -mtune=generic -mno-avx" } */
-/* { dg-final { scan-assembler "jmp\tmemset" { target { ! ia32 } } } } */
-/* { dg-final { scan-assembler "call\tmemset" { target ia32 } } } */
+/* { dg-final { scan-assembler "jmp\t_?memset" { target { ! ia32 } } } } */
+/* { dg-final { scan-assembler "call\t_?memset" { target ia32 } } } */
 /* { dg-final { scan-assembler-not "rep stosb" } } */
 
 void
diff --git a/gcc/testsuite/gcc.target/i386/opt-comi-1.c 
b/gcc/testsuite/gcc.target/i386/opt-comi-1.c
index fc7b8632004..a2c5219d98d 100644
--- a/gcc/testsuite/gcc.target/i386/opt-comi-1.c
+++ b/gcc/testsuite/gcc.target/i386/opt-comi-1.c
@@ -1,5 +1,6 @@
 /* { dg-do compile } */
 /* { dg-options "-O2 -mfpmath=sse -msse2" } */
+/* { dg-additional-options "-fno-unwind-tables 
-fno-asynchronous-unwind-tables" { target *-*-darwin* } } */
 /* { dg-final { scan-assembler-times "comiss" 9 } } */
 /* { dg-final { scan-assembler-times "set" 9 } } */
 
diff --git a/gcc/testsuite/gcc.target/i386/pr111657-1.c 
b/gcc/testsuite/gcc.target/i386/pr111657-1.c
index b80662c2e0a..1ba83c4ca93 100644
--- a/gcc/testsuite/gcc.target/i386/pr111657-1.c
+++ b/gcc/testsuite/gcc.target/i386/pr111657-1.c
@@ -1,8 +1,8 @@
 /* { dg-do assemble } */
 /* { dg-options "-O2 -mno-sse -mtune=generic -save-temps -fno-pie" } */
 /* { dg-add-options check_function_bodies } */
-/* Keep labels and directives ('.cfi_startproc', '.cfi_endproc').  */
-/* { dg-final { check-function-bodies "**" "" "" { target lp64 } {^\t?\.} } } 
*/
+/* { dg-final { check-function-bodies "**" "*#" "" { target { lp64 && { ! 
*-*-darwin* } } } {^\t?\.} } } */
+/* { dg-final { check-function-bodies "*D" "*E" "" { target { lp64 && 
*-*-darwin* } } {^\t?\.} } } */
 
 /*
 **bar:
@@ -21,6 +21,26 @@
 **     cmpl    \$224, %eax
 **     jb      .L[0-9]+
 **...
+*#
+
+* Darwin caches the address of m in rax.
+*Dbar:
+*D...
+*DL[0-9]+:
+*D     movl    %edx, %ecx
+*D     addl    \$32, %edx
+*D     movq    %gs:\(%rax,%rcx\), %r10
+*D     movq    %gs:8\(%rax,%rcx\), %r9
+*D     movq    %gs:16\(%rax,%rcx\), %r8
+*D     movq    %gs:24\(%rax,%rcx\), %rsi
+*D     movq    %r10, \(%rdi,%rcx\)
+*D     movq    %r9, 8\(%rdi,%rcx\)
+*D     movq    %r8, 16\(%rdi,%rcx\)
+*D     movq    %rsi, 24\(%rdi,%rcx\)
+*D     cmpl    \$224, %edx
+*D     jb      L[0-9]+
+*D...
+*E
 */
 
 typedef unsigned long uword __attribute__ ((mode (word)));
diff --git a/gcc/testsuite/gcc.target/i386/pr122343-1a.c 
b/gcc/testsuite/gcc.target/i386/pr122343-1a.c
index 75dc2155ff4..907e2319a0d 100644
--- a/gcc/testsuite/gcc.target/i386/pr122343-1a.c
+++ b/gcc/testsuite/gcc.target/i386/pr122343-1a.c
@@ -3,7 +3,8 @@
 /* { dg-additional-options "-mregparm=1" { target ia32 } } */
 /* { dg-add-options check_function_bodies } */
 /* Keep labels and directives ('.cfi_startproc', '.cfi_endproc').  */
-/* { dg-final { check-function-bodies "**" "" "" { target *-*-* } {^\t?\.} } } 
*/
+/* { dg-final { check-function-bodies "**" "*#" "" { target { ! *-*-darwin* } 
} {^\t?\.} } } */
+/* { dg-final { check-function-bodies "*D" "*E" "" { target { *-*-darwin* && 
lp64 } } {^\t?\.} } } */
 
 /*
 **foo:
@@ -14,6 +15,16 @@
 **     ret
 **     .cfi_endproc
 **...
+*#
+
+* Darwin indirects the extern
+*Dfoo:
+*D     movq    _bar@GOTPCREL\(%rip\), %rdx
+*D     imull   \$123, %edi, %eax
+*D     addl    \(%rdx\), %eax
+*D     ret
+*D...
+*E
 */
 
 extern volatile int bar;
diff --git a/gcc/testsuite/gcc.target/i386/pr122343-1b.c 
b/gcc/testsuite/gcc.target/i386/pr122343-1b.c
index 56fbd2c7373..0fbe5f8bd9d 100644
--- a/gcc/testsuite/gcc.target/i386/pr122343-1b.c
+++ b/gcc/testsuite/gcc.target/i386/pr122343-1b.c
@@ -3,7 +3,8 @@
 /* { dg-additional-options "-mregparm=1" { target ia32 } } */
 /* { dg-add-options check_function_bodies } */
 /* Keep labels and directives ('.cfi_startproc', '.cfi_endproc').  */
-/* { dg-final { check-function-bodies "**" "" "" { target *-*-* } {^\t?\.} } } 
*/
+/* { dg-final { check-function-bodies "**" "*#" "" { target { ! *-*-darwin* } 
} {^\t?\.} } } */
+/* { dg-final { check-function-bodies "*D" "*E" "" { target { *-*-darwin* && 
lp64 } } {^\t?\.} } } */
 
 /*
 **foo:
@@ -15,6 +16,17 @@
 **     ret
 **     .cfi_endproc
 **...
+*#
+
+* Darwin indirects the extern
+*Dfoo:
+*D     movq    _bar@GOTPCREL\(%rip\), %rax
+*D     movl    \(%rax\), %edx
+*D     imull   \$123, %edi, %eax
+*D     addl    %edx, %eax
+*D     ret
+*D...
+*E
 */
 
 #include "pr122343-1a.c"
diff --git a/gcc/testsuite/gcc.target/i386/pr122343-2a.c 
b/gcc/testsuite/gcc.target/i386/pr122343-2a.c
index ed429d73557..6683b8e4a39 100644
--- a/gcc/testsuite/gcc.target/i386/pr122343-2a.c
+++ b/gcc/testsuite/gcc.target/i386/pr122343-2a.c
@@ -1,8 +1,8 @@
 /* { dg-do compile } */
 /* { dg-options "-O2 -fomit-frame-pointer" } */
 /* { dg-add-options check_function_bodies } */
-/* Keep labels and directives ('.cfi_startproc', '.cfi_endproc').  */
-/* { dg-final { check-function-bodies "**" "" "" { target *-*-* } {^\t?\.} } } 
*/
+/* { dg-final { check-function-bodies "**" "*#" "" { target { ! *-*-darwin* } 
} {^\t?\.} } } */
+/* { dg-final { check-function-bodies "*D" "*E" "" { target *-*-darwin* } 
{^\t?\.} } } */
 
 /*
 **foo:
@@ -13,6 +13,17 @@
 **     ret
 **     .cfi_endproc
 **...
+*#
+
+* Darwin indirects accesses to externs.
+*Dfoo:
+*D     movq    _bar1@GOTPCREL\(%rip\), %rax
+*D     movq    _bar2@GOTPCREL\(%rip\), %rdx
+*D     movl    \(%rax\), %eax
+*D     addl    \(%rdx\), %eax
+*D     ret
+*D...
+*E
 */
 
 extern volatile int bar1, bar2;
diff --git a/gcc/testsuite/gcc.target/i386/pr122343-2b.c 
b/gcc/testsuite/gcc.target/i386/pr122343-2b.c
index 34014a11d18..685cba7ebd8 100644
--- a/gcc/testsuite/gcc.target/i386/pr122343-2b.c
+++ b/gcc/testsuite/gcc.target/i386/pr122343-2b.c
@@ -1,8 +1,8 @@
 /* { dg-do compile } */
 /* { dg-options "-O2 -fomit-frame-pointer -fno-fuse-ops-with-volatile-access" 
} */
 /* { dg-add-options check_function_bodies } */
-/* Keep labels and directives ('.cfi_startproc', '.cfi_endproc').  */
-/* { dg-final { check-function-bodies "**" "" "" { target *-*-* } {^\t?\.} } } 
*/
+/* { dg-final { check-function-bodies "**" "*#" "" { target { ! *-*-darwin* } 
} {^\t?\.} } } */
+/* { dg-final { check-function-bodies "*D" "*E" "" { target *-*-darwin* } 
{^\t?\.} } } */
 
 /*
 **foo:
@@ -14,6 +14,18 @@
 **     ret
 **     .cfi_endproc
 **...
+*#
+*
+* Darwin indirects accesses to externs.
+*Dfoo:
+*D     movq    _bar1@GOTPCREL\(%rip\), %rax
+*D     movq    _bar2@GOTPCREL\(%rip\), %rdx
+*D     movl    \(%rax\), %eax
+*D     movl    \(%rdx\), %edx
+*D     addl    %edx, %eax
+*D     ret
+*D...
+*E
 */
 
 #include "pr122343-2a.c"
diff --git a/gcc/testsuite/gcc.target/i386/pr122343-3.c 
b/gcc/testsuite/gcc.target/i386/pr122343-3.c
index 7522159076d..d83873d8c7c 100644
--- a/gcc/testsuite/gcc.target/i386/pr122343-3.c
+++ b/gcc/testsuite/gcc.target/i386/pr122343-3.c
@@ -1,8 +1,8 @@
 /* { dg-do compile } */
 /* { dg-options "-O2 -fomit-frame-pointer" } */
 /* { dg-add-options check_function_bodies } */
-/* Keep labels and directives ('.cfi_startproc', '.cfi_endproc').  */
-/* { dg-final { check-function-bodies "**" "" "" { target *-*-* } {^\t?\.} } } 
*/
+/* { dg-final { check-function-bodies "**" "*#" "" { target { ! *-*-darwin* } 
} {^\t?\.} } } */
+/* { dg-final { check-function-bodies "*D" "*E" "" { target { *-*-darwin* && 
lp64 } } {^\t?\.} } } */
 
 /*
 **foo:
@@ -12,6 +12,15 @@
 **     ret
 **     .cfi_endproc
 **...
+*#
+
+* Darwin indirects the extern.
+*Dfoo:
+*D     movq    _bar@GOTPCREL\(%rip\), %rax
+*D     addl    \$123, \(%rax\)
+*D     ret
+*D...
+*E
 */
 
 extern volatile int bar;
diff --git a/gcc/testsuite/gcc.target/i386/pr122343-4a.c 
b/gcc/testsuite/gcc.target/i386/pr122343-4a.c
index 6c871627bcd..61dcd87c878 100644
--- a/gcc/testsuite/gcc.target/i386/pr122343-4a.c
+++ b/gcc/testsuite/gcc.target/i386/pr122343-4a.c
@@ -2,7 +2,8 @@
 /* { dg-options "-O2 -fomit-frame-pointer" } */
 /* { dg-add-options check_function_bodies } */
 /* Keep labels and directives ('.cfi_startproc', '.cfi_endproc').  */
-/* { dg-final { check-function-bodies "**" "" "" { target *-*-* } {^\t?\.} } } 
*/
+/* { dg-final { check-function-bodies "**" "*#" "" { target { ! *-*-darwin* } 
} {^\t?\.} } } */
+/* { dg-final { check-function-bodies "*D" "*E" "" { target { *-*-darwin* && 
lp64 } } {^\t?\.} } } */
 
 /*
 **foo:
@@ -18,6 +19,21 @@
 **     ret
 **     .cfi_endproc
 **...
+*#
+
+* Darwin indirects the extern.
+*Dfoo:
+*D     movq    _bar@GOTPCREL\(%rip\), %rdx
+*D     movl    \(%rdx\), %eax
+*D     movl    \(%rdx\), %eax
+*D...
+*D     barrier
+*D...
+*D     addl    \(%rdx\), %eax
+*D     subl    \(%rdx\), %eax
+*D     ret
+*D...
+*E
 */
 
 extern volatile int bar;
diff --git a/gcc/testsuite/gcc.target/i386/pr122343-4b.c 
b/gcc/testsuite/gcc.target/i386/pr122343-4b.c
index 4f020371e06..c153570f8a7 100644
--- a/gcc/testsuite/gcc.target/i386/pr122343-4b.c
+++ b/gcc/testsuite/gcc.target/i386/pr122343-4b.c
@@ -1,8 +1,8 @@
 /* { dg-do compile } */
 /* { dg-options "-O2 -fomit-frame-pointer -fno-fuse-ops-with-volatile-access" 
} */
 /* { dg-add-options check_function_bodies } */
-/* Keep labels and directives ('.cfi_startproc', '.cfi_endproc').  */
-/* { dg-final { check-function-bodies "**" "" "" { target *-*-* } {^\t?\.} } } 
*/
+/* { dg-final { check-function-bodies "**" "*#" "" { target { ! *-*-darwin* } 
} {^\t?\.} } } */
+/* { dg-final { check-function-bodies "*D" "*E" "" { target { *-*-darwin* && 
lp64 } } {^\t?\.} } } */
 
 /*
 **foo:
@@ -20,6 +20,23 @@
 **     ret
 **     .cfi_endproc
 **...
+*#
+
+* Darwin indirects extern accesses
+*Dfoo:
+*D     movq    _bar@GOTPCREL\(%rip\), %rdx
+*D     movl    \(%rdx\), %eax
+*D     movl    \(%rdx\), %eax
+*D...
+*D     barrier
+*D...
+*D     movl    \(%rdx\), %ecx
+*D     movl    \(%rdx\), %edx
+*D     addl    %ecx, %eax
+*D     subl    %edx, %eax
+*D     ret
+*D...
+*E
 */
 
 #include "pr122343-4a.c"
diff --git a/gcc/testsuite/gcc.target/i386/pr122343-5a.c 
b/gcc/testsuite/gcc.target/i386/pr122343-5a.c
index 01ce2007c13..62a081c8774 100644
--- a/gcc/testsuite/gcc.target/i386/pr122343-5a.c
+++ b/gcc/testsuite/gcc.target/i386/pr122343-5a.c
@@ -2,8 +2,8 @@
 /* { dg-options "-O2 -fomit-frame-pointer" } */
 /* { dg-additional-options "-mregparm=1" { target ia32 } } */
 /* { dg-add-options check_function_bodies } */
-/* Keep labels and directives ('.cfi_startproc', '.cfi_endproc').  */
-/* { dg-final { check-function-bodies "**" "" "" { target *-*-* } {^\t?\.} } } 
*/
+/* { dg-final { check-function-bodies "**" "*#" "" { target { ! *-*-darwin* } 
} {^\t?\.} } } */
+/* { dg-final { check-function-bodies "*D" "*E" "" { target { *-*-darwin* && 
lp64 } } {^\t?\.} } } */
 
 /*
 **foo:
@@ -14,6 +14,15 @@
 **     ret
 **     .cfi_endproc
 **...
+*#
+
+* Darwin indirects extern accesses
+*Dfoo:
+*D     movq    _bar@GOTPCREL\(%rip\), %rax
+*D     imull   \$123, %edi, %edi
+*D     addl    %edi, \(%rax\)
+*D     ret
+*E
 */
 
 extern volatile int bar;
diff --git a/gcc/testsuite/gcc.target/i386/pr122343-5b.c 
b/gcc/testsuite/gcc.target/i386/pr122343-5b.c
index ecfbe3f1df2..4a9329ccc77 100644
--- a/gcc/testsuite/gcc.target/i386/pr122343-5b.c
+++ b/gcc/testsuite/gcc.target/i386/pr122343-5b.c
@@ -2,8 +2,8 @@
 /* { dg-options "-O2 -fomit-frame-pointer -fno-fuse-ops-with-volatile-access" 
} */
 /* { dg-additional-options "-mregparm=1" { target ia32 } } */
 /* { dg-add-options check_function_bodies } */
-/* Keep labels and directives ('.cfi_startproc', '.cfi_endproc').  */
-/* { dg-final { check-function-bodies "**" "" "" { target *-*-* } {^\t?\.} } } 
*/
+/* { dg-final { check-function-bodies "**" "*#" "" { target { ! *-*-darwin* } 
} {^\t?\.} } } */
+/* { dg-final { check-function-bodies "*D" "*E" "" { target { *-*-darwin* && 
lp64 } } {^\t?\.} } } */
 
 /*
 **foo:
@@ -16,6 +16,18 @@
 **     ret
 **     .cfi_endproc
 **...
+*#
+
+* Darwin indirects extern accesses
+*Dfoo:
+*D     movq    _bar@GOTPCREL\(%rip\), %rax
+*D     imull   \$123, %edi, %edi
+*D     movl    \(%rax\), %edx
+*D     addl    %edx, %edi
+*D     movl    %edi, \(%rax\)
+*D     ret
+*D...
+*E
 */
 
 #include "pr122343-5a.c"
diff --git a/gcc/testsuite/gcc.target/i386/pr122343-6a.c 
b/gcc/testsuite/gcc.target/i386/pr122343-6a.c
index 843d053d77e..d64935b1b24 100644
--- a/gcc/testsuite/gcc.target/i386/pr122343-6a.c
+++ b/gcc/testsuite/gcc.target/i386/pr122343-6a.c
@@ -1,8 +1,8 @@
 /* { dg-do compile } */
 /* { dg-options "-O2 -fomit-frame-pointer" } */
 /* { dg-add-options check_function_bodies } */
-/* Keep labels and directives ('.cfi_startproc', '.cfi_endproc').  */
-/* { dg-final { check-function-bodies "**" "" "" { target { *-*-* } } {^\t?\.} 
} } */
+/* { dg-final { check-function-bodies "**" "*#" "" { target { ! *-*-darwin* } 
} {^\t?\.} } } */
+/* { dg-final { check-function-bodies "*D" "*E" "" { target { *-*-darwin* && 
lp64 } } {^\t?\.} } } */
 
 /*
 **foo:
@@ -21,6 +21,23 @@
 **     ret
 **     .cfi_endproc
 **...
+*#
+* Darwin indirects extern accesses
+*Dfoo:
+*D     movq    _bar@GOTPCREL\(%rip\), %rax
+*D     movl    \(%rax\), %edx
+*D     movl    \(%rax\), %edx
+*D     imull   \$123, %edx, %ecx
+*D     movl    %ecx, \(%rax\)
+*D...
+*D     barrier
+*D...
+*D     movl    \(%rax\), %ecx
+*D     addl    %ecx, %edx
+*D     subl    %edx, \(%rax\)
+*D     ret
+*D...
+*E
 */
 
 extern volatile int bar;
diff --git a/gcc/testsuite/gcc.target/i386/pr122343-6b.c 
b/gcc/testsuite/gcc.target/i386/pr122343-6b.c
index dbc79fd8517..05f182682c4 100644
--- a/gcc/testsuite/gcc.target/i386/pr122343-6b.c
+++ b/gcc/testsuite/gcc.target/i386/pr122343-6b.c
@@ -1,8 +1,8 @@
 /* { dg-do compile } */
 /* { dg-options "-O2 -fomit-frame-pointer -fno-fuse-ops-with-volatile-access" 
} */
 /* { dg-add-options check_function_bodies } */
-/* Keep labels and directives ('.cfi_startproc', '.cfi_endproc').  */
-/* { dg-final { check-function-bodies "**" "" "" { target *-*-* } {^\t?\.} } } 
*/
+/* { dg-final { check-function-bodies "**" "*#" "" { target { ! *-*-darwin* } 
} {^\t?\.} } } */
+/* { dg-final { check-function-bodies "*D" "*E" "" { target { *-*-darwin* && 
lp64 } } {^\t?\.} } } */
 
 /*
 **foo:
@@ -23,6 +23,25 @@
 **     ret
 **     .cfi_endproc
 **...
+*#
+* Darwin indirects extern accesses
+*Dfoo:
+*D     movq    _bar@GOTPCREL\(%rip\), %rax
+*D     movl    \(%rax\), %edx
+*D     movl    \(%rax\), %edx
+*D     imull   \$123, %edx, %ecx
+*D     movl    %ecx, \(%rax\)
+*D...
+*D     barrier
+*D...
+*D     movl    \(%rax\), %esi
+*D     movl    \(%rax\), %ecx
+*D     addl    %esi, %edx
+*D     subl    %edx, %ecx
+*D     movl    %ecx, \(%rax\)
+*D     ret
+*D...
+*E
 */
 
 #include "pr122343-6a.c"
diff --git a/gcc/testsuite/gcc.target/i386/pr122343-7.c 
b/gcc/testsuite/gcc.target/i386/pr122343-7.c
index 15c291801bb..dca23997a25 100644
--- a/gcc/testsuite/gcc.target/i386/pr122343-7.c
+++ b/gcc/testsuite/gcc.target/i386/pr122343-7.c
@@ -1,8 +1,8 @@
 /* { dg-do compile } */
 /* { dg-options "-O2 -fomit-frame-pointer" } */
 /* { dg-add-options check_function_bodies } */
-/* Keep labels and directives ('.cfi_startproc', '.cfi_endproc').  */
-/* { dg-final { check-function-bodies "**" "" "" { target *-*-* } {^\t?\.} } } 
*/
+/* { dg-final { check-function-bodies "**" "*#" "" { target { ! *-*-darwin* } 
} {^\t?\.} } } */
+/* { dg-final { check-function-bodies "*D" "*E" "" { target { *-*-darwin* && 
lp64 } } {^\t?\.} } } */
 
 /*
 **test:
@@ -16,6 +16,18 @@
 **     ret
 **     .cfi_endproc
 **...
+*#
+
+*Dtest:
+*D     movq    _u8@GOTPCREL\(%rip\), %rax
+*D     movzbl  \(%rax\), %edx
+*D     addb    %dl, \(%rax\)
+*D     movzbl  \(%rax\), %edx
+*D     subb    \(%rax\), %dl
+*D     movb    %dl, \(%rax\)
+*D     ret
+*D...
+*E
 */
 
 extern volatile unsigned char u8;
diff --git a/gcc/testsuite/gcc.target/i386/pr122675-1.c 
b/gcc/testsuite/gcc.target/i386/pr122675-1.c
index 0da288a6584..0d89d0dab3f 100644
--- a/gcc/testsuite/gcc.target/i386/pr122675-1.c
+++ b/gcc/testsuite/gcc.target/i386/pr122675-1.c
@@ -13,7 +13,7 @@
 **     je      .L[0-9]*
 **     subq    \$[0-9]*, %rsp
 **     .cfi_def_cfa_offset [0-9]*
-**     call    f1
+**     call    _?f1
 **     addq    \$[0-9]*, %rsp
 **     .cfi_def_cfa_offset [0-9]*
 **     ret
diff --git a/gcc/testsuite/gcc.target/i386/pr125351.c 
b/gcc/testsuite/gcc.target/i386/pr125351.c
index f21adcae44a..95081b864f2 100644
--- a/gcc/testsuite/gcc.target/i386/pr125351.c
+++ b/gcc/testsuite/gcc.target/i386/pr125351.c
@@ -1,3 +1,4 @@
 /* { dg-do compile } */
 /* { dg-options "-mptwrite -masm=intel" } */
+/* { dg-skip-if "no intel asm" *-*-darwin* "" "" } */
 void foo() { __builtin_ia32_ptwrite32(0); }
diff --git a/gcc/testsuite/gcc.target/i386/pr125355-2.c 
b/gcc/testsuite/gcc.target/i386/pr125355-2.c
index b198c7debc8..e34ff07af7b 100644
--- a/gcc/testsuite/gcc.target/i386/pr125355-2.c
+++ b/gcc/testsuite/gcc.target/i386/pr125355-2.c
@@ -7,8 +7,8 @@
 /*
 **foo.cold:
 **...
-**     call    memmove
-**     call    abort
+**     call    _?memmove
+**     call    _?abort
 **     .cfi_endproc
 **...
 */
diff --git a/gcc/testsuite/gcc.target/i386/pr125355.c 
b/gcc/testsuite/gcc.target/i386/pr125355.c
index 4290cfc56f9..9189bffbd04 100644
--- a/gcc/testsuite/gcc.target/i386/pr125355.c
+++ b/gcc/testsuite/gcc.target/i386/pr125355.c
@@ -8,7 +8,7 @@
 **foo:
 **.LFB0:
 **     .cfi_startproc
-**     jmp     memmove
+**     jmp     _?memmove
 **     .cfi_endproc
 **...
 */
diff --git a/gcc/testsuite/gcc.target/i386/pr92080-17.c 
b/gcc/testsuite/gcc.target/i386/pr92080-17.c
index 5b2594bc179..21acad2cc4b 100644
--- a/gcc/testsuite/gcc.target/i386/pr92080-17.c
+++ b/gcc/testsuite/gcc.target/i386/pr92080-17.c
@@ -1,8 +1,8 @@
 /* { dg-do compile } */
 /* { dg-options "-O2 -march=x86-64-v3" } */
 /* { dg-add-options check_function_bodies } */
-/* Keep labels and directives ('.cfi_startproc', '.cfi_endproc').  */
-/* { dg-final { check-function-bodies "**" "" "" { target { ! ia32 } } 
{^\t?\.}  } } */
+/* { dg-final { check-function-bodies "**" "*#" "" { target { { ! ia32 } && { 
! *-*-darwin* } } } {^\t?\.} } } */
+/* { dg-final { check-function-bodies "*D" "*E" "" { target { lp64 && 
*-*-darwin* } } {^\t?\.} } } */
 
 /*
 **foo:
@@ -13,6 +13,18 @@
 **     vmovdqu %xmm0, cost2\(%rip\)
 **     ret
 **...
+*#
+
+*Dfoo:
+*D     movq    _cost@GOTPCREL\(%rip\), %rax
+*D     vpbroadcastw    \(%rax\), %xmm0
+*D     movq    _cost1@GOTPCREL\(%rip\), %rax
+*D     vmovq   %xmm0, \(%rax\)
+*D     movq    _cost2@GOTPCREL\(%rip\), %rax
+*D     vmovdqu %xmm0, \(%rax\)
+*D     ret
+*D...
+*E
 */
 
 extern struct {
diff --git a/gcc/testsuite/gcc.target/i386/prefetchi-1.c 
b/gcc/testsuite/gcc.target/i386/prefetchi-1.c
index 03dfdc55e86..e63f25530e1 100644
--- a/gcc/testsuite/gcc.target/i386/prefetchi-1.c
+++ b/gcc/testsuite/gcc.target/i386/prefetchi-1.c
@@ -1,7 +1,7 @@
 /* { dg-do compile { target { ! ia32 } } } */
 /* { dg-options "-mprefetchi -O2" } */
-/* { dg-final { scan-assembler-times "\[ \\t\]+prefetchit0\[ 
\\t\]+bar\\(%rip\\)" 2 } } */
-/* { dg-final { scan-assembler-times "\[ \\t\]+prefetchit1\[ 
\\t\]+bar\\(%rip\\)" 2 } } */
+/* { dg-final { scan-assembler-times "\[ \\t\]+prefetchit0\[ 
\\t\]+_?bar\\(%rip\\)" 2 } } */
+/* { dg-final { scan-assembler-times "\[ \\t\]+prefetchit1\[ 
\\t\]+_?bar\\(%rip\\)" 2 } } */
 
 #include <x86intrin.h>
 
diff --git a/gcc/testsuite/gcc.target/i386/prefetchi-1b.c 
b/gcc/testsuite/gcc.target/i386/prefetchi-1b.c
index 93139554d3c..832c0240bb2 100644
--- a/gcc/testsuite/gcc.target/i386/prefetchi-1b.c
+++ b/gcc/testsuite/gcc.target/i386/prefetchi-1b.c
@@ -1,7 +1,7 @@
 /* { dg-do compile { target { ! ia32 } } } */
 /* { dg-options "-mprefetchi -O0" } */
-/* { dg-final { scan-assembler-times "\[ \\t\]+prefetchit0\[ 
\\t\]+bar\\(%rip\\)" 1 } } */
-/* { dg-final { scan-assembler-times "\[ \\t\]+prefetchit1\[ 
\\t\]+bar\\(%rip\\)" 1 } } */
+/* { dg-final { scan-assembler-times "\[ \\t\]+prefetchit0\[ 
\\t\]+_?bar\\(%rip\\)" 1 } } */
+/* { dg-final { scan-assembler-times "\[ \\t\]+prefetchit1\[ 
\\t\]+_?bar\\(%rip\\)" 1 } } */
 
 #include <x86intrin.h>
 
-- 
2.50.1 (Apple Git-155)

Reply via email to