8165565: Shorten branches causes incorrect code for SKX
Summary: don't replace restoreMask CountedLoopEnd with short branches.
Reviewed-by: kvn
--- a/hotspot/src/share/vm/adlc/formssel.cpp Tue Sep 06 09:59:25 2016 -0700
+++ b/hotspot/src/share/vm/adlc/formssel.cpp Wed Sep 07 12:23:25 2016 -0700
@@ -1245,6 +1245,7 @@
this != short_branch && // Don't match myself
!is_short_branch() && // Don't match another short branch variant
reduce_result() != NULL &&
+ strstr(_ident, "restoreMask") == NULL && // Don't match side effects
strcmp(reduce_result(), short_branch->reduce_result()) == 0 &&
_matrule->equivalent(AD.globalNames(), short_branch->_matrule)) {
// The instructions are equivalent.