------- Comment #4 from dominiq at lps dot ens dot fr 2010-04-10 16:42 -------
Created an attachment (id=20357)
--> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=20357&action=view)
Miscompiled assembly for subroutine S3302
The diff between the working (-) and miscompiled (+) assembly files is
--- s33022_w.s 2010-04-10 13:04:09.000000000 +0200
+++ s33022_n.s 2010-04-10 13:04:31.000000000 +0200
@@ -311,13 +311,13 @@ L28:
movsd -144(%rbp), %xmm3
mulsd %xmm9, %xmm1
mulsd %xmm4, %xmm3
- subsd -144(%rbp), %xmm14
+ subsd -136(%rbp), %xmm14
movsd -136(%rbp), %xmm9
divsd %xmm10, %xmm1
subsd %xmm2, %xmm9
addsd LC18(%rip), %xmm14
movsd %xmm9, -104(%rbp)
- subsd -136(%rbp), %xmm14
+ subsd -144(%rbp), %xmm14
movsd (%r8), %xmm10
movsd %xmm10, -216(%rbp)
mulsd %xmm7, %xmm10
@@ -454,16 +454,13 @@ L28:
movsd -88(%rbp), %xmm6
mulsd %xmm4, %xmm3
mulsd %xmm2, %xmm6
- xorpd LC12(%rip), %xmm12
+ mulsd -232(%rbp), %xmm15
addsd -200(%rbp), %xmm14
mulsd %xmm9, %xmm3
- mulsd -232(%rbp), %xmm15
- subsd -216(%rbp), %xmm12
movsd %xmm3, -456(%rbp)
movapd %xmm13, %xmm3
mulsd %xmm1, %xmm14
addsd %xmm13, %xmm3
- mulsd -80(%rbp), %xmm12
addsd %xmm6, %xmm3
movsd -120(%rbp), %xmm6
addsd %xmm6, %xmm6
@@ -495,13 +492,17 @@ L28:
mulsd -112(%rbp), %xmm14
mulsd %xmm0, %xmm3
addsd %xmm3, %xmm15
- movsd -144(%rbp), %xmm3
- subsd -120(%rbp), %xmm3
- subsd %xmm12, %xmm15
+ movsd -216(%rbp), %xmm3
+ xorpd LC12(%rip), %xmm3
+ subsd %xmm12, %xmm3
movsd -136(%rbp), %xmm12
subsd -120(%rbp), %xmm12
- mulsd %xmm8, %xmm3
+ mulsd -80(%rbp), %xmm3
mulsd -96(%rbp), %xmm12
+ subsd %xmm3, %xmm15
+ movsd -144(%rbp), %xmm3
+ subsd -120(%rbp), %xmm3
+ mulsd %xmm8, %xmm3
addsd %xmm12, %xmm3
movapd %xmm4, %xmm12
mulsd %xmm0, %xmm12
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43716