On Sat, Jun 6, 2026 at 11:37 AM Iain Sandoe <[email protected]> wrote:
>
> 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.

Is this patch still needed if so then the patch is ok.

>
> 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