<html><head><meta http-equiv="Content-Type" content="text/html charset=iso-8859-1"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;">Hi Ulrich, <div><br></div><div>Thanks for looking at this failure.  Does the IR look correct ?  This test passes on other targets, so I suspect that the change perturbed the IR and exposed a bug in the PPC target. Does that sound right ?  One way to debug this would be to disable the machine-level pass that optimizes stack slots and to see if there is a problem there.  Please let me know if I can help. BTW, there is also a failure in the GDB build bot that I am now trying to figure out. </div><div><br></div><div>Thanks,</div><div>Nadav</div><div><br><div><div>On Mar 25, 2013, at 11:10 AM, Ulrich Weigand <<a href="mailto:Ulrich.Weigand@de.ibm.com">Ulrich.Weigand@de.ibm.com</a>> wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite"><div style="letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;"><br>Nadav,<br><br>this commit causes a testsuite failure in<br>SingleSource/UnitTests/Vector/sumarray-dbl on powerpc64-linux.   The test<br>case is supposed to output:<br>488862 490096 491331 492566 493800 495035 496269 497504<br>but after this commit it outputs instead:<br>497504 496269 495035 493800 492566 491331 490096 488862<br>so the order of the output number is exactly reversed.<br><br>Looking at the differences in the generated .ll files, it seems that there<br>is actually no change in computing the values, it's simply that when<br>generating the printf call, the order of arguments is inverted:<br><br>for.end9:                                         ; preds = %for.body4<br>-  %sumV.sroa.0.0.vec.extract = extractelement <8 x double> %add, i32 0<br>-  %sumV.sroa.0.8.vec.extract = extractelement <8 x double> %add, i32 1<br>-  %sumV.sroa.0.16.vec.extract = extractelement <8 x double> %add, i32 2<br>-  %sumV.sroa.0.24.vec.extract = extractelement <8 x double> %add, i32 3<br>-  %sumV.sroa.0.32.vec.extract = extractelement <8 x double> %add, i32 4<br>-  %sumV.sroa.0.40.vec.extract = extractelement <8 x double> %add, i32 5<br>-  %sumV.sroa.0.48.vec.extract = extractelement <8 x double> %add, i32 6<br>-  %sumV.sroa.0.56.vec.extract = extractelement <8 x double> %add, i32 7<br>-  %call.i = tail call signext i32 (i8*, ...)* @printf(i8* getelementptr<br>inbounds ([25 x i8]* @.str, i64 0, i64 0), double<br>%sumV.sroa.0.0.vec.extract, double %sumV.s<br>roa.0.8.vec.extract, double %sumV.sroa.0.16.vec.extract, double<br>%sumV.sroa.0.24.vec.extract, double %sumV.sroa.0.32.vec.extract, double<br>%sumV.sroa.0.40.vec.extract,<br>double %sumV.sroa.0.48.vec.extract, double %sumV.sroa.0.56.vec.extract) #1<br>+  %bitcast = extractelement <8 x double> %add, i32 7<br>+  %11 = extractelement <8 x double> %add, i32 6<br>+  %12 = extractelement <8 x double> %add, i32 5<br>+  %13 = extractelement <8 x double> %add, i32 4<br>+  %14 = extractelement <8 x double> %add, i32 3<br>+  %15 = extractelement <8 x double> %add, i32 2<br>+  %16 = extractelement <8 x double> %add, i32 1<br>+  %17 = extractelement <8 x double> %add, i32 0<br>+  %call.i = call signext i32 (i8*, ...)* @printf(i8* getelementptr<br>inbounds ([25 x i8]* @.str, i64 0, i64 0), double %bitcast, double %11,<br>double %12, double %13, d<br>ouble %14, double %15, double %16, double %17) #1<br>  ret i32 0<br><br>Any thoughts what's going on here?<br><br><br>Mit freundlichen Gruessen / Best Regards<br><br>Ulrich Weigand<br><br>--<br> Dr. Ulrich Weigand | Phone: +49-7031/16-3727<br> STSM, GNU/Linux compilers and toolchain<br> IBM Deutschland Research & Development GmbH<br> Vorsitzende des Aufsichtsrats: Martina Koederitz | Geschäftsführung: Dirk<br>Wittkopp<br> Sitz der Gesellschaft: Böblingen | Registergericht: Amtsgericht<br>Stuttgart, HRB 243294</div></blockquote></div><br></div></body></html>