From d5bdbd921bc24f7f00c0b67a91019ef15438e4dd Mon Sep 17 00:00:00 2001 From: Simon Pilgrim Date: Tue, 21 Apr 2015 08:05:43 +0000 Subject: [PATCH] CONCAT_VECTOR of BUILD_VECTOR - minor fix Fixed issue with the combine of CONCAT_VECTOR of 2 BUILD_VECTOR nodes - the optimisation wasn't ensuring that the scalar operands of both nodes were the same type/size for implicit truncation. Test case spotted by Patrik Hagglund llvm-svn: 235371 --- lib/CodeGen/SelectionDAG/SelectionDAG.cpp | 12 + test/CodeGen/X86/fold-vector-shuffle-crash.ll | 372 +++++++++++++++++- 2 files changed, 383 insertions(+), 1 deletion(-) diff --git a/lib/CodeGen/SelectionDAG/SelectionDAG.cpp b/lib/CodeGen/SelectionDAG/SelectionDAG.cpp index 770f0b226ee..5b766981545 100644 --- a/lib/CodeGen/SelectionDAG/SelectionDAG.cpp +++ b/lib/CodeGen/SelectionDAG/SelectionDAG.cpp @@ -3198,6 +3198,18 @@ SDValue SelectionDAG::getNode(unsigned Opcode, SDLoc DL, EVT VT, SDValue N1, SmallVector Elts(N1.getNode()->op_begin(), N1.getNode()->op_end()); Elts.append(N2.getNode()->op_begin(), N2.getNode()->op_end()); + + // BUILD_VECTOR requires all inputs to be of the same type, find the + // maximum type and extend them all. + EVT SVT = VT.getScalarType(); + for (SDValue Op : Elts) + SVT = (SVT.bitsLT(Op.getValueType()) ? Op.getValueType() : SVT); + if (SVT.bitsGT(VT.getScalarType())) + for (SDValue &Op : Elts) + Op = TLI->isZExtFree(Op.getValueType(), SVT) + ? getZExtOrTrunc(Op, DL, SVT) + : getSExtOrTrunc(Op, DL, SVT); + return getNode(ISD::BUILD_VECTOR, DL, VT, Elts); } break; diff --git a/test/CodeGen/X86/fold-vector-shuffle-crash.ll b/test/CodeGen/X86/fold-vector-shuffle-crash.ll index 0bb150bfa86..df9c6924b27 100644 --- a/test/CodeGen/X86/fold-vector-shuffle-crash.ll +++ b/test/CodeGen/X86/fold-vector-shuffle-crash.ll @@ -13,4 +13,374 @@ CF: CF247: %I171 = insertelement <8 x i32> %Shuff20, i32 %0, i32 0 br i1 undef, label %CF, label %CF247 -} \ No newline at end of file +} + +define void @autogen_SD13800(i8*, i32*, i64*, i32, i64, i8) { +BB: + %A4 = alloca <8 x i1> + %A3 = alloca i32 + %A2 = alloca <2 x float> + %A1 = alloca <2 x double> + %A = alloca <8 x float> + %L = load <8 x i1>, <8 x i1>* %A4 + store i8 %5, i8* %0 + %E = extractelement <2 x i64> zeroinitializer, i32 0 + %Shuff = shufflevector <4 x i64> zeroinitializer, <4 x i64> zeroinitializer, <4 x i32> + %I = insertelement <8 x i64> zeroinitializer, i64 419346, i32 1 + %B = shl i64 426618, 419346 + %Tr = trunc <8 x i64> %I to <8 x i16> + %Sl = select i1 false, <4 x i64> zeroinitializer, <4 x i64> zeroinitializer + %Cmp = icmp eq <16 x i64> zeroinitializer, zeroinitializer + %L5 = load i8, i8* %0 + store i8 17, i8* %0 + %E6 = extractelement <4 x i64> zeroinitializer, i32 1 + %Shuff7 = shufflevector <2 x i64> zeroinitializer, <2 x i64> , <2 x i32> + %I8 = insertelement <16 x i8> , i8 %L5, i32 2 + %B9 = mul <8 x i16> %Tr, %Tr + %FC = fptosi float 0xBDF7B90B80000000 to i32 + %Sl10 = select i1 false, float 0xBDF7B90B80000000, float 0xB875A90980000000 + %Cmp11 = icmp slt <2 x i64> zeroinitializer, %Shuff7 + %L12 = load <8 x float>, <8 x float>* %A + store <2 x double> , <2 x double>* %A1 + %E13 = extractelement <4 x i64> zeroinitializer, i32 2 + %Shuff14 = shufflevector <2 x i32> zeroinitializer, <2 x i32> zeroinitializer, <2 x i32> + %I15 = insertelement <16 x i8> , i8 %L5, i32 15 + %B16 = add <2 x i64> zeroinitializer, + %BC = bitcast i64 426618 to double + %Sl17 = select i1 false, <2 x i32> zeroinitializer, <2 x i32> zeroinitializer + %Cmp18 = icmp slt <8 x i1> %L, %L + %L19 = load i8, i8* %0 + store i8 %L5, i8* %0 + %E20 = extractelement <16 x i8> %I8, i32 1 + %Shuff21 = shufflevector <8 x i64> zeroinitializer, <8 x i64> %I, <8 x i32> + %I22 = insertelement <8 x i16> %Tr, i16 18460, i32 6 + %B23 = sub i64 419346, %4 + %FC24 = fptosi double 0xE603EE221901D6A0 to i32 + %Sl25 = select i1 false, i8 %L5, i8 %5 + %Cmp26 = icmp ugt i64 %B, %B23 + br label %CF253 + +CF253: ; preds = %CF253, %CF271, %CF260, %BB + %L27 = load i8, i8* %0 + store i8 %L5, i8* %0 + %E28 = extractelement <2 x i64> zeroinitializer, i32 0 + %Shuff29 = shufflevector <16 x i8> , <16 x i8> %I8, <16 x i32> + %I30 = insertelement <8 x i1> %Cmp18, i1 false, i32 1 + %B31 = fsub double 0xE603EE221901D6A0, %BC + %Tr32 = trunc <2 x i64> to <2 x i32> + %Sl33 = select i1 false, double %BC, double %B31 + %Cmp34 = icmp sgt <2 x i32> zeroinitializer, %Shuff14 + %L35 = load i8, i8* %0 + store i8 %L5, i8* %0 + %E36 = extractelement <16 x i8> %Shuff29, i32 5 + %Shuff37 = shufflevector <8 x i64> zeroinitializer, <8 x i64> %I, <8 x i32> + %I38 = insertelement <4 x i64> zeroinitializer, i64 %E28, i32 2 + %FC39 = uitofp i8 %5 to double + %Sl40 = select i1 %Cmp26, i32 %3, i32 %FC + %Cmp41 = icmp sgt <2 x i64> zeroinitializer, + %L42 = load i8, i8* %0 + store i8 17, i8* %0 + %E43 = extractelement <2 x i1> %Cmp41, i32 1 + br i1 %E43, label %CF253, label %CF256 + +CF256: ; preds = %CF256, %CF253 + %Shuff44 = shufflevector <8 x i64> zeroinitializer, <8 x i64> zeroinitializer, <8 x i32> + %I45 = insertelement <8 x i32> zeroinitializer, i32 %FC, i32 0 + %ZE = zext i8 %L19 to i32 + %Sl46 = select i1 %E43, i8 %L35, i8 %L35 + %Cmp47 = icmp ult i64 %E6, 426618 + br i1 %Cmp47, label %CF256, label %CF271 + +CF271: ; preds = %CF256 + %L48 = load i8, i8* %0 + store i8 %L27, i8* %0 + %E49 = extractelement <4 x i32> , i32 2 + %Shuff50 = shufflevector <8 x i64> zeroinitializer, <8 x i64> zeroinitializer, <8 x i32> + %I51 = insertelement <8 x i64> zeroinitializer, i64 %4, i32 7 + %B52 = xor <8 x i32> %I45, zeroinitializer + %BC53 = bitcast <4 x i32> to <4 x float> + %Sl54 = select i1 false, <2 x i64> , <2 x i64> + %Cmp55 = icmp sgt i16 0, 18460 + br i1 %Cmp55, label %CF253, label %CF255 + +CF255: ; preds = %CF255, %CF266, %CF270, %CF271 + %L56 = load i8, i8* %0 + store i8 %L35, i8* %0 + %E57 = extractelement <4 x i64> zeroinitializer, i32 3 + %Shuff58 = shufflevector <8 x i64> zeroinitializer, <8 x i64> %Shuff37, <8 x i32> + %I59 = insertelement <4 x i32> , i32 %FC, i32 0 + %B60 = lshr <4 x i64> %I38, zeroinitializer + %FC61 = sitofp <8 x i1> %L to <8 x float> + %Sl62 = select i1 false, i8 %L19, i8 17 + %Cmp63 = icmp ult i64 %E6, %E57 + br i1 %Cmp63, label %CF255, label %CF266 + +CF266: ; preds = %CF255 + %L64 = load i64, i64* %2 + store i8 17, i8* %0 + %E65 = extractelement <8 x i64> %Shuff21, i32 6 + %Shuff66 = shufflevector <2 x i1> %Cmp11, <2 x i1> %Cmp41, <2 x i32> + %I67 = insertelement <8 x i1> %I30, i1 false, i32 7 + %FC68 = uitofp i8 %Sl62 to float + %Sl69 = select i1 false, i8 %L42, i8 17 + %Cmp70 = icmp eq <2 x i32> zeroinitializer, zeroinitializer + %L71 = load i8, i8* %0 + store i8 %5, i8* %0 + %E72 = extractelement <2 x i64> , i32 1 + %Shuff73 = shufflevector <8 x i64> zeroinitializer, <8 x i64> %Shuff44, <8 x i32> + %I74 = insertelement <2 x i1> %Cmp70, i1 %Cmp55, i32 0 + %B75 = add <16 x i8> %I15, + %FC76 = sitofp i8 33 to double + %Sl77 = select i1 %E43, double %BC, double %B31 + %Cmp78 = icmp ult <8 x i64> %Shuff44, %I + %L79 = load i8, i8* %0 + store i8 17, i8* %0 + %E80 = extractelement <2 x i64> %Shuff7, i32 0 + %Shuff81 = shufflevector <8 x i64> zeroinitializer, <8 x i64> %Shuff73, <8 x i32> + %I82 = insertelement <8 x i64> %Shuff81, i64 %E57, i32 5 + %FC83 = fptosi float %FC68 to i32 + %Sl84 = select i1 %Cmp26, <2 x i64> , <2 x i64> + %Cmp85 = icmp ugt i64 %E6, %E57 + br i1 %Cmp85, label %CF255, label %CF261 + +CF261: ; preds = %CF261, %CF266 + %L86 = load i8, i8* %0 + store i8 %L42, i8* %0 + %E87 = extractelement <16 x i8> , i32 7 + %Shuff88 = shufflevector <16 x i8> %Shuff29, <16 x i8> %I15, <16 x i32> + %I89 = insertelement <16 x i8> , i8 %L35, i32 12 + %B90 = shl i32 %3, %E49 + %BC91 = bitcast <2 x i64> %Sl84 to <2 x double> + %Sl92 = select i1 false, i8 %L5, i8 %L19 + %Cmp93 = icmp ugt i32 -1, %FC24 + br i1 %Cmp93, label %CF261, label %CF268 + +CF268: ; preds = %CF268, %CF261 + %L94 = load i8, i8* %0 + store i8 %L5, i8* %0 + %E95 = extractelement <8 x i64> %Shuff58, i32 0 + %Shuff96 = shufflevector <8 x i64> %Shuff73, <8 x i64> %Shuff73, <8 x i32> + %I97 = insertelement <4 x i64> zeroinitializer, i64 %B23, i32 1 + %B98 = or <8 x i64> %Shuff58, %Shuff50 + %FC99 = sitofp <2 x i1> %Cmp34 to <2 x float> + %Sl100 = select i1 %Cmp85, i64 %4, i64 %E + %Cmp101 = icmp ne <2 x i64> %B16, zeroinitializer + %L102 = load i8, i8* %0 + store i8 %L56, i8* %0 + %E103 = extractelement <8 x i16> %I22, i32 6 + %Shuff104 = shufflevector <2 x double> %BC91, <2 x double> %BC91, <2 x i32> + %I105 = insertelement <8 x i64> %Shuff96, i64 198384, i32 7 + %B106 = sdiv <8 x i32> %B52, %I45 + %ZE107 = zext i16 0 to i32 + %Sl108 = select i1 %E43, <16 x i8> %Shuff29, <16 x i8> + %Cmp109 = icmp slt <16 x i64> zeroinitializer, zeroinitializer + %L110 = load <8 x float>, <8 x float>* %A + store i8 %L56, i8* %0 + %E111 = extractelement <8 x i64> zeroinitializer, i32 3 + %Shuff112 = shufflevector <2 x i1> %Shuff66, <2 x i1> %Cmp11, <2 x i32> + %I113 = insertelement <2 x i64> %B16, i64 %E95, i32 0 + %B114 = mul i8 %E20, %Sl25 + %Tr115 = trunc <8 x i64> %I105 to <8 x i16> + %Sl116 = select i1 %Cmp26, <16 x i32> , <16 x i32> + %Cmp117 = icmp ult <8 x i16> %Tr, %Tr115 + %L118 = load i8, i8* %0 + store i8 %L19, i8* %0 + %E119 = extractelement <4 x i32> %I59, i32 3 + %Shuff120 = shufflevector <2 x i64> , <2 x i64> %I113, <2 x i32> + %I121 = insertelement <2 x i1> %Shuff66, i1 %Cmp26, i32 0 + %B122 = fmul double 0.000000e+00, 0xE603EE221901D6A0 + %FC123 = sitofp i64 %E6 to float + %Sl124 = select i1 false, <2 x i1> %Cmp41, <2 x i1> %Shuff66 + %Cmp125 = icmp ult <4 x i64> %I38, %I38 + %L126 = load i8, i8* %0 + store i8 %L126, i8* %0 + %E127 = extractelement <8 x i64> zeroinitializer, i32 7 + %Shuff128 = shufflevector <2 x i1> %Cmp101, <2 x i1> %Cmp11, <2 x i32> + %I129 = insertelement <8 x i1> %Cmp18, i1 %E43, i32 0 + %B130 = lshr i8 %L71, %L56 + %FC131 = sitofp i32 %3 to float + %Sl132 = select i1 false, <2 x i64> %Shuff7, <2 x i64> %Sl84 + %Cmp133 = icmp sge <8 x i16> %Tr, %Tr115 + %L134 = load i8, i8* %0 + store i8 %L102, i8* %0 + %E135 = extractelement <16 x i8> %Shuff88, i32 3 + %Shuff136 = shufflevector <8 x i64> %Shuff21, <8 x i64> zeroinitializer, <8 x i32> + %I137 = insertelement <2 x i64> zeroinitializer, i64 %E111, i32 0 + %B138 = shl <8 x i64> %I51, %Shuff136 + %Se = sext <2 x i32> %Tr32 to <2 x i64> + %Sl139 = select i1 %E43, <8 x i16> %Tr, <8 x i16> %Tr115 + %Cmp140 = icmp sge <2 x i32> %Sl17, %Tr32 + %L141 = load i8, i8* %0 + store i8 17, i8* %0 + %E142 = extractelement <8 x i16> %Tr115, i32 6 + %Shuff143 = shufflevector <8 x i64> zeroinitializer, <8 x i64> %Shuff21, <8 x i32> + %I144 = insertelement <4 x i64> %Shuff, i64 %4, i32 3 + %B145 = sub <2 x i64> , %I113 + %Se146 = sext i8 %E135 to i32 + %Sl147 = select i1 %Cmp55, <2 x i32> %Tr32, <2 x i32> zeroinitializer + %Cmp148 = icmp eq <8 x i1> %I30, %Cmp18 + %L149 = load i8, i8* %0 + store i8 %L56, i8* %0 + %E150 = extractelement <2 x i64> %I113, i32 0 + %Shuff151 = shufflevector <8 x i64> zeroinitializer, <8 x i64> %I, <8 x i32> + %I152 = insertelement <8 x i64> %Shuff136, i64 %E6, i32 3 + %B153 = frem float %FC68, %FC123 + %Se154 = sext i1 false to i32 + %Sl155 = select i1 %Cmp26, i8 %E20, i8 %L19 + %Cmp156 = icmp eq i64 198384, %4 + br i1 %Cmp156, label %CF268, label %CF270 + +CF270: ; preds = %CF268 + %L157 = load i8, i8* %0 + store i8 %L157, i8* %0 + %E158 = extractelement <8 x i1> %Cmp78, i32 1 + br i1 %E158, label %CF255, label %CF260 + +CF260: ; preds = %CF270 + %Shuff159 = shufflevector <8 x i64> zeroinitializer, <8 x i64> %Shuff81, <8 x i32> + %I160 = insertelement <2 x i1> %Cmp11, i1 %Cmp156, i32 0 + %B161 = urem <2 x i32> zeroinitializer, %Sl147 + %Se162 = sext i8 %L48 to i16 + %Sl163 = select i1 %Cmp93, i32 %FC83, i32 378892 + %Cmp164 = fcmp uge double 0xE603EE221901D6A0, 0xE603EE221901D6A0 + br i1 %Cmp164, label %CF253, label %CF254 + +CF254: ; preds = %CF254, %CF265, %CF263, %CF260 + %L165 = load i8, i8* %0 + store i8 %Sl62, i8* %0 + %E166 = extractelement <8 x i64> %Shuff58, i32 1 + %Shuff167 = shufflevector <8 x i64> %Shuff58, <8 x i64> %Shuff96, <8 x i32> + %I168 = insertelement <2 x double> %BC91, double %BC, i32 0 + %B169 = ashr i16 %E142, %E103 + %FC170 = sitofp <2 x i64> %Sl84 to <2 x float> + %Sl171 = select i1 %Cmp156, i8 %L165, i8 %5 + %Cmp172 = icmp ugt i8 %E20, %L102 + br i1 %Cmp172, label %CF254, label %CF262 + +CF262: ; preds = %CF262, %CF254 + %L173 = load i8, i8* %0 + store i8 %L94, i8* %0 + %E174 = extractelement <2 x i1> %Cmp70, i32 0 + br i1 %E174, label %CF262, label %CF264 + +CF264: ; preds = %CF264, %CF262 + %Shuff175 = shufflevector <16 x i1> %Cmp, <16 x i1> %Cmp, <16 x i32> + %I176 = insertelement <8 x i64> %Shuff21, i64 419346, i32 1 + %B177 = lshr <2 x i32> %Sl17, zeroinitializer + %FC178 = sitofp <8 x i32> %B106 to <8 x float> + %Sl179 = select i1 %Cmp156, i8 %B114, i8 %Sl171 + %Cmp180 = icmp ugt <4 x i64> %B60, zeroinitializer + %L181 = load i8, i8* %0 + store i8 %L102, i8* %0 + %E182 = extractelement <8 x i64> zeroinitializer, i32 0 + %Shuff183 = shufflevector <8 x i64> zeroinitializer, <8 x i64> %I176, <8 x i32> + %I184 = insertelement <2 x i1> %Cmp34, i1 %Cmp63, i32 1 + %B185 = urem i32 %Sl163, %Se146 + %FC186 = sitofp i64 %E166 to float + %Sl187 = select i1 %Cmp156, i1 %E43, i1 %Cmp26 + br i1 %Sl187, label %CF264, label %CF265 + +CF265: ; preds = %CF264 + %Cmp188 = icmp uge <16 x i1> %Shuff175, %Cmp + %L189 = load i8, i8* %0 + store i8 %L19, i8* %0 + %E190 = extractelement <2 x i1> %Cmp11, i32 0 + br i1 %E190, label %CF254, label %CF259 + +CF259: ; preds = %CF259, %CF265 + %Shuff191 = shufflevector <8 x i1> %Cmp117, <8 x i1> %I30, <8 x i32> + %I192 = insertelement <16 x i1> %Cmp188, i1 %Cmp85, i32 13 + %B193 = urem <2 x i64> %Sl132, %Sl54 + %Tr194 = trunc i64 %E166 to i8 + %Sl195 = select i1 %Cmp93, <2 x i1> %I160, <2 x i1> %Shuff66 + %Cmp196 = icmp ult <2 x i1> %Shuff66, %Cmp11 + %L197 = load i8, i8* %0 + store i8 %L5, i8* %0 + %E198 = extractelement <8 x i64> %Shuff183, i32 0 + %Shuff199 = shufflevector <8 x i16> %I22, <8 x i16> %Tr115, <8 x i32> + %I200 = insertelement <16 x i8> %Shuff29, i8 %L197, i32 5 + %B201 = and <2 x i64> %B145, %I113 + %ZE202 = zext <2 x i1> %I74 to <2 x i64> + %Sl203 = select i1 %Cmp26, i8 %L126, i8 %L102 + %Cmp204 = fcmp oeq <4 x float> %BC53, %BC53 + %L205 = load i8, i8* %0 + store i8 %5, i8* %0 + %E206 = extractelement <2 x double> %Shuff104, i32 0 + %Shuff207 = shufflevector <4 x i64> %I38, <4 x i64> zeroinitializer, <4 x i32> + %I208 = insertelement <8 x i64> %I82, i64 323142, i32 1 + %B209 = lshr i8 %L56, %L5 + %FC210 = fptoui double 0xE603EE221901D6A0 to i1 + br i1 %FC210, label %CF259, label %CF263 + +CF263: ; preds = %CF259 + %Sl211 = select i1 %E174, i32 %ZE, i32 %ZE107 + %Cmp212 = icmp ne i32 %Se154, %Sl163 + br i1 %Cmp212, label %CF254, label %CF257 + +CF257: ; preds = %CF263 + %L213 = load i8, i8* %0 + store i8 %L213, i8* %0 + %E214 = extractelement <8 x i64> %Shuff81, i32 3 + %Shuff215 = shufflevector <8 x i64> %Shuff159, <8 x i64> %Shuff136, <8 x i32> + %I216 = insertelement <8 x i64> %Shuff215, i64 323142, i32 0 + %Se217 = sext i8 %L71 to i64 + %Sl218 = select i1 %Cmp156, <8 x i16> %Tr115, <8 x i16> %Tr115 + %Cmp219 = fcmp ole <2 x float> %FC170, %FC99 + %L220 = load i8, i8* %0 + store i8 %L19, i8* %0 + %E221 = extractelement <8 x i64> zeroinitializer, i32 6 + %Shuff222 = shufflevector <4 x i1> %Cmp204, <4 x i1> %Cmp125, <4 x i32> + %I223 = insertelement <8 x i1> %Cmp18, i1 %FC210, i32 3 + %B224 = lshr i32 %E49, %FC24 + %FC225 = sitofp <4 x i1> %Cmp180 to <4 x float> + %Sl226 = select i1 %Cmp93, i64 %E28, i64 %B23 + %Cmp227 = icmp ugt <4 x i64> zeroinitializer, %B60 + %L228 = load i8, i8* %0 + store i8 %Sl46, i8* %0 + %E229 = extractelement <1 x i32> zeroinitializer, i32 0 + %Shuff230 = shufflevector <16 x i8> %Shuff29, <16 x i8> %I200, <16 x i32> + %I231 = insertelement <8 x i64> %Shuff183, i64 %L64, i32 5 + %B232 = fadd float %FC68, %FC68 + %Se233 = sext i1 %Cmp172 to i64 + %Sl234 = select i1 false, i1 %Cmp164, i1 %E43 + br label %CF + +CF: ; preds = %CF, %CF257 + %Cmp235 = icmp ule i32 %Sl163, %Sl211 + br i1 %Cmp235, label %CF, label %CF252 + +CF252: ; preds = %CF252, %CF269, %CF + %L236 = load i8, i8* %0 + store i8 %L19, i8* %0 + %E237 = extractelement <16 x i1> %Shuff175, i32 15 + br i1 %E237, label %CF252, label %CF269 + +CF269: ; preds = %CF252 + %Shuff238 = shufflevector <2 x i1> %I160, <2 x i1> %Cmp101, <2 x i32> undef + %I239 = insertelement <8 x i64> zeroinitializer, i64 %4, i32 0 + %B240 = add i8 %L56, %Sl155 + %Tr241 = trunc <2 x i32> %Sl147 to <2 x i1> + %Sl242 = select i1 %Sl234, <2 x float> %FC99, <2 x float> %FC99 + %Cmp243 = icmp eq i8 %L5, %L118 + br i1 %Cmp243, label %CF252, label %CF258 + +CF258: ; preds = %CF258, %CF269 + %L244 = load i8, i8* %0 + store i8 %L19, i8* %0 + %E245 = extractelement <2 x i64> %B201, i32 1 + %Shuff246 = shufflevector <4 x i64> zeroinitializer, <4 x i64> %I144, <4 x i32> + %I247 = insertelement <8 x i64> %Shuff73, i64 %E182, i32 2 + %B248 = or i64 %Sl226, %E245 + %Tr249 = trunc <2 x i64> to <2 x i16> + %Sl250 = select i1 %FC210, i64 %E57, i64 %L64 + %Cmp251 = icmp eq i32 %FC24, %FC + br i1 %Cmp251, label %CF258, label %CF267 + +CF267: ; preds = %CF258 + store i8 %L42, i8* %0 + store i8 %Sl69, i8* %0 + store i8 %L5, i8* %0 + store i8 %L134, i8* %0 + store i8 %L141, i8* %0 + ret void +}