309 lines · plain
1; ModuleID = '<stdin>'2source_filename = "matmul.c"3target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128"4target triple = "x86_64-unknown-linux-gnu"5 6%struct._IO_FILE = type { i32, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, %struct._IO_marker*, %struct._IO_FILE*, i32, i32, i64, i16, i8, [1 x i8], i8*, i64, i8*, i8*, i8*, i8*, i64, i32, [20 x i8] }7%struct._IO_marker = type { %struct._IO_marker*, %struct._IO_FILE*, i32 }8 9@A = common dso_local local_unnamed_addr global [1536 x [1536 x float]] zeroinitializer, align 1610@B = common dso_local local_unnamed_addr global [1536 x [1536 x float]] zeroinitializer, align 1611@stdout = external dso_local local_unnamed_addr global %struct._IO_FILE*, align 812@.str = private unnamed_addr constant [5 x i8] c"%lf \00", align 113@C = common dso_local local_unnamed_addr global [1536 x [1536 x float]] zeroinitializer, align 1614 15; Function Attrs: noinline norecurse nounwind uwtable writeonly16define dso_local void @init_array() local_unnamed_addr {17entry:18 br label %polly.loop_header19 20polly.exiting: ; preds = %polly.loop_exit321 ret void22 23polly.loop_header: ; preds = %polly.loop_exit3, %entry24 %polly.indvar = phi i64 [ 0, %entry ], [ %polly.indvar_next, %polly.loop_exit3 ]25 %0 = trunc i64 %polly.indvar to i3226 br label %polly.loop_header127 28polly.loop_exit3: ; preds = %polly.loop_header129 %polly.indvar_next = add nuw nsw i64 %polly.indvar, 130 %exitcond1 = icmp eq i64 %polly.indvar_next, 153631 br i1 %exitcond1, label %polly.exiting, label %polly.loop_header, !llvm.loop !232 33polly.loop_header1: ; preds = %polly.loop_header1, %polly.loop_header34 %polly.indvar4 = phi i64 [ 0, %polly.loop_header ], [ %polly.indvar_next5.1, %polly.loop_header1 ]35 %1 = trunc i64 %polly.indvar4 to i3236 %2 = mul nuw nsw i32 %1, %037 %3 = and i32 %2, 102238 %4 = or i32 %3, 139 %p_conv = sitofp i32 %4 to double40 %p_div = fmul double %p_conv, 5.000000e-0141 %p_conv4 = fptrunc double %p_div to float42 %scevgep7 = getelementptr [1536 x [1536 x float]], [1536 x [1536 x float]]* @A, i64 0, i64 %polly.indvar, i64 %polly.indvar443 store float %p_conv4, float* %scevgep7, align 8, !alias.scope !3, !noalias !5, !llvm.mem.parallel_loop_access !244 %scevgep9 = getelementptr [1536 x [1536 x float]], [1536 x [1536 x float]]* @B, i64 0, i64 %polly.indvar, i64 %polly.indvar445 store float %p_conv4, float* %scevgep9, align 8, !alias.scope !6, !noalias !7, !llvm.mem.parallel_loop_access !246 %polly.indvar_next5 = or i64 %polly.indvar4, 147 %5 = trunc i64 %polly.indvar_next5 to i3248 %6 = mul nuw nsw i32 %5, %049 %7 = and i32 %6, 102350 %8 = add nuw nsw i32 %7, 151 %p_conv.1 = sitofp i32 %8 to double52 %p_div.1 = fmul double %p_conv.1, 5.000000e-0153 %p_conv4.1 = fptrunc double %p_div.1 to float54 %scevgep7.1 = getelementptr [1536 x [1536 x float]], [1536 x [1536 x float]]* @A, i64 0, i64 %polly.indvar, i64 %polly.indvar_next555 store float %p_conv4.1, float* %scevgep7.1, align 4, !alias.scope !3, !noalias !5, !llvm.mem.parallel_loop_access !256 %scevgep9.1 = getelementptr [1536 x [1536 x float]], [1536 x [1536 x float]]* @B, i64 0, i64 %polly.indvar, i64 %polly.indvar_next557 store float %p_conv4.1, float* %scevgep9.1, align 4, !alias.scope !6, !noalias !7, !llvm.mem.parallel_loop_access !258 %polly.indvar_next5.1 = add nuw nsw i64 %polly.indvar4, 259 %exitcond.1 = icmp eq i64 %polly.indvar_next5.1, 153660 br i1 %exitcond.1, label %polly.loop_exit3, label %polly.loop_header161}62 63; Function Attrs: noinline nounwind uwtable64define dso_local void @print_array() local_unnamed_addr {65entry:66 br label %for.cond1.preheader67 68for.cond1.preheader: ; preds = %for.end, %entry69 %indvars.iv6 = phi i64 [ 0, %entry ], [ %indvars.iv.next7, %for.end ]70 %0 = load %struct._IO_FILE*, %struct._IO_FILE** @stdout, align 871 br label %for.body372 73for.body3: ; preds = %for.inc, %for.cond1.preheader74 %indvars.iv = phi i64 [ 0, %for.cond1.preheader ], [ %indvars.iv.next, %for.inc ]75 %1 = phi %struct._IO_FILE* [ %0, %for.cond1.preheader ], [ %5, %for.inc ]76 %arrayidx5 = getelementptr inbounds [1536 x [1536 x float]], [1536 x [1536 x float]]* @C, i64 0, i64 %indvars.iv6, i64 %indvars.iv77 %2 = load float, float* %arrayidx5, align 478 %conv = fpext float %2 to double79 %call = tail call i32 (%struct._IO_FILE*, i8*, ...) @fprintf(%struct._IO_FILE* %1, i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str, i64 0, i64 0), double %conv)80 %3 = trunc i64 %indvars.iv to i3281 %rem = urem i32 %3, 8082 %cmp6 = icmp eq i32 %rem, 7983 br i1 %cmp6, label %if.then, label %for.inc84 85if.then: ; preds = %for.body386 %4 = load %struct._IO_FILE*, %struct._IO_FILE** @stdout, align 887 %fputc3 = tail call i32 @fputc(i32 10, %struct._IO_FILE* %4)88 br label %for.inc89 90for.inc: ; preds = %if.then, %for.body391 %indvars.iv.next = add nuw nsw i64 %indvars.iv, 192 %5 = load %struct._IO_FILE*, %struct._IO_FILE** @stdout, align 893 %exitcond = icmp eq i64 %indvars.iv.next, 153694 br i1 %exitcond, label %for.end, label %for.body395 96for.end: ; preds = %for.inc97 %fputc = tail call i32 @fputc(i32 10, %struct._IO_FILE* %5)98 %indvars.iv.next7 = add nuw nsw i64 %indvars.iv6, 199 %exitcond8 = icmp eq i64 %indvars.iv.next7, 1536100 br i1 %exitcond8, label %for.end12, label %for.cond1.preheader101 102for.end12: ; preds = %for.end103 ret void104}105 106; Function Attrs: nounwind107declare dso_local i32 @fprintf(%struct._IO_FILE* nocapture, i8* nocapture readonly, ...) local_unnamed_addr108 109; Function Attrs: noinline norecurse nounwind uwtable110define dso_local i32 @main() local_unnamed_addr {111entry:112 tail call void @init_array()113 call void @llvm.memset.p0i8.i64(i8* align 16 bitcast ([1536 x [1536 x float]]* @C to i8*), i8 0, i64 9437184, i1 false)114 br label %polly.loop_header8115 116polly.exiting: ; preds = %polly.loop_exit16117 ret i32 0118 119polly.loop_header8: ; preds = %entry, %polly.loop_exit16120 %indvars.iv5 = phi i64 [ 64, %entry ], [ %indvars.iv.next6, %polly.loop_exit16 ]121 %polly.indvar11 = phi i64 [ 0, %entry ], [ %polly.indvar_next12, %polly.loop_exit16 ]122 br label %polly.loop_header14123 124polly.loop_exit16: ; preds = %polly.loop_exit22125 %polly.indvar_next12 = add nuw nsw i64 %polly.indvar11, 64126 %polly.loop_cond13 = icmp ult i64 %polly.indvar_next12, 1536127 %indvars.iv.next6 = add nuw nsw i64 %indvars.iv5, 64128 br i1 %polly.loop_cond13, label %polly.loop_header8, label %polly.exiting, !llvm.loop !8129 130polly.loop_header14: ; preds = %polly.loop_header8, %polly.loop_exit22131 %indvar = phi i64 [ 0, %polly.loop_header8 ], [ %indvar.next, %polly.loop_exit22 ]132 %polly.indvar17 = phi i64 [ 0, %polly.loop_header8 ], [ %polly.indvar_next18, %polly.loop_exit22 ]133 %0 = shl i64 %indvar, 6134 %offset.idx.1 = or i64 %0, 16135 %offset.idx.2 = or i64 %0, 32136 %offset.idx.3 = or i64 %0, 48137 br label %polly.loop_header20138 139polly.loop_exit22: ; preds = %polly.loop_exit28140 %polly.indvar_next18 = add nuw nsw i64 %polly.indvar17, 64141 %polly.loop_cond19 = icmp ult i64 %polly.indvar_next18, 1536142 %indvar.next = add i64 %indvar, 1143 br i1 %polly.loop_cond19, label %polly.loop_header14, label %polly.loop_exit16144 145polly.loop_header20: ; preds = %polly.loop_header14, %polly.loop_exit28146 %indvars.iv3 = phi i64 [ 64, %polly.loop_header14 ], [ %indvars.iv.next4, %polly.loop_exit28 ]147 %polly.indvar23 = phi i64 [ 0, %polly.loop_header14 ], [ %polly.indvar_next24, %polly.loop_exit28 ]148 br label %polly.loop_header26149 150polly.loop_exit28: ; preds = %polly.loop_exit34151 %polly.indvar_next24 = add nuw nsw i64 %polly.indvar23, 64152 %polly.loop_cond25 = icmp ult i64 %polly.indvar_next24, 1536153 %indvars.iv.next4 = add nuw nsw i64 %indvars.iv3, 64154 br i1 %polly.loop_cond25, label %polly.loop_header20, label %polly.loop_exit22155 156polly.loop_header26: ; preds = %polly.loop_exit34, %polly.loop_header20157 %polly.indvar29 = phi i64 [ %polly.indvar11, %polly.loop_header20 ], [ %polly.indvar_next30, %polly.loop_exit34 ]158 %1 = getelementptr [1536 x [1536 x float]], [1536 x [1536 x float]]* @C, i64 0, i64 %polly.indvar29, i64 %0159 %2 = bitcast float* %1 to <16 x float>*160 %3 = getelementptr [1536 x [1536 x float]], [1536 x [1536 x float]]* @C, i64 0, i64 %polly.indvar29, i64 %offset.idx.1161 %4 = bitcast float* %3 to <16 x float>*162 %5 = getelementptr [1536 x [1536 x float]], [1536 x [1536 x float]]* @C, i64 0, i64 %polly.indvar29, i64 %offset.idx.2163 %6 = bitcast float* %5 to <16 x float>*164 %7 = getelementptr [1536 x [1536 x float]], [1536 x [1536 x float]]* @C, i64 0, i64 %polly.indvar29, i64 %offset.idx.3165 %8 = bitcast float* %7 to <16 x float>*166 %.promoted = load <16 x float>, <16 x float>* %2, align 4, !alias.scope !9, !noalias !11167 %.promoted22 = load <16 x float>, <16 x float>* %4, align 4, !alias.scope !9, !noalias !11168 %.promoted24 = load <16 x float>, <16 x float>* %6, align 4, !alias.scope !9, !noalias !11169 %.promoted26 = load <16 x float>, <16 x float>* %8, align 4, !alias.scope !9, !noalias !11170 br label %vector.ph171 172polly.loop_exit34: ; preds = %vector.ph173 store <16 x float> %interleaved.vec, <16 x float>* %2, align 4, !alias.scope !9, !noalias !11174 store <16 x float> %interleaved.vec.1, <16 x float>* %4, align 4, !alias.scope !9, !noalias !11175 store <16 x float> %interleaved.vec.2, <16 x float>* %6, align 4, !alias.scope !9, !noalias !11176 store <16 x float> %interleaved.vec.3, <16 x float>* %8, align 4, !alias.scope !9, !noalias !11177 %polly.indvar_next30 = add nuw nsw i64 %polly.indvar29, 1178 %exitcond7 = icmp eq i64 %polly.indvar_next30, %indvars.iv5179 br i1 %exitcond7, label %polly.loop_exit28, label %polly.loop_header26180 181vector.ph: ; preds = %polly.loop_header26, %vector.ph182 %wide.vec.327 = phi <16 x float> [ %.promoted26, %polly.loop_header26 ], [ %interleaved.vec.3, %vector.ph ]183 %wide.vec.225 = phi <16 x float> [ %.promoted24, %polly.loop_header26 ], [ %interleaved.vec.2, %vector.ph ]184 %wide.vec.123 = phi <16 x float> [ %.promoted22, %polly.loop_header26 ], [ %interleaved.vec.1, %vector.ph ]185 %wide.vec21 = phi <16 x float> [ %.promoted, %polly.loop_header26 ], [ %interleaved.vec, %vector.ph ]186 %polly.indvar35 = phi i64 [ %polly.indvar23, %polly.loop_header26 ], [ %polly.indvar_next36, %vector.ph ]187 %scevgep53 = getelementptr [1536 x [1536 x float]], [1536 x [1536 x float]]* @A, i64 0, i64 %polly.indvar29, i64 %polly.indvar35188 %_p_scalar_54 = load float, float* %scevgep53, align 4, !alias.scope !12, !noalias !14, !llvm.mem.parallel_loop_access !8189 %broadcast.splatinsert19 = insertelement <4 x float> undef, float %_p_scalar_54, i32 0190 %broadcast.splat20 = shufflevector <4 x float> %broadcast.splatinsert19, <4 x float> undef, <4 x i32> zeroinitializer191 %strided.vec = shufflevector <16 x float> %wide.vec21, <16 x float> undef, <4 x i32> <i32 0, i32 4, i32 8, i32 12>192 %strided.vec11 = shufflevector <16 x float> %wide.vec21, <16 x float> undef, <4 x i32> <i32 1, i32 5, i32 9, i32 13>193 %strided.vec12 = shufflevector <16 x float> %wide.vec21, <16 x float> undef, <4 x i32> <i32 2, i32 6, i32 10, i32 14>194 %strided.vec13 = shufflevector <16 x float> %wide.vec21, <16 x float> undef, <4 x i32> <i32 3, i32 7, i32 11, i32 15>195 %9 = getelementptr [1536 x [1536 x float]], [1536 x [1536 x float]]* @B, i64 0, i64 %polly.indvar35, i64 %0196 %10 = bitcast float* %9 to <16 x float>*197 %wide.vec14 = load <16 x float>, <16 x float>* %10, align 16, !alias.scope !13, !noalias !15198 %strided.vec15 = shufflevector <16 x float> %wide.vec14, <16 x float> undef, <4 x i32> <i32 0, i32 4, i32 8, i32 12>199 %strided.vec16 = shufflevector <16 x float> %wide.vec14, <16 x float> undef, <4 x i32> <i32 1, i32 5, i32 9, i32 13>200 %strided.vec17 = shufflevector <16 x float> %wide.vec14, <16 x float> undef, <4 x i32> <i32 2, i32 6, i32 10, i32 14>201 %strided.vec18 = shufflevector <16 x float> %wide.vec14, <16 x float> undef, <4 x i32> <i32 3, i32 7, i32 11, i32 15>202 %11 = fmul <4 x float> %broadcast.splat20, %strided.vec15203 %12 = fadd <4 x float> %strided.vec, %11204 %13 = fmul <4 x float> %broadcast.splat20, %strided.vec16205 %14 = fadd <4 x float> %strided.vec11, %13206 %15 = fmul <4 x float> %broadcast.splat20, %strided.vec17207 %16 = fadd <4 x float> %strided.vec12, %15208 %17 = fmul <4 x float> %broadcast.splat20, %strided.vec18209 %18 = fadd <4 x float> %strided.vec13, %17210 %19 = shufflevector <4 x float> %12, <4 x float> %14, <8 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7>211 %20 = shufflevector <4 x float> %16, <4 x float> %18, <8 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7>212 %interleaved.vec = shufflevector <8 x float> %19, <8 x float> %20, <16 x i32> <i32 0, i32 4, i32 8, i32 12, i32 1, i32 5, i32 9, i32 13, i32 2, i32 6, i32 10, i32 14, i32 3, i32 7, i32 11, i32 15>213 %strided.vec.1 = shufflevector <16 x float> %wide.vec.123, <16 x float> undef, <4 x i32> <i32 0, i32 4, i32 8, i32 12>214 %strided.vec11.1 = shufflevector <16 x float> %wide.vec.123, <16 x float> undef, <4 x i32> <i32 1, i32 5, i32 9, i32 13>215 %strided.vec12.1 = shufflevector <16 x float> %wide.vec.123, <16 x float> undef, <4 x i32> <i32 2, i32 6, i32 10, i32 14>216 %strided.vec13.1 = shufflevector <16 x float> %wide.vec.123, <16 x float> undef, <4 x i32> <i32 3, i32 7, i32 11, i32 15>217 %21 = getelementptr [1536 x [1536 x float]], [1536 x [1536 x float]]* @B, i64 0, i64 %polly.indvar35, i64 %offset.idx.1218 %22 = bitcast float* %21 to <16 x float>*219 %wide.vec14.1 = load <16 x float>, <16 x float>* %22, align 16, !alias.scope !13, !noalias !15220 %strided.vec15.1 = shufflevector <16 x float> %wide.vec14.1, <16 x float> undef, <4 x i32> <i32 0, i32 4, i32 8, i32 12>221 %strided.vec16.1 = shufflevector <16 x float> %wide.vec14.1, <16 x float> undef, <4 x i32> <i32 1, i32 5, i32 9, i32 13>222 %strided.vec17.1 = shufflevector <16 x float> %wide.vec14.1, <16 x float> undef, <4 x i32> <i32 2, i32 6, i32 10, i32 14>223 %strided.vec18.1 = shufflevector <16 x float> %wide.vec14.1, <16 x float> undef, <4 x i32> <i32 3, i32 7, i32 11, i32 15>224 %23 = fmul <4 x float> %broadcast.splat20, %strided.vec15.1225 %24 = fadd <4 x float> %strided.vec.1, %23226 %25 = fmul <4 x float> %broadcast.splat20, %strided.vec16.1227 %26 = fadd <4 x float> %strided.vec11.1, %25228 %27 = fmul <4 x float> %broadcast.splat20, %strided.vec17.1229 %28 = fadd <4 x float> %strided.vec12.1, %27230 %29 = fmul <4 x float> %broadcast.splat20, %strided.vec18.1231 %30 = fadd <4 x float> %strided.vec13.1, %29232 %31 = shufflevector <4 x float> %24, <4 x float> %26, <8 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7>233 %32 = shufflevector <4 x float> %28, <4 x float> %30, <8 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7>234 %interleaved.vec.1 = shufflevector <8 x float> %31, <8 x float> %32, <16 x i32> <i32 0, i32 4, i32 8, i32 12, i32 1, i32 5, i32 9, i32 13, i32 2, i32 6, i32 10, i32 14, i32 3, i32 7, i32 11, i32 15>235 %strided.vec.2 = shufflevector <16 x float> %wide.vec.225, <16 x float> undef, <4 x i32> <i32 0, i32 4, i32 8, i32 12>236 %strided.vec11.2 = shufflevector <16 x float> %wide.vec.225, <16 x float> undef, <4 x i32> <i32 1, i32 5, i32 9, i32 13>237 %strided.vec12.2 = shufflevector <16 x float> %wide.vec.225, <16 x float> undef, <4 x i32> <i32 2, i32 6, i32 10, i32 14>238 %strided.vec13.2 = shufflevector <16 x float> %wide.vec.225, <16 x float> undef, <4 x i32> <i32 3, i32 7, i32 11, i32 15>239 %33 = getelementptr [1536 x [1536 x float]], [1536 x [1536 x float]]* @B, i64 0, i64 %polly.indvar35, i64 %offset.idx.2240 %34 = bitcast float* %33 to <16 x float>*241 %wide.vec14.2 = load <16 x float>, <16 x float>* %34, align 16, !alias.scope !13, !noalias !15242 %strided.vec15.2 = shufflevector <16 x float> %wide.vec14.2, <16 x float> undef, <4 x i32> <i32 0, i32 4, i32 8, i32 12>243 %strided.vec16.2 = shufflevector <16 x float> %wide.vec14.2, <16 x float> undef, <4 x i32> <i32 1, i32 5, i32 9, i32 13>244 %strided.vec17.2 = shufflevector <16 x float> %wide.vec14.2, <16 x float> undef, <4 x i32> <i32 2, i32 6, i32 10, i32 14>245 %strided.vec18.2 = shufflevector <16 x float> %wide.vec14.2, <16 x float> undef, <4 x i32> <i32 3, i32 7, i32 11, i32 15>246 %35 = fmul <4 x float> %broadcast.splat20, %strided.vec15.2247 %36 = fadd <4 x float> %strided.vec.2, %35248 %37 = fmul <4 x float> %broadcast.splat20, %strided.vec16.2249 %38 = fadd <4 x float> %strided.vec11.2, %37250 %39 = fmul <4 x float> %broadcast.splat20, %strided.vec17.2251 %40 = fadd <4 x float> %strided.vec12.2, %39252 %41 = fmul <4 x float> %broadcast.splat20, %strided.vec18.2253 %42 = fadd <4 x float> %strided.vec13.2, %41254 %43 = shufflevector <4 x float> %36, <4 x float> %38, <8 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7>255 %44 = shufflevector <4 x float> %40, <4 x float> %42, <8 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7>256 %interleaved.vec.2 = shufflevector <8 x float> %43, <8 x float> %44, <16 x i32> <i32 0, i32 4, i32 8, i32 12, i32 1, i32 5, i32 9, i32 13, i32 2, i32 6, i32 10, i32 14, i32 3, i32 7, i32 11, i32 15>257 %strided.vec.3 = shufflevector <16 x float> %wide.vec.327, <16 x float> undef, <4 x i32> <i32 0, i32 4, i32 8, i32 12>258 %strided.vec11.3 = shufflevector <16 x float> %wide.vec.327, <16 x float> undef, <4 x i32> <i32 1, i32 5, i32 9, i32 13>259 %strided.vec12.3 = shufflevector <16 x float> %wide.vec.327, <16 x float> undef, <4 x i32> <i32 2, i32 6, i32 10, i32 14>260 %strided.vec13.3 = shufflevector <16 x float> %wide.vec.327, <16 x float> undef, <4 x i32> <i32 3, i32 7, i32 11, i32 15>261 %45 = getelementptr [1536 x [1536 x float]], [1536 x [1536 x float]]* @B, i64 0, i64 %polly.indvar35, i64 %offset.idx.3262 %46 = bitcast float* %45 to <16 x float>*263 %wide.vec14.3 = load <16 x float>, <16 x float>* %46, align 16, !alias.scope !13, !noalias !15264 %strided.vec15.3 = shufflevector <16 x float> %wide.vec14.3, <16 x float> undef, <4 x i32> <i32 0, i32 4, i32 8, i32 12>265 %strided.vec16.3 = shufflevector <16 x float> %wide.vec14.3, <16 x float> undef, <4 x i32> <i32 1, i32 5, i32 9, i32 13>266 %strided.vec17.3 = shufflevector <16 x float> %wide.vec14.3, <16 x float> undef, <4 x i32> <i32 2, i32 6, i32 10, i32 14>267 %strided.vec18.3 = shufflevector <16 x float> %wide.vec14.3, <16 x float> undef, <4 x i32> <i32 3, i32 7, i32 11, i32 15>268 %47 = fmul <4 x float> %broadcast.splat20, %strided.vec15.3269 %48 = fadd <4 x float> %strided.vec.3, %47270 %49 = fmul <4 x float> %broadcast.splat20, %strided.vec16.3271 %50 = fadd <4 x float> %strided.vec11.3, %49272 %51 = fmul <4 x float> %broadcast.splat20, %strided.vec17.3273 %52 = fadd <4 x float> %strided.vec12.3, %51274 %53 = fmul <4 x float> %broadcast.splat20, %strided.vec18.3275 %54 = fadd <4 x float> %strided.vec13.3, %53276 %55 = shufflevector <4 x float> %48, <4 x float> %50, <8 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7>277 %56 = shufflevector <4 x float> %52, <4 x float> %54, <8 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7>278 %interleaved.vec.3 = shufflevector <8 x float> %55, <8 x float> %56, <16 x i32> <i32 0, i32 4, i32 8, i32 12, i32 1, i32 5, i32 9, i32 13, i32 2, i32 6, i32 10, i32 14, i32 3, i32 7, i32 11, i32 15>279 %polly.indvar_next36 = add nuw nsw i64 %polly.indvar35, 1280 %exitcond = icmp eq i64 %polly.indvar_next36, %indvars.iv3281 br i1 %exitcond, label %polly.loop_exit34, label %vector.ph282}283 284; Function Attrs: nounwind285declare i32 @fputc(i32, %struct._IO_FILE* nocapture) local_unnamed_addr286 287; Function Attrs: argmemonly nounwind288declare void @llvm.memset.p0i8.i64(i8* nocapture writeonly, i8, i64, i1)289 290!llvm.module.flags = !{!0}291!llvm.ident = !{!1}292 293!0 = !{i32 1, !"wchar_size", i32 4}294!1 = !{!"clang version 8.0.0 (trunk 342834) (llvm/trunk 342856)"}295!2 = distinct !{!2}296!3 = distinct !{!3, !4, !"polly.alias.scope.MemRef_A"}297!4 = distinct !{!4, !"polly.alias.scope.domain"}298!5 = !{!6}299!6 = distinct !{!6, !4, !"polly.alias.scope.MemRef_B"}300!7 = !{!3}301!8 = distinct !{!8}302!9 = distinct !{!9, !10, !"polly.alias.scope.MemRef_C"}303!10 = distinct !{!10, !"polly.alias.scope.domain"}304!11 = !{!12, !13}305!12 = distinct !{!12, !10, !"polly.alias.scope.MemRef_A"}306!13 = distinct !{!13, !10, !"polly.alias.scope.MemRef_B"}307!14 = !{!9, !13}308!15 = !{!9, !12}309