; RUN: llc < %s -mtriple=x86_64-unknown -mcpu=corei7 define void @autogen_SD13708(i32) { BB: %Shuff7 = shufflevector <8 x i32> zeroinitializer, <8 x i32> zeroinitializer, <8 x i32> br label %CF CF: %Tr = trunc <8 x i64> zeroinitializer to <8 x i32> %Shuff20 = shufflevector <8 x i32> %Shuff7, <8 x i32> %Tr, <8 x i32> br i1 undef, label %CF, label %CF247 CF247: %I171 = insertelement <8 x i32> %Shuff20, i32 %0, i32 0 br i1 undef, label %CF, label %CF247 } 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 }