[llvm-commits] [llvm] r54161 - in /llvm/trunk: docs/LangRef.html lib/AsmParser/llvmAsmParser.cpp.cvs lib/AsmParser/llvmAsmParser.h.cvs lib/AsmParser/llvmAsmParser.y lib/AsmParser/llvmAsmParser.y.cvs lib/CodeGen/SelectionDAG/LegalizeDAG.cpp lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp lib/Transforms/Scalar/InstructionCombining.cpp lib/VMCore/Instructions.cpp lib/VMCore/Verifier.cpp test/Assembler/vector-shift.ll
Dan Gohman
gohman at apple.com
Tue Jul 29 11:22:02 PDT 2008
Hello,
It appears this patch breaks CodeGen/CellSPU/and_ops.ll. Can you
investigate?
Thanks,
Dan
On Jul 29, 2008, at 8:49 AM, Nate Begeman wrote:
> Author: sampo
> Date: Tue Jul 29 10:49:41 2008
> New Revision: 54161
>
> URL: http://llvm.org/viewvc/llvm-project?rev=54161&view=rev
> Log:
> Add vector shifts to the IR, patch by Eli Friedman.
> CodeGen & Clang work coming next.
>
> Added:
> llvm/trunk/test/Assembler/vector-shift.ll
> Modified:
> llvm/trunk/docs/LangRef.html
> 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/CodeGen/SelectionDAG/LegalizeDAG.cpp
> llvm/trunk/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
> llvm/trunk/lib/Transforms/Scalar/InstructionCombining.cpp
> llvm/trunk/lib/VMCore/Instructions.cpp
> llvm/trunk/lib/VMCore/Verifier.cpp
>
> Modified: llvm/trunk/docs/LangRef.html
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/docs/LangRef.html?rev=54161&r1=54160&r2=54161&view=diff
>
> =
> =
> =
> =
> =
> =
> =
> =
> ======================================================================
> --- llvm/trunk/docs/LangRef.html (original)
> +++ llvm/trunk/docs/LangRef.html Tue Jul 29 10:49:41 2008
> @@ -2458,9 +2458,8 @@
> <h5>Arguments:</h5>
>
> <p>Both arguments to the '<tt>shl</tt>' instruction must be the same
> <a
> - href="#t_integer">integer</a> type. '<tt>var2</tt>' is treated as
> an
> -unsigned value. This instruction does not support
> -<a href="#t_vector">vector</a> operands.</p>
> + href="#t_integer">integer</a> or <a href="#t_vector">vector</a> of
> integer
> +type. '<tt>var2</tt>' is treated as an unsigned value.</p>
>
> <h5>Semantics:</h5>
>
> @@ -2489,9 +2488,8 @@
>
> <h5>Arguments:</h5>
> <p>Both arguments to the '<tt>lshr</tt>' instruction must be the same
> -<a href="#t_integer">integer</a> type. '<tt>var2</tt>' is treated
> as an
> -unsigned value. This instruction does not support
> -<a href="#t_vector">vector</a> operands.</p>
> +<a href="#t_integer">integer</a> or <a href="#t_vector">vector</a>
> of integer
> +type. '<tt>var2</tt>' is treated as an unsigned value.</p>
>
> <h5>Semantics:</h5>
>
> @@ -2525,9 +2523,8 @@
>
> <h5>Arguments:</h5>
> <p>Both arguments to the '<tt>ashr</tt>' instruction must be the same
> -<a href="#t_integer">integer</a> type. '<tt>var2</tt>' is treated
> as an
> -unsigned value. This instruction does not support
> -<a href="#t_vector">vector</a> operands.</p>
> +<a href="#t_integer">integer</a> or <a href="#t_vector">vector</a>
> of integer
> +type. '<tt>var2</tt>' is treated as an unsigned value.</p>
>
> <h5>Semantics:</h5>
> <p>This instruction always performs an arithmetic shift right
> operation,
>
> Modified: llvm/trunk/lib/AsmParser/llvmAsmParser.cpp.cvs
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/AsmParser/llvmAsmParser.cpp.cvs?rev=54161&r1=54160&r2=54161&view=diff
>
> =
> =
> =
> =
> =
> =
> =
> =
> ======================================================================
> --- llvm/trunk/lib/AsmParser/llvmAsmParser.cpp.cvs (original)
> +++ llvm/trunk/lib/AsmParser/llvmAsmParser.cpp.cvs Tue Jul 29
> 10:49:41 2008
> @@ -388,7 +388,7 @@
>
>
> /* Copy the first part of user declarations. */
> -#line 14 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 14 "/llvm/lib/AsmParser/llvmAsmParser.y"
>
> #include "ParserInternals.h"
> #include "llvm/CallingConv.h"
> @@ -1362,7 +1362,7 @@
>
> #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
> typedef union YYSTYPE
> -#line 967 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 967 "/llvm/lib/AsmParser/llvmAsmParser.y"
> {
> llvm::Module *ModuleVal;
> llvm::Function *FunctionVal;
> @@ -3622,152 +3622,152 @@
> switch (yyn)
> {
> case 29:
> -#line 1138 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1138 "/llvm/lib/AsmParser/llvmAsmParser.y"
> { (yyval.IPredicate) = ICmpInst::ICMP_EQ; ;}
> break;
>
> case 30:
> -#line 1138 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1138 "/llvm/lib/AsmParser/llvmAsmParser.y"
> { (yyval.IPredicate) = ICmpInst::ICMP_NE; ;}
> break;
>
> case 31:
> -#line 1139 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1139 "/llvm/lib/AsmParser/llvmAsmParser.y"
> { (yyval.IPredicate) = ICmpInst::ICMP_SLT; ;}
> break;
>
> case 32:
> -#line 1139 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1139 "/llvm/lib/AsmParser/llvmAsmParser.y"
> { (yyval.IPredicate) = ICmpInst::ICMP_SGT; ;}
> break;
>
> case 33:
> -#line 1140 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1140 "/llvm/lib/AsmParser/llvmAsmParser.y"
> { (yyval.IPredicate) = ICmpInst::ICMP_SLE; ;}
> break;
>
> case 34:
> -#line 1140 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1140 "/llvm/lib/AsmParser/llvmAsmParser.y"
> { (yyval.IPredicate) = ICmpInst::ICMP_SGE; ;}
> break;
>
> case 35:
> -#line 1141 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1141 "/llvm/lib/AsmParser/llvmAsmParser.y"
> { (yyval.IPredicate) = ICmpInst::ICMP_ULT; ;}
> break;
>
> case 36:
> -#line 1141 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1141 "/llvm/lib/AsmParser/llvmAsmParser.y"
> { (yyval.IPredicate) = ICmpInst::ICMP_UGT; ;}
> break;
>
> case 37:
> -#line 1142 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1142 "/llvm/lib/AsmParser/llvmAsmParser.y"
> { (yyval.IPredicate) = ICmpInst::ICMP_ULE; ;}
> break;
>
> case 38:
> -#line 1142 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1142 "/llvm/lib/AsmParser/llvmAsmParser.y"
> { (yyval.IPredicate) = ICmpInst::ICMP_UGE; ;}
> break;
>
> case 39:
> -#line 1146 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1146 "/llvm/lib/AsmParser/llvmAsmParser.y"
> { (yyval.FPredicate) = FCmpInst::FCMP_OEQ; ;}
> break;
>
> case 40:
> -#line 1146 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1146 "/llvm/lib/AsmParser/llvmAsmParser.y"
> { (yyval.FPredicate) = FCmpInst::FCMP_ONE; ;}
> break;
>
> case 41:
> -#line 1147 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1147 "/llvm/lib/AsmParser/llvmAsmParser.y"
> { (yyval.FPredicate) = FCmpInst::FCMP_OLT; ;}
> break;
>
> case 42:
> -#line 1147 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1147 "/llvm/lib/AsmParser/llvmAsmParser.y"
> { (yyval.FPredicate) = FCmpInst::FCMP_OGT; ;}
> break;
>
> case 43:
> -#line 1148 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1148 "/llvm/lib/AsmParser/llvmAsmParser.y"
> { (yyval.FPredicate) = FCmpInst::FCMP_OLE; ;}
> break;
>
> case 44:
> -#line 1148 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1148 "/llvm/lib/AsmParser/llvmAsmParser.y"
> { (yyval.FPredicate) = FCmpInst::FCMP_OGE; ;}
> break;
>
> case 45:
> -#line 1149 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1149 "/llvm/lib/AsmParser/llvmAsmParser.y"
> { (yyval.FPredicate) = FCmpInst::FCMP_ORD; ;}
> break;
>
> case 46:
> -#line 1149 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1149 "/llvm/lib/AsmParser/llvmAsmParser.y"
> { (yyval.FPredicate) = FCmpInst::FCMP_UNO; ;}
> break;
>
> case 47:
> -#line 1150 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1150 "/llvm/lib/AsmParser/llvmAsmParser.y"
> { (yyval.FPredicate) = FCmpInst::FCMP_UEQ; ;}
> break;
>
> case 48:
> -#line 1150 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1150 "/llvm/lib/AsmParser/llvmAsmParser.y"
> { (yyval.FPredicate) = FCmpInst::FCMP_UNE; ;}
> break;
>
> case 49:
> -#line 1151 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1151 "/llvm/lib/AsmParser/llvmAsmParser.y"
> { (yyval.FPredicate) = FCmpInst::FCMP_ULT; ;}
> break;
>
> case 50:
> -#line 1151 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1151 "/llvm/lib/AsmParser/llvmAsmParser.y"
> { (yyval.FPredicate) = FCmpInst::FCMP_UGT; ;}
> break;
>
> case 51:
> -#line 1152 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1152 "/llvm/lib/AsmParser/llvmAsmParser.y"
> { (yyval.FPredicate) = FCmpInst::FCMP_ULE; ;}
> break;
>
> case 52:
> -#line 1152 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1152 "/llvm/lib/AsmParser/llvmAsmParser.y"
> { (yyval.FPredicate) = FCmpInst::FCMP_UGE; ;}
> break;
>
> case 53:
> -#line 1153 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1153 "/llvm/lib/AsmParser/llvmAsmParser.y"
> { (yyval.FPredicate) = FCmpInst::FCMP_TRUE; ;}
> break;
>
> case 54:
> -#line 1154 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1154 "/llvm/lib/AsmParser/llvmAsmParser.y"
> { (yyval.FPredicate) = FCmpInst::FCMP_FALSE; ;}
> break;
>
> case 65:
> -#line 1163 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1163 "/llvm/lib/AsmParser/llvmAsmParser.y"
> { (yyval.StrVal) = 0; ;}
> break;
>
> case 66:
> -#line 1165 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1165 "/llvm/lib/AsmParser/llvmAsmParser.y"
> { (yyval.UIntVal)=(yyvsp[(3) - (4)].UInt64Val); ;}
> break;
>
> case 67:
> -#line 1166 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1166 "/llvm/lib/AsmParser/llvmAsmParser.y"
> { (yyval.UIntVal)=0; ;}
> break;
>
> case 68:
> -#line 1170 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1170 "/llvm/lib/AsmParser/llvmAsmParser.y"
> {
> (yyval.StrVal) = (yyvsp[(1) - (2)].StrVal);
> CHECK_FOR_ERROR
> @@ -3775,7 +3775,7 @@
> break;
>
> case 69:
> -#line 1174 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1174 "/llvm/lib/AsmParser/llvmAsmParser.y"
> {
> (yyval.StrVal) = 0;
> CHECK_FOR_ERROR
> @@ -3783,7 +3783,7 @@
> break;
>
> case 73:
> -#line 1182 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1182 "/llvm/lib/AsmParser/llvmAsmParser.y"
> {
> (yyval.StrVal) = 0;
> CHECK_FOR_ERROR
> @@ -3791,7 +3791,7 @@
> break;
>
> case 74:
> -#line 1187 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1187 "/llvm/lib/AsmParser/llvmAsmParser.y"
> {
> (yyval.StrVal) = (yyvsp[(1) - (2)].StrVal);
> CHECK_FOR_ERROR
> @@ -3799,157 +3799,157 @@
> break;
>
> case 75:
> -#line 1193 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1193 "/llvm/lib/AsmParser/llvmAsmParser.y"
> { (yyval.Linkage) = GlobalValue::InternalLinkage; ;}
> break;
>
> case 76:
> -#line 1194 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1194 "/llvm/lib/AsmParser/llvmAsmParser.y"
> { (yyval.Linkage) = GlobalValue::WeakLinkage; ;}
> break;
>
> case 77:
> -#line 1195 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1195 "/llvm/lib/AsmParser/llvmAsmParser.y"
> { (yyval.Linkage) = GlobalValue::LinkOnceLinkage; ;}
> break;
>
> case 78:
> -#line 1196 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1196 "/llvm/lib/AsmParser/llvmAsmParser.y"
> { (yyval.Linkage) = GlobalValue::AppendingLinkage; ;}
> break;
>
> case 79:
> -#line 1197 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1197 "/llvm/lib/AsmParser/llvmAsmParser.y"
> { (yyval.Linkage) = GlobalValue::DLLExportLinkage; ;}
> break;
>
> case 80:
> -#line 1198 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1198 "/llvm/lib/AsmParser/llvmAsmParser.y"
> { (yyval.Linkage) = GlobalValue::CommonLinkage; ;}
> break;
>
> case 81:
> -#line 1202 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1202 "/llvm/lib/AsmParser/llvmAsmParser.y"
> { (yyval.Linkage) = GlobalValue::DLLImportLinkage; ;}
> break;
>
> case 82:
> -#line 1203 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1203 "/llvm/lib/AsmParser/llvmAsmParser.y"
> { (yyval.Linkage) = GlobalValue::ExternalWeakLinkage; ;}
> break;
>
> case 83:
> -#line 1204 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1204 "/llvm/lib/AsmParser/llvmAsmParser.y"
> { (yyval.Linkage) = GlobalValue::ExternalLinkage; ;}
> break;
>
> case 84:
> -#line 1208 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1208 "/llvm/lib/AsmParser/llvmAsmParser.y"
> { (yyval.Visibility) = GlobalValue::DefaultVisibility; ;}
> break;
>
> case 85:
> -#line 1209 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1209 "/llvm/lib/AsmParser/llvmAsmParser.y"
> { (yyval.Visibility) = GlobalValue::DefaultVisibility; ;}
> break;
>
> case 86:
> -#line 1210 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1210 "/llvm/lib/AsmParser/llvmAsmParser.y"
> { (yyval.Visibility) = GlobalValue::HiddenVisibility; ;}
> break;
>
> case 87:
> -#line 1211 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1211 "/llvm/lib/AsmParser/llvmAsmParser.y"
> { (yyval.Visibility) = GlobalValue::ProtectedVisibility; ;}
> break;
>
> case 88:
> -#line 1215 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1215 "/llvm/lib/AsmParser/llvmAsmParser.y"
> { (yyval.Linkage) = GlobalValue::ExternalLinkage; ;}
> break;
>
> case 89:
> -#line 1216 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1216 "/llvm/lib/AsmParser/llvmAsmParser.y"
> { (yyval.Linkage) = GlobalValue::DLLImportLinkage; ;}
> break;
>
> case 90:
> -#line 1217 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1217 "/llvm/lib/AsmParser/llvmAsmParser.y"
> { (yyval.Linkage) = GlobalValue::ExternalWeakLinkage; ;}
> break;
>
> case 91:
> -#line 1221 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1221 "/llvm/lib/AsmParser/llvmAsmParser.y"
> { (yyval.Linkage) = GlobalValue::ExternalLinkage; ;}
> break;
>
> case 92:
> -#line 1222 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1222 "/llvm/lib/AsmParser/llvmAsmParser.y"
> { (yyval.Linkage) = GlobalValue::InternalLinkage; ;}
> break;
>
> case 93:
> -#line 1223 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1223 "/llvm/lib/AsmParser/llvmAsmParser.y"
> { (yyval.Linkage) = GlobalValue::LinkOnceLinkage; ;}
> break;
>
> case 94:
> -#line 1224 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1224 "/llvm/lib/AsmParser/llvmAsmParser.y"
> { (yyval.Linkage) = GlobalValue::WeakLinkage; ;}
> break;
>
> case 95:
> -#line 1225 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1225 "/llvm/lib/AsmParser/llvmAsmParser.y"
> { (yyval.Linkage) = GlobalValue::DLLExportLinkage; ;}
> break;
>
> case 96:
> -#line 1229 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1229 "/llvm/lib/AsmParser/llvmAsmParser.y"
> { (yyval.Linkage) = GlobalValue::ExternalLinkage; ;}
> break;
>
> case 97:
> -#line 1230 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1230 "/llvm/lib/AsmParser/llvmAsmParser.y"
> { (yyval.Linkage) = GlobalValue::WeakLinkage; ;}
> break;
>
> case 98:
> -#line 1231 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1231 "/llvm/lib/AsmParser/llvmAsmParser.y"
> { (yyval.Linkage) = GlobalValue::InternalLinkage; ;}
> break;
>
> case 99:
> -#line 1234 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1234 "/llvm/lib/AsmParser/llvmAsmParser.y"
> { (yyval.UIntVal) = CallingConv::C; ;}
> break;
>
> case 100:
> -#line 1235 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1235 "/llvm/lib/AsmParser/llvmAsmParser.y"
> { (yyval.UIntVal) = CallingConv::C; ;}
> break;
>
> case 101:
> -#line 1236 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1236 "/llvm/lib/AsmParser/llvmAsmParser.y"
> { (yyval.UIntVal) = CallingConv::Fast; ;}
> break;
>
> case 102:
> -#line 1237 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1237 "/llvm/lib/AsmParser/llvmAsmParser.y"
> { (yyval.UIntVal) = CallingConv::Cold; ;}
> break;
>
> case 103:
> -#line 1238 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1238 "/llvm/lib/AsmParser/llvmAsmParser.y"
> { (yyval.UIntVal) = CallingConv::X86_StdCall; ;}
> break;
>
> case 104:
> -#line 1239 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1239 "/llvm/lib/AsmParser/llvmAsmParser.y"
> { (yyval.UIntVal) = CallingConv::X86_FastCall; ;}
> break;
>
> case 105:
> -#line 1240 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1240 "/llvm/lib/AsmParser/llvmAsmParser.y"
> {
> if ((unsigned)(yyvsp[(2) - (2)].UInt64Val) !=
> (yyvsp[(2) - (2)].UInt64Val))
> GEN_ERROR("Calling conv too large");
> @@ -3959,129 +3959,129 @@
> break;
>
> case 106:
> -#line 1247 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1247 "/llvm/lib/AsmParser/llvmAsmParser.y"
> { (yyval.ParamAttrs) = ParamAttr::ZExt; ;}
> break;
>
> case 107:
> -#line 1248 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1248 "/llvm/lib/AsmParser/llvmAsmParser.y"
> { (yyval.ParamAttrs) = ParamAttr::ZExt; ;}
> break;
>
> case 108:
> -#line 1249 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1249 "/llvm/lib/AsmParser/llvmAsmParser.y"
> { (yyval.ParamAttrs) = ParamAttr::SExt; ;}
> break;
>
> case 109:
> -#line 1250 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1250 "/llvm/lib/AsmParser/llvmAsmParser.y"
> { (yyval.ParamAttrs) = ParamAttr::SExt; ;}
> break;
>
> case 110:
> -#line 1251 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1251 "/llvm/lib/AsmParser/llvmAsmParser.y"
> { (yyval.ParamAttrs) = ParamAttr::InReg; ;}
> break;
>
> case 111:
> -#line 1252 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1252 "/llvm/lib/AsmParser/llvmAsmParser.y"
> { (yyval.ParamAttrs) = ParamAttr::StructRet; ;}
> break;
>
> case 112:
> -#line 1253 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1253 "/llvm/lib/AsmParser/llvmAsmParser.y"
> { (yyval.ParamAttrs) = ParamAttr::NoAlias; ;}
> break;
>
> case 113:
> -#line 1254 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1254 "/llvm/lib/AsmParser/llvmAsmParser.y"
> { (yyval.ParamAttrs) = ParamAttr::ByVal; ;}
> break;
>
> case 114:
> -#line 1255 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1255 "/llvm/lib/AsmParser/llvmAsmParser.y"
> { (yyval.ParamAttrs) = ParamAttr::Nest; ;}
> break;
>
> case 115:
> -#line 1256 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1256 "/llvm/lib/AsmParser/llvmAsmParser.y"
> { (yyval.ParamAttrs) =
>
> ParamAttr::constructAlignmentFromInt((yyvsp[(2) -
> (2)].UInt64Val)); ;}
> break;
>
> case 116:
> -#line 1260 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1260 "/llvm/lib/AsmParser/llvmAsmParser.y"
> { (yyval.ParamAttrs) = ParamAttr::None; ;}
> break;
>
> case 117:
> -#line 1261 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1261 "/llvm/lib/AsmParser/llvmAsmParser.y"
> {
> (yyval.ParamAttrs) = (yyvsp[(1) - (2)].ParamAttrs) |
> (yyvsp[(2) - (2)].ParamAttrs);
> ;}
> break;
>
> case 118:
> -#line 1266 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1266 "/llvm/lib/AsmParser/llvmAsmParser.y"
> { (yyval.ParamAttrs) = ParamAttr::NoReturn; ;}
> break;
>
> case 119:
> -#line 1267 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1267 "/llvm/lib/AsmParser/llvmAsmParser.y"
> { (yyval.ParamAttrs) = ParamAttr::NoUnwind; ;}
> break;
>
> case 120:
> -#line 1268 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1268 "/llvm/lib/AsmParser/llvmAsmParser.y"
> { (yyval.ParamAttrs) = ParamAttr::ZExt; ;}
> break;
>
> case 121:
> -#line 1269 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1269 "/llvm/lib/AsmParser/llvmAsmParser.y"
> { (yyval.ParamAttrs) = ParamAttr::SExt; ;}
> break;
>
> case 122:
> -#line 1270 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1270 "/llvm/lib/AsmParser/llvmAsmParser.y"
> { (yyval.ParamAttrs) = ParamAttr::ReadNone; ;}
> break;
>
> case 123:
> -#line 1271 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1271 "/llvm/lib/AsmParser/llvmAsmParser.y"
> { (yyval.ParamAttrs) = ParamAttr::ReadOnly; ;}
> break;
>
> case 124:
> -#line 1274 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1274 "/llvm/lib/AsmParser/llvmAsmParser.y"
> { (yyval.ParamAttrs) = ParamAttr::None; ;}
> break;
>
> case 125:
> -#line 1275 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1275 "/llvm/lib/AsmParser/llvmAsmParser.y"
> {
> (yyval.ParamAttrs) = (yyvsp[(1) - (2)].ParamAttrs) |
> (yyvsp[(2) - (2)].ParamAttrs);
> ;}
> break;
>
> case 126:
> -#line 1280 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1280 "/llvm/lib/AsmParser/llvmAsmParser.y"
> { (yyval.StrVal) = 0; ;}
> break;
>
> case 127:
> -#line 1281 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1281 "/llvm/lib/AsmParser/llvmAsmParser.y"
> {
> (yyval.StrVal) = (yyvsp[(2) - (2)].StrVal);
> ;}
> break;
>
> case 128:
> -#line 1288 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1288 "/llvm/lib/AsmParser/llvmAsmParser.y"
> { (yyval.UIntVal) = 0; ;}
> break;
>
> case 129:
> -#line 1289 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1289 "/llvm/lib/AsmParser/llvmAsmParser.y"
> {
> (yyval.UIntVal) = (yyvsp[(2) - (2)].UInt64Val);
> if ((yyval.UIntVal) != 0 && !isPowerOf2_32((yyval.UIntVal)))
> @@ -4091,12 +4091,12 @@
> break;
>
> case 130:
> -#line 1295 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1295 "/llvm/lib/AsmParser/llvmAsmParser.y"
> { (yyval.UIntVal) = 0; ;}
> break;
>
> case 131:
> -#line 1296 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1296 "/llvm/lib/AsmParser/llvmAsmParser.y"
> {
> (yyval.UIntVal) = (yyvsp[(3) - (3)].UInt64Val);
> if ((yyval.UIntVal) != 0 && !isPowerOf2_32((yyval.UIntVal)))
> @@ -4106,7 +4106,7 @@
> break;
>
> case 132:
> -#line 1305 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1305 "/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] == '\\')
> @@ -4117,27 +4117,27 @@
> break;
>
> case 133:
> -#line 1313 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1313 "/llvm/lib/AsmParser/llvmAsmParser.y"
> { (yyval.StrVal) = 0; ;}
> break;
>
> case 134:
> -#line 1314 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1314 "/llvm/lib/AsmParser/llvmAsmParser.y"
> { (yyval.StrVal) = (yyvsp[(1) - (1)].StrVal); ;}
> break;
>
> case 135:
> -#line 1319 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1319 "/llvm/lib/AsmParser/llvmAsmParser.y"
> {;}
> break;
>
> case 136:
> -#line 1320 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1320 "/llvm/lib/AsmParser/llvmAsmParser.y"
> {;}
> break;
>
> case 137:
> -#line 1321 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1321 "/llvm/lib/AsmParser/llvmAsmParser.y"
> {
> CurGV->setSection(*(yyvsp[(1) - (1)].StrVal));
> delete (yyvsp[(1) - (1)].StrVal);
> @@ -4146,7 +4146,7 @@
> break;
>
> case 138:
> -#line 1326 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1326 "/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");
> @@ -4156,7 +4156,7 @@
> break;
>
> case 146:
> -#line 1342 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1342 "/llvm/lib/AsmParser/llvmAsmParser.y"
> {
> (yyval.TypeVal) = new PATypeHolder(OpaqueType::get());
> CHECK_FOR_ERROR
> @@ -4164,7 +4164,7 @@
> break;
>
> case 147:
> -#line 1346 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1346 "/llvm/lib/AsmParser/llvmAsmParser.y"
> {
> (yyval.TypeVal) = new PATypeHolder((yyvsp[(1) - (1)].PrimType));
> CHECK_FOR_ERROR
> @@ -4172,7 +4172,7 @@
> break;
>
> case 148:
> -#line 1350 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1350 "/llvm/lib/AsmParser/llvmAsmParser.y"
> { // Pointer type?
> if (*(yyvsp[(1) - (3)].TypeVal) == Type::LabelTy)
> GEN_ERROR("Cannot form a pointer to a basic block");
> @@ -4183,7 +4183,7 @@
> break;
>
> case 149:
> -#line 1357 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1357 "/llvm/lib/AsmParser/llvmAsmParser.y"
> { // Named types are also simple types...
> const Type* tmp = getTypeVal((yyvsp[(1) - (1)].ValIDVal));
> CHECK_FOR_ERROR
> @@ -4192,7 +4192,7 @@
> break;
>
> case 150:
> -#line 1362 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1362 "/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
> @@ -4204,7 +4204,7 @@
> break;
>
> case 151:
> -#line 1370 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1370 "/llvm/lib/AsmParser/llvmAsmParser.y"
> {
> // Allow but ignore attributes on function types; this permits
> auto-upgrade.
> // FIXME: remove in LLVM 3.0.
> @@ -4237,7 +4237,7 @@
> break;
>
> case 152:
> -#line 1399 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1399 "/llvm/lib/AsmParser/llvmAsmParser.y"
> {
> // Allow but ignore attributes on function types; this permits
> auto-upgrade.
> // FIXME: remove in LLVM 3.0.
> @@ -4265,7 +4265,7 @@
> break;
>
> case 153:
> -#line 1424 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1424 "/llvm/lib/AsmParser/llvmAsmParser.y"
> { // Sized array type?
> (yyval.TypeVal) = new
> PATypeHolder(HandleUpRefs(ArrayType::get(*(yyvsp[(4) -
> (5)].TypeVal), (yyvsp[(2) - (5)].UInt64Val))));
> delete (yyvsp[(4) - (5)].TypeVal);
> @@ -4274,7 +4274,7 @@
> break;
>
> case 154:
> -#line 1429 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1429 "/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))
> @@ -4288,7 +4288,7 @@
> break;
>
> case 155:
> -#line 1439 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1439 "/llvm/lib/AsmParser/llvmAsmParser.y"
> { // Structure type?
> std::vector<const Type*> Elements;
> for (std::list<llvm::PATypeHolder>::iterator I = (yyvsp[(2) -
> (3)].TypeList)->begin(),
> @@ -4302,7 +4302,7 @@
> break;
>
> case 156:
> -#line 1449 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1449 "/llvm/lib/AsmParser/llvmAsmParser.y"
> { // Empty structure type?
> (yyval.TypeVal) = new
> PATypeHolder(StructType::get(std::vector<const Type*>()));
> CHECK_FOR_ERROR
> @@ -4310,7 +4310,7 @@
> break;
>
> case 157:
> -#line 1453 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1453 "/llvm/lib/AsmParser/llvmAsmParser.y"
> {
> std::vector<const Type*> Elements;
> for (std::list<llvm::PATypeHolder>::iterator I = (yyvsp[(3) -
> (5)].TypeList)->begin(),
> @@ -4324,7 +4324,7 @@
> break;
>
> case 158:
> -#line 1463 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1463 "/llvm/lib/AsmParser/llvmAsmParser.y"
> { // Empty structure type?
> (yyval.TypeVal) = new
> PATypeHolder(StructType::get(std::vector<const Type*>(), true));
> CHECK_FOR_ERROR
> @@ -4332,7 +4332,7 @@
> break;
>
> case 159:
> -#line 1470 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1470 "/llvm/lib/AsmParser/llvmAsmParser.y"
> {
> // Allow but ignore attributes on function types; this permits
> auto-upgrade.
> // FIXME: remove in LLVM 3.0.
> @@ -4342,7 +4342,7 @@
> break;
>
> case 160:
> -#line 1479 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1479 "/llvm/lib/AsmParser/llvmAsmParser.y"
> {
> if (!UpRefs.empty())
> GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[(1) -
> (1)].TypeVal))->getDescription());
> @@ -4353,14 +4353,14 @@
> break;
>
> case 161:
> -#line 1486 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1486 "/llvm/lib/AsmParser/llvmAsmParser.y"
> {
> (yyval.TypeVal) = new PATypeHolder(Type::VoidTy);
> ;}
> break;
>
> case 162:
> -#line 1491 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1491 "/llvm/lib/AsmParser/llvmAsmParser.y"
> {
> (yyval.TypeWithAttrsList) = new TypeWithAttrsList();
> (yyval.TypeWithAttrsList)->push_back((yyvsp[(1) -
> (1)].TypeWithAttrs));
> @@ -4369,7 +4369,7 @@
> break;
>
> case 163:
> -#line 1496 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1496 "/llvm/lib/AsmParser/llvmAsmParser.y"
> {
> ((yyval.TypeWithAttrsList)=(yyvsp[(1) - (3)].TypeWithAttrsList))-
> >push_back((yyvsp[(3) - (3)].TypeWithAttrs));
> CHECK_FOR_ERROR
> @@ -4377,7 +4377,7 @@
> break;
>
> case 165:
> -#line 1504 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1504 "/llvm/lib/AsmParser/llvmAsmParser.y"
> {
> (yyval.TypeWithAttrsList)=(yyvsp[(1) - (3)].TypeWithAttrsList);
> TypeWithAttrs TWA; TWA.Attrs = ParamAttr::None;
> @@ -4388,7 +4388,7 @@
> break;
>
> case 166:
> -#line 1511 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1511 "/llvm/lib/AsmParser/llvmAsmParser.y"
> {
> (yyval.TypeWithAttrsList) = new TypeWithAttrsList;
> TypeWithAttrs TWA; TWA.Attrs = ParamAttr::None;
> @@ -4399,7 +4399,7 @@
> break;
>
> case 167:
> -#line 1518 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1518 "/llvm/lib/AsmParser/llvmAsmParser.y"
> {
> (yyval.TypeWithAttrsList) = new TypeWithAttrsList();
> CHECK_FOR_ERROR
> @@ -4407,7 +4407,7 @@
> break;
>
> case 168:
> -#line 1526 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1526 "/llvm/lib/AsmParser/llvmAsmParser.y"
> {
> (yyval.TypeList) = new std::list<PATypeHolder>();
> (yyval.TypeList)->push_back(*(yyvsp[(1) - (1)].TypeVal));
> @@ -4417,7 +4417,7 @@
> break;
>
> case 169:
> -#line 1532 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1532 "/llvm/lib/AsmParser/llvmAsmParser.y"
> {
> ((yyval.TypeList)=(yyvsp[(1) - (3)].TypeList))-
> >push_back(*(yyvsp[(3) - (3)].TypeVal));
> delete (yyvsp[(3) - (3)].TypeVal);
> @@ -4426,7 +4426,7 @@
> break;
>
> case 170:
> -#line 1544 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1544 "/llvm/lib/AsmParser/llvmAsmParser.y"
> { // Nonempty unsized arr
> if (!UpRefs.empty())
> GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[(1) -
> (4)].TypeVal))->getDescription());
> @@ -4458,7 +4458,7 @@
> break;
>
> case 171:
> -#line 1572 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1572 "/llvm/lib/AsmParser/llvmAsmParser.y"
> {
> if (!UpRefs.empty())
> GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[(1) -
> (3)].TypeVal))->getDescription());
> @@ -4478,7 +4478,7 @@
> break;
>
> case 172:
> -#line 1588 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1588 "/llvm/lib/AsmParser/llvmAsmParser.y"
> {
> if (!UpRefs.empty())
> GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[(1) -
> (3)].TypeVal))->getDescription());
> @@ -4509,7 +4509,7 @@
> break;
>
> case 173:
> -#line 1615 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1615 "/llvm/lib/AsmParser/llvmAsmParser.y"
> { // Nonempty unsized arr
> if (!UpRefs.empty())
> GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[(1) -
> (4)].TypeVal))->getDescription());
> @@ -4541,7 +4541,7 @@
> break;
>
> case 174:
> -#line 1643 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1643 "/llvm/lib/AsmParser/llvmAsmParser.y"
> {
> const StructType *STy = dyn_cast<StructType>((yyvsp[(1) -
> (4)].TypeVal)->get());
> if (STy == 0)
> @@ -4571,7 +4571,7 @@
> break;
>
> case 175:
> -#line 1669 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1669 "/llvm/lib/AsmParser/llvmAsmParser.y"
> {
> if (!UpRefs.empty())
> GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[(1) -
> (3)].TypeVal))->getDescription());
> @@ -4595,7 +4595,7 @@
> break;
>
> case 176:
> -#line 1689 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1689 "/llvm/lib/AsmParser/llvmAsmParser.y"
> {
> const StructType *STy = dyn_cast<StructType>((yyvsp[(1) -
> (6)].TypeVal)->get());
> if (STy == 0)
> @@ -4625,7 +4625,7 @@
> break;
>
> case 177:
> -#line 1715 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1715 "/llvm/lib/AsmParser/llvmAsmParser.y"
> {
> if (!UpRefs.empty())
> GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[(1) -
> (5)].TypeVal))->getDescription());
> @@ -4649,7 +4649,7 @@
> break;
>
> case 178:
> -#line 1735 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1735 "/llvm/lib/AsmParser/llvmAsmParser.y"
> {
> if (!UpRefs.empty())
> GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[(1) -
> (2)].TypeVal))->getDescription());
> @@ -4665,7 +4665,7 @@
> break;
>
> case 179:
> -#line 1747 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1747 "/llvm/lib/AsmParser/llvmAsmParser.y"
> {
> if (!UpRefs.empty())
> GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[(1) -
> (2)].TypeVal))->getDescription());
> @@ -4676,7 +4676,7 @@
> break;
>
> case 180:
> -#line 1754 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1754 "/llvm/lib/AsmParser/llvmAsmParser.y"
> {
> if (!UpRefs.empty())
> GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[(1) -
> (2)].TypeVal))->getDescription());
> @@ -4746,7 +4746,7 @@
> break;
>
> case 181:
> -#line 1820 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1820 "/llvm/lib/AsmParser/llvmAsmParser.y"
> {
> if (!UpRefs.empty())
> GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[(1) -
> (2)].TypeVal))->getDescription());
> @@ -4760,7 +4760,7 @@
> break;
>
> case 182:
> -#line 1830 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1830 "/llvm/lib/AsmParser/llvmAsmParser.y"
> {
> if (!UpRefs.empty())
> GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[(1) -
> (2)].TypeVal))->getDescription());
> @@ -4774,7 +4774,7 @@
> break;
>
> case 183:
> -#line 1840 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1840 "/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");
> @@ -4784,7 +4784,7 @@
> break;
>
> case 184:
> -#line 1846 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1846 "/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) {
> @@ -4798,7 +4798,7 @@
> break;
>
> case 185:
> -#line 1856 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1856 "/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");
> @@ -4808,7 +4808,7 @@
> break;
>
> case 186:
> -#line 1862 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1862 "/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) {
> @@ -4822,7 +4822,7 @@
> break;
>
> case 187:
> -#line 1872 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1872 "/llvm/lib/AsmParser/llvmAsmParser.y"
> { // Boolean constants
> if (cast<IntegerType>((yyvsp[(1) - (2)].PrimType))-
> >getBitWidth() != 1)
> GEN_ERROR("Constant true must have type i1");
> @@ -4832,7 +4832,7 @@
> break;
>
> case 188:
> -#line 1878 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1878 "/llvm/lib/AsmParser/llvmAsmParser.y"
> { // Boolean constants
> if (cast<IntegerType>((yyvsp[(1) - (2)].PrimType))-
> >getBitWidth() != 1)
> GEN_ERROR("Constant false must have type i1");
> @@ -4842,7 +4842,7 @@
> break;
>
> case 189:
> -#line 1884 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1884 "/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");
> @@ -4857,7 +4857,7 @@
> break;
>
> case 190:
> -#line 1897 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1897 "/llvm/lib/AsmParser/llvmAsmParser.y"
> {
> if (!UpRefs.empty())
> GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[(5) -
> (6)].TypeVal))->getDescription());
> @@ -4873,7 +4873,7 @@
> break;
>
> case 191:
> -#line 1909 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1909 "/llvm/lib/AsmParser/llvmAsmParser.y"
> {
> if (!isa<PointerType>((yyvsp[(3) - (5)].ConstVal)->getType()))
> GEN_ERROR("GetElementPtr requires a pointer operand");
> @@ -4898,7 +4898,7 @@
> break;
>
> case 192:
> -#line 1930 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1930 "/llvm/lib/AsmParser/llvmAsmParser.y"
> {
> if ((yyvsp[(3) - (8)].ConstVal)->getType() != Type::Int1Ty)
> GEN_ERROR("Select condition must be of boolean type");
> @@ -4910,7 +4910,7 @@
> break;
>
> case 193:
> -#line 1938 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1938 "/llvm/lib/AsmParser/llvmAsmParser.y"
> {
> if ((yyvsp[(3) - (6)].ConstVal)->getType() != (yyvsp[(5) -
> (6)].ConstVal)->getType())
> GEN_ERROR("Binary operator types must match");
> @@ -4920,12 +4920,12 @@
> break;
>
> case 194:
> -#line 1944 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1944 "/llvm/lib/AsmParser/llvmAsmParser.y"
> {
> if ((yyvsp[(3) - (6)].ConstVal)->getType() != (yyvsp[(5) -
> (6)].ConstVal)->getType())
> GEN_ERROR("Logical operator types must match");
> if (!(yyvsp[(3) - (6)].ConstVal)->getType()->isInteger()) {
> - if (Instruction::isShift((yyvsp[(1) - (6)].BinaryOpVal)) || !
> isa<VectorType>((yyvsp[(3) - (6)].ConstVal)->getType()) ||
> + if (!isa<VectorType>((yyvsp[(3) - (6)].ConstVal)->getType()) ||
> !cast<VectorType>((yyvsp[(3) - (6)].ConstVal)->getType())-
> >getElementType()->isInteger())
> GEN_ERROR("Logical operator requires integral operands");
> }
> @@ -4935,7 +4935,7 @@
> break;
>
> case 195:
> -#line 1955 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1955 "/llvm/lib/AsmParser/llvmAsmParser.y"
> {
> if ((yyvsp[(4) - (7)].ConstVal)->getType() != (yyvsp[(6) -
> (7)].ConstVal)->getType())
> GEN_ERROR("icmp operand types must match");
> @@ -4944,7 +4944,7 @@
> break;
>
> case 196:
> -#line 1960 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1960 "/llvm/lib/AsmParser/llvmAsmParser.y"
> {
> if ((yyvsp[(4) - (7)].ConstVal)->getType() != (yyvsp[(6) -
> (7)].ConstVal)->getType())
> GEN_ERROR("fcmp operand types must match");
> @@ -4953,7 +4953,7 @@
> break;
>
> case 197:
> -#line 1965 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1965 "/llvm/lib/AsmParser/llvmAsmParser.y"
> {
> if ((yyvsp[(4) - (7)].ConstVal)->getType() != (yyvsp[(6) -
> (7)].ConstVal)->getType())
> GEN_ERROR("vicmp operand types must match");
> @@ -4962,7 +4962,7 @@
> break;
>
> case 198:
> -#line 1970 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1970 "/llvm/lib/AsmParser/llvmAsmParser.y"
> {
> if ((yyvsp[(4) - (7)].ConstVal)->getType() != (yyvsp[(6) -
> (7)].ConstVal)->getType())
> GEN_ERROR("vfcmp operand types must match");
> @@ -4971,7 +4971,7 @@
> break;
>
> case 199:
> -#line 1975 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1975 "/llvm/lib/AsmParser/llvmAsmParser.y"
> {
> if (!ExtractElementInst::isValidOperands((yyvsp[(3) -
> (6)].ConstVal), (yyvsp[(5) - (6)].ConstVal)))
> GEN_ERROR("Invalid extractelement operands");
> @@ -4981,7 +4981,7 @@
> break;
>
> case 200:
> -#line 1981 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1981 "/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");
> @@ -4991,7 +4991,7 @@
> break;
>
> case 201:
> -#line 1987 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1987 "/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");
> @@ -5001,7 +5001,7 @@
> break;
>
> case 202:
> -#line 1993 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 1993 "/llvm/lib/AsmParser/llvmAsmParser.y"
> {
> if (!isa<StructType>((yyvsp[(3) - (5)].ConstVal)->getType()) && !
> isa<ArrayType>((yyvsp[(3) - (5)].ConstVal)->getType()))
> GEN_ERROR("ExtractValue requires an aggregate operand");
> @@ -5013,7 +5013,7 @@
> break;
>
> case 203:
> -#line 2001 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 2001 "/llvm/lib/AsmParser/llvmAsmParser.y"
> {
> if (!isa<StructType>((yyvsp[(3) - (7)].ConstVal)->getType()) && !
> isa<ArrayType>((yyvsp[(3) - (7)].ConstVal)->getType()))
> GEN_ERROR("InsertValue requires an aggregate operand");
> @@ -5025,7 +5025,7 @@
> break;
>
> case 204:
> -#line 2012 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 2012 "/llvm/lib/AsmParser/llvmAsmParser.y"
> {
> ((yyval.ConstVector) = (yyvsp[(1) - (3)].ConstVector))-
> >push_back((yyvsp[(3) - (3)].ConstVal));
> CHECK_FOR_ERROR
> @@ -5033,7 +5033,7 @@
> break;
>
> case 205:
> -#line 2016 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 2016 "/llvm/lib/AsmParser/llvmAsmParser.y"
> {
> (yyval.ConstVector) = new std::vector<Constant*>();
> (yyval.ConstVector)->push_back((yyvsp[(1) - (1)].ConstVal));
> @@ -5042,27 +5042,27 @@
> break;
>
> case 206:
> -#line 2024 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 2024 "/llvm/lib/AsmParser/llvmAsmParser.y"
> { (yyval.BoolVal) = false; ;}
> break;
>
> case 207:
> -#line 2024 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 2024 "/llvm/lib/AsmParser/llvmAsmParser.y"
> { (yyval.BoolVal) = true; ;}
> break;
>
> case 208:
> -#line 2027 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 2027 "/llvm/lib/AsmParser/llvmAsmParser.y"
> { (yyval.BoolVal) = true; ;}
> break;
>
> case 209:
> -#line 2027 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 2027 "/llvm/lib/AsmParser/llvmAsmParser.y"
> { (yyval.BoolVal) = false; ;}
> break;
>
> case 210:
> -#line 2030 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 2030 "/llvm/lib/AsmParser/llvmAsmParser.y"
> {
> const Type* VTy = (yyvsp[(1) - (2)].TypeVal)->get();
> Value *V = getVal(VTy, (yyvsp[(2) - (2)].ValIDVal));
> @@ -5078,7 +5078,7 @@
> break;
>
> case 211:
> -#line 2042 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 2042 "/llvm/lib/AsmParser/llvmAsmParser.y"
> {
> Constant *Val = (yyvsp[(3) - (6)].ConstVal);
> const Type *DestTy = (yyvsp[(5) - (6)].TypeVal)->get();
> @@ -5094,7 +5094,7 @@
> break;
>
> case 212:
> -#line 2063 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 2063 "/llvm/lib/AsmParser/llvmAsmParser.y"
> {
> (yyval.ModuleVal) = ParserResult = CurModule.CurrentModule;
> CurModule.ModuleDone();
> @@ -5103,7 +5103,7 @@
> break;
>
> case 213:
> -#line 2068 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 2068 "/llvm/lib/AsmParser/llvmAsmParser.y"
> {
> (yyval.ModuleVal) = ParserResult = CurModule.CurrentModule;
> CurModule.ModuleDone();
> @@ -5112,12 +5112,12 @@
> break;
>
> case 216:
> -#line 2081 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 2081 "/llvm/lib/AsmParser/llvmAsmParser.y"
> { CurFun.isDeclare = false; ;}
> break;
>
> case 217:
> -#line 2081 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 2081 "/llvm/lib/AsmParser/llvmAsmParser.y"
> {
> CurFun.FunctionDone();
> CHECK_FOR_ERROR
> @@ -5125,26 +5125,26 @@
> break;
>
> case 218:
> -#line 2085 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 2085 "/llvm/lib/AsmParser/llvmAsmParser.y"
> { CurFun.isDeclare = true; ;}
> break;
>
> case 219:
> -#line 2085 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 2085 "/llvm/lib/AsmParser/llvmAsmParser.y"
> {
> CHECK_FOR_ERROR
> ;}
> break;
>
> case 220:
> -#line 2088 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 2088 "/llvm/lib/AsmParser/llvmAsmParser.y"
> {
> CHECK_FOR_ERROR
> ;}
> break;
>
> case 221:
> -#line 2091 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 2091 "/llvm/lib/AsmParser/llvmAsmParser.y"
> {
> if (!UpRefs.empty())
> GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[(3) -
> (3)].TypeVal))->getDescription());
> @@ -5172,7 +5172,7 @@
> break;
>
> case 222:
> -#line 2115 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 2115 "/llvm/lib/AsmParser/llvmAsmParser.y"
> {
> ResolveTypeTo((yyvsp[(1) - (3)].StrVal), (yyvsp[(3) -
> (3)].PrimType));
>
> @@ -5187,7 +5187,7 @@
> break;
>
> case 223:
> -#line 2127 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 2127 "/llvm/lib/AsmParser/llvmAsmParser.y"
> {
> /* "Externally Visible" Linkage */
> if ((yyvsp[(5) - (6)].ConstVal) == 0)
> @@ -5199,14 +5199,14 @@
> break;
>
> case 224:
> -#line 2134 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 2134 "/llvm/lib/AsmParser/llvmAsmParser.y"
> {
> CurGV = 0;
> ;}
> break;
>
> case 225:
> -#line 2138 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 2138 "/llvm/lib/AsmParser/llvmAsmParser.y"
> {
> if ((yyvsp[(6) - (7)].ConstVal) == 0)
> GEN_ERROR("Global value initializer is not a constant");
> @@ -5216,14 +5216,14 @@
> break;
>
> case 226:
> -#line 2143 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 2143 "/llvm/lib/AsmParser/llvmAsmParser.y"
> {
> CurGV = 0;
> ;}
> break;
>
> case 227:
> -#line 2147 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 2147 "/llvm/lib/AsmParser/llvmAsmParser.y"
> {
> if (!UpRefs.empty())
> GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[(6) -
> (7)].TypeVal))->getDescription());
> @@ -5234,7 +5234,7 @@
> break;
>
> case 228:
> -#line 2153 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 2153 "/llvm/lib/AsmParser/llvmAsmParser.y"
> {
> CurGV = 0;
> CHECK_FOR_ERROR
> @@ -5242,7 +5242,7 @@
> break;
>
> case 229:
> -#line 2157 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 2157 "/llvm/lib/AsmParser/llvmAsmParser.y"
> {
> std::string Name;
> if ((yyvsp[(1) - (5)].StrVal)) {
> @@ -5286,21 +5286,21 @@
> break;
>
> case 230:
> -#line 2197 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 2197 "/llvm/lib/AsmParser/llvmAsmParser.y"
> {
> CHECK_FOR_ERROR
> ;}
> break;
>
> case 231:
> -#line 2200 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 2200 "/llvm/lib/AsmParser/llvmAsmParser.y"
> {
> CHECK_FOR_ERROR
> ;}
> break;
>
> case 232:
> -#line 2206 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 2206 "/llvm/lib/AsmParser/llvmAsmParser.y"
> {
> const std::string &AsmSoFar = CurModule.CurrentModule-
> >getModuleInlineAsm();
> if (AsmSoFar.empty())
> @@ -5313,7 +5313,7 @@
> break;
>
> case 233:
> -#line 2216 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 2216 "/llvm/lib/AsmParser/llvmAsmParser.y"
> {
> CurModule.CurrentModule->setTargetTriple(*(yyvsp[(3) -
> (3)].StrVal));
> delete (yyvsp[(3) - (3)].StrVal);
> @@ -5321,7 +5321,7 @@
> break;
>
> case 234:
> -#line 2220 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 2220 "/llvm/lib/AsmParser/llvmAsmParser.y"
> {
> CurModule.CurrentModule->setDataLayout(*(yyvsp[(3) -
> (3)].StrVal));
> delete (yyvsp[(3) - (3)].StrVal);
> @@ -5329,7 +5329,7 @@
> break;
>
> case 236:
> -#line 2227 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 2227 "/llvm/lib/AsmParser/llvmAsmParser.y"
> {
> CurModule.CurrentModule->addLibrary(*(yyvsp[(3) -
> (3)].StrVal));
> delete (yyvsp[(3) - (3)].StrVal);
> @@ -5338,7 +5338,7 @@
> break;
>
> case 237:
> -#line 2232 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 2232 "/llvm/lib/AsmParser/llvmAsmParser.y"
> {
> CurModule.CurrentModule->addLibrary(*(yyvsp[(1) -
> (1)].StrVal));
> delete (yyvsp[(1) - (1)].StrVal);
> @@ -5347,14 +5347,14 @@
> break;
>
> case 238:
> -#line 2237 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 2237 "/llvm/lib/AsmParser/llvmAsmParser.y"
> {
> CHECK_FOR_ERROR
> ;}
> break;
>
> case 239:
> -#line 2246 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 2246 "/llvm/lib/AsmParser/llvmAsmParser.y"
> {
> if (!UpRefs.empty())
> GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[(3) -
> (5)].TypeVal))->getDescription());
> @@ -5368,7 +5368,7 @@
> break;
>
> case 240:
> -#line 2256 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 2256 "/llvm/lib/AsmParser/llvmAsmParser.y"
> {
> if (!UpRefs.empty())
> GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[(1) -
> (3)].TypeVal))->getDescription());
> @@ -5382,7 +5382,7 @@
> break;
>
> case 241:
> -#line 2267 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 2267 "/llvm/lib/AsmParser/llvmAsmParser.y"
> {
> (yyval.ArgList) = (yyvsp[(1) - (1)].ArgList);
> CHECK_FOR_ERROR
> @@ -5390,7 +5390,7 @@
> break;
>
> case 242:
> -#line 2271 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 2271 "/llvm/lib/AsmParser/llvmAsmParser.y"
> {
> (yyval.ArgList) = (yyvsp[(1) - (3)].ArgList);
> struct ArgListEntry E;
> @@ -5403,7 +5403,7 @@
> break;
>
> case 243:
> -#line 2280 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 2280 "/llvm/lib/AsmParser/llvmAsmParser.y"
> {
> (yyval.ArgList) = new ArgListType;
> struct ArgListEntry E;
> @@ -5416,7 +5416,7 @@
> break;
>
> case 244:
> -#line 2289 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 2289 "/llvm/lib/AsmParser/llvmAsmParser.y"
> {
> (yyval.ArgList) = 0;
> CHECK_FOR_ERROR
> @@ -5424,7 +5424,7 @@
> break;
>
> case 245:
> -#line 2295 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 2295 "/llvm/lib/AsmParser/llvmAsmParser.y"
> {
> std::string FunctionName(*(yyvsp[(3) - (10)].StrVal));
> delete (yyvsp[(3) - (10)].StrVal); // Free strdup'd memory!
> @@ -5555,7 +5555,7 @@
> break;
>
> case 248:
> -#line 2425 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 2425 "/llvm/lib/AsmParser/llvmAsmParser.y"
> {
> (yyval.FunctionVal) = CurFun.CurrentFunction;
>
> @@ -5567,7 +5567,7 @@
> break;
>
> case 251:
> -#line 2436 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 2436 "/llvm/lib/AsmParser/llvmAsmParser.y"
> {
> (yyval.FunctionVal) = (yyvsp[(1) - (2)].FunctionVal);
> CHECK_FOR_ERROR
> @@ -5575,7 +5575,7 @@
> break;
>
> case 252:
> -#line 2441 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 2441 "/llvm/lib/AsmParser/llvmAsmParser.y"
> {
> CurFun.CurrentFunction->setLinkage((yyvsp[(1) - (3)].Linkage));
> CurFun.CurrentFunction->setVisibility((yyvsp[(2) -
> (3)].Visibility));
> @@ -5586,7 +5586,7 @@
> break;
>
> case 253:
> -#line 2453 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 2453 "/llvm/lib/AsmParser/llvmAsmParser.y"
> {
> (yyval.BoolVal) = false;
> CHECK_FOR_ERROR
> @@ -5594,7 +5594,7 @@
> break;
>
> case 254:
> -#line 2457 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 2457 "/llvm/lib/AsmParser/llvmAsmParser.y"
> {
> (yyval.BoolVal) = true;
> CHECK_FOR_ERROR
> @@ -5602,7 +5602,7 @@
> break;
>
> case 255:
> -#line 2462 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 2462 "/llvm/lib/AsmParser/llvmAsmParser.y"
> { // A reference to a direct constant
> (yyval.ValIDVal) = ValID::create((yyvsp[(1) - (1)].SInt64Val));
> CHECK_FOR_ERROR
> @@ -5610,7 +5610,7 @@
> break;
>
> case 256:
> -#line 2466 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 2466 "/llvm/lib/AsmParser/llvmAsmParser.y"
> {
> (yyval.ValIDVal) = ValID::create((yyvsp[(1) - (1)].UInt64Val));
> CHECK_FOR_ERROR
> @@ -5618,7 +5618,7 @@
> break;
>
> case 257:
> -#line 2470 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 2470 "/llvm/lib/AsmParser/llvmAsmParser.y"
> { // arbitrary precision integer constants
> (yyval.ValIDVal) = ValID::create(*(yyvsp[(1) - (1)].APIntVal),
> true);
> delete (yyvsp[(1) - (1)].APIntVal);
> @@ -5627,7 +5627,7 @@
> break;
>
> case 258:
> -#line 2475 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 2475 "/llvm/lib/AsmParser/llvmAsmParser.y"
> { // arbitrary precision integer constants
> (yyval.ValIDVal) = ValID::create(*(yyvsp[(1) - (1)].APIntVal),
> false);
> delete (yyvsp[(1) - (1)].APIntVal);
> @@ -5636,7 +5636,7 @@
> break;
>
> case 259:
> -#line 2480 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 2480 "/llvm/lib/AsmParser/llvmAsmParser.y"
> { // Perhaps it's an FP constant?
> (yyval.ValIDVal) = ValID::create((yyvsp[(1) - (1)].FPVal));
> CHECK_FOR_ERROR
> @@ -5644,7 +5644,7 @@
> break;
>
> case 260:
> -#line 2484 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 2484 "/llvm/lib/AsmParser/llvmAsmParser.y"
> {
> (yyval.ValIDVal) = ValID::create(ConstantInt::getTrue());
> CHECK_FOR_ERROR
> @@ -5652,7 +5652,7 @@
> break;
>
> case 261:
> -#line 2488 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 2488 "/llvm/lib/AsmParser/llvmAsmParser.y"
> {
> (yyval.ValIDVal) = ValID::create(ConstantInt::getFalse());
> CHECK_FOR_ERROR
> @@ -5660,7 +5660,7 @@
> break;
>
> case 262:
> -#line 2492 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 2492 "/llvm/lib/AsmParser/llvmAsmParser.y"
> {
> (yyval.ValIDVal) = ValID::createNull();
> CHECK_FOR_ERROR
> @@ -5668,7 +5668,7 @@
> break;
>
> case 263:
> -#line 2496 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 2496 "/llvm/lib/AsmParser/llvmAsmParser.y"
> {
> (yyval.ValIDVal) = ValID::createUndef();
> CHECK_FOR_ERROR
> @@ -5676,7 +5676,7 @@
> break;
>
> case 264:
> -#line 2500 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 2500 "/llvm/lib/AsmParser/llvmAsmParser.y"
> { // A vector zero constant.
> (yyval.ValIDVal) = ValID::createZeroInit();
> CHECK_FOR_ERROR
> @@ -5684,7 +5684,7 @@
> break;
>
> case 265:
> -#line 2504 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 2504 "/llvm/lib/AsmParser/llvmAsmParser.y"
> { // Nonempty unsized packed vector
> const Type *ETy = (*(yyvsp[(2) - (3)].ConstVector))[0]->getType();
> unsigned NumElements = (yyvsp[(2) - (3)].ConstVector)->size();
> @@ -5710,7 +5710,7 @@
> break;
>
> case 266:
> -#line 2526 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 2526 "/llvm/lib/AsmParser/llvmAsmParser.y"
> { // Nonempty unsized arr
> const Type *ETy = (*(yyvsp[(2) - (3)].ConstVector))[0]->getType();
> uint64_t NumElements = (yyvsp[(2) - (3)].ConstVector)->size();
> @@ -5736,7 +5736,7 @@
> break;
>
> case 267:
> -#line 2548 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 2548 "/llvm/lib/AsmParser/llvmAsmParser.y"
> {
> // Use undef instead of an array because it's inconvenient to
> determine
> // the element type at this point, there being no elements to
> examine.
> @@ -5746,7 +5746,7 @@
> break;
>
> case 268:
> -#line 2554 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 2554 "/llvm/lib/AsmParser/llvmAsmParser.y"
> {
> uint64_t NumElements = (yyvsp[(2) - (2)].StrVal)->length();
> const Type *ETy = Type::Int8Ty;
> @@ -5763,7 +5763,7 @@
> break;
>
> case 269:
> -#line 2567 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 2567 "/llvm/lib/AsmParser/llvmAsmParser.y"
> {
> std::vector<const Type*> Elements((yyvsp[(2) - (3)].ConstVector)-
> >size());
> for (unsigned i = 0, e = (yyvsp[(2) - (3)].ConstVector)->size();
> i != e; ++i)
> @@ -5779,7 +5779,7 @@
> break;
>
> case 270:
> -#line 2579 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 2579 "/llvm/lib/AsmParser/llvmAsmParser.y"
> {
> const StructType *STy = StructType::get(std::vector<const
> Type*>());
> (yyval.ValIDVal) = ValID::create(ConstantStruct::get(STy,
> std::vector<Constant*>()));
> @@ -5788,7 +5788,7 @@
> break;
>
> case 271:
> -#line 2584 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 2584 "/llvm/lib/AsmParser/llvmAsmParser.y"
> {
> std::vector<const Type*> Elements((yyvsp[(3) - (5)].ConstVector)-
> >size());
> for (unsigned i = 0, e = (yyvsp[(3) - (5)].ConstVector)->size();
> i != e; ++i)
> @@ -5804,7 +5804,7 @@
> break;
>
> case 272:
> -#line 2596 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 2596 "/llvm/lib/AsmParser/llvmAsmParser.y"
> {
> const StructType *STy = StructType::get(std::vector<const
> Type*>(),
> /*isPacked=*/true);
> @@ -5814,7 +5814,7 @@
> break;
>
> case 273:
> -#line 2602 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 2602 "/llvm/lib/AsmParser/llvmAsmParser.y"
> {
> (yyval.ValIDVal) = ValID::create((yyvsp[(1) - (1)].ConstVal));
> CHECK_FOR_ERROR
> @@ -5822,7 +5822,7 @@
> break;
>
> case 274:
> -#line 2606 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 2606 "/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);
> @@ -5832,7 +5832,7 @@
> break;
>
> case 275:
> -#line 2616 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 2616 "/llvm/lib/AsmParser/llvmAsmParser.y"
> { // Is it an integer reference...?
> (yyval.ValIDVal) = ValID::createLocalID((yyvsp[(1) -
> (1)].UIntVal));
> CHECK_FOR_ERROR
> @@ -5840,7 +5840,7 @@
> break;
>
> case 276:
> -#line 2620 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 2620 "/llvm/lib/AsmParser/llvmAsmParser.y"
> {
> (yyval.ValIDVal) = ValID::createGlobalID((yyvsp[(1) -
> (1)].UIntVal));
> CHECK_FOR_ERROR
> @@ -5848,7 +5848,7 @@
> break;
>
> case 277:
> -#line 2624 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 2624 "/llvm/lib/AsmParser/llvmAsmParser.y"
> { // Is it a named reference...?
> (yyval.ValIDVal) = ValID::createLocalName(*(yyvsp[(1) -
> (1)].StrVal));
> delete (yyvsp[(1) - (1)].StrVal);
> @@ -5857,7 +5857,7 @@
> break;
>
> case 278:
> -#line 2629 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 2629 "/llvm/lib/AsmParser/llvmAsmParser.y"
> { // Is it a named reference...?
> (yyval.ValIDVal) = ValID::createGlobalName(*(yyvsp[(1) -
> (1)].StrVal));
> delete (yyvsp[(1) - (1)].StrVal);
> @@ -5866,7 +5866,7 @@
> break;
>
> case 281:
> -#line 2642 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 2642 "/llvm/lib/AsmParser/llvmAsmParser.y"
> {
> if (!UpRefs.empty())
> GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[(1) -
> (2)].TypeVal))->getDescription());
> @@ -5877,7 +5877,7 @@
> break;
>
> case 282:
> -#line 2651 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 2651 "/llvm/lib/AsmParser/llvmAsmParser.y"
> {
> (yyval.ValueList) = new std::vector<Value *>();
> (yyval.ValueList)->push_back((yyvsp[(1) - (1)].ValueVal));
> @@ -5886,7 +5886,7 @@
> break;
>
> case 283:
> -#line 2656 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 2656 "/llvm/lib/AsmParser/llvmAsmParser.y"
> {
> ((yyval.ValueList)=(yyvsp[(1) - (3)].ValueList))-
> >push_back((yyvsp[(3) - (3)].ValueVal));
> CHECK_FOR_ERROR
> @@ -5894,7 +5894,7 @@
> break;
>
> case 284:
> -#line 2661 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 2661 "/llvm/lib/AsmParser/llvmAsmParser.y"
> {
> (yyval.FunctionVal) = (yyvsp[(1) - (2)].FunctionVal);
> CHECK_FOR_ERROR
> @@ -5902,7 +5902,7 @@
> break;
>
> case 285:
> -#line 2665 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 2665 "/llvm/lib/AsmParser/llvmAsmParser.y"
> { // Do not allow functions with 0 basic blocks
> (yyval.FunctionVal) = (yyvsp[(1) - (2)].FunctionVal);
> CHECK_FOR_ERROR
> @@ -5910,7 +5910,7 @@
> break;
>
> case 286:
> -#line 2674 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 2674 "/llvm/lib/AsmParser/llvmAsmParser.y"
> {
> setValueName((yyvsp[(3) - (3)].TermInstVal), (yyvsp[(2) -
> (3)].StrVal));
> CHECK_FOR_ERROR
> @@ -5922,7 +5922,7 @@
> break;
>
> case 287:
> -#line 2683 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 2683 "/llvm/lib/AsmParser/llvmAsmParser.y"
> {
> if (CastInst *CI1 = dyn_cast<CastInst>((yyvsp[(2) -
> (2)].InstVal)))
> if (CastInst *CI2 = dyn_cast<CastInst>(CI1->getOperand(0)))
> @@ -5935,7 +5935,7 @@
> break;
>
> case 288:
> -#line 2692 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 2692 "/llvm/lib/AsmParser/llvmAsmParser.y"
> { // Empty space between instruction lists
> (yyval.BasicBlockVal) =
> defineBBVal(ValID::createLocalID(CurFun.NextValNum));
> CHECK_FOR_ERROR
> @@ -5943,7 +5943,7 @@
> break;
>
> case 289:
> -#line 2696 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 2696 "/llvm/lib/AsmParser/llvmAsmParser.y"
> { // Labelled (named) basic block
> (yyval.BasicBlockVal) =
> defineBBVal(ValID::createLocalName(*(yyvsp[(1) - (1)].StrVal)));
> delete (yyvsp[(1) - (1)].StrVal);
> @@ -5953,7 +5953,7 @@
> break;
>
> case 290:
> -#line 2704 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 2704 "/llvm/lib/AsmParser/llvmAsmParser.y"
> { // Return with a result...
> ValueList &VL = *(yyvsp[(2) - (2)].ValueList);
> assert(!VL.empty() && "Invalid ret operands!");
> @@ -5977,7 +5977,7 @@
> break;
>
> case 291:
> -#line 2724 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 2724 "/llvm/lib/AsmParser/llvmAsmParser.y"
> { // Return with no result...
> (yyval.TermInstVal) = ReturnInst::Create();
> CHECK_FOR_ERROR
> @@ -5985,7 +5985,7 @@
> break;
>
> case 292:
> -#line 2728 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 2728 "/llvm/lib/AsmParser/llvmAsmParser.y"
> { // Unconditional Branch...
> BasicBlock* tmpBB = getBBVal((yyvsp[(3) - (3)].ValIDVal));
> CHECK_FOR_ERROR
> @@ -5994,7 +5994,7 @@
> break;
>
> case 293:
> -#line 2733 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 2733 "/llvm/lib/AsmParser/llvmAsmParser.y"
> {
> if (cast<IntegerType>((yyvsp[(2) - (9)].PrimType))-
> >getBitWidth() != 1)
> GEN_ERROR("Branch condition must have type i1");
> @@ -6009,7 +6009,7 @@
> break;
>
> case 294:
> -#line 2744 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 2744 "/llvm/lib/AsmParser/llvmAsmParser.y"
> {
> Value* tmpVal = getVal((yyvsp[(2) - (9)].PrimType), (yyvsp[(3) -
> (9)].ValIDVal));
> CHECK_FOR_ERROR
> @@ -6032,7 +6032,7 @@
> break;
>
> case 295:
> -#line 2763 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 2763 "/llvm/lib/AsmParser/llvmAsmParser.y"
> {
> Value* tmpVal = getVal((yyvsp[(2) - (8)].PrimType), (yyvsp[(3) -
> (8)].ValIDVal));
> CHECK_FOR_ERROR
> @@ -6045,7 +6045,7 @@
> break;
>
> case 296:
> -#line 2773 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 2773 "/llvm/lib/AsmParser/llvmAsmParser.y"
> {
>
> // Handle the short syntax
> @@ -6134,7 +6134,7 @@
> break;
>
> case 297:
> -#line 2858 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 2858 "/llvm/lib/AsmParser/llvmAsmParser.y"
> {
> (yyval.TermInstVal) = new UnwindInst();
> CHECK_FOR_ERROR
> @@ -6142,7 +6142,7 @@
> break;
>
> case 298:
> -#line 2862 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 2862 "/llvm/lib/AsmParser/llvmAsmParser.y"
> {
> (yyval.TermInstVal) = new UnreachableInst();
> CHECK_FOR_ERROR
> @@ -6150,7 +6150,7 @@
> break;
>
> case 299:
> -#line 2869 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 2869 "/llvm/lib/AsmParser/llvmAsmParser.y"
> {
> (yyval.JumpTable) = (yyvsp[(1) - (6)].JumpTable);
> Constant *V = cast<Constant>(getExistingVal((yyvsp[(2) -
> (6)].PrimType), (yyvsp[(3) - (6)].ValIDVal)));
> @@ -6165,7 +6165,7 @@
> break;
>
> case 300:
> -#line 2880 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 2880 "/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)));
> @@ -6181,7 +6181,7 @@
> break;
>
> case 301:
> -#line 2893 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 2893 "/llvm/lib/AsmParser/llvmAsmParser.y"
> {
> // Is this definition named?? if so, assign the name...
> setValueName((yyvsp[(2) - (2)].InstVal), (yyvsp[(1) -
> (2)].StrVal));
> @@ -6193,7 +6193,7 @@
> break;
>
> case 302:
> -#line 2903 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 2903 "/llvm/lib/AsmParser/llvmAsmParser.y"
> { // Used for PHI nodes
> if (!UpRefs.empty())
> GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[(1) -
> (6)].TypeVal))->getDescription());
> @@ -6208,7 +6208,7 @@
> break;
>
> case 303:
> -#line 2914 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 2914 "/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));
> @@ -6220,7 +6220,7 @@
> break;
>
> case 304:
> -#line 2924 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 2924 "/llvm/lib/AsmParser/llvmAsmParser.y"
> {
> // FIXME: Remove trailing OptParamAttrs in LLVM 3.0, it was a
> mistake in 2.0
> if (!UpRefs.empty())
> @@ -6235,7 +6235,7 @@
> break;
>
> case 305:
> -#line 2935 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 2935 "/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
> @@ -6247,7 +6247,7 @@
> break;
>
> case 306:
> -#line 2943 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 2943 "/llvm/lib/AsmParser/llvmAsmParser.y"
> {
> // FIXME: Remove trailing OptParamAttrs in LLVM 3.0, it was a
> mistake in 2.0
> if (!UpRefs.empty())
> @@ -6261,7 +6261,7 @@
> break;
>
> case 307:
> -#line 2953 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 2953 "/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);
> @@ -6272,17 +6272,17 @@
> break;
>
> case 308:
> -#line 2960 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 2960 "/llvm/lib/AsmParser/llvmAsmParser.y"
> { (yyval.ParamList) = new ParamList(); ;}
> break;
>
> case 309:
> -#line 2963 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 2963 "/llvm/lib/AsmParser/llvmAsmParser.y"
> { (yyval.ValueList) = new std::vector<Value*>(); ;}
> break;
>
> case 310:
> -#line 2964 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 2964 "/llvm/lib/AsmParser/llvmAsmParser.y"
> {
> (yyval.ValueList) = (yyvsp[(1) - (3)].ValueList);
> (yyval.ValueList)->push_back((yyvsp[(3) - (3)].ValueVal));
> @@ -6291,7 +6291,7 @@
> break;
>
> case 311:
> -#line 2972 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 2972 "/llvm/lib/AsmParser/llvmAsmParser.y"
> {
> (yyval.ConstantList) = new std::vector<unsigned>();
> if ((unsigned)(yyvsp[(2) - (2)].UInt64Val) != (yyvsp[(2) -
> (2)].UInt64Val))
> @@ -6301,7 +6301,7 @@
> break;
>
> case 312:
> -#line 2978 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 2978 "/llvm/lib/AsmParser/llvmAsmParser.y"
> {
> (yyval.ConstantList) = (yyvsp[(1) - (3)].ConstantList);
> if ((unsigned)(yyvsp[(3) - (3)].UInt64Val) != (yyvsp[(3) -
> (3)].UInt64Val))
> @@ -6312,7 +6312,7 @@
> break;
>
> case 313:
> -#line 2987 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 2987 "/llvm/lib/AsmParser/llvmAsmParser.y"
> {
> (yyval.BoolVal) = true;
> CHECK_FOR_ERROR
> @@ -6320,7 +6320,7 @@
> break;
>
> case 314:
> -#line 2991 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 2991 "/llvm/lib/AsmParser/llvmAsmParser.y"
> {
> (yyval.BoolVal) = false;
> CHECK_FOR_ERROR
> @@ -6328,7 +6328,7 @@
> break;
>
> case 315:
> -#line 2996 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 2996 "/llvm/lib/AsmParser/llvmAsmParser.y"
> {
> if (!UpRefs.empty())
> GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[(2) -
> (5)].TypeVal))->getDescription());
> @@ -6348,12 +6348,12 @@
> break;
>
> case 316:
> -#line 3012 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 3012 "/llvm/lib/AsmParser/llvmAsmParser.y"
> {
> if (!UpRefs.empty())
> GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[(2) -
> (5)].TypeVal))->getDescription());
> if (!(*(yyvsp[(2) - (5)].TypeVal))->isInteger()) {
> - if (Instruction::isShift((yyvsp[(1) - (5)].BinaryOpVal)) || !
> isa<VectorType>((yyvsp[(2) - (5)].TypeVal)->get()) ||
> + if (!isa<VectorType>((yyvsp[(2) - (5)].TypeVal)->get()) ||
> !cast<VectorType>((yyvsp[(2) - (5)].TypeVal)->get())-
> >getElementType()->isInteger())
> GEN_ERROR("Logical operator requires integral operands");
> }
> @@ -6369,7 +6369,7 @@
> break;
>
> case 317:
> -#line 3029 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 3029 "/llvm/lib/AsmParser/llvmAsmParser.y"
> {
> if (!UpRefs.empty())
> GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[(3) -
> (6)].TypeVal))->getDescription());
> @@ -6387,7 +6387,7 @@
> break;
>
> case 318:
> -#line 3043 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 3043 "/llvm/lib/AsmParser/llvmAsmParser.y"
> {
> if (!UpRefs.empty())
> GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[(3) -
> (6)].TypeVal))->getDescription());
> @@ -6405,7 +6405,7 @@
> break;
>
> case 319:
> -#line 3057 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 3057 "/llvm/lib/AsmParser/llvmAsmParser.y"
> {
> if (!UpRefs.empty())
> GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[(3) -
> (6)].TypeVal))->getDescription());
> @@ -6423,7 +6423,7 @@
> break;
>
> case 320:
> -#line 3071 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 3071 "/llvm/lib/AsmParser/llvmAsmParser.y"
> {
> if (!UpRefs.empty())
> GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[(3) -
> (6)].TypeVal))->getDescription());
> @@ -6441,7 +6441,7 @@
> break;
>
> case 321:
> -#line 3085 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 3085 "/llvm/lib/AsmParser/llvmAsmParser.y"
> {
> if (!UpRefs.empty())
> GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[(4) -
> (4)].TypeVal))->getDescription());
> @@ -6457,7 +6457,7 @@
> break;
>
> case 322:
> -#line 3097 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 3097 "/llvm/lib/AsmParser/llvmAsmParser.y"
> {
> if ((yyvsp[(2) - (6)].ValueVal)->getType() != Type::Int1Ty)
> GEN_ERROR("select condition must be boolean");
> @@ -6469,7 +6469,7 @@
> break;
>
> case 323:
> -#line 3105 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 3105 "/llvm/lib/AsmParser/llvmAsmParser.y"
> {
> if (!UpRefs.empty())
> GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[(4) -
> (4)].TypeVal))->getDescription());
> @@ -6480,7 +6480,7 @@
> break;
>
> case 324:
> -#line 3112 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 3112 "/llvm/lib/AsmParser/llvmAsmParser.y"
> {
> if (!ExtractElementInst::isValidOperands((yyvsp[(2) -
> (4)].ValueVal), (yyvsp[(4) - (4)].ValueVal)))
> GEN_ERROR("Invalid extractelement operands");
> @@ -6490,7 +6490,7 @@
> break;
>
> case 325:
> -#line 3118 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 3118 "/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");
> @@ -6500,7 +6500,7 @@
> break;
>
> case 326:
> -#line 3124 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 3124 "/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");
> @@ -6510,7 +6510,7 @@
> break;
>
> case 327:
> -#line 3130 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 3130 "/llvm/lib/AsmParser/llvmAsmParser.y"
> {
> const Type *Ty = (yyvsp[(2) - (2)].PHIList)->front().first-
> >getType();
> if (!Ty->isFirstClassType())
> @@ -6529,7 +6529,7 @@
> break;
>
> case 328:
> -#line 3146 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 3146 "/llvm/lib/AsmParser/llvmAsmParser.y"
> {
>
> // Handle the short syntax
> @@ -6622,7 +6622,7 @@
> break;
>
> case 329:
> -#line 3235 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 3235 "/llvm/lib/AsmParser/llvmAsmParser.y"
> {
> (yyval.InstVal) = (yyvsp[(1) - (1)].InstVal);
> CHECK_FOR_ERROR
> @@ -6630,7 +6630,7 @@
> break;
>
> case 330:
> -#line 3240 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 3240 "/llvm/lib/AsmParser/llvmAsmParser.y"
> {
> (yyval.BoolVal) = true;
> CHECK_FOR_ERROR
> @@ -6638,7 +6638,7 @@
> break;
>
> case 331:
> -#line 3244 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 3244 "/llvm/lib/AsmParser/llvmAsmParser.y"
> {
> (yyval.BoolVal) = false;
> CHECK_FOR_ERROR
> @@ -6646,7 +6646,7 @@
> break;
>
> case 332:
> -#line 3251 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 3251 "/llvm/lib/AsmParser/llvmAsmParser.y"
> {
> if (!UpRefs.empty())
> GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[(2) -
> (3)].TypeVal))->getDescription());
> @@ -6657,7 +6657,7 @@
> break;
>
> case 333:
> -#line 3258 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 3258 "/llvm/lib/AsmParser/llvmAsmParser.y"
> {
> if (!UpRefs.empty())
> GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[(2) -
> (6)].TypeVal))->getDescription());
> @@ -6671,7 +6671,7 @@
> break;
>
> case 334:
> -#line 3268 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 3268 "/llvm/lib/AsmParser/llvmAsmParser.y"
> {
> if (!UpRefs.empty())
> GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[(2) -
> (3)].TypeVal))->getDescription());
> @@ -6682,7 +6682,7 @@
> break;
>
> case 335:
> -#line 3275 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 3275 "/llvm/lib/AsmParser/llvmAsmParser.y"
> {
> if (!UpRefs.empty())
> GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[(2) -
> (6)].TypeVal))->getDescription());
> @@ -6696,7 +6696,7 @@
> break;
>
> case 336:
> -#line 3285 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 3285 "/llvm/lib/AsmParser/llvmAsmParser.y"
> {
> if (!isa<PointerType>((yyvsp[(2) - (2)].ValueVal)->getType()))
> GEN_ERROR("Trying to free nonpointer type " +
> @@ -6707,7 +6707,7 @@
> break;
>
> case 337:
> -#line 3293 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 3293 "/llvm/lib/AsmParser/llvmAsmParser.y"
> {
> if (!UpRefs.empty())
> GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[(3) -
> (5)].TypeVal))->getDescription());
> @@ -6725,7 +6725,7 @@
> break;
>
> case 338:
> -#line 3307 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 3307 "/llvm/lib/AsmParser/llvmAsmParser.y"
> {
> if (!UpRefs.empty())
> GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[(5) -
> (7)].TypeVal))->getDescription());
> @@ -6746,7 +6746,7 @@
> break;
>
> case 339:
> -#line 3324 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 3324 "/llvm/lib/AsmParser/llvmAsmParser.y"
> {
> if (!UpRefs.empty())
> GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[(2) -
> (5)].TypeVal))->getDescription());
> @@ -6764,7 +6764,7 @@
> break;
>
> case 340:
> -#line 3338 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 3338 "/llvm/lib/AsmParser/llvmAsmParser.y"
> {
> if (!UpRefs.empty())
> GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[(2) -
> (4)].TypeVal))->getDescription());
> @@ -6783,7 +6783,7 @@
> break;
>
> case 341:
> -#line 3353 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 3353 "/llvm/lib/AsmParser/llvmAsmParser.y"
> {
> if (!UpRefs.empty())
> GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[(2) -
> (4)].TypeVal))->getDescription());
> @@ -6802,7 +6802,7 @@
> break;
>
> case 342:
> -#line 3368 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 3368 "/llvm/lib/AsmParser/llvmAsmParser.y"
> {
> if (!UpRefs.empty())
> GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[(2) -
> (7)].TypeVal))->getDescription());
> @@ -7038,7 +7038,7 @@
> }
>
>
> -#line 3387 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 3387 "/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=54161&r1=54160&r2=54161&view=diff
>
> =
> =
> =
> =
> =
> =
> =
> =
> ======================================================================
> --- llvm/trunk/lib/AsmParser/llvmAsmParser.h.cvs (original)
> +++ llvm/trunk/lib/AsmParser/llvmAsmParser.h.cvs Tue Jul 29 10:49:41
> 2008
> @@ -354,7 +354,7 @@
>
> #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
> typedef union YYSTYPE
> -#line 967 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
> +#line 967 "/llvm/lib/AsmParser/llvmAsmParser.y"
> {
> llvm::Module *ModuleVal;
> llvm::Function *FunctionVal;
>
> Modified: llvm/trunk/lib/AsmParser/llvmAsmParser.y
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/AsmParser/llvmAsmParser.y?rev=54161&r1=54160&r2=54161&view=diff
>
> =
> =
> =
> =
> =
> =
> =
> =
> ======================================================================
> --- llvm/trunk/lib/AsmParser/llvmAsmParser.y (original)
> +++ llvm/trunk/lib/AsmParser/llvmAsmParser.y Tue Jul 29 10:49:41 2008
> @@ -1945,7 +1945,7 @@
> if ($3->getType() != $5->getType())
> GEN_ERROR("Logical operator types must match");
> if (!$3->getType()->isInteger()) {
> - if (Instruction::isShift($1) || !isa<VectorType>($3-
> >getType()) ||
> + if (!isa<VectorType>($3->getType()) ||
> !cast<VectorType>($3->getType())->getElementType()-
> >isInteger())
> GEN_ERROR("Logical operator requires integral operands");
> }
> @@ -3013,7 +3013,7 @@
> if (!UpRefs.empty())
> GEN_ERROR("Invalid upreference in type: " + (*$2)-
> >getDescription());
> if (!(*$2)->isInteger()) {
> - if (Instruction::isShift($1) || !isa<VectorType>($2->get()) ||
> + if (!isa<VectorType>($2->get()) ||
> !cast<VectorType>($2->get())->getElementType()->isInteger())
> GEN_ERROR("Logical operator requires integral operands");
> }
>
> Modified: llvm/trunk/lib/AsmParser/llvmAsmParser.y.cvs
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/AsmParser/llvmAsmParser.y.cvs?rev=54161&r1=54160&r2=54161&view=diff
>
> =
> =
> =
> =
> =
> =
> =
> =
> ======================================================================
> --- llvm/trunk/lib/AsmParser/llvmAsmParser.y.cvs (original)
> +++ llvm/trunk/lib/AsmParser/llvmAsmParser.y.cvs Tue Jul 29 10:49:41
> 2008
> @@ -1945,7 +1945,7 @@
> if ($3->getType() != $5->getType())
> GEN_ERROR("Logical operator types must match");
> if (!$3->getType()->isInteger()) {
> - if (Instruction::isShift($1) || !isa<VectorType>($3-
> >getType()) ||
> + if (!isa<VectorType>($3->getType()) ||
> !cast<VectorType>($3->getType())->getElementType()-
> >isInteger())
> GEN_ERROR("Logical operator requires integral operands");
> }
> @@ -3013,7 +3013,7 @@
> if (!UpRefs.empty())
> GEN_ERROR("Invalid upreference in type: " + (*$2)-
> >getDescription());
> if (!(*$2)->isInteger()) {
> - if (Instruction::isShift($1) || !isa<VectorType>($2->get()) ||
> + if (!isa<VectorType>($2->get()) ||
> !cast<VectorType>($2->get())->getElementType()->isInteger())
> GEN_ERROR("Logical operator requires integral operands");
> }
>
> Modified: llvm/trunk/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp?rev=54161&r1=54160&r2=54161&view=diff
>
> =
> =
> =
> =
> =
> =
> =
> =
> ======================================================================
> --- llvm/trunk/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp (original)
> +++ llvm/trunk/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp Tue Jul 29
> 10:49:41 2008
> @@ -2958,7 +2958,17 @@
> Tmp2 = PromoteOp(Node->getOperand(1)); // Promote the RHS.
> break;
> }
> -
> +
> + if ((Node->getOpcode() == ISD::SHL ||
> + Node->getOpcode() == ISD::SRL ||
> + Node->getOpcode() == ISD::SRA) &&
> + !Node->getValueType(0).isVector()) {
> + if (TLI.getShiftAmountTy().bitsLT(Tmp2.getValueType()))
> + Tmp2 = DAG.getNode(ISD::TRUNCATE, TLI.getShiftAmountTy(),
> Tmp2);
> + else if (TLI.getShiftAmountTy().bitsGT(Tmp2.getValueType()))
> + Tmp2 = DAG.getNode(ISD::ANY_EXTEND, TLI.getShiftAmountTy(),
> Tmp2);
> + }
> +
> Result = DAG.UpdateNodeOperands(Result, Tmp1, Tmp2);
>
> switch (TLI.getOperationAction(Node->getOpcode(), Node-
> >getValueType(0))) {
> @@ -2966,8 +2976,11 @@
> case TargetLowering::Legal: break;
> case TargetLowering::Custom:
> Tmp1 = TLI.LowerOperation(Result, DAG);
> - if (Tmp1.Val) Result = Tmp1;
> - break;
> + if (Tmp1.Val) {
> + Result = Tmp1;
> + break;
> + }
> + // Fall through if the custom lower can't deal with the
> operation
> case TargetLowering::Expand: {
> MVT VT = Op.getValueType();
>
>
> Modified: llvm/trunk/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp?rev=54161&r1=54160&r2=54161&view=diff
>
> =
> =
> =
> =
> =
> =
> =
> =
> ======================================================================
> --- llvm/trunk/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
> (original)
> +++ llvm/trunk/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp Tue Jul
> 29 10:49:41 2008
> @@ -2407,11 +2407,12 @@
> void SelectionDAGLowering::visitShift(User &I, unsigned Opcode) {
> SDValue Op1 = getValue(I.getOperand(0));
> SDValue Op2 = getValue(I.getOperand(1));
> -
> - if (TLI.getShiftAmountTy().bitsLT(Op2.getValueType()))
> - Op2 = DAG.getNode(ISD::TRUNCATE, TLI.getShiftAmountTy(), Op2);
> - else if (TLI.getShiftAmountTy().bitsGT(Op2.getValueType()))
> - Op2 = DAG.getNode(ISD::ANY_EXTEND, TLI.getShiftAmountTy(), Op2);
> + if (!isa<VectorType>(I.getType())) {
> + if (TLI.getShiftAmountTy().bitsLT(Op2.getValueType()))
> + Op2 = DAG.getNode(ISD::TRUNCATE, TLI.getShiftAmountTy(), Op2);
> + else if (TLI.getShiftAmountTy().bitsGT(Op2.getValueType()))
> + Op2 = DAG.getNode(ISD::ANY_EXTEND, TLI.getShiftAmountTy(),
> Op2);
> + }
>
> setValue(&I, DAG.getNode(Opcode, Op1.getValueType(), Op1, Op2));
> }
>
> Modified: llvm/trunk/lib/Transforms/Scalar/InstructionCombining.cpp
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Transforms/Scalar/InstructionCombining.cpp?rev=54161&r1=54160&r2=54161&view=diff
>
> =
> =
> =
> =
> =
> =
> =
> =
> ======================================================================
> --- llvm/trunk/lib/Transforms/Scalar/InstructionCombining.cpp
> (original)
> +++ llvm/trunk/lib/Transforms/Scalar/InstructionCombining.cpp Tue
> Jul 29 10:49:41 2008
> @@ -6368,7 +6368,8 @@
> return ReplaceInstUsesWith(I, CSI);
>
> // See if we can turn a signed shr into an unsigned shr.
> - if (MaskedValueIsZero(Op0,
> + if (!isa<VectorType>(I.getType()) &&
> + MaskedValueIsZero(Op0,
> APInt::getSignBit(I.getType()-
> >getPrimitiveSizeInBits())))
> return BinaryOperator::CreateLShr(Op0, I.getOperand(1));
>
>
> Modified: llvm/trunk/lib/VMCore/Instructions.cpp
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/VMCore/Instructions.cpp?rev=54161&r1=54160&r2=54161&view=diff
>
> =
> =
> =
> =
> =
> =
> =
> =
> ======================================================================
> --- llvm/trunk/lib/VMCore/Instructions.cpp (original)
> +++ llvm/trunk/lib/VMCore/Instructions.cpp Tue Jul 29 10:49:41 2008
> @@ -874,6 +874,7 @@
> //
> =
> =
> =
> ----------------------------------------------------------------------=
> ==//
>
> void StoreInst::AssertOK() {
> + assert(getOperand(0) && getOperand(1) && "Both operands must be
> non-null!");
> assert(isa<PointerType>(getOperand(1)->getType()) &&
> "Ptr must have pointer type!");
> assert(getOperand(0)->getType() ==
> @@ -1535,8 +1536,10 @@
> case AShr:
> assert(getType() == LHS->getType() &&
> "Shift operation should return same type as operands!");
> - assert(getType()->isInteger() &&
> - "Shift operation requires integer operands");
> + assert((getType()->isInteger() ||
> + (isa<VectorType>(getType()) &&
> + cast<VectorType>(getType())->getElementType()-
> >isInteger())) &&
> + "Tried to create a shift operation on a non-integral
> type!");
> break;
> case And: case Or:
> case Xor:
>
> Modified: llvm/trunk/lib/VMCore/Verifier.cpp
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/VMCore/Verifier.cpp?rev=54161&r1=54160&r2=54161&view=diff
>
> =
> =
> =
> =
> =
> =
> =
> =
> ======================================================================
> --- llvm/trunk/lib/VMCore/Verifier.cpp (original)
> +++ llvm/trunk/lib/VMCore/Verifier.cpp Tue Jul 29 10:49:41 2008
> @@ -973,8 +973,10 @@
> case Instruction::Shl:
> case Instruction::LShr:
> case Instruction::AShr:
> - Assert1(B.getType()->isInteger(),
> - "Shift must return an integer result!", &B);
> + Assert1(B.getType()->isInteger() ||
> + (isa<VectorType>(B.getType()) &&
> + cast<VectorType>(B.getType())->getElementType()-
> >isInteger()),
> + "Shifts only work with integral types!", &B);
> Assert1(B.getType() == B.getOperand(0)->getType(),
> "Shift return type must be same as operands!", &B);
> /* FALL THROUGH */
> @@ -1041,9 +1043,13 @@
> // Check to see if Mask is valid.
> if (const ConstantVector *MV =
> dyn_cast<ConstantVector>(SV.getOperand(2))) {
> for (unsigned i = 0, e = MV->getNumOperands(); i != e; ++i) {
> - Assert1(isa<ConstantInt>(MV->getOperand(i)) ||
> - isa<UndefValue>(MV->getOperand(i)),
> - "Invalid shufflevector shuffle mask!", &SV);
> + if (ConstantInt* CI = dyn_cast<ConstantInt>(MV-
> >getOperand(i))) {
> + Assert1(!CI->uge(MV->getNumOperands()*2),
> + "Invalid shufflevector shuffle mask!", &SV);
> + } else {
> + Assert1(isa<UndefValue>(MV->getOperand(i)),
> + "Invalid shufflevector shuffle mask!", &SV);
> + }
> }
> } else {
> Assert1(isa<UndefValue>(SV.getOperand(2)) ||
>
> Added: llvm/trunk/test/Assembler/vector-shift.ll
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/Assembler/vector-shift.ll?rev=54161&view=auto
>
> =
> =
> =
> =
> =
> =
> =
> =
> ======================================================================
> --- llvm/trunk/test/Assembler/vector-shift.ll (added)
> +++ llvm/trunk/test/Assembler/vector-shift.ll Tue Jul 29 10:49:41 2008
> @@ -0,0 +1,21 @@
> +; RUN: llvm-as < %s | llvm-dis | llvm-as | llvm-dis | grep shl
> +; RUN: llvm-as < %s | llvm-dis | llvm-as | llvm-dis | grep ashr
> +; RUN: llvm-as < %s | llvm-dis | llvm-as | llvm-dis | grep lshr
> +
> +define <4 x i32> @foo(<4 x i32> %a, <4 x i32> %b) nounwind {
> +entry:
> + %cmp = shl <4 x i32> %a, %b ; <4 x i32> [#uses=1]
> + ret <4 x i32> %cmp
> +}
> +
> +define <4 x i32> @bar(<4 x i32> %a, <4 x i32> %b) nounwind {
> +entry:
> + %cmp = lshr <4 x i32> %a, %b ; <4 x i32> [#uses=1]
> + ret <4 x i32> %cmp
> +}
> +
> +define <4 x i32> @baz(<4 x i32> %a, <4 x i32> %b) nounwind {
> +entry:
> + %cmp = ashr <4 x i32> %a, %b ; <4 x i32> [#uses=1]
> + ret <4 x i32> %cmp
> +}
>
>
> _______________________________________________
> llvm-commits mailing list
> llvm-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
More information about the llvm-commits
mailing list