http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59379

--- Comment #4 from H.J. Lu <hjl.tools at gmail dot com> ---
Created attachment 31372
  --> http://gcc.gnu.org/bugzilla/attachment.cgi?id=31372&action=edit
A testcase

The outputs from stage 2 and stage 3 cc1 are different:

[hjl@gnu-mic-2 pr59379]$ make
/export/build/gnu/gcc-lto-fdo/build-x86_64-linux/gcc/xgcc
-B/export/build/gnu/gcc-lto-fdo/build-x86_64-linux/gcc/
-ftls-model=initial-exec -fPIC -O2 -S test.c
/export/build/gnu/gcc-lto-fdo/build-x86_64-linux/prev-gcc/xgcc
-B/export/build/gnu/gcc-lto-fdo/build-x86_64-linux/prev-gcc/
-ftls-model=initial-exec -fPIC -O2 -S -o good.s test.c
diff -up test.s good.s
--- test.s    2013-12-03 16:38:50.413067359 -0800
+++ good.s    2013-12-03 16:38:50.473066316 -0800
@@ -27,7 +27,7 @@ gomp_init_num_threads:
     movq    %rdi, gomp_cpuset_size(%rip)
     call    gomp_malloc@PLT
     .p2align 4,,15
-.L24:
+.L27:
     movq    %rax, gomp_cpusetp(%rip)
     movq    %rax, %rbx
 .L2:
@@ -40,9 +40,9 @@ gomp_init_num_threads:
     xorl    %eax, %eax
     call    pthread_getaffinity_np@PLT
     testl    %eax, %eax
-    je    .L27
+    je    .L30
     cmpl    $22, %eax
-    jne    .L25
+    jne    .L28
     movq    gomp_cpuset_size(%rip), %rsi
     cmpq    $127, %rsi
     ja    .L10
@@ -64,8 +64,8 @@ gomp_init_num_threads:
     movq    gomp_cpusetp(%rip), %rdi
     call    realloc@PLT
     testq    %rax, %rax
-    jne    .L24
-.L25:
+    jne    .L27
+.L28:
     movq    gomp_global_icv@GOTPCREL(%rip), %rbx
 .L4:
     movq    gomp_cpusetp(%rip), %rdi
@@ -88,7 +88,7 @@ gomp_init_num_threads:
     ret
     .p2align 4,,7
     .p2align 3
-.L27:
+.L30:
     .cfi_restore_state
     movq    gomp_cpusetp(%rip), %rsi
     movq    gomp_cpuset_size(%rip), %rdi
@@ -98,35 +98,31 @@ gomp_init_num_threads:
     testq    %rax, %rax
     movq    %rax, (%rbx)
     je    .L4
-    movq    gomp_cpuset_size(%rip), %rdi
-    movq    %rdi, gomp_get_cpuset_size(%rip)
-    salq    $3, %rdi
+    movq    gomp_cpuset_size(%rip), %rsi
+    movq    %rsi, gomp_get_cpuset_size(%rip)
+    salq    $3, %rsi
     je    .L14
-    movq    %rdi, %r8
-    movq    %rdi, %rsi
-    movq    gomp_cpusetp(%rip), %r9
-    negq    %r8
-    salq    $32, %r8
-    jmp    .L6
+    movq    gomp_cpusetp(%rip), %rdi
+    movq    %rsi, %rdx
+    jmp    .L8
     .p2align 4,,7
     .p2align 3
-.L8:
-    testq    %rdx, %rdx
-    je    .L5
 .L7:
-    movq    %rcx, %rsi
+    testq    %rcx, %rcx
+    je    .L5
 .L6:
-    leaq    -1(%rsi), %rcx
-    leaq    (%rcx,%r8), %rdx
-    cmpq    %rdx, %rdi
-    jbe    .L7
+    movq    %rcx, %rdx
+.L8:
+    leaq    -1(%rdx), %rcx
+    cmpq    %rcx, %rsi
+    jbe    .L6
     movq    %rcx, %rax
     shrq    $6, %rax
-    movq    (%r9,%rax,8), %rax
+    movq    (%rdi,%rax,8), %rax
     shrq    %cl, %rax
     andl    $1, %eax
-    je    .L8
-    leaq    63(%rsi), %rax
+    je    .L7
+    leaq    63(%rdx), %rax
     shrq    $6, %rax
     salq    $3, %rax
 .L5:
make: *** [all] Error 1

Reply via email to