Changes to support making the shift instructions be true BinaryOperators.
This feature is needed in order to support shifts of more than 255 bits
on large integer types.  This changes the syntax for llvm assembly to
make shl, ashr and lshr instructions look like a binary operator:
   shl i32 %X, 1
instead of
   shl i32 %X, i8 1
Additionally, this should help a few passes perform additional optimizations.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33776 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/tools/llvm-upgrade/UpgradeParser.cpp.cvs b/tools/llvm-upgrade/UpgradeParser.cpp.cvs
index 515d2d6..e289939 100644
--- a/tools/llvm-upgrade/UpgradeParser.cpp.cvs
+++ b/tools/llvm-upgrade/UpgradeParser.cpp.cvs
@@ -154,26 +154,26 @@
      AND = 345,
      OR = 346,
      XOR = 347,
-     SETLE = 348,
-     SETGE = 349,
-     SETLT = 350,
-     SETGT = 351,
-     SETEQ = 352,
-     SETNE = 353,
-     ICMP = 354,
-     FCMP = 355,
-     MALLOC = 356,
-     ALLOCA = 357,
-     FREE = 358,
-     LOAD = 359,
-     STORE = 360,
-     GETELEMENTPTR = 361,
-     PHI_TOK = 362,
-     SELECT = 363,
-     SHL = 364,
-     SHR = 365,
-     ASHR = 366,
-     LSHR = 367,
+     SHL = 348,
+     SHR = 349,
+     ASHR = 350,
+     LSHR = 351,
+     SETLE = 352,
+     SETGE = 353,
+     SETLT = 354,
+     SETGT = 355,
+     SETEQ = 356,
+     SETNE = 357,
+     ICMP = 358,
+     FCMP = 359,
+     MALLOC = 360,
+     ALLOCA = 361,
+     FREE = 362,
+     LOAD = 363,
+     STORE = 364,
+     GETELEMENTPTR = 365,
+     PHI_TOK = 366,
+     SELECT = 367,
      VAARG = 368,
      EXTRACTELEMENT = 369,
      INSERTELEMENT = 370,
@@ -306,26 +306,26 @@
 #define AND 345
 #define OR 346
 #define XOR 347
-#define SETLE 348
-#define SETGE 349
-#define SETLT 350
-#define SETGT 351
-#define SETEQ 352
-#define SETNE 353
-#define ICMP 354
-#define FCMP 355
-#define MALLOC 356
-#define ALLOCA 357
-#define FREE 358
-#define LOAD 359
-#define STORE 360
-#define GETELEMENTPTR 361
-#define PHI_TOK 362
-#define SELECT 363
-#define SHL 364
-#define SHR 365
-#define ASHR 366
-#define LSHR 367
+#define SHL 348
+#define SHR 349
+#define ASHR 350
+#define LSHR 351
+#define SETLE 352
+#define SETGE 353
+#define SETLT 354
+#define SETGT 355
+#define SETEQ 356
+#define SETNE 357
+#define ICMP 358
+#define FCMP 359
+#define MALLOC 360
+#define ALLOCA 361
+#define FREE 362
+#define LOAD 363
+#define STORE 364
+#define GETELEMENTPTR 365
+#define PHI_TOK 366
+#define SELECT 367
 #define VAARG 368
 #define EXTRACTELEMENT 369
 #define INSERTELEMENT 370
@@ -370,7 +370,7 @@
 
 
 /* Copy the first part of user declarations.  */
-#line 14 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 14 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
 
 #include "UpgradeInternals.h"
 #include "llvm/CallingConv.h"
@@ -1368,6 +1368,13 @@
     case URemOp : return Instruction::URem;
     case SRemOp : return Instruction::SRem;
     case FRemOp : return Instruction::FRem;
+    case LShrOp : return Instruction::LShr;
+    case AShrOp : return Instruction::AShr;
+    case ShlOp  : return Instruction::Shl;
+    case ShrOp  : 
+      if (Sign == Signed)
+        return Instruction::AShr;
+      return Instruction::LShr;
     case AndOp  : return Instruction::And;
     case OrOp   : return Instruction::Or;
     case XorOp  : return Instruction::Xor;
@@ -1462,11 +1469,6 @@
     default               : assert(0 && "Invalid OldOtherOps");
     case PHIOp            : return Instruction::PHI;
     case CallOp           : return Instruction::Call;
-    case ShlOp            : return Instruction::Shl;
-    case ShrOp            : 
-      if (Sign == Signed)
-        return Instruction::AShr;
-      return Instruction::LShr;
     case SelectOp         : return Instruction::Select;
     case UserOp1          : return Instruction::UserOp1;
     case UserOp2          : return Instruction::UserOp2;
@@ -1476,8 +1478,6 @@
     case ShuffleVectorOp  : return Instruction::ShuffleVector;
     case ICmpOp           : return Instruction::ICmp;
     case FCmpOp           : return Instruction::FCmp;
-    case LShrOp           : return Instruction::LShr;
-    case AShrOp           : return Instruction::AShr;
   };
 }
 
@@ -1553,7 +1553,6 @@
       error("Invalid prototype for " + Name + " prototype");
     return new FCmpInst(FCmpInst::FCMP_UNO, Args[0], Args[1]);
   } else {
-    static unsigned upgradeCount = 1;
     const Type* PtrTy = PointerType::get(Type::Int8Ty);
     std::vector<const Type*> Params;
     if (Name == "llvm.va_start" || Name == "llvm.va_end") {
@@ -1563,9 +1562,7 @@
       const FunctionType *FTy = FunctionType::get(Type::VoidTy, Params, false);
       const PointerType *PFTy = PointerType::get(FTy);
       Value* Func = getVal(PFTy, ID);
-      std::string InstName("va_upgrade");
-      InstName += llvm::utostr(upgradeCount++);
-      Args[0] = new BitCastInst(Args[0], PtrTy, InstName, CurBB);
+      Args[0] = new BitCastInst(Args[0], PtrTy, makeNameUnique("va"), CurBB);
       return new CallInst(Func, Args);
     } else if (Name == "llvm.va_copy") {
       if (Args.size() != 2)
@@ -1575,10 +1572,8 @@
       const FunctionType *FTy = FunctionType::get(Type::VoidTy, Params, false);
       const PointerType *PFTy = PointerType::get(FTy);
       Value* Func = getVal(PFTy, ID);
-      std::string InstName0("va_upgrade");
-      InstName0 += llvm::utostr(upgradeCount++);
-      std::string InstName1("va_upgrade");
-      InstName1 += llvm::utostr(upgradeCount++);
+      std::string InstName0(makeNameUnique("va0"));
+      std::string InstName1(makeNameUnique("va1"));
       Args[0] = new BitCastInst(Args[0], PtrTy, InstName0, CurBB);
       Args[1] = new BitCastInst(Args[1], PtrTy, InstName1, CurBB);
       return new CallInst(Func, Args);
@@ -1623,7 +1618,7 @@
               cast<Constant>(Index), Type::Int64Ty);
           else
             Index = CastInst::create(Instruction::ZExt, Index, Type::Int64Ty,
-              makeNameUnique("gep_upgrade"), CurBB);
+              makeNameUnique("gep"), CurBB);
           VIndices[i] = Index;
         }
     }
@@ -1816,7 +1811,7 @@
 #endif
 
 #if ! defined (YYSTYPE) && ! defined (YYSTYPE_IS_DECLARED)
-#line 1440 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 1435 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
 typedef union YYSTYPE {
   llvm::Module                           *ModuleVal;
   llvm::Function                         *FunctionVal;
@@ -1859,7 +1854,7 @@
   llvm::Module::Endianness          Endianness;
 } YYSTYPE;
 /* Line 196 of yacc.c.  */
-#line 1863 "UpgradeParser.tab.c"
+#line 1858 "UpgradeParser.tab.c"
 # define yystype YYSTYPE /* obsolescent; will be withdrawn */
 # define YYSTYPE_IS_DECLARED 1
 # define YYSTYPE_IS_TRIVIAL 1
@@ -1871,7 +1866,7 @@
 
 
 /* Line 219 of yacc.c.  */
-#line 1875 "UpgradeParser.tab.c"
+#line 1870 "UpgradeParser.tab.c"
 
 #if ! defined (YYSIZE_T) && defined (__SIZE_TYPE__)
 # define YYSIZE_T __SIZE_TYPE__
@@ -2022,7 +2017,7 @@
 /* YYFINAL -- State number of the termination state. */
 #define YYFINAL  4
 /* YYLAST -- Last index in YYTABLE.  */
-#define YYLAST   1712
+#define YYLAST   1736
 
 /* YYNTOKENS -- Number of terminals. */
 #define YYNTOKENS  166
@@ -2130,14 +2125,14 @@
      200,     0,    -1,     5,    -1,     6,    -1,     3,    -1,     4,
       -1,    79,    -1,    80,    -1,    81,    -1,    82,    -1,    83,
       -1,    84,    -1,    85,    -1,    86,    -1,    87,    -1,    88,
-      -1,    89,    -1,    90,    -1,    91,    -1,    92,    -1,    93,
-      -1,    94,    -1,    95,    -1,    96,    -1,    97,    -1,    98,
+      -1,    89,    -1,    90,    -1,    91,    -1,    92,    -1,    97,
+      -1,    98,    -1,    99,    -1,   100,    -1,   101,    -1,   102,
       -1,   119,    -1,   120,    -1,   121,    -1,   122,    -1,   123,
       -1,   124,    -1,   125,    -1,   126,    -1,   127,    -1,   128,
       -1,   129,    -1,   130,    -1,   131,    -1,   132,    -1,   133,
       -1,   134,    -1,   135,    -1,   136,    -1,   137,    -1,   138,
       -1,   125,    -1,   126,    -1,   127,    -1,   128,    -1,    27,
-      -1,    28,    -1,   109,    -1,   110,    -1,   111,    -1,   112,
+      -1,    28,    -1,    93,    -1,    94,    -1,    95,    -1,    96,
       -1,   140,    -1,   141,    -1,   142,    -1,   143,    -1,   144,
       -1,   145,    -1,   146,    -1,   147,    -1,   148,    -1,   149,
       -1,   150,    -1,   151,    -1,   139,    -1,    16,    -1,    14,
@@ -2166,11 +2161,11 @@
      191,    39,    -1,   191,   227,    -1,   191,   197,    -1,   191,
       26,    -1,   176,   168,    -1,   177,     4,    -1,     9,    27,
       -1,     9,    28,    -1,   179,     7,    -1,   175,   155,   196,
-      36,   191,   156,    -1,   106,   155,   196,   242,   156,    -1,
-     108,   155,   196,   153,   196,   153,   196,   156,    -1,   169,
+      36,   191,   156,    -1,   110,   155,   196,   242,   156,    -1,
+     112,   155,   196,   153,   196,   153,   196,   156,    -1,   169,
      155,   196,   153,   196,   156,    -1,   170,   155,   196,   153,
      196,   156,    -1,   171,   155,   196,   153,   196,   156,    -1,
-      99,   172,   155,   196,   153,   196,   156,    -1,   100,   173,
+     103,   172,   155,   196,   153,   196,   156,    -1,   104,   173,
      155,   196,   153,   196,   156,    -1,   174,   155,   196,   153,
      196,   156,    -1,   114,   155,   196,   153,   196,   156,    -1,
      115,   155,   196,   153,   196,   153,   196,   156,    -1,   116,
@@ -2211,55 +2206,55 @@
      238,   153,   229,    -1,   238,    -1,    -1,    60,    59,    -1,
       59,    -1,   169,   191,   228,   153,   228,    -1,   170,   191,
      228,   153,   228,    -1,   171,   191,   228,   153,   228,    -1,
-      99,   172,   191,   228,   153,   228,    -1,   100,   173,   191,
+     103,   172,   191,   228,   153,   228,    -1,   104,   173,   191,
      228,   153,   228,    -1,    49,   229,    -1,   174,   229,   153,
-     229,    -1,   175,   229,    36,   191,    -1,   108,   229,   153,
+     229,    -1,   175,   229,    36,   191,    -1,   112,   229,   153,
      229,   153,   229,    -1,   113,   229,   153,   191,    -1,   117,
      229,   153,   191,    -1,   118,   229,   153,   191,    -1,   114,
      229,   153,   229,    -1,   115,   229,   153,   229,   153,   229,
-      -1,   116,   229,   153,   229,   153,   229,    -1,   107,   237,
+      -1,   116,   229,   153,   229,   153,   229,    -1,   111,   237,
       -1,   240,   182,   189,   228,   155,   239,   156,    -1,   244,
-      -1,   153,   238,    -1,    -1,    35,    -1,    -1,   101,   191,
-     184,    -1,   101,   191,   153,    15,   228,   184,    -1,   102,
-     191,   184,    -1,   102,   191,   153,    15,   228,   184,    -1,
-     103,   229,    -1,   243,   104,   191,   228,    -1,   243,   105,
-     229,   153,   191,   228,    -1,   106,   191,   228,   242,    -1
+      -1,   153,   238,    -1,    -1,    35,    -1,    -1,   105,   191,
+     184,    -1,   105,   191,   153,    15,   228,   184,    -1,   106,
+     191,   184,    -1,   106,   191,   153,    15,   228,   184,    -1,
+     107,   229,    -1,   243,   108,   191,   228,    -1,   243,   109,
+     229,   153,   191,   228,    -1,   110,   191,   228,   242,    -1
 };
 
 /* YYRLINE[YYN] -- source line where rule number YYN was defined.  */
 static const unsigned short int yyrline[] =
 {
-       0,  1580,  1580,  1581,  1589,  1590,  1600,  1600,  1600,  1600,
-    1600,  1600,  1600,  1600,  1600,  1600,  1600,  1604,  1604,  1604,
-    1608,  1608,  1608,  1608,  1608,  1608,  1612,  1612,  1613,  1613,
-    1614,  1614,  1615,  1615,  1616,  1616,  1620,  1620,  1621,  1621,
-    1622,  1622,  1623,  1623,  1624,  1624,  1625,  1625,  1626,  1626,
-    1627,  1628,  1631,  1631,  1631,  1631,  1635,  1635,  1635,  1635,
-    1635,  1635,  1635,  1636,  1636,  1636,  1636,  1636,  1636,  1642,
-    1642,  1642,  1642,  1646,  1646,  1646,  1646,  1650,  1650,  1654,
-    1654,  1659,  1662,  1667,  1668,  1669,  1670,  1671,  1672,  1673,
-    1674,  1678,  1679,  1680,  1681,  1682,  1683,  1684,  1685,  1695,
-    1696,  1704,  1705,  1713,  1722,  1723,  1730,  1731,  1735,  1739,
-    1755,  1756,  1763,  1764,  1771,  1779,  1779,  1779,  1779,  1779,
-    1779,  1779,  1780,  1780,  1780,  1780,  1780,  1785,  1789,  1793,
-    1798,  1807,  1828,  1834,  1847,  1856,  1860,  1871,  1875,  1888,
-    1892,  1899,  1900,  1906,  1913,  1925,  1955,  1968,  1991,  2019,
-    2041,  2052,  2074,  2085,  2094,  2099,  2157,  2164,  2172,  2179,
-    2186,  2190,  2194,  2203,  2218,  2231,  2240,  2268,  2281,  2290,
-    2296,  2302,  2311,  2317,  2323,  2334,  2335,  2344,  2345,  2357,
-    2366,  2367,  2368,  2369,  2370,  2386,  2406,  2408,  2410,  2410,
-    2417,  2417,  2424,  2424,  2431,  2431,  2439,  2441,  2443,  2448,
-    2462,  2463,  2467,  2470,  2478,  2482,  2489,  2493,  2497,  2501,
-    2509,  2509,  2513,  2514,  2518,  2526,  2531,  2539,  2540,  2547,
-    2554,  2558,  2673,  2673,  2677,  2687,  2687,  2691,  2695,  2697,
-    2698,  2702,  2702,  2714,  2715,  2720,  2721,  2722,  2723,  2724,
-    2725,  2726,  2727,  2728,  2749,  2752,  2767,  2768,  2773,  2773,
-    2781,  2790,  2793,  2802,  2812,  2817,  2826,  2837,  2837,  2840,
-    2843,  2846,  2850,  2856,  2871,  2877,  2933,  2936,  2942,  2952,
-    2965,  2994,  3002,  3010,  3014,  3021,  3022,  3026,  3029,  3035,
-    3052,  3068,  3082,  3094,  3106,  3117,  3126,  3135,  3144,  3151,
-    3172,  3196,  3202,  3208,  3214,  3230,  3308,  3316,  3317,  3321,
-    3322,  3326,  3332,  3338,  3344,  3350,  3357,  3369,  3383
+       0,  1575,  1575,  1576,  1584,  1585,  1595,  1595,  1595,  1595,
+    1595,  1595,  1595,  1595,  1595,  1595,  1595,  1599,  1599,  1599,
+    1603,  1603,  1603,  1603,  1603,  1603,  1607,  1607,  1608,  1608,
+    1609,  1609,  1610,  1610,  1611,  1611,  1615,  1615,  1616,  1616,
+    1617,  1617,  1618,  1618,  1619,  1619,  1620,  1620,  1621,  1621,
+    1622,  1623,  1626,  1626,  1626,  1626,  1630,  1630,  1630,  1630,
+    1630,  1630,  1630,  1631,  1631,  1631,  1631,  1631,  1631,  1637,
+    1637,  1637,  1637,  1641,  1641,  1641,  1641,  1645,  1645,  1649,
+    1649,  1654,  1657,  1662,  1663,  1664,  1665,  1666,  1667,  1668,
+    1669,  1673,  1674,  1675,  1676,  1677,  1678,  1679,  1680,  1690,
+    1691,  1699,  1700,  1708,  1717,  1718,  1725,  1726,  1730,  1734,
+    1750,  1751,  1758,  1759,  1766,  1774,  1774,  1774,  1774,  1774,
+    1774,  1774,  1775,  1775,  1775,  1775,  1775,  1780,  1784,  1788,
+    1793,  1802,  1823,  1829,  1842,  1851,  1855,  1866,  1870,  1883,
+    1887,  1894,  1895,  1901,  1908,  1920,  1950,  1963,  1986,  2014,
+    2036,  2047,  2069,  2080,  2089,  2094,  2152,  2159,  2167,  2174,
+    2181,  2185,  2189,  2198,  2213,  2226,  2235,  2263,  2276,  2285,
+    2291,  2297,  2308,  2314,  2320,  2331,  2332,  2341,  2342,  2354,
+    2363,  2364,  2365,  2366,  2367,  2383,  2403,  2405,  2407,  2407,
+    2414,  2414,  2421,  2421,  2428,  2428,  2436,  2438,  2440,  2445,
+    2459,  2460,  2464,  2467,  2475,  2479,  2486,  2490,  2494,  2498,
+    2506,  2506,  2510,  2511,  2515,  2523,  2528,  2536,  2537,  2544,
+    2551,  2555,  2670,  2670,  2674,  2684,  2684,  2688,  2692,  2694,
+    2695,  2699,  2699,  2711,  2712,  2717,  2718,  2719,  2720,  2721,
+    2722,  2723,  2724,  2725,  2746,  2749,  2764,  2765,  2770,  2770,
+    2778,  2787,  2790,  2799,  2809,  2814,  2823,  2834,  2834,  2837,
+    2840,  2843,  2847,  2853,  2868,  2874,  2930,  2933,  2939,  2949,
+    2962,  2991,  2999,  3007,  3011,  3018,  3019,  3023,  3026,  3032,
+    3049,  3065,  3079,  3091,  3103,  3114,  3132,  3141,  3150,  3157,
+    3178,  3202,  3208,  3214,  3220,  3236,  3314,  3322,  3323,  3327,
+    3328,  3332,  3338,  3344,  3350,  3356,  3363,  3375,  3389
 };
 #endif
 
