[llvm-commits] [llvm] r50985 - in /llvm/trunk: docs/ include/llvm/ include/llvm/Support/ lib/AsmParser/ lib/Bitcode/Reader/ lib/Bitcode/Writer/ lib/VMCore/
Owen Anderson
resistor at mac.com
Mon May 12 12:14:21 PDT 2008
Nate,
This is breaking the build for me:
Constants.cpp: In static member function ‘static llvm::Constant*
llvm::ConstantExpr::getVICmp(short unsigned int, llvm::Constant*,
llvm::Constant*)’:
Constants.cpp:2050: error: ‘const class llvm::Type’ has no member
named ‘getElementType’
Constants.cpp:2051: error: ‘const class llvm::Type’ has no member
named ‘getNumElements’
--Owen
On May 12, 2008, at 2:01 PM, Nate Begeman wrote:
> Author: sampo
> Date: Mon May 12 14:01:56 2008
> New Revision: 50985
>
> URL: http://llvm.org/viewvc/llvm-project?rev=50985&view=rev
> Log:
> Add two new instructions to the llvm IR, vicmp and vfcmp. see
> updated LangRef
> for details. CodeGen support coming in a follow up patch
>
> Modified:
> llvm/trunk/docs/LangRef.html
> llvm/trunk/include/llvm/Constants.h
> llvm/trunk/include/llvm/DerivedTypes.h
> llvm/trunk/include/llvm/InstrTypes.h
> llvm/trunk/include/llvm/Instruction.def
> llvm/trunk/include/llvm/Instructions.h
> llvm/trunk/include/llvm/Support/InstVisitor.h
> llvm/trunk/lib/AsmParser/LLLexer.cpp
> llvm/trunk/lib/AsmParser/llvmAsmParser.cpp.cvs
> llvm/trunk/lib/AsmParser/llvmAsmParser.h.cvs
> llvm/trunk/lib/AsmParser/llvmAsmParser.y
> llvm/trunk/lib/AsmParser/llvmAsmParser.y.cvs
> llvm/trunk/lib/Bitcode/Reader/BitcodeReader.cpp
> llvm/trunk/lib/Bitcode/Writer/BitcodeWriter.cpp
> llvm/trunk/lib/VMCore/AsmWriter.cpp
> llvm/trunk/lib/VMCore/Constants.cpp
> llvm/trunk/lib/VMCore/Instruction.cpp
> llvm/trunk/lib/VMCore/Instructions.cpp
>
> Modified: llvm/trunk/docs/LangRef.html
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/docs/LangRef.html?rev=50985&r1=50984&r2=50985&view=diff
>
> =
> =
> =
> =
> =
> =
> =
> =
> ======================================================================
> --- llvm/trunk/docs/LangRef.html (original)
> +++ llvm/trunk/docs/LangRef.html Mon May 12 14:01:56 2008
> @@ -140,6 +140,8 @@
> <ol>
> <li><a href="#i_icmp">'<tt>icmp</tt>' Instruction</a></li>
> <li><a href="#i_fcmp">'<tt>fcmp</tt>' Instruction</a></li>
> + <li><a href="#i_vicmp">'<tt>vicmp</tt>' Instruction</a></
> li>
> + <li><a href="#i_vfcmp">'<tt>vfcmp</tt>' Instruction</a></
> li>
> <li><a href="#i_phi">'<tt>phi</tt>' Instruction</a></li>
> <li><a href="#i_select">'<tt>select</tt>' Instruction</a></
> li>
> <li><a href="#i_call">'<tt>call</tt>' Instruction</a></li>
> @@ -1680,6 +1682,12 @@
> <dt><b><tt>fcmp COND ( VAL1, VAL2 )</tt></b></dt>
> <dd>Performs the <a href="#i_fcmp">fcmp operation</a> on
> constants.</dd>
>
> + <dt><b><tt>vicmp COND ( VAL1, VAL2 )</tt></b></dt>
> + <dd>Performs the <a href="#i_vicmp">vicmp operation</a> on
> constants.</dd>
> +
> + <dt><b><tt>vfcmp COND ( VAL1, VAL2 )</tt></b></dt>
> + <dd>Performs the <a href="#i_vfcmp">vfcmp operation</a> on
> constants.</dd>
> +
> <dt><b><tt>extractelement ( VAL, IDX )</tt></b></dt>
>
> <dd>Perform the <a href="#i_extractelement">extractelement
> @@ -3672,9 +3680,9 @@
> <a href="#t_floating">floating point</a> typed. They must have
> identical
> types.</p>
> <h5>Semantics:</h5>
> -<p>The '<tt>fcmp</tt>' compares <tt>var1</tt> and <tt>var2</tt>
> according to
> -the condition code given as <tt>cond</tt>. The comparison performed
> always
> -yields a <a href="#t_primitive">i1</a> result, as follows:
> +<p>The '<tt>fcmp</tt>' instruction compares <tt>var1</tt> and
> <tt>var2</tt>
> +according to the condition code given as <tt>cond</tt>. The
> comparison performed
> +always yields a <a href="#t_primitive">i1</a> result, as follows:
> <ol>
> <li><tt>false</tt>: always yields <tt>false</tt>, regardless of
> operands.</li>
> <li><tt>oeq</tt>: yields <tt>true</tt> if both operands are not a
> QNAN and
> @@ -3715,6 +3723,106 @@
> </div>
>
> <!--
> _______________________________________________________________________
> -->
> +<div class="doc_subsubsection">
> + <a name="i_vicmp">'<tt>vicmp</tt>' Instruction</a>
> +</div>
> +<div class="doc_text">
> +<h5>Syntax:</h5>
> +<pre> <result> = vicmp <cond> <ty> <var1>,
> <var2> <i>; yields {ty}:result</i>
> +</pre>
> +<h5>Overview:</h5>
> +<p>The '<tt>vicmp</tt>' instruction returns an integer vector value
> based on
> +element-wise comparison of its two integer vector operands.</p>
> +<h5>Arguments:</h5>
> +<p>The '<tt>vicmp</tt>' instruction takes three operands. The first
> operand is
> +the condition code indicating the kind of comparison to perform. It
> is not
> +a value, just a keyword. The possible condition code are:
> +<ol>
> + <li><tt>eq</tt>: equal</li>
> + <li><tt>ne</tt>: not equal </li>
> + <li><tt>ugt</tt>: unsigned greater than</li>
> + <li><tt>uge</tt>: unsigned greater or equal</li>
> + <li><tt>ult</tt>: unsigned less than</li>
> + <li><tt>ule</tt>: unsigned less or equal</li>
> + <li><tt>sgt</tt>: signed greater than</li>
> + <li><tt>sge</tt>: signed greater or equal</li>
> + <li><tt>slt</tt>: signed less than</li>
> + <li><tt>sle</tt>: signed less or equal</li>
> +</ol>
> +<p>The remaining two arguments must be <a href="#t_vector">vector</
> a> of
> +<a href="#t_integer">integer</a> typed. They must also be identical
> types.</p>
> +<h5>Semantics:</h5>
> +<p>The '<tt>vicmp</tt>' instruction compares <tt>var1</tt> and
> <tt>var2</tt>
> +according to the condition code given as <tt>cond</tt>. The
> comparison yields a
> +<a href="#t_vector">vector</a> of <a href="#t_integer">integer</a>
> result, of
> +identical type as the values being compared. The most significant
> bit in each
> +element is 1 if the element-wise comparison evaluates to true, and
> is 0
> +otherwise. All other bits of the result are undefined. The
> condition codes
> +are evaluated identically to the <a href="#i_icmp">'<tt>icmp</tt>'
> +instruction</a>.
> +
> +<h5>Example:</h5>
> +<pre>
> + <result> = vicmp eq <2 x i32> < i32 4, i32 0 >, < i32 5,
> i32 0 > <i>; yields: result=<2 x i32> < i32 0, i32 -1 ></i>
> + <result> = vicmp ult <2 x i8> < i8 1, i8 2 >, < i8 2, i8
> 2> <i>; yields: result=<2 x i8> < i8 -1, i8 0 ></i>
> +</pre>
> +</div>
> +
> +<!--
> _______________________________________________________________________
> -->
> +<div class="doc_subsubsection">
> + <a name="i_vfcmp">'<tt>vfcmp</tt>' Instruction</a>
> +</div>
> +<div class="doc_text">
> +<h5>Syntax:</h5>
> +<pre> <result> = vfcmp <cond> <ty> <var1>,
> <var2></pre>
> +<h5>Overview:</h5>
> +<p>The '<tt>vfcmp</tt>' instruction returns an integer vector value
> based on
> +element-wise comparison of its two floating point vector operands.
> The output
> +elements have the same width as the input elements.</p>
> +<h5>Arguments:</h5>
> +<p>The '<tt>vfcmp</tt>' instruction takes three operands. The first
> operand is
> +the condition code indicating the kind of comparison to perform. It
> is not
> +a value, just a keyword. The possible condition code are:
> +<ol>
> + <li><tt>false</tt>: no comparison, always returns false</li>
> + <li><tt>oeq</tt>: ordered and equal</li>
> + <li><tt>ogt</tt>: ordered and greater than </li>
> + <li><tt>oge</tt>: ordered and greater than or equal</li>
> + <li><tt>olt</tt>: ordered and less than </li>
> + <li><tt>ole</tt>: ordered and less than or equal</li>
> + <li><tt>one</tt>: ordered and not equal</li>
> + <li><tt>ord</tt>: ordered (no nans)</li>
> + <li><tt>ueq</tt>: unordered or equal</li>
> + <li><tt>ugt</tt>: unordered or greater than </li>
> + <li><tt>uge</tt>: unordered or greater than or equal</li>
> + <li><tt>ult</tt>: unordered or less than </li>
> + <li><tt>ule</tt>: unordered or less than or equal</li>
> + <li><tt>une</tt>: unordered or not equal</li>
> + <li><tt>uno</tt>: unordered (either nans)</li>
> + <li><tt>true</tt>: no comparison, always returns true</li>
> +</ol>
> +<p>The remaining two arguments must be <a href="#t_vector">vector</
> a> of
> +<a href="#t_floating">floating point</a> typed. They must also be
> identical
> +types.</p>
> +<h5>Semantics:</h5>
> +<p>The '<tt>vfcmp</tt>' instruction compares <tt>var1</tt> and
> <tt>var2</tt>
> +according to the condition code given as <tt>cond</tt>. The
> comparison yields a
> +<a href="#t_vector">vector</a> of <a href="#t_integer">integer</a>
> result, with
> +an identical number of elements as the values being compared, and
> each element
> +having identical with to the width of the floating point elements.
> The most
> +significant bit in each element is 1 if the element-wise comparison
> evaluates to
> +true, and is 0 otherwise. All other bits of the result are
> undefined. The
> +condition codes are evaluated identically to the
> +<a href="#i_fcmp">'<tt>fcmp</tt>' instruction</a>.
> +
> +<h5>Example:</h5>
> +<pre>
> + <result> = vfcmp oeq <2 x float> < float 4, float 0 >, <
> float 5, float 0 > <i>; yields: result=<2 x i32> < i32 0, i32
> -1 ></i>
> + <result> = vfcmp ult <2 x double> < double 1, double 2 >, <
> double 2, double 2> <i>; yields: result=<2 x i64> < i64 -1, i64 0
> ></i>
> +</pre>
> +</div>
> +
> +<!--
> _______________________________________________________________________
> -->
> <div class="doc_subsubsection"> <a name="i_phi">'<tt>phi</tt>'
> Instruction</a> </div>
> <div class="doc_text">
>
> Modified: llvm/trunk/include/llvm/Constants.h
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/Constants.h?rev=50985&r1=50984&r2=50985&view=diff
>
> =
> =
> =
> =
> =
> =
> =
> =
> ======================================================================
> --- llvm/trunk/include/llvm/Constants.h (original)
> +++ llvm/trunk/include/llvm/Constants.h Mon May 12 14:01:56 2008
> @@ -689,6 +689,8 @@
> static Constant *getXor(Constant *C1, Constant *C2);
> static Constant *getICmp(unsigned short pred, Constant *LHS,
> Constant *RHS);
> static Constant *getFCmp(unsigned short pred, Constant *LHS,
> Constant *RHS);
> + static Constant *getVICmp(unsigned short pred, Constant *LHS,
> Constant *RHS);
> + static Constant *getVFCmp(unsigned short pred, Constant *LHS,
> Constant *RHS);
> static Constant *getShl(Constant *C1, Constant *C2);
> static Constant *getLShr(Constant *C1, Constant *C2);
> static Constant *getAShr(Constant *C1, Constant *C2);
>
> Modified: llvm/trunk/include/llvm/DerivedTypes.h
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/DerivedTypes.h?rev=50985&r1=50984&r2=50985&view=diff
>
> =
> =
> =
> =
> =
> =
> =
> =
> ======================================================================
> --- llvm/trunk/include/llvm/DerivedTypes.h (original)
> +++ llvm/trunk/include/llvm/DerivedTypes.h Mon May 12 14:01:56 2008
> @@ -349,6 +349,16 @@
> ///
> static VectorType *get(const Type *ElementType, unsigned
> NumElements);
>
> + /// VectorType::getInteger - This static method gets a VectorType
> with the
> + /// same number of elements as the input type, and the element
> type is an
> + /// integer type of the same width as the input element type.
> + ///
> + static VectorType *getInteger(const VectorType *VTy) {
> + unsigned EltBits = VTy->getElementType()-
> >getPrimitiveSizeInBits();
> + const Type *EltTy = IntegerType::get(EltBits);
> + return VectorType::get(EltTy, VTy->getNumElements());
> + }
> +
> /// @brief Return the number of elements in the Vector type.
> inline unsigned getNumElements() const { return NumElements; }
>
>
> Modified: llvm/trunk/include/llvm/InstrTypes.h
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/InstrTypes.h?rev=50985&r1=50984&r2=50985&view=diff
>
> =
> =
> =
> =
> =
> =
> =
> =
> ======================================================================
> --- llvm/trunk/include/llvm/InstrTypes.h (original)
> +++ llvm/trunk/include/llvm/InstrTypes.h Mon May 12 14:01:56 2008
> @@ -498,13 +498,55 @@
> void *operator new(size_t, unsigned); // DO NOT IMPLEMENT
> CmpInst(); // do not implement
> protected:
> - CmpInst(Instruction::OtherOps op, unsigned short pred, Value
> *LHS, Value *RHS,
> - const std::string &Name = "", Instruction *InsertBefore =
> 0);
> + CmpInst(const Type *ty, Instruction::OtherOps op, unsigned short
> pred,
> + Value *LHS, Value *RHS, const std::string &Name = "",
> + Instruction *InsertBefore = 0);
>
> - CmpInst(Instruction::OtherOps op, unsigned short pred, Value
> *LHS, Value *RHS,
> - const std::string &Name, BasicBlock *InsertAtEnd);
> + CmpInst(const Type *ty, Instruction::OtherOps op, unsigned short
> pred,
> + Value *LHS, Value *RHS, const std::string &Name,
> + BasicBlock *InsertAtEnd);
>
> public:
> + /// This enumeration lists the possible predicates for CmpInst
> subclasses.
> + /// Values in the range 0-31 are reserved for FCmpInst, while
> values in the
> + /// range 32-64 are reserved for ICmpInst. This is necessary to
> ensure the
> + /// predicate values are not overlapping between the classes.
> + enum Predicate {
> + // Opcode U L G E Intuitive operation
> + FCMP_FALSE = 0, /// 0 0 0 0 Always false (always folded)
> + FCMP_OEQ = 1, /// 0 0 0 1 True if ordered and equal
> + FCMP_OGT = 2, /// 0 0 1 0 True if ordered and greater than
> + FCMP_OGE = 3, /// 0 0 1 1 True if ordered and greater
> than or equal
> + FCMP_OLT = 4, /// 0 1 0 0 True if ordered and less than
> + FCMP_OLE = 5, /// 0 1 0 1 True if ordered and less than
> or equal
> + FCMP_ONE = 6, /// 0 1 1 0 True if ordered and operands
> are unequal
> + FCMP_ORD = 7, /// 0 1 1 1 True if ordered (no nans)
> + FCMP_UNO = 8, /// 1 0 0 0 True if unordered: isnan(X) |
> isnan(Y)
> + FCMP_UEQ = 9, /// 1 0 0 1 True if unordered or equal
> + FCMP_UGT = 10, /// 1 0 1 0 True if unordered or greater
> than
> + FCMP_UGE = 11, /// 1 0 1 1 True if unordered, greater
> than, or equal
> + FCMP_ULT = 12, /// 1 1 0 0 True if unordered or less than
> + FCMP_ULE = 13, /// 1 1 0 1 True if unordered, less than,
> or equal
> + FCMP_UNE = 14, /// 1 1 1 0 True if unordered or not equal
> + FCMP_TRUE = 15, /// 1 1 1 1 Always true (always folded)
> + FIRST_FCMP_PREDICATE = FCMP_FALSE,
> + LAST_FCMP_PREDICATE = FCMP_TRUE,
> + BAD_FCMP_PREDICATE = FCMP_TRUE + 1,
> + ICMP_EQ = 32, /// equal
> + ICMP_NE = 33, /// not equal
> + ICMP_UGT = 34, /// unsigned greater than
> + ICMP_UGE = 35, /// unsigned greater or equal
> + ICMP_ULT = 36, /// unsigned less than
> + ICMP_ULE = 37, /// unsigned less or equal
> + ICMP_SGT = 38, /// signed greater than
> + ICMP_SGE = 39, /// signed greater or equal
> + ICMP_SLT = 40, /// signed less than
> + ICMP_SLE = 41, /// signed less or equal
> + FIRST_ICMP_PREDICATE = ICMP_EQ,
> + LAST_ICMP_PREDICATE = ICMP_SLE,
> + BAD_ICMP_PREDICATE = ICMP_SLE + 1
> + };
> +
> // allocate space for exactly two operands
> void *operator new(size_t s) {
> return User::operator new(s, 2);
> @@ -576,7 +618,9 @@
> static inline bool classof(const CmpInst *) { return true; }
> static inline bool classof(const Instruction *I) {
> return I->getOpcode() == Instruction::ICmp ||
> - I->getOpcode() == Instruction::FCmp;
> + I->getOpcode() == Instruction::FCmp ||
> + I->getOpcode() == Instruction::VICmp ||
> + I->getOpcode() == Instruction::VFCmp;
> }
> static inline bool classof(const Value *V) {
> return isa<Instruction>(V) && classof(cast<Instruction>(V));
>
> Modified: llvm/trunk/include/llvm/Instruction.def
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/Instruction.def?rev=50985&r1=50984&r2=50985&view=diff
>
> =
> =
> =
> =
> =
> =
> =
> =
> ======================================================================
> --- llvm/trunk/include/llvm/Instruction.def (original)
> +++ llvm/trunk/include/llvm/Instruction.def Mon May 12 14:01:56 2008
> @@ -166,7 +166,10 @@
> HANDLE_OTHER_INST(50, ShuffleVector, ShuffleVectorInst) // shuffle
> two vectors.
> HANDLE_OTHER_INST(51, GetResult, GetResultInst) // Extract
> individual value
> //from aggregate
> result
> - LAST_OTHER_INST(51)
> +HANDLE_OTHER_INST(52, VICmp , VICmpInst ) // Vec Int comparison
> instruction.
> +HANDLE_OTHER_INST(53, VFCmp , VFCmpInst ) // Vec FP point
> comparison instr.
> +
> + LAST_OTHER_INST(53)
>
> #undef FIRST_TERM_INST
> #undef HANDLE_TERM_INST
>
> Modified: llvm/trunk/include/llvm/Instructions.h
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/Instructions.h?rev=50985&r1=50984&r2=50985&view=diff
>
> =
> =
> =
> =
> =
> =
> =
> =
> ======================================================================
> --- llvm/trunk/include/llvm/Instructions.h (original)
> +++ llvm/trunk/include/llvm/Instructions.h Mon May 12 14:01:56 2008
> @@ -610,31 +610,11 @@
> //
> =
> =
> =
> ----------------------------------------------------------------------=
> ==//
>
> /// This instruction compares its operands according to the
> predicate given
> -/// to the constructor. It only operates on integers, pointers, or
> packed
> -/// vectors of integrals. The two operands must be the same type.
> +/// to the constructor. It only operates on integers or pointers.
> The operands
> +/// must be identical types.
> /// @brief Represent an integer comparison operator.
> class ICmpInst: public CmpInst {
> public:
> - /// This enumeration lists the possible predicates for the
> ICmpInst. The
> - /// values in the range 0-31 are reserved for FCmpInst while
> values in the
> - /// range 32-64 are reserved for ICmpInst. This is necessary to
> ensure the
> - /// predicate values are not overlapping between the classes.
> - enum Predicate {
> - ICMP_EQ = 32, ///< equal
> - ICMP_NE = 33, ///< not equal
> - ICMP_UGT = 34, ///< unsigned greater than
> - ICMP_UGE = 35, ///< unsigned greater or equal
> - ICMP_ULT = 36, ///< unsigned less than
> - ICMP_ULE = 37, ///< unsigned less or equal
> - ICMP_SGT = 38, ///< signed greater than
> - ICMP_SGE = 39, ///< signed greater or equal
> - ICMP_SLT = 40, ///< signed less than
> - ICMP_SLE = 41, ///< signed less or equal
> - FIRST_ICMP_PREDICATE = ICMP_EQ,
> - LAST_ICMP_PREDICATE = ICMP_SLE,
> - BAD_ICMP_PREDICATE = ICMP_SLE + 1
> - };
> -
> /// @brief Constructor with insert-before-instruction semantics.
> ICmpInst(
> Predicate pred, ///< The predicate to use for the comparison
> @@ -642,7 +622,18 @@
> Value *RHS, ///< The right-hand-side of the expression
> const std::string &Name = "", ///< Name of the instruction
> Instruction *InsertBefore = 0 ///< Where to insert
> - ) : CmpInst(Instruction::ICmp, pred, LHS, RHS, Name,
> InsertBefore) {
> + ) : CmpInst(Type::Int1Ty, Instruction::ICmp, pred, LHS, RHS, Name,
> + InsertBefore) {
> + assert(pred >= CmpInst::FIRST_ICMP_PREDICATE &&
> + pred <= CmpInst::LAST_ICMP_PREDICATE &&
> + "Invalid ICmp predicate value");
> + const Type* Op0Ty = getOperand(0)->getType();
> + const Type* Op1Ty = getOperand(1)->getType();
> + assert(Op0Ty == Op1Ty &&
> + "Both operands to ICmp instruction are not of the same
> type!");
> + // Check that the operands are the right type
> + assert((Op0Ty->isInteger() || isa<PointerType>(Op0Ty)) &&
> + "Invalid operand types for ICmp instruction");
> }
>
> /// @brief Constructor with insert-at-block-end semantics.
> @@ -652,7 +643,18 @@
> Value *RHS, ///< The right-hand-side of the expression
> const std::string &Name, ///< Name of the instruction
> BasicBlock *InsertAtEnd ///< Block to insert into.
> - ) : CmpInst(Instruction::ICmp, pred, LHS, RHS, Name, InsertAtEnd) {
> + ) : CmpInst(Type::Int1Ty, Instruction::ICmp, pred, LHS, RHS, Name,
> + InsertAtEnd) {
> + assert(pred >= CmpInst::FIRST_ICMP_PREDICATE &&
> + pred <= CmpInst::LAST_ICMP_PREDICATE &&
> + "Invalid ICmp predicate value");
> + const Type* Op0Ty = getOperand(0)->getType();
> + const Type* Op1Ty = getOperand(1)->getType();
> + assert(Op0Ty == Op1Ty &&
> + "Both operands to ICmp instruction are not of the same
> type!");
> + // Check that the operands are the right type
> + assert((Op0Ty->isInteger() || isa<PointerType>(Op0Ty)) &&
> + "Invalid operand types for ICmp instruction");
> }
>
> /// @brief Return the predicate for this instruction.
> @@ -783,31 +785,6 @@
> /// @brief Represents a floating point comparison operator.
> class FCmpInst: public CmpInst {
> public:
> - /// This enumeration lists the possible predicates for the
> FCmpInst. Values
> - /// in the range 0-31 are reserved for FCmpInst.
> - enum Predicate {
> - // Opcode U L G E Intuitive operation
> - FCMP_FALSE = 0, ///< 0 0 0 0 Always false (always folded)
> - FCMP_OEQ = 1, ///< 0 0 0 1 True if ordered and equal
> - FCMP_OGT = 2, ///< 0 0 1 0 True if ordered and greater than
> - FCMP_OGE = 3, ///< 0 0 1 1 True if ordered and greater
> than or equal
> - FCMP_OLT = 4, ///< 0 1 0 0 True if ordered and less than
> - FCMP_OLE = 5, ///< 0 1 0 1 True if ordered and less than
> or equal
> - FCMP_ONE = 6, ///< 0 1 1 0 True if ordered and operands
> are unequal
> - FCMP_ORD = 7, ///< 0 1 1 1 True if ordered (no nans)
> - FCMP_UNO = 8, ///< 1 0 0 0 True if unordered: isnan(X) |
> isnan(Y)
> - FCMP_UEQ = 9, ///< 1 0 0 1 True if unordered or equal
> - FCMP_UGT =10, ///< 1 0 1 0 True if unordered or greater
> than
> - FCMP_UGE =11, ///< 1 0 1 1 True if unordered, greater
> than, or equal
> - FCMP_ULT =12, ///< 1 1 0 0 True if unordered or less than
> - FCMP_ULE =13, ///< 1 1 0 1 True if unordered, less than,
> or equal
> - FCMP_UNE =14, ///< 1 1 1 0 True if unordered or not equal
> - FCMP_TRUE =15, ///< 1 1 1 1 Always true (always folded)
> - FIRST_FCMP_PREDICATE = FCMP_FALSE,
> - LAST_FCMP_PREDICATE = FCMP_TRUE,
> - BAD_FCMP_PREDICATE = FCMP_TRUE + 1
> - };
> -
> /// @brief Constructor with insert-before-instruction semantics.
> FCmpInst(
> Predicate pred, ///< The predicate to use for the comparison
> @@ -815,7 +792,17 @@
> Value *RHS, ///< The right-hand-side of the expression
> const std::string &Name = "", ///< Name of the instruction
> Instruction *InsertBefore = 0 ///< Where to insert
> - ) : CmpInst(Instruction::FCmp, pred, LHS, RHS, Name,
> InsertBefore) {
> + ) : CmpInst(Type::Int1Ty, Instruction::FCmp, pred, LHS, RHS, Name,
> + InsertBefore) {
> + assert(pred <= FCmpInst::LAST_FCMP_PREDICATE &&
> + "Invalid FCmp predicate value");
> + const Type* Op0Ty = getOperand(0)->getType();
> + const Type* Op1Ty = getOperand(1)->getType();
> + assert(Op0Ty == Op1Ty &&
> + "Both operands to FCmp instruction are not of the same
> type!");
> + // Check that the operands are the right type
> + assert(Op0Ty->isFloatingPoint() &&
> + "Invalid operand types for FCmp instruction");
> }
>
> /// @brief Constructor with insert-at-block-end semantics.
> @@ -825,7 +812,17 @@
> Value *RHS, ///< The right-hand-side of the expression
> const std::string &Name, ///< Name of the instruction
> BasicBlock *InsertAtEnd ///< Block to insert into.
> - ) : CmpInst(Instruction::FCmp, pred, LHS, RHS, Name, InsertAtEnd) {
> + ) : CmpInst(Type::Int1Ty, Instruction::FCmp, pred, LHS, RHS, Name,
> + InsertAtEnd) {
> + assert(pred <= FCmpInst::LAST_FCMP_PREDICATE &&
> + "Invalid FCmp predicate value");
> + const Type* Op0Ty = getOperand(0)->getType();
> + const Type* Op1Ty = getOperand(1)->getType();
> + assert(Op0Ty == Op1Ty &&
> + "Both operands to FCmp instruction are not of the same
> type!");
> + // Check that the operands are the right type
> + assert(Op0Ty->isFloatingPoint() &&
> + "Invalid operand types for FCmp instruction");
> }
>
> /// @brief Return the predicate for this instruction.
> @@ -898,6 +895,100 @@
> };
>
> //
> =
> =
> =
> ----------------------------------------------------------------------=
> ==//
> +// VICmpInst Class
> +//
> =
> =
> =
> ----------------------------------------------------------------------=
> ==//
> +
> +/// This instruction compares its operands according to the
> predicate given
> +/// to the constructor. It only operates on vectors of integers.
> +/// The operands must be identical types.
> +/// @brief Represents a vector integer comparison operator.
> +class VICmpInst: public CmpInst {
> +public:
> + /// @brief Constructor with insert-before-instruction semantics.
> + VICmpInst(
> + Predicate pred, ///< The predicate to use for the comparison
> + Value *LHS, ///< The left-hand-side of the expression
> + Value *RHS, ///< The right-hand-side of the expression
> + const std::string &Name = "", ///< Name of the instruction
> + Instruction *InsertBefore = 0 ///< Where to insert
> + ) : CmpInst(LHS->getType(), Instruction::VICmp, pred, LHS, RHS,
> Name,
> + InsertBefore) {
> + }
> +
> + /// @brief Constructor with insert-at-block-end semantics.
> + VICmpInst(
> + Predicate pred, ///< The predicate to use for the comparison
> + Value *LHS, ///< The left-hand-side of the expression
> + Value *RHS, ///< The right-hand-side of the expression
> + const std::string &Name, ///< Name of the instruction
> + BasicBlock *InsertAtEnd ///< Block to insert into.
> + ) : CmpInst(LHS->getType(), Instruction::VICmp, pred, LHS, RHS,
> Name,
> + InsertAtEnd) {
> + }
> +
> + /// @brief Return the predicate for this instruction.
> + Predicate getPredicate() const { return Predicate(SubclassData); }
> +
> + virtual VICmpInst *clone() const;
> +
> + // Methods for support type inquiry through isa, cast, and
> dyn_cast:
> + static inline bool classof(const VICmpInst *) { return true; }
> + static inline bool classof(const Instruction *I) {
> + return I->getOpcode() == Instruction::VICmp;
> + }
> + static inline bool classof(const Value *V) {
> + return isa<Instruction>(V) && classof(cast<Instruction>(V));
> + }
> +};
> +
> +//
> =
> =
> =
> ----------------------------------------------------------------------=
> ==//
> +// VFCmpInst Class
> +//
> =
> =
> =
> ----------------------------------------------------------------------=
> ==//
> +
> +/// This instruction compares its operands according to the
> predicate given
> +/// to the constructor. It only operates on vectors of floating
> point values.
> +/// The operands must be identical types.
> +/// @brief Represents a vector floating point comparison operator.
> +class VFCmpInst: public CmpInst {
> +public:
> + /// @brief Constructor with insert-before-instruction semantics.
> + VFCmpInst(
> + Predicate pred, ///< The predicate to use for the comparison
> + Value *LHS, ///< The left-hand-side of the expression
> + Value *RHS, ///< The right-hand-side of the expression
> + const std::string &Name = "", ///< Name of the instruction
> + Instruction *InsertBefore = 0 ///< Where to insert
> + ) : CmpInst(VectorType::getInteger(cast<VectorType>(LHS-
> >getType())),
> + Instruction::VFCmp, pred, LHS, RHS, Name,
> InsertBefore) {
> + }
> +
> + /// @brief Constructor with insert-at-block-end semantics.
> + VFCmpInst(
> + Predicate pred, ///< The predicate to use for the comparison
> + Value *LHS, ///< The left-hand-side of the expression
> + Value *RHS, ///< The right-hand-side of the expression
> + const std::string &Name, ///< Name of the instruction
> + BasicBlock *InsertAtEnd ///< Block to insert into.
> + ) : CmpInst(VectorType::getInteger(cast<VectorType>(LHS-
> >getType())),
> + Instruction::VFCmp, pred, LHS, RHS, Name,
> InsertAtEnd) {
> + }
> +
> + /// @brief Return the predicate for this instruction.
> + Predicate getPredicate() const { return Predicate(SubclassData); }
> +
> + virtual VFCmpInst *clone() const;
> +
> + /// @brief Methods for support type inquiry through isa, cast,
> and dyn_cast:
> + static inline bool classof(const VFCmpInst *) { return true; }
> + static inline bool classof(const Instruction *I) {
> + return I->getOpcode() == Instruction::VFCmp;
> + }
> + static inline bool classof(const Value *V) {
> + return isa<Instruction>(V) && classof(cast<Instruction>(V));
> + }
> +};
> +
> +//
> =
> =
> =
> ----------------------------------------------------------------------=
> ==//
> // CallInst Class
> //
> =
> =
> =
> ----------------------------------------------------------------------=
> ==//
> /// CallInst - This class represents a function call, abstracting a
> target
> @@ -1908,8 +1999,6 @@
> // InvokeInst Class
> //
> =
> =
> =
> ----------------------------------------------------------------------=
> ==//
>
> -//
> =
> =
> =
> ---------------------------------------------------------------------------
> -
> /// InvokeInst - Invoke instruction. The SubclassData field is used
> to hold the
> /// calling convention of the call.
> ///
>
> Modified: llvm/trunk/include/llvm/Support/InstVisitor.h
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/Support/InstVisitor.h?rev=50985&r1=50984&r2=50985&view=diff
>
> =
> =
> =
> =
> =
> =
> =
> =
> ======================================================================
> --- llvm/trunk/include/llvm/Support/InstVisitor.h (original)
> +++ llvm/trunk/include/llvm/Support/InstVisitor.h Mon May 12
> 14:01:56 2008
> @@ -169,6 +169,8 @@
> RetTy visitUnreachableInst(UnreachableInst &I)
> { DELEGATE(TerminatorInst);}
> RetTy visitICmpInst(ICmpInst &I)
> { DELEGATE(CmpInst);}
> RetTy visitFCmpInst(FCmpInst &I)
> { DELEGATE(CmpInst);}
> + RetTy visitVICmpInst(VICmpInst &I)
> { DELEGATE(CmpInst);}
> + RetTy visitVFCmpInst(VFCmpInst &I)
> { DELEGATE(CmpInst);}
> RetTy visitMallocInst(MallocInst &I)
> { DELEGATE(AllocationInst);}
> RetTy visitAllocaInst(AllocaInst &I)
> { DELEGATE(AllocationInst);}
> RetTy visitFreeInst(FreeInst &I)
> { DELEGATE(Instruction); }
>
> Modified: llvm/trunk/lib/AsmParser/LLLexer.cpp
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/AsmParser/LLLexer.cpp?rev=50985&r1=50984&r2=50985&view=diff
>
> =
> =
> =
> =
> =
> =
> =
> =
> ======================================================================
> --- llvm/trunk/lib/AsmParser/LLLexer.cpp (original)
> +++ llvm/trunk/lib/AsmParser/LLLexer.cpp Mon May 12 14:01:56 2008
> @@ -566,6 +566,8 @@
> INSTKEYWORD("xor", BinaryOpVal, Xor, XOR);
> INSTKEYWORD("icmp", OtherOpVal, ICmp, ICMP);
> INSTKEYWORD("fcmp", OtherOpVal, FCmp, FCMP);
> + INSTKEYWORD("vicmp", OtherOpVal, VICmp, VICMP);
> + INSTKEYWORD("vfcmp", OtherOpVal, VFCmp, VFCMP);
>
> INSTKEYWORD("phi", OtherOpVal, PHI, PHI_TOK);
> INSTKEYWORD("call", OtherOpVal, Call, CALL);
>
> Modified: llvm/trunk/lib/AsmParser/llvmAsmParser.cpp.cvs
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/AsmParser/llvmAsmParser.cpp.cvs?rev=50985&r1=50984&r2=50985&view=diff
>
> =
> =
> =
> =
> =
> =
> =
> =
> ======================================================================
> --- llvm/trunk/lib/AsmParser/llvmAsmParser.cpp.cvs (original)
> +++ llvm/trunk/lib/AsmParser/llvmAsmParser.cpp.cvs Mon May 12
> 14:01:56 2008
> @@ -162,66 +162,68 @@
> ASHR = 343,
> ICMP = 344,
> FCMP = 345,
> - EQ = 346,
> - NE = 347,
> - SLT = 348,
> - SGT = 349,
> - SLE = 350,
> - SGE = 351,
> - ULT = 352,
> - UGT = 353,
> - ULE = 354,
> - UGE = 355,
> - OEQ = 356,
> - ONE = 357,
> - OLT = 358,
> - OGT = 359,
> - OLE = 360,
> - OGE = 361,
> - ORD = 362,
> - UNO = 363,
> - UEQ = 364,
> - UNE = 365,
> - MALLOC = 366,
> - ALLOCA = 367,
> - FREE = 368,
> - LOAD = 369,
> - STORE = 370,
> - GETELEMENTPTR = 371,
> - TRUNC = 372,
> - ZEXT = 373,
> - SEXT = 374,
> - FPTRUNC = 375,
> - FPEXT = 376,
> - BITCAST = 377,
> - UITOFP = 378,
> - SITOFP = 379,
> - FPTOUI = 380,
> - FPTOSI = 381,
> - INTTOPTR = 382,
> - PTRTOINT = 383,
> - PHI_TOK = 384,
> - SELECT = 385,
> - VAARG = 386,
> - EXTRACTELEMENT = 387,
> - INSERTELEMENT = 388,
> - SHUFFLEVECTOR = 389,
> - GETRESULT = 390,
> - SIGNEXT = 391,
> - ZEROEXT = 392,
> - NORETURN = 393,
> - INREG = 394,
> - SRET = 395,
> - NOUNWIND = 396,
> - NOALIAS = 397,
> - BYVAL = 398,
> - NEST = 399,
> - READNONE = 400,
> - READONLY = 401,
> - GC = 402,
> - DEFAULT = 403,
> - HIDDEN = 404,
> - PROTECTED = 405
> + VICMP = 346,
> + VFCMP = 347,
> + EQ = 348,
> + NE = 349,
> + SLT = 350,
> + SGT = 351,
> + SLE = 352,
> + SGE = 353,
> + ULT = 354,
> + UGT = 355,
> + ULE = 356,
> + UGE = 357,
> + OEQ = 358,
> + ONE = 359,
> + OLT = 360,
> + OGT = 361,
> + OLE = 362,
> + OGE = 363,
> + ORD = 364,
> + UNO = 365,
> + UEQ = 366,
> + UNE = 367,
> + MALLOC = 368,
> + ALLOCA = 369,
> + FREE = 370,
> + LOAD = 371,
> + STORE = 372,
> + GETELEMENTPTR = 373,
> + TRUNC = 374,
> + ZEXT = 375,
> + SEXT = 376,
> + FPTRUNC = 377,
> + FPEXT = 378,
> + BITCAST = 379,
> + UITOFP = 380,
> + SITOFP = 381,
> + FPTOUI = 382,
> + FPTOSI = 383,
> + INTTOPTR = 384,
> + PTRTOINT = 385,
> + PHI_TOK = 386,
> + SELECT = 387,
> + VAARG = 388,
> + EXTRACTELEMENT = 389,
> + INSERTELEMENT = 390,
> + SHUFFLEVECTOR = 391,
> + GETRESULT = 392,
> + SIGNEXT = 393,
> + ZEROEXT = 394,
> + NORETURN = 395,
> + INREG = 396,
> + SRET = 397,
> + NOUNWIND = 398,
> + NOALIAS = 399,
> + BYVAL = 400,
> + NEST = 401,
> + READNONE = 402,
> + READONLY = 403,
> + GC = 404,
> + DEFAULT = 405,
> + HIDDEN = 406,
> + PROTECTED = 407
> };
> #endif
> /* Tokens. */
> @@ -313,72 +315,74 @@
> #define ASHR 343
> #define ICMP 344
> #define FCMP 345
> -#define EQ 346
> -#define NE 347
> -#define SLT 348
> -#define SGT 349
> -#define SLE 350
> -#define SGE 351
> -#define ULT 352
> -#define UGT 353
> -#define ULE 354
> -#define UGE 355
> -#define OEQ 356
> -#define ONE 357
> -#define OLT 358
> -#define OGT 359
> -#define OLE 360
> -#define OGE 361
> -#define ORD 362
> -#define UNO 363
> -#define UEQ 364
> -#define UNE 365
> -#define MALLOC 366
> -#define ALLOCA 367
> -#define FREE 368
> -#define LOAD 369
> -#define STORE 370
> -#define GETELEMENTPTR 371
> -#define TRUNC 372
> -#define ZEXT 373
> -#define SEXT 374
> -#define FPTRUNC 375
> -#define FPEXT 376
> -#define BITCAST 377
> -#define UITOFP 378
> -#define SITOFP 379
> -#define FPTOUI 380
> -#define FPTOSI 381
> -#define INTTOPTR 382
> -#define PTRTOINT 383
> -#define PHI_TOK 384
> -#define SELECT 385
> -#define VAARG 386
> -#define EXTRACTELEMENT 387
> -#define INSERTELEMENT 388
> -#define SHUFFLEVECTOR 389
> -#define GETRESULT 390
> -#define SIGNEXT 391
> -#define ZEROEXT 392
> -#define NORETURN 393
> -#define INREG 394
> -#define SRET 395
> -#define NOUNWIND 396
> -#define NOALIAS 397
> -#define BYVAL 398
> -#define NEST 399
> -#define READNONE 400
> -#define READONLY 401
> -#define GC 402
> -#define DEFAULT 403
> -#define HIDDEN 404
> -#define PROTECTED 405
> +#define VICMP 346
> +#define VFCMP 347
> +#define EQ 348
> +#define NE 349
> +#define SLT 350
> +#define SGT 351
> +#define SLE 352
> +#define SGE 353
> +#define ULT 354
> +#define UGT 355
> +#define ULE 356
> +#define UGE 357
> +#define OEQ 358
> +#define ONE 359
> +#define OLT 360
> +#define OGT 361
> +#define OLE 362
> +#define OGE 363
> +#define ORD 364
> +#define UNO 365
> +#define UEQ 366
> +#define UNE 367
> +#define MALLOC 368
> +#define ALLOCA 369
> +#define FREE 370
> +#define LOAD 371
> +#define STORE 372
> +#define GETELEMENTPTR 373
> +#define TRUNC 374
> +#define ZEXT 375
> +#define SEXT 376
> +#define FPTRUNC 377
> +#define FPEXT 378
> +#define BITCAST 379
> +#define UITOFP 380
> +#define SITOFP 381
> +#define FPTOUI 382
> +#define FPTOSI 383
> +#define INTTOPTR 384
> +#define PTRTOINT 385
> +#define PHI_TOK 386
> +#define SELECT 387
> +#define VAARG 388
> +#define EXTRACTELEMENT 389
> +#define INSERTELEMENT 390
> +#define SHUFFLEVECTOR 391
> +#define GETRESULT 392
> +#define SIGNEXT 393
> +#define ZEROEXT 394
> +#define NORETURN 395
> +#define INREG 396
> +#define SRET 397
> +#define NOUNWIND 398
> +#define NOALIAS 399
> +#define BYVAL 400
> +#define NEST 401
> +#define READNONE 402
> +#define READONLY 403
> +#define GC 404
> +#define DEFAULT 405
> +#define HIDDEN 406
> +#define PROTECTED 407
>
>
>
>
> /* Copy the first part of user declarations. */
> -#line 14 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 14 "/llvm/lib/AsmParser/llvmAsmParser.y"
>
> #include "ParserInternals.h"
> #include "llvm/CallingConv.h"
> @@ -1334,7 +1338,7 @@
>
> #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
> typedef union YYSTYPE
> -#line 949 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 949 "/llvm/lib/AsmParser/llvmAsmParser.y"
> {
> llvm::Module *ModuleVal;
> llvm::Function *FunctionVal;
> @@ -1382,7 +1386,7 @@
> llvm::FCmpInst::Predicate FPredicate;
> }
> /* Line 193 of yacc.c. */
> -#line 1386 "llvmAsmParser.tab.c"
> +#line 1390 "llvmAsmParser.tab.c"
> YYSTYPE;
> # define yystype YYSTYPE /* obsolescent; will be withdrawn */
> # define YYSTYPE_IS_DECLARED 1
> @@ -1395,7 +1399,7 @@
>
>
> /* Line 216 of yacc.c. */
> -#line 1399 "llvmAsmParser.tab.c"
> +#line 1403 "llvmAsmParser.tab.c"
>
> #ifdef short
> # undef short
> @@ -1610,20 +1614,20 @@
> /* YYFINAL -- State number of the termination state. */
> #define YYFINAL 43
> /* YYLAST -- Last index in YYTABLE. */
> -#define YYLAST 1978
> +#define YYLAST 2035
>
> /* YYNTOKENS -- Number of terminals. */
> -#define YYNTOKENS 165
> +#define YYNTOKENS 167
> /* YYNNTS -- Number of nonterminals. */
> #define YYNNTS 85
> /* YYNRULES -- Number of rules. */
> -#define YYNRULES 322
> +#define YYNRULES 326
> /* YYNRULES -- Number of states. */
> -#define YYNSTATES 629
> +#define YYNSTATES 655
>
> /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to
> YYLEX. */
> #define YYUNDEFTOK 2
> -#define YYMAXUTOK 405
> +#define YYMAXUTOK 407
>
> #define YYTRANSLATE(YYX) \
> ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
> @@ -1635,15 +1639,15 @@
> 2, 2, 2, 2, 2, 2, 2, 2,
> 2, 2,
> 2, 2, 2, 2, 2, 2, 2, 2,
> 2, 2,
> 2, 2, 2, 2, 2, 2, 2, 2,
> 2, 2,
> - 151, 152, 155, 2, 154, 2, 2, 2,
> 2, 2,
> + 153, 154, 157, 2, 156, 2, 2, 2,
> 2, 2,
> 2, 2, 2, 2, 2, 2, 2, 2,
> 2, 2,
> - 160, 153, 161, 2, 2, 2, 2, 2,
> 2, 2,
> + 162, 155, 163, 2, 2, 2, 2, 2,
> 2, 2,
> 2, 2, 2, 2, 2, 2, 2, 2,
> 2, 2,
> 2, 2, 2, 2, 2, 2, 2, 2,
> 2, 2,
> - 2, 157, 156, 159, 2, 2, 2, 2, 2,
> 164,
> + 2, 159, 158, 161, 2, 2, 2, 2, 2,
> 166,
> 2, 2, 2, 2, 2, 2, 2, 2,
> 2, 2,
> 2, 2, 2, 2, 2, 2, 2, 2,
> 2, 2,
> - 158, 2, 2, 162, 2, 163, 2, 2,
> 2, 2,
> + 160, 2, 2, 164, 2, 165, 2, 2,
> 2, 2,
> 2, 2, 2, 2, 2, 2, 2, 2,
> 2, 2,
> 2, 2, 2, 2, 2, 2, 2, 2,
> 2, 2,
> 2, 2, 2, 2, 2, 2, 2, 2,
> 2, 2,
> @@ -1671,7 +1675,7 @@
> 115, 116, 117, 118, 119, 120, 121, 122, 123,
> 124,
> 125, 126, 127, 128, 129, 130, 131, 132, 133,
> 134,
> 135, 136, 137, 138, 139, 140, 141, 142, 143,
> 144,
> - 145, 146, 147, 148, 149, 150
> + 145, 146, 147, 148, 149, 150, 151, 152
> };
>
> #if YYDEBUG
> @@ -1698,127 +1702,130 @@
> 350, 352, 354, 358, 360, 364, 366, 367, 369,
> 373,
> 378, 382, 386, 391, 396, 400, 407, 413, 416,
> 419,
> 422, 425, 428, 431, 434, 437, 440, 443, 446,
> 449,
> - 456, 462, 471, 478, 485, 493, 501, 508, 517,
> 526,
> - 530, 532, 534, 536, 538, 539, 542, 549, 551,
> 552,
> - 554, 557, 558, 562, 563, 567, 571, 575, 579,
> 580,
> - 589, 590, 600, 601, 611, 617, 620, 624, 626,
> 630,
> - 634, 638, 642, 644, 645, 651, 655, 657, 661,
> 663,
> - 664, 675, 677, 679, 684, 686, 688, 691, 695,
> 696,
> - 698, 700, 702, 704, 706, 708, 710, 712, 714,
> 718,
> - 720, 726, 728, 730, 732, 734, 736, 738, 741,
> 743,
> - 747, 750, 753, 757, 760, 761, 763, 766, 769,
> 773,
> - 783, 793, 802, 817, 819, 821, 828, 834, 837,
> 844,
> - 852, 857, 862, 869, 876, 877, 878, 882, 885,
> 887,
> - 893, 899, 906, 913, 918, 925, 930, 935, 942,
> 949,
> - 952, 961, 963, 965, 966, 970, 977, 981, 988,
> 991,
> - 997, 1005, 1011
> + 456, 462, 471, 478, 485, 493, 501, 509, 517,
> 524,
> + 533, 542, 546, 548, 550, 552, 554, 555, 558,
> 565,
> + 567, 568, 570, 573, 574, 578, 579, 583, 587,
> 591,
> + 595, 596, 605, 606, 616, 617, 627, 633, 636,
> 640,
> + 642, 646, 650, 654, 658, 660, 661, 667, 671,
> 673,
> + 677, 679, 680, 691, 693, 695, 700, 702, 704,
> 707,
> + 711, 712, 714, 716, 718, 720, 722, 724, 726,
> 728,
> + 730, 734, 736, 742, 744, 746, 748, 750, 752,
> 754,
> + 757, 759, 763, 766, 769, 773, 776, 777, 779,
> 782,
> + 785, 789, 799, 809, 818, 833, 835, 837, 844,
> 850,
> + 853, 860, 868, 873, 878, 885, 892, 893, 894,
> 898,
> + 901, 903, 909, 915, 922, 929, 936, 943, 948,
> 955,
> + 960, 965, 972, 979, 982, 991, 993, 995, 996,
> 1000,
> + 1007, 1011, 1018, 1021, 1027, 1035, 1041
> };
>
> /* YYRHS -- A `-1'-separated list of the rules' RHS. */
> static const yytype_int16 yyrhs[] =
> {
> - 211, 0, -1, 74, -1, 75, -1, 76,
> -1, 77,
> + 213, 0, -1, 74, -1, 75, -1, 76,
> -1, 77,
> -1, 78, -1, 79, -1, 80, -1, 81, -1,
> 82,
> -1, 86, -1, 87, -1, 88, -1, 83, -1,
> 84,
> - -1, 85, -1, 117, -1, 118, -1, 119, -1,
> 120,
> - -1, 121, -1, 122, -1, 123, -1, 124, -1,
> 125,
> - -1, 126, -1, 127, -1, 128, -1, 91,
> -1, 92,
> - -1, 93, -1, 94, -1, 95, -1, 96,
> -1, 97,
> - -1, 98, -1, 99, -1, 100, -1, 101, -1,
> 102,
> - -1, 103, -1, 104, -1, 105, -1, 106, -1,
> 107,
> - -1, 108, -1, 109, -1, 110, -1, 97,
> -1, 98,
> - -1, 99, -1, 100, -1, 26, -1, 27,
> -1, 11,
> + -1, 85, -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, 93,
> -1, 94,
> + -1, 95, -1, 96, -1, 97, -1, 98,
> -1, 99,
> + -1, 100, -1, 101, -1, 102, -1, 103, -1,
> 104,
> + -1, 105, -1, 106, -1, 107, -1, 108, -1,
> 109,
> + -1, 110, -1, 111, -1, 112, -1, 99, -1,
> 100,
> + -1, 101, -1, 102, -1, 26, -1, 27,
> -1, 11,
> -1, 12, -1, 13, -1, 16, -1, 15, -1,
> 14,
> - -1, 19, -1, 22, -1, 24, -1, 173,
> -1, -1,
> - 54, 151, 4, 152, -1, -1, 173, 153,
> -1, -1,
> - 20, -1, 23, -1, 179, -1, -1, 177,
> 153, -1,
> + -1, 19, -1, 22, -1, 24, -1, 175,
> -1, -1,
> + 54, 153, 4, 154, -1, -1, 175, 155,
> -1, -1,
> + 20, -1, 23, -1, 181, -1, -1, 179,
> 155, -1,
> 42, -1, 44, -1, 43, -1, 45, -1, 47,
> -1,
> - 46, -1, 48, -1, 50, -1, -1, 148, -1,
> 149,
> - -1, 150, -1, -1, 46, -1, 48, -1,
> -1, 42,
> + 46, -1, 48, -1, 50, -1, -1, 150, -1,
> 151,
> + -1, 152, -1, -1, 46, -1, 48, -1,
> -1, 42,
> -1, 43, -1, 44, -1, 47, -1, -1, 44,
> -1,
> 42, -1, -1, 62, -1, 63, -1, 64, -1,
> 65,
> - -1, 66, -1, 61, 4, -1, 137, -1,
> 118, -1,
> - 136, -1, 119, -1, 139, -1, 140, -1,
> 142, -1,
> - 143, -1, 144, -1, 53, 4, -1, -1, 188,
> 187,
> - -1, 138, -1, 141, -1, 137, -1, 136, -1,
> 145,
> - -1, 146, -1, -1, 190, 189, -1, -1,
> 147, 22,
> - -1, -1, 53, 4, -1, -1, 154, 53,
> 4, -1,
> - 34, 22, -1, -1, 194, -1, -1, 154, 197,
> 196,
> - -1, 194, -1, 53, 4, -1, 11, -1,
> 12, -1,
> + -1, 66, -1, 61, 4, -1, 139, -1,
> 120, -1,
> + 138, -1, 121, -1, 141, -1, 142, -1,
> 144, -1,
> + 145, -1, 146, -1, 53, 4, -1, -1, 190,
> 189,
> + -1, 140, -1, 143, -1, 139, -1, 138, -1,
> 147,
> + -1, 148, -1, -1, 192, 191, -1, -1,
> 149, 22,
> + -1, -1, 53, 4, -1, -1, 156, 53,
> 4, -1,
> + 34, 22, -1, -1, 196, -1, -1, 156, 199,
> 198,
> + -1, 196, -1, 53, 4, -1, 11, -1,
> 12, -1,
> 13, -1, 16, -1, 15, -1, 14, -1, 17,
> -1,
> - 49, -1, 198, -1, 199, 175, 155, -1,
> 233, -1,
> - 156, 4, -1, 199, 151, 203, 152, 190,
> -1, 10,
> - 151, 203, 152, 190, -1, 157, 4, 158, 199,
> 159,
> - -1, 160, 4, 158, 199, 161, -1, 162, 204,
> 163,
> - -1, 162, 163, -1, 160, 162, 204, 163,
> 161, -1,
> - 160, 162, 163, 161, -1, 199, 188, -1,
> 199, -1,
> - 10, -1, 200, -1, 202, 154, 200, -1,
> 202, -1,
> - 202, 154, 39, -1, 39, -1, -1, 199, -1,
> 204,
> - 154, 199, -1, 199, 157, 207, 159, -1, 199,
> 157,
> - 159, -1, 199, 164, 22, -1, 199, 160, 207,
> 161,
> - -1, 199, 162, 207, 163, -1, 199, 162,
> 163, -1,
> - 199, 160, 162, 207, 163, 161, -1, 199, 160,
> 162,
> - 163, 161, -1, 199, 40, -1, 199, 41, -1,
> 199,
> - 233, -1, 199, 206, -1, 199, 25, -1,
> 171, 3,
> - -1, 171, 5, -1, 171, 4, -1, 171,
> 6, -1,
> - 11, 26, -1, 11, 27, -1, 172, 9, -1,
> 168,
> - 151, 205, 38, 199, 152, -1, 116, 151, 205,
> 245,
> - 152, -1, 130, 151, 205, 154, 205, 154, 205,
> 152,
> - -1, 166, 151, 205, 154, 205, 152, -1, 167,
> 151,
> - 205, 154, 205, 152, -1, 89, 169, 151, 205,
> 154,
> - 205, 152, -1, 90, 170, 151, 205, 154, 205,
> 152,
> - -1, 132, 151, 205, 154, 205, 152, -1, 133,
> 151,
> - 205, 154, 205, 154, 205, 152, -1, 134, 151,
> 205,
> - 154, 205, 154, 205, 152, -1, 207, 154,
> 205, -1,
> - 205, -1, 32, -1, 33, -1, 37, -1, -1,
> 201,
> - 233, -1, 122, 151, 210, 38, 199, 152, -1,
> 212,
> - -1, -1, 213, -1, 212, 213, -1, -1, 31,
> 214,
> - 229, -1, -1, 30, 215, 230, -1, 59, 58,
> 219,
> - -1, 176, 18, 199, -1, 176, 18, 10,
> -1, -1,
> - 178, 182, 209, 208, 205, 175, 216, 196,
> -1, -1,
> - 178, 180, 182, 209, 208, 205, 175, 217,
> 196, -1,
> - -1, 178, 181, 182, 209, 208, 199, 175, 218,
> 196,
> - -1, 178, 182, 35, 185, 210, -1, 51,
> 220, -1,
> - 55, 153, 221, -1, 22, -1, 52, 153,
> 22, -1,
> - 67, 153, 22, -1, 157, 222, 159, -1, 222,
> 154,
> - 22, -1, 22, -1, -1, 223, 154, 199, 188,
> 174,
> - -1, 199, 188, 174, -1, 223, -1, 223,
> 154, 39,
> - -1, 39, -1, -1, 186, 201, 177, 151, 224,
> 152,
> - 190, 195, 192, 191, -1, 28, -1, 162, -1,
> 184,
> - 182, 225, 226, -1, 29, -1, 163, -1, 237,
> 228,
> - -1, 183, 182, 225, -1, -1, 60, -1,
> 3, -1,
> - 4, -1, 9, -1, 26, -1, 27, -1,
> 40, -1,
> - 41, -1, 25, -1, 160, 207, 161, -1,
> 206, -1,
> - 58, 231, 22, 154, 22, -1, 7, -1,
> 8, -1,
> - 173, -1, 177, -1, 233, -1, 232, -1, 199,
> 234,
> - -1, 235, -1, 236, 154, 235, -1, 237,
> 238, -1,
> - 227, 238, -1, 239, 176, 240, -1, 239,
> 242, -1,
> - -1, 21, -1, 68, 236, -1, 68, 10,
> -1, 69,
> - 17, 234, -1, 69, 11, 234, 154, 17, 234,
> 154,
> - 17, 234, -1, 70, 171, 234, 154, 17, 234,
> 157,
> - 241, 159, -1, 70, 171, 234, 154, 17, 234,
> 157,
> - 159, -1, 71, 186, 201, 234, 151, 244, 152,
> 190,
> - 38, 17, 234, 72, 17, 234, -1, 72,
> -1, 73,
> - -1, 241, 171, 232, 154, 17, 234, -1, 171,
> 232,
> - 154, 17, 234, -1, 176, 247, -1, 199, 157,
> 234,
> - 154, 234, 159, -1, 243, 154, 157, 234, 154,
> 234,
> - 159, -1, 199, 188, 234, 188, -1, 17, 188,
> 234,
> - 188, -1, 244, 154, 199, 188, 234, 188, -1,
> 244,
> - 154, 17, 188, 234, 188, -1, -1, -1, 245,
> 154,
> - 235, -1, 57, 56, -1, 56, -1, 166, 199,
> 234,
> - 154, 234, -1, 167, 199, 234, 154, 234,
> -1, 89,
> - 169, 199, 234, 154, 234, -1, 90, 170, 199,
> 234,
> - 154, 234, -1, 168, 235, 38, 199, -1, 130,
> 235,
> - 154, 235, 154, 235, -1, 131, 235, 154,
> 199, -1,
> - 132, 235, 154, 235, -1, 133, 235, 154, 235,
> 154,
> - 235, -1, 134, 235, 154, 235, 154, 235, -1,
> 129,
> - 243, -1, 246, 186, 201, 234, 151, 244, 152,
> 190,
> - -1, 249, -1, 36, -1, -1, 111, 199,
> 193, -1,
> - 111, 199, 154, 11, 234, 193, -1, 112, 199,
> 193,
> - -1, 112, 199, 154, 11, 234, 193, -1, 113,
> 235,
> - -1, 248, 114, 199, 234, 193, -1, 248, 115,
> 235,
> - 154, 199, 234, 193, -1, 135, 199, 234,
> 154, 4,
> - -1, 116, 199, 234, 245, -1
> + 49, -1, 200, -1, 201, 177, 157, -1,
> 235, -1,
> + 158, 4, -1, 201, 153, 205, 154, 192,
> -1, 10,
> + 153, 205, 154, 192, -1, 159, 4, 160, 201,
> 161,
> + -1, 162, 4, 160, 201, 163, -1, 164, 206,
> 165,
> + -1, 164, 165, -1, 162, 164, 206, 165,
> 163, -1,
> + 162, 164, 165, 163, -1, 201, 190, -1,
> 201, -1,
> + 10, -1, 202, -1, 204, 156, 202, -1,
> 204, -1,
> + 204, 156, 39, -1, 39, -1, -1, 201, -1,
> 206,
> + 156, 201, -1, 201, 159, 209, 161, -1, 201,
> 159,
> + 161, -1, 201, 166, 22, -1, 201, 162, 209,
> 163,
> + -1, 201, 164, 209, 165, -1, 201, 164,
> 165, -1,
> + 201, 162, 164, 209, 165, 163, -1, 201, 162,
> 164,
> + 165, 163, -1, 201, 40, -1, 201, 41, -1,
> 201,
> + 235, -1, 201, 208, -1, 201, 25, -1,
> 173, 3,
> + -1, 173, 5, -1, 173, 4, -1, 173,
> 6, -1,
> + 11, 26, -1, 11, 27, -1, 174, 9, -1,
> 170,
> + 153, 207, 38, 201, 154, -1, 118, 153, 207,
> 247,
> + 154, -1, 132, 153, 207, 156, 207, 156, 207,
> 154,
> + -1, 168, 153, 207, 156, 207, 154, -1, 169,
> 153,
> + 207, 156, 207, 154, -1, 89, 171, 153, 207,
> 156,
> + 207, 154, -1, 90, 172, 153, 207, 156, 207,
> 154,
> + -1, 91, 171, 153, 207, 156, 207, 154,
> -1, 92,
> + 172, 153, 207, 156, 207, 154, -1, 134, 153,
> 207,
> + 156, 207, 154, -1, 135, 153, 207, 156, 207,
> 156,
> + 207, 154, -1, 136, 153, 207, 156, 207, 156,
> 207,
> + 154, -1, 209, 156, 207, -1, 207, -1,
> 32, -1,
> + 33, -1, 37, -1, -1, 203, 235, -1, 124,
> 153,
> + 212, 38, 201, 154, -1, 214, -1, -1,
> 215, -1,
> + 214, 215, -1, -1, 31, 216, 231, -1,
> -1, 30,
> + 217, 232, -1, 59, 58, 221, -1, 178, 18,
> 201,
> + -1, 178, 18, 10, -1, -1, 180, 184, 211,
> 210,
> + 207, 177, 218, 198, -1, -1, 180, 182, 184,
> 211,
> + 210, 207, 177, 219, 198, -1, -1, 180, 183,
> 184,
> + 211, 210, 201, 177, 220, 198, -1, 180,
> 184, 35,
> + 187, 212, -1, 51, 222, -1, 55, 155,
> 223, -1,
> + 22, -1, 52, 155, 22, -1, 67, 155,
> 22, -1,
> + 159, 224, 161, -1, 224, 156, 22, -1,
> 22, -1,
> + -1, 225, 156, 201, 190, 176, -1, 201, 190,
> 176,
> + -1, 225, -1, 225, 156, 39, -1, 39,
> -1, -1,
> + 188, 203, 179, 153, 226, 154, 192, 197, 194,
> 193,
> + -1, 28, -1, 164, -1, 186, 184, 227,
> 228, -1,
> + 29, -1, 165, -1, 239, 230, -1, 185, 184,
> 227,
> + -1, -1, 60, -1, 3, -1, 4, -1,
> 9, -1,
> + 26, -1, 27, -1, 40, -1, 41, -1,
> 25, -1,
> + 162, 209, 163, -1, 208, -1, 58, 233, 22,
> 156,
> + 22, -1, 7, -1, 8, -1, 175, -1,
> 179, -1,
> + 235, -1, 234, -1, 201, 236, -1, 237, -1,
> 238,
> + 156, 237, -1, 239, 240, -1, 229, 240, -1,
> 241,
> + 178, 242, -1, 241, 244, -1, -1, 21,
> -1, 68,
> + 238, -1, 68, 10, -1, 69, 17, 236,
> -1, 69,
> + 11, 236, 156, 17, 236, 156, 17, 236,
> -1, 70,
> + 173, 236, 156, 17, 236, 159, 243, 161,
> -1, 70,
> + 173, 236, 156, 17, 236, 159, 161, -1, 71,
> 188,
> + 203, 236, 153, 246, 154, 192, 38, 17,
> 236, 72,
> + 17, 236, -1, 72, -1, 73, -1, 243, 173,
> 234,
> + 156, 17, 236, -1, 173, 234, 156, 17,
> 236, -1,
> + 178, 249, -1, 201, 159, 236, 156, 236,
> 161, -1,
> + 245, 156, 159, 236, 156, 236, 161, -1, 201,
> 190,
> + 236, 190, -1, 17, 190, 236, 190, -1, 246,
> 156,
> + 201, 190, 236, 190, -1, 246, 156, 17, 190,
> 236,
> + 190, -1, -1, -1, 247, 156, 237, -1,
> 57, 56,
> + -1, 56, -1, 168, 201, 236, 156, 236, -1,
> 169,
> + 201, 236, 156, 236, -1, 89, 171, 201, 236,
> 156,
> + 236, -1, 90, 172, 201, 236, 156, 236,
> -1, 91,
> + 171, 201, 236, 156, 236, -1, 92, 172, 201,
> 236,
> + 156, 236, -1, 170, 237, 38, 201, -1, 132,
> 237,
> + 156, 237, 156, 237, -1, 133, 237, 156,
> 201, -1,
> + 134, 237, 156, 237, -1, 135, 237, 156, 237,
> 156,
> + 237, -1, 136, 237, 156, 237, 156, 237, -1,
> 131,
> + 245, -1, 248, 188, 203, 236, 153, 246, 154,
> 192,
> + -1, 251, -1, 36, -1, -1, 113, 201,
> 195, -1,
> + 113, 201, 156, 11, 236, 195, -1, 114, 201,
> 195,
> + -1, 114, 201, 156, 11, 236, 195, -1, 115,
> 237,
> + -1, 250, 116, 201, 236, 195, -1, 250, 117,
> 237,
> + 156, 201, 236, 195, -1, 137, 201, 236,
> 156, 4,
> + -1, 118, 201, 236, 247, -1
> };
>
> /* YYRLINE[YYN] -- source line where rule number YYN was defined. */
> @@ -1843,20 +1850,20 @@
> 1464, 1469, 1474, 1481, 1482, 1489, 1496, 1504, 1510,
> 1522,
> 1550, 1566, 1593, 1621, 1647, 1667, 1693, 1713, 1725,
> 1732,
> 1798, 1808, 1818, 1824, 1834, 1840, 1850, 1855, 1860,
> 1873,
> - 1885, 1907, 1915, 1921, 1932, 1937, 1942, 1948, 1954,
> 1963,
> - 1967, 1975, 1975, 1978, 1978, 1981, 1993, 2014, 2019,
> 2027,
> - 2028, 2032, 2032, 2036, 2036, 2039, 2042, 2066, 2078,
> 2077,
> - 2089, 2088, 2098, 2097, 2108, 2148, 2151, 2157, 2167,
> 2171,
> - 2176, 2178, 2183, 2188, 2197, 2207, 2218, 2222, 2231,
> 2240,
> - 2245, 2374, 2374, 2376, 2385, 2385, 2387, 2392, 2404,
> 2408,
> - 2413, 2417, 2421, 2425, 2429, 2433, 2437, 2441, 2445,
> 2470,
> - 2474, 2484, 2488, 2492, 2497, 2504, 2504, 2510, 2519,
> 2524,
> - 2529, 2533, 2542, 2551, 2560, 2564, 2572, 2579, 2583,
> 2588,
> - 2598, 2617, 2626, 2711, 2715, 2722, 2733, 2746, 2756,
> 2767,
> - 2777, 2788, 2796, 2806, 2813, 2816, 2817, 2824, 2828,
> 2833,
> - 2849, 2866, 2880, 2894, 2906, 2914, 2921, 2927, 2933,
> 2939,
> - 2954, 3044, 3049, 3053, 3060, 3067, 3075, 3082, 3090,
> 3098,
> - 3112, 3129, 3137
> + 1885, 1907, 1915, 1921, 1932, 1937, 1942, 1947, 1952,
> 1958,
> + 1964, 1973, 1977, 1985, 1985, 1988, 1988, 1991, 2003,
> 2024,
> + 2029, 2037, 2038, 2042, 2042, 2046, 2046, 2049, 2052,
> 2076,
> + 2088, 2087, 2099, 2098, 2108, 2107, 2118, 2158, 2161,
> 2167,
> + 2177, 2181, 2186, 2188, 2193, 2198, 2207, 2217, 2228,
> 2232,
> + 2241, 2250, 2255, 2384, 2384, 2386, 2395, 2395, 2397,
> 2402,
> + 2414, 2418, 2423, 2427, 2431, 2435, 2439, 2443, 2447,
> 2451,
> + 2455, 2480, 2484, 2494, 2498, 2502, 2507, 2514, 2514,
> 2520,
> + 2529, 2534, 2539, 2543, 2552, 2561, 2570, 2574, 2582,
> 2589,
> + 2593, 2598, 2608, 2627, 2636, 2721, 2725, 2732, 2743,
> 2756,
> + 2766, 2777, 2787, 2798, 2806, 2816, 2823, 2826, 2827,
> 2834,
> + 2838, 2843, 2859, 2876, 2890, 2904, 2918, 2932, 2944,
> 2952,
> + 2959, 2965, 2971, 2977, 2992, 3082, 3087, 3091, 3098,
> 3105,
> + 3113, 3120, 3128, 3136, 3150, 3167, 3175
> };
> #endif
>
> @@ -1879,24 +1886,25 @@
> "FASTCC_TOK", "COLDCC_TOK", "X86_STDCALLCC_TOK",
> "X86_FASTCALLCC_TOK",
> "DATALAYOUT", "RET", "BR", "SWITCH", "INVOKE", "UNWIND",
> "UNREACHABLE",
> "ADD", "SUB", "MUL", "UDIV", "SDIV", "FDIV", "UREM", "SREM", "FREM",
> - "AND", "OR", "XOR", "SHL", "LSHR", "ASHR", "ICMP", "FCMP", "EQ",
> "NE",
> - "SLT", "SGT", "SLE", "SGE", "ULT", "UGT", "ULE", "UGE", "OEQ",
> "ONE",
> - "OLT", "OGT", "OLE", "OGE", "ORD", "UNO", "UEQ", "UNE", "MALLOC",
> - "ALLOCA", "FREE", "LOAD", "STORE", "GETELEMENTPTR", "TRUNC",
> "ZEXT",
> - "SEXT", "FPTRUNC", "FPEXT", "BITCAST", "UITOFP", "SITOFP",
> "FPTOUI",
> - "FPTOSI", "INTTOPTR", "PTRTOINT", "PHI_TOK", "SELECT", "VAARG",
> - "EXTRACTELEMENT", "INSERTELEMENT", "SHUFFLEVECTOR", "GETRESULT",
> - "SIGNEXT", "ZEROEXT", "NORETURN", "INREG", "SRET", "NOUNWIND",
> "NOALIAS",
> - "BYVAL", "NEST", "READNONE", "READONLY", "GC", "DEFAULT", "HIDDEN",
> - "PROTECTED", "'('", "')'", "'='", "','", "'*'", "'\\\\'", "'['",
> "'x'",
> - "']'", "'<'", "'>'", "'{'", "'}'", "'c'", "$accept",
> "ArithmeticOps",
> - "LogicalOps", "CastOps", "IPredicates", "FPredicates", "IntType",
> - "FPType", "LocalName", "OptLocalName", "OptAddrSpace",
> "OptLocalAssign",
> - "GlobalName", "OptGlobalAssign", "GlobalAssign",
> "GVInternalLinkage",
> - "GVExternalLinkage", "GVVisibilityStyle", "FunctionDeclareLinkage",
> - "FunctionDefineLinkage", "AliasLinkage", "OptCallingConv",
> "ParamAttr",
> - "OptParamAttrs", "FuncAttr", "OptFuncAttrs", "OptGC", "OptAlign",
> - "OptCAlign", "SectionString", "OptSection", "GlobalVarAttributes",
> + "AND", "OR", "XOR", "SHL", "LSHR", "ASHR", "ICMP", "FCMP", "VICMP",
> + "VFCMP", "EQ", "NE", "SLT", "SGT", "SLE", "SGE", "ULT", "UGT",
> "ULE",
> + "UGE", "OEQ", "ONE", "OLT", "OGT", "OLE", "OGE", "ORD", "UNO",
> "UEQ",
> + "UNE", "MALLOC", "ALLOCA", "FREE", "LOAD", "STORE",
> "GETELEMENTPTR",
> + "TRUNC", "ZEXT", "SEXT", "FPTRUNC", "FPEXT", "BITCAST", "UITOFP",
> + "SITOFP", "FPTOUI", "FPTOSI", "INTTOPTR", "PTRTOINT", "PHI_TOK",
> + "SELECT", "VAARG", "EXTRACTELEMENT", "INSERTELEMENT",
> "SHUFFLEVECTOR",
> + "GETRESULT", "SIGNEXT", "ZEROEXT", "NORETURN", "INREG", "SRET",
> + "NOUNWIND", "NOALIAS", "BYVAL", "NEST", "READNONE", "READONLY",
> "GC",
> + "DEFAULT", "HIDDEN", "PROTECTED", "'('", "')'", "'='", "','",
> "'*'",
> + "'\\\\'", "'['", "'x'", "']'", "'<'", "'>'", "'{'", "'}'", "'c'",
> + "$accept", "ArithmeticOps", "LogicalOps", "CastOps", "IPredicates",
> + "FPredicates", "IntType", "FPType", "LocalName", "OptLocalName",
> + "OptAddrSpace", "OptLocalAssign", "GlobalName", "OptGlobalAssign",
> + "GlobalAssign", "GVInternalLinkage", "GVExternalLinkage",
> + "GVVisibilityStyle", "FunctionDeclareLinkage",
> "FunctionDefineLinkage",
> + "AliasLinkage", "OptCallingConv", "ParamAttr", "OptParamAttrs",
> + "FuncAttr", "OptFuncAttrs", "OptGC", "OptAlign", "OptCAlign",
> + "SectionString", "OptSection", "GlobalVarAttributes",
> "GlobalVarAttribute", "PrimType", "Types", "ArgType", "ResultTypes",
> "ArgTypeList", "ArgTypeListI", "TypeListI", "ConstVal", "ConstExpr",
> "ConstVector", "GlobalType", "ThreadLocal", "AliaseeRef", "Module",
> @@ -1931,47 +1939,47 @@
> 375, 376, 377, 378, 379, 380, 381, 382, 383,
> 384,
> 385, 386, 387, 388, 389, 390, 391, 392, 393,
> 394,
> 395, 396, 397, 398, 399, 400, 401, 402, 403,
> 404,
> - 405, 40, 41, 61, 44, 42, 92, 91,
> 120, 93,
> - 60, 62, 123, 125, 99
> + 405, 406, 407, 40, 41, 61, 44, 42,
> 92, 91,
> + 120, 93, 60, 62, 123, 125, 99
> };
> # endif
>
> /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
> static const yytype_uint8 yyr1[] =
> {
> - 0, 165, 166, 166, 166, 166, 166, 166, 166,
> 166,
> - 166, 167, 167, 167, 167, 167, 167, 168, 168,
> 168,
> - 168, 168, 168, 168, 168, 168, 168, 168, 168,
> 169,
> - 169, 169, 169, 169, 169, 169, 169, 169, 169,
> 170,
> - 170, 170, 170, 170, 170, 170, 170, 170, 170,
> 170,
> - 170, 170, 170, 170, 170, 171, 172, 172, 172,
> 172,
> - 172, 173, 173, 173, 174, 174, 175, 175, 176,
> 176,
> - 177, 177, 178, 178, 179, 180, 180, 180, 180,
> 180,
> - 181, 181, 181, 182, 182, 182, 182, 183, 183,
> 183,
> - 184, 184, 184, 184, 184, 185, 185, 185, 186,
> 186,
> - 186, 186, 186, 186, 186, 187, 187, 187, 187,
> 187,
> - 187, 187, 187, 187, 187, 188, 188, 189, 189,
> 189,
> - 189, 189, 189, 190, 190, 191, 191, 192, 192,
> 193,
> - 193, 194, 195, 195, 196, 196, 197, 197, 198,
> 198,
> - 198, 198, 198, 198, 198, 199, 199, 199, 199,
> 199,
> - 199, 199, 199, 199, 199, 199, 199, 199, 200,
> 201,
> - 201, 202, 202, 203, 203, 203, 203, 204, 204,
> 205,
> - 205, 205, 205, 205, 205, 205, 205, 205, 205,
> 205,
> - 205, 205, 205, 205, 205, 205, 205, 205, 205,
> 206,
> - 206, 206, 206, 206, 206, 206, 206, 206, 206,
> 207,
> - 207, 208, 208, 209, 209, 210, 210, 211, 211,
> 212,
> - 212, 214, 213, 215, 213, 213, 213, 213, 216,
> 213,
> - 217, 213, 218, 213, 213, 213, 213, 219, 220,
> 220,
> - 221, 222, 222, 222, 223, 223, 224, 224, 224,
> 224,
> - 225, 226, 226, 227, 228, 228, 229, 230, 231,
> 231,
> - 232, 232, 232, 232, 232, 232, 232, 232, 232,
> 232,
> - 232, 233, 233, 233, 233, 234, 234, 235, 236,
> 236,
> - 237, 237, 238, 239, 239, 239, 240, 240, 240,
> 240,
> - 240, 240, 240, 240, 240, 241, 241, 242, 243,
> 243,
> - 244, 244, 244, 244, 244, 245, 245, 246, 246,
> 247,
> - 247, 247, 247, 247, 247, 247, 247, 247, 247,
> 247,
> - 247, 247, 248, 248, 249, 249, 249, 249, 249,
> 249,
> - 249, 249, 249
> + 0, 167, 168, 168, 168, 168, 168, 168, 168,
> 168,
> + 168, 169, 169, 169, 169, 169, 169, 170, 170,
> 170,
> + 170, 170, 170, 170, 170, 170, 170, 170, 170,
> 171,
> + 171, 171, 171, 171, 171, 171, 171, 171, 171,
> 172,
> + 172, 172, 172, 172, 172, 172, 172, 172, 172,
> 172,
> + 172, 172, 172, 172, 172, 173, 174, 174, 174,
> 174,
> + 174, 175, 175, 175, 176, 176, 177, 177, 178,
> 178,
> + 179, 179, 180, 180, 181, 182, 182, 182, 182,
> 182,
> + 183, 183, 183, 184, 184, 184, 184, 185, 185,
> 185,
> + 186, 186, 186, 186, 186, 187, 187, 187, 188,
> 188,
> + 188, 188, 188, 188, 188, 189, 189, 189, 189,
> 189,
> + 189, 189, 189, 189, 189, 190, 190, 191, 191,
> 191,
> + 191, 191, 191, 192, 192, 193, 193, 194, 194,
> 195,
> + 195, 196, 197, 197, 198, 198, 199, 199, 200,
> 200,
> + 200, 200, 200, 200, 200, 201, 201, 201, 201,
> 201,
> + 201, 201, 201, 201, 201, 201, 201, 201, 202,
> 203,
> + 203, 204, 204, 205, 205, 205, 205, 206, 206,
> 207,
> + 207, 207, 207, 207, 207, 207, 207, 207, 207,
> 207,
> + 207, 207, 207, 207, 207, 207, 207, 207, 207,
> 208,
> + 208, 208, 208, 208, 208, 208, 208, 208, 208,
> 208,
> + 208, 209, 209, 210, 210, 211, 211, 212, 212,
> 213,
> + 213, 214, 214, 216, 215, 217, 215, 215, 215,
> 215,
> + 218, 215, 219, 215, 220, 215, 215, 215, 215,
> 221,
> + 222, 222, 223, 224, 224, 224, 225, 225, 226,
> 226,
> + 226, 226, 227, 228, 228, 229, 230, 230, 231,
> 232,
> + 233, 233, 234, 234, 234, 234, 234, 234, 234,
> 234,
> + 234, 234, 234, 235, 235, 235, 235, 236, 236,
> 237,
> + 238, 238, 239, 239, 240, 241, 241, 241, 242,
> 242,
> + 242, 242, 242, 242, 242, 242, 242, 243, 243,
> 244,
> + 245, 245, 246, 246, 246, 246, 246, 247, 247,
> 248,
> + 248, 249, 249, 249, 249, 249, 249, 249, 249,
> 249,
> + 249, 249, 249, 249, 249, 249, 250, 250, 251,
> 251,
> + 251, 251, 251, 251, 251, 251, 251
> };
>
> /* YYR2[YYN] -- Number of symbols composing right hand side of rule
> YYN. */
> @@ -1996,20 +2004,20 @@
> 1, 1, 3, 1, 3, 1, 0, 1,
> 3, 4,
> 3, 3, 4, 4, 3, 6, 5, 2,
> 2, 2,
> 2, 2, 2, 2, 2, 2, 2, 2,
> 2, 6,
> - 5, 8, 6, 6, 7, 7, 6, 8,
> 8, 3,
> - 1, 1, 1, 1, 0, 2, 6, 1,
> 0, 1,
> - 2, 0, 3, 0, 3, 3, 3, 3,
> 0, 8,
> - 0, 9, 0, 9, 5, 2, 3, 1,
> 3, 3,
> - 3, 3, 1, 0, 5, 3, 1, 3,
> 1, 0,
> - 10, 1, 1, 4, 1, 1, 2, 3,
> 0, 1,
> - 1, 1, 1, 1, 1, 1, 1, 1,
> 3, 1,
> - 5, 1, 1, 1, 1, 1, 1, 2,
> 1, 3,
> - 2, 2, 3, 2, 0, 1, 2, 2,
> 3, 9,
> - 9, 8, 14, 1, 1, 6, 5, 2,
> 6, 7,
> - 4, 4, 6, 6, 0, 0, 3, 2,
> 1, 5,
> - 5, 6, 6, 4, 6, 4, 4, 6,
> 6, 2,
> - 8, 1, 1, 0, 3, 6, 3, 6,
> 2, 5,
> - 7, 5, 4
> + 5, 8, 6, 6, 7, 7, 7, 7,
> 6, 8,
> + 8, 3, 1, 1, 1, 1, 0, 2,
> 6, 1,
> + 0, 1, 2, 0, 3, 0, 3, 3,
> 3, 3,
> + 0, 8, 0, 9, 0, 9, 5, 2,
> 3, 1,
> + 3, 3, 3, 3, 1, 0, 5, 3,
> 1, 3,
> + 1, 0, 10, 1, 1, 4, 1, 1,
> 2, 3,
> + 0, 1, 1, 1, 1, 1, 1, 1,
> 1, 1,
> + 3, 1, 5, 1, 1, 1, 1, 1,
> 1, 2,
> + 1, 3, 2, 2, 3, 2, 0, 1,
> 2, 2,
> + 3, 9, 9, 8, 14, 1, 1, 6,
> 5, 2,
> + 6, 7, 4, 4, 6, 6, 0, 0,
> 3, 2,
> + 1, 5, 5, 6, 6, 6, 6, 4,
> 6, 4,
> + 4, 6, 6, 2, 8, 1, 1, 0,
> 3, 6,
> + 3, 6, 2, 5, 7, 5, 4
> };
>
> /* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state
> @@ -2017,576 +2025,594 @@
> means the default is an error. */
> static const yytype_uint16 yydefact[] =
> {
> - 73, 61, 70, 62, 71, 63, 213, 211,
> 0, 0,
> - 0, 0, 0, 0, 83, 72, 0, 73,
> 209, 87,
> - 90, 0, 0, 225, 0, 0, 68, 0,
> 74, 75,
> + 73, 61, 70, 62, 71, 63, 215, 213,
> 0, 0,
> + 0, 0, 0, 0, 83, 72, 0, 73,
> 211, 87,
> + 90, 0, 0, 227, 0, 0, 68, 0,
> 74, 75,
> 77, 76, 78, 80, 79, 81, 82, 84, 85,
> 86,
> - 83, 83, 204, 1, 210, 88, 89, 83,
> 214, 91,
> - 92, 93, 94, 83, 274, 212, 274, 0, 0,
> 233,
> - 226, 227, 215, 261, 262, 217, 138, 139, 140,
> 143,
> - 142, 141, 144, 145, 0, 0, 0, 0, 263,
> 264,
> - 146, 216, 148, 204, 204, 95, 203, 0,
> 98, 98,
> - 275, 271, 69, 244, 245, 246, 270, 228, 229,
> 232,
> + 83, 83, 206, 1, 212, 88, 89, 83,
> 216, 91,
> + 92, 93, 94, 83, 276, 214, 276, 0, 0,
> 235,
> + 228, 229, 217, 263, 264, 219, 138, 139, 140,
> 143,
> + 142, 141, 144, 145, 0, 0, 0, 0, 265,
> 266,
> + 146, 218, 148, 206, 206, 95, 205, 0,
> 98, 98,
> + 277, 273, 69, 246, 247, 248, 272, 230, 231,
> 234,
> 0, 166, 149, 0, 0, 0, 0, 155,
> 167, 0,
> - 0, 166, 0, 0, 0, 97, 96, 0, 201,
> 202,
> - 0, 0, 99, 100, 101, 102, 103, 0,
> 247, 0,
> - 313, 273, 0, 230, 165, 115, 161, 163,
> 0, 0,
> + 0, 166, 0, 0, 0, 97, 96, 0, 203,
> 204,
> + 0, 0, 99, 100, 101, 102, 103, 0,
> 249, 0,
> + 317, 275, 0, 232, 165, 115, 161, 163,
> 0, 0,
> 0, 0, 0, 0, 154, 0, 0, 147,
> 0, 0,
> - 160, 0, 159, 0, 224, 138, 139, 140, 143,
> 142,
> - 141, 0, 0, 67, 67, 104, 0, 241, 242,
> 243,
> - 312, 298, 0, 0, 0, 0, 98, 283,
> 284, 2,
> + 160, 0, 159, 0, 226, 138, 139, 140, 143,
> 142,
> + 141, 0, 0, 67, 67, 104, 0, 243, 244,
> 245,
> + 316, 300, 0, 0, 0, 0, 98, 285,
> 286, 2,
> 3, 4, 5, 6, 7, 8, 9, 10, 14,
> 15,
> 16, 11, 12, 13, 0, 0, 0, 0,
> 0, 0,
> - 17, 18, 19, 20, 21, 22, 23, 24,
> 25, 26,
> - 27, 28, 0, 0, 0, 0, 0, 0,
> 0, 0,
> - 0, 0, 272, 98, 287, 0, 311, 231,
> 158, 0,
> - 123, 67, 67, 157, 0, 168, 0, 123,
> 67, 67,
> - 0, 205, 186, 187, 182, 184, 183, 185, 188,
> 181,
> - 177, 178, 0, 0, 0, 0, 0, 0,
> 0, 0,
> - 0, 0, 0, 0, 0, 0, 180, 179,
> 218, 0,
> - 297, 277, 67, 268, 276, 0, 0, 55,
> 0, 0,
> - 29, 30, 31, 32, 33, 34, 35, 36,
> 37, 38,
> - 0, 53, 54, 49, 50, 51, 52, 39,
> 40, 41,
> - 42, 43, 44, 45, 46, 47, 48, 0, 129,
> 129,
> - 318, 67, 67, 309, 0, 0, 0, 0,
> 0, 67,
> - 67, 67, 0, 0, 0, 0, 0, 106, 108,
> 107,
> - 105, 109, 110, 111, 112, 113, 116, 164, 162,
> 151,
> - 152, 153, 156, 66, 150, 220, 222, 0,
> 0, 0,
> - 0, 0, 0, 0, 0, 170, 200, 0,
> 0, 0,
> - 174, 0, 171, 0, 0, 0, 134, 239, 250,
> 251,
> - 252, 257, 253, 254, 255, 256, 248, 0, 259,
> 266,
> - 265, 267, 0, 0, 278, 0, 0, 67,
> 67, 0,
> - 314, 0, 316, 295, 0, 0, 0, 0,
> 0, 0,
> + 0, 0, 17, 18, 19, 20, 21, 22,
> 23, 24,
> + 25, 26, 27, 28, 0, 0, 0, 0,
> 0, 0,
> + 0, 0, 0, 0, 274, 98, 289, 0, 315,
> 233,
> + 158, 0, 123, 67, 67, 157, 0, 168, 0,
> 123,
> + 67, 67, 0, 207, 186, 187, 182, 184, 183,
> 185,
> + 188, 181, 177, 178, 0, 0, 0, 0,
> 0, 0,
> + 0, 0, 0, 0, 0, 0, 0, 0,
> 0, 0,
> + 180, 179, 220, 0, 299, 279, 67, 270,
> 278, 0,
> + 0, 55, 0, 0, 29, 30, 31, 32,
> 33, 34,
> + 35, 36, 37, 38, 0, 53, 54, 49,
> 50, 51,
> + 52, 39, 40, 41, 42, 43, 44, 45,
> 46, 47,
> + 48, 0, 0, 0, 129, 129, 322, 67, 67,
> 313,
> + 0, 0, 0, 0, 0, 67, 67, 67,
> 0, 0,
> + 0, 0, 0, 106, 108, 107, 105, 109, 110,
> 111,
> + 112, 113, 116, 164, 162, 151, 152, 153,
> 156, 66,
> + 150, 222, 224, 0, 0, 0, 0, 0,
> 0, 0,
> + 0, 0, 0, 170, 202, 0, 0, 0,
> 174, 0,
> + 171, 0, 0, 0, 134, 241, 252, 253, 254,
> 259,
> + 255, 256, 257, 258, 250, 0, 261, 268, 267,
> 269,
> + 0, 0, 280, 0, 0, 67, 67, 67,
> 67, 0,
> + 318, 0, 320, 297, 0, 0, 0, 0,
> 0, 0,
> 0, 0, 0, 0, 0, 0, 67, 0, 114,
> 120,
> 119, 117, 118, 121, 122, 124, 134, 134,
> 0, 0,
> - 0, 295, 0, 0, 0, 0, 0, 169, 155,
> 167,
> - 0, 172, 173, 0, 0, 0, 0, 219, 238,
> 115,
> - 236, 0, 249, 0, 0, 269, 0, 0,
> 0, 0,
> - 0, 0, 0, 0, 322, 0, 0, 0, 305,
> 306,
> - 0, 0, 0, 0, 0, 303, 0, 129, 0,
> 221,
> - 223, 67, 0, 0, 0, 0, 0, 0, 0,
> 199,
> - 176, 0, 0, 0, 0, 0, 0, 136,
> 134, 65,
> - 0, 123, 0, 258, 0, 0, 294, 0, 0,
> 129,
> - 130, 129, 0, 0, 0, 0, 0, 0, 321,
> 299,
> - 300, 294, 0, 319, 67, 206, 0, 0,
> 190, 0,
> + 0, 0, 0, 297, 0, 0, 0, 0, 0,
> 169,
> + 155, 167, 0, 172, 173, 0, 0, 0, 0,
> 221,
> + 240, 115, 238, 0, 251, 0, 0, 271,
> 0, 0,
> + 0, 0, 0, 0, 0, 0, 0, 0,
> 326, 0,
> + 0, 0, 309, 310, 0, 0, 0, 0, 0,
> 307,
> + 0, 129, 0, 223, 225, 67, 0, 0,
> 0, 0,
> + 0, 0, 0, 0, 0, 201, 176, 0,
> 0, 0,
> + 0, 0, 0, 136, 134, 65, 0, 123, 0,
> 260,
> + 0, 0, 296, 0, 0, 0, 0, 129, 130,
> 129,
> + 0, 0, 0, 0, 0, 0, 325, 301, 302,
> 296,
> + 0, 323, 67, 208, 0, 0, 0, 0,
> 190, 0,
> 0, 0, 0, 175, 0, 0, 67, 131, 137,
> 135,
> - 64, 235, 237, 115, 132, 0, 0, 0, 115,
> 115,
> - 0, 301, 302, 315, 317, 296, 0, 0, 304,
> 307,
> - 308, 0, 129, 0, 0, 0, 196, 0, 0,
> 192,
> - 193, 189, 65, 133, 127, 260, 0, 0,
> 0, 0,
> - 123, 0, 288, 0, 123, 320, 194, 195,
> 0, 0,
> - 0, 234, 0, 125, 0, 281, 0, 0, 106,
> 108,
> - 115, 115, 0, 115, 115, 289, 310, 191, 197,
> 198,
> - 128, 0, 240, 279, 0, 280, 0, 291,
> 290, 0,
> - 0, 0, 126, 0, 0, 0, 115, 115,
> 0, 0,
> - 0, 293, 292, 286, 0, 0, 285, 0, 282
> + 64, 237, 239, 115, 132, 0, 0, 0, 115,
> 115,
> + 0, 303, 304, 305, 306, 319, 321, 298,
> 0, 0,
> + 308, 311, 312, 0, 129, 0, 0, 0,
> 0, 0,
> + 198, 0, 0, 192, 193, 189, 65, 133, 127,
> 262,
> + 0, 0, 0, 0, 123, 0, 290, 0, 123,
> 324,
> + 194, 195, 196, 197, 0, 0, 0, 236, 0,
> 125,
> + 0, 283, 0, 0, 106, 108, 115, 115, 0,
> 115,
> + 115, 291, 314, 191, 199, 200, 128, 0, 242,
> 281,
> + 0, 282, 0, 293, 292, 0, 0, 0,
> 126, 0,
> + 0, 0, 115, 115, 0, 0, 0, 295, 294,
> 288,
> + 0, 0, 287, 0, 284
> };
>
> /* YYDEFGOTO[NTERM-NUM]. */
> static const yytype_int16 yydefgoto[] =
> {
> - -1, 263, 264, 265, 290, 307, 161, 162, 78,
> 531,
> + -1, 267, 268, 269, 294, 311, 161, 162, 78,
> 551,
> 112, 12, 79, 14, 15, 40, 41, 42, 47,
> 53,
> - 117, 127, 336, 228, 415, 339, 602, 583, 390,
> 487,
> - 564, 437, 488, 80, 163, 136, 153, 137, 138,
> 109,
> - 356, 378, 357, 120, 87, 154, 16, 17,
> 18, 20,
> - 19, 366, 416, 417, 62, 23, 60, 100, 440,
> 441,
> - 128, 169, 54, 95, 55, 48, 443, 379, 82,
> 381,
> - 273, 274, 56, 91, 92, 222, 587, 131, 313,
> 540,
> - 454, 223, 224, 225, 226
> + 117, 127, 342, 230, 425, 345, 628, 609, 400,
> 503,
> + 588, 449, 504, 80, 163, 136, 153, 137, 138,
> 109,
> + 364, 386, 365, 120, 87, 154, 16, 17,
> 18, 20,
> + 19, 374, 426, 427, 62, 23, 60, 100, 452,
> 453,
> + 128, 169, 54, 95, 55, 48, 455, 387, 82,
> 389,
> + 277, 278, 56, 91, 92, 224, 613, 131, 319,
> 560,
> + 468, 225, 226, 227, 228
> };
>
> /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
> STATE-NUM. */
> -#define YYPACT_NINF -561
> +#define YYPACT_NINF -572
> static const yytype_int16 yypact[] =
> {
> - 284, -561, -561, -561, -561, -561, -561, -561, -34,
> -121,
> - 14, -63, 101, -22, 17, -561, 127, 883,
> -561, 22,
> - 162, 10, 23, -561, 12, 158, -561, 1464, -561,
> -561,
> - -561, -561, -561, -561, -561, -561, -561, -561, -561,
> -561,
> - -46, -46, 176, -561, -561, -561, -561, -46, -561,
> -561,
> - -561, -561, -561, -46, 200, -561, -10, 209, 219,
> 234,
> - -561, -561, -561, -561, -561, 124, -561, -561, -561,
> -561,
> - -561, -561, -561, -561, 272, 275, 2, 126, -561,
> -561,
> - -561, 28, -561, 243, 243, 196, -561, 165,
> 33, 33,
> - -561, -561, 215, -561, -561, -561, -561, -561, -561,
> -561,
> - -73, 1059, -561, 129, 132, 506, 124, -561, 28,
> -111,
> - 134, 1059, 137, 165, 165, -561, -561, 1014, -561,
> -561,
> - 1504, 292, -561, -561, -561, -561, -561, 1562,
> -561, -6,
> - 1843, -561, 278, -561, -561, 28, -561, 147, 153,
> 1620,
> - 1620, 148, -110, 1620, -561, 309, 164, -561, 1504,
> 1620,
> - 124, 166, 28, 388, -561, 342, 310, 311, 314,
> 316,
> - 317, 156, 322, 1115, 279, -561, 16, -561, -561,
> -561,
> - -561, -561, 281, 1660, 20, 327, 33, -561, -561,
> -561,
> - -561, -561, -561, -561, -561, -561, -561, -561, -561,
> -561,
> - -561, -561, -561, -561, 511, 787, 1620, 1620, 1620,
> 1620,
> - -561, -561, -561, -561, -561, -561, -561, -561, -561,
> -561,
> - -561, -561, 1620, 1620, 1620, 1620, 1620, 1620, 1620,
> 1620,
> - 1620, 1620, -561, 33, -561, -60, -561, -561, 434,
> 1345,
> - -561, -7, -33, -561, 181, 28, 192, -561, 279,
> -16,
> - 1014, -561, -561, -561, -561, -561, -561, -561, -561,
> -561,
> - -561, -561, 511, 787, 198, 199, 201, 203, 204,
> 1385,
> - 1678, 609, 329, 207, 208, 210, -561, -561, -561,
> 211,
> - -561, 124, 702, -561, 206, 841, 841, -561, 841,
> 1562,
> - -561, -561, -561, -561, -561, -561, -561, -561, -561,
> -561,
> - 1620, -561, -561, -561, -561, -561, -561, -561, -561,
> -561,
> - -561, -561, -561, -561, -561, -561, -561, 1620, 100,
> 114,
> - -561, 702, -31, 222, 225, 227, 228, 235, 239,
> 702,
> - 702, 702, 325, 1562, 1620, 1620, 360, -561, -561,
> -561,
> - -561, -561, -561, -561, -561, -561, -561, -561, -561,
> -96,
> - -561, -561, -561, -561, -96, -561, 137, 361, 247,
> 252,
> - 1504, 1504, 1504, 1504, 1504, -561, -561, -54, 788,
> -88,
> - -561, -85, -561, 1504, 1504, 1504, 250, 1406, -561,
> -561,
> - -561, -561, -561, -561, -561, -561, 345, 1504, -561,
> -561,
> - -561, -561, 1620, 255, -561, 259, 841, 702,
> 702, 4,
> - -561, 5, -561, -561, 841, 249, 1620, 1620, 1620,
> 1620,
> - 1620, 261, 262, 263, 1620, 841, 702, 266, -561,
> -561,
> - -561, -561, -561, -561, -561, -561, 250, 250, 1620,
> 1504,
> - 1504, -561, 269, 274, 276, 277, 1504, -561, 265,
> 969,
> - -83, -561, -561, 282, 283, 391, -5, -561,
> -561, 28,
> - 285, 289, -561, 413, -78, -561, 426, 427, 294,
> 293,
> - 295, 841, 442, 841, 296, 299, 841, 300, 28,
> -561,
> - 301, 302, 444, 841, 841, 28, 306, 305, 1620,
> -561,
> - -561, -45, 307, 308, 94, 1504, 1504, 1504, 1504,
> -561,
> - -561, 312, 1504, 1504, 1620, 438, 463, -561, 250,
> 1746,
> - 1446, -561, 315, -561, 841, 841, 1718, 841, 841,
> 305,
> - -561, 305, 1620, 841, 318, 1620, 1620, 1620, -561,
> -561,
> - -561, 1718, 415, -561, 702, -561, 1504, 1504, -561,
> 320,
> - 323, 324, 328, -561, 331, 332, -30, -561, -561,
> -561,
> - -561, -561, -561, 28, 81, 455, 334, 333,
> 123, 28,
> - 95, -561, -561, -561, -561, -561, 335, 841, -561,
> -561,
> - -561, 98, 305, 339, 343, 1504, -561, 1504, 1504,
> -561,
> - -561, -561, 1746, -561, 433, -561, 479, -4, 560,
> 560,
> - -561, 1736, -561, 341, -561, -561, -561, -561, 346,
> 349,
> - 351, -561, 500, 358, 841, -561, 1255, -1, 355,
> 356,
> - -561, -561, 87, 123, 28, -561, -96, -561, -561,
> -561,
> - -561, 489, -561, -561, 370, -561, 1255, 434, 434,
> 495,
> - 560, 560, -561, 498, 373, 841, -561, -561, 841,
> 514,
> - 460, 434, 434, -561, 841, 516, -561, 841, -561
> + 445, -572, -572, -572, -572, -572, -572, -572, -2,
> -122,
> + 19, -58, 90, -40, 26, -572, 112, 855,
> -572, 52,
> + 217, -28, 4, -572, 12, 146, -572, 1594, -572,
> -572,
> + -572, -572, -572, -572, -572, -572, -572, -572, -572,
> -572,
> + 70, 70, 125, -572, -572, -572, -572, 70, -572,
> -572,
> + -572, -572, -572, 70, 166, -572, -8, 176, 185,
> 201,
> + -572, -572, -572, -572, -572, 80, -572, -572, -572,
> -572,
> + -572, -572, -572, -572, 232, 241, 2, 227, -572,
> -572,
> + -572, -1, -572, 211, 211, 137, -572, 118, 258,
> 258,
> + -572, -572, 87, -572, -572, -572, -572, -572, -572,
> -572,
> + -57, 1357, -572, 105, 139, 1020, 80, -572, -1,
> -107,
> + 109, 1357, 145, 118, 118, -572, -572, 1400, -572,
> -572,
> + 1634, 302, -572, -572, -572, -572, -572, 1677, -572,
> -16,
> + 1856, -572, 290, -572, -572, -1, -572, 159, 177,
> 1695,
> + 1695, 179, -102, 1695, -572, 331, 189, -572, 1634,
> 1695,
> + 80, 186, -1, 247, -572, 226, 335, 338, 339,
> 342,
> + 344, 269, 345, 1123, 303, -572, 24, -572, -572,
> -572,
> + -572, -572, 300, 1752, 76, 347, 258, -572, -572,
> -572,
> + -572, -572, -572, -572, -572, -572, -572, -572, -572,
> -572,
> + -572, -572, -572, -572, 314, 845, 314, 845, 1695,
> 1695,
> + 1695, 1695, -572, -572, -572, -572, -572, -572, -572,
> -572,
> + -572, -572, -572, -572, 1695, 1695, 1695, 1695, 1695,
> 1695,
> + 1695, 1695, 1695, 1695, -572, 258, -572, 97, -572,
> -572,
> + 172, 1418, -572, -43, -31, -572, 196, -1, 206,
> -572,
> + 303, -12, 1400, -572, -572, -572, -572, -572, -572,
> -572,
> + -572, -572, -572, -572, 314, 845, 314, 845, 208,
> 216,
> + 219, 220, 223, 1473, 1795, 1063, 348, 224, 225,
> 234,
> + -572, -572, -572, 237, -572, 80, 843, -572, 238,
> 524,
> + 524, -572, 524, 1677, -572, -572, -572, -572, -572,
> -572,
> + -572, -572, -572, -572, 1695, -572, -572, -572, -572,
> -572,
> + -572, -572, -572, -572, -572, -572, -572, -572, -572,
> -572,
> + -572, 1695, 1695, 1695, 27, 29, -572, 843, -23,
> 248,
> + 249, 263, 264, 265, 266, 843, 843, 843, 341,
> 1677,
> + 1695, 1695, 389, -572, -572, -572, -572, -572, -572,
> -572,
> + -572, -572, -572, -572, -572, 198, -572, -572, -572,
> -572,
> + 198, -572, 145, 359, 250, 270, 271, 272, 1634,
> 1634,
> + 1634, 1634, 1634, -572, -572, -30, 1314, -104, -572,
> -101,
> + -572, 1634, 1634, 1634, 275, 1518, -572, -572, -572,
> -572,
> + -572, -572, -572, -572, 366, 1634, -572, -572, -572,
> -572,
> + 1695, 276, -572, 277, 524, 843, 843, 843,
> 843, 25,
> + -572, 35, -572, -572, 524, 278, 1695, 1695, 1695,
> 1695,
> + 1695, 280, 282, 283, 1695, 524, 843, 287, -572,
> -572,
> + -572, -572, -572, -572, -572, -572, 275, 275, 1695,
> 1634,
> + 1634, 1634, 1634, -572, 291, 292, 293, 294, 1634,
> -572,
> + 288, 975, -99, -572, -572, 296, 297, 408, 9,
> -572,
> + -572, -1, 299, 304, -572, 435, -96, -572, 442,
> 443,
> + 308, 306, 310, 325, 326, 524, 479, 524, 328,
> 329,
> + 524, 334, -1, -572, 336, 337, 487, 524,
> 524, -1,
> + 349, 350, 1695, -572, -572, -20, 351, 352, 353,
> 354,
> + 102, 1634, 1634, 1634, 1634, -572, -572, 356, 1634,
> 1634,
> + 1695, 489, 497, -572, 275, 571, 1576, -572, 357,
> -572,
> + 524, 524, 1853, 524, 524, 524, 524, 350, -572,
> 350,
> + 1695, 524, 358, 1695, 1695, 1695, -572, -572, -572,
> 1853,
> + 459, -572, 843, -572, 1634, 1634, 1634, 1634, -572,
> 360,
> + 369, 364, 368, -572, 371, 376, -15, -572, -572,
> -572,
> + -572, -572, -572, -1, 6, 512, 380, 378,
> 71, -1,
> + 171, -572, -572, -572, -572, -572, -572, -572, 379,
> 524,
> + -572, -572, -572, 174, 350, 385, 387, 388, 391,
> 1634,
> + -572, 1634, 1634, -572, -572, -572, 571, -572, 499,
> -572,
> + 536, -6, 699, 699, -572, 1871, -572, 393, -572,
> -572,
> + -572, -572, -572, -572, 401, 407, 409, -572, 558,
> 418,
> + 524, -572, 1265, -3, 415, 417, -572, -572,
> -19, 71,
> + -1, -572, 198, -572, -572, -572, -572, 549, -572,
> -572,
> + 416, -572, 1265, 172, 172, 556, 699, 699, -572,
> 557,
> + 419, 524, -572, -572, 524, 559, 507, 172, 172,
> -572,
> + 524, 563, -572, 524, -572
> };
>
> /* YYPGOTO[NTERM-NUM]. */
> static const yytype_int16 yypgoto[] =
> {
> - -561, 406, 407, 408, 298, 303, -173, -561, 0,
> -15,
> - -150, 454, 8, -561, -561, -561, -561, 189, -561,
> -561,
> - -561, -149, -561, -409, -561, -234, -561, -561,
> -289, 24,
> - -561, -404, -561, -561, -26, 330, -122, -561, 443,
> 452,
> - -92, -159, -226, 102, 183, 321, -561, -561, 548,
> -561,
> - -561, -561, -561, -561, -561, -561, -561, -561, -561,
> -561,
> - 477, -561, -561, -561, -561, -561, -561, -560,
> -76, 46,
> - -105, -561, -561, 519, -561, -561, -561, -561,
> -561, 61,
> - 160, -561, -561, -561, -561
> + -572, 451, 453, 454, -174, -152, -173, -572,
> 0, 1,
> + -146, 493, 3, -572, -572, -572, -572, 49, -572,
> -572,
> + -572, -139, -572, -416, -572, -223, -572, -572,
> -311, 34,
> + -572, -397, -572, -572, -26, 361, -120, -572, 478,
> 486,
> + -64, -153, -250, 164, 207, 355, -572, -572, 577,
> -572,
> + -572, -572, -572, -572, -572, -572, -572, -572, -572,
> -572,
> + 528, -572, -572, -572, -572, -572, -572, -571, -115,
> 162,
> + -191, -572, -572, 540, -572, -572, -572, -572,
> -572, 89,
> + 187, -572, -572, -572, -572
> };
>
> /* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If
> positive, shift that token. If negative, reduce the rule which
> number is the opposite. If zero, do what YYDEFACT says.
> If YYTABLE_NINF, syntax error. */
> -#define YYTABLE_NINF -209
> +#define YYTABLE_NINF -211
> static const yytype_int16 yytable[] =
> {
> - 11, 81, 278, 344, 266, 166, 104, 277, 13,
> 110,
> - 277, 90, 469, 470, 268, 451, 453, 11,
> 21, 93,
> - 392, 110, 167, 110, 110, 13, 604, 279, 164,
> 485,
> - 489, 275, 24, 22, 359, 361, 2, 276,
> 110, 4,
> - 409, 410, 411, 143, 143, 412, 614, 110, 486,
> 413,
> - 414, 108, 144, 234, 324, 325, 238, 452,
> 452, 29,
> - 30, 31, 32, 33, 34, 35, 426, 36, 45,
> 426,
> - 46, 426, 25, 431, 323, 135, 426, 241, 432,
> 108,
> - 481, 132, 110, 493, 529, 135, 133, 267, 345,
> 346,
> - 26, 152, 11, 310, 121, 122, 123, 124, 125,
> 126,
> - 426, 152, 37, 38, 39, 427, 111, 515, 314,
> 315,
> - 316, 317, 318, 231, 232, 485, 322, 235,
> 111, 27,
> - 111, 111, 561, 239, 562, 609, 394, 43, 341,
> 568,
> - 569, 28, 430, 63, 64, 111, 106, 66,
> 67, 68,
> - 69, 70, 71, 72, 111, 1, 2, 272,
> 3, 4,
> - 5, 444, 340, 94, 110, 585, 168, 386, 605,
> 244,
> - 245, 246, 247, 57, 105, 37, 38, 39,
> 110, 59,
> - 308, 309, 272, 311, 269, 73, 58, -144, 513,
> 111,
> - 61, 607, 608, -67, 610, 611, 312, 272, 272,
> 272,
> - 272, 272, 319, 320, 321, 272, 380, 118, 119,
> 380,
> - 380, 405, 380, 135, 49, 50, 51, 621,
> 622, 52,
> - 543, 85, 544, 86, 152, 148, 149, 409, 410,
> 411,
> - 407, 90, 412, 409, 410, 411, 413, 414,
> 412, 83,
> - 84, 97, 413, 414, 1, 380, 88, 3,
> 115, 5,
> - 116, 98, 89, 380, 380, 380, 518, 570, 502,
> 571,
> - 574, 111, 571, 152, 389, -67, 99, 534, 421,
> 422,
> - 423, 424, 425, 575, 387, 111, 113, 114, 391,
> -67,
> - 266, 433, 434, 435, -144, 101, 102, 445, -144,
> 103,
> - 86, 388, 74, 75, -208, 145, 76, 139, 77,
> 107,
> - 140, 457, 147, 459, 460, 461, 165, 152, 406,
> 272,
> - 227, 229, -69, 1, 2, 230, 3, 4, 5,
> 233,
> - 380, 380, 380, 236, 6, 7, 237, 240, 380,
> -56,
> - -57, 383, 384, -60, 385, -59, -58, 472, 473,
> 380,
> - 380, 248, 429, 110, 479, 8, 592, 270,
> 277, 9,
> - 596, 439, 342, 10, 343, -55, -55, -55, -55,
> 350,
> - 351, 362, 352, 267, 353, 354, 272, 393, 363,
> 364,
> - 382, 365, 367, 404, 408, 401, 402, 403, 242,
> 243,
> - 272, 458, 272, 272, 272, 380, 395, 380, 465,
> 396,
> - 380, 397, 398, 519, 520, 521, 522, 380, 380,
> 399,
> - 524, 525, 471, 400, 586, 63, 64, 545, 419,
> 418,
> - 548, 549, 550, 420, 436, 442, 456, 1, 2,
> 446,
> - 3, 4, 5, 447, 606, 462, 463, 464, 380,
> 380,
> - 468, 380, 380, 475, 553, 554, 480, 380, 476,
> 484,
> - 477, 478, 448, 449, 450, 492, 482, 483, 380,
> 490,
> - 455, 491, 514, 494, 495, 496, 500, 497, 508,
> 498,
> - 502, 466, 467, 503, 505, 506, 507, 511, 526,
> 512,
> - 527, 516, 517, 578, 533, 579, 580, 528, 452,
> 535,
> - 539, 380, 547, 523, 555, 556, 272, 565, 557,
> 272,
> - 272, 272, 558, 559, 560, 539, 582, 326, 566,
> 530,
> - 567, 576, 380, 380, 572, 577, 584, 499, 597,
> 501,
> - 595, 598, 504, 599, 600, 601, -18, -19, 380,
> 509,
> - 510, 612, 615, 63, 64, 618, 106, 66,
> 67, 68,
> - 69, 70, 71, 72, 613, 1, 2, 619,
> 3, 4,
> - 5, 624, 625, 627, 380, 380, 219, 220, 221,
> 380,
> - 536, 537, 380, 541, 542, 594, 130, 581, 380,
> 546,
> - 348, 380, 327, 328, 146, 73, 349, 142, 563,
> 338,
> - 552, 347, 530, 368, 369, 44, 129, 63, 64,
> 370,
> - 329, 330, 551, 331, 332, 96, 333, 334,
> 335, 1,
> - 2, 474, 3, 4, 5, 371, 372, 373,
> 0, 0,
> - 0, 0, 0, 573, 0, 0, 0, 0,
> 0, 0,
> - 374, 375, 280, 281, 282, 283, 284, 285, 286,
> 287,
> - 288, 289, 0, 326, 590, 591, 63, 64, 376,
> 106,
> - 155, 156, 157, 158, 159, 160, 72, 0,
> 1, 2,
> - 603, 3, 4, 5, 179, 180, 181, 182, 183,
> 184,
> - 185, 186, 187, 188, 189, 190, 191, 192, 193,
> 252,
> - 253, 0, 0, 0, 0, 0, 616, 617,
> 73, 0,
> - 0, 620, 74, 75, 623, 0, 76, 0, 77,
> 141,
> - 626, 0, 0, 628, 0, 0, 254, 200, 588,
> 589,
> - 203, 204, 205, 206, 207, 208, 209, 210,
> 211, 0,
> - 255, 0, 256, 257, 258, 0, 329, 330, 0,
> 331,
> - 332, 0, 333, 334, 335, 368, 369, 0,
> 0, 63,
> - 64, 370, 0, 0, 0, 0, 0, 0,
> 0, 0,
> - 377, 1, 2, 0, 3, 4, 5, 371, 372,
> 373,
> + 11, 81, 282, 13, 402, 281, 104, 166, 281,
> 316,
> + 270, 110, 167, 90, 367, 369, 350, 11, 272,
> 635,
> + 13, 93, 312, 110, 320, 321, 322, 323, 324,
> 483,
> + 484, 110, 328, 24, 110, 505, 465, 283, 243,
> 110,
> + 501, 630, 110, 501, 2, 313, 467, 4, 271,
> 143,
> + 21, 108, 438, 110, 143, 438, 164, 438, 144,
> 443,
> + 438, 640, 502, 236, 444, 22, 497, 509,
> 29, 30,
> + 31, 32, 33, 34, 35, 135, 36, 25, 466,
> 108,
> + 354, 110, 356, 110, 240, 135, 329, 279,
> 466, 83,
> + 84, 152, 11, 280, 351, 352, 88, 26, 45,
> 132,
> + 46, 152, 89, 355, 133, 357, 1, 549,
> 27, 3,
> + 111, 5, 43, 233, 234, 28, 442, 237, 346,
> 419,
> + 420, 421, 111, 241, 422, -144, 438, 57, 423,
> 424,
> + 111, 439, 347, 111, 533, 456, 404, 586, 111,
> 585,
> + 417, 111, 592, 593, 419, 420, 421, 276, 168,
> 422,
> + 118, 119, 111, 423, 424, 611, -67, 94,
> 631, 58,
> + 85, 388, 86, 394, 388, 388, 105, 388, 61,
> 273,
> + 531, 59, 314, 315, 276, 317, 37, 38, 39,
> 115,
> + 111, 116, 111, 399, -67, 401, -67, 90, 318,
> 276,
> + 276, 276, 276, 276, 325, 326, 327, 276, 97,
> 457,
> + 633, 634, 388, 636, 637, 135, 565, 98, 566,
> 415,
> + 388, 388, 388, 330, 331, 471, 152, 473, 474,
> 475,
> + 37, 38, 39, 99, -144, 332, 647, 648, -144,
> -55,
> + -55, -55, -55, 101, 63, 64, 102, 106,
> 66, 67,
> + 68, 69, 70, 71, 72, 103, 1, 2,
> 86, 3,
> + 4, 5, 244, 245, 63, 64, 538, 152,
> 520, 49,
> + 50, 51, 145, 599, 52, 139, 1, 2,
> 395, 3,
> + 4, 5, 246, 247, 248, 249, 73, 148, 149,
> 388,
> + 388, 388, 388, 388, 554, 396, 397, 398, 270,
> 388,
> + 113, 114, 333, 334, 433, 434, 435, 436, 437,
> 140,
> + 388, 388, 147, 152, 416, 276, 165, 445, 446,
> 447,
> + 335, 336, 229, 337, 338, 231, 339, 340, 341,
> 121,
> + 122, 123, 124, 125, 126, 594, 271, 595, 598,
> 567,
> + 595, 232, 570, 571, 572, 238, 419, 420, 421,
> 242,
> + 441, 422, 235, 239, -56, 423, 424, -57, -60,
> 451,
> + 388, -59, 388, -58, 250, 388, 274, 110, 281,
> 348,
> + 349, 358, 388, 388, 276, 486, 487, 488, 489,
> 359,
> + 370, 618, 360, 361, 495, 622, 362, 371, 372,
> 414,
> + 276, 472, 276, 276, 276, 74, 75, 373,
> 479, 76,
> + 375, 77, 107, 418, 390, 388, 388, 428, 388,
> 388,
> + 388, 388, 485, 429, 405, 406, 388, 284, 285,
> 286,
> + 287, 288, 289, 290, 291, 292, 293, 388, 612,
> 407,
> + 408, 409, 410, 430, 431, 432, 454, 539, 540,
> 541,
> + 542, 448, 458, 459, 544, 545, 476, 470, 477,
> 478,
> + 632, 391, 392, 482, 393, -210, 500, 491, 492,
> 493,
> + 494, 496, 498, 499, 388, 506, 532, 508, 507,
> 510,
> + 511, 512, 513, -69, 1, 2, 514, 3,
> 4, 5,
> + 575, 576, 577, 578, 546, 6, 7, 388, 388,
> 403,
> + 553, 515, 516, 518, 520, 521, 559, 411, 412,
> 413,
> + 523, 526, 524, 525, 276, 388, 8, 276, 276,
> 276,
> + 9, 548, 529, 559, 10, 550, 530, 534, 535,
> 536,
> + 537, 547, 466, 555, 569, 604, 579, 605, 606,
> 543,
> + 581, 388, 388, 580, 582, 583, 388, 376, 377,
> 388,
> + 584, 63, 64, 378, 589, 388, 590, 591, 388,
> 600,
> + 596, 601, 602, 1, 2, 603, 3, 4, 5,
> 379,
> + 380, 381, 608, 610, 621, 623, 460, 461, 462,
> 463,
> + 464, 624, 626, 625, 382, 383, 469, 627, -18,
> 620,
> + -19, 638, 639, 641, 644, 645, 650, 480, 481,
> 651,
> + 653, 221, 384, 222, 223, 130, 550, 607, 587,
> 146,
> + 1, 142, 344, 3, 44, 5, 96, 353, 179,
> 180,
> + 181, 182, 183, 184, 185, 186, 187, 188, 189,
> 190,
> + 191, 192, 193, 254, 255, 256, 257, 129,
> 573, 0,
> + 490, 0, 0, 0, 332, 0, 0, 517, 0,
> 519,
> + 0, 0, 522, 0, 0, 0, 0, 0, 0,
> 527,
> + 528, 0, 258, 202, 203, 204, 205, 206, 207,
> 208,
> + 209, 210, 211, 212, 213, 0, 259, 0, 260,
> 261,
> + 262, 0, 0, 0, 0, 0, 0, 0,
> 0, 0,
> + 0, 0, 556, 557, 0, 561, 562, 563,
> 564, 0,
> + 0, 0, 0, 568, 0, 0, 385, 0,
> 0, 0,
> + 0, 333, 334, 0, 574, 0, 0, 0,
> 0, 0,
> + 0, 0, 376, 377, 0, 0, 63, 64, 378,
> 335,
> + 336, 0, 337, 338, 0, 339, 340, 341,
> 1, 2,
> + 0, 3, 4, 5, 379, 380, 381, 0,
> 0, 0,
> + 0, 597, 0, 0, 0, 0, 0, 0, 0,
> 382,
> + 383, 0, 0, 0, 0, 0, 0, 0,
> 0, 0,
> + 0, 0, 332, 0, 616, 617, 0, 384,
> 0, 0,
> 0, 0, 0, 0, 0, 0, 0, 0,
> 0, 0,
> - 0, 0, 374, 375, 0, 0, 0, 0,
> 0, 0,
> - 0, 0, 0, 0, 0, 0, 110, 0,
> 0, 0,
> - 376, 0, 0, 0, 0, 74, 75, 0,
> 0, 76,
> - 0, 77, 360, 0, 0, 0, 179, 180, 181,
> 182,
> - 183, 184, 185, 186, 187, 188, 189, 190, 191,
> 192,
> - 193, 252, 253, 0, 0, 63, 64, 0, 106,
> 155,
> - 156, 157, 158, 159, 160, 72, 0, 1,
> 2, 0,
> - 3, 4, 5, 291, 292, 0, 0, 0, 254,
> 200,
> - 201, 202, 203, 204, 205, 206, 207, 208, 209,
> 210,
> - 211, 0, 255, 0, 256, 257, 258, 73,
> 0, 0,
> - 0, 0, 0, 0, 368, 369, 0, 0,
> 63, 64,
> - 370, 0, 0, 111, 0, 0, 0, 0,
> 0, 0,
> - 1, 2, 377, 3, 4, 5, 371, 372,
> 373, 0,
> + 0, 0, 629, 179, 180, 181, 182, 183, 184,
> 185,
> + 186, 187, 188, 189, 190, 191, 192, 193, 254,
> 255,
> + 256, 257, 0, 0, 0, 0, 0, 0, 642,
> 643,
> + 0, 0, 0, 646, 0, 0, 649, 0,
> 0, 0,
> + 0, 0, 652, 0, 0, 654, 0, 258, 202,
> 614,
> + 615, 205, 206, 207, 208, 209, 210, 211, 212,
> 213,
> + 0, 259, 0, 260, 261, 262, 0, 335,
> 336, 0,
> + 337, 338, 0, 339, 340, 341, 376, 377,
> 0, 0,
> + 63, 64, 378, 0, 0, -209, 0, 0,
> 0, 0,
> + 0, 385, 1, 2, 0, 3, 4, 5, 379,
> 380,
> + 381, 295, 296, -69, 1, 2, 0, 3,
> 4, 5,
> + 0, 0, 0, 382, 383, 6, 7, 0,
> 0, 0,
> + 0, 0, 0, 0, 0, 0, 0, 110,
> 0, 0,
> + 0, 384, 0, 0, 0, 0, 8, 0,
> 0, 0,
> + 9, 0, 0, 0, 10, 0, 0, 179, 180,
> 181,
> + 182, 183, 184, 185, 186, 187, 188, 189, 190,
> 191,
> + 192, 193, 254, 255, 256, 257, 0, 0,
> 0, 0,
> + 0, 0, 0, 0, 297, 298, 299, 300, 301,
> 302,
> + 303, 304, 305, 306, 307, 308, 309, 310,
> 0, 0,
> + 0, 258, 202, 203, 204, 205, 206, 207, 208,
> 209,
> + 210, 211, 212, 213, 0, 259, 0, 260, 261,
> 262,
> + 0, 0, 63, 64, 0, 0, 0, 0,
> 0, 0,
> + 0, 0, 0, 0, 1, 2, 111, 3,
> 4, 5,
> + 251, 0, 0, 0, 0, 385, 0, 0,
> 0, 0,
> + 0, 0, 0, 0, 0, 252, 253, 0,
> 0, 0,
> + 0, 0, 0, 0, 0, 0, 0, 63, 64,
> 110,
> + 106, 66, 67, 68, 69, 70, 71, 72,
> 0, 1,
> + 2, 0, 3, 4, 5, 0, 0, 0, 0,
> 179,
> + 180, 181, 182, 183, 184, 185, 186, 187, 188,
> 189,
> + 190, 191, 192, 193, 254, 255, 256, 257,
> 0, 73,
> + 63, 64, 0, 106, 155, 156, 157, 158, 159,
> 160,
> + 72, 0, 1, 2, 0, 3, 4, 5,
> 0, 0,
> + 0, 0, 0, 258, 202, 203, 204, 205, 206,
> 207,
> + 208, 209, 210, 211, 212, 213, 0, 259, 0,
> 260,
> + 261, 262, 73, 0, 0, 0, 0, 0,
> 0, 0,
> + 0, 0, 0, 0, 0, 0, 0, 0,
> 111, 0,
> + 63, 64, -67, 0, 263, 0, 0, 264, 0,
> 265,
> + 0, 266, 1, 2, 0, 3, 4, 5,
> 251, 0,
> 0, 0, 0, 0, 0, 0, 0, 0,
> 0, 0,
> - 0, 374, 375, -207, 293, 294, 295, 296, 297,
> 298,
> - 299, 300, 301, 302, 303, 304, 305, 306, 0,
> 376,
> - 0, -69, 1, 2, 0, 3, 4, 5,
> 0, 0,
> - 0, 0, 0, 6, 7, 179, 180, 181, 182,
> 183,
> - 184, 185, 186, 187, 188, 189, 190, 191, 192,
> 193,
> - 252, 253, 0, 0, 8, 0, 0, 0,
> 9, 0,
> - 0, 0, 10, 0, 74, 75, 0, 0,
> 76, 0,
> - 77, 428, 0, 0, 0, 0, 0, 254, 200,
> 201,
> - 202, 203, 204, 205, 206, 207, 208, 209, 210,
> 211,
> - 0, 255, 0, 256, 257, 258, 63, 64,
> 0, 0,
> - 0, 0, 0, 0, 0, 0, 0, 0,
> 1, 2,
> - 0, 3, 4, 5, 249, 0, 0, 0,
> 0, 0,
> - 0, 377, 0, 0, 0, 0, 0, 0, 0,
> 250,
> - 251, 0, 0, 0, 0, 0, 0, 0,
> 0, 0,
> - 0, 63, 64, 110, 150, 66, 67, 68,
> 69, 70,
> - 71, 72, 0, 1, 2, 0, 3, 4,
> 5, 0,
> - 0, 0, 0, 179, 180, 181, 182, 183, 184,
> 185,
> - 186, 187, 188, 189, 190, 191, 192, 193, 252,
> 253,
> - 0, 0, 0, 73, 0, 0, 63, 64, 0,
> 106,
> - 66, 67, 68, 69, 70, 71, 72, 0,
> 1, 2,
> - 0, 3, 4, 5, 0, 254, 200, 201, 202,
> 203,
> - 204, 205, 206, 207, 208, 209, 210, 211, 134,
> 255,
> - 0, 256, 257, 258, 0, 0, 0, 0,
> 73, 0,
> + 0, 0, 0, 252, 253, 0, 0, 0,
> 0, 0,
> + 0, 0, 0, 0, 0, 0, 0, 110,
> 74, 75,
> + 0, 0, 76, 0, 77, 141, 0, 0,
> 0, 0,
> + 0, 0, 0, 0, 0, 0, 0, 179, 180,
> 181,
> + 182, 183, 184, 185, 186, 187, 188, 189, 190,
> 191,
> + 192, 193, 254, 255, 256, 257, 0, 0,
> 0, 0,
> + 0, 74, 75, 0, 0, 76, 0, 77,
> 368, 0,
> 0, 0, 0, 0, 0, 0, 0, 0,
> 0, 0,
> - 111, 0, 63, 64, -67, 0, 259, 0, 0,
> 260,
> - 0, 261, 0, 262, 1, 2, 151, 3,
> 4, 5,
> - 249, 0, 0, 0, 0, 0, 0, 0,
> 0, 0,
> - 0, 0, 0, 0, 0, 250, 251, 0,
> 0, 0,
> - 0, 0, 0, 0, 0, 0, 0, 0, 0,
> 110,
> - 74, 75, 0, 0, 76, 0, 77, 0,
> 0, 0,
> - 0, 0, 0, 0, 0, 0, 0, 0, 0,
> 179,
> - 180, 181, 182, 183, 184, 185, 186, 187, 188,
> 189,
> - 190, 191, 192, 193, 252, 253, 0, 0,
> 0, 0,
> - 0, 0, 0, 0, 0, 74, 75, 0,
> 0, 76,
> - 0, 77, 0, 0, 0, 0, 0, 0,
> 0, 0,
> - 0, 254, 200, 201, 202, 203, 204, 205, 206,
> 207,
> - 208, 209, 210, 211, 0, 255, 0, 256, 257,
> 258,
> - 0, 0, 0, 0, 0, 0, 0, 0, 368,
> 369,
> - 0, 0, 0, 0, 370, 0, 111, 0,
> 0, 0,
> - 0, 0, 259, 0, 0, 260, 0, 261, 0,
> 262,
> - 371, 372, 373, 0, 0, 0, 0, 0,
> 0, 0,
> - 0, 0, 0, 0, 0, 374, 375, 0,
> 0, 0,
> + 0, 258, 202, 203, 204, 205, 206, 207, 208,
> 209,
> + 210, 211, 212, 213, 0, 259, 0, 260, 261,
> 262,
> + 0, 0, 0, 0, 0, 0, 0, 0, 376,
> 377,
> + 0, 0, 0, 0, 378, 0, 111, 0,
> 0, 0,
> + 0, 0, 263, 0, 0, 264, 0, 265, 0,
> 266,
> + 379, 380, 381, 0, 0, 0, 0, 0,
> 0, 0,
> + 0, 0, 0, 0, 0, 382, 383, 0,
> 0, 0,
> 0, 0, 0, 0, 0, 0, 0, 0,
> 0, 0,
> - 0, 0, 0, 376, 0, 0, 0, 0,
> 0, 0,
> - 0, 0, 0, 0, 0, 0, 0, 0, 0,
> 179,
> + 0, 63, 64, 384, 106, 155, 156, 157, 158,
> 159,
> + 160, 72, 0, 1, 2, 0, 3, 4, 5,
> 179,
> 180, 181, 182, 183, 184, 185, 186, 187, 188,
> 189,
> - 190, 191, 192, 193, 252, 253, 0, 0,
> 0, 0,
> - 0, 0, 63, 64, 0, 106, 66, 67,
> 68, 69,
> - 70, 71, 72, 0, 1, 2, 0, 3,
> 4, 5,
> - 0, 254, 200, 201, 202, 203, 204, 205, 206,
> 207,
> - 208, 209, 210, 211, 337, 255, 0, 256, 257,
> 258,
> - 0, 0, 63, 64, 73, 106, 155, 156, 157,
> 158,
> - 159, 160, 72, 0, 1, 2, 0, 3,
> 4, 5,
> - 0, 0, 0, 63, 64, 377, 106, 66,
> 67, 68,
> - 69, 70, 71, 72, 0, 1, 2, 0,
> 3, 4,
> - 5, 0, 0, 0, 73, 0, 0, 0,
> 0, 0,
> - 0, 0, 0, 0, 0, 438, 0, 0,
> 0, 0,
> - 0, 0, 0, 63, 64, 73, 106, 66,
> 67, 68,
> + 190, 191, 192, 193, 254, 255, 256, 257,
> 0, 0,
> + 0, 0, 0, 73, 63, 64, 0, 106,
> 66, 67,
> + 68, 69, 70, 71, 72, 0, 1, 2,
> 0, 3,
> + 4, 5, 0, 258, 202, 203, 204, 205, 206,
> 207,
> + 208, 209, 210, 211, 212, 213, 134, 259, 0,
> 260,
> + 261, 262, 0, 0, 0, 0, 73, 63,
> 64, 0,
> + 150, 66, 67, 68, 69, 70, 71, 72,
> 0, 1,
> + 2, 0, 3, 4, 5, 63, 64, 385,
> 106, 66,
> + 67, 68, 69, 70, 71, 72, 0, 1,
> 2, 0,
> + 3, 4, 5, 0, 0, 0, 0, 0,
> 0, 73,
> + 0, 0, 0, 0, 0, 0, 0, 343,
> 0, 0,
> + 0, 0, 0, 0, 0, 0, 0, 73,
> 0, 0,
> + 0, 0, 74, 75, 0, 0, 76, 0, 77,
> 440,
> + 63, 64, 0, 106, 155, 156, 157, 158, 159,
> 160,
> + 72, 0, 1, 2, 0, 3, 4, 5,
> 0, 0,
> + 0, 0, 0, 0, 0, 0, 0, 0,
> 0, 0,
> + 0, 0, 0, 0, 0, 74, 75, 0,
> 0, 76,
> + 0, 77, 73, 0, 151, 63, 64, 0,
> 106, 66,
> + 67, 68, 69, 70, 71, 72, 0, 1,
> 2, 0,
> + 3, 4, 5, 0, 0, 0, 0, 0,
> 0, 0,
> + 0, 0, 0, 0, 0, 0, 0, 450,
> 74, 75,
> + 0, 0, 76, 0, 77, 0, 0, 73,
> 0, 0,
> + 0, 0, 0, 0, 0, 0, 74, 75,
> 0, 0,
> + 76, 0, 77, 63, 64, 0, 106, 66,
> 67, 68,
> 69, 70, 71, 72, 0, 1, 2, 0,
> 3, 4,
> 5, 63, 64, 0, 65, 66, 67, 68, 69,
> 70,
> - 71, 72, 0, 1, 2, 532, 3, 4,
> 5, 0,
> + 71, 72, 0, 1, 2, 552, 3, 4,
> 5, 0,
> 0, 0, 0, 0, 0, 73, 0, 0,
> 0, 0,
> - 0, 74, 75, 0, 0, 76, 0, 77,
> 0, 0,
> + 0, 74, 75, 0, 363, 76, 0, 77,
> 0, 0,
> 0, 63, 64, 73, 106, 155, 156, 157, 158,
> 159,
> 160, 72, 0, 1, 2, 0, 3, 4,
> 5, 0,
> 0, 0, 0, 0, 0, 0, 0, 0,
> 0, 0,
> - 0, 74, 75, 0, 355, 76, 0, 77,
> 0, 0,
> - 0, 0, 0, 73, 0, 0, 0, 0,
> 0, 0,
> + 0, 0, 0, 0, 0, 0, 74, 75,
> 0, 0,
> + 76, 0, 77, 73, 63, 64, 0, 150,
> 66, 67,
> + 68, 69, 70, 71, 72, 0, 1, 2,
> 0, 3,
> + 4, 5, 63, 64, 0, 106, 66, 67,
> 68, 69,
> + 70, 71, 72, 0, 1, 2, 0, 3,
> 4, 5,
> + 0, 0, 0, 0, 0, 0, 73, 0,
> 0, 0,
> + 0, 0, 0, 0, 74, 75, 0, 0,
> 76, 0,
> + 77, 0, 0, 0, 73, 0, 0, 0,
> 0, 0,
> 0, 0, 74, 75, 0, 0, 76, 0, 77,
> 63,
> - 64, 0, 150, 66, 67, 68, 69, 70,
> 71, 72,
> + 64, 0, 275, 66, 67, 68, 69, 70,
> 71, 72,
> 0, 1, 2, 0, 3, 4, 5, 0,
> 0, 0,
> 0, 0, 0, 0, 0, 0, 0, 0,
> 0, 0,
> 0, 0, 74, 75, 0, 0, 76, 0,
> 77, 0,
> - 0, 73, 0, 0, 0, 0, 0, 0,
> 0, 0,
> - 74, 75, 0, 0, 76, 0, 77, 63,
> 64, 0,
> - 106, 66, 67, 68, 69, 70, 71, 72,
> 0, 1,
> - 2, 0, 3, 4, 5, 0, 0, 0,
> 0, 0,
> - 0, 0, 0, 0, 0, 0, 0, 0,
> 0, 0,
> - 74, 75, 0, 0, 76, 0, 77, 63,
> 64, 73,
> - 271, 66, 67, 68, 69, 70, 71, 72,
> 0, 1,
> - 2, 0, 3, 4, 5, 63, 64, 0, 106,
> 155,
> - 156, 157, 158, 159, 160, 72, 0, 1,
> 2, 0,
> - 3, 4, 5, 0, 0, 0, 0, 0,
> 0, 73,
> - 0, 0, 0, 0, 0, 0, 0, 0,
> 74, 75,
> - 0, 0, 76, 0, 77, 63, 64, 73,
> 106, 66,
> - 67, 68, 69, 70, 71, 538, 0, 1,
> 2, 0,
> - 3, 4, 5, 63, 64, 0, 106, 66,
> 67, 68,
> - 69, 70, 71, 593, 0, 1, 2, 0,
> 3, 4,
> - 5, 0, 0, 0, 0, 1, 0, 73,
> 3, 0,
> - 5, 0, 0, 0, 0, 0, 74, 75,
> 0, 0,
> - 76, 0, 77, 0, 0, 73, 0, 0,
> 0, 0,
> - 0, 0, 0, 0, 0, 0, 0, 0, 0,
> 326,
> - 0, 0, 0, 0, 0, 0, 0, 0,
> 0, 0,
> - 0, 0, 0, 0, 0, 0, 74, 75,
> 0, 0,
> - 76, 0, 77, 0, 0, 0, 0, 0,
> 0, 0,
> - 0, 0, 0, 0, 74, 75, 0, 0,
> 76, 0,
> - 358, 0, 0, 0, 0, 0, 0, 0,
> 0, 0,
> + 0, 73, 63, 64, 0, 106, 155, 156, 157,
> 158,
> + 159, 160, 72, 0, 1, 2, 0, 3,
> 4, 5,
> 0, 0, 0, 0, 0, 0, 0, 0,
> 0, 0,
> - 0, 0, 0, 0, 327, 328, 0, 0,
> 0, 0,
> - 0, 0, 0, 0, 74, 75, 0, 0, 76,
> 170,
> - 77, 0, 329, 330, 0, 331, 332, 0, 333,
> 334,
> - 335, 0, 74, 75, 0, 0, 76, 0, 77,
> 171,
> - 172, 0, 0, 0, 0, 0, 0, 0,
> 0, 0,
> - 0, 173, 174, 175, 176, 177, 178, 179, 180,
> 181,
> - 182, 183, 184, 185, 186, 187, 188, 189, 190,
> 191,
> - 192, 193, 194, 195, 0, 0, 0, 0,
> 0, 0,
> + 0, 0, 0, 0, 0, 74, 75, 0,
> 0, 76,
> + 0, 77, 0, 0, 73, 0, 0, 0,
> 0, 0,
> + 0, 0, 0, 74, 75, 0, 0, 76,
> 0, 77,
> + 63, 64, 0, 106, 66, 67, 68, 69,
> 70, 71,
> + 558, 0, 1, 2, 0, 3, 4, 5,
> 63, 64,
> + 0, 106, 66, 67, 68, 69, 70, 71,
> 619, 0,
> + 1, 2, 170, 3, 4, 5, 0, 0,
> 0, 0,
> + 0, 0, 73, 0, 0, 0, 0, 0,
> 0, 0,
> + 74, 75, 171, 172, 76, 0, 77, 0,
> 0, 0,
> + 73, 0, 0, 0, 173, 174, 175, 176, 177,
> 178,
> + 179, 180, 181, 182, 183, 184, 185, 186, 187,
> 188,
> + 189, 190, 191, 192, 193, 194, 195, 196,
> 197, 0,
> + 0, 0, 0, 74, 75, 0, 0, 76, 0,
> 366,
> + 0, 0, 0, 0, 0, 0, 0, 0, 0,
> 198,
> + 199, 200, 0, 0, 201, 202, 203, 204, 205,
> 206,
> + 207, 208, 209, 210, 211, 212, 213, 214, 215,
> 216,
> + 217, 218, 219, 220, 0, 0, 0, 0,
> 0, 0,
> 0, 0, 0, 0, 0, 0, 0, 0,
> 0, 0,
> - 0, 0, 0, 0, 196, 197, 198, 0, 0,
> 199,
> - 200, 201, 202, 203, 204, 205, 206, 207, 208,
> 209,
> - 210, 211, 212, 213, 214, 215, 216, 217, 218
> + 0, 74, 75, 0, 0, 76, 0, 77,
> 0, 0,
> + 0, 0, 0, 0, 0, 0, 0, 0,
> 0, 74,
> + 75, 0, 0, 76, 0, 77
> };
>
> static const yytype_int16 yycheck[] =
> {
> - 0, 27, 175, 237, 163, 127, 4, 11,
> 0, 54,
> - 11, 21, 416, 417, 164, 11, 11, 17,
> 52, 29,
> - 309, 54, 28, 54, 54, 17, 586, 176,
> 120, 34,
> - 439, 11, 153, 67, 260, 261, 20, 17,
> 54, 23,
> - 136, 137, 138, 154, 154, 141, 606, 54, 53,
> 145,
> - 146, 77, 163, 163, 114, 115, 148, 53,
> 53, 42,
> - 43, 44, 45, 46, 47, 48, 154, 50, 46,
> 154,
> - 48, 154, 58, 161, 223, 101, 154, 153, 163,
> 105,
> - 163, 154, 54, 161, 488, 111, 159, 163, 238,
> 239,
> - 153, 117, 92, 198, 61, 62, 63, 64,
> 65, 66,
> - 154, 127, 148, 149, 150, 159, 151, 152, 213,
> 214,
> - 215, 216, 217, 139, 140, 34, 221, 143,
> 151, 18,
> - 151, 151, 152, 149, 533, 38, 157, 0, 161,
> 538,
> - 539, 153, 358, 7, 8, 151, 10, 11,
> 12, 13,
> - 14, 15, 16, 17, 151, 19, 20, 173,
> 22, 23,
> - 24, 377, 159, 163, 54, 159, 162, 279,
> 159, 3,
> - 4, 5, 6, 153, 162, 148, 149, 150, 54,
> 157,
> - 196, 197, 198, 199, 166, 49, 153, 54, 467,
> 151,
> - 22, 590, 591, 155, 593, 594, 212, 213, 214,
> 215,
> - 216, 217, 218, 219, 220, 221, 272, 32, 33,
> 275,
> - 276, 323, 278, 229, 42, 43, 44, 616,
> 617, 47,
> - 499, 35, 501, 37, 240, 113, 114, 136, 137,
> 138,
> - 325, 21, 141, 136, 137, 138, 145, 146,
> 141, 40,
> - 41, 22, 145, 146, 19, 311, 47, 22,
> 42, 24,
> - 44, 22, 53, 319, 320, 321, 152, 152, 154,
> 154,
> - 152, 151, 154, 279, 154, 155, 22, 491, 350,
> 351,
> - 352, 353, 354, 552, 290, 151, 83, 84, 154,
> 155,
> - 429, 363, 364, 365, 151, 151, 4, 382,
> 155, 4,
> - 37, 307, 156, 157, 0, 151, 160, 158, 162,
> 163,
> - 158, 396, 155, 398, 399, 400, 4, 323, 324,
> 325,
> - 22, 154, 18, 19, 20, 152, 22, 23, 24,
> 161,
> - 386, 387, 388, 4, 30, 31, 152, 151,
> 394, 9,
> - 9, 275, 276, 9, 278, 9, 9, 419, 420,
> 405,
> - 406, 9, 358, 54, 426, 51, 570, 56,
> 11, 55,
> - 574, 367, 161, 59, 152, 3, 4, 5, 6,
> 151,
> - 151, 22, 151, 429, 151, 151, 382, 311, 151,
> 151,
> - 154, 151, 151, 38, 4, 319, 320, 321,
> 26, 27,
> - 396, 397, 398, 399, 400, 451, 154, 453, 404,
> 154,
> - 456, 154, 154, 475, 476, 477, 478, 463, 464,
> 154,
> - 482, 483, 418, 154, 567, 7, 8, 502,
> 151, 38,
> - 505, 506, 507, 151, 154, 60, 157, 19, 20,
> 154,
> - 22, 23, 24, 154, 587, 154, 154, 154, 494,
> 495,
> - 154, 497, 498, 154, 516, 517, 161, 503,
> 154, 38,
> - 154, 154, 386, 387, 388, 22, 154, 154, 514,
> 154,
> - 394, 152, 468, 17, 17, 151, 4, 154, 4,
> 154,
> - 154, 405, 406, 154, 154, 154, 154, 151, 484,
> 154,
> - 22, 154, 154, 555, 490, 557, 558, 4, 53,
> 154,
> - 496, 547, 154, 161, 154, 152, 502, 22, 154,
> 505,
> - 506, 507, 154, 152, 152, 511, 53, 53, 154,
> 489,
> - 157, 152, 568, 569, 159, 152, 17, 451, 152,
> 453,
> - 159, 152, 456, 152, 4, 147, 151, 151, 584,
> 463,
> - 464, 22, 17, 7, 8, 17, 10, 11,
> 12, 13,
> - 14, 15, 16, 17, 154, 19, 20, 154,
> 22, 23,
> - 24, 17, 72, 17, 610, 611, 130, 130, 130,
> 615,
> - 494, 495, 618, 497, 498, 571, 92, 562, 624,
> 503,
> - 252, 627, 118, 119, 111, 49, 253, 105, 534,
> 229,
> - 514, 240, 562, 3, 4, 17, 89, 7,
> 8, 9,
> - 136, 137, 511, 139, 140, 56, 142, 143,
> 144, 19,
> - 20, 421, 22, 23, 24, 25, 26, 27,
> -1, -1,
> - -1, -1, -1, 547, -1, -1, -1, -1,
> -1, -1,
> - 40, 41, 91, 92, 93, 94, 95, 96,
> 97, 98,
> - 99, 100, -1, 53, 568, 569, 7, 8,
> 58, 10,
> - 11, 12, 13, 14, 15, 16, 17, -1,
> 19, 20,
> - 584, 22, 23, 24, 74, 75, 76, 77,
> 78, 79,
> - 80, 81, 82, 83, 84, 85, 86, 87,
> 88, 89,
> - 90, -1, -1, -1, -1, -1, 610, 611,
> 49, -1,
> - -1, 615, 156, 157, 618, -1, 160, -1, 162,
> 163,
> - 624, -1, -1, 627, -1, -1, 116, 117, 118,
> 119,
> - 120, 121, 122, 123, 124, 125, 126, 127,
> 128, -1,
> - 130, -1, 132, 133, 134, -1, 136, 137, -1,
> 139,
> - 140, -1, 142, 143, 144, 3, 4, -1,
> -1, 7,
> - 8, 9, -1, -1, -1, -1, -1, -1,
> -1, -1,
> - 160, 19, 20, -1, 22, 23, 24, 25,
> 26, 27,
> - -1, -1, -1, -1, -1, -1, -1, -1,
> -1, -1,
> - -1, -1, 40, 41, -1, -1, -1, -1,
> -1, -1,
> - -1, -1, -1, -1, -1, -1, 54, -1,
> -1, -1,
> - 58, -1, -1, -1, -1, 156, 157, -1, -1,
> 160,
> - -1, 162, 163, -1, -1, -1, 74, 75,
> 76, 77,
> - 78, 79, 80, 81, 82, 83, 84, 85,
> 86, 87,
> - 88, 89, 90, -1, -1, 7, 8, -1,
> 10, 11,
> - 12, 13, 14, 15, 16, 17, -1, 19,
> 20, -1,
> - 22, 23, 24, 26, 27, -1, -1, -1, 116,
> 117,
> - 118, 119, 120, 121, 122, 123, 124, 125, 126,
> 127,
> - 128, -1, 130, -1, 132, 133, 134, 49,
> -1, -1,
> - -1, -1, -1, -1, 3, 4, -1, -1,
> 7, 8,
> - 9, -1, -1, 151, -1, -1, -1, -1,
> -1, -1,
> - 19, 20, 160, 22, 23, 24, 25, 26,
> 27, -1,
> - -1, -1, -1, -1, -1, -1, -1, -1,
> -1, -1,
> - -1, 40, 41, 0, 97, 98, 99, 100, 101,
> 102,
> - 103, 104, 105, 106, 107, 108, 109, 110,
> -1, 58,
> - -1, 18, 19, 20, -1, 22, 23, 24,
> -1, -1,
> - -1, -1, -1, 30, 31, 74, 75, 76,
> 77, 78,
> - 79, 80, 81, 82, 83, 84, 85, 86,
> 87, 88,
> - 89, 90, -1, -1, 51, -1, -1, -1,
> 55, -1,
> - -1, -1, 59, -1, 156, 157, -1, -1,
> 160, -1,
> - 162, 163, -1, -1, -1, -1, -1, 116, 117,
> 118,
> - 119, 120, 121, 122, 123, 124, 125, 126, 127,
> 128,
> - -1, 130, -1, 132, 133, 134, 7, 8,
> -1, -1,
> - -1, -1, -1, -1, -1, -1, -1, -1,
> 19, 20,
> - -1, 22, 23, 24, 25, -1, -1, -1,
> -1, -1,
> - -1, 160, -1, -1, -1, -1, -1, -1,
> -1, 40,
> + 0, 27, 175, 0, 315, 11, 4, 127, 11,
> 200,
> + 163, 54, 28, 21, 264, 265, 239, 17,
> 164, 38,
> + 17, 29, 196, 54, 215, 216, 217, 218, 219,
> 426,
> + 427, 54, 223, 155, 54, 451, 11, 176,
> 153, 54,
> + 34, 612, 54, 34, 20, 197, 11, 23, 163,
> 156,
> + 52, 77, 156, 54, 156, 156, 120, 156, 165,
> 163,
> + 156, 632, 53, 165, 165, 67, 165, 163,
> 42, 43,
> + 44, 45, 46, 47, 48, 101, 50, 58, 53,
> 105,
> + 254, 54, 256, 54, 148, 111, 225, 11,
> 53, 40,
> + 41, 117, 92, 17, 240, 241, 47, 155, 46,
> 156,
> + 48, 127, 53, 255, 161, 257, 19, 504,
> 18, 22,
> + 153, 24, 0, 139, 140, 155, 366, 143, 161,
> 138,
> + 139, 140, 153, 149, 143, 54, 156, 155, 147,
> 148,
> + 153, 161, 163, 153, 154, 385, 159, 553, 153,
> 154,
> + 331, 153, 558, 559, 138, 139, 140, 173, 164,
> 143,
> + 32, 33, 153, 147, 148, 161, 157, 165, 161,
> 155,
> + 35, 276, 37, 283, 279, 280, 164, 282, 22,
> 166,
> + 481, 159, 198, 199, 200, 201, 150, 151,
> 152, 42,
> + 153, 44, 153, 156, 157, 156, 157, 21, 214,
> 215,
> + 216, 217, 218, 219, 220, 221, 222, 223, 22,
> 390,
> + 616, 617, 317, 619, 620, 231, 517, 22, 519,
> 329,
> + 325, 326, 327, 116, 117, 406, 242, 408, 409,
> 410,
> + 150, 151, 152, 22, 153, 53, 642, 643,
> 157, 3,
> + 4, 5, 6, 153, 7, 8, 4, 10,
> 11, 12,
> + 13, 14, 15, 16, 17, 4, 19, 20,
> 37, 22,
> + 23, 24, 26, 27, 7, 8, 154, 283,
> 156, 42,
> + 43, 44, 153, 574, 47, 160, 19, 20,
> 294, 22,
> + 23, 24, 3, 4, 5, 6, 49, 113, 114,
> 394,
> + 395, 396, 397, 398, 507, 311, 312, 313, 441,
> 404,
> + 83, 84, 120, 121, 358, 359, 360, 361, 362,
> 160,
> + 415, 416, 157, 329, 330, 331, 4, 371, 372,
> 373,
> + 138, 139, 22, 141, 142, 156, 144, 145,
> 146, 61,
> + 62, 63, 64, 65, 66, 154, 441, 156, 154,
> 520,
> + 156, 154, 523, 524, 525, 4, 138, 139, 140,
> 153,
> + 366, 143, 163, 154, 9, 147, 148, 9, 9,
> 375,
> + 465, 9, 467, 9, 9, 470, 56, 54, 11,
> 163,
> + 154, 153, 477, 478, 390, 429, 430, 431, 432,
> 153,
> + 22, 594, 153, 153, 438, 598, 153, 153,
> 153, 38,
> + 406, 407, 408, 409, 410, 158, 159, 153, 414,
> 162,
> + 153, 164, 165, 4, 156, 510, 511, 38, 513,
> 514,
> + 515, 516, 428, 153, 156, 156, 521, 93,
> 94, 95,
> + 96, 97, 98, 99, 100, 101, 102, 532, 591,
> 156,
> + 156, 156, 156, 153, 153, 153, 60, 491, 492,
> 493,
> + 494, 156, 156, 156, 498, 499, 156, 159, 156,
> 156,
> + 613, 279, 280, 156, 282, 0, 38, 156, 156,
> 156,
> + 156, 163, 156, 156, 569, 156, 482, 22,
> 154, 17,
> + 17, 153, 156, 18, 19, 20, 156, 22,
> 23, 24,
> + 534, 535, 536, 537, 500, 30, 31, 592, 593,
> 317,
> + 506, 156, 156, 4, 156, 156, 512, 325, 326,
> 327,
> + 156, 4, 156, 156, 520, 610, 51, 523, 524,
> 525,
> + 55, 4, 153, 529, 59, 505, 156, 156, 156,
> 156,
> + 156, 22, 53, 156, 156, 579, 156, 581, 582,
> 163,
> + 156, 636, 637, 154, 156, 154, 641, 3, 4,
> 644,
> + 154, 7, 8, 9, 22, 650, 156, 159, 653,
> 154,
> + 161, 154, 154, 19, 20, 154, 22, 23,
> 24, 25,
> + 26, 27, 53, 17, 161, 154, 394, 395, 396,
> 397,
> + 398, 154, 4, 154, 40, 41, 404, 149, 153,
> 595,
> + 153, 22, 156, 17, 17, 156, 17, 415,
> 416, 72,
> + 17, 130, 58, 130, 130, 92, 586, 586, 554,
> 111,
> + 19, 105, 231, 22, 17, 24, 56, 242,
> 74, 75,
> + 76, 77, 78, 79, 80, 81, 82, 83,
> 84, 85,
> + 86, 87, 88, 89, 90, 91, 92, 89,
> 529, -1,
> + 433, -1, -1, -1, 53, -1, -1, 465, -1,
> 467,
> + -1, -1, 470, -1, -1, -1, -1, -1, -1,
> 477,
> + 478, -1, 118, 119, 120, 121, 122, 123, 124,
> 125,
> + 126, 127, 128, 129, 130, -1, 132, -1, 134,
> 135,
> + 136, -1, -1, -1, -1, -1, -1, -1,
> -1, -1,
> + -1, -1, 510, 511, -1, 513, 514, 515,
> 516, -1,
> + -1, -1, -1, 521, -1, -1, 162, -1,
> -1, -1,
> + -1, 120, 121, -1, 532, -1, -1, -1,
> -1, -1,
> + -1, -1, 3, 4, -1, -1, 7, 8, 9,
> 138,
> + 139, -1, 141, 142, -1, 144, 145, 146,
> 19, 20,
> + -1, 22, 23, 24, 25, 26, 27, -1,
> -1, -1,
> + -1, 569, -1, -1, -1, -1, -1, -1,
> -1, 40,
> 41, -1, -1, -1, -1, -1, -1, -1, -1,
> -1,
> - -1, 7, 8, 54, 10, 11, 12, 13,
> 14, 15,
> - 16, 17, -1, 19, 20, -1, 22, 23,
> 24, -1,
> - -1, -1, -1, 74, 75, 76, 77, 78,
> 79, 80,
> - 81, 82, 83, 84, 85, 86, 87, 88,
> 89, 90,
> - -1, -1, -1, 49, -1, -1, 7, 8,
> -1, 10,
> - 11, 12, 13, 14, 15, 16, 17, -1,
> 19, 20,
> - -1, 22, 23, 24, -1, 116, 117, 118, 119,
> 120,
> - 121, 122, 123, 124, 125, 126, 127, 128, 39,
> 130,
> - -1, 132, 133, 134, -1, -1, -1, -1,
> 49, -1,
> + -1, -1, 53, -1, 592, 593, -1, 58,
> -1, -1,
> -1, -1, -1, -1, -1, -1, -1, -1, -1,
> -1,
> - 151, -1, 7, 8, 155, -1, 157, -1, -1,
> 160,
> - -1, 162, -1, 164, 19, 20, 122, 22,
> 23, 24,
> - 25, -1, -1, -1, -1, -1, -1, -1,
> -1, -1,
> + -1, -1, 610, 74, 75, 76, 77, 78,
> 79, 80,
> + 81, 82, 83, 84, 85, 86, 87, 88,
> 89, 90,
> + 91, 92, -1, -1, -1, -1, -1, -1, 636,
> 637,
> + -1, -1, -1, 641, -1, -1, 644, -1,
> -1, -1,
> + -1, -1, 650, -1, -1, 653, -1, 118, 119,
> 120,
> + 121, 122, 123, 124, 125, 126, 127, 128, 129,
> 130,
> + -1, 132, -1, 134, 135, 136, -1, 138,
> 139, -1,
> + 141, 142, -1, 144, 145, 146, 3, 4,
> -1, -1,
> + 7, 8, 9, -1, -1, 0, -1, -1,
> -1, -1,
> + -1, 162, 19, 20, -1, 22, 23, 24,
> 25, 26,
> + 27, 26, 27, 18, 19, 20, -1, 22,
> 23, 24,
> + -1, -1, -1, 40, 41, 30, 31, -1,
> -1, -1,
> + -1, -1, -1, -1, -1, -1, -1, 54,
> -1, -1,
> + -1, 58, -1, -1, -1, -1, 51, -1,
> -1, -1,
> + 55, -1, -1, -1, 59, -1, -1, 74,
> 75, 76,
> + 77, 78, 79, 80, 81, 82, 83, 84,
> 85, 86,
> + 87, 88, 89, 90, 91, 92, -1, -1,
> -1, -1,
> + -1, -1, -1, -1, 99, 100, 101, 102, 103,
> 104,
> + 105, 106, 107, 108, 109, 110, 111, 112,
> -1, -1,
> + -1, 118, 119, 120, 121, 122, 123, 124, 125,
> 126,
> + 127, 128, 129, 130, -1, 132, -1, 134, 135,
> 136,
> + -1, -1, 7, 8, -1, -1, -1, -1,
> -1, -1,
> + -1, -1, -1, -1, 19, 20, 153, 22,
> 23, 24,
> + 25, -1, -1, -1, -1, 162, -1, -1,
> -1, -1,
> -1, -1, -1, -1, -1, 40, 41, -1, -1,
> -1,
> - -1, -1, -1, -1, -1, -1, -1, -1,
> -1, 54,
> - 156, 157, -1, -1, 160, -1, 162, -1,
> -1, -1,
> - -1, -1, -1, -1, -1, -1, -1, -1,
> -1, 74,
> + -1, -1, -1, -1, -1, -1, -1, 7,
> 8, 54,
> + 10, 11, 12, 13, 14, 15, 16, 17,
> -1, 19,
> + 20, -1, 22, 23, 24, -1, -1, -1,
> -1, 74,
> 75, 76, 77, 78, 79, 80, 81, 82, 83,
> 84,
> - 85, 86, 87, 88, 89, 90, -1, -1,
> -1, -1,
> - -1, -1, -1, -1, -1, 156, 157, -1, -1,
> 160,
> - -1, 162, -1, -1, -1, -1, -1, -1,
> -1, -1,
> - -1, 116, 117, 118, 119, 120, 121, 122, 123,
> 124,
> - 125, 126, 127, 128, -1, 130, -1, 132, 133,
> 134,
> + 85, 86, 87, 88, 89, 90, 91, 92,
> -1, 49,
> + 7, 8, -1, 10, 11, 12, 13, 14,
> 15, 16,
> + 17, -1, 19, 20, -1, 22, 23, 24,
> -1, -1,
> + -1, -1, -1, 118, 119, 120, 121, 122, 123,
> 124,
> + 125, 126, 127, 128, 129, 130, -1, 132, -1,
> 134,
> + 135, 136, 49, -1, -1, -1, -1, -1,
> -1, -1,
> + -1, -1, -1, -1, -1, -1, -1, -1,
> 153, -1,
> + 7, 8, 157, -1, 159, -1, -1, 162, -1,
> 164,
> + -1, 166, 19, 20, -1, 22, 23, 24,
> 25, -1,
> + -1, -1, -1, -1, -1, -1, -1, -1,
> -1, -1,
> + -1, -1, -1, 40, 41, -1, -1, -1,
> -1, -1,
> + -1, -1, -1, -1, -1, -1, -1, 54, 158,
> 159,
> + -1, -1, 162, -1, 164, 165, -1, -1,
> -1, -1,
> + -1, -1, -1, -1, -1, -1, -1, 74,
> 75, 76,
> + 77, 78, 79, 80, 81, 82, 83, 84,
> 85, 86,
> + 87, 88, 89, 90, 91, 92, -1, -1,
> -1, -1,
> + -1, 158, 159, -1, -1, 162, -1, 164,
> 165, -1,
> + -1, -1, -1, -1, -1, -1, -1, -1,
> -1, -1,
> + -1, 118, 119, 120, 121, 122, 123, 124, 125,
> 126,
> + 127, 128, 129, 130, -1, 132, -1, 134, 135,
> 136,
> -1, -1, -1, -1, -1, -1, -1, -1,
> 3, 4,
> - -1, -1, -1, -1, 9, -1, 151, -1,
> -1, -1,
> - -1, -1, 157, -1, -1, 160, -1, 162, -1,
> 164,
> + -1, -1, -1, -1, 9, -1, 153, -1,
> -1, -1,
> + -1, -1, 159, -1, -1, 162, -1, 164, -1,
> 166,
> 25, 26, 27, -1, -1, -1, -1, -1, -1,
> -1,
> -1, -1, -1, -1, -1, 40, 41, -1, -1,
> -1,
> -1, -1, -1, -1, -1, -1, -1, -1, -1,
> -1,
> - -1, -1, -1, 58, -1, -1, -1, -1,
> -1, -1,
> - -1, -1, -1, -1, -1, -1, -1, -1,
> -1, 74,
> + -1, 7, 8, 58, 10, 11, 12, 13,
> 14, 15,
> + 16, 17, -1, 19, 20, -1, 22, 23,
> 24, 74,
> 75, 76, 77, 78, 79, 80, 81, 82, 83,
> 84,
> - 85, 86, 87, 88, 89, 90, -1, -1,
> -1, -1,
> - -1, -1, 7, 8, -1, 10, 11, 12,
> 13, 14,
> - 15, 16, 17, -1, 19, 20, -1, 22,
> 23, 24,
> - -1, 116, 117, 118, 119, 120, 121, 122, 123,
> 124,
> - 125, 126, 127, 128, 39, 130, -1, 132, 133,
> 134,
> - -1, -1, 7, 8, 49, 10, 11, 12,
> 13, 14,
> - 15, 16, 17, -1, 19, 20, -1, 22,
> 23, 24,
> - -1, -1, -1, 7, 8, 160, 10, 11,
> 12, 13,
> - 14, 15, 16, 17, -1, 19, 20, -1,
> 22, 23,
> - 24, -1, -1, -1, 49, -1, -1, -1,
> -1, -1,
> - -1, -1, -1, -1, -1, 39, -1, -1,
> -1, -1,
> - -1, -1, -1, 7, 8, 49, 10, 11,
> 12, 13,
> + 85, 86, 87, 88, 89, 90, 91, 92,
> -1, -1,
> + -1, -1, -1, 49, 7, 8, -1, 10,
> 11, 12,
> + 13, 14, 15, 16, 17, -1, 19, 20,
> -1, 22,
> + 23, 24, -1, 118, 119, 120, 121, 122, 123,
> 124,
> + 125, 126, 127, 128, 129, 130, 39, 132, -1,
> 134,
> + 135, 136, -1, -1, -1, -1, 49, 7,
> 8, -1,
> + 10, 11, 12, 13, 14, 15, 16, 17,
> -1, 19,
> + 20, -1, 22, 23, 24, 7, 8, 162,
> 10, 11,
> + 12, 13, 14, 15, 16, 17, -1, 19,
> 20, -1,
> + 22, 23, 24, -1, -1, -1, -1, -1,
> -1, 49,
> + -1, -1, -1, -1, -1, -1, -1, 39,
> -1, -1,
> + -1, -1, -1, -1, -1, -1, -1, 49,
> -1, -1,
> + -1, -1, 158, 159, -1, -1, 162, -1, 164,
> 165,
> + 7, 8, -1, 10, 11, 12, 13, 14,
> 15, 16,
> + 17, -1, 19, 20, -1, 22, 23, 24,
> -1, -1,
> + -1, -1, -1, -1, -1, -1, -1, -1,
> -1, -1,
> + -1, -1, -1, -1, -1, 158, 159, -1, -1,
> 162,
> + -1, 164, 49, -1, 124, 7, 8, -1,
> 10, 11,
> + 12, 13, 14, 15, 16, 17, -1, 19,
> 20, -1,
> + 22, 23, 24, -1, -1, -1, -1, -1,
> -1, -1,
> + -1, -1, -1, -1, -1, -1, -1, 39, 158,
> 159,
> + -1, -1, 162, -1, 164, -1, -1, 49,
> -1, -1,
> + -1, -1, -1, -1, -1, -1, 158, 159,
> -1, -1,
> + 162, -1, 164, 7, 8, -1, 10, 11,
> 12, 13,
> 14, 15, 16, 17, -1, 19, 20, -1, 22,
> 23,
> 24, 7, 8, -1, 10, 11, 12, 13, 14,
> 15,
> 16, 17, -1, 19, 20, 39, 22, 23, 24,
> -1,
> -1, -1, -1, -1, -1, 49, -1, -1, -1,
> -1,
> - -1, 156, 157, -1, -1, 160, -1, 162,
> -1, -1,
> + -1, 158, 159, -1, 161, 162, -1, 164,
> -1, -1,
> -1, 7, 8, 49, 10, 11, 12, 13, 14,
> 15,
> 16, 17, -1, 19, 20, -1, 22, 23, 24,
> -1,
> -1, -1, -1, -1, -1, -1, -1, -1, -1,
> -1,
> - -1, 156, 157, -1, 159, 160, -1, 162,
> -1, -1,
> - -1, -1, -1, 49, -1, -1, -1, -1,
> -1, -1,
> - -1, -1, 156, 157, -1, -1, 160, -1,
> 162, 7,
> + -1, -1, -1, -1, -1, -1, 158, 159,
> -1, -1,
> + 162, -1, 164, 49, 7, 8, -1, 10,
> 11, 12,
> + 13, 14, 15, 16, 17, -1, 19, 20,
> -1, 22,
> + 23, 24, 7, 8, -1, 10, 11, 12,
> 13, 14,
> + 15, 16, 17, -1, 19, 20, -1, 22,
> 23, 24,
> + -1, -1, -1, -1, -1, -1, 49, -1,
> -1, -1,
> + -1, -1, -1, -1, 158, 159, -1, -1,
> 162, -1,
> + 164, -1, -1, -1, 49, -1, -1, -1,
> -1, -1,
> + -1, -1, 158, 159, -1, -1, 162, -1,
> 164, 7,
> 8, -1, 10, 11, 12, 13, 14, 15, 16,
> 17,
> -1, 19, 20, -1, 22, 23, 24, -1, -1,
> -1,
> -1, -1, -1, -1, -1, -1, -1, -1, -1,
> -1,
> - -1, -1, 156, 157, -1, -1, 160, -1,
> 162, -1,
> - -1, 49, -1, -1, -1, -1, -1, -1,
> -1, -1,
> - 156, 157, -1, -1, 160, -1, 162, 7,
> 8, -1,
> - 10, 11, 12, 13, 14, 15, 16, 17,
> -1, 19,
> - 20, -1, 22, 23, 24, -1, -1, -1,
> -1, -1,
> - -1, -1, -1, -1, -1, -1, -1, -1,
> -1, -1,
> - 156, 157, -1, -1, 160, -1, 162, 7,
> 8, 49,
> - 10, 11, 12, 13, 14, 15, 16, 17,
> -1, 19,
> - 20, -1, 22, 23, 24, 7, 8, -1,
> 10, 11,
> - 12, 13, 14, 15, 16, 17, -1, 19,
> 20, -1,
> - 22, 23, 24, -1, -1, -1, -1, -1,
> -1, 49,
> - -1, -1, -1, -1, -1, -1, -1, -1, 156,
> 157,
> - -1, -1, 160, -1, 162, 7, 8, 49,
> 10, 11,
> - 12, 13, 14, 15, 16, 17, -1, 19,
> 20, -1,
> - 22, 23, 24, 7, 8, -1, 10, 11,
> 12, 13,
> - 14, 15, 16, 17, -1, 19, 20, -1,
> 22, 23,
> - 24, -1, -1, -1, -1, 19, -1, 49,
> 22, -1,
> - 24, -1, -1, -1, -1, -1, 156, 157,
> -1, -1,
> - 160, -1, 162, -1, -1, 49, -1, -1,
> -1, -1,
> - -1, -1, -1, -1, -1, -1, -1, -1,
> -1, 53,
> - -1, -1, -1, -1, -1, -1, -1, -1,
> -1, -1,
> - -1, -1, -1, -1, -1, -1, 156, 157,
> -1, -1,
> - 160, -1, 162, -1, -1, -1, -1, -1,
> -1, -1,
> - -1, -1, -1, -1, 156, 157, -1, -1,
> 160, -1,
> - 162, -1, -1, -1, -1, -1, -1, -1,
> -1, -1,
> + -1, -1, 158, 159, -1, -1, 162, -1,
> 164, -1,
> + -1, 49, 7, 8, -1, 10, 11, 12,
> 13, 14,
> + 15, 16, 17, -1, 19, 20, -1, 22,
> 23, 24,
> -1, -1, -1, -1, -1, -1, -1, -1, -1,
> -1,
> - -1, -1, -1, -1, 118, 119, -1, -1,
> -1, -1,
> - -1, -1, -1, -1, 156, 157, -1, -1,
> 160, 36,
> - 162, -1, 136, 137, -1, 139, 140, -1, 142,
> 143,
> - 144, -1, 156, 157, -1, -1, 160, -1,
> 162, 56,
> - 57, -1, -1, -1, -1, -1, -1, -1,
> -1, -1,
> - -1, 68, 69, 70, 71, 72, 73, 74,
> 75, 76,
> - 77, 78, 79, 80, 81, 82, 83, 84,
> 85, 86,
> - 87, 88, 89, 90, -1, -1, -1, -1,
> -1, -1,
> + -1, -1, -1, -1, -1, 158, 159, -1, -1,
> 162,
> + -1, 164, -1, -1, 49, -1, -1, -1,
> -1, -1,
> + -1, -1, -1, 158, 159, -1, -1, 162, -1,
> 164,
> + 7, 8, -1, 10, 11, 12, 13, 14,
> 15, 16,
> + 17, -1, 19, 20, -1, 22, 23, 24,
> 7, 8,
> + -1, 10, 11, 12, 13, 14, 15, 16,
> 17, -1,
> + 19, 20, 36, 22, 23, 24, -1, -1,
> -1, -1,
> + -1, -1, 49, -1, -1, -1, -1, -1,
> -1, -1,
> + 158, 159, 56, 57, 162, -1, 164, -1,
> -1, -1,
> + 49, -1, -1, -1, 68, 69, 70, 71,
> 72, 73,
> + 74, 75, 76, 77, 78, 79, 80, 81,
> 82, 83,
> + 84, 85, 86, 87, 88, 89, 90, 91,
> 92, -1,
> + -1, -1, -1, 158, 159, -1, -1, 162, -1,
> 164,
> + -1, -1, -1, -1, -1, -1, -1, -1, -1,
> 113,
> + 114, 115, -1, -1, 118, 119, 120, 121, 122,
> 123,
> + 124, 125, 126, 127, 128, 129, 130, 131, 132,
> 133,
> + 134, 135, 136, 137, -1, -1, -1, -1,
> -1, -1,
> -1, -1, -1, -1, -1, -1, -1, -1, -1,
> -1,
> - -1, -1, -1, -1, 111, 112, 113, -1, -1,
> 116,
> - 117, 118, 119, 120, 121, 122, 123, 124, 125,
> 126,
> - 127, 128, 129, 130, 131, 132, 133, 134, 135
> + -1, 158, 159, -1, -1, 162, -1, 164,
> -1, -1,
> + -1, -1, -1, -1, -1, -1, -1, -1, -1,
> 158,
> + 159, -1, -1, 162, -1, 164
> };
>
> /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
> @@ -2594,68 +2620,71 @@
> static const yytype_uint8 yystos[] =
> {
> 0, 19, 20, 22, 23, 24, 30, 31, 51,
> 55,
> - 59, 173, 176, 177, 178, 179, 211, 212, 213,
> 215,
> - 214, 52, 67, 220, 153, 58, 153, 18,
> 153, 42,
> - 43, 44, 45, 46, 47, 48, 50, 148, 149,
> 150,
> - 180, 181, 182, 0, 213, 46, 48, 183,
> 230, 42,
> - 43, 44, 47, 184, 227, 229, 237, 153, 153,
> 157,
> - 221, 22, 219, 7, 8, 10, 11, 12,
> 13, 14,
> - 15, 16, 17, 49, 156, 157, 160, 162, 173,
> 177,
> - 198, 199, 233, 182, 182, 35, 37, 209, 182,
> 182,
> - 21, 238, 239, 29, 163, 228, 238, 22,
> 22, 22,
> - 222, 151, 4, 4, 4, 162, 10, 163, 199,
> 204,
> - 54, 151, 175, 209, 209, 42, 44, 185,
> 32, 33,
> - 208, 61, 62, 63, 64, 65, 66, 186, 225,
> 225,
> - 176, 242, 154, 159, 39, 199, 200, 202, 203,
> 158,
> - 158, 163, 204, 154, 163, 151, 203, 155, 208,
> 208,
> - 10, 122, 199, 201, 210, 11, 12, 13,
> 14, 15,
> - 16, 171, 172, 199, 205, 4, 201, 28, 162,
> 226,
> + 59, 175, 178, 179, 180, 181, 213, 214, 215,
> 217,
> + 216, 52, 67, 222, 155, 58, 155, 18,
> 155, 42,
> + 43, 44, 45, 46, 47, 48, 50, 150, 151,
> 152,
> + 182, 183, 184, 0, 215, 46, 48, 185,
> 232, 42,
> + 43, 44, 47, 186, 229, 231, 239, 155, 155,
> 159,
> + 223, 22, 221, 7, 8, 10, 11, 12,
> 13, 14,
> + 15, 16, 17, 49, 158, 159, 162, 164, 175,
> 179,
> + 200, 201, 235, 184, 184, 35, 37, 211, 184,
> 184,
> + 21, 240, 241, 29, 165, 230, 240, 22,
> 22, 22,
> + 224, 153, 4, 4, 4, 164, 10, 165, 201,
> 206,
> + 54, 153, 177, 211, 211, 42, 44, 187,
> 32, 33,
> + 210, 61, 62, 63, 64, 65, 66, 188, 227,
> 227,
> + 178, 244, 156, 161, 39, 201, 202, 204, 205,
> 160,
> + 160, 165, 206, 156, 165, 153, 205, 157, 210,
> 210,
> + 10, 124, 201, 203, 212, 11, 12, 13,
> 14, 15,
> + 16, 173, 174, 201, 207, 4, 203, 28, 164,
> 228,
> 36, 56, 57, 68, 69, 70, 71, 72, 73,
> 74,
> 75, 76, 77, 78, 79, 80, 81, 82, 83,
> 84,
> - 85, 86, 87, 88, 89, 90, 111, 112, 113,
> 116,
> - 117, 118, 119, 120, 121, 122, 123, 124, 125,
> 126,
> - 127, 128, 129, 130, 131, 132, 133, 134, 135,
> 166,
> - 167, 168, 240, 246, 247, 248, 249, 22, 188,
> 154,
> - 152, 199, 199, 161, 163, 199, 4, 152, 205,
> 199,
> - 151, 233, 26, 27, 3, 4, 5, 6,
> 9, 25,
> - 40, 41, 89, 90, 116, 130, 132, 133, 134,
> 157,
> - 160, 162, 164, 166, 167, 168, 206, 233, 175,
> 177,
> - 56, 10, 199, 235, 236, 11, 17, 11, 171,
> 186,
> - 91, 92, 93, 94, 95, 96, 97, 98, 99,
> 100,
> - 169, 26, 27, 97, 98, 99, 100, 101, 102,
> 103,
> - 104, 105, 106, 107, 108, 109, 110, 170, 199,
> 199,
> - 235, 199, 199, 243, 235, 235, 235, 235, 235,
> 199,
> - 199, 199, 235, 186, 114, 115, 53, 118, 119,
> 136,
> - 137, 139, 140, 142, 143, 144, 187, 39, 200,
> 190,
> - 159, 161, 161, 152, 190, 175, 175, 210, 169,
> 170,
> - 151, 151, 151, 151, 151, 159, 205, 207, 162,
> 207,
> - 163, 207, 22, 151, 151, 151, 216, 151,
> 3, 4,
> - 9, 25, 26, 27, 40, 41, 58, 160, 206,
> 232,
> - 233, 234, 154, 234, 234, 234, 201, 199, 199,
> 154,
> - 193, 154, 193, 234, 157, 154, 154, 154, 154,
> 154,
> - 154, 234, 234, 234, 38, 201, 199, 235, 4,
> 136,
> - 137, 138, 141, 145, 146, 189, 217, 218, 38,
> 151,
> - 151, 205, 205, 205, 205, 205, 154, 159, 163,
> 199,
> - 207, 161, 163, 205, 205, 205, 154, 196, 39,
> 199,
> - 223, 224, 60, 231, 207, 235, 154, 154, 234,
> 234,
> - 234, 11, 53, 11, 245, 234, 157, 235, 199,
> 235,
> - 235, 235, 154, 154, 154, 199, 234, 234, 154,
> 196,
> - 196, 199, 205, 205, 245, 154, 154, 154, 154,
> 205,
> - 161, 163, 154, 154, 38, 34, 53, 194, 197,
> 188,
> - 154, 152, 22, 161, 17, 17, 151, 154, 154,
> 234,
> - 4, 234, 154, 154, 234, 154, 154, 154, 4,
> 234,
> - 234, 151, 154, 193, 199, 152, 154, 154, 152,
> 205,
> - 205, 205, 205, 161, 205, 205, 199, 22, 4,
> 196,
> - 173, 174, 39, 199, 190, 154, 234, 234, 17,
> 199,
> - 244, 234, 234, 193, 193, 235, 234, 154, 235,
> 235,
> - 235, 244, 234, 205, 205, 154, 152, 154, 154,
> 152,
> - 152, 152, 188, 194, 195, 22, 154, 157, 188,
> 188,
> - 152, 154, 159, 234, 152, 193, 152, 152, 205,
> 205,
> - 205, 174, 53, 192, 17, 159, 171, 241, 118,
> 119,
> - 234, 234, 190, 17, 199, 159, 190, 152, 152,
> 152,
> - 4, 147, 191, 234, 232, 159, 171, 188,
> 188, 38,
> - 188, 188, 22, 154, 232, 17, 234, 234, 17,
> 154,
> - 234, 188, 188, 234, 17, 72, 234, 17, 234
> + 85, 86, 87, 88, 89, 90, 91, 92, 113,
> 114,
> + 115, 118, 119, 120, 121, 122, 123, 124, 125,
> 126,
> + 127, 128, 129, 130, 131, 132, 133, 134, 135,
> 136,
> + 137, 168, 169, 170, 242, 248, 249, 250,
> 251, 22,
> + 190, 156, 154, 201, 201, 163, 165, 201, 4,
> 154,
> + 207, 201, 153, 235, 26, 27, 3, 4,
> 5, 6,
> + 9, 25, 40, 41, 89, 90, 91, 92, 118,
> 132,
> + 134, 135, 136, 159, 162, 164, 166, 168, 169,
> 170,
> + 208, 235, 177, 179, 56, 10, 201, 237,
> 238, 11,
> + 17, 11, 173, 188, 93, 94, 95, 96,
> 97, 98,
> + 99, 100, 101, 102, 171, 26, 27, 99, 100,
> 101,
> + 102, 103, 104, 105, 106, 107, 108, 109, 110,
> 111,
> + 112, 172, 171, 172, 201, 201, 237, 201, 201,
> 245,
> + 237, 237, 237, 237, 237, 201, 201, 201, 237,
> 188,
> + 116, 117, 53, 120, 121, 138, 139, 141, 142,
> 144,
> + 145, 146, 189, 39, 202, 192, 161, 163, 163,
> 154,
> + 192, 177, 177, 212, 171, 172, 171, 172, 153,
> 153,
> + 153, 153, 153, 161, 207, 209, 164, 209, 165,
> 209,
> + 22, 153, 153, 153, 218, 153, 3, 4,
> 9, 25,
> + 26, 27, 40, 41, 58, 162, 208, 234, 235,
> 236,
> + 156, 236, 236, 236, 203, 201, 201, 201, 201,
> 156,
> + 195, 156, 195, 236, 159, 156, 156, 156, 156,
> 156,
> + 156, 236, 236, 236, 38, 203, 201, 237, 4,
> 138,
> + 139, 140, 143, 147, 148, 191, 219, 220, 38,
> 153,
> + 153, 153, 153, 207, 207, 207, 207, 207, 156,
> 161,
> + 165, 201, 209, 163, 165, 207, 207, 207, 156,
> 198,
> + 39, 201, 225, 226, 60, 233, 209, 237, 156,
> 156,
> + 236, 236, 236, 236, 236, 11, 53, 11, 247,
> 236,
> + 159, 237, 201, 237, 237, 237, 156, 156, 156,
> 201,
> + 236, 236, 156, 198, 198, 201, 207, 207, 207,
> 207,
> + 247, 156, 156, 156, 156, 207, 163, 165, 156,
> 156,
> + 38, 34, 53, 196, 199, 190, 156, 154, 22,
> 163,
> + 17, 17, 153, 156, 156, 156, 156, 236, 4,
> 236,
> + 156, 156, 236, 156, 156, 156, 4, 236, 236,
> 153,
> + 156, 195, 201, 154, 156, 156, 156, 156, 154,
> 207,
> + 207, 207, 207, 163, 207, 207, 201, 22, 4,
> 198,
> + 175, 176, 39, 201, 192, 156, 236, 236, 17,
> 201,
> + 246, 236, 236, 236, 236, 195, 195, 237, 236,
> 156,
> + 237, 237, 237, 246, 236, 207, 207, 207, 207,
> 156,
> + 154, 156, 156, 154, 154, 154, 190, 196,
> 197, 22,
> + 156, 159, 190, 190, 154, 156, 161, 236, 154,
> 195,
> + 154, 154, 154, 154, 207, 207, 207, 176, 53,
> 194,
> + 17, 161, 173, 243, 120, 121, 236, 236,
> 192, 17,
> + 201, 161, 192, 154, 154, 154, 4, 149, 193,
> 236,
> + 234, 161, 173, 190, 190, 38, 190, 190, 22,
> 156,
> + 234, 17, 236, 236, 17, 156, 236, 190, 190,
> 236,
> + 17, 72, 236, 17, 236
> };
>
> #define yyerrok (yyerrstatus = 0)
> @@ -3470,152 +3499,152 @@
> switch (yyn)
> {
> case 29:
> -#line 1117 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1117 "/llvm/lib/AsmParser/llvmAsmParser.y"
> { (yyval.IPredicate) = ICmpInst::ICMP_EQ; ;}
> break;
>
> case 30:
> -#line 1117 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1117 "/llvm/lib/AsmParser/llvmAsmParser.y"
> { (yyval.IPredicate) = ICmpInst::ICMP_NE; ;}
> break;
>
> case 31:
> -#line 1118 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1118 "/llvm/lib/AsmParser/llvmAsmParser.y"
> { (yyval.IPredicate) = ICmpInst::ICMP_SLT; ;}
> break;
>
> case 32:
> -#line 1118 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1118 "/llvm/lib/AsmParser/llvmAsmParser.y"
> { (yyval.IPredicate) = ICmpInst::ICMP_SGT; ;}
> break;
>
> case 33:
> -#line 1119 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1119 "/llvm/lib/AsmParser/llvmAsmParser.y"
> { (yyval.IPredicate) = ICmpInst::ICMP_SLE; ;}
> break;
>
> case 34:
> -#line 1119 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1119 "/llvm/lib/AsmParser/llvmAsmParser.y"
> { (yyval.IPredicate) = ICmpInst::ICMP_SGE; ;}
> break;
>
> case 35:
> -#line 1120 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1120 "/llvm/lib/AsmParser/llvmAsmParser.y"
> { (yyval.IPredicate) = ICmpInst::ICMP_ULT; ;}
> break;
>
> case 36:
> -#line 1120 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1120 "/llvm/lib/AsmParser/llvmAsmParser.y"
> { (yyval.IPredicate) = ICmpInst::ICMP_UGT; ;}
> break;
>
> case 37:
> -#line 1121 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1121 "/llvm/lib/AsmParser/llvmAsmParser.y"
> { (yyval.IPredicate) = ICmpInst::ICMP_ULE; ;}
> break;
>
> case 38:
> -#line 1121 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1121 "/llvm/lib/AsmParser/llvmAsmParser.y"
> { (yyval.IPredicate) = ICmpInst::ICMP_UGE; ;}
> break;
>
> case 39:
> -#line 1125 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1125 "/llvm/lib/AsmParser/llvmAsmParser.y"
> { (yyval.FPredicate) = FCmpInst::FCMP_OEQ; ;}
> break;
>
> case 40:
> -#line 1125 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1125 "/llvm/lib/AsmParser/llvmAsmParser.y"
> { (yyval.FPredicate) = FCmpInst::FCMP_ONE; ;}
> break;
>
> case 41:
> -#line 1126 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1126 "/llvm/lib/AsmParser/llvmAsmParser.y"
> { (yyval.FPredicate) = FCmpInst::FCMP_OLT; ;}
> break;
>
> case 42:
> -#line 1126 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1126 "/llvm/lib/AsmParser/llvmAsmParser.y"
> { (yyval.FPredicate) = FCmpInst::FCMP_OGT; ;}
> break;
>
> case 43:
> -#line 1127 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1127 "/llvm/lib/AsmParser/llvmAsmParser.y"
> { (yyval.FPredicate) = FCmpInst::FCMP_OLE; ;}
> break;
>
> case 44:
> -#line 1127 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1127 "/llvm/lib/AsmParser/llvmAsmParser.y"
> { (yyval.FPredicate) = FCmpInst::FCMP_OGE; ;}
> break;
>
> case 45:
> -#line 1128 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1128 "/llvm/lib/AsmParser/llvmAsmParser.y"
> { (yyval.FPredicate) = FCmpInst::FCMP_ORD; ;}
> break;
>
> case 46:
> -#line 1128 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1128 "/llvm/lib/AsmParser/llvmAsmParser.y"
> { (yyval.FPredicate) = FCmpInst::FCMP_UNO; ;}
> break;
>
> case 47:
> -#line 1129 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1129 "/llvm/lib/AsmParser/llvmAsmParser.y"
> { (yyval.FPredicate) = FCmpInst::FCMP_UEQ; ;}
> break;
>
> case 48:
> -#line 1129 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1129 "/llvm/lib/AsmParser/llvmAsmParser.y"
> { (yyval.FPredicate) = FCmpInst::FCMP_UNE; ;}
> break;
>
> case 49:
> -#line 1130 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1130 "/llvm/lib/AsmParser/llvmAsmParser.y"
> { (yyval.FPredicate) = FCmpInst::FCMP_ULT; ;}
> break;
>
> case 50:
> -#line 1130 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1130 "/llvm/lib/AsmParser/llvmAsmParser.y"
> { (yyval.FPredicate) = FCmpInst::FCMP_UGT; ;}
> break;
>
> case 51:
> -#line 1131 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1131 "/llvm/lib/AsmParser/llvmAsmParser.y"
> { (yyval.FPredicate) = FCmpInst::FCMP_ULE; ;}
> break;
>
> case 52:
> -#line 1131 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1131 "/llvm/lib/AsmParser/llvmAsmParser.y"
> { (yyval.FPredicate) = FCmpInst::FCMP_UGE; ;}
> break;
>
> case 53:
> -#line 1132 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1132 "/llvm/lib/AsmParser/llvmAsmParser.y"
> { (yyval.FPredicate) = FCmpInst::FCMP_TRUE; ;}
> break;
>
> case 54:
> -#line 1133 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1133 "/llvm/lib/AsmParser/llvmAsmParser.y"
> { (yyval.FPredicate) = FCmpInst::FCMP_FALSE; ;}
> break;
>
> case 65:
> -#line 1142 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1142 "/llvm/lib/AsmParser/llvmAsmParser.y"
> { (yyval.StrVal) = 0; ;}
> break;
>
> case 66:
> -#line 1144 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1144 "/llvm/lib/AsmParser/llvmAsmParser.y"
> { (yyval.UIntVal)=(yyvsp[(3) - (4)].UInt64Val); ;}
> break;
>
> case 67:
> -#line 1145 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1145 "/llvm/lib/AsmParser/llvmAsmParser.y"
> { (yyval.UIntVal)=0; ;}
> break;
>
> case 68:
> -#line 1149 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1149 "/llvm/lib/AsmParser/llvmAsmParser.y"
> {
> (yyval.StrVal) = (yyvsp[(1) - (2)].StrVal);
> CHECK_FOR_ERROR
> @@ -3623,7 +3652,7 @@
> break;
>
> case 69:
> -#line 1153 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1153 "/llvm/lib/AsmParser/llvmAsmParser.y"
> {
> (yyval.StrVal) = 0;
> CHECK_FOR_ERROR
> @@ -3631,7 +3660,7 @@
> break;
>
> case 73:
> -#line 1161 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1161 "/llvm/lib/AsmParser/llvmAsmParser.y"
> {
> (yyval.StrVal) = 0;
> CHECK_FOR_ERROR
> @@ -3639,7 +3668,7 @@
> break;
>
> case 74:
> -#line 1166 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1166 "/llvm/lib/AsmParser/llvmAsmParser.y"
> {
> (yyval.StrVal) = (yyvsp[(1) - (2)].StrVal);
> CHECK_FOR_ERROR
> @@ -3647,152 +3676,152 @@
> break;
>
> case 75:
> -#line 1172 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1172 "/llvm/lib/AsmParser/llvmAsmParser.y"
> { (yyval.Linkage) = GlobalValue::InternalLinkage; ;}
> break;
>
> case 76:
> -#line 1173 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1173 "/llvm/lib/AsmParser/llvmAsmParser.y"
> { (yyval.Linkage) = GlobalValue::WeakLinkage; ;}
> break;
>
> case 77:
> -#line 1174 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1174 "/llvm/lib/AsmParser/llvmAsmParser.y"
> { (yyval.Linkage) = GlobalValue::LinkOnceLinkage; ;}
> break;
>
> case 78:
> -#line 1175 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1175 "/llvm/lib/AsmParser/llvmAsmParser.y"
> { (yyval.Linkage) = GlobalValue::AppendingLinkage; ;}
> break;
>
> case 79:
> -#line 1176 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1176 "/llvm/lib/AsmParser/llvmAsmParser.y"
> { (yyval.Linkage) = GlobalValue::DLLExportLinkage; ;}
> break;
>
> case 80:
> -#line 1180 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1180 "/llvm/lib/AsmParser/llvmAsmParser.y"
> { (yyval.Linkage) = GlobalValue::DLLImportLinkage; ;}
> break;
>
> case 81:
> -#line 1181 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1181 "/llvm/lib/AsmParser/llvmAsmParser.y"
> { (yyval.Linkage) = GlobalValue::ExternalWeakLinkage; ;}
> break;
>
> case 82:
> -#line 1182 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1182 "/llvm/lib/AsmParser/llvmAsmParser.y"
> { (yyval.Linkage) = GlobalValue::ExternalLinkage; ;}
> break;
>
> case 83:
> -#line 1186 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1186 "/llvm/lib/AsmParser/llvmAsmParser.y"
> { (yyval.Visibility) = GlobalValue::DefaultVisibility; ;}
> break;
>
> case 84:
> -#line 1187 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1187 "/llvm/lib/AsmParser/llvmAsmParser.y"
> { (yyval.Visibility) = GlobalValue::DefaultVisibility; ;}
> break;
>
> case 85:
> -#line 1188 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1188 "/llvm/lib/AsmParser/llvmAsmParser.y"
> { (yyval.Visibility) = GlobalValue::HiddenVisibility; ;}
> break;
>
> case 86:
> -#line 1189 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1189 "/llvm/lib/AsmParser/llvmAsmParser.y"
> { (yyval.Visibility) = GlobalValue::ProtectedVisibility; ;}
> break;
>
> case 87:
> -#line 1193 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1193 "/llvm/lib/AsmParser/llvmAsmParser.y"
> { (yyval.Linkage) = GlobalValue::ExternalLinkage; ;}
> break;
>
> case 88:
> -#line 1194 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1194 "/llvm/lib/AsmParser/llvmAsmParser.y"
> { (yyval.Linkage) = GlobalValue::DLLImportLinkage; ;}
> break;
>
> case 89:
> -#line 1195 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1195 "/llvm/lib/AsmParser/llvmAsmParser.y"
> { (yyval.Linkage) = GlobalValue::ExternalWeakLinkage; ;}
> break;
>
> case 90:
> -#line 1199 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1199 "/llvm/lib/AsmParser/llvmAsmParser.y"
> { (yyval.Linkage) = GlobalValue::ExternalLinkage; ;}
> break;
>
> case 91:
> -#line 1200 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1200 "/llvm/lib/AsmParser/llvmAsmParser.y"
> { (yyval.Linkage) = GlobalValue::InternalLinkage; ;}
> break;
>
> case 92:
> -#line 1201 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1201 "/llvm/lib/AsmParser/llvmAsmParser.y"
> { (yyval.Linkage) = GlobalValue::LinkOnceLinkage; ;}
> break;
>
> case 93:
> -#line 1202 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1202 "/llvm/lib/AsmParser/llvmAsmParser.y"
> { (yyval.Linkage) = GlobalValue::WeakLinkage; ;}
> break;
>
> case 94:
> -#line 1203 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1203 "/llvm/lib/AsmParser/llvmAsmParser.y"
> { (yyval.Linkage) = GlobalValue::DLLExportLinkage; ;}
> break;
>
> case 95:
> -#line 1207 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1207 "/llvm/lib/AsmParser/llvmAsmParser.y"
> { (yyval.Linkage) = GlobalValue::ExternalLinkage; ;}
> break;
>
> case 96:
> -#line 1208 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1208 "/llvm/lib/AsmParser/llvmAsmParser.y"
> { (yyval.Linkage) = GlobalValue::WeakLinkage; ;}
> break;
>
> case 97:
> -#line 1209 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1209 "/llvm/lib/AsmParser/llvmAsmParser.y"
> { (yyval.Linkage) = GlobalValue::InternalLinkage; ;}
> break;
>
> case 98:
> -#line 1212 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1212 "/llvm/lib/AsmParser/llvmAsmParser.y"
> { (yyval.UIntVal) = CallingConv::C; ;}
> break;
>
> case 99:
> -#line 1213 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1213 "/llvm/lib/AsmParser/llvmAsmParser.y"
> { (yyval.UIntVal) = CallingConv::C; ;}
> break;
>
> case 100:
> -#line 1214 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1214 "/llvm/lib/AsmParser/llvmAsmParser.y"
> { (yyval.UIntVal) = CallingConv::Fast; ;}
> break;
>
> case 101:
> -#line 1215 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1215 "/llvm/lib/AsmParser/llvmAsmParser.y"
> { (yyval.UIntVal) = CallingConv::Cold; ;}
> break;
>
> case 102:
> -#line 1216 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1216 "/llvm/lib/AsmParser/llvmAsmParser.y"
> { (yyval.UIntVal) = CallingConv::X86_StdCall; ;}
> break;
>
> case 103:
> -#line 1217 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1217 "/llvm/lib/AsmParser/llvmAsmParser.y"
> { (yyval.UIntVal) = CallingConv::X86_FastCall; ;}
> break;
>
> case 104:
> -#line 1218 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1218 "/llvm/lib/AsmParser/llvmAsmParser.y"
> {
> if ((unsigned)(yyvsp[(2) - (2)].UInt64Val) !=
> (yyvsp[(2) - (2)].UInt64Val))
> GEN_ERROR("Calling conv too large");
> @@ -3802,129 +3831,129 @@
> break;
>
> case 105:
> -#line 1225 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1225 "/llvm/lib/AsmParser/llvmAsmParser.y"
> { (yyval.ParamAttrs) = ParamAttr::ZExt; ;}
> break;
>
> case 106:
> -#line 1226 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1226 "/llvm/lib/AsmParser/llvmAsmParser.y"
> { (yyval.ParamAttrs) = ParamAttr::ZExt; ;}
> break;
>
> case 107:
> -#line 1227 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1227 "/llvm/lib/AsmParser/llvmAsmParser.y"
> { (yyval.ParamAttrs) = ParamAttr::SExt; ;}
> break;
>
> case 108:
> -#line 1228 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1228 "/llvm/lib/AsmParser/llvmAsmParser.y"
> { (yyval.ParamAttrs) = ParamAttr::SExt; ;}
> break;
>
> case 109:
> -#line 1229 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1229 "/llvm/lib/AsmParser/llvmAsmParser.y"
> { (yyval.ParamAttrs) = ParamAttr::InReg; ;}
> break;
>
> case 110:
> -#line 1230 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1230 "/llvm/lib/AsmParser/llvmAsmParser.y"
> { (yyval.ParamAttrs) = ParamAttr::StructRet; ;}
> break;
>
> case 111:
> -#line 1231 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1231 "/llvm/lib/AsmParser/llvmAsmParser.y"
> { (yyval.ParamAttrs) = ParamAttr::NoAlias; ;}
> break;
>
> case 112:
> -#line 1232 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1232 "/llvm/lib/AsmParser/llvmAsmParser.y"
> { (yyval.ParamAttrs) = ParamAttr::ByVal; ;}
> break;
>
> case 113:
> -#line 1233 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1233 "/llvm/lib/AsmParser/llvmAsmParser.y"
> { (yyval.ParamAttrs) = ParamAttr::Nest; ;}
> break;
>
> case 114:
> -#line 1234 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1234 "/llvm/lib/AsmParser/llvmAsmParser.y"
> { (yyval.ParamAttrs) =
>
> ParamAttr::constructAlignmentFromInt((yyvsp[(2) -
> (2)].UInt64Val)); ;}
> break;
>
> case 115:
> -#line 1238 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1238 "/llvm/lib/AsmParser/llvmAsmParser.y"
> { (yyval.ParamAttrs) = ParamAttr::None; ;}
> break;
>
> case 116:
> -#line 1239 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1239 "/llvm/lib/AsmParser/llvmAsmParser.y"
> {
> (yyval.ParamAttrs) = (yyvsp[(1) - (2)].ParamAttrs) |
> (yyvsp[(2) - (2)].ParamAttrs);
> ;}
> break;
>
> case 117:
> -#line 1244 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1244 "/llvm/lib/AsmParser/llvmAsmParser.y"
> { (yyval.ParamAttrs) = ParamAttr::NoReturn; ;}
> break;
>
> case 118:
> -#line 1245 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1245 "/llvm/lib/AsmParser/llvmAsmParser.y"
> { (yyval.ParamAttrs) = ParamAttr::NoUnwind; ;}
> break;
>
> case 119:
> -#line 1246 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1246 "/llvm/lib/AsmParser/llvmAsmParser.y"
> { (yyval.ParamAttrs) = ParamAttr::ZExt; ;}
> break;
>
> case 120:
> -#line 1247 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1247 "/llvm/lib/AsmParser/llvmAsmParser.y"
> { (yyval.ParamAttrs) = ParamAttr::SExt; ;}
> break;
>
> case 121:
> -#line 1248 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1248 "/llvm/lib/AsmParser/llvmAsmParser.y"
> { (yyval.ParamAttrs) = ParamAttr::ReadNone; ;}
> break;
>
> case 122:
> -#line 1249 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1249 "/llvm/lib/AsmParser/llvmAsmParser.y"
> { (yyval.ParamAttrs) = ParamAttr::ReadOnly; ;}
> break;
>
> case 123:
> -#line 1252 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1252 "/llvm/lib/AsmParser/llvmAsmParser.y"
> { (yyval.ParamAttrs) = ParamAttr::None; ;}
> break;
>
> case 124:
> -#line 1253 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1253 "/llvm/lib/AsmParser/llvmAsmParser.y"
> {
> (yyval.ParamAttrs) = (yyvsp[(1) - (2)].ParamAttrs) |
> (yyvsp[(2) - (2)].ParamAttrs);
> ;}
> break;
>
> case 125:
> -#line 1258 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1258 "/llvm/lib/AsmParser/llvmAsmParser.y"
> { (yyval.StrVal) = 0; ;}
> break;
>
> case 126:
> -#line 1259 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1259 "/llvm/lib/AsmParser/llvmAsmParser.y"
> {
> (yyval.StrVal) = (yyvsp[(2) - (2)].StrVal);
> ;}
> break;
>
> case 127:
> -#line 1266 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1266 "/llvm/lib/AsmParser/llvmAsmParser.y"
> { (yyval.UIntVal) = 0; ;}
> break;
>
> case 128:
> -#line 1267 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1267 "/llvm/lib/AsmParser/llvmAsmParser.y"
> {
> (yyval.UIntVal) = (yyvsp[(2) - (2)].UInt64Val);
> if ((yyval.UIntVal) != 0 && !isPowerOf2_32((yyval.UIntVal)))
> @@ -3934,12 +3963,12 @@
> break;
>
> case 129:
> -#line 1273 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1273 "/llvm/lib/AsmParser/llvmAsmParser.y"
> { (yyval.UIntVal) = 0; ;}
> break;
>
> case 130:
> -#line 1274 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1274 "/llvm/lib/AsmParser/llvmAsmParser.y"
> {
> (yyval.UIntVal) = (yyvsp[(3) - (3)].UInt64Val);
> if ((yyval.UIntVal) != 0 && !isPowerOf2_32((yyval.UIntVal)))
> @@ -3949,7 +3978,7 @@
> break;
>
> case 131:
> -#line 1283 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1283 "/llvm/lib/AsmParser/llvmAsmParser.y"
> {
> for (unsigned i = 0, e = (yyvsp[(2) - (2)].StrVal)->length(); i !=
> e; ++i)
> if ((*(yyvsp[(2) - (2)].StrVal))[i] == '"' || (*(yyvsp[(2) -
> (2)].StrVal))[i] == '\\')
> @@ -3960,27 +3989,27 @@
> break;
>
> case 132:
> -#line 1291 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1291 "/llvm/lib/AsmParser/llvmAsmParser.y"
> { (yyval.StrVal) = 0; ;}
> break;
>
> case 133:
> -#line 1292 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1292 "/llvm/lib/AsmParser/llvmAsmParser.y"
> { (yyval.StrVal) = (yyvsp[(1) - (1)].StrVal); ;}
> break;
>
> case 134:
> -#line 1297 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1297 "/llvm/lib/AsmParser/llvmAsmParser.y"
> {;}
> break;
>
> case 135:
> -#line 1298 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1298 "/llvm/lib/AsmParser/llvmAsmParser.y"
> {;}
> break;
>
> case 136:
> -#line 1299 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1299 "/llvm/lib/AsmParser/llvmAsmParser.y"
> {
> CurGV->setSection(*(yyvsp[(1) - (1)].StrVal));
> delete (yyvsp[(1) - (1)].StrVal);
> @@ -3989,7 +4018,7 @@
> break;
>
> case 137:
> -#line 1304 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1304 "/llvm/lib/AsmParser/llvmAsmParser.y"
> {
> if ((yyvsp[(2) - (2)].UInt64Val) != 0 && !
> isPowerOf2_32((yyvsp[(2) - (2)].UInt64Val)))
> GEN_ERROR("Alignment must be a power of two");
> @@ -3999,7 +4028,7 @@
> break;
>
> case 145:
> -#line 1320 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1320 "/llvm/lib/AsmParser/llvmAsmParser.y"
> {
> (yyval.TypeVal) = new PATypeHolder(OpaqueType::get());
> CHECK_FOR_ERROR
> @@ -4007,7 +4036,7 @@
> break;
>
> case 146:
> -#line 1324 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1324 "/llvm/lib/AsmParser/llvmAsmParser.y"
> {
> (yyval.TypeVal) = new PATypeHolder((yyvsp[(1) - (1)].PrimType));
> CHECK_FOR_ERROR
> @@ -4015,7 +4044,7 @@
> break;
>
> case 147:
> -#line 1328 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1328 "/llvm/lib/AsmParser/llvmAsmParser.y"
> { // Pointer type?
> if (*(yyvsp[(1) - (3)].TypeVal) == Type::LabelTy)
> GEN_ERROR("Cannot form a pointer to a basic block");
> @@ -4026,7 +4055,7 @@
> break;
>
> case 148:
> -#line 1335 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1335 "/llvm/lib/AsmParser/llvmAsmParser.y"
> { // Named types are also simple types...
> const Type* tmp = getTypeVal((yyvsp[(1) - (1)].ValIDVal));
> CHECK_FOR_ERROR
> @@ -4035,7 +4064,7 @@
> break;
>
> case 149:
> -#line 1340 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1340 "/llvm/lib/AsmParser/llvmAsmParser.y"
> { // Type UpReference
> if ((yyvsp[(2) - (2)].UInt64Val) > (uint64_t)~0U)
> GEN_ERROR("Value out of range");
> OpaqueType *OT = OpaqueType::get(); // Use temporary
> placeholder
> @@ -4047,7 +4076,7 @@
> break;
>
> case 150:
> -#line 1348 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1348 "/llvm/lib/AsmParser/llvmAsmParser.y"
> {
> // Allow but ignore attributes on function types; this permits
> auto-upgrade.
> // FIXME: remove in LLVM 3.0.
> @@ -4080,7 +4109,7 @@
> break;
>
> case 151:
> -#line 1377 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1377 "/llvm/lib/AsmParser/llvmAsmParser.y"
> {
> // Allow but ignore attributes on function types; this permits
> auto-upgrade.
> // FIXME: remove in LLVM 3.0.
> @@ -4108,7 +4137,7 @@
> break;
>
> case 152:
> -#line 1402 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1402 "/llvm/lib/AsmParser/llvmAsmParser.y"
> { // Sized array type?
> (yyval.TypeVal) = new
> PATypeHolder(HandleUpRefs(ArrayType::get(*(yyvsp[(4) -
> (5)].TypeVal), (unsigned)(yyvsp[(2) - (5)].UInt64Val))));
> delete (yyvsp[(4) - (5)].TypeVal);
> @@ -4117,7 +4146,7 @@
> break;
>
> case 153:
> -#line 1407 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1407 "/llvm/lib/AsmParser/llvmAsmParser.y"
> { // Vector type?
> const llvm::Type* ElemTy = (yyvsp[(4) - (5)].TypeVal)->get();
> if ((unsigned)(yyvsp[(2) - (5)].UInt64Val) != (yyvsp[(2) -
> (5)].UInt64Val))
> @@ -4131,7 +4160,7 @@
> break;
>
> case 154:
> -#line 1417 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1417 "/llvm/lib/AsmParser/llvmAsmParser.y"
> { // Structure type?
> std::vector<const Type*> Elements;
> for (std::list<llvm::PATypeHolder>::iterator I = (yyvsp[(2) -
> (3)].TypeList)->begin(),
> @@ -4145,7 +4174,7 @@
> break;
>
> case 155:
> -#line 1427 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1427 "/llvm/lib/AsmParser/llvmAsmParser.y"
> { // Empty structure type?
> (yyval.TypeVal) = new
> PATypeHolder(StructType::get(std::vector<const Type*>()));
> CHECK_FOR_ERROR
> @@ -4153,7 +4182,7 @@
> break;
>
> case 156:
> -#line 1431 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1431 "/llvm/lib/AsmParser/llvmAsmParser.y"
> {
> std::vector<const Type*> Elements;
> for (std::list<llvm::PATypeHolder>::iterator I = (yyvsp[(3) -
> (5)].TypeList)->begin(),
> @@ -4167,7 +4196,7 @@
> break;
>
> case 157:
> -#line 1441 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1441 "/llvm/lib/AsmParser/llvmAsmParser.y"
> { // Empty structure type?
> (yyval.TypeVal) = new
> PATypeHolder(StructType::get(std::vector<const Type*>(), true));
> CHECK_FOR_ERROR
> @@ -4175,7 +4204,7 @@
> break;
>
> case 158:
> -#line 1448 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1448 "/llvm/lib/AsmParser/llvmAsmParser.y"
> {
> // Allow but ignore attributes on function types; this permits
> auto-upgrade.
> // FIXME: remove in LLVM 3.0.
> @@ -4185,7 +4214,7 @@
> break;
>
> case 159:
> -#line 1457 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1457 "/llvm/lib/AsmParser/llvmAsmParser.y"
> {
> if (!UpRefs.empty())
> GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[(1) -
> (1)].TypeVal))->getDescription());
> @@ -4196,14 +4225,14 @@
> break;
>
> case 160:
> -#line 1464 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1464 "/llvm/lib/AsmParser/llvmAsmParser.y"
> {
> (yyval.TypeVal) = new PATypeHolder(Type::VoidTy);
> ;}
> break;
>
> case 161:
> -#line 1469 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1469 "/llvm/lib/AsmParser/llvmAsmParser.y"
> {
> (yyval.TypeWithAttrsList) = new TypeWithAttrsList();
> (yyval.TypeWithAttrsList)->push_back((yyvsp[(1) -
> (1)].TypeWithAttrs));
> @@ -4212,7 +4241,7 @@
> break;
>
> case 162:
> -#line 1474 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1474 "/llvm/lib/AsmParser/llvmAsmParser.y"
> {
> ((yyval.TypeWithAttrsList)=(yyvsp[(1) - (3)].TypeWithAttrsList))-
> >push_back((yyvsp[(3) - (3)].TypeWithAttrs));
> CHECK_FOR_ERROR
> @@ -4220,7 +4249,7 @@
> break;
>
> case 164:
> -#line 1482 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1482 "/llvm/lib/AsmParser/llvmAsmParser.y"
> {
> (yyval.TypeWithAttrsList)=(yyvsp[(1) - (3)].TypeWithAttrsList);
> TypeWithAttrs TWA; TWA.Attrs = ParamAttr::None;
> @@ -4231,7 +4260,7 @@
> break;
>
> case 165:
> -#line 1489 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1489 "/llvm/lib/AsmParser/llvmAsmParser.y"
> {
> (yyval.TypeWithAttrsList) = new TypeWithAttrsList;
> TypeWithAttrs TWA; TWA.Attrs = ParamAttr::None;
> @@ -4242,7 +4271,7 @@
> break;
>
> case 166:
> -#line 1496 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1496 "/llvm/lib/AsmParser/llvmAsmParser.y"
> {
> (yyval.TypeWithAttrsList) = new TypeWithAttrsList();
> CHECK_FOR_ERROR
> @@ -4250,7 +4279,7 @@
> break;
>
> case 167:
> -#line 1504 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1504 "/llvm/lib/AsmParser/llvmAsmParser.y"
> {
> (yyval.TypeList) = new std::list<PATypeHolder>();
> (yyval.TypeList)->push_back(*(yyvsp[(1) - (1)].TypeVal));
> @@ -4260,7 +4289,7 @@
> break;
>
> case 168:
> -#line 1510 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1510 "/llvm/lib/AsmParser/llvmAsmParser.y"
> {
> ((yyval.TypeList)=(yyvsp[(1) - (3)].TypeList))-
> >push_back(*(yyvsp[(3) - (3)].TypeVal));
> delete (yyvsp[(3) - (3)].TypeVal);
> @@ -4269,7 +4298,7 @@
> break;
>
> case 169:
> -#line 1522 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1522 "/llvm/lib/AsmParser/llvmAsmParser.y"
> { // Nonempty unsized arr
> if (!UpRefs.empty())
> GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[(1) -
> (4)].TypeVal))->getDescription());
> @@ -4301,7 +4330,7 @@
> break;
>
> case 170:
> -#line 1550 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1550 "/llvm/lib/AsmParser/llvmAsmParser.y"
> {
> if (!UpRefs.empty())
> GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[(1) -
> (3)].TypeVal))->getDescription());
> @@ -4321,7 +4350,7 @@
> break;
>
> case 171:
> -#line 1566 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1566 "/llvm/lib/AsmParser/llvmAsmParser.y"
> {
> if (!UpRefs.empty())
> GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[(1) -
> (3)].TypeVal))->getDescription());
> @@ -4352,7 +4381,7 @@
> break;
>
> case 172:
> -#line 1593 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1593 "/llvm/lib/AsmParser/llvmAsmParser.y"
> { // Nonempty unsized arr
> if (!UpRefs.empty())
> GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[(1) -
> (4)].TypeVal))->getDescription());
> @@ -4384,7 +4413,7 @@
> break;
>
> case 173:
> -#line 1621 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1621 "/llvm/lib/AsmParser/llvmAsmParser.y"
> {
> const StructType *STy = dyn_cast<StructType>((yyvsp[(1) -
> (4)].TypeVal)->get());
> if (STy == 0)
> @@ -4414,7 +4443,7 @@
> break;
>
> case 174:
> -#line 1647 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1647 "/llvm/lib/AsmParser/llvmAsmParser.y"
> {
> if (!UpRefs.empty())
> GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[(1) -
> (3)].TypeVal))->getDescription());
> @@ -4438,7 +4467,7 @@
> break;
>
> case 175:
> -#line 1667 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1667 "/llvm/lib/AsmParser/llvmAsmParser.y"
> {
> const StructType *STy = dyn_cast<StructType>((yyvsp[(1) -
> (6)].TypeVal)->get());
> if (STy == 0)
> @@ -4468,7 +4497,7 @@
> break;
>
> case 176:
> -#line 1693 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1693 "/llvm/lib/AsmParser/llvmAsmParser.y"
> {
> if (!UpRefs.empty())
> GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[(1) -
> (5)].TypeVal))->getDescription());
> @@ -4492,7 +4521,7 @@
> break;
>
> case 177:
> -#line 1713 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1713 "/llvm/lib/AsmParser/llvmAsmParser.y"
> {
> if (!UpRefs.empty())
> GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[(1) -
> (2)].TypeVal))->getDescription());
> @@ -4508,7 +4537,7 @@
> break;
>
> case 178:
> -#line 1725 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1725 "/llvm/lib/AsmParser/llvmAsmParser.y"
> {
> if (!UpRefs.empty())
> GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[(1) -
> (2)].TypeVal))->getDescription());
> @@ -4519,7 +4548,7 @@
> break;
>
> case 179:
> -#line 1732 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1732 "/llvm/lib/AsmParser/llvmAsmParser.y"
> {
> if (!UpRefs.empty())
> GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[(1) -
> (2)].TypeVal))->getDescription());
> @@ -4589,7 +4618,7 @@
> break;
>
> case 180:
> -#line 1798 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1798 "/llvm/lib/AsmParser/llvmAsmParser.y"
> {
> if (!UpRefs.empty())
> GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[(1) -
> (2)].TypeVal))->getDescription());
> @@ -4603,7 +4632,7 @@
> break;
>
> case 181:
> -#line 1808 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1808 "/llvm/lib/AsmParser/llvmAsmParser.y"
> {
> if (!UpRefs.empty())
> GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[(1) -
> (2)].TypeVal))->getDescription());
> @@ -4617,7 +4646,7 @@
> break;
>
> case 182:
> -#line 1818 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1818 "/llvm/lib/AsmParser/llvmAsmParser.y"
> { // integral constants
> if (!ConstantInt::isValueValidForType((yyvsp[(1) -
> (2)].PrimType), (yyvsp[(2) - (2)].SInt64Val)))
> GEN_ERROR("Constant value doesn't fit in type");
> @@ -4627,7 +4656,7 @@
> break;
>
> case 183:
> -#line 1824 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1824 "/llvm/lib/AsmParser/llvmAsmParser.y"
> { // arbitrary precision integer constants
> uint32_t BitWidth = cast<IntegerType>((yyvsp[(1) -
> (2)].PrimType))->getBitWidth();
> if ((yyvsp[(2) - (2)].APIntVal)->getBitWidth() > BitWidth) {
> @@ -4641,7 +4670,7 @@
> break;
>
> case 184:
> -#line 1834 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1834 "/llvm/lib/AsmParser/llvmAsmParser.y"
> { // integral constants
> if (!ConstantInt::isValueValidForType((yyvsp[(1) -
> (2)].PrimType), (yyvsp[(2) - (2)].UInt64Val)))
> GEN_ERROR("Constant value doesn't fit in type");
> @@ -4651,7 +4680,7 @@
> break;
>
> case 185:
> -#line 1840 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1840 "/llvm/lib/AsmParser/llvmAsmParser.y"
> { // arbitrary precision integer constants
> uint32_t BitWidth = cast<IntegerType>((yyvsp[(1) -
> (2)].PrimType))->getBitWidth();
> if ((yyvsp[(2) - (2)].APIntVal)->getBitWidth() > BitWidth) {
> @@ -4665,7 +4694,7 @@
> break;
>
> case 186:
> -#line 1850 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1850 "/llvm/lib/AsmParser/llvmAsmParser.y"
> { // Boolean constants
> assert(cast<IntegerType>((yyvsp[(1) - (2)].PrimType))-
> >getBitWidth() == 1 && "Not Bool?");
> (yyval.ConstVal) = ConstantInt::getTrue();
> @@ -4674,7 +4703,7 @@
> break;
>
> case 187:
> -#line 1855 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1855 "/llvm/lib/AsmParser/llvmAsmParser.y"
> { // Boolean constants
> assert(cast<IntegerType>((yyvsp[(1) - (2)].PrimType))-
> >getBitWidth() == 1 && "Not Bool?");
> (yyval.ConstVal) = ConstantInt::getFalse();
> @@ -4683,7 +4712,7 @@
> break;
>
> case 188:
> -#line 1860 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1860 "/llvm/lib/AsmParser/llvmAsmParser.y"
> { // Floating point constants
> if (!ConstantFP::isValueValidForType((yyvsp[(1) -
> (2)].PrimType), *(yyvsp[(2) - (2)].FPVal)))
> GEN_ERROR("Floating point constant invalid for type");
> @@ -4698,7 +4727,7 @@
> break;
>
> case 189:
> -#line 1873 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1873 "/llvm/lib/AsmParser/llvmAsmParser.y"
> {
> if (!UpRefs.empty())
> GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[(5) -
> (6)].TypeVal))->getDescription());
> @@ -4714,7 +4743,7 @@
> break;
>
> case 190:
> -#line 1885 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1885 "/llvm/lib/AsmParser/llvmAsmParser.y"
> {
> if (!isa<PointerType>((yyvsp[(3) - (5)].ConstVal)->getType()))
> GEN_ERROR("GetElementPtr requires a pointer operand");
> @@ -4740,7 +4769,7 @@
> break;
>
> case 191:
> -#line 1907 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1907 "/llvm/lib/AsmParser/llvmAsmParser.y"
> {
> if ((yyvsp[(3) - (8)].ConstVal)->getType() != Type::Int1Ty)
> GEN_ERROR("Select condition must be of boolean type");
> @@ -4752,7 +4781,7 @@
> break;
>
> case 192:
> -#line 1915 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1915 "/llvm/lib/AsmParser/llvmAsmParser.y"
> {
> if ((yyvsp[(3) - (6)].ConstVal)->getType() != (yyvsp[(5) -
> (6)].ConstVal)->getType())
> GEN_ERROR("Binary operator types must match");
> @@ -4762,7 +4791,7 @@
> break;
>
> case 193:
> -#line 1921 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1921 "/llvm/lib/AsmParser/llvmAsmParser.y"
> {
> if ((yyvsp[(3) - (6)].ConstVal)->getType() != (yyvsp[(5) -
> (6)].ConstVal)->getType())
> GEN_ERROR("Logical operator types must match");
> @@ -4777,7 +4806,7 @@
> break;
>
> case 194:
> -#line 1932 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1932 "/llvm/lib/AsmParser/llvmAsmParser.y"
> {
> if ((yyvsp[(4) - (7)].ConstVal)->getType() != (yyvsp[(6) -
> (7)].ConstVal)->getType())
> GEN_ERROR("icmp operand types must match");
> @@ -4786,7 +4815,7 @@
> break;
>
> case 195:
> -#line 1937 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1937 "/llvm/lib/AsmParser/llvmAsmParser.y"
> {
> if ((yyvsp[(4) - (7)].ConstVal)->getType() != (yyvsp[(6) -
> (7)].ConstVal)->getType())
> GEN_ERROR("fcmp operand types must match");
> @@ -4795,7 +4824,25 @@
> break;
>
> case 196:
> -#line 1942 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1942 "/llvm/lib/AsmParser/llvmAsmParser.y"
> + {
> + if ((yyvsp[(4) - (7)].ConstVal)->getType() != (yyvsp[(6) -
> (7)].ConstVal)->getType())
> + GEN_ERROR("vicmp operand types must match");
> + (yyval.ConstVal) = ConstantExpr::getVICmp((yyvsp[(2) -
> (7)].IPredicate), (yyvsp[(4) - (7)].ConstVal), (yyvsp[(6) -
> (7)].ConstVal));
> + ;}
> + break;
> +
> + case 197:
> +#line 1947 "/llvm/lib/AsmParser/llvmAsmParser.y"
> + {
> + if ((yyvsp[(4) - (7)].ConstVal)->getType() != (yyvsp[(6) -
> (7)].ConstVal)->getType())
> + GEN_ERROR("vfcmp operand types must match");
> + (yyval.ConstVal) = ConstantExpr::getVFCmp((yyvsp[(2) -
> (7)].FPredicate), (yyvsp[(4) - (7)].ConstVal), (yyvsp[(6) -
> (7)].ConstVal));
> + ;}
> + break;
> +
> + case 198:
> +#line 1952 "/llvm/lib/AsmParser/llvmAsmParser.y"
> {
> if (!ExtractElementInst::isValidOperands((yyvsp[(3) -
> (6)].ConstVal), (yyvsp[(5) - (6)].ConstVal)))
> GEN_ERROR("Invalid extractelement operands");
> @@ -4804,8 +4851,8 @@
> ;}
> break;
>
> - case 197:
> -#line 1948 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
> + case 199:
> +#line 1958 "/llvm/lib/AsmParser/llvmAsmParser.y"
> {
> if (!InsertElementInst::isValidOperands((yyvsp[(3) -
> (8)].ConstVal), (yyvsp[(5) - (8)].ConstVal), (yyvsp[(7) -
> (8)].ConstVal)))
> GEN_ERROR("Invalid insertelement operands");
> @@ -4814,8 +4861,8 @@
> ;}
> break;
>
> - case 198:
> -#line 1954 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
> + case 200:
> +#line 1964 "/llvm/lib/AsmParser/llvmAsmParser.y"
> {
> if (!ShuffleVectorInst::isValidOperands((yyvsp[(3) -
> (8)].ConstVal), (yyvsp[(5) - (8)].ConstVal), (yyvsp[(7) -
> (8)].ConstVal)))
> GEN_ERROR("Invalid shufflevector operands");
> @@ -4824,16 +4871,16 @@
> ;}
> break;
>
> - case 199:
> -#line 1963 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
> + case 201:
> +#line 1973 "/llvm/lib/AsmParser/llvmAsmParser.y"
> {
> ((yyval.ConstVector) = (yyvsp[(1) - (3)].ConstVector))-
> >push_back((yyvsp[(3) - (3)].ConstVal));
> CHECK_FOR_ERROR
> ;}
> break;
>
> - case 200:
> -#line 1967 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
> + case 202:
> +#line 1977 "/llvm/lib/AsmParser/llvmAsmParser.y"
> {
> (yyval.ConstVector) = new std::vector<Constant*>();
> (yyval.ConstVector)->push_back((yyvsp[(1) - (1)].ConstVal));
> @@ -4841,28 +4888,28 @@
> ;}
> break;
>
> - case 201:
> -#line 1975 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
> + case 203:
> +#line 1985 "/llvm/lib/AsmParser/llvmAsmParser.y"
> { (yyval.BoolVal) = false; ;}
> break;
>
> - case 202:
> -#line 1975 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
> + case 204:
> +#line 1985 "/llvm/lib/AsmParser/llvmAsmParser.y"
> { (yyval.BoolVal) = true; ;}
> break;
>
> - case 203:
> -#line 1978 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
> + case 205:
> +#line 1988 "/llvm/lib/AsmParser/llvmAsmParser.y"
> { (yyval.BoolVal) = true; ;}
> break;
>
> - case 204:
> -#line 1978 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
> + case 206:
> +#line 1988 "/llvm/lib/AsmParser/llvmAsmParser.y"
> { (yyval.BoolVal) = false; ;}
> break;
>
> - case 205:
> -#line 1981 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
> + case 207:
> +#line 1991 "/llvm/lib/AsmParser/llvmAsmParser.y"
> {
> const Type* VTy = (yyvsp[(1) - (2)].TypeVal)->get();
> Value *V = getVal(VTy, (yyvsp[(2) - (2)].ValIDVal));
> @@ -4877,8 +4924,8 @@
> ;}
> break;
>
> - case 206:
> -#line 1993 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
> + case 208:
> +#line 2003 "/llvm/lib/AsmParser/llvmAsmParser.y"
> {
> Constant *Val = (yyvsp[(3) - (6)].ConstVal);
> const Type *DestTy = (yyvsp[(5) - (6)].TypeVal)->get();
> @@ -4893,8 +4940,8 @@
> ;}
> break;
>
> - case 207:
> -#line 2014 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
> + case 209:
> +#line 2024 "/llvm/lib/AsmParser/llvmAsmParser.y"
> {
> (yyval.ModuleVal) = ParserResult = CurModule.CurrentModule;
> CurModule.ModuleDone();
> @@ -4902,8 +4949,8 @@
> ;}
> break;
>
> - case 208:
> -#line 2019 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
> + case 210:
> +#line 2029 "/llvm/lib/AsmParser/llvmAsmParser.y"
> {
> (yyval.ModuleVal) = ParserResult = CurModule.CurrentModule;
> CurModule.ModuleDone();
> @@ -4911,40 +4958,40 @@
> ;}
> break;
>
> - case 211:
> -#line 2032 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
> + case 213:
> +#line 2042 "/llvm/lib/AsmParser/llvmAsmParser.y"
> { CurFun.isDeclare = false; ;}
> break;
>
> - case 212:
> -#line 2032 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
> + case 214:
> +#line 2042 "/llvm/lib/AsmParser/llvmAsmParser.y"
> {
> CurFun.FunctionDone();
> CHECK_FOR_ERROR
> ;}
> break;
>
> - case 213:
> -#line 2036 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
> + case 215:
> +#line 2046 "/llvm/lib/AsmParser/llvmAsmParser.y"
> { CurFun.isDeclare = true; ;}
> break;
>
> - case 214:
> -#line 2036 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
> + case 216:
> +#line 2046 "/llvm/lib/AsmParser/llvmAsmParser.y"
> {
> CHECK_FOR_ERROR
> ;}
> break;
>
> - case 215:
> -#line 2039 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
> + case 217:
> +#line 2049 "/llvm/lib/AsmParser/llvmAsmParser.y"
> {
> CHECK_FOR_ERROR
> ;}
> break;
>
> - case 216:
> -#line 2042 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
> + case 218:
> +#line 2052 "/llvm/lib/AsmParser/llvmAsmParser.y"
> {
> if (!UpRefs.empty())
> GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[(3) -
> (3)].TypeVal))->getDescription());
> @@ -4971,8 +5018,8 @@
> ;}
> break;
>
> - case 217:
> -#line 2066 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
> + case 219:
> +#line 2076 "/llvm/lib/AsmParser/llvmAsmParser.y"
> {
> ResolveTypeTo((yyvsp[(1) - (3)].StrVal), (yyvsp[(3) -
> (3)].PrimType));
>
> @@ -4986,8 +5033,8 @@
> ;}
> break;
>
> - case 218:
> -#line 2078 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
> + case 220:
> +#line 2088 "/llvm/lib/AsmParser/llvmAsmParser.y"
> {
> /* "Externally Visible" Linkage */
> if ((yyvsp[(5) - (6)].ConstVal) == 0)
> @@ -4998,15 +5045,15 @@
> ;}
> break;
>
> - case 219:
> -#line 2085 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
> + case 221:
> +#line 2095 "/llvm/lib/AsmParser/llvmAsmParser.y"
> {
> CurGV = 0;
> ;}
> break;
>
> - case 220:
> -#line 2089 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
> + case 222:
> +#line 2099 "/llvm/lib/AsmParser/llvmAsmParser.y"
> {
> if ((yyvsp[(6) - (7)].ConstVal) == 0)
> GEN_ERROR("Global value initializer is not a constant");
> @@ -5015,15 +5062,15 @@
> ;}
> break;
>
> - case 221:
> -#line 2094 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
> + case 223:
> +#line 2104 "/llvm/lib/AsmParser/llvmAsmParser.y"
> {
> CurGV = 0;
> ;}
> break;
>
> - case 222:
> -#line 2098 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
> + case 224:
> +#line 2108 "/llvm/lib/AsmParser/llvmAsmParser.y"
> {
> if (!UpRefs.empty())
> GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[(6) -
> (7)].TypeVal))->getDescription());
> @@ -5033,16 +5080,16 @@
> ;}
> break;
>
> - case 223:
> -#line 2104 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
> + case 225:
> +#line 2114 "/llvm/lib/AsmParser/llvmAsmParser.y"
> {
> CurGV = 0;
> CHECK_FOR_ERROR
> ;}
> break;
>
> - case 224:
> -#line 2108 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
> + case 226:
> +#line 2118 "/llvm/lib/AsmParser/llvmAsmParser.y"
> {
> std::string Name;
> if ((yyvsp[(1) - (5)].StrVal)) {
> @@ -5085,22 +5132,22 @@
> ;}
> break;
>
> - case 225:
> -#line 2148 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
> + case 227:
> +#line 2158 "/llvm/lib/AsmParser/llvmAsmParser.y"
> {
> CHECK_FOR_ERROR
> ;}
> break;
>
> - case 226:
> -#line 2151 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
> + case 228:
> +#line 2161 "/llvm/lib/AsmParser/llvmAsmParser.y"
> {
> CHECK_FOR_ERROR
> ;}
> break;
>
> - case 227:
> -#line 2157 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
> + case 229:
> +#line 2167 "/llvm/lib/AsmParser/llvmAsmParser.y"
> {
> const std::string &AsmSoFar = CurModule.CurrentModule-
> >getModuleInlineAsm();
> if (AsmSoFar.empty())
> @@ -5112,24 +5159,24 @@
> ;}
> break;
>
> - case 228:
> -#line 2167 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
> + case 230:
> +#line 2177 "/llvm/lib/AsmParser/llvmAsmParser.y"
> {
> CurModule.CurrentModule->setTargetTriple(*(yyvsp[(3) -
> (3)].StrVal));
> delete (yyvsp[(3) - (3)].StrVal);
> ;}
> break;
>
> - case 229:
> -#line 2171 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
> + case 231:
> +#line 2181 "/llvm/lib/AsmParser/llvmAsmParser.y"
> {
> CurModule.CurrentModule->setDataLayout(*(yyvsp[(3) -
> (3)].StrVal));
> delete (yyvsp[(3) - (3)].StrVal);
> ;}
> break;
>
> - case 231:
> -#line 2178 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
> + case 233:
> +#line 2188 "/llvm/lib/AsmParser/llvmAsmParser.y"
> {
> CurModule.CurrentModule->addLibrary(*(yyvsp[(3) -
> (3)].StrVal));
> delete (yyvsp[(3) - (3)].StrVal);
> @@ -5137,8 +5184,8 @@
> ;}
> break;
>
> - case 232:
> -#line 2183 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
> + case 234:
> +#line 2193 "/llvm/lib/AsmParser/llvmAsmParser.y"
> {
> CurModule.CurrentModule->addLibrary(*(yyvsp[(1) -
> (1)].StrVal));
> delete (yyvsp[(1) - (1)].StrVal);
> @@ -5146,15 +5193,15 @@
> ;}
> break;
>
> - case 233:
> -#line 2188 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
> + case 235:
> +#line 2198 "/llvm/lib/AsmParser/llvmAsmParser.y"
> {
> CHECK_FOR_ERROR
> ;}
> break;
>
> - case 234:
> -#line 2197 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
> + case 236:
> +#line 2207 "/llvm/lib/AsmParser/llvmAsmParser.y"
> {
> if (!UpRefs.empty())
> GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[(3) -
> (5)].TypeVal))->getDescription());
> @@ -5167,8 +5214,8 @@
> ;}
> break;
>
> - case 235:
> -#line 2207 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
> + case 237:
> +#line 2217 "/llvm/lib/AsmParser/llvmAsmParser.y"
> {
> if (!UpRefs.empty())
> GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[(1) -
> (3)].TypeVal))->getDescription());
> @@ -5181,16 +5228,16 @@
> ;}
> break;
>
> - case 236:
> -#line 2218 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
> + case 238:
> +#line 2228 "/llvm/lib/AsmParser/llvmAsmParser.y"
> {
> (yyval.ArgList) = (yyvsp[(1) - (1)].ArgList);
> CHECK_FOR_ERROR
> ;}
> break;
>
> - case 237:
> -#line 2222 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
> + case 239:
> +#line 2232 "/llvm/lib/AsmParser/llvmAsmParser.y"
> {
> (yyval.ArgList) = (yyvsp[(1) - (3)].ArgList);
> struct ArgListEntry E;
> @@ -5202,8 +5249,8 @@
> ;}
> break;
>
> - case 238:
> -#line 2231 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
> + case 240:
> +#line 2241 "/llvm/lib/AsmParser/llvmAsmParser.y"
> {
> (yyval.ArgList) = new ArgListType;
> struct ArgListEntry E;
> @@ -5215,16 +5262,16 @@
> ;}
> break;
>
> - case 239:
> -#line 2240 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
> + case 241:
> +#line 2250 "/llvm/lib/AsmParser/llvmAsmParser.y"
> {
> (yyval.ArgList) = 0;
> CHECK_FOR_ERROR
> ;}
> break;
>
> - case 240:
> -#line 2246 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
> + case 242:
> +#line 2256 "/llvm/lib/AsmParser/llvmAsmParser.y"
> {
> std::string FunctionName(*(yyvsp[(3) - (10)].StrVal));
> delete (yyvsp[(3) - (10)].StrVal); // Free strdup'd memory!
> @@ -5354,8 +5401,8 @@
> ;}
> break;
>
> - case 243:
> -#line 2376 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
> + case 245:
> +#line 2386 "/llvm/lib/AsmParser/llvmAsmParser.y"
> {
> (yyval.FunctionVal) = CurFun.CurrentFunction;
>
> @@ -5366,16 +5413,16 @@
> ;}
> break;
>
> - case 246:
> -#line 2387 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
> + case 248:
> +#line 2397 "/llvm/lib/AsmParser/llvmAsmParser.y"
> {
> (yyval.FunctionVal) = (yyvsp[(1) - (2)].FunctionVal);
> CHECK_FOR_ERROR
> ;}
> break;
>
> - case 247:
> -#line 2392 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
> + case 249:
> +#line 2402 "/llvm/lib/AsmParser/llvmAsmParser.y"
> {
> CurFun.CurrentFunction->setLinkage((yyvsp[(1) - (3)].Linkage));
> CurFun.CurrentFunction->setVisibility((yyvsp[(2) -
> (3)].Visibility));
> @@ -5385,88 +5432,88 @@
> ;}
> break;
>
> - case 248:
> -#line 2404 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
> + case 250:
> +#line 2414 "/llvm/lib/AsmParser/llvmAsmParser.y"
> {
> (yyval.BoolVal) = false;
> CHECK_FOR_ERROR
> ;}
> break;
>
> - case 249:
> -#line 2408 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
> + case 251:
> +#line 2418 "/llvm/lib/AsmParser/llvmAsmParser.y"
> {
> (yyval.BoolVal) = true;
> CHECK_FOR_ERROR
> ;}
> break;
>
> - case 250:
> -#line 2413 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
> + case 252:
> +#line 2423 "/llvm/lib/AsmParser/llvmAsmParser.y"
> { // A reference to a direct constant
> (yyval.ValIDVal) = ValID::create((yyvsp[(1) - (1)].SInt64Val));
> CHECK_FOR_ERROR
> ;}
> break;
>
> - case 251:
> -#line 2417 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
> + case 253:
> +#line 2427 "/llvm/lib/AsmParser/llvmAsmParser.y"
> {
> (yyval.ValIDVal) = ValID::create((yyvsp[(1) - (1)].UInt64Val));
> CHECK_FOR_ERROR
> ;}
> break;
>
> - case 252:
> -#line 2421 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
> + case 254:
> +#line 2431 "/llvm/lib/AsmParser/llvmAsmParser.y"
> { // Perhaps it's an FP constant?
> (yyval.ValIDVal) = ValID::create((yyvsp[(1) - (1)].FPVal));
> CHECK_FOR_ERROR
> ;}
> break;
>
> - case 253:
> -#line 2425 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
> + case 255:
> +#line 2435 "/llvm/lib/AsmParser/llvmAsmParser.y"
> {
> (yyval.ValIDVal) = ValID::create(ConstantInt::getTrue());
> CHECK_FOR_ERROR
> ;}
> break;
>
> - case 254:
> -#line 2429 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
> + case 256:
> +#line 2439 "/llvm/lib/AsmParser/llvmAsmParser.y"
> {
> (yyval.ValIDVal) = ValID::create(ConstantInt::getFalse());
> CHECK_FOR_ERROR
> ;}
> break;
>
> - case 255:
> -#line 2433 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
> + case 257:
> +#line 2443 "/llvm/lib/AsmParser/llvmAsmParser.y"
> {
> (yyval.ValIDVal) = ValID::createNull();
> CHECK_FOR_ERROR
> ;}
> break;
>
> - case 256:
> -#line 2437 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
> + case 258:
> +#line 2447 "/llvm/lib/AsmParser/llvmAsmParser.y"
> {
> (yyval.ValIDVal) = ValID::createUndef();
> CHECK_FOR_ERROR
> ;}
> break;
>
> - case 257:
> -#line 2441 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
> + case 259:
> +#line 2451 "/llvm/lib/AsmParser/llvmAsmParser.y"
> { // A vector zero constant.
> (yyval.ValIDVal) = ValID::createZeroInit();
> CHECK_FOR_ERROR
> ;}
> break;
>
> - case 258:
> -#line 2445 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
> + case 260:
> +#line 2455 "/llvm/lib/AsmParser/llvmAsmParser.y"
> { // Nonempty unsized packed vector
> const Type *ETy = (*(yyvsp[(2) - (3)].ConstVector))[0]->getType();
> int NumElements = (yyvsp[(2) - (3)].ConstVector)->size();
> @@ -5494,16 +5541,16 @@
> ;}
> break;
>
> - case 259:
> -#line 2470 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
> + case 261:
> +#line 2480 "/llvm/lib/AsmParser/llvmAsmParser.y"
> {
> (yyval.ValIDVal) = ValID::create((yyvsp[(1) - (1)].ConstVal));
> CHECK_FOR_ERROR
> ;}
> break;
>
> - case 260:
> -#line 2474 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
> + case 262:
> +#line 2484 "/llvm/lib/AsmParser/llvmAsmParser.y"
> {
> (yyval.ValIDVal) = ValID::createInlineAsm(*(yyvsp[(3) -
> (5)].StrVal), *(yyvsp[(5) - (5)].StrVal), (yyvsp[(2) - (5)].BoolVal));
> delete (yyvsp[(3) - (5)].StrVal);
> @@ -5512,24 +5559,24 @@
> ;}
> break;
>
> - case 261:
> -#line 2484 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
> + case 263:
> +#line 2494 "/llvm/lib/AsmParser/llvmAsmParser.y"
> { // Is it an integer reference...?
> (yyval.ValIDVal) = ValID::createLocalID((yyvsp[(1) -
> (1)].UIntVal));
> CHECK_FOR_ERROR
> ;}
> break;
>
> - case 262:
> -#line 2488 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
> + case 264:
> +#line 2498 "/llvm/lib/AsmParser/llvmAsmParser.y"
> {
> (yyval.ValIDVal) = ValID::createGlobalID((yyvsp[(1) -
> (1)].UIntVal));
> CHECK_FOR_ERROR
> ;}
> break;
>
> - case 263:
> -#line 2492 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
> + case 265:
> +#line 2502 "/llvm/lib/AsmParser/llvmAsmParser.y"
> { // Is it a named reference...?
> (yyval.ValIDVal) = ValID::createLocalName(*(yyvsp[(1) -
> (1)].StrVal));
> delete (yyvsp[(1) - (1)].StrVal);
> @@ -5537,8 +5584,8 @@
> ;}
> break;
>
> - case 264:
> -#line 2497 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
> + case 266:
> +#line 2507 "/llvm/lib/AsmParser/llvmAsmParser.y"
> { // Is it a named reference...?
> (yyval.ValIDVal) = ValID::createGlobalName(*(yyvsp[(1) -
> (1)].StrVal));
> delete (yyvsp[(1) - (1)].StrVal);
> @@ -5546,8 +5593,8 @@
> ;}
> break;
>
> - case 267:
> -#line 2510 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
> + case 269:
> +#line 2520 "/llvm/lib/AsmParser/llvmAsmParser.y"
> {
> if (!UpRefs.empty())
> GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[(1) -
> (2)].TypeVal))->getDescription());
> @@ -5557,8 +5604,8 @@
> ;}
> break;
>
> - case 268:
> -#line 2519 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
> + case 270:
> +#line 2529 "/llvm/lib/AsmParser/llvmAsmParser.y"
> {
> (yyval.ValueList) = new std::vector<Value *>();
> (yyval.ValueList)->push_back((yyvsp[(1) - (1)].ValueVal));
> @@ -5566,32 +5613,32 @@
> ;}
> break;
>
> - case 269:
> -#line 2524 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
> + case 271:
> +#line 2534 "/llvm/lib/AsmParser/llvmAsmParser.y"
> {
> ((yyval.ValueList)=(yyvsp[(1) - (3)].ValueList))-
> >push_back((yyvsp[(3) - (3)].ValueVal));
> CHECK_FOR_ERROR
> ;}
> break;
>
> - case 270:
> -#line 2529 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
> + case 272:
> +#line 2539 "/llvm/lib/AsmParser/llvmAsmParser.y"
> {
> (yyval.FunctionVal) = (yyvsp[(1) - (2)].FunctionVal);
> CHECK_FOR_ERROR
> ;}
> break;
>
> - case 271:
> -#line 2533 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
> + case 273:
> +#line 2543 "/llvm/lib/AsmParser/llvmAsmParser.y"
> { // Do not allow functions with 0 basic blocks
> (yyval.FunctionVal) = (yyvsp[(1) - (2)].FunctionVal);
> CHECK_FOR_ERROR
> ;}
> break;
>
> - case 272:
> -#line 2542 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
> + case 274:
> +#line 2552 "/llvm/lib/AsmParser/llvmAsmParser.y"
> {
> setValueName((yyvsp[(3) - (3)].TermInstVal), (yyvsp[(2) -
> (3)].StrVal));
> CHECK_FOR_ERROR
> @@ -5602,8 +5649,8 @@
> ;}
> break;
>
> - case 273:
> -#line 2551 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
> + case 275:
> +#line 2561 "/llvm/lib/AsmParser/llvmAsmParser.y"
> {
> if (CastInst *CI1 = dyn_cast<CastInst>((yyvsp[(2) -
> (2)].InstVal)))
> if (CastInst *CI2 = dyn_cast<CastInst>(CI1->getOperand(0)))
> @@ -5615,16 +5662,16 @@
> ;}
> break;
>
> - case 274:
> -#line 2560 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
> + case 276:
> +#line 2570 "/llvm/lib/AsmParser/llvmAsmParser.y"
> { // Empty space between instruction lists
> (yyval.BasicBlockVal) =
> defineBBVal(ValID::createLocalID(CurFun.NextValNum));
> CHECK_FOR_ERROR
> ;}
> break;
>
> - case 275:
> -#line 2564 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
> + case 277:
> +#line 2574 "/llvm/lib/AsmParser/llvmAsmParser.y"
> { // Labelled (named) basic block
> (yyval.BasicBlockVal) =
> defineBBVal(ValID::createLocalName(*(yyvsp[(1) - (1)].StrVal)));
> delete (yyvsp[(1) - (1)].StrVal);
> @@ -5633,8 +5680,8 @@
> ;}
> break;
>
> - case 276:
> -#line 2572 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
> + case 278:
> +#line 2582 "/llvm/lib/AsmParser/llvmAsmParser.y"
> { // Return with a result...
> ValueList &VL = *(yyvsp[(2) - (2)].ValueList);
> assert(!VL.empty() && "Invalid ret operands!");
> @@ -5644,16 +5691,16 @@
> ;}
> break;
>
> - case 277:
> -#line 2579 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
> + case 279:
> +#line 2589 "/llvm/lib/AsmParser/llvmAsmParser.y"
> { // Return with no result...
> (yyval.TermInstVal) = ReturnInst::Create();
> CHECK_FOR_ERROR
> ;}
> break;
>
> - case 278:
> -#line 2583 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
> + case 280:
> +#line 2593 "/llvm/lib/AsmParser/llvmAsmParser.y"
> { // Unconditional Branch...
> BasicBlock* tmpBB = getBBVal((yyvsp[(3) - (3)].ValIDVal));
> CHECK_FOR_ERROR
> @@ -5661,8 +5708,8 @@
> ;}
> break;
>
> - case 279:
> -#line 2588 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
> + case 281:
> +#line 2598 "/llvm/lib/AsmParser/llvmAsmParser.y"
> {
> assert(cast<IntegerType>((yyvsp[(2) - (9)].PrimType))-
> >getBitWidth() == 1 && "Not Bool?");
> BasicBlock* tmpBBA = getBBVal((yyvsp[(6) - (9)].ValIDVal));
> @@ -5675,8 +5722,8 @@
> ;}
> break;
>
> - case 280:
> -#line 2598 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
> + case 282:
> +#line 2608 "/llvm/lib/AsmParser/llvmAsmParser.y"
> {
> Value* tmpVal = getVal((yyvsp[(2) - (9)].PrimType), (yyvsp[(3) -
> (9)].ValIDVal));
> CHECK_FOR_ERROR
> @@ -5698,8 +5745,8 @@
> ;}
> break;
>
> - case 281:
> -#line 2617 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
> + case 283:
> +#line 2627 "/llvm/lib/AsmParser/llvmAsmParser.y"
> {
> Value* tmpVal = getVal((yyvsp[(2) - (8)].PrimType), (yyvsp[(3) -
> (8)].ValIDVal));
> CHECK_FOR_ERROR
> @@ -5711,8 +5758,8 @@
> ;}
> break;
>
> - case 282:
> -#line 2627 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
> + case 284:
> +#line 2637 "/llvm/lib/AsmParser/llvmAsmParser.y"
> {
>
> // Handle the short syntax
> @@ -5799,24 +5846,24 @@
> ;}
> break;
>
> - case 283:
> -#line 2711 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
> + case 285:
> +#line 2721 "/llvm/lib/AsmParser/llvmAsmParser.y"
> {
> (yyval.TermInstVal) = new UnwindInst();
> CHECK_FOR_ERROR
> ;}
> break;
>
> - case 284:
> -#line 2715 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
> + case 286:
> +#line 2725 "/llvm/lib/AsmParser/llvmAsmParser.y"
> {
> (yyval.TermInstVal) = new UnreachableInst();
> CHECK_FOR_ERROR
> ;}
> break;
>
> - case 285:
> -#line 2722 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
> + case 287:
> +#line 2732 "/llvm/lib/AsmParser/llvmAsmParser.y"
> {
> (yyval.JumpTable) = (yyvsp[(1) - (6)].JumpTable);
> Constant *V = cast<Constant>(getExistingVal((yyvsp[(2) -
> (6)].PrimType), (yyvsp[(3) - (6)].ValIDVal)));
> @@ -5830,8 +5877,8 @@
> ;}
> break;
>
> - case 286:
> -#line 2733 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
> + case 288:
> +#line 2743 "/llvm/lib/AsmParser/llvmAsmParser.y"
> {
> (yyval.JumpTable) = new std::vector<std::pair<Constant*,
> BasicBlock*> >();
> Constant *V = cast<Constant>(getExistingVal((yyvsp[(1) -
> (5)].PrimType), (yyvsp[(2) - (5)].ValIDVal)));
> @@ -5846,8 +5893,8 @@
> ;}
> break;
>
> - case 287:
> -#line 2746 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
> + case 289:
> +#line 2756 "/llvm/lib/AsmParser/llvmAsmParser.y"
> {
> // Is this definition named?? if so, assign the name...
> setValueName((yyvsp[(2) - (2)].InstVal), (yyvsp[(1) -
> (2)].StrVal));
> @@ -5858,8 +5905,8 @@
> ;}
> break;
>
> - case 288:
> -#line 2756 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
> + case 290:
> +#line 2766 "/llvm/lib/AsmParser/llvmAsmParser.y"
> { // Used for PHI nodes
> if (!UpRefs.empty())
> GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[(1) -
> (6)].TypeVal))->getDescription());
> @@ -5873,8 +5920,8 @@
> ;}
> break;
>
> - case 289:
> -#line 2767 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
> + case 291:
> +#line 2777 "/llvm/lib/AsmParser/llvmAsmParser.y"
> {
> (yyval.PHIList) = (yyvsp[(1) - (7)].PHIList);
> Value* tmpVal = getVal((yyvsp[(1) - (7)].PHIList)->front().first-
> >getType(), (yyvsp[(4) - (7)].ValIDVal));
> @@ -5885,8 +5932,8 @@
> ;}
> break;
>
> - case 290:
> -#line 2777 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
> + case 292:
> +#line 2787 "/llvm/lib/AsmParser/llvmAsmParser.y"
> {
> // FIXME: Remove trailing OptParamAttrs in LLVM 3.0, it was a
> mistake in 2.0
> if (!UpRefs.empty())
> @@ -5900,8 +5947,8 @@
> ;}
> break;
>
> - case 291:
> -#line 2788 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
> + case 293:
> +#line 2798 "/llvm/lib/AsmParser/llvmAsmParser.y"
> {
> // FIXME: Remove trailing OptParamAttrs in LLVM 3.0, it was a
> mistake in 2.0
> // Labels are only valid in ASMs
> @@ -5912,8 +5959,8 @@
> ;}
> break;
>
> - case 292:
> -#line 2796 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
> + case 294:
> +#line 2806 "/llvm/lib/AsmParser/llvmAsmParser.y"
> {
> // FIXME: Remove trailing OptParamAttrs in LLVM 3.0, it was a
> mistake in 2.0
> if (!UpRefs.empty())
> @@ -5926,8 +5973,8 @@
> ;}
> break;
>
> - case 293:
> -#line 2806 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
> + case 295:
> +#line 2816 "/llvm/lib/AsmParser/llvmAsmParser.y"
> {
> // FIXME: Remove trailing OptParamAttrs in LLVM 3.0, it was a
> mistake in 2.0
> (yyval.ParamList) = (yyvsp[(1) - (6)].ParamList);
> @@ -5937,18 +5984,18 @@
> ;}
> break;
>
> - case 294:
> -#line 2813 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
> + case 296:
> +#line 2823 "/llvm/lib/AsmParser/llvmAsmParser.y"
> { (yyval.ParamList) = new ParamList(); ;}
> break;
>
> - case 295:
> -#line 2816 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
> + case 297:
> +#line 2826 "/llvm/lib/AsmParser/llvmAsmParser.y"
> { (yyval.ValueList) = new std::vector<Value*>(); ;}
> break;
>
> - case 296:
> -#line 2817 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
> + case 298:
> +#line 2827 "/llvm/lib/AsmParser/llvmAsmParser.y"
> {
> (yyval.ValueList) = (yyvsp[(1) - (3)].ValueList);
> (yyval.ValueList)->push_back((yyvsp[(3) - (3)].ValueVal));
> @@ -5956,24 +6003,24 @@
> ;}
> break;
>
> - case 297:
> -#line 2824 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
> + case 299:
> +#line 2834 "/llvm/lib/AsmParser/llvmAsmParser.y"
> {
> (yyval.BoolVal) = true;
> CHECK_FOR_ERROR
> ;}
> break;
>
> - case 298:
> -#line 2828 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
> + case 300:
> +#line 2838 "/llvm/lib/AsmParser/llvmAsmParser.y"
> {
> (yyval.BoolVal) = false;
> CHECK_FOR_ERROR
> ;}
> break;
>
> - case 299:
> -#line 2833 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
> + case 301:
> +#line 2843 "/llvm/lib/AsmParser/llvmAsmParser.y"
> {
> if (!UpRefs.empty())
> GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[(2) -
> (5)].TypeVal))->getDescription());
> @@ -5992,8 +6039,8 @@
> ;}
> break;
>
> - case 300:
> -#line 2849 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
> + case 302:
> +#line 2859 "/llvm/lib/AsmParser/llvmAsmParser.y"
> {
> if (!UpRefs.empty())
> GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[(2) -
> (5)].TypeVal))->getDescription());
> @@ -6013,8 +6060,8 @@
> ;}
> break;
>
> - case 301:
> -#line 2866 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
> + case 303:
> +#line 2876 "/llvm/lib/AsmParser/llvmAsmParser.y"
> {
> if (!UpRefs.empty())
> GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[(3) -
> (6)].TypeVal))->getDescription());
> @@ -6031,8 +6078,8 @@
> ;}
> break;
>
> - case 302:
> -#line 2880 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
> + case 304:
> +#line 2890 "/llvm/lib/AsmParser/llvmAsmParser.y"
> {
> if (!UpRefs.empty())
> GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[(3) -
> (6)].TypeVal))->getDescription());
> @@ -6049,8 +6096,44 @@
> ;}
> break;
>
> - case 303:
> -#line 2894 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
> + case 305:
> +#line 2904 "/llvm/lib/AsmParser/llvmAsmParser.y"
> + {
> + if (!UpRefs.empty())
> + GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[(3) -
> (6)].TypeVal))->getDescription());
> + if (!isa<VectorType>((*(yyvsp[(3) - (6)].TypeVal)).get()))
> + GEN_ERROR("Scalar types not supported by vicmp instruction");
> + Value* tmpVal1 = getVal(*(yyvsp[(3) - (6)].TypeVal), (yyvsp[(4)
> - (6)].ValIDVal));
> + CHECK_FOR_ERROR
> + Value* tmpVal2 = getVal(*(yyvsp[(3) - (6)].TypeVal), (yyvsp[(6)
> - (6)].ValIDVal));
> + CHECK_FOR_ERROR
> + (yyval.InstVal) = CmpInst::create((yyvsp[(1) -
> (6)].OtherOpVal), (yyvsp[(2) - (6)].IPredicate), tmpVal1, tmpVal2);
> + if ((yyval.InstVal) == 0)
> + GEN_ERROR("icmp operator returned null");
> + delete (yyvsp[(3) - (6)].TypeVal);
> + ;}
> + break;
> +
> + case 306:
> +#line 2918 "/llvm/lib/AsmParser/llvmAsmParser.y"
> + {
> + if (!UpRefs.empty())
> + GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[(3) -
> (6)].TypeVal))->getDescription());
> + if (!isa<VectorType>((*(yyvsp[(3) - (6)].TypeVal)).get()))
> + GEN_ERROR("Scalar types not supported by vfcmp instruction");
> + Value* tmpVal1 = getVal(*(yyvsp[(3) - (6)].TypeVal), (yyvsp[(4)
> - (6)].ValIDVal));
> + CHECK_FOR_ERROR
> + Value* tmpVal2 = getVal(*(yyvsp[(3) - (6)].TypeVal), (yyvsp[(6)
> - (6)].ValIDVal));
> + CHECK_FOR_ERROR
> + (yyval.InstVal) = CmpInst::create((yyvsp[(1) -
> (6)].OtherOpVal), (yyvsp[(2) - (6)].FPredicate), tmpVal1, tmpVal2);
> + if ((yyval.InstVal) == 0)
> + GEN_ERROR("fcmp operator returned null");
> + delete (yyvsp[(3) - (6)].TypeVal);
> + ;}
> + break;
> +
> + case 307:
> +#line 2932 "/llvm/lib/AsmParser/llvmAsmParser.y"
> {
> if (!UpRefs.empty())
> GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[(4) -
> (4)].TypeVal))->getDescription());
> @@ -6065,8 +6148,8 @@
> ;}
> break;
>
> - case 304:
> -#line 2906 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
> + case 308:
> +#line 2944 "/llvm/lib/AsmParser/llvmAsmParser.y"
> {
> if ((yyvsp[(2) - (6)].ValueVal)->getType() != Type::Int1Ty)
> GEN_ERROR("select condition must be boolean");
> @@ -6077,8 +6160,8 @@
> ;}
> break;
>
> - case 305:
> -#line 2914 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
> + case 309:
> +#line 2952 "/llvm/lib/AsmParser/llvmAsmParser.y"
> {
> if (!UpRefs.empty())
> GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[(4) -
> (4)].TypeVal))->getDescription());
> @@ -6088,8 +6171,8 @@
> ;}
> break;
>
> - case 306:
> -#line 2921 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
> + case 310:
> +#line 2959 "/llvm/lib/AsmParser/llvmAsmParser.y"
> {
> if (!ExtractElementInst::isValidOperands((yyvsp[(2) -
> (4)].ValueVal), (yyvsp[(4) - (4)].ValueVal)))
> GEN_ERROR("Invalid extractelement operands");
> @@ -6098,8 +6181,8 @@
> ;}
> break;
>
> - case 307:
> -#line 2927 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
> + case 311:
> +#line 2965 "/llvm/lib/AsmParser/llvmAsmParser.y"
> {
> if (!InsertElementInst::isValidOperands((yyvsp[(2) -
> (6)].ValueVal), (yyvsp[(4) - (6)].ValueVal), (yyvsp[(6) -
> (6)].ValueVal)))
> GEN_ERROR("Invalid insertelement operands");
> @@ -6108,8 +6191,8 @@
> ;}
> break;
>
> - case 308:
> -#line 2933 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
> + case 312:
> +#line 2971 "/llvm/lib/AsmParser/llvmAsmParser.y"
> {
> if (!ShuffleVectorInst::isValidOperands((yyvsp[(2) -
> (6)].ValueVal), (yyvsp[(4) - (6)].ValueVal), (yyvsp[(6) -
> (6)].ValueVal)))
> GEN_ERROR("Invalid shufflevector operands");
> @@ -6118,8 +6201,8 @@
> ;}
> break;
>
> - case 309:
> -#line 2939 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
> + case 313:
> +#line 2977 "/llvm/lib/AsmParser/llvmAsmParser.y"
> {
> const Type *Ty = (yyvsp[(2) - (2)].PHIList)->front().first-
> >getType();
> if (!Ty->isFirstClassType())
> @@ -6137,8 +6220,8 @@
> ;}
> break;
>
> - case 310:
> -#line 2955 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
> + case 314:
> +#line 2993 "/llvm/lib/AsmParser/llvmAsmParser.y"
> {
>
> // Handle the short syntax
> @@ -6230,32 +6313,32 @@
> ;}
> break;
>
> - case 311:
> -#line 3044 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
> + case 315:
> +#line 3082 "/llvm/lib/AsmParser/llvmAsmParser.y"
> {
> (yyval.InstVal) = (yyvsp[(1) - (1)].InstVal);
> CHECK_FOR_ERROR
> ;}
> break;
>
> - case 312:
> -#line 3049 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
> + case 316:
> +#line 3087 "/llvm/lib/AsmParser/llvmAsmParser.y"
> {
> (yyval.BoolVal) = true;
> CHECK_FOR_ERROR
> ;}
> break;
>
> - case 313:
> -#line 3053 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
> + case 317:
> +#line 3091 "/llvm/lib/AsmParser/llvmAsmParser.y"
> {
> (yyval.BoolVal) = false;
> CHECK_FOR_ERROR
> ;}
> break;
>
> - case 314:
> -#line 3060 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
> + case 318:
> +#line 3098 "/llvm/lib/AsmParser/llvmAsmParser.y"
> {
> if (!UpRefs.empty())
> GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[(2) -
> (3)].TypeVal))->getDescription());
> @@ -6265,8 +6348,8 @@
> ;}
> break;
>
> - case 315:
> -#line 3067 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
> + case 319:
> +#line 3105 "/llvm/lib/AsmParser/llvmAsmParser.y"
> {
> if (!UpRefs.empty())
> GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[(2) -
> (6)].TypeVal))->getDescription());
> @@ -6277,8 +6360,8 @@
> ;}
> break;
>
> - case 316:
> -#line 3075 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
> + case 320:
> +#line 3113 "/llvm/lib/AsmParser/llvmAsmParser.y"
> {
> if (!UpRefs.empty())
> GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[(2) -
> (3)].TypeVal))->getDescription());
> @@ -6288,8 +6371,8 @@
> ;}
> break;
>
> - case 317:
> -#line 3082 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
> + case 321:
> +#line 3120 "/llvm/lib/AsmParser/llvmAsmParser.y"
> {
> if (!UpRefs.empty())
> GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[(2) -
> (6)].TypeVal))->getDescription());
> @@ -6300,8 +6383,8 @@
> ;}
> break;
>
> - case 318:
> -#line 3090 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
> + case 322:
> +#line 3128 "/llvm/lib/AsmParser/llvmAsmParser.y"
> {
> if (!isa<PointerType>((yyvsp[(2) - (2)].ValueVal)->getType()))
> GEN_ERROR("Trying to free nonpointer type " +
> @@ -6311,8 +6394,8 @@
> ;}
> break;
>
> - case 319:
> -#line 3098 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
> + case 323:
> +#line 3136 "/llvm/lib/AsmParser/llvmAsmParser.y"
> {
> if (!UpRefs.empty())
> GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[(3) -
> (5)].TypeVal))->getDescription());
> @@ -6329,8 +6412,8 @@
> ;}
> break;
>
> - case 320:
> -#line 3112 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
> + case 324:
> +#line 3150 "/llvm/lib/AsmParser/llvmAsmParser.y"
> {
> if (!UpRefs.empty())
> GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[(5) -
> (7)].TypeVal))->getDescription());
> @@ -6350,8 +6433,8 @@
> ;}
> break;
>
> - case 321:
> -#line 3129 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
> + case 325:
> +#line 3167 "/llvm/lib/AsmParser/llvmAsmParser.y"
> {
> Value *TmpVal = getVal((yyvsp[(2) - (5)].TypeVal)->get(),
> (yyvsp[(3) - (5)].ValIDVal));
> if (!GetResultInst::isValidOperands(TmpVal, (yyvsp[(5) -
> (5)].UInt64Val)))
> @@ -6362,8 +6445,8 @@
> ;}
> break;
>
> - case 322:
> -#line 3137 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
> + case 326:
> +#line 3175 "/llvm/lib/AsmParser/llvmAsmParser.y"
> {
> if (!UpRefs.empty())
> GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[(2) -
> (4)].TypeVal))->getDescription());
> @@ -6383,7 +6466,7 @@
>
>
> /* Line 1267 of yacc.c. */
> -#line 6387 "llvmAsmParser.tab.c"
> +#line 6470 "llvmAsmParser.tab.c"
> default: break;
> }
> YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
> @@ -6597,7 +6680,7 @@
> }
>
>
> -#line 3154 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 3192 "/llvm/lib/AsmParser/llvmAsmParser.y"
>
>
> // common code from the two 'RunVMAsmParser' functions
>
> Modified: llvm/trunk/lib/AsmParser/llvmAsmParser.h.cvs
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/AsmParser/llvmAsmParser.h.cvs?rev=50985&r1=50984&r2=50985&view=diff
>
> =
> =
> =
> =
> =
> =
> =
> =
> ======================================================================
> --- llvm/trunk/lib/AsmParser/llvmAsmParser.h.cvs (original)
> +++ llvm/trunk/lib/AsmParser/llvmAsmParser.h.cvs Mon May 12 14:01:56
> 2008
> @@ -127,66 +127,68 @@
> ASHR = 343,
> ICMP = 344,
> FCMP = 345,
> - EQ = 346,
> - NE = 347,
> - SLT = 348,
> - SGT = 349,
> - SLE = 350,
> - SGE = 351,
> - ULT = 352,
> - UGT = 353,
> - ULE = 354,
> - UGE = 355,
> - OEQ = 356,
> - ONE = 357,
> - OLT = 358,
> - OGT = 359,
> - OLE = 360,
> - OGE = 361,
> - ORD = 362,
> - UNO = 363,
> - UEQ = 364,
> - UNE = 365,
> - MALLOC = 366,
> - ALLOCA = 367,
> - FREE = 368,
> - LOAD = 369,
> - STORE = 370,
> - GETELEMENTPTR = 371,
> - TRUNC = 372,
> - ZEXT = 373,
> - SEXT = 374,
> - FPTRUNC = 375,
> - FPEXT = 376,
> - BITCAST = 377,
> - UITOFP = 378,
> - SITOFP = 379,
> - FPTOUI = 380,
> - FPTOSI = 381,
> - INTTOPTR = 382,
> - PTRTOINT = 383,
> - PHI_TOK = 384,
> - SELECT = 385,
> - VAARG = 386,
> - EXTRACTELEMENT = 387,
> - INSERTELEMENT = 388,
> - SHUFFLEVECTOR = 389,
> - GETRESULT = 390,
> - SIGNEXT = 391,
> - ZEROEXT = 392,
> - NORETURN = 393,
> - INREG = 394,
> - SRET = 395,
> - NOUNWIND = 396,
> - NOALIAS = 397,
> - BYVAL = 398,
> - NEST = 399,
> - READNONE = 400,
> - READONLY = 401,
> - GC = 402,
> - DEFAULT = 403,
> - HIDDEN = 404,
> - PROTECTED = 405
> + VICMP = 346,
> + VFCMP = 347,
> + EQ = 348,
> + NE = 349,
> + SLT = 350,
> + SGT = 351,
> + SLE = 352,
> + SGE = 353,
> + ULT = 354,
> + UGT = 355,
> + ULE = 356,
> + UGE = 357,
> + OEQ = 358,
> + ONE = 359,
> + OLT = 360,
> + OGT = 361,
> + OLE = 362,
> + OGE = 363,
> + ORD = 364,
> + UNO = 365,
> + UEQ = 366,
> + UNE = 367,
> + MALLOC = 368,
> + ALLOCA = 369,
> + FREE = 370,
> + LOAD = 371,
> + STORE = 372,
> + GETELEMENTPTR = 373,
> + TRUNC = 374,
> + ZEXT = 375,
> + SEXT = 376,
> + FPTRUNC = 377,
> + FPEXT = 378,
> + BITCAST = 379,
> + UITOFP = 380,
> + SITOFP = 381,
> + FPTOUI = 382,
> + FPTOSI = 383,
> + INTTOPTR = 384,
> + PTRTOINT = 385,
> + PHI_TOK = 386,
> + SELECT = 387,
> + VAARG = 388,
> + EXTRACTELEMENT = 389,
> + INSERTELEMENT = 390,
> + SHUFFLEVECTOR = 391,
> + GETRESULT = 392,
> + SIGNEXT = 393,
> + ZEROEXT = 394,
> + NORETURN = 395,
> + INREG = 396,
> + SRET = 397,
> + NOUNWIND = 398,
> + NOALIAS = 399,
> + BYVAL = 400,
> + NEST = 401,
> + READNONE = 402,
> + READONLY = 403,
> + GC = 404,
> + DEFAULT = 405,
> + HIDDEN = 406,
> + PROTECTED = 407
> };
> #endif
> /* Tokens. */
> @@ -278,73 +280,75 @@
> #define ASHR 343
> #define ICMP 344
> #define FCMP 345
> -#define EQ 346
> -#define NE 347
> -#define SLT 348
> -#define SGT 349
> -#define SLE 350
> -#define SGE 351
> -#define ULT 352
> -#define UGT 353
> -#define ULE 354
> -#define UGE 355
> -#define OEQ 356
> -#define ONE 357
> -#define OLT 358
> -#define OGT 359
> -#define OLE 360
> -#define OGE 361
> -#define ORD 362
> -#define UNO 363
> -#define UEQ 364
> -#define UNE 365
> -#define MALLOC 366
> -#define ALLOCA 367
> -#define FREE 368
> -#define LOAD 369
> -#define STORE 370
> -#define GETELEMENTPTR 371
> -#define TRUNC 372
> -#define ZEXT 373
> -#define SEXT 374
> -#define FPTRUNC 375
> -#define FPEXT 376
> -#define BITCAST 377
> -#define UITOFP 378
> -#define SITOFP 379
> -#define FPTOUI 380
> -#define FPTOSI 381
> -#define INTTOPTR 382
> -#define PTRTOINT 383
> -#define PHI_TOK 384
> -#define SELECT 385
> -#define VAARG 386
> -#define EXTRACTELEMENT 387
> -#define INSERTELEMENT 388
> -#define SHUFFLEVECTOR 389
> -#define GETRESULT 390
> -#define SIGNEXT 391
> -#define ZEROEXT 392
> -#define NORETURN 393
> -#define INREG 394
> -#define SRET 395
> -#define NOUNWIND 396
> -#define NOALIAS 397
> -#define BYVAL 398
> -#define NEST 399
> -#define READNONE 400
> -#define READONLY 401
> -#define GC 402
> -#define DEFAULT 403
> -#define HIDDEN 404
> -#define PROTECTED 405
> +#define VICMP 346
> +#define VFCMP 347
> +#define EQ 348
> +#define NE 349
> +#define SLT 350
> +#define SGT 351
> +#define SLE 352
> +#define SGE 353
> +#define ULT 354
> +#define UGT 355
> +#define ULE 356
> +#define UGE 357
> +#define OEQ 358
> +#define ONE 359
> +#define OLT 360
> +#define OGT 361
> +#define OLE 362
> +#define OGE 363
> +#define ORD 364
> +#define UNO 365
> +#define UEQ 366
> +#define UNE 367
> +#define MALLOC 368
> +#define ALLOCA 369
> +#define FREE 370
> +#define LOAD 371
> +#define STORE 372
> +#define GETELEMENTPTR 373
> +#define TRUNC 374
> +#define ZEXT 375
> +#define SEXT 376
> +#define FPTRUNC 377
> +#define FPEXT 378
> +#define BITCAST 379
> +#define UITOFP 380
> +#define SITOFP 381
> +#define FPTOUI 382
> +#define FPTOSI 383
> +#define INTTOPTR 384
> +#define PTRTOINT 385
> +#define PHI_TOK 386
> +#define SELECT 387
> +#define VAARG 388
> +#define EXTRACTELEMENT 389
> +#define INSERTELEMENT 390
> +#define SHUFFLEVECTOR 391
> +#define GETRESULT 392
> +#define SIGNEXT 393
> +#define ZEROEXT 394
> +#define NORETURN 395
> +#define INREG 396
> +#define SRET 397
> +#define NOUNWIND 398
> +#define NOALIAS 399
> +#define BYVAL 400
> +#define NEST 401
> +#define READNONE 402
> +#define READONLY 403
> +#define GC 404
> +#define DEFAULT 405
> +#define HIDDEN 406
> +#define PROTECTED 407
>
>
>
>
> #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
> typedef union YYSTYPE
> -#line 949 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 949 "/llvm/lib/AsmParser/llvmAsmParser.y"
> {
> llvm::Module *ModuleVal;
> llvm::Function *FunctionVal;
> @@ -392,7 +396,7 @@
> llvm::FCmpInst::Predicate FPredicate;
> }
> /* Line 1529 of yacc.c. */
> -#line 396 "llvmAsmParser.tab.h"
> +#line 400 "llvmAsmParser.tab.h"
> YYSTYPE;
> # define yystype YYSTYPE /* obsolescent; will be withdrawn */
> # define YYSTYPE_IS_DECLARED 1
>
> Modified: llvm/trunk/lib/AsmParser/llvmAsmParser.y
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/AsmParser/llvmAsmParser.y?rev=50985&r1=50984&r2=50985&view=diff
>
> =
> =
> =
> =
> =
> =
> =
> =
> ======================================================================
> --- llvm/trunk/lib/AsmParser/llvmAsmParser.y (original)
> +++ llvm/trunk/lib/AsmParser/llvmAsmParser.y Mon May 12 14:01:56 2008
> @@ -1075,7 +1075,7 @@
> %token <BinaryOpVal> ADD SUB MUL UDIV SDIV FDIV UREM SREM FREM AND
> OR XOR
> %token <BinaryOpVal> SHL LSHR ASHR
>
> -%token <OtherOpVal> ICMP FCMP
> +%token <OtherOpVal> ICMP FCMP VICMP VFCMP
> %type <IPredicate> IPredicates
> %type <FPredicate> FPredicates
> %token EQ NE SLT SGT SLE SGE ULT UGT ULE UGE
> @@ -1939,6 +1939,16 @@
> GEN_ERROR("fcmp operand types must match");
> $$ = ConstantExpr::getFCmp($2, $4, $6);
> }
> + | VICMP IPredicates '(' ConstVal ',' ConstVal ')' {
> + if ($4->getType() != $6->getType())
> + GEN_ERROR("vicmp operand types must match");
> + $$ = ConstantExpr::getVICmp($2, $4, $6);
> + }
> + | VFCMP FPredicates '(' ConstVal ',' ConstVal ')' {
> + if ($4->getType() != $6->getType())
> + GEN_ERROR("vfcmp operand types must match");
> + $$ = ConstantExpr::getVFCmp($2, $4, $6);
> + }
> | EXTRACTELEMENT '(' ConstVal ',' ConstVal ')' {
> if (!ExtractElementInst::isValidOperands($3, $5))
> GEN_ERROR("Invalid extractelement operands");
> @@ -2891,6 +2901,34 @@
> GEN_ERROR("fcmp operator returned null");
> delete $3;
> }
> + | VICMP IPredicates Types ValueRef ',' ValueRef {
> + if (!UpRefs.empty())
> + GEN_ERROR("Invalid upreference in type: " + (*$3)-
> >getDescription());
> + if (!isa<VectorType>((*$3).get()))
> + GEN_ERROR("Scalar types not supported by vicmp instruction");
> + Value* tmpVal1 = getVal(*$3, $4);
> + CHECK_FOR_ERROR
> + Value* tmpVal2 = getVal(*$3, $6);
> + CHECK_FOR_ERROR
> + $$ = CmpInst::create($1, $2, tmpVal1, tmpVal2);
> + if ($$ == 0)
> + GEN_ERROR("icmp operator returned null");
> + delete $3;
> + }
> + | VFCMP FPredicates Types ValueRef ',' ValueRef {
> + if (!UpRefs.empty())
> + GEN_ERROR("Invalid upreference in type: " + (*$3)-
> >getDescription());
> + if (!isa<VectorType>((*$3).get()))
> + GEN_ERROR("Scalar types not supported by vfcmp instruction");
> + Value* tmpVal1 = getVal(*$3, $4);
> + CHECK_FOR_ERROR
> + Value* tmpVal2 = getVal(*$3, $6);
> + CHECK_FOR_ERROR
> + $$ = CmpInst::create($1, $2, tmpVal1, tmpVal2);
> + if ($$ == 0)
> + GEN_ERROR("fcmp operator returned null");
> + delete $3;
> + }
> | CastOps ResolvedVal TO Types {
> if (!UpRefs.empty())
> GEN_ERROR("Invalid upreference in type: " + (*$4)-
> >getDescription());
>
> Modified: llvm/trunk/lib/AsmParser/llvmAsmParser.y.cvs
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/AsmParser/llvmAsmParser.y.cvs?rev=50985&r1=50984&r2=50985&view=diff
>
> =
> =
> =
> =
> =
> =
> =
> =
> ======================================================================
> --- llvm/trunk/lib/AsmParser/llvmAsmParser.y.cvs (original)
> +++ llvm/trunk/lib/AsmParser/llvmAsmParser.y.cvs Mon May 12 14:01:56
> 2008
> @@ -1075,7 +1075,7 @@
> %token <BinaryOpVal> ADD SUB MUL UDIV SDIV FDIV UREM SREM FREM AND
> OR XOR
> %token <BinaryOpVal> SHL LSHR ASHR
>
> -%token <OtherOpVal> ICMP FCMP
> +%token <OtherOpVal> ICMP FCMP VICMP VFCMP
> %type <IPredicate> IPredicates
> %type <FPredicate> FPredicates
> %token EQ NE SLT SGT SLE SGE ULT UGT ULE UGE
> @@ -1939,6 +1939,16 @@
> GEN_ERROR("fcmp operand types must match");
> $$ = ConstantExpr::getFCmp($2, $4, $6);
> }
> + | VICMP IPredicates '(' ConstVal ',' ConstVal ')' {
> + if ($4->getType() != $6->getType())
> + GEN_ERROR("vicmp operand types must match");
> + $$ = ConstantExpr::getVICmp($2, $4, $6);
> + }
> + | VFCMP FPredicates '(' ConstVal ',' ConstVal ')' {
> + if ($4->getType() != $6->getType())
> + GEN_ERROR("vfcmp operand types must match");
> + $$ = ConstantExpr::getVFCmp($2, $4, $6);
> + }
> | EXTRACTELEMENT '(' ConstVal ',' ConstVal ')' {
> if (!ExtractElementInst::isValidOperands($3, $5))
> GEN_ERROR("Invalid extractelement operands");
> @@ -2891,6 +2901,34 @@
> GEN_ERROR("fcmp operator returned null");
> delete $3;
> }
> + | VICMP IPredicates Types ValueRef ',' ValueRef {
> + if (!UpRefs.empty())
> + GEN_ERROR("Invalid upreference in type: " + (*$3)-
> >getDescription());
> + if (!isa<VectorType>((*$3).get()))
> + GEN_ERROR("Scalar types not supported by vicmp instruction");
> + Value* tmpVal1 = getVal(*$3, $4);
> + CHECK_FOR_ERROR
> + Value* tmpVal2 = getVal(*$3, $6);
> + CHECK_FOR_ERROR
> + $$ = CmpInst::create($1, $2, tmpVal1, tmpVal2);
> + if ($$ == 0)
> + GEN_ERROR("icmp operator returned null");
> + delete $3;
> + }
> + | VFCMP FPredicates Types ValueRef ',' ValueRef {
> + if (!UpRefs.empty())
> + GEN_ERROR("Invalid upreference in type: " + (*$3)-
> >getDescription());
> + if (!isa<VectorType>((*$3).get()))
> + GEN_ERROR("Scalar types not supported by vfcmp instruction");
> + Value* tmpVal1 = getVal(*$3, $4);
> + CHECK_FOR_ERROR
> + Value* tmpVal2 = getVal(*$3, $6);
> + CHECK_FOR_ERROR
> + $$ = CmpInst::create($1, $2, tmpVal1, tmpVal2);
> + if ($$ == 0)
> + GEN_ERROR("fcmp operator returned null");
> + delete $3;
> + }
> | CastOps ResolvedVal TO Types {
> if (!UpRefs.empty())
> GEN_ERROR("Invalid upreference in type: " + (*$4)-
> >getDescription());
>
> Modified: llvm/trunk/lib/Bitcode/Reader/BitcodeReader.cpp
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Bitcode/Reader/BitcodeReader.cpp?rev=50985&r1=50984&r2=50985&view=diff
>
> =
> =
> =
> =
> =
> =
> =
> =
> ======================================================================
> --- llvm/trunk/lib/Bitcode/Reader/BitcodeReader.cpp (original)
> +++ llvm/trunk/lib/Bitcode/Reader/BitcodeReader.cpp Mon May 12
> 14:01:56 2008
> @@ -818,8 +818,12 @@
>
> if (OpTy->isFloatingPoint())
> V = ConstantExpr::getFCmp(Record[3], Op0, Op1);
> - else
> + else if (OpTy->isInteger())
> V = ConstantExpr::getICmp(Record[3], Op0, Op1);
> + else if (OpTy->isFPOrFPVector())
> + V = ConstantExpr::getVFCmp(Record[3], Op0, Op1);
> + else
> + V = ConstantExpr::getVICmp(Record[3], Op0, Op1);
> break;
> }
> case bitc::CST_CODE_INLINEASM: {
> @@ -1355,10 +1359,14 @@
> OpNum+1 != Record.size())
> return Error("Invalid CMP record");
>
> - if (LHS->getType()->isFPOrFPVector())
> + if (LHS->getType()->isInteger())
> + I = new ICmpInst((ICmpInst::Predicate)Record[OpNum], LHS,
> RHS);
> + else if (LHS->getType()->isFloatingPoint())
> I = new FCmpInst((FCmpInst::Predicate)Record[OpNum], LHS,
> RHS);
> + else if (LHS->getType()->isFPOrFPVector())
> + I = new VFCmpInst((FCmpInst::Predicate)Record[OpNum], LHS,
> RHS);
> else
> - I = new ICmpInst((ICmpInst::Predicate)Record[OpNum], LHS,
> RHS);
> + I = new VICmpInst((ICmpInst::Predicate)Record[OpNum], LHS,
> RHS);
> break;
> }
> case bitc::FUNC_CODE_INST_GETRESULT: { // GETRESULT: [ty, val, n]
>
> Modified: llvm/trunk/lib/Bitcode/Writer/BitcodeWriter.cpp
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Bitcode/Writer/BitcodeWriter.cpp?rev=50985&r1=50984&r2=50985&view=diff
>
> =
> =
> =
> =
> =
> =
> =
> =
> ======================================================================
> --- llvm/trunk/lib/Bitcode/Writer/BitcodeWriter.cpp (original)
> +++ llvm/trunk/lib/Bitcode/Writer/BitcodeWriter.cpp Mon May 12
> 14:01:56 2008
> @@ -635,6 +635,8 @@
> break;
> case Instruction::ICmp:
> case Instruction::FCmp:
> + case Instruction::VICmp:
> + case Instruction::VFCmp:
> Code = bitc::CST_CODE_CE_CMP;
> Record.push_back(VE.getTypeID(C->getOperand(0)->getType()));
> Record.push_back(VE.getValueID(C->getOperand(0)));
> @@ -740,6 +742,8 @@
> break;
> case Instruction::ICmp:
> case Instruction::FCmp:
> + case Instruction::VICmp:
> + case Instruction::VFCmp:
> Code = bitc::FUNC_CODE_INST_CMP;
> PushValueAndType(I.getOperand(0), InstID, Vals, VE);
> Vals.push_back(VE.getValueID(I.getOperand(1)));
>
> Modified: llvm/trunk/lib/VMCore/AsmWriter.cpp
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/VMCore/AsmWriter.cpp?rev=50985&r1=50984&r2=50985&view=diff
>
> =
> =
> =
> =
> =
> =
> =
> =
> ======================================================================
> --- llvm/trunk/lib/VMCore/AsmWriter.cpp (original)
> +++ llvm/trunk/lib/VMCore/AsmWriter.cpp Mon May 12 14:01:56 2008
> @@ -1251,11 +1251,8 @@
> Out << I.getOpcodeName();
>
> // Print out the compare instruction predicates
> - if (const FCmpInst *FCI = dyn_cast<FCmpInst>(&I)) {
> - Out << " " << getPredicateText(FCI->getPredicate());
> - } else if (const ICmpInst *ICI = dyn_cast<ICmpInst>(&I)) {
> - Out << " " << getPredicateText(ICI->getPredicate());
> - }
> + if (const CmpInst *CI = dyn_cast<CmpInst>(&I))
> + Out << " " << getPredicateText(CI->getPredicate());
>
> // Print out the type of the operands...
> const Value *Operand = I.getNumOperands() ? I.getOperand(0) : 0;
>
> Modified: llvm/trunk/lib/VMCore/Constants.cpp
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/VMCore/Constants.cpp?rev=50985&r1=50984&r2=50985&view=diff
>
> =
> =
> =
> =
> =
> =
> =
> =
> ======================================================================
> --- llvm/trunk/lib/VMCore/Constants.cpp (original)
> +++ llvm/trunk/lib/VMCore/Constants.cpp Mon May 12 14:01:56 2008
> @@ -557,9 +557,9 @@
> return User::operator new(s, 2);
> }
> unsigned short predicate;
> - CompareConstantExpr(Instruction::OtherOps opc, unsigned short pred,
> - Constant* LHS, Constant* RHS)
> - : ConstantExpr(Type::Int1Ty, opc, &Op<0>(), 2), predicate(pred) {
> + CompareConstantExpr(const Type *ty, Instruction::OtherOps opc,
> + unsigned short pred, Constant* LHS,
> Constant* RHS)
> + : ConstantExpr(ty, opc, &Op<0>(), 2), predicate(pred) {
> Op<0>().init(LHS, this);
> Op<1>().init(RHS, this);
> }
> @@ -690,7 +690,10 @@
> return get(Instruction::Xor, C1, C2);
> }
> unsigned ConstantExpr::getPredicate() const {
> - assert(getOpcode() == Instruction::FCmp || getOpcode() ==
> Instruction::ICmp);
> + assert(getOpcode() == Instruction::FCmp ||
> + getOpcode() == Instruction::ICmp ||
> + getOpcode() == Instruction::VFCmp ||
> + getOpcode() == Instruction::VICmp);
> return ((const CompareConstantExpr*)this)->predicate;
> }
> Constant *ConstantExpr::getShl(Constant *C1, Constant *C2) {
> @@ -1564,10 +1567,16 @@
> // value and it is combined with the instruction opcode by
> multiplying
> // the opcode by one hundred. We must decode this to get the
> predicate.
> if (V.opcode == Instruction::ICmp)
> - return new CompareConstantExpr(Instruction::ICmp,
> V.predicate,
> + return new CompareConstantExpr(Ty, Instruction::ICmp,
> V.predicate,
> V.operands[0], V.operands[1]);
> if (V.opcode == Instruction::FCmp)
> - return new CompareConstantExpr(Instruction::FCmp,
> V.predicate,
> + return new CompareConstantExpr(Ty, Instruction::FCmp,
> V.predicate,
> + V.operands[0], V.operands[1]);
> + if (V.opcode == Instruction::VICmp)
> + return new CompareConstantExpr(Ty, Instruction::VICmp,
> V.predicate,
> + V.operands[0], V.operands[1]);
> + if (V.opcode == Instruction::VFCmp)
> + return new CompareConstantExpr(Ty, Instruction::VFCmp,
> V.predicate,
> V.operands[0], V.operands[1]);
> assert(0 && "Invalid ConstantExpr!");
> return 0;
> @@ -2029,6 +2038,79 @@
> return ExprConstants->getOrCreate(Type::Int1Ty, Key);
> }
>
> +Constant *
> +ConstantExpr::getVICmp(unsigned short pred, Constant* LHS,
> Constant* RHS) {
> + assert(isa<VectorType>(LHS->getType()) &&
> + "Tried to create vicmp operation on non-vector type!");
> + assert(LHS->getType() == RHS->getType());
> + assert(pred >= ICmpInst::FIRST_ICMP_PREDICATE &&
> + pred <= ICmpInst::LAST_ICMP_PREDICATE && "Invalid VICmp
> Predicate");
> +
> + const Type *VTy = cast<VectorType>(LHS->getType());
> + const Type *EltTy = VTy->getElementType();
> + unsigned NumElts = VTy->getNumElements();
> +
> + SmallVector<Constant *, 8> Elts;
> + for (unsigned i = 0; i != NumElts; ++i) {
> + Constant *FC = ConstantFoldCompareInstruction(pred, LHS-
> >getOperand(i),
> + RHS-
> >getOperand(i));
> + if (FC) {
> + uint64_t Val = cast<ConstantInt>(FC)->getZExtValue();
> + if (Val != 0ULL)
> + Elts.push_back(ConstantInt::getAllOnesValue(EltTy));
> + else
> + Elts.push_back(ConstantInt::get(EltTy, 0ULL));
> + }
> + }
> + if (Elts.size() == NumElts)
> + return ConstantVector::get(&Elts[0], Elts.size());
> +
> + // Look up the constant in the table first to ensure uniqueness
> + std::vector<Constant*> ArgVec;
> + ArgVec.push_back(LHS);
> + ArgVec.push_back(RHS);
> + // Get the key type with both the opcode and predicate
> + const ExprMapKeyType Key(Instruction::VICmp, ArgVec, pred);
> + return ExprConstants->getOrCreate(LHS->getType(), Key);
> +}
> +
> +Constant *
> +ConstantExpr::getVFCmp(unsigned short pred, Constant* LHS,
> Constant* RHS) {
> + assert(isa<VectorType>(LHS->getType()) &&
> + "Tried to create vfcmp operation on non-vector type!");
> + assert(LHS->getType() == RHS->getType());
> + assert(pred <= FCmpInst::LAST_FCMP_PREDICATE && "Invalid VFCmp
> Predicate");
> +
> + const VectorType *VTy = cast<VectorType>(LHS->getType());
> + unsigned NumElts = VTy->getNumElements();
> + const Type *EltTy = VTy->getElementType();
> + const Type *REltTy = IntegerType::get(EltTy-
> >getPrimitiveSizeInBits());
> + const Type *ResultTy = VectorType::get(REltTy, NumElts);
> +
> + SmallVector<Constant *, 8> Elts;
> + for (unsigned i = 0; i != NumElts; ++i) {
> + Constant *FC = ConstantFoldCompareInstruction(pred, LHS-
> >getOperand(i),
> + RHS-
> >getOperand(i));
> + if (FC) {
> + uint64_t Val = cast<ConstantInt>(FC)->getZExtValue();
> + if (Val != 0ULL)
> + Elts.push_back(ConstantInt::getAllOnesValue(REltTy));
> + else
> + Elts.push_back(ConstantInt::get(REltTy, 0ULL));
> + }
> + }
> + if (Elts.size() == NumElts)
> + return ConstantVector::get(&Elts[0], Elts.size());
> +
> + // Look up the constant in the table first to ensure uniqueness
> + std::vector<Constant*> ArgVec;
> + ArgVec.push_back(LHS);
> + ArgVec.push_back(RHS);
> + // Get the key type with both the opcode and predicate
> + const ExprMapKeyType Key(Instruction::VFCmp, ArgVec, pred);
> + return ExprConstants->getOrCreate(ResultTy, Key);
> +}
> +
> Constant *ConstantExpr::getExtractElementTy(const Type *ReqTy,
> Constant *Val,
> Constant *Idx) {
> if (Constant *FC = ConstantFoldExtractElementInstruction(Val, Idx))
>
> Modified: llvm/trunk/lib/VMCore/Instruction.cpp
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/VMCore/Instruction.cpp?rev=50985&r1=50984&r2=50985&view=diff
>
> =
> =
> =
> =
> =
> =
> =
> =
> ======================================================================
> --- llvm/trunk/lib/VMCore/Instruction.cpp (original)
> +++ llvm/trunk/lib/VMCore/Instruction.cpp Mon May 12 14:01:56 2008
> @@ -128,6 +128,8 @@
> // Other instructions...
> case ICmp: return "icmp";
> case FCmp: return "fcmp";
> + case VICmp: return "vicmp";
> + case VFCmp: return "vfcmp";
> case PHI: return "phi";
> case Select: return "select";
> case Call: return "call";
>
> Modified: llvm/trunk/lib/VMCore/Instructions.cpp
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/VMCore/Instructions.cpp?rev=50985&r1=50984&r2=50985&view=diff
>
> =
> =
> =
> =
> =
> =
> =
> =
> ======================================================================
> --- llvm/trunk/lib/VMCore/Instructions.cpp (original)
> +++ llvm/trunk/lib/VMCore/Instructions.cpp Mon May 12 14:01:56 2008
> @@ -2332,9 +2332,10 @@
> // CmpInst Classes
> //
> =
> =
> =
> ----------------------------------------------------------------------=
> ==//
>
> -CmpInst::CmpInst(OtherOps op, unsigned short predicate, Value *LHS,
> Value *RHS,
> - const std::string &Name, Instruction *InsertBefore)
> - : Instruction(Type::Int1Ty, op,
> +CmpInst::CmpInst(const Type *ty, OtherOps op, unsigned short
> predicate,
> + Value *LHS, Value *RHS, const std::string &Name,
> + Instruction *InsertBefore)
> + : Instruction(ty, op,
> OperandTraits<CmpInst>::op_begin(this),
> OperandTraits<CmpInst>::operands(this),
> InsertBefore) {
> @@ -2342,34 +2343,12 @@
> Op<1>().init(RHS, this);
> SubclassData = predicate;
> setName(Name);
> - if (op == Instruction::ICmp) {
> - assert(predicate >= ICmpInst::FIRST_ICMP_PREDICATE &&
> - predicate <= ICmpInst::LAST_ICMP_PREDICATE &&
> - "Invalid ICmp predicate value");
> - const Type* Op0Ty = getOperand(0)->getType();
> - const Type* Op1Ty = getOperand(1)->getType();
> - assert(Op0Ty == Op1Ty &&
> - "Both operands to ICmp instruction are not of the same
> type!");
> - // Check that the operands are the right type
> - assert((Op0Ty->isInteger() || isa<PointerType>(Op0Ty)) &&
> - "Invalid operand types for ICmp instruction");
> - return;
> - }
> - assert(op == Instruction::FCmp && "Invalid CmpInst opcode");
> - assert(predicate <= FCmpInst::LAST_FCMP_PREDICATE &&
> - "Invalid FCmp predicate value");
> - const Type* Op0Ty = getOperand(0)->getType();
> - const Type* Op1Ty = getOperand(1)->getType();
> - assert(Op0Ty == Op1Ty &&
> - "Both operands to FCmp instruction are not of the same
> type!");
> - // Check that the operands are the right type
> - assert(Op0Ty->isFloatingPoint() &&
> - "Invalid operand types for FCmp instruction");
> }
>
> -CmpInst::CmpInst(OtherOps op, unsigned short predicate, Value *LHS,
> Value *RHS,
> - const std::string &Name, BasicBlock *InsertAtEnd)
> - : Instruction(Type::Int1Ty, op,
> +CmpInst::CmpInst(const Type *ty, OtherOps op, unsigned short
> predicate,
> + Value *LHS, Value *RHS, const std::string &Name,
> + BasicBlock *InsertAtEnd)
> + : Instruction(ty, op,
> OperandTraits<CmpInst>::op_begin(this),
> OperandTraits<CmpInst>::operands(this),
> InsertAtEnd) {
> @@ -2377,52 +2356,44 @@
> Op<1>().init(RHS, this);
> SubclassData = predicate;
> setName(Name);
> - if (op == Instruction::ICmp) {
> - assert(predicate >= ICmpInst::FIRST_ICMP_PREDICATE &&
> - predicate <= ICmpInst::LAST_ICMP_PREDICATE &&
> - "Invalid ICmp predicate value");
> -
> - const Type* Op0Ty = getOperand(0)->getType();
> - const Type* Op1Ty = getOperand(1)->getType();
> - assert(Op0Ty == Op1Ty &&
> - "Both operands to ICmp instruction are not of the same
> type!");
> - // Check that the operands are the right type
> - assert((Op0Ty->isInteger() || isa<PointerType>(Op0Ty)) &&
> - "Invalid operand types for ICmp instruction");
> - return;
> - }
> - assert(op == Instruction::FCmp && "Invalid CmpInst opcode");
> - assert(predicate <= FCmpInst::LAST_FCMP_PREDICATE &&
> - "Invalid FCmp predicate value");
> - const Type* Op0Ty = getOperand(0)->getType();
> - const Type* Op1Ty = getOperand(1)->getType();
> - assert(Op0Ty == Op1Ty &&
> - "Both operands to FCmp instruction are not of the same
> type!");
> - // Check that the operands are the right type
> - assert(Op0Ty->isFloatingPoint() &&
> - "Invalid operand types for FCmp instruction");
> }
>
> CmpInst *
> CmpInst::create(OtherOps Op, unsigned short predicate, Value *S1,
> Value *S2,
> const std::string &Name, Instruction *InsertBefore) {
> if (Op == Instruction::ICmp) {
> - return new ICmpInst(ICmpInst::Predicate(predicate), S1, S2, Name,
> + return new ICmpInst(CmpInst::Predicate(predicate), S1, S2, Name,
> InsertBefore);
> }
> - return new FCmpInst(FCmpInst::Predicate(predicate), S1, S2, Name,
> - InsertBefore);
> + if (Op == Instruction::FCmp) {
> + return new FCmpInst(CmpInst::Predicate(predicate), S1, S2, Name,
> + InsertBefore);
> + }
> + if (Op == Instruction::VICmp) {
> + return new VICmpInst(CmpInst::Predicate(predicate), S1, S2, Name,
> + InsertBefore);
> + }
> + return new VFCmpInst(CmpInst::Predicate(predicate), S1, S2, Name,
> + InsertBefore);
> }
>
> CmpInst *
> CmpInst::create(OtherOps Op, unsigned short predicate, Value *S1,
> Value *S2,
> const std::string &Name, BasicBlock *InsertAtEnd) {
> if (Op == Instruction::ICmp) {
> - return new ICmpInst(ICmpInst::Predicate(predicate), S1, S2, Name,
> + return new ICmpInst(CmpInst::Predicate(predicate), S1, S2, Name,
> InsertAtEnd);
> }
> - return new FCmpInst(FCmpInst::Predicate(predicate), S1, S2, Name,
> - InsertAtEnd);
> + if (Op == Instruction::FCmp) {
> + return new FCmpInst(CmpInst::Predicate(predicate), S1, S2, Name,
> + InsertAtEnd);
> + }
> + if (Op == Instruction::VICmp) {
> + return new VICmpInst(CmpInst::Predicate(predicate), S1, S2, Name,
> + InsertAtEnd);
> + }
> + return new VFCmpInst(CmpInst::Predicate(predicate), S1, S2, Name,
> + InsertAtEnd);
> }
>
> void CmpInst::swapOperands() {
> @@ -2813,6 +2784,13 @@
> return new ICmpInst(getPredicate(), Op<0>(), Op<1>());
> }
>
> +VFCmpInst* VFCmpInst::clone() const {
> + return new VFCmpInst(getPredicate(), Op<0>(), Op<1>());
> +}
> +VICmpInst* VICmpInst::clone() const {
> + return new VICmpInst(getPredicate(), Op<0>(), Op<1>());
> +}
> +
> MallocInst *MallocInst::clone() const { return new
> MallocInst(*this); }
> AllocaInst *AllocaInst::clone() const { return new
> AllocaInst(*this); }
> FreeInst *FreeInst::clone() const { return new
> FreeInst(getOperand(0)); }
>
>
> _______________________________________________
> llvm-commits mailing list
> llvm-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/pkcs7-signature
Size: 4260 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20080512/7f71a060/attachment.bin>
More information about the llvm-commits
mailing list