<html><head><meta http-equiv="Content-Type" content="text/html charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""><br class=""><div><blockquote type="cite" class=""><div class="">On 6 Jan 2016, at 11:12, Paul Sandoz <<a href="mailto:Paul.Sandoz@oracle.com" class="">Paul.Sandoz@oracle.com</a>> wrote:</div></blockquote><div><br class=""></div><div><blockquote type="cite" class=""><div class="">At least for this set of tests the results indicate conditional moves offer no major advantage over branching. For the worst case branching scenario (the “50 cent” case) conditional moves appear marginally better, but as you say the data pattern is likely rare.</div></blockquote><div class=""><div class=""><br class=""></div></div><div class="">Scrap that, cmoves are kicking for "A.forTest_if     0.5  RANDOM_RAMP_UP"</div></div></div><div><br class=""></div><div>Disabling them with -XX:ConditionalMoveLimit==0 (thanks Roland), muddies the waters a bit:</div><div><pre style="background-color: rgb(255, 255, 255); font-family: Menlo; font-size: 9pt;" class=""><pre style="font-family: Menlo; font-size: 9pt;" class=""><span style="color:#808080;font-style:italic;" class=""># VM options: -XX:-TieredCompilation<br class=""></span><span style="color:#808080;font-style:italic;" class="">Benchmark     (bias)            (dg)  (size)  Mode  Cnt     Score     Error  Units<br class=""></span><span style="color:#808080;font-style:italic;" class="">A.forTest_if     0.1  RANDOM_RAMP_UP       1  avgt    5     3.535 ±   0.083  ns/op<br class=""></span><span style="color:#808080;font-style:italic;" class="">A.forTest_if     0.1  RANDOM_RAMP_UP      10  avgt    5     7.478 ±   0.232  ns/op<br class=""></span><span style="color:#808080;font-style:italic;" class="">A.forTest_if     0.1  RANDOM_RAMP_UP     100  avgt    5    42.348 ±   0.922  ns/op<br class=""></span><span style="color:#808080;font-style:italic;" class="">A.forTest_if     0.1  RANDOM_RAMP_UP    1000  avgt    5   460.924 ±  12.692  ns/op<br class=""></span><span style="color:#808080;font-style:italic;" class="">A.forTest_if     0.1  RANDOM_RAMP_UP   10000  avgt    5  3708.576 ± 110.138  ns/op<br class=""></span><span style="color:#808080;font-style:italic;" class="">A.forTest_if     0.5  RANDOM_RAMP_UP       1  avgt    5     3.557 ±   0.172  ns/op<br class=""></span><span style="color:#808080;font-style:italic;" class="">A.forTest_if     0.5  RANDOM_RAMP_UP      10  avgt    5     9.860 ±   0.135  ns/op<br class=""></span><span style="color:#808080;font-style:italic;" class="">A.forTest_if     0.5  RANDOM_RAMP_UP     100  avgt    5    82.380 ±   1.971  ns/op<br class=""></span><span style="color:#808080;font-style:italic;" class="">A.forTest_if     0.5  RANDOM_RAMP_UP    1000  avgt    5   832.391 ±  23.629  ns/op<br class=""></span><span style="color:#808080;font-style:italic;" class="">A.forTest_if     0.5  RANDOM_RAMP_UP   10000  avgt    5  8325.406 ± 206.872  ns/op<br class=""></span><span style="color:#808080;font-style:italic;" class=""><br class=""></span><span style="color:#808080;font-style:italic;" class=""><br class=""></span><span style="color:#808080;font-style:italic;" class=""># VM options: -XX:ConditionalMoveLimit=0 -XX:-TieredCompilation<br class=""></span><span style="color:#808080;font-style:italic;" class="">Benchmark     (bias)            (dg)  (size)  Mode  Cnt      Score     Error  Units<br class=""></span><span style="color:#808080;font-style:italic;" class="">A.forTest_if     0.1  RANDOM_RAMP_UP       1  avgt    5      3.554 ±   0.049  ns/op<br class=""></span><span style="color:#808080;font-style:italic;" class="">A.forTest_if     0.1  RANDOM_RAMP_UP      10  avgt    5      9.382 ±   0.062  ns/op<br class=""></span><span style="color:#808080;font-style:italic;" class="">A.forTest_if     0.1  RANDOM_RAMP_UP     100  avgt    5     37.483 ±   0.696  ns/op<br class=""></span><span style="color:#808080;font-style:italic;" class="">A.forTest_if     0.1  RANDOM_RAMP_UP    1000  avgt    5    369.375 ±   9.780  ns/op<br class=""></span><span style="color:#808080;font-style:italic;" class="">A.forTest_if     0.1  RANDOM_RAMP_UP   10000  avgt    5   3712.492 ± 128.310  ns/op<br class=""></span><span style="color:#808080;font-style:italic;" class="">A.forTest_if     0.5  RANDOM_RAMP_UP       1  avgt    5      3.546 ±   0.053  ns/op<br class=""></span><span style="color:#808080;font-style:italic;" class="">A.forTest_if     0.5  RANDOM_RAMP_UP      10  avgt    5      7.488 ±   0.118  ns/op<br class=""></span><span style="color:#808080;font-style:italic;" class="">A.forTest_if     0.5  RANDOM_RAMP_UP     100  avgt    5     52.889 ±   5.328  ns/op<br class=""></span><span style="color:#808080;font-style:italic;" class="">A.forTest_if     0.5  RANDOM_RAMP_UP    1000  avgt    5    447.437 ±  14.273  ns/op<br class=""></span><span style="color:#808080;font-style:italic;" class="">A.forTest_if     0.5  RANDOM_RAMP_UP   10000  avgt    5  10040.920 ± 993.644  ns/op</span></pre></pre></div><div><div class="">Paul.</div></div></body></html>