@@ -2282,10 +2277,10 @@
   "COLDCC_TOK", "X86_STDCALLCC_TOK", "X86_FASTCALLCC_TOK", "DATALAYOUT",
   "RET", "BR", "SWITCH", "INVOKE", "UNREACHABLE", "UNWIND", "EXCEPT",
   "ADD", "SUB", "MUL", "DIV", "UDIV", "SDIV", "FDIV", "REM", "UREM",
-  "SREM", "FREM", "AND", "OR", "XOR", "SETLE", "SETGE", "SETLT", "SETGT",
-  "SETEQ", "SETNE", "ICMP", "FCMP", "MALLOC", "ALLOCA", "FREE", "LOAD",
-  "STORE", "GETELEMENTPTR", "PHI_TOK", "SELECT", "SHL", "SHR", "ASHR",
-  "LSHR", "VAARG", "EXTRACTELEMENT", "INSERTELEMENT", "SHUFFLEVECTOR",
+  "SREM", "FREM", "AND", "OR", "XOR", "SHL", "SHR", "ASHR", "LSHR",
+  "SETLE", "SETGE", "SETLT", "SETGT", "SETEQ", "SETNE", "ICMP", "FCMP",
+  "MALLOC", "ALLOCA", "FREE", "LOAD", "STORE", "GETELEMENTPTR", "PHI_TOK",
+  "SELECT", "VAARG", "EXTRACTELEMENT", "INSERTELEMENT", "SHUFFLEVECTOR",
   "VAARG_old", "VANEXT_old", "EQ", "NE", "SLT", "SGT", "SLE", "SGE", "ULT",
   "UGT", "ULE", "UGE", "OEQ", "ONE", "OLT", "OGT", "OLE", "OGE", "ORD",
   "UNO", "UEQ", "UNE", "CAST", "TRUNC", "ZEXT", "SEXT", "FPTRUNC", "FPEXT",
@@ -2427,9 +2422,9 @@
        0,     0,   232,   130,     0,     0,     0,   113,   135,   139,
        0,     0,   144,   138,   299,     0,   278,     0,     0,     0,
        0,    91,   267,   257,   258,     6,     7,     8,     9,    10,
-      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
-      21,    22,    23,    24,    25,     0,     0,     0,     0,     0,
-       0,     0,     0,    52,    53,    54,    55,     0,     0,     0,
+      11,    12,    13,    14,    15,    16,    17,    18,    19,    52,
+      53,    54,    55,    20,    21,    22,    23,    24,    25,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,    68,    56,    57,    58,    59,    60,    61,
       62,    63,    64,    65,    66,    67,     0,     0,     0,     0,
        0,   266,   253,    91,   270,     0,   296,   204,   201,   200,
@@ -2491,83 +2486,83 @@
 
 /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
    STATE-NUM.  */
