ICU-11331 Merged #11388(r36781) the CollationFastLatinBuilder bug fix from trunk.

X-SVN-Rev: 36799
diff --git a/main/classes/collate/src/com/ibm/icu/impl/coll/CollationFastLatinBuilder.java b/main/classes/collate/src/com/ibm/icu/impl/coll/CollationFastLatinBuilder.java
index 7891da0..8b31ccc 100644
--- a/main/classes/collate/src/com/ibm/icu/impl/coll/CollationFastLatinBuilder.java
+++ b/main/classes/collate/src/com/ibm/icu/impl/coll/CollationFastLatinBuilder.java
@@ -590,7 +590,7 @@
                 int miniCE = encodeTwoCEs(cce0, cce1);
                 if(miniCE == CollationFastLatin.BAIL_OUT) {
                     result.append((char)(x | (1 << CollationFastLatin.CONTR_LENGTH_SHIFT)));
-                } else if(miniCE <= 0xffff) {
+                } else if((miniCE >>> 16) == 0) {  // if ((unsigned)miniCE <= 0xffff)
                     result.append((char)(x | (2 << CollationFastLatin.CONTR_LENGTH_SHIFT)));
                     result.append((char)miniCE);
                 } else {
diff --git a/main/tests/collate/src/com/ibm/icu/dev/data/collationtest.txt b/main/tests/collate/src/com/ibm/icu/dev/data/collationtest.txt
index d55f531..e4a023b 100644
--- a/main/tests/collate/src/com/ibm/icu/dev/data/collationtest.txt
+++ b/main/tests/collate/src/com/ibm/icu/dev/data/collationtest.txt
@@ -2464,3 +2464,15 @@
 <1 4
 <1 L
 <1 Ω
+
+** test: regression test for CollationFastLatinBuilder, ICU ticket 11388
+@ rules
+&x<<aa<<<Aa<<<AA
+% strength=secondary
+* compare
+<1 AA
+<2 Aẩ
+<2 aą
+* compare
+<1 AA
+<2 aą