-#define YYPACT_NINF -508
+#define YYPACT_NINF -541
 static const short int yypact[] =
 {
-    -508,    18,   144,   546,  -508,  -508,  -508,  -508,  -508,  -508,
-    -508,  -508,  -508,  -508,     2,   152,    47,  -508,  -508,   -15,
-    -508,  -508,   -30,   -75,    29,    69,   -10,  -508,    98,   104,
-     151,  -508,  -508,  -508,  -508,  -508,  -508,  1307,    -8,  -508,
-    -508,   149,  -508,  -508,  -508,  -508,    11,    20,    22,    24,
-    -508,    27,   104,  1307,     0,     0,     0,     0,  -508,  -508,
-    -508,   152,  -508,  -508,  -508,  -508,  -508,    37,  -508,  -508,
-    -508,  -508,  -508,  -508,  -508,  -508,  -508,  -508,  -508,  -508,
-    -508,   194,   200,     3,   695,  -508,   149,    54,  -508,  -508,
-     -81,  -508,  -508,  -508,  -508,  -508,  1561,  -508,   186,   -19,
-     210,   188,   203,  -508,  -508,  -508,  -508,  -508,  1368,  1368,
-    1368,  1409,  -508,  -508,    66,    70,   715,  -508,  -508,   -81,
-     -85,    75,   781,  -508,  -508,  1368,  -508,   172,  1429,    58,
-     255,   152,  -508,  -508,  -508,  -508,  -508,  -508,  -508,  -508,
-    -508,  -508,  -508,  -508,  -508,  -508,  -508,  -508,  -508,  -508,
-    -508,  -508,  -508,  -508,  -508,   208,   394,  1368,  1368,  1368,
-    1368,  1368,  1368,  -508,  -508,  -508,  -508,  1368,  1368,  1368,
-    1368,  1368,  1368,  -508,  -508,  -508,  -508,  -508,  -508,  -508,
-    -508,  -508,  -508,  -508,  -508,  -508,  1368,  1368,  1368,  1368,
-    1368,  -508,  -508,   152,  -508,    55,  -508,  -508,  -508,  -508,
-    -508,  -508,  -508,  -508,   -50,  -508,  -508,  -508,   153,   179,
-     228,   191,   229,   193,   230,   197,   231,   233,   234,   199,
-     232,   235,   537,  -508,  1368,  1368,    84,   -45,  1368,  -508,
-    1149,  -508,    93,    91,   898,  -508,  -508,    37,  -508,   898,
-     898,  -508,  -508,  -508,  -508,  -508,  -508,  -508,  -508,  -508,
-    -508,   898,  1307,  -508,  -508,  -508,  -508,  -508,  -508,  -508,
-    -508,  -508,  -508,  1368,  -508,  -508,  -508,  -508,  -508,  -508,
-    -508,  -508,  -508,  -508,  -508,  -508,  -508,  -508,  -508,  -508,
-    1368,    95,    96,  -508,   898,    99,    97,   105,   106,   107,
-     120,   123,   126,   127,   898,   898,   898,   128,   221,  1307,
-    1368,  1368,   258,  -508,   132,   132,   132,  -508,  -508,  -508,
-    -508,  -508,  -508,  -508,  -508,  -508,  -508,   208,   394,   131,
-     134,   135,   136,   137,  1190,  1470,   736,   259,   139,   140,
-     141,   142,   148,  -508,  -508,   132,  -130,   -23,  -508,   143,
-     -81,  -508,   149,  -508,   155,   154,  1210,  -508,  -508,  -508,
-    -508,  -508,  -508,  -508,  -508,  -508,   224,  1409,  -508,  -508,
-    -508,  -508,   156,  -508,   163,   898,   898,   898,     4,  -508,
-       5,  -508,   164,   898,   162,  1368,  1368,  1368,  1368,  1368,
-    1368,  1368,   167,   168,   169,  1368,  1368,   898,   898,   170,
-    -508,   -17,  -508,  -508,  -508,   150,   182,  1409,  1409,  1409,
-    1409,  1409,  -508,  -508,   -13,   756,   -24,  -508,   -36,  -508,
-    1409,  1409,  1409,  1409,  1409,  -508,  -508,  -508,  -508,  -508,
-    -508,  1251,   290,  -508,  -508,   301,   -14,   324,   325,   198,
-     201,   202,   898,   348,   898,  1368,  -508,   204,   898,   205,
-    -508,  -508,   211,   214,  -508,  -508,   898,   898,   898,  -508,
-    -508,   213,  -508,  1368,   332,   365,  -508,   132,  1409,  1409,
-     164,   217,   222,   223,   225,  1409,  -508,   216,   -71,   -27,
-    -508,  -508,   226,   236,   237,   240,   338,  -508,  -508,  -508,
-     326,   241,  -508,   898,   898,  1368,   898,   898,   242,  -508,
-     242,  -508,   243,   898,   244,  1368,  1368,  1368,  -508,  -508,
-    -508,  1368,   898,  -508,  -508,  -508,   246,   247,   245,  1409,
-    1409,  1409,  1409,  -508,  -508,   220,  1409,  1409,  1409,  1409,
-    1368,   378,  -508,   361,   249,   248,   243,   250,  -508,  -508,
-     329,  -508,  -508,  1368,   256,   898,  -508,  -508,  -508,   251,
-    -508,  1409,  1409,  -508,   261,   252,   270,   271,  -508,   269,
-     272,   275,   279,   280,  -508,  -508,   367,    40,   368,  -508,
-    -508,   267,  -508,   281,   282,  1409,  -508,  1409,  1409,  -508,
-    -508,  -508,  -508,  -508,   898,  -508,   996,    85,   382,  -508,
-    -508,  -508,   283,   285,   288,  -508,   274,  -508,   996,   898,
-    -508,  -508,  -508,   424,   293,   130,   898,   426,   430,  -508,
-     898,   898,  -508,  -508
+    -541,    28,    61,   478,  -541,  -541,  -541,  -541,  -541,  -541,
+    -541,  -541,  -541,  -541,    23,   152,    45,  -541,  -541,    -9,
+    -541,  -541,   -20,   -51,    76,    69,    12,  -541,    97,   149,
+     172,  -541,  -541,  -541,  -541,  -541,  -541,  1331,   -19,  -541,
+    -541,   137,  -541,  -541,  -541,  -541,    49,    58,    60,    62,
+    -541,    72,   149,  1331,    88,    88,    88,    88,  -541,  -541,
+    -541,   152,  -541,  -541,  -541,  -541,  -541,    75,  -541,  -541,
+    -541,  -541,  -541,  -541,  -541,  -541,  -541,  -541,  -541,  -541,
+    -541,   227,   228,     3,   691,  -541,   137,    79,  -541,  -541,
+     -46,  -541,  -541,  -541,  -541,  -541,  1585,  -541,   212,   136,
+     233,   214,   216,  -541,  -541,  -541,  -541,  -541,  1392,  1392,
+    1392,  1433,  -541,  -541,    83,    87,   711,  -541,  -541,   -46,
+     -70,    89,   777,  -541,  -541,  1392,  -541,   183,  1453,     6,
+     309,   152,  -541,  -541,  -541,  -541,  -541,  -541,  -541,  -541,
+    -541,  -541,  -541,  -541,  -541,  -541,  -541,  -541,  -541,  -541,
+    -541,  -541,  -541,  -541,  -541,  -541,  -541,  -541,  -541,    59,
+     142,  1392,  1392,  1392,  1392,  1392,  1392,  1392,  1392,  1392,
+    1392,  1392,  1392,  -541,  -541,  -541,  -541,  -541,  -541,  -541,
+    -541,  -541,  -541,  -541,  -541,  -541,  1392,  1392,  1392,  1392,
+    1392,  -541,  -541,   152,  -541,    86,  -541,  -541,  -541,  -541,
+    -541,  -541,  -541,  -541,  -129,  -541,  -541,  -541,   169,   196,
+     242,   200,   246,   203,   252,   205,   253,   251,   258,   221,
+     255,   259,   533,  -541,  1392,  1392,    99,   -63,  1392,  -541,
+    1173,  -541,   128,   126,   894,  -541,  -541,    75,  -541,   894,
+     894,  -541,  -541,  -541,  -541,  -541,  -541,  -541,  -541,  -541,
+    -541,   894,  1331,  -541,  -541,  -541,  -541,  -541,  -541,  -541,
+    -541,  -541,  -541,  1392,  -541,  -541,  -541,  -541,  -541,  -541,
+    -541,  -541,  -541,  -541,  -541,  -541,  -541,  -541,  -541,  -541,
+    1392,   130,   133,  -541,   894,   132,   138,   139,   143,   144,
+     151,   155,   156,   157,   894,   894,   894,   163,   254,  1331,
+    1392,  1392,   271,  -541,   164,   164,   164,  -541,  -541,  -541,
+    -541,  -541,  -541,  -541,  -541,  -541,  -541,    59,   142,   173,
+     174,   175,   176,   177,  1214,  1494,   732,   281,   178,   179,
+     180,   182,   190,  -541,  -541,   164,   -42,  -135,  -541,   166,
+     -46,  -541,   137,  -541,   193,   191,  1234,  -541,  -541,  -541,
+    -541,  -541,  -541,  -541,  -541,  -541,   290,  1433,  -541,  -541,
+    -541,  -541,   201,  -541,   202,   894,   894,   894,     7,  -541,
+      10,  -541,   204,   894,   199,  1392,  1392,  1392,  1392,  1392,
+    1392,  1392,   211,   215,   217,  1392,  1392,   894,   894,   223,
+    -541,   -21,  -541,  -541,  -541,   210,   219,  1433,  1433,  1433,
+    1433,  1433,  -541,  -541,     4,   752,   -91,  -541,    -8,  -541,
+    1433,  1433,  1433,  1433,  1433,  -541,  -541,  -541,  -541,  -541,
+    -541,  1275,   324,  -541,  -541,   343,    37,   348,   356,   224,
+     225,   229,   894,   376,   894,  1392,  -541,   230,   894,   232,
+    -541,  -541,   234,   235,  -541,  -541,   894,   894,   894,  -541,
+    -541,   226,  -541,  1392,   362,   385,  -541,   164,  1433,  1433,
+     204,   238,   239,   240,   241,  1433,  -541,   243,   -17,    -5,
+    -541,  -541,   247,   250,   261,   262,   359,  -541,  -541,  -541,
+     339,   268,  -541,   894,   894,  1392,   894,   894,   269,  -541,
+     269,  -541,   270,   894,   272,  1392,  1392,  1392,  -541,  -541,
+    -541,  1392,   894,  -541,  -541,  -541,   273,   274,   249,  1433,
+    1433,  1433,  1433,  -541,  -541,   245,  1433,  1433,  1433,  1433,
+    1392,   395,  -541,   383,   275,   267,   270,   279,  -541,  -541,
+     351,  -541,  -541,  1392,   277,   894,  -541,  -541,  -541,   282,
+    -541,  1433,  1433,  -541,   278,   283,   284,   288,  -541,   289,
+     291,   295,   296,   297,  -541,  -541,   423,    43,   410,  -541,
+    -541,   298,  -541,   300,   305,  1433,  -541,  1433,  1433,  -541,
+    -541,  -541,  -541,  -541,   894,  -541,  1020,    64,   441,  -541,
+    -541,  -541,   307,   311,   314,  -541,   312,  -541,  1020,   894,
+    -541,  -541,  -541,   450,   319,   150,   894,   452,   453,  -541,
+     894,   894,  -541,  -541
 };
 
 /* YYPGOTO[NTERM-NUM].  */
 static const short int yypgoto[] =
 {
-    -508,  -508,  -508,   356,   357,   360,   145,   147,   371,   374,
-    -128,  -127,  -497,  -508,   416,   436,  -117,  -508,  -277,    41,
-    -508,  -296,  -508,   -47,  -508,   -37,  -508,   -58,    46,  -508,
-     -99,   253,  -298,    49,  -508,  -508,  -508,  -508,  -508,  -508,
-    -508,   419,  -508,  -508,  -508,  -508,     8,  -508,    51,  -508,
-    -508,   412,  -508,  -508,  -508,  -508,  -508,   471,  -508,  -508,
-    -507,  -209,    67,  -124,  -508,   457,  -508,  -118,  -508,  -508,
-    -508,  -508,    43,   -22,  -508,  -508,    21,  -508,  -508
+    -541,  -541,  -541,   379,   380,   381,   161,   162,   386,   388,
+    -128,  -127,  -540,  -541,   438,   456,  -111,  -541,  -277,    63,
+    -541,  -297,  -541,   -47,  -541,   -37,  -541,   -53,    40,  -541,
+     -99,   264,  -307,    84,  -541,  -541,  -541,  -541,  -541,  -541,
+    -541,   435,  -541,  -541,  -541,  -541,     8,  -541,    68,  -541,
+    -541,   427,  -541,  -541,  -541,  -541,  -541,   487,  -541,  -541,
+    -489,  -199,    67,  -124,  -541,   472,  -541,  -103,  -541,  -541,
+    -541,  -541,    71,    -7,  -541,  -541,    33,  -541,  -541
 };
 
 /* YYTABLE[YYPACT[STATE-NUM]].  What to do in state STATE-NUM.  If
@@ -2577,354 +2572,358 @@
 #define YYTABLE_NINF -180
 static const short int yytable[] =
 {
-      88,   235,   249,   250,   238,   371,   105,   115,    39,   393,
-     394,    26,   223,   334,   252,    42,    88,   454,     4,   432,
-     434,    93,    46,    47,    48,   360,   119,   406,   408,   416,
-     360,   360,   106,   107,   123,   283,   198,   199,   287,   415,
-     455,    49,   360,   288,   289,   290,   291,   292,   293,    26,
-     241,   242,   243,   244,   245,   246,   247,   248,   119,   426,
-     576,   433,   433,    29,   119,   297,   298,   239,   228,   586,
-      39,   205,   206,   207,  -112,   360,   299,    51,   229,   240,
-     588,   594,  -139,   123,  -112,   360,   360,   360,   234,    53,
-      52,   234,  -139,   123,   121,   241,   242,   243,   244,   245,
-     246,   247,   248,   302,   109,   110,   111,   469,   228,   303,
-       7,     8,     9,    10,    54,    12,    55,   465,   339,    56,
-     281,   282,   234,   284,   285,   234,   465,   471,    62,   465,
-     234,   234,   234,   234,   234,   234,   515,   470,   417,   465,
-     465,   123,    58,    59,  -179,    60,   466,   482,    43,   294,
-     295,   296,   234,   234,    94,    64,   360,   360,   360,   300,
-     301,   505,   227,    98,   360,   116,   336,   337,   232,     5,
-     340,    20,    99,    21,   100,     6,   101,   389,   360,   360,
-     307,   308,   -72,   -72,   102,     7,     8,     9,    10,    11,
-      12,    13,  -113,   342,   -71,   -71,   -70,   -70,   113,   575,
-     -69,   -69,   309,   310,   114,   365,    14,   133,   134,   122,
-     197,   531,   202,   532,   201,    88,    30,    31,    32,    33,
-      34,    35,    36,   360,   224,   360,   366,   203,   225,   360,
-     230,   236,   -76,   -75,   -74,   -73,   312,   360,   360,   360,
-     -79,   -80,   313,   367,   587,   338,   346,   347,   368,   370,
-     374,   439,   387,   441,   442,   443,   373,   386,   375,   376,
-     377,   449,    88,   388,   234,   241,   242,   243,   244,   245,
-     246,   247,   248,   378,   360,   360,   379,   360,   360,   380,
-     381,   385,   390,   409,   360,   391,   397,   424,   340,   398,
-     399,   400,   401,   360,   410,   411,   412,   413,   460,   461,
-     462,   463,   464,   414,   418,   458,   362,   363,   421,   427,
-     422,   472,   473,   474,   475,   476,   428,   435,   364,   438,
-     446,   447,   448,   453,   454,   481,   360,   253,   254,   255,
-     256,   257,   258,   259,   260,   261,   262,   459,   234,   440,
-     234,   234,   234,   444,   445,   483,   484,   468,   234,   450,
-     419,   372,   489,   485,   486,   487,   503,   493,   495,   506,
-     507,   382,   383,   384,   496,   360,   513,   497,   501,   504,
-     509,   536,   537,   538,   520,   510,   511,   514,   512,   516,
-     360,   548,   554,   521,   342,   555,   433,   360,   574,   517,
-     518,   360,   360,   519,   523,   530,   533,   535,   234,   541,
-     542,   543,   556,   589,   578,   557,   558,   562,   566,   559,
-     544,   545,   546,   547,   565,   560,   502,   549,   550,   551,
-     552,   264,   265,   567,   568,   569,   579,   593,   570,   249,
-     250,   571,   429,   430,   431,   572,   573,   580,   581,   590,
-     437,   591,   563,   564,   592,   596,   597,   600,   234,   249,
-     250,   601,   186,   187,   451,   452,   188,    96,   234,   234,
-     234,    57,   395,   479,   234,   396,   582,   189,   583,   584,
-     190,   104,   478,   112,    27,   333,    45,   598,   492,   539,
-       0,   508,     0,   553,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,   234,     0,     0,   488,
-       0,   490,     0,     0,     0,   494,     0,     0,     0,     0,
-       0,     0,     0,   498,   499,   500,     0,     0,     0,   266,
-     267,   268,   269,   270,   271,   272,   273,   274,   275,   276,
-     277,   278,   279,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,    65,    66,     0,     0,     0,     0,     0,     0,
-     524,   525,     0,   528,   529,     0,     0,     0,     0,    20,
-     534,    21,     0,   314,     0,     0,   -82,     0,    20,   540,
-      21,     0,     0,     0,     0,   315,   316,     6,   -82,   -82,
-       0,     0,     0,     0,     0,     0,     0,   -82,   -82,   -82,
-     -82,   -82,   -82,   -82,     0,     0,   -82,    22,     0,     0,
-       0,     0,   561,     0,    23,     0,     0,     0,    24,     0,
-       0,     0,     0,     0,     0,     0,   135,   136,   137,   138,
-     139,   140,   141,   142,   143,   144,   145,   146,   147,   148,
-     149,   150,   151,   152,   153,   154,   317,   318,     0,     0,
-       0,   585,     0,   319,     0,   320,   163,   164,   165,   166,
-       0,   321,   322,   323,     0,     0,   595,     0,     0,     0,
+      88,   235,   249,   250,   238,   371,   105,   115,   393,   394,
+      93,    26,   223,   454,    39,   239,    88,   576,   406,   408,
+     252,    42,   432,   334,   302,   434,   417,   240,     4,   123,
+     303,   119,    46,    47,    48,   360,   455,   588,   415,   283,
+     360,   360,   287,   288,   289,   290,   291,   292,   293,    26,
+     426,    49,   360,   241,   242,   243,   244,   245,   246,   247,
+     248,  -179,   465,   119,   433,   297,   298,   433,    39,   119,
+     470,   205,   206,   207,   241,   242,   243,   244,   245,   246,
+     247,   248,   299,   228,    29,   360,     5,   586,   234,    53,
+     228,   234,     6,   229,   121,   360,   360,   360,   469,   594,
+     339,    51,     7,     8,     9,    10,    11,    12,    13,  -112,
+       7,     8,     9,    10,    54,    12,    55,   416,   123,    56,
+     106,   107,   123,    14,   281,   282,   234,   284,   285,   234,
+     234,   234,   234,   234,   234,   234,  -139,    52,  -112,   109,
+     110,   111,    59,    94,    60,   465,  -139,   123,   465,   294,
+     295,   296,   234,   234,    43,   471,   227,   465,   515,    20,
+     505,    21,   232,   466,    58,   116,   360,   360,   360,   264,
+     265,   336,   337,    62,   360,   340,    64,   389,   253,   254,
+     255,   256,   257,   258,   259,   260,   261,   262,   360,   360,
+     465,   198,   199,   342,   300,   301,   307,   308,   482,   -72,
+     -72,    98,   575,   -71,   -71,   365,   -70,   -70,   -69,   -69,
+      99,   531,   100,   532,   101,    88,    30,    31,    32,    33,
+      34,    35,    36,   587,   309,   310,   366,   133,   134,   102,
+    -113,   113,   114,   360,   122,   360,   197,   201,   202,   360,
+     203,   224,   236,   367,   230,   225,   -76,   360,   360,   360,
+     -75,   439,   387,   441,   442,   443,   -74,   -73,   -79,   312,
+     338,   449,    88,   388,   234,   -80,   313,   266,   267,   268,
+     269,   270,   271,   272,   273,   274,   275,   276,   277,   278,
+     279,   346,   347,   368,   360,   360,   370,   360,   360,   373,
+     386,   374,   375,   340,   360,   390,   376,   377,   460,   461,
+     462,   463,   464,   360,   378,   409,   362,   363,   379,   380,
+     381,   472,   473,   474,   475,   476,   385,   391,   364,   241,
+     242,   243,   244,   245,   246,   247,   248,   418,   397,   398,
+     399,   400,   401,   410,   411,   412,   360,   413,   234,   440,
+     234,   234,   234,   444,   445,   414,   421,   422,   234,   450,
+     419,   372,   468,   424,   427,   428,   438,   435,   454,   506,
+     507,   382,   383,   384,   446,   458,   513,   481,   447,   483,
+     448,   536,   537,   538,   459,   360,   453,   484,   486,   485,
+     489,   501,   487,   493,   342,   495,   503,   496,   497,   504,
+     360,   509,   510,   511,   512,   520,   521,   360,   234,   554,
+     516,   360,   360,   517,   514,   543,   548,   555,   433,   559,
+     544,   545,   546,   547,   518,   519,   502,   549,   550,   551,
+     552,   523,   530,   533,   557,   535,   541,   542,   556,   249,
+     250,   565,   429,   430,   431,   558,   560,   567,   562,   566,
+     437,   568,   563,   564,   574,   569,   578,   570,   234,   249,
+     250,   571,   572,   573,   451,   452,   580,   579,   234,   234,
+     234,   581,   589,   590,   234,   593,   582,   591,   583,   584,
+     592,   596,   597,   600,   601,   186,   187,   188,   395,    96,
+     396,    57,   189,   553,   190,   479,   333,   104,   112,   478,
+      27,    45,   598,   508,   539,     0,   234,     0,   -82,   488,
+      20,   490,    21,     0,     0,   494,   492,     0,     0,     6,
+     -82,   -82,     0,   498,   499,   500,     0,     0,     0,   -82,
+     -82,   -82,   -82,   -82,   -82,   -82,     0,     0,   -82,    22,
+       0,     0,     0,     0,     0,     0,    23,     0,    65,    66,
+      24,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+     524,   525,     0,   528,   529,    20,     0,    21,     0,   314,
+     534,     0,     0,     0,     0,     0,     0,     0,     0,   540,
+       0,   315,   316,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,   561,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,   135,   136,   137,   138,   139,   140,   141,   142,
+     143,   144,   145,   146,   147,   148,   149,   150,   151,   152,
+     153,   154,   155,   156,   157,   158,   317,   318,     0,     0,
+       0,   585,     0,   319,     0,   320,     0,   321,   322,   323,
+       0,     0,     0,     0,     0,     0,   595,     0,     0,     0,
        0,     0,     0,   599,     0,     0,     0,   602,   603,     0,
-       0,     0,     0,     0,     0,     0,   173,   174,   175,   176,
-     177,   178,   179,   180,   181,   182,   183,   184,   185,     0,
-       0,     0,     0,     0,   324,     0,     0,   325,     0,   326,
-      65,    66,   327,   117,    68,    69,    70,    71,    72,    73,
-      74,    75,    76,    77,    78,     0,    79,    20,     0,    21,
-      65,    66,     0,   117,    68,    69,    70,    71,    72,    73,
-      74,    75,    76,    77,    78,     0,    79,    20,     0,    21,
-       0,    65,    66,    80,   117,   208,   209,   210,   211,   212,
-     213,   214,   215,   216,   217,   218,     0,    79,    20,     0,
-      21,    65,    66,    80,   117,   208,   209,   210,   211,   212,
-     213,   214,   215,   216,   217,   218,     0,    79,    20,     0,
-      21,     0,     0,     0,    80,     0,    65,    66,     0,   117,
+       0,     0,   173,   174,   175,   176,   177,   178,   179,   180,
+     181,   182,   183,   184,   185,     0,     0,     0,     0,     0,
+     324,     0,     0,   325,     0,   326,    65,    66,   327,   117,
       68,    69,    70,    71,    72,    73,    74,    75,    76,    77,
-      78,     0,    79,    20,    80,    21,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,   231,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,    80,
+      78,     0,    79,    20,     0,    21,    65,    66,     0,   117,
+      68,    69,    70,    71,    72,    73,    74,    75,    76,    77,
+      78,     0,    79,    20,     0,    21,     0,    65,    66,    80,
+     117,   208,   209,   210,   211,   212,   213,   214,   215,   216,
+     217,   218,     0,    79,    20,     0,    21,    65,    66,    80,
+     117,   208,   209,   210,   211,   212,   213,   214,   215,   216,
+     217,   218,     0,    79,    20,     0,    21,     0,     0,     0,
+      80,     0,    65,    66,     0,   117,    68,    69,    70,    71,
+      72,    73,    74,    75,    76,    77,    78,     0,    79,    20,
+      80,    21,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,   231,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,    80,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,    81,
-       0,     0,    82,     0,     0,    83,     0,    84,   118,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,    81,
-       0,     0,    82,     0,     0,    83,     0,    84,   226,     0,
+       0,     0,     0,     0,     0,    81,     0,     0,    82,     0,
+       0,    83,     0,    84,   118,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,    81,     0,     0,    82,     0,
+       0,    83,     0,    84,   226,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,    81,     0,     0,    82,
+       0,     0,    83,     0,    84,   407,     0,   348,   349,    65,
+      66,   350,     0,     0,     0,     0,    81,     0,     0,    82,
+       0,     0,    83,     0,    84,   467,    20,     0,    21,     0,
+     351,   352,   353,     0,     0,     0,     0,     0,     0,     0,
+       0,    81,   354,   355,    82,     0,     0,    83,     0,    84,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-      81,     0,     0,    82,     0,     0,    83,     0,    84,   407,
-       0,   348,   349,    65,    66,   350,     0,     0,     0,     0,
-      81,     0,     0,    82,     0,     0,    83,     0,    84,   467,
-      20,     0,    21,     0,   351,   352,   353,     0,     0,     0,
-       0,     0,     0,     0,     0,    81,   354,   355,    82,     0,
-       0,    83,     0,    84,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,   356,
+       0,     0,     0,     0,     0,   356,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,   135,   136,   137,
-     138,   139,   140,   141,   142,   143,   144,   145,   146,   147,
-     148,   149,   150,   151,   152,   153,   154,   317,   318,   348,
-     349,     0,     0,   350,   319,     0,   320,   163,   164,   165,
-     166,     0,   321,   322,   323,     0,     0,     0,     0,     0,
-       0,     0,   351,   352,   353,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,   354,   355,     0,   173,   174,   175,
-     176,   177,   178,   179,   180,   181,   182,   183,   184,   185,
-       0,     0,     0,     0,     0,     0,     0,   356,   357,     0,
+       0,     0,     0,   135,   136,   137,   138,   139,   140,   141,
+     142,   143,   144,   145,   146,   147,   148,   149,   150,   151,
+     152,   153,   154,   155,   156,   157,   158,   317,   318,     0,
+       0,     0,     0,     0,   319,     0,   320,     0,   321,   322,
+     323,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,   348,   349,     0,     0,   350,     0,     0,
+       0,     0,     0,   173,   174,   175,   176,   177,   178,   179,
+     180,   181,   182,   183,   184,   185,   351,   352,   353,     0,
+       0,     0,     0,     0,   357,     0,     0,     0,   354,   355,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,   135,   136,   137,   138,   139,
-     140,   141,   142,   143,   144,   145,   146,   147,   148,   149,
-     150,   151,   152,   153,   154,   317,   318,     0,     0,     0,
-       0,     0,   319,     0,   320,   163,   164,   165,   166,     0,
-     321,   322,   323,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,   173,   174,   175,   176,   177,
-     178,   179,   180,   181,   182,   183,   184,   185,     0,     0,
-       0,     0,     0,     0,    65,    66,   357,   117,    68,    69,
-      70,    71,    72,    73,    74,    75,    76,    77,    78,     0,
-      79,    20,     0,    21,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,   341,     0,     0,     0,
-       0,     0,     0,     0,     0,    65,    66,    80,   117,   208,
-     209,   210,   211,   212,   213,   214,   215,   216,   217,   218,
-       0,    79,    20,     0,    21,    65,    66,     0,   117,    68,
-      69,    70,    71,    72,    73,    74,    75,    76,    77,    78,
-       0,    79,    20,     0,    21,     0,     0,     0,    80,     0,
-       0,     0,     0,     0,     0,     0,     0,   423,     0,     0,
-       0,     0,     0,     0,     0,     0,    65,    66,    80,   117,
+       0,   356,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,   135,
+     136,   137,   138,   139,   140,   141,   142,   143,   144,   145,
+     146,   147,   148,   149,   150,   151,   152,   153,   154,   155,
+     156,   157,   158,   317,   318,     0,     0,     0,     0,     0,
+     319,     0,   320,     0,   321,   322,   323,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,   173,
+     174,   175,   176,   177,   178,   179,   180,   181,   182,   183,
+     184,   185,     0,     0,     0,     0,     0,     0,    65,    66,
+     357,   117,    68,    69,    70,    71,    72,    73,    74,    75,
+      76,    77,    78,     0,    79,    20,     0,    21,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+     341,     0,     0,     0,     0,     0,     0,     0,     0,    65,
+      66,    80,   117,   208,   209,   210,   211,   212,   213,   214,
+     215,   216,   217,   218,     0,    79,    20,     0,    21,    65,
+      66,     0,   117,    68,    69,    70,    71,    72,    73,    74,
+      75,    76,    77,    78,     0,    79,    20,     0,    21,     0,
+       0,     0,    80,     0,     0,     0,     0,     0,     0,     0,
+       0,   423,     0,     0,     0,     0,     0,     0,     0,     0,
+      65,    66,    80,   117,    68,    69,    70,    71,    72,    73,
+      74,    75,    76,    77,    78,     0,    79,    20,     0,    21,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,   477,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,    80,     0,     0,     0,    81,     0,     0,
+      82,     0,     0,    83,     0,    84,    65,    66,     0,    67,
       68,    69,    70,    71,    72,    73,    74,    75,    76,    77,
       78,     0,    79,    20,     0,    21,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,   477,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,    80,
-       0,     0,     0,    81,     0,     0,    82,     0,     0,    83,
-       0,    84,    65,    66,     0,    67,    68,    69,    70,    71,
-      72,    73,    74,    75,    76,    77,    78,     0,    79,    20,
-       0,    21,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,    81,     0,     0,    82,     0,   402,
-      83,     0,    84,     0,     0,    80,     0,     0,     0,     0,
-       0,     0,     0,     0,    81,     0,     0,    82,     0,     0,
-      83,     0,    84,    65,    66,     0,   117,    68,    69,    70,
-      71,    72,    73,    74,    75,    76,    77,    78,     0,    79,
-      20,     0,    21,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,    81,     0,     0,    82,     0,
-       0,    83,     0,    84,    65,    66,    80,   117,   208,   209,
-     210,   211,   212,   213,   214,   215,   216,   217,   218,     0,
-      79,    20,     0,    21,    65,    66,     0,   237,    68,    69,
-      70,    71,    72,    73,    74,    75,    76,    77,    78,     0,
-      79,    20,     0,    21,     0,     0,     0,    80,     0,     0,
-       0,    81,     0,     0,    82,     0,     0,    83,     0,    84,
-       0,     0,     0,     0,     0,    65,    66,    80,   117,   208,
-     209,   210,   211,   212,   213,   214,   215,   216,   217,   218,
-       0,    79,    20,     0,    21,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,    80,     0,
-       0,     0,    81,     0,     0,    82,     0,     0,    83,     0,
-      84,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,    81,     0,
+       0,    82,     0,   402,    83,     0,    84,     0,     0,    80,
+       0,     0,     0,     0,     0,     0,     0,     0,    81,     0,
+       0,    82,     0,     0,    83,     0,    84,    65,    66,     0,
+     117,    68,    69,    70,    71,    72,    73,    74,    75,    76,
+      77,    78,     0,    79,    20,     0,    21,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,    81,
+       0,     0,    82,     0,     0,    83,     0,    84,    65,    66,
+      80,   117,   208,   209,   210,   211,   212,   213,   214,   215,
+     216,   217,   218,     0,    79,    20,     0,    21,    65,    66,
+       0,   237,    68,    69,    70,    71,    72,    73,    74,    75,
+      76,    77,    78,     0,    79,    20,     0,    21,     0,     0,
+       0,    80,     0,     0,     0,    81,     0,     0,    82,     0,
+       0,    83,     0,    84,     0,     0,     0,     0,     0,    65,
+      66,    80,   117,   208,   209,   210,   211,   212,   213,   214,
+     215,   216,   217,   218,     0,    79,    20,     0,    21,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,    81,     0,     0,    82,     0,     0,    83,
-       0,    84,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,    81,     0,     0,    82,     0,     0,    83,
-       0,    84,     0,     0,     0,     0,   124,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     125,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     126,   127,     0,     0,    81,     0,     0,    82,     0,     0,
-      83,     0,   405,   128,   129,   130,   131,   132,   133,   134,
-     135,   136,   137,   138,   139,   140,   141,   142,   143,   144,
-     145,   146,   147,   148,   149,   150,   151,   152,   153,   154,
-     155,   156,   157,   158,   159,     0,     0,   160,   161,   162,
-     163,   164,   165,   166,   167,   168,   169,   170,   171,   172,
+       0,     0,    80,     0,     0,     0,    81,     0,     0,    82,
+       0,     0,    83,     0,    84,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     173,   174,   175,   176,   177,   178,   179,   180,   181,   182,
-     183,   184,   185
+       0,     0,     0,     0,     0,     0,     0,    81,     0,     0,
+      82,     0,     0,    83,     0,    84,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,    81,     0,     0,
+      82,     0,     0,    83,     0,    84,     0,     0,     0,     0,
+     124,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,   125,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,   126,   127,     0,     0,    81,     0,
+       0,    82,     0,     0,    83,     0,   405,   128,   129,   130,
+     131,   132,   133,   134,   135,   136,   137,   138,   139,   140,
+     141,   142,   143,   144,   145,   146,   147,   148,   149,   150,
+     151,   152,   153,   154,   155,   156,   157,   158,   159,   160,
+     161,   162,   163,     0,     0,   164,   165,   166,   167,   168,
+     169,   170,   171,   172,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,   173,   174,   175,   176,   177,   178,
+     179,   180,   181,   182,   183,   184,   185
 };
 
 static const short int yycheck[] =
 {
-      37,   125,   130,   130,   128,   282,    53,     4,    23,   305,
-     306,     3,   111,   222,   131,    30,    53,    34,     0,    15,
-      15,    29,    52,    53,    54,   234,    84,   325,   326,   159,
-     239,   240,    32,    33,   164,   159,    55,    56,   162,   335,
-      57,    71,   251,   167,   168,   169,   170,   171,   172,    41,
-      10,    11,    12,    13,    14,    15,    16,    17,   116,   357,
-     557,    57,    57,    61,   122,   189,   190,     9,   153,   576,
-      23,   108,   109,   110,   155,   284,   193,   152,   163,    21,
-     577,   588,   153,   164,   155,   294,   295,   296,   125,    20,
-      61,   128,   163,   164,    86,    10,    11,    12,    13,    14,
-      15,    16,    17,   153,    55,    56,    57,   405,   153,   159,
-      41,    42,    43,    44,    45,    46,    47,   153,   163,    50,
-     157,   158,   159,   160,   161,   162,   153,   163,    24,   153,
-     167,   168,   169,   170,   171,   172,   163,   161,   161,   153,
-     153,   164,   152,    45,     0,    47,   159,   161,   163,   186,
-     187,   188,   189,   190,   162,     4,   365,   366,   367,   104,
-     105,   457,   116,   152,   373,   162,   224,   225,   122,    25,
-     228,    22,   152,    24,   152,    31,   152,   301,   387,   388,
-      27,    28,     3,     4,   157,    41,    42,    43,    44,    45,
-      46,    47,   155,   230,     3,     4,     3,     4,     4,   159,
-       3,     4,     3,     4,     4,   252,    62,    77,    78,   155,
-      24,   488,    24,   490,     4,   252,    64,    65,    66,    67,
-      68,    69,    70,   432,   158,   434,   263,    24,   158,   438,
-     155,    59,     4,     4,     4,     4,     4,   446,   447,   448,
-       7,     7,     7,   280,   159,   161,   153,   156,   153,   153,
-     153,   375,   299,   377,   378,   379,   157,    36,   153,   153,
-     153,   385,   299,   300,   301,    10,    11,    12,    13,    14,
-      15,    16,    17,   153,   483,   484,   153,   486,   487,   153,
-     153,   153,    24,    24,   493,   153,   155,    63,   346,   155,
-     155,   155,   155,   502,   155,   155,   155,   155,   397,   398,
-     399,   400,   401,   155,   161,   155,   239,   240,   153,   153,
-     156,   410,   411,   412,   413,   414,   153,   153,   251,   157,
-     153,   153,   153,   153,    34,    24,   535,   119,   120,   121,
-     122,   123,   124,   125,   126,   127,   128,   155,   375,   376,
-     377,   378,   379,   380,   381,    21,    21,   405,   385,   386,
-     342,   284,     4,   155,   153,   153,    24,   153,   153,   458,
-     459,   294,   295,   296,   153,   574,   465,   153,   155,     4,
-     153,   495,   496,   497,    36,   153,   153,   161,   153,   153,
-     589,   161,     4,    57,   421,    24,    57,   596,    21,   153,
-     153,   600,   601,   153,   153,   153,   153,   153,   435,   153,
-     153,   156,   153,    21,    36,   157,   156,   156,   156,   533,
-     509,   510,   511,   512,   153,   159,   453,   516,   517,   518,
-     519,    27,    28,   153,   153,   156,   159,   153,   156,   557,
-     557,   156,   365,   366,   367,   156,   156,   156,   156,   156,
-     373,   156,   541,   542,   156,    21,   153,    21,   485,   577,
-     577,    21,    96,    96,   387,   388,    96,    41,   495,   496,
-     497,    25,   317,   422,   501,   318,   565,    96,   567,   568,
-      96,    52,   421,    61,     3,   222,    19,   595,   435,   501,
-      -1,   460,    -1,   520,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,   533,    -1,    -1,   432,
-      -1,   434,    -1,    -1,    -1,   438,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,   446,   447,   448,    -1,    -1,    -1,   125,
-     126,   127,   128,   129,   130,   131,   132,   133,   134,   135,
-     136,   137,   138,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,     5,     6,    -1,    -1,    -1,    -1,    -1,    -1,
-     483,   484,    -1,   486,   487,    -1,    -1,    -1,    -1,    22,
-     493,    24,    -1,    26,    -1,    -1,    20,    -1,    22,   502,
-      24,    -1,    -1,    -1,    -1,    38,    39,    31,    32,    33,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    41,    42,    43,
-      44,    45,    46,    47,    -1,    -1,    50,    51,    -1,    -1,
-      -1,    -1,   535,    -1,    58,    -1,    -1,    -1,    62,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    79,    80,    81,    82,
-      83,    84,    85,    86,    87,    88,    89,    90,    91,    92,
-      93,    94,    95,    96,    97,    98,    99,   100,    -1,    -1,
-      -1,   574,    -1,   106,    -1,   108,   109,   110,   111,   112,
-      -1,   114,   115,   116,    -1,    -1,   589,    -1,    -1,    -1,
+      37,   125,   130,   130,   128,   282,    53,     4,   305,   306,
+      29,     3,   111,    34,    23,     9,    53,   557,   325,   326,
+     131,    30,    15,   222,   153,    15,   161,    21,     0,   164,
+     159,    84,    52,    53,    54,   234,    57,   577,   335,   163,
+     239,   240,   166,   167,   168,   169,   170,   171,   172,    41,
+     357,    71,   251,    10,    11,    12,    13,    14,    15,    16,
+      17,     0,   153,   116,    57,   189,   190,    57,    23,   122,
+     161,   108,   109,   110,    10,    11,    12,    13,    14,    15,
+      16,    17,   193,   153,    61,   284,    25,   576,   125,    20,
+     153,   128,    31,   163,    86,   294,   295,   296,   405,   588,
+     163,   152,    41,    42,    43,    44,    45,    46,    47,   155,
+      41,    42,    43,    44,    45,    46,    47,   159,   164,    50,
+      32,    33,   164,    62,   161,   162,   163,   164,   165,   166,
+     167,   168,   169,   170,   171,   172,   153,    61,   155,    55,
+      56,    57,    45,   162,    47,   153,   163,   164,   153,   186,
+     187,   188,   189,   190,   163,   163,   116,   153,   163,    22,
+     457,    24,   122,   159,   152,   162,   365,   366,   367,    27,
+      28,   224,   225,    24,   373,   228,     4,   301,   119,   120,
+     121,   122,   123,   124,   125,   126,   127,   128,   387,   388,
+     153,    55,    56,   230,   108,   109,    27,    28,   161,     3,
+       4,   152,   159,     3,     4,   252,     3,     4,     3,     4,
+     152,   488,   152,   490,   152,   252,    64,    65,    66,    67,
+      68,    69,    70,   159,     3,     4,   263,    77,    78,   157,
+     155,     4,     4,   432,   155,   434,    24,     4,    24,   438,
+      24,   158,    59,   280,   155,   158,     4,   446,   447,   448,
+       4,   375,   299,   377,   378,   379,     4,     4,     7,     4,
+     161,   385,   299,   300,   301,     7,     7,   125,   126,   127,
+     128,   129,   130,   131,   132,   133,   134,   135,   136,   137,
+     138,   153,   156,   153,   483,   484,   153,   486,   487,   157,
+      36,   153,   153,   346,   493,    24,   153,   153,   397,   398,
+     399,   400,   401,   502,   153,    24,   239,   240,   153,   153,
+     153,   410,   411,   412,   413,   414,   153,   153,   251,    10,
+      11,    12,    13,    14,    15,    16,    17,   161,   155,   155,
+     155,   155,   155,   155,   155,   155,   535,   155,   375,   376,
+     377,   378,   379,   380,   381,   155,   153,   156,   385,   386,
+     342,   284,   405,    63,   153,   153,   157,   153,    34,   458,
+     459,   294,   295,   296,   153,   155,   465,    24,   153,    21,
+     153,   495,   496,   497,   155,   574,   153,    21,   153,   155,
+       4,   155,   153,   153,   421,   153,    24,   153,   153,     4,
+     589,   153,   153,   153,   153,    36,    57,   596,   435,     4,
+     153,   600,   601,   153,   161,   156,   161,    24,    57,   533,
+     509,   510,   511,   512,   153,   153,   453,   516,   517,   518,
+     519,   153,   153,   153,   157,   153,   153,   153,   153,   557,
+     557,   153,   365,   366,   367,   156,   159,   153,   156,   156,
+     373,   153,   541,   542,    21,   156,    36,   156,   485,   577,
+     577,   156,   156,   156,   387,   388,   156,   159,   495,   496,
+     497,   156,    21,   156,   501,   153,   565,   156,   567,   568,
+     156,    21,   153,    21,    21,    96,    96,    96,   317,    41,
+     318,    25,    96,   520,    96,   422,   222,    52,    61,   421,
+       3,    19,   595,   460,   501,    -1,   533,    -1,    20,   432,
+      22,   434,    24,    -1,    -1,   438,   435,    -1,    -1,    31,
+      32,    33,    -1,   446,   447,   448,    -1,    -1,    -1,    41,
+      42,    43,    44,    45,    46,    47,    -1,    -1,    50,    51,
+      -1,    -1,    -1,    -1,    -1,    -1,    58,    -1,     5,     6,
+      62,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+     483,   484,    -1,   486,   487,    22,    -1,    24,    -1,    26,
+     493,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   502,
+      -1,    38,    39,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,   535,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    79,    80,    81,    82,    83,    84,    85,    86,
+      87,    88,    89,    90,    91,    92,    93,    94,    95,    96,
+      97,    98,    99,   100,   101,   102,   103,   104,    -1,    -1,
+      -1,   574,    -1,   110,    -1,   112,    -1,   114,   115,   116,
+      -1,    -1,    -1,    -1,    -1,    -1,   589,    -1,    -1,    -1,
       -1,    -1,    -1,   596,    -1,    -1,    -1,   600,   601,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,   139,   140,   141,   142,
-     143,   144,   145,   146,   147,   148,   149,   150,   151,    -1,
-      -1,    -1,    -1,    -1,   157,    -1,    -1,   160,    -1,   162,
-       5,     6,   165,     8,     9,    10,    11,    12,    13,    14,
-      15,    16,    17,    18,    19,    -1,    21,    22,    -1,    24,
-       5,     6,    -1,     8,     9,    10,    11,    12,    13,    14,
-      15,    16,    17,    18,    19,    -1,    21,    22,    -1,    24,
-      -1,     5,     6,    48,     8,     9,    10,    11,    12,    13,
-      14,    15,    16,    17,    18,    19,    -1,    21,    22,    -1,
-      24,     5,     6,    48,     8,     9,    10,    11,    12,    13,
-      14,    15,    16,    17,    18,    19,    -1,    21,    22,    -1,
-      24,    -1,    -1,    -1,    48,    -1,     5,     6,    -1,     8,
+      -1,    -1,   139,   140,   141,   142,   143,   144,   145,   146,
+     147,   148,   149,   150,   151,    -1,    -1,    -1,    -1,    -1,
+     157,    -1,    -1,   160,    -1,   162,     5,     6,   165,     8,
        9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
-      19,    -1,    21,    22,    48,    24,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    37,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    48,
+      19,    -1,    21,    22,    -1,    24,     5,     6,    -1,     8,
+       9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
+      19,    -1,    21,    22,    -1,    24,    -1,     5,     6,    48,
+       8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
+      18,    19,    -1,    21,    22,    -1,    24,     5,     6,    48,
+       8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
+      18,    19,    -1,    21,    22,    -1,    24,    -1,    -1,    -1,
+      48,    -1,     5,     6,    -1,     8,     9,    10,    11,    12,
+      13,    14,    15,    16,    17,    18,    19,    -1,    21,    22,
+      48,    24,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    37,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    48,    -1,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   154,
-      -1,    -1,   157,    -1,    -1,   160,    -1,   162,   163,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   154,
-      -1,    -1,   157,    -1,    -1,   160,    -1,   162,   163,    -1,
+      -1,    -1,    -1,    -1,    -1,   154,    -1,    -1,   157,    -1,
+      -1,   160,    -1,   162,   163,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,   154,    -1,    -1,   157,    -1,
+      -1,   160,    -1,   162,   163,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,   154,    -1,    -1,   157,
+      -1,    -1,   160,    -1,   162,   163,    -1,     3,     4,     5,
+       6,     7,    -1,    -1,    -1,    -1,   154,    -1,    -1,   157,
+      -1,    -1,   160,    -1,   162,   163,    22,    -1,    24,    -1,
+      26,    27,    28,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,   154,    38,    39,   157,    -1,    -1,   160,    -1,   162,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-     154,    -1,    -1,   157,    -1,    -1,   160,    -1,   162,   163,
-      -1,     3,     4,     5,     6,     7,    -1,    -1,    -1,    -1,
-     154,    -1,    -1,   157,    -1,    -1,   160,    -1,   162,   163,
-      22,    -1,    24,    -1,    26,    27,    28,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,   154,    38,    39,   157,    -1,
-      -1,   160,    -1,   162,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    61,
+      -1,    -1,    -1,    -1,    -1,    61,    -1,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    79,    80,    81,
-      82,    83,    84,    85,    86,    87,    88,    89,    90,    91,
-      92,    93,    94,    95,    96,    97,    98,    99,   100,     3,
-       4,    -1,    -1,     7,   106,    -1,   108,   109,   110,   111,
-     112,    -1,   114,   115,   116,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    26,    27,    28,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    38,    39,    -1,   139,   140,   141,
-     142,   143,   144,   145,   146,   147,   148,   149,   150,   151,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    61,   160,    -1,
+      -1,    -1,    -1,    79,    80,    81,    82,    83,    84,    85,
+      86,    87,    88,    89,    90,    91,    92,    93,    94,    95,
+      96,    97,    98,    99,   100,   101,   102,   103,   104,    -1,
+      -1,    -1,    -1,    -1,   110,    -1,   112,    -1,   114,   115,
+     116,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,     3,     4,    -1,    -1,     7,    -1,    -1,
+      -1,    -1,    -1,   139,   140,   141,   142,   143,   144,   145,
+     146,   147,   148,   149,   150,   151,    26,    27,    28,    -1,
+      -1,    -1,    -1,    -1,   160,    -1,    -1,    -1,    38,    39,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    79,    80,    81,    82,    83,
-      84,    85,    86,    87,    88,    89,    90,    91,    92,    93,
-      94,    95,    96,    97,    98,    99,   100,    -1,    -1,    -1,
-      -1,    -1,   106,    -1,   108,   109,   110,   111,   112,    -1,
-     114,   115,   116,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,   139,   140,   141,   142,   143,
-     144,   145,   146,   147,   148,   149,   150,   151,    -1,    -1,
-      -1,    -1,    -1,    -1,     5,     6,   160,     8,     9,    10,
-      11,    12,    13,    14,    15,    16,    17,    18,    19,    -1,
-      21,    22,    -1,    24,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    37,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,     5,     6,    48,     8,     9,
-      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
-      -1,    21,    22,    -1,    24,     5,     6,    -1,     8,     9,
-      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
-      -1,    21,    22,    -1,    24,    -1,    -1,    -1,    48,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    37,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,     5,     6,    48,     8,
+      -1,    61,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    79,
+      80,    81,    82,    83,    84,    85,    86,    87,    88,    89,
+      90,    91,    92,    93,    94,    95,    96,    97,    98,    99,
+     100,   101,   102,   103,   104,    -1,    -1,    -1,    -1,    -1,
+     110,    -1,   112,    -1,   114,   115,   116,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   139,
+     140,   141,   142,   143,   144,   145,   146,   147,   148,   149,
+     150,   151,    -1,    -1,    -1,    -1,    -1,    -1,     5,     6,
+     160,     8,     9,    10,    11,    12,    13,    14,    15,    16,
+      17,    18,    19,    -1,    21,    22,    -1,    24,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      37,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,     5,
+       6,    48,     8,     9,    10,    11,    12,    13,    14,    15,
+      16,    17,    18,    19,    -1,    21,    22,    -1,    24,     5,
+       6,    -1,     8,     9,    10,    11,    12,    13,    14,    15,
+      16,    17,    18,    19,    -1,    21,    22,    -1,    24,    -1,
+      -1,    -1,    48,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    37,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       5,     6,    48,     8,     9,    10,    11,    12,    13,    14,
+      15,    16,    17,    18,    19,    -1,    21,    22,    -1,    24,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    37,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    48,    -1,    -1,    -1,   154,    -1,    -1,
+     157,    -1,    -1,   160,    -1,   162,     5,     6,    -1,     8,
        9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
       19,    -1,    21,    22,    -1,    24,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    37,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    48,
-      -1,    -1,    -1,   154,    -1,    -1,   157,    -1,    -1,   160,
-      -1,   162,     5,     6,    -1,     8,     9,    10,    11,    12,
-      13,    14,    15,    16,    17,    18,    19,    -1,    21,    22,
-      -1,    24,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,   154,    -1,    -1,   157,    -1,   159,
-     160,    -1,   162,    -1,    -1,    48,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,   154,    -1,    -1,   157,    -1,    -1,
-     160,    -1,   162,     5,     6,    -1,     8,     9,    10,    11,
-      12,    13,    14,    15,    16,    17,    18,    19,    -1,    21,
-      22,    -1,    24,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,   154,    -1,    -1,   157,    -1,
-      -1,   160,    -1,   162,     5,     6,    48,     8,     9,    10,
-      11,    12,    13,    14,    15,    16,    17,    18,    19,    -1,
-      21,    22,    -1,    24,     5,     6,    -1,     8,     9,    10,
-      11,    12,    13,    14,    15,    16,    17,    18,    19,    -1,
-      21,    22,    -1,    24,    -1,    -1,    -1,    48,    -1,    -1,
-      -1,   154,    -1,    -1,   157,    -1,    -1,   160,    -1,   162,
-      -1,    -1,    -1,    -1,    -1,     5,     6,    48,     8,     9,
-      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
-      -1,    21,    22,    -1,    24,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    48,    -1,
-      -1,    -1,   154,    -1,    -1,   157,    -1,    -1,   160,    -1,
-     162,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   154,    -1,
+      -1,   157,    -1,   159,   160,    -1,   162,    -1,    -1,    48,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   154,    -1,
+      -1,   157,    -1,    -1,   160,    -1,   162,     5,     6,    -1,
+       8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
+      18,    19,    -1,    21,    22,    -1,    24,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   154,
+      -1,    -1,   157,    -1,    -1,   160,    -1,   162,     5,     6,
+      48,     8,     9,    10,    11,    12,    13,    14,    15,    16,
+      17,    18,    19,    -1,    21,    22,    -1,    24,     5,     6,
+      -1,     8,     9,    10,    11,    12,    13,    14,    15,    16,
+      17,    18,    19,    -1,    21,    22,    -1,    24,    -1,    -1,
+      -1,    48,    -1,    -1,    -1,   154,    -1,    -1,   157,    -1,
+      -1,   160,    -1,   162,    -1,    -1,    -1,    -1,    -1,     5,
+       6,    48,     8,     9,    10,    11,    12,    13,    14,    15,
+      16,    17,    18,    19,    -1,    21,    22,    -1,    24,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,   154,    -1,    -1,   157,    -1,    -1,   160,
-      -1,   162,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,   154,    -1,    -1,   157,    -1,    -1,   160,
-      -1,   162,    -1,    -1,    -1,    -1,    35,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      49,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      59,    60,    -1,    -1,   154,    -1,    -1,   157,    -1,    -1,
-     160,    -1,   162,    72,    73,    74,    75,    76,    77,    78,
-      79,    80,    81,    82,    83,    84,    85,    86,    87,    88,
-      89,    90,    91,    92,    93,    94,    95,    96,    97,    98,
-      99,   100,   101,   102,   103,    -1,    -1,   106,   107,   108,
-     109,   110,   111,   112,   113,   114,   115,   116,   117,   118,
+      -1,    -1,    48,    -1,    -1,    -1,   154,    -1,    -1,   157,
+      -1,    -1,   160,    -1,   162,    -1,    -1,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-     139,   140,   141,   142,   143,   144,   145,   146,   147,   148,
-     149,   150,   151
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,   154,    -1,    -1,
+     157,    -1,    -1,   160,    -1,   162,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,   154,    -1,    -1,
+     157,    -1,    -1,   160,    -1,   162,    -1,    -1,    -1,    -1,
+      35,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    49,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    59,    60,    -1,    -1,   154,    -1,
+      -1,   157,    -1,    -1,   160,    -1,   162,    72,    73,    74,
+      75,    76,    77,    78,    79,    80,    81,    82,    83,    84,
+      85,    86,    87,    88,    89,    90,    91,    92,    93,    94,
+      95,    96,    97,    98,    99,   100,   101,   102,   103,   104,
+     105,   106,   107,    -1,    -1,   110,   111,   112,   113,   114,
+     115,   116,   117,   118,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,   139,   140,   141,   142,   143,   144,
+     145,   146,   147,   148,   149,   150,   151
 };
 
 /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
@@ -2947,7 +2946,7 @@
       74,    75,    76,    77,    78,    79,    80,    81,    82,    83,
       84,    85,    86,    87,    88,    89,    90,    91,    92,    93,
       94,    95,    96,    97,    98,    99,   100,   101,   102,   103,
-     106,   107,   108,   109,   110,   111,   112,   113,   114,   115,
+     104,   105,   106,   107,   110,   111,   112,   113,   114,   115,
      116,   117,   118,   139,   140,   141,   142,   143,   144,   145,
      146,   147,   148,   149,   150,   151,   169,   170,   171,   174,
      175,   233,   234,   240,   241,   243,   244,    24,    55,    56,
@@ -2961,9 +2960,9 @@
      129,   130,   131,   132,   133,   134,   135,   136,   137,   138,
      173,   191,   191,   229,   191,   191,   237,   229,   229,   229,
      229,   229,   229,   229,   191,   191,   191,   229,   229,   182,
-     104,   105,   153,   159,   205,   206,   204,    27,    28,     3,
-       4,   168,     4,     7,    26,    38,    39,    99,   100,   106,
-     108,   114,   115,   116,   157,   160,   162,   165,   169,   170,
+     108,   109,   153,   159,   205,   206,   204,    27,    28,     3,
+       4,   168,     4,     7,    26,    38,    39,   103,   104,   110,
+     112,   114,   115,   116,   157,   160,   162,   165,   169,   170,
      171,   174,   175,   197,   227,   203,   193,   193,   161,   163,
      193,    37,   191,   214,   215,   216,   153,   156,     3,     4,
        7,    26,    27,    28,    38,    39,    61,   160,   197,   226,
@@ -3661,7 +3660,7 @@
   switch (yyn)
     {
         case 3:
-#line 1581 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 1576 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     {
     if ((yyvsp[0].UIntVal) > (uint32_t)INT32_MAX)     // Outside of my range!
       error("Value too large for type");
@@ -3670,7 +3669,7 @@
     break;
 
   case 5:
-#line 1590 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 1585 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     {
     if ((yyvsp[0].UInt64Val) > (uint64_t)INT64_MAX)     // Outside of my range!
       error("Value too large for type");
@@ -3679,226 +3678,226 @@
     break;
 
   case 26:
-#line 1612 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 1607 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     { (yyval.IPred) = ICmpInst::ICMP_EQ; ;}
     break;
 
   case 27:
-#line 1612 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 1607 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     { (yyval.IPred) = ICmpInst::ICMP_NE; ;}
     break;
 
   case 28:
-#line 1613 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 1608 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     { (yyval.IPred) = ICmpInst::ICMP_SLT; ;}
     break;
 
   case 29:
-#line 1613 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 1608 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     { (yyval.IPred) = ICmpInst::ICMP_SGT; ;}
     break;
 
   case 30:
-#line 1614 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 1609 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     { (yyval.IPred) = ICmpInst::ICMP_SLE; ;}
     break;
 
   case 31:
-#line 1614 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 1609 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     { (yyval.IPred) = ICmpInst::ICMP_SGE; ;}
     break;
 
   case 32:
-#line 1615 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 1610 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     { (yyval.IPred) = ICmpInst::ICMP_ULT; ;}
     break;
 
   case 33:
-#line 1615 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 1610 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     { (yyval.IPred) = ICmpInst::ICMP_UGT; ;}
     break;
 
   case 34:
-#line 1616 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 1611 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     { (yyval.IPred) = ICmpInst::ICMP_ULE; ;}
     break;
 
   case 35:
-#line 1616 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 1611 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     { (yyval.IPred) = ICmpInst::ICMP_UGE; ;}
     break;
 
   case 36:
-#line 1620 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 1615 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     { (yyval.FPred) = FCmpInst::FCMP_OEQ; ;}
     break;
 
   case 37:
-#line 1620 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 1615 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     { (yyval.FPred) = FCmpInst::FCMP_ONE; ;}
     break;
 
   case 38:
-#line 1621 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 1616 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     { (yyval.FPred) = FCmpInst::FCMP_OLT; ;}
     break;
 
   case 39:
-#line 1621 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 1616 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     { (yyval.FPred) = FCmpInst::FCMP_OGT; ;}
     break;
 
   case 40:
-#line 1622 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 1617 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     { (yyval.FPred) = FCmpInst::FCMP_OLE; ;}
     break;
 
   case 41:
-#line 1622 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 1617 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     { (yyval.FPred) = FCmpInst::FCMP_OGE; ;}
     break;
 
   case 42:
-#line 1623 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 1618 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     { (yyval.FPred) = FCmpInst::FCMP_ORD; ;}
     break;
 
   case 43:
-#line 1623 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 1618 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     { (yyval.FPred) = FCmpInst::FCMP_UNO; ;}
     break;
 
   case 44:
-#line 1624 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 1619 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     { (yyval.FPred) = FCmpInst::FCMP_UEQ; ;}
     break;
 
   case 45:
-#line 1624 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 1619 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     { (yyval.FPred) = FCmpInst::FCMP_UNE; ;}
     break;
 
   case 46:
-#line 1625 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 1620 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     { (yyval.FPred) = FCmpInst::FCMP_ULT; ;}
     break;
 
   case 47:
-#line 1625 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 1620 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     { (yyval.FPred) = FCmpInst::FCMP_UGT; ;}
     break;
 
   case 48:
-#line 1626 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 1621 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     { (yyval.FPred) = FCmpInst::FCMP_ULE; ;}
     break;
 
   case 49:
-#line 1626 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 1621 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     { (yyval.FPred) = FCmpInst::FCMP_UGE; ;}
     break;
 
   case 50:
-#line 1627 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 1622 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     { (yyval.FPred) = FCmpInst::FCMP_TRUE; ;}
     break;
 
   case 51:
-#line 1628 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 1623 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     { (yyval.FPred) = FCmpInst::FCMP_FALSE; ;}
     break;
 
   case 81:
-#line 1659 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 1654 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     {
     (yyval.StrVal) = (yyvsp[-1].StrVal);
   ;}
     break;
 
   case 82:
-#line 1662 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 1657 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     {
     (yyval.StrVal) = 0;
   ;}
     break;
 
   case 83:
-#line 1667 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 1662 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     { (yyval.Linkage) = GlobalValue::InternalLinkage; ;}
     break;
 
   case 84:
-#line 1668 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 1663 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     { (yyval.Linkage) = GlobalValue::LinkOnceLinkage; ;}
     break;
 
   case 85:
-#line 1669 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 1664 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     { (yyval.Linkage) = GlobalValue::WeakLinkage; ;}
     break;
 
   case 86:
-#line 1670 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 1665 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     { (yyval.Linkage) = GlobalValue::AppendingLinkage; ;}
     break;
 
   case 87:
-#line 1671 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 1666 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     { (yyval.Linkage) = GlobalValue::DLLImportLinkage; ;}
     break;
 
   case 88:
-#line 1672 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 1667 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     { (yyval.Linkage) = GlobalValue::DLLExportLinkage; ;}
     break;
 
   case 89:
-#line 1673 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 1668 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     { (yyval.Linkage) = GlobalValue::ExternalWeakLinkage; ;}
     break;
 
   case 90:
-#line 1674 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 1669 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     { (yyval.Linkage) = GlobalValue::ExternalLinkage; ;}
     break;
 
   case 91:
-#line 1678 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 1673 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     { CurFun.LastCC = (yyval.UIntVal) = OldCallingConv::C; ;}
     break;
 
   case 92:
-#line 1679 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 1674 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     { CurFun.LastCC = (yyval.UIntVal) = OldCallingConv::C; ;}
     break;
 
   case 93:
-#line 1680 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 1675 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     { CurFun.LastCC = (yyval.UIntVal) = OldCallingConv::CSRet; ;}
     break;
 
   case 94:
-#line 1681 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 1676 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     { CurFun.LastCC = (yyval.UIntVal) = OldCallingConv::Fast; ;}
     break;
 
   case 95:
-#line 1682 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 1677 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     { CurFun.LastCC = (yyval.UIntVal) = OldCallingConv::Cold; ;}
     break;
 
   case 96:
-#line 1683 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 1678 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     { CurFun.LastCC = (yyval.UIntVal) = OldCallingConv::X86_StdCall; ;}
     break;
 
   case 97:
-#line 1684 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 1679 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     { CurFun.LastCC = (yyval.UIntVal) = OldCallingConv::X86_FastCall; ;}
     break;
 
   case 98:
-#line 1685 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 1680 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     {
     if ((unsigned)(yyvsp[0].UInt64Val) != (yyvsp[0].UInt64Val))
       error("Calling conv too large");
@@ -3907,12 +3906,12 @@
     break;
 
   case 99:
-#line 1695 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 1690 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     { (yyval.UIntVal) = 0; ;}
     break;
 
   case 100:
-#line 1696 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 1691 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     {
     (yyval.UIntVal) = (yyvsp[0].UInt64Val);
     if ((yyval.UIntVal) != 0 && !isPowerOf2_32((yyval.UIntVal)))
@@ -3921,12 +3920,12 @@
     break;
 
   case 101:
-#line 1704 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 1699 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     { (yyval.UIntVal) = 0; ;}
     break;
 
   case 102:
-#line 1705 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 1700 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     {
     (yyval.UIntVal) = (yyvsp[0].UInt64Val);
     if ((yyval.UIntVal) != 0 && !isPowerOf2_32((yyval.UIntVal)))
@@ -3935,7 +3934,7 @@
     break;
 
   case 103:
-#line 1713 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 1708 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     {
     for (unsigned i = 0, e = strlen((yyvsp[0].StrVal)); i != e; ++i)
       if ((yyvsp[0].StrVal)[i] == '"' || (yyvsp[0].StrVal)[i] == '\\')
@@ -3945,27 +3944,27 @@
     break;
 
   case 104:
-#line 1722 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 1717 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     { (yyval.StrVal) = 0; ;}
     break;
 
   case 105:
-#line 1723 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 1718 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     { (yyval.StrVal) = (yyvsp[0].StrVal); ;}
     break;
 
   case 106:
-#line 1730 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 1725 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     {;}
     break;
 
   case 107:
-#line 1731 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 1726 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     {;}
     break;
 
   case 108:
-#line 1735 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 1730 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     {
     CurGV->setSection((yyvsp[0].StrVal));
     free((yyvsp[0].StrVal));
@@ -3973,7 +3972,7 @@
     break;
 
   case 109:
-#line 1739 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 1734 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     {
     if ((yyvsp[0].UInt64Val) != 0 && !isPowerOf2_32((yyvsp[0].UInt64Val)))
       error("Alignment must be a power of two");
@@ -3983,7 +3982,7 @@
     break;
 
   case 111:
-#line 1756 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 1751 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     { 
     (yyval.TypeVal).T = new PATypeHolder((yyvsp[0].PrimType).T); 
     (yyval.TypeVal).S = Signless;
@@ -3991,7 +3990,7 @@
     break;
 
   case 113:
-#line 1764 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 1759 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     { 
     (yyval.TypeVal).T = new PATypeHolder((yyvsp[0].PrimType).T); 
     (yyval.TypeVal).S = Signless;
@@ -3999,7 +3998,7 @@
     break;
 
   case 114:
-#line 1771 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 1766 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     {
     if (!UpRefs.empty())
       error("Invalid upreference in type: " + (*(yyvsp[0].TypeVal).T)->getDescription());
@@ -4008,7 +4007,7 @@
     break;
 
   case 127:
-#line 1785 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 1780 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     { 
     (yyval.TypeVal).T = new PATypeHolder((yyvsp[0].PrimType).T);
     (yyval.TypeVal).S = (yyvsp[0].PrimType).S;
@@ -4016,7 +4015,7 @@
     break;
 
   case 128:
-#line 1789 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 1784 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     {
     (yyval.TypeVal).T = new PATypeHolder(OpaqueType::get());
     (yyval.TypeVal).S = Signless;
@@ -4024,7 +4023,7 @@
     break;
 
   case 129:
-#line 1793 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 1788 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     {            // Named types are also simple types...
     const Type* tmp = getType((yyvsp[0].ValIDVal));
     (yyval.TypeVal).T = new PATypeHolder(tmp);
@@ -4033,7 +4032,7 @@
     break;
 
   case 130:
-#line 1798 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 1793 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     {                   // Type UpReference
     if ((yyvsp[0].UInt64Val) > (uint64_t)~0U) 
       error("Value out of range");
@@ -4046,7 +4045,7 @@
     break;
 
   case 131:
-#line 1807 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 1802 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     {           // Function derived type?
     std::vector<const Type*> Params;
     for (std::list<llvm::PATypeInfo>::iterator I = (yyvsp[-1].TypeList)->begin(),
@@ -4071,7 +4070,7 @@
     break;
 
   case 132:
-#line 1828 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 1823 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     {          // Sized array type?
     (yyval.TypeVal).T = new PATypeHolder(HandleUpRefs(ArrayType::get((yyvsp[-1].TypeVal).T->get(), 
                                                         (unsigned)(yyvsp[-3].UInt64Val))));
@@ -4081,7 +4080,7 @@
     break;
 
   case 133:
-#line 1834 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 1829 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     {          // Packed array type?
      const llvm::Type* ElemTy = (yyvsp[-1].TypeVal).T->get();
      if ((unsigned)(yyvsp[-3].UInt64Val) != (yyvsp[-3].UInt64Val))
@@ -4098,7 +4097,7 @@
     break;
 
   case 134:
-#line 1847 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 1842 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     {                        // Structure type?
     std::vector<const Type*> Elements;
     for (std::list<llvm::PATypeInfo>::iterator I = (yyvsp[-1].TypeList)->begin(),
@@ -4111,7 +4110,7 @@
     break;
 
   case 135:
-#line 1856 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 1851 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     {                                  // Empty structure type?
     (yyval.TypeVal).T = new PATypeHolder(StructType::get(std::vector<const Type*>()));
     (yyval.TypeVal).S = Signless;
@@ -4119,7 +4118,7 @@
     break;
 
   case 136:
-#line 1860 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 1855 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     {                // Packed Structure type?
     std::vector<const Type*> Elements;
     for (std::list<llvm::PATypeInfo>::iterator I = (yyvsp[-2].TypeList)->begin(),
@@ -4134,7 +4133,7 @@
     break;
 
   case 137:
-#line 1871 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 1866 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     {                          // Empty packed structure type?
     (yyval.TypeVal).T = new PATypeHolder(StructType::get(std::vector<const Type*>(),true));
     (yyval.TypeVal).S = Signless;
@@ -4142,7 +4141,7 @@
     break;
 
   case 138:
-#line 1875 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 1870 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     {                             // Pointer type?
     if ((yyvsp[-1].TypeVal).T->get() == Type::LabelTy)
       error("Cannot form a pointer to a basic block");
@@ -4153,7 +4152,7 @@
     break;
 
   case 139:
-#line 1888 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 1883 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     {
     (yyval.TypeList) = new std::list<PATypeInfo>();
     (yyval.TypeList)->push_back((yyvsp[0].TypeVal)); 
@@ -4161,14 +4160,14 @@
     break;
 
   case 140:
-#line 1892 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 1887 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     {
     ((yyval.TypeList)=(yyvsp[-2].TypeList))->push_back((yyvsp[0].TypeVal));
   ;}
     break;
 
   case 142:
-#line 1900 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 1895 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     {
     PATypeInfo VoidTI;
     VoidTI.T = new PATypeHolder(Type::VoidTy);
@@ -4178,7 +4177,7 @@
     break;
 
   case 143:
-#line 1906 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 1901 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     {
     (yyval.TypeList) = new std::list<PATypeInfo>();
     PATypeInfo VoidTI;
@@ -4189,14 +4188,14 @@
     break;
 
   case 144:
-#line 1913 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 1908 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     {
     (yyval.TypeList) = new std::list<PATypeInfo>();
   ;}
     break;
 
   case 145:
-#line 1925 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 1920 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     { // Nonempty unsized arr
     const ArrayType *ATy = dyn_cast<ArrayType>((yyvsp[-3].TypeVal).T->get());
     if (ATy == 0)
@@ -4230,7 +4229,7 @@
     break;
 
   case 146:
-#line 1955 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 1950 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     {
     const ArrayType *ATy = dyn_cast<ArrayType>((yyvsp[-2].TypeVal).T->get());
     if (ATy == 0)
@@ -4247,7 +4246,7 @@
     break;
 
   case 147:
-#line 1968 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 1963 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     {
     const ArrayType *ATy = dyn_cast<ArrayType>((yyvsp[-2].TypeVal).T->get());
     if (ATy == 0)
@@ -4274,7 +4273,7 @@
     break;
 
   case 148:
-#line 1991 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 1986 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     { // Nonempty unsized arr
     const PackedType *PTy = dyn_cast<PackedType>((yyvsp[-3].TypeVal).T->get());
     if (PTy == 0)
@@ -4306,7 +4305,7 @@
     break;
 
   case 149:
-#line 2019 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2014 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     {
     const StructType *STy = dyn_cast<StructType>((yyvsp[-3].TypeVal).T->get());
     if (STy == 0)
@@ -4332,7 +4331,7 @@
     break;
 
   case 150:
-#line 2041 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2036 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     {
     const StructType *STy = dyn_cast<StructType>((yyvsp[-2].TypeVal).T->get());
     if (STy == 0)
@@ -4347,7 +4346,7 @@
     break;
 
   case 151:
-#line 2052 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2047 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     {
     const StructType *STy = dyn_cast<StructType>((yyvsp[-5].TypeVal).T->get());
     if (STy == 0)
@@ -4373,7 +4372,7 @@
     break;
 
   case 152:
-#line 2074 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2069 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     {
     const StructType *STy = dyn_cast<StructType>((yyvsp[-4].TypeVal).T->get());
     if (STy == 0)
@@ -4388,7 +4387,7 @@
     break;
 
   case 153:
-#line 2085 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2080 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     {
     const PointerType *PTy = dyn_cast<PointerType>((yyvsp[-1].TypeVal).T->get());
     if (PTy == 0)
@@ -4401,7 +4400,7 @@
     break;
 
   case 154:
-#line 2094 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2089 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     {
     (yyval.ConstVal).C = UndefValue::get((yyvsp[-1].TypeVal).T->get());
     (yyval.ConstVal).S = (yyvsp[-1].TypeVal).S;
@@ -4410,7 +4409,7 @@
     break;
 
   case 155:
-#line 2099 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2094 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     {
     const PointerType *Ty = dyn_cast<PointerType>((yyvsp[-1].TypeVal).T->get());
     if (Ty == 0)
@@ -4472,7 +4471,7 @@
     break;
 
   case 156:
-#line 2157 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2152 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     {
     if ((yyvsp[-1].TypeVal).T->get() != (yyvsp[0].ConstVal).C->getType())
       error("Mismatched types for constant expression");
@@ -4483,7 +4482,7 @@
     break;
 
   case 157:
-#line 2164 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2159 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     {
     const Type *Ty = (yyvsp[-1].TypeVal).T->get();
     if (isa<FunctionType>(Ty) || Ty == Type::LabelTy || isa<OpaqueType>(Ty))
@@ -4495,7 +4494,7 @@
     break;
 
   case 158:
-#line 2172 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2167 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     {      // integral constants
     const Type *Ty = (yyvsp[-1].PrimType).T;
     if (!ConstantInt::isValueValidForType(Ty, (yyvsp[0].SInt64Val)))
@@ -4506,7 +4505,7 @@
     break;
 
   case 159:
-#line 2179 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2174 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     {            // integral constants
     const Type *Ty = (yyvsp[-1].PrimType).T;
     if (!ConstantInt::isValueValidForType(Ty, (yyvsp[0].UInt64Val)))
@@ -4517,7 +4516,7 @@
     break;
 
   case 160:
-#line 2186 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2181 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     {                      // Boolean constants
     (yyval.ConstVal).C = ConstantInt::get(Type::Int1Ty, true);
     (yyval.ConstVal).S = Unsigned;
@@ -4525,7 +4524,7 @@
     break;
 
   case 161:
-#line 2190 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2185 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     {                     // Boolean constants
     (yyval.ConstVal).C = ConstantInt::get(Type::Int1Ty, false);
     (yyval.ConstVal).S = Unsigned;
@@ -4533,7 +4532,7 @@
     break;
 
   case 162:
-#line 2194 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2189 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     {                   // Float & Double constants
     if (!ConstantFP::isValueValidForType((yyvsp[-1].PrimType).T, (yyvsp[0].FPVal)))
       error("Floating point constant invalid for type");
@@ -4543,7 +4542,7 @@
     break;
 
   case 163:
-#line 2203 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2198 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     {
     const Type* SrcTy = (yyvsp[-3].ConstVal).C->getType();
     const Type* DstTy = (yyvsp[-1].TypeVal).T->get();
@@ -4562,7 +4561,7 @@
     break;
 
   case 164:
-#line 2218 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2213 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     {
     const Type *Ty = (yyvsp[-2].ConstVal).C->getType();
     if (!isa<PointerType>(Ty))
@@ -4579,7 +4578,7 @@
     break;
 
   case 165:
-#line 2231 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2226 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     {
     if (!(yyvsp[-5].ConstVal).C->getType()->isInteger() ||
         cast<IntegerType>((yyvsp[-5].ConstVal).C->getType())->getBitWidth() != 1)
@@ -4592,7 +4591,7 @@
     break;
 
   case 166:
-#line 2240 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2235 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     {
     const Type *Ty = (yyvsp[-3].ConstVal).C->getType();
     if (Ty != (yyvsp[-1].ConstVal).C->getType())
@@ -4624,7 +4623,7 @@
     break;
 
   case 167:
-#line 2268 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2263 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     {
     const Type* Ty = (yyvsp[-3].ConstVal).C->getType();
     if (Ty != (yyvsp[-1].ConstVal).C->getType())
@@ -4641,7 +4640,7 @@
     break;
 
   case 168:
-#line 2281 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2276 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     {
     const Type* Ty = (yyvsp[-3].ConstVal).C->getType();
     if (Ty != (yyvsp[-1].ConstVal).C->getType())
@@ -4654,7 +4653,7 @@
     break;
 
   case 169:
-#line 2290 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2285 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     {
     if ((yyvsp[-3].ConstVal).C->getType() != (yyvsp[-1].ConstVal).C->getType()) 
       error("icmp operand types must match");
@@ -4664,7 +4663,7 @@
     break;
 
   case 170:
-#line 2296 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2291 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     {
     if ((yyvsp[-3].ConstVal).C->getType() != (yyvsp[-1].ConstVal).C->getType()) 
       error("fcmp operand types must match");
@@ -4674,20 +4673,22 @@
     break;
 
   case 171:
-#line 2302 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2297 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     {
     if (!(yyvsp[-1].ConstVal).C->getType()->isInteger() ||
         cast<IntegerType>((yyvsp[-1].ConstVal).C->getType())->getBitWidth() != 8)
       error("Shift count for shift constant must be unsigned byte");
+    const Type* Ty = (yyvsp[-3].ConstVal).C->getType();
     if (!(yyvsp[-3].ConstVal).C->getType()->isInteger())
       error("Shift constant expression requires integer operand");
-    (yyval.ConstVal).C = ConstantExpr::get(getOtherOp((yyvsp[-5].OtherOpVal), (yyvsp[-3].ConstVal).S), (yyvsp[-3].ConstVal).C, (yyvsp[-1].ConstVal).C);
+    Constant *ShiftAmt = ConstantExpr::getZExt((yyvsp[-1].ConstVal).C, Ty);
+    (yyval.ConstVal).C = ConstantExpr::get(getBinaryOp((yyvsp[-5].BinaryOpVal), Ty, (yyvsp[-3].ConstVal).S), (yyvsp[-3].ConstVal).C, ShiftAmt);
     (yyval.ConstVal).S = (yyvsp[-3].ConstVal).S;
   ;}
     break;
 
   case 172:
-#line 2311 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2308 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     {
     if (!ExtractElementInst::isValidOperands((yyvsp[-3].ConstVal).C, (yyvsp[-1].ConstVal).C))
       error("Invalid extractelement operands");
@@ -4697,7 +4698,7 @@
     break;
 
   case 173:
-#line 2317 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2314 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     {
     if (!InsertElementInst::isValidOperands((yyvsp[-5].ConstVal).C, (yyvsp[-3].ConstVal).C, (yyvsp[-1].ConstVal).C))
       error("Invalid insertelement operands");
@@ -4707,7 +4708,7 @@
     break;
 
   case 174:
-#line 2323 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2320 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     {
     if (!ShuffleVectorInst::isValidOperands((yyvsp[-5].ConstVal).C, (yyvsp[-3].ConstVal).C, (yyvsp[-1].ConstVal).C))
       error("Invalid shufflevector operands");
@@ -4717,12 +4718,12 @@
     break;
 
   case 175:
-#line 2334 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2331 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     { ((yyval.ConstVector) = (yyvsp[-2].ConstVector))->push_back((yyvsp[0].ConstVal)); ;}
     break;
 
   case 176:
-#line 2335 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2332 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     {
     (yyval.ConstVector) = new std::vector<ConstInfo>();
     (yyval.ConstVector)->push_back((yyvsp[0].ConstVal));
@@ -4730,17 +4731,17 @@
     break;
 
   case 177:
-#line 2344 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2341 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     { (yyval.BoolVal) = false; ;}
     break;
 
   case 178:
-#line 2345 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2342 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     { (yyval.BoolVal) = true; ;}
     break;
 
   case 179:
-#line 2357 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2354 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     {
     (yyval.ModuleVal) = ParserResult = (yyvsp[0].ModuleVal);
     CurModule.ModuleDone();
@@ -4748,27 +4749,27 @@
     break;
 
   case 180:
-#line 2366 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2363 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     { (yyval.ModuleVal) = (yyvsp[-1].ModuleVal); CurFun.FunctionDone(); ;}
     break;
 
   case 181:
-#line 2367 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2364 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     { (yyval.ModuleVal) = (yyvsp[-1].ModuleVal); ;}
     break;
 
   case 182:
-#line 2368 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2365 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     { (yyval.ModuleVal) = (yyvsp[-3].ModuleVal); ;}
     break;
 
   case 183:
-#line 2369 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2366 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     { (yyval.ModuleVal) = (yyvsp[-1].ModuleVal); ;}
     break;
 
   case 184:
-#line 2370 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2367 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     {
     (yyval.ModuleVal) = CurModule.CurrentModule;
     // Emit an error if there are any unresolved types left.
@@ -4784,7 +4785,7 @@
     break;
 
   case 185:
-#line 2386 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2383 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     {
     // Eagerly resolve types.  This is not an optimization, this is a
     // requirement that is due to the fact that we could have this:
@@ -4808,19 +4809,19 @@
     break;
 
   case 186:
-#line 2406 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2403 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     {       // Function prototypes can be in const pool
   ;}
     break;
 
   case 187:
-#line 2408 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2405 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     {  // Asm blocks can be in the const pool
   ;}
     break;
 
   case 188:
-#line 2410 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2407 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     {
     if ((yyvsp[0].ConstVal).C == 0) 
       error("Global value initializer is not a constant");
@@ -4829,14 +4830,14 @@
     break;
 
   case 189:
-#line 2414 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2411 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     {
     CurGV = 0;
   ;}
     break;
 
   case 190:
-#line 2417 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2414 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     {
     const Type *Ty = (yyvsp[0].TypeVal).T->get();
     CurGV = ParseGlobalVariable((yyvsp[-3].StrVal), GlobalValue::ExternalLinkage, (yyvsp[-1].BoolVal), Ty, 0);
@@ -4845,14 +4846,14 @@
     break;
 
   case 191:
-#line 2421 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2418 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     {
     CurGV = 0;
   ;}
     break;
 
   case 192:
-#line 2424 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2421 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     {
     const Type *Ty = (yyvsp[0].TypeVal).T->get();
     CurGV = ParseGlobalVariable((yyvsp[-3].StrVal), GlobalValue::DLLImportLinkage, (yyvsp[-1].BoolVal), Ty, 0);
@@ -4861,14 +4862,14 @@
     break;
 
   case 193:
-#line 2428 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2425 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     {
     CurGV = 0;
   ;}
     break;
 
   case 194:
-#line 2431 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2428 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     {
     const Type *Ty = (yyvsp[0].TypeVal).T->get();
     CurGV = 
@@ -4878,32 +4879,32 @@
     break;
 
   case 195:
-#line 2436 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2433 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     {
     CurGV = 0;
   ;}
     break;
 
   case 196:
-#line 2439 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2436 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     { 
   ;}
     break;
 
   case 197:
-#line 2441 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2438 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     {
   ;}
     break;
 
   case 198:
-#line 2443 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2440 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     { 
   ;}
     break;
 
   case 199:
-#line 2448 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2445 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     {
     const std::string &AsmSoFar = CurModule.CurrentModule->getModuleInlineAsm();
     char *EndStr = UnEscapeLexed((yyvsp[0].StrVal), true);
@@ -4918,24 +4919,24 @@
     break;
 
   case 200:
-#line 2462 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2459 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     { (yyval.Endianness) = Module::BigEndian; ;}
     break;
 
   case 201:
-#line 2463 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2460 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     { (yyval.Endianness) = Module::LittleEndian; ;}
     break;
 
   case 202:
-#line 2467 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2464 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     {
     CurModule.setEndianness((yyvsp[0].Endianness));
   ;}
     break;
 
   case 203:
-#line 2470 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2467 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     {
     if ((yyvsp[0].UInt64Val) == 32)
       CurModule.setPointerSize(Module::Pointer32);
@@ -4947,7 +4948,7 @@
     break;
 
   case 204:
-#line 2478 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2475 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     {
     CurModule.CurrentModule->setTargetTriple((yyvsp[0].StrVal));
     free((yyvsp[0].StrVal));
@@ -4955,7 +4956,7 @@
     break;
 
   case 205:
-#line 2482 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2479 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     {
     CurModule.CurrentModule->setDataLayout((yyvsp[0].StrVal));
     free((yyvsp[0].StrVal));
@@ -4963,7 +4964,7 @@
     break;
 
   case 207:
-#line 2493 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2490 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     {
       CurModule.CurrentModule->addLibrary((yyvsp[0].StrVal));
       free((yyvsp[0].StrVal));
@@ -4971,7 +4972,7 @@
     break;
 
   case 208:
-#line 2497 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2494 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     {
     CurModule.CurrentModule->addLibrary((yyvsp[0].StrVal));
     free((yyvsp[0].StrVal));
@@ -4979,17 +4980,17 @@
     break;
 
   case 209:
-#line 2501 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2498 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     { ;}
     break;
 
   case 213:
-#line 2514 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2511 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     { (yyval.StrVal) = 0; ;}
     break;
 
   case 214:
-#line 2518 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2515 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     {
     if ((yyvsp[-1].TypeVal).T->get() == Type::VoidTy)
       error("void typed arguments are invalid");
@@ -4998,7 +4999,7 @@
     break;
 
   case 215:
-#line 2526 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2523 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     {
     (yyval.ArgList) = (yyvsp[-2].ArgList);
     (yyval.ArgList)->push_back(*(yyvsp[0].ArgVal));
@@ -5007,7 +5008,7 @@
     break;
 
   case 216:
-#line 2531 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2528 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     {
     (yyval.ArgList) = new std::vector<std::pair<PATypeInfo,char*> >();
     (yyval.ArgList)->push_back(*(yyvsp[0].ArgVal));
@@ -5016,12 +5017,12 @@
     break;
 
   case 217:
-#line 2539 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2536 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     { (yyval.ArgList) = (yyvsp[0].ArgList); ;}
     break;
 
   case 218:
-#line 2540 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2537 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     {
     (yyval.ArgList) = (yyvsp[-2].ArgList);
     PATypeInfo VoidTI;
@@ -5032,7 +5033,7 @@
     break;
 
   case 219:
-#line 2547 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2544 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     {
     (yyval.ArgList) = new std::vector<std::pair<PATypeInfo,char*> >();
     PATypeInfo VoidTI;
@@ -5043,12 +5044,12 @@
     break;
 
   case 220:
-#line 2554 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2551 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     { (yyval.ArgList) = 0; ;}
     break;
 
   case 221:
-#line 2558 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2555 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     {
     UnEscapeLexed((yyvsp[-5].StrVal));
     std::string FunctionName((yyvsp[-5].StrVal));
@@ -5164,7 +5165,7 @@
     break;
 
   case 224:
-#line 2677 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2674 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     {
     (yyval.FunctionVal) = CurFun.CurrentFunction;
 
@@ -5175,29 +5176,29 @@
     break;
 
   case 227:
-#line 2691 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2688 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     {
     (yyval.FunctionVal) = (yyvsp[-1].FunctionVal);
   ;}
     break;
 
   case 229:
-#line 2697 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2694 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     { CurFun.Linkage = GlobalValue::DLLImportLinkage; ;}
     break;
 
   case 230:
-#line 2698 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2695 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     { CurFun.Linkage = GlobalValue::ExternalWeakLinkage; ;}
     break;
 
   case 231:
-#line 2702 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2699 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     { CurFun.isDeclare = true; ;}
     break;
 
   case 232:
-#line 2702 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2699 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     {
     (yyval.FunctionVal) = CurFun.CurrentFunction;
     CurFun.FunctionDone();
@@ -5206,57 +5207,57 @@
     break;
 
   case 233:
-#line 2714 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2711 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     { (yyval.BoolVal) = false; ;}
     break;
 
   case 234:
-#line 2715 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2712 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     { (yyval.BoolVal) = true; ;}
     break;
 
   case 235:
-#line 2720 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2717 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     {    (yyval.ValIDVal) = ValID::create((yyvsp[0].SInt64Val)); ;}
     break;
 
   case 236:
-#line 2721 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2718 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     { (yyval.ValIDVal) = ValID::create((yyvsp[0].UInt64Val)); ;}
     break;
 
   case 237:
-#line 2722 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2719 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     { (yyval.ValIDVal) = ValID::create((yyvsp[0].FPVal)); ;}
     break;
 
   case 238:
-#line 2723 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2720 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     { (yyval.ValIDVal) = ValID::create(ConstantInt::get(Type::Int1Ty, true)); ;}
     break;
 
   case 239:
-#line 2724 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2721 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     { (yyval.ValIDVal) = ValID::create(ConstantInt::get(Type::Int1Ty, false)); ;}
     break;
 
   case 240:
-#line 2725 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2722 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     { (yyval.ValIDVal) = ValID::createNull(); ;}
     break;
 
   case 241:
-#line 2726 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2723 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     { (yyval.ValIDVal) = ValID::createUndef(); ;}
     break;
 
   case 242:
-#line 2727 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2724 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     { (yyval.ValIDVal) = ValID::createZeroInit(); ;}
     break;
 
   case 243:
-#line 2728 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2725 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     { // Nonempty unsized packed vector
     const Type *ETy = (*(yyvsp[-1].ConstVector))[0].C->getType();
     int NumElements = (yyvsp[-1].ConstVector)->size(); 
@@ -5281,14 +5282,14 @@
     break;
 
   case 244:
-#line 2749 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2746 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     {
     (yyval.ValIDVal) = ValID::create((yyvsp[0].ConstVal).C);
   ;}
     break;
 
   case 245:
-#line 2752 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2749 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     {
     char *End = UnEscapeLexed((yyvsp[-2].StrVal), true);
     std::string AsmStr = std::string((yyvsp[-2].StrVal), End);
@@ -5301,17 +5302,17 @@
     break;
 
   case 246:
-#line 2767 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2764 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     {  (yyval.ValIDVal) = ValID::create((yyvsp[0].SIntVal)); ;}
     break;
 
   case 247:
-#line 2768 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2765 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     {  (yyval.ValIDVal) = ValID::create((yyvsp[0].StrVal)); ;}
     break;
 
   case 250:
-#line 2781 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2778 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     { 
     const Type *Ty = (yyvsp[-1].TypeVal).T->get();
     (yyval.ValueVal).S = (yyvsp[-1].TypeVal).S;
@@ -5321,21 +5322,21 @@
     break;
 
   case 251:
-#line 2790 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2787 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     {
     (yyval.FunctionVal) = (yyvsp[-1].FunctionVal);
   ;}
     break;
 
   case 252:
-#line 2793 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2790 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     { // Do not allow functions with 0 basic blocks   
     (yyval.FunctionVal) = (yyvsp[-1].FunctionVal);
   ;}
     break;
 
   case 253:
-#line 2802 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2799 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     {
     setValueName((yyvsp[0].TermInstVal), (yyvsp[-1].StrVal));
     InsertValue((yyvsp[0].TermInstVal));
@@ -5346,7 +5347,7 @@
     break;
 
   case 254:
-#line 2812 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2809 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     {
     if ((yyvsp[0].InstVal).I)
       (yyvsp[-1].BasicBlockVal)->getInstList().push_back((yyvsp[0].InstVal).I);
@@ -5355,7 +5356,7 @@
     break;
 
   case 255:
-#line 2817 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2814 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     {
     (yyval.BasicBlockVal) = CurBB = getBBVal(ValID::create((int)CurFun.NextBBNum++), true);
     // Make sure to move the basic block to the correct location in the
@@ -5368,7 +5369,7 @@
     break;
 
   case 256:
-#line 2826 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2823 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     {
     (yyval.BasicBlockVal) = CurBB = getBBVal(ValID::create((yyvsp[0].StrVal)), true);
     // Make sure to move the basic block to the correct location in the
@@ -5381,21 +5382,21 @@
     break;
 
   case 259:
-#line 2840 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2837 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     {              // Return with a result...
     (yyval.TermInstVal) = new ReturnInst((yyvsp[0].ValueVal).V);
   ;}
     break;
 
   case 260:
-#line 2843 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2840 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     {                                       // Return with no result...
     (yyval.TermInstVal) = new ReturnInst();
   ;}
     break;
 
   case 261:
-#line 2846 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2843 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     {                         // Unconditional Branch...
     BasicBlock* tmpBB = getBBVal((yyvsp[0].ValIDVal));
     (yyval.TermInstVal) = new BranchInst(tmpBB);
@@ -5403,7 +5404,7 @@
     break;
 
   case 262:
-#line 2850 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2847 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     {  
     BasicBlock* tmpBBA = getBBVal((yyvsp[-3].ValIDVal));
     BasicBlock* tmpBBB = getBBVal((yyvsp[0].ValIDVal));
@@ -5413,7 +5414,7 @@
     break;
 
   case 263:
-#line 2856 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2853 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     {
     Value* tmpVal = getVal((yyvsp[-7].PrimType).T, (yyvsp[-6].ValIDVal));
     BasicBlock* tmpBB = getBBVal((yyvsp[-3].ValIDVal));
@@ -5432,7 +5433,7 @@
     break;
 
   case 264:
-#line 2871 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2868 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     {
     Value* tmpVal = getVal((yyvsp[-6].PrimType).T, (yyvsp[-5].ValIDVal));
     BasicBlock* tmpBB = getBBVal((yyvsp[-2].ValIDVal));
@@ -5442,7 +5443,7 @@
     break;
 
   case 265:
-#line 2878 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2875 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     {
     const PointerType *PFTy;
     const FunctionType *Ty;
@@ -5501,21 +5502,21 @@
     break;
 
   case 266:
-#line 2933 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2930 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     {
     (yyval.TermInstVal) = new UnwindInst();
   ;}
     break;
 
   case 267:
-#line 2936 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2933 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     {
     (yyval.TermInstVal) = new UnreachableInst();
   ;}
     break;
 
   case 268:
-#line 2942 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2939 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     {
     (yyval.JumpTable) = (yyvsp[-5].JumpTable);
     Constant *V = cast<Constant>(getExistingValue((yyvsp[-4].PrimType).T, (yyvsp[-3].ValIDVal)));
@@ -5529,7 +5530,7 @@
     break;
 
   case 269:
-#line 2952 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2949 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     {
     (yyval.JumpTable) = new std::vector<std::pair<Constant*, BasicBlock*> >();
     Constant *V = cast<Constant>(getExistingValue((yyvsp[-4].PrimType).T, (yyvsp[-3].ValIDVal)));
@@ -5543,7 +5544,7 @@
     break;
 
   case 270:
-#line 2965 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2962 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     {
     bool omit = false;
     if ((yyvsp[-1].StrVal))
@@ -5575,7 +5576,7 @@
     break;
 
   case 271:
-#line 2994 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2991 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     {    // Used for PHI nodes
     (yyval.PHIList).P = new std::list<std::pair<Value*, BasicBlock*> >();
     (yyval.PHIList).S = (yyvsp[-5].TypeVal).S;
@@ -5587,7 +5588,7 @@
     break;
 
   case 272:
-#line 3002 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 2999 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     {
     (yyval.PHIList) = (yyvsp[-6].PHIList);
     Value* tmpVal = getVal((yyvsp[-6].PHIList).P->front().first->getType(), (yyvsp[-3].ValIDVal));
@@ -5597,7 +5598,7 @@
     break;
 
   case 273:
-#line 3010 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 3007 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     {    // Used for call statements, and memory insts...
     (yyval.ValueList) = new std::vector<ValueInfo>();
     (yyval.ValueList)->push_back((yyvsp[0].ValueVal));
@@ -5605,7 +5606,7 @@
     break;
 
   case 274:
-#line 3014 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 3011 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     {
     (yyval.ValueList) = (yyvsp[-2].ValueList);
     (yyvsp[-2].ValueList)->push_back((yyvsp[0].ValueVal));
@@ -5613,26 +5614,26 @@
     break;
 
   case 276:
-#line 3022 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 3019 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     { (yyval.ValueList) = 0; ;}
     break;
 
   case 277:
-#line 3026 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 3023 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     {
     (yyval.BoolVal) = true;
   ;}
     break;
 
   case 278:
-#line 3029 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 3026 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     {
     (yyval.BoolVal) = false;
   ;}
     break;
 
   case 279:
-#line 3035 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 3032 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     {
     const Type* Ty = (yyvsp[-3].TypeVal).T->get();
     if (!Ty->isInteger() && !Ty->isFloatingPoint() && !isa<PackedType>(Ty))
@@ -5653,7 +5654,7 @@
     break;
 
   case 280:
-#line 3052 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 3049 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     {
     const Type *Ty = (yyvsp[-3].TypeVal).T->get();
     if (!Ty->isInteger()) {
@@ -5673,7 +5674,7 @@
     break;
 
   case 281:
-#line 3068 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 3065 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     {
     const Type* Ty = (yyvsp[-3].TypeVal).T->get();
     if(isa<PackedType>(Ty))
@@ -5691,7 +5692,7 @@
     break;
 
   case 282:
-#line 3082 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 3079 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     {
     const Type *Ty = (yyvsp[-3].TypeVal).T->get();
     if (isa<PackedType>(Ty)) 
@@ -5707,7 +5708,7 @@
     break;
 
   case 283:
-#line 3094 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 3091 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     {
     const Type *Ty = (yyvsp[-3].TypeVal).T->get();
     if (isa<PackedType>(Ty))
@@ -5723,7 +5724,7 @@
     break;
 
   case 284:
-#line 3106 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 3103 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     {
     warning("Use of obsolete 'not' instruction: Replacing with 'xor");
     const Type *Ty = (yyvsp[0].ValueVal).V->getType();
@@ -5738,20 +5739,29 @@
     break;
 
   case 285:
-#line 3117 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 3114 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     {
     if (!(yyvsp[0].ValueVal).V->getType()->isInteger() ||
         cast<IntegerType>((yyvsp[0].ValueVal).V->getType())->getBitWidth() != 8)
       error("Shift amount must be int8");
-    if (!(yyvsp[-2].ValueVal).V->getType()->isInteger())
+    const Type* Ty = (yyvsp[-2].ValueVal).V->getType();
+    if (!Ty->isInteger())
       error("Shift constant expression requires integer operand");
-    (yyval.InstVal).I = new ShiftInst(getOtherOp((yyvsp[-3].OtherOpVal), (yyvsp[-2].ValueVal).S), (yyvsp[-2].ValueVal).V, (yyvsp[0].ValueVal).V);
+    Value* ShiftAmt = 0;
+    if (cast<IntegerType>(Ty)->getBitWidth() > Type::Int8Ty->getBitWidth())
+      if (Constant *C = dyn_cast<Constant>((yyvsp[0].ValueVal).V))
+        ShiftAmt = ConstantExpr::getZExt(C, Ty);
+      else
+        ShiftAmt = new ZExtInst((yyvsp[0].ValueVal).V, Ty, makeNameUnique("shift"), CurBB);
+    else
+      ShiftAmt = (yyvsp[0].ValueVal).V;
+    (yyval.InstVal).I = BinaryOperator::create(getBinaryOp((yyvsp[-3].BinaryOpVal), Ty, (yyvsp[-2].ValueVal).S), (yyvsp[-2].ValueVal).V, ShiftAmt);
     (yyval.InstVal).S = (yyvsp[-2].ValueVal).S;
   ;}
     break;
 
   case 286:
-#line 3126 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 3132 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     {
     const Type *DstTy = (yyvsp[0].TypeVal).T->get();
     if (!DstTy->isFirstClassType())
@@ -5764,7 +5774,7 @@
     break;
 
   case 287:
-#line 3135 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 3141 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     {
     if (!(yyvsp[-4].ValueVal).V->getType()->isInteger() ||
         cast<IntegerType>((yyvsp[-4].ValueVal).V->getType())->getBitWidth() != 1)
@@ -5777,7 +5787,7 @@
     break;
 
   case 288:
-#line 3144 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 3150 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     {
     const Type *Ty = (yyvsp[0].TypeVal).T->get();
     NewVarArgs = true;
@@ -5788,7 +5798,7 @@
     break;
 
   case 289:
-#line 3151 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 3157 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     {
     const Type* ArgTy = (yyvsp[-2].ValueVal).V->getType();
     const Type* DstTy = (yyvsp[0].TypeVal).T->get();
@@ -5813,7 +5823,7 @@
     break;
 
   case 290:
-#line 3172 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 3178 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     {
     const Type* ArgTy = (yyvsp[-2].ValueVal).V->getType();
     const Type* DstTy = (yyvsp[0].TypeVal).T->get();
@@ -5841,7 +5851,7 @@
     break;
 
   case 291:
-#line 3196 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 3202 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     {
     if (!ExtractElementInst::isValidOperands((yyvsp[-2].ValueVal).V, (yyvsp[0].ValueVal).V))
       error("Invalid extractelement operands");
@@ -5851,7 +5861,7 @@
     break;
 
   case 292:
-#line 3202 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 3208 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     {
     if (!InsertElementInst::isValidOperands((yyvsp[-4].ValueVal).V, (yyvsp[-2].ValueVal).V, (yyvsp[0].ValueVal).V))
       error("Invalid insertelement operands");
@@ -5861,7 +5871,7 @@
     break;
 
   case 293:
-#line 3208 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 3214 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     {
     if (!ShuffleVectorInst::isValidOperands((yyvsp[-4].ValueVal).V, (yyvsp[-2].ValueVal).V, (yyvsp[0].ValueVal).V))
       error("Invalid shufflevector operands");
@@ -5871,7 +5881,7 @@
     break;
 
   case 294:
-#line 3214 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 3220 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     {
     const Type *Ty = (yyvsp[0].PHIList).P->front().first->getType();
     if (!Ty->isFirstClassType())
@@ -5891,7 +5901,7 @@
     break;
 
   case 295:
-#line 3230 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 3236 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     {
 
     // Handle the short call syntax
@@ -5973,34 +5983,34 @@
     break;
 
   case 296:
-#line 3308 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 3314 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     {
     (yyval.InstVal) = (yyvsp[0].InstVal);
   ;}
     break;
 
   case 297:
-#line 3316 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 3322 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     { (yyval.ValueList) = (yyvsp[0].ValueList); ;}
     break;
 
   case 298:
-#line 3317 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 3323 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     { (yyval.ValueList) = new std::vector<ValueInfo>(); ;}
     break;
 
   case 299:
-#line 3321 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 3327 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     { (yyval.BoolVal) = true; ;}
     break;
 
   case 300:
-#line 3322 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 3328 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     { (yyval.BoolVal) = false; ;}
     break;
 
   case 301:
-#line 3326 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 3332 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     {
     const Type *Ty = (yyvsp[-1].TypeVal).T->get();
     (yyval.InstVal).S = (yyvsp[-1].TypeVal).S;
@@ -6010,7 +6020,7 @@
     break;
 
   case 302:
-#line 3332 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 3338 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     {
     const Type *Ty = (yyvsp[-4].TypeVal).T->get();
     (yyval.InstVal).S = (yyvsp[-4].TypeVal).S;
@@ -6020,7 +6030,7 @@
     break;
 
   case 303:
-#line 3338 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 3344 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     {
     const Type *Ty = (yyvsp[-1].TypeVal).T->get();
     (yyval.InstVal).S = (yyvsp[-1].TypeVal).S;
@@ -6030,7 +6040,7 @@
     break;
 
   case 304:
-#line 3344 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 3350 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     {
     const Type *Ty = (yyvsp[-4].TypeVal).T->get();
     (yyval.InstVal).S = (yyvsp[-4].TypeVal).S;
@@ -6040,7 +6050,7 @@
     break;
 
   case 305:
-#line 3350 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 3356 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     {
     const Type *PTy = (yyvsp[0].ValueVal).V->getType();
     if (!isa<PointerType>(PTy))
@@ -6051,7 +6061,7 @@
     break;
 
   case 306:
-#line 3357 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 3363 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     {
     const Type* Ty = (yyvsp[-1].TypeVal).T->get();
     (yyval.InstVal).S = (yyvsp[-1].TypeVal).S;
@@ -6067,7 +6077,7 @@
     break;
 
   case 307:
-#line 3369 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 3375 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     {
     const PointerType *PTy = dyn_cast<PointerType>((yyvsp[-1].TypeVal).T->get());
     if (!PTy)
@@ -6085,7 +6095,7 @@
     break;
 
   case 308:
-#line 3383 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 3389 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
     {
     const Type* Ty = (yyvsp[-2].TypeVal).T->get();
     if (!isa<PointerType>(Ty))
@@ -6107,7 +6117,7 @@
     }
 
 /* Line 1126 of yacc.c.  */
-#line 6111 "UpgradeParser.tab.c"
+#line 6121 "UpgradeParser.tab.c"
 
   yyvsp -= yylen;
   yyssp -= yylen;
@@ -6375,7 +6385,7 @@
 }
 
 
-#line 3399 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
+#line 3405 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
 
 
 int yyerror(const char *ErrorMsg) {