brintos

brintos / llvm-project-archived public Read only

0
0
Text · 23.7 KiB · 3be4393 Raw
385 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 nounwind uwtable16define dso_local void @init_array() local_unnamed_addr {17entry:18  %polly.par.userContext = alloca {}, align 819  %polly.par.userContext1 = bitcast {}* %polly.par.userContext to i8*20  call void @GOMP_parallel_loop_runtime_start(void (i8*)* nonnull @init_array_polly_subfn, i8* nonnull %polly.par.userContext1, i32 0, i64 0, i64 1536, i64 1)21  call void @init_array_polly_subfn(i8* nonnull %polly.par.userContext1)22  call void @GOMP_parallel_end()23  ret void24}25 26; Function Attrs: noinline nounwind uwtable27define dso_local void @print_array() local_unnamed_addr {28entry:29  br label %for.cond1.preheader30 31for.cond1.preheader:                              ; preds = %for.end, %entry32  %indvars.iv6 = phi i64 [ 0, %entry ], [ %indvars.iv.next7, %for.end ]33  %0 = load %struct._IO_FILE*, %struct._IO_FILE** @stdout, align 834  br label %for.body335 36for.body3:                                        ; preds = %for.inc, %for.cond1.preheader37  %indvars.iv = phi i64 [ 0, %for.cond1.preheader ], [ %indvars.iv.next, %for.inc ]38  %1 = phi %struct._IO_FILE* [ %0, %for.cond1.preheader ], [ %5, %for.inc ]39  %arrayidx5 = getelementptr inbounds [1536 x [1536 x float]], [1536 x [1536 x float]]* @C, i64 0, i64 %indvars.iv6, i64 %indvars.iv40  %2 = load float, float* %arrayidx5, align 441  %conv = fpext float %2 to double42  %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)43  %3 = trunc i64 %indvars.iv to i3244  %rem = urem i32 %3, 8045  %cmp6 = icmp eq i32 %rem, 7946  br i1 %cmp6, label %if.then, label %for.inc47 48if.then:                                          ; preds = %for.body349  %4 = load %struct._IO_FILE*, %struct._IO_FILE** @stdout, align 850  %fputc3 = tail call i32 @fputc(i32 10, %struct._IO_FILE* %4)51  br label %for.inc52 53for.inc:                                          ; preds = %if.then, %for.body354  %indvars.iv.next = add nuw nsw i64 %indvars.iv, 155  %5 = load %struct._IO_FILE*, %struct._IO_FILE** @stdout, align 856  %exitcond = icmp eq i64 %indvars.iv.next, 153657  br i1 %exitcond, label %for.end, label %for.body358 59for.end:                                          ; preds = %for.inc60  %fputc = tail call i32 @fputc(i32 10, %struct._IO_FILE* %5)61  %indvars.iv.next7 = add nuw nsw i64 %indvars.iv6, 162  %exitcond8 = icmp eq i64 %indvars.iv.next7, 153663  br i1 %exitcond8, label %for.end12, label %for.cond1.preheader64 65for.end12:                                        ; preds = %for.end66  ret void67}68 69; Function Attrs: nounwind70declare dso_local i32 @fprintf(%struct._IO_FILE* nocapture, i8* nocapture readonly, ...) local_unnamed_addr71 72; Function Attrs: noinline nounwind uwtable73define dso_local i32 @main() local_unnamed_addr {74entry:75  %polly.par.userContext3 = alloca {}, align 876  tail call void @init_array()77  %polly.par.userContext1 = bitcast {}* %polly.par.userContext3 to i8*78  call void @GOMP_parallel_loop_runtime_start(void (i8*)* nonnull @main_polly_subfn, i8* nonnull %polly.par.userContext1, i32 0, i64 0, i64 1536, i64 1)79  call void @main_polly_subfn(i8* nonnull %polly.par.userContext1)80  call void @GOMP_parallel_end()81  call void @GOMP_parallel_loop_runtime_start(void (i8*)* nonnull @main_polly_subfn_1, i8* nonnull %polly.par.userContext1, i32 0, i64 0, i64 1536, i64 64)82  call void @main_polly_subfn_1(i8* nonnull %polly.par.userContext1)83  call void @GOMP_parallel_end()84  ret i32 085}86 87; Function Attrs: nounwind88declare i32 @fputc(i32, %struct._IO_FILE* nocapture) local_unnamed_addr89 90define internal void @init_array_polly_subfn(i8* nocapture readnone %polly.par.userContext) {91polly.par.setup:92  %polly.par.LBPtr = alloca i64, align 893  %polly.par.UBPtr = alloca i64, align 894  %0 = call i8 @GOMP_loop_runtime_next(i64* nonnull %polly.par.LBPtr, i64* nonnull %polly.par.UBPtr)95  %1 = icmp eq i8 %0, 096  br i1 %1, label %polly.par.exit, label %polly.par.loadIVBounds97 98polly.par.exit:                                   ; preds = %polly.par.checkNext.loopexit, %polly.par.setup99  call void @GOMP_loop_end_nowait()100  ret void101 102polly.par.checkNext.loopexit:                     ; preds = %polly.loop_exit4103  %2 = call i8 @GOMP_loop_runtime_next(i64* nonnull %polly.par.LBPtr, i64* nonnull %polly.par.UBPtr)104  %3 = icmp eq i8 %2, 0105  br i1 %3, label %polly.par.exit, label %polly.par.loadIVBounds106 107polly.par.loadIVBounds:                           ; preds = %polly.par.setup, %polly.par.checkNext.loopexit108  %polly.par.LB = load i64, i64* %polly.par.LBPtr, align 8109  %polly.par.UB = load i64, i64* %polly.par.UBPtr, align 8110  %polly.par.UBAdjusted = add i64 %polly.par.UB, -1111  br label %polly.loop_header112 113polly.loop_header:                                ; preds = %polly.par.loadIVBounds, %polly.loop_exit4114  %polly.indvar = phi i64 [ %polly.par.LB, %polly.par.loadIVBounds ], [ %polly.indvar_next, %polly.loop_exit4 ]115  %4 = trunc i64 %polly.indvar to i32116  br label %polly.loop_header2117 118polly.loop_exit4:                                 ; preds = %polly.loop_header2119  %polly.indvar_next = add nsw i64 %polly.indvar, 1120  %polly.loop_cond = icmp slt i64 %polly.indvar, %polly.par.UBAdjusted121  br i1 %polly.loop_cond, label %polly.loop_header, label %polly.par.checkNext.loopexit122 123polly.loop_header2:                               ; preds = %polly.loop_header2, %polly.loop_header124  %polly.indvar5 = phi i64 [ 0, %polly.loop_header ], [ %polly.indvar_next6, %polly.loop_header2 ]125  %5 = trunc i64 %polly.indvar5 to i32126  %6 = mul i32 %5, %4127  %7 = and i32 %6, 1023128  %8 = add nuw nsw i32 %7, 1129  %p_conv = sitofp i32 %8 to double130  %p_div = fmul double %p_conv, 5.000000e-01131  %p_conv4 = fptrunc double %p_div to float132  %scevgep8 = getelementptr [1536 x [1536 x float]], [1536 x [1536 x float]]* @A, i64 0, i64 %polly.indvar, i64 %polly.indvar5133  store float %p_conv4, float* %scevgep8, align 4, !alias.scope !2, !noalias !4134  %scevgep10 = getelementptr [1536 x [1536 x float]], [1536 x [1536 x float]]* @B, i64 0, i64 %polly.indvar, i64 %polly.indvar5135  store float %p_conv4, float* %scevgep10, align 4, !alias.scope !5, !noalias !6136  %polly.indvar_next6 = add nuw nsw i64 %polly.indvar5, 1137  %exitcond = icmp eq i64 %polly.indvar_next6, 1536138  br i1 %exitcond, label %polly.loop_exit4, label %polly.loop_header2139}140 141declare i8 @GOMP_loop_runtime_next(i64*, i64*) local_unnamed_addr142 143declare void @GOMP_loop_end_nowait() local_unnamed_addr144 145declare void @GOMP_parallel_loop_runtime_start(void (i8*)*, i8*, i32, i64, i64, i64) local_unnamed_addr146 147declare void @GOMP_parallel_end() local_unnamed_addr148 149define internal void @main_polly_subfn(i8* nocapture readnone %polly.par.userContext) {150polly.par.setup:151  %polly.par.LBPtr = alloca i64, align 8152  %polly.par.UBPtr = alloca i64, align 8153  %0 = call i8 @GOMP_loop_runtime_next(i64* nonnull %polly.par.LBPtr, i64* nonnull %polly.par.UBPtr)154  %1 = icmp eq i8 %0, 0155  br i1 %1, label %polly.par.exit, label %polly.par.loadIVBounds156 157polly.par.exit:                                   ; preds = %polly.par.loadIVBounds, %polly.par.setup158  call void @GOMP_loop_end_nowait()159  ret void160 161polly.par.loadIVBounds:                           ; preds = %polly.par.setup, %polly.par.loadIVBounds162  %polly.par.LB = load i64, i64* %polly.par.LBPtr, align 8163  %polly.par.UB = load i64, i64* %polly.par.UBPtr, align 8164  %polly.par.UBAdjusted = add i64 %polly.par.UB, -1165  %scevgep2 = getelementptr [1536 x [1536 x float]], [1536 x [1536 x float]]* @C, i64 0, i64 %polly.par.LB, i64 0166  %scevgep23 = bitcast float* %scevgep2 to i8*167  %2 = icmp sgt i64 %polly.par.LB, %polly.par.UBAdjusted168  %smax = select i1 %2, i64 %polly.par.LB, i64 %polly.par.UBAdjusted169  %3 = add i64 %smax, 1170  %4 = sub i64 %3, %polly.par.LB171  %5 = mul i64 %4, 6144172  call void @llvm.memset.p0i8.i64(i8* align 16 %scevgep23, i8 0, i64 %5, i1 false)173  %6 = call i8 @GOMP_loop_runtime_next(i64* nonnull %polly.par.LBPtr, i64* nonnull %polly.par.UBPtr)174  %7 = icmp eq i8 %6, 0175  br i1 %7, label %polly.par.exit, label %polly.par.loadIVBounds176}177 178define internal void @main_polly_subfn_1(i8* nocapture readnone %polly.par.userContext) {179polly.par.setup:180  %polly.par.LBPtr = alloca i64, align 8181  %polly.par.UBPtr = alloca i64, align 8182  %0 = call i8 @GOMP_loop_runtime_next(i64* nonnull %polly.par.LBPtr, i64* nonnull %polly.par.UBPtr)183  %1 = icmp eq i8 %0, 0184  br i1 %1, label %polly.par.exit, label %polly.par.loadIVBounds185 186polly.par.exit:                                   ; preds = %polly.par.checkNext.loopexit, %polly.par.setup187  call void @GOMP_loop_end_nowait()188  ret void189 190polly.par.checkNext.loopexit:                     ; preds = %polly.loop_exit4191  %2 = call i8 @GOMP_loop_runtime_next(i64* nonnull %polly.par.LBPtr, i64* nonnull %polly.par.UBPtr)192  %3 = icmp eq i8 %2, 0193  br i1 %3, label %polly.par.exit, label %polly.par.loadIVBounds194 195polly.par.loadIVBounds:                           ; preds = %polly.par.setup, %polly.par.checkNext.loopexit196  %polly.par.LB = load i64, i64* %polly.par.LBPtr, align 8197  %polly.par.UB = load i64, i64* %polly.par.UBPtr, align 8198  %polly.par.UBAdjusted = add i64 %polly.par.UB, -1199  br label %polly.loop_header200 201polly.loop_header:                                ; preds = %polly.loop_exit4, %polly.par.loadIVBounds202  %polly.indvar = phi i64 [ %polly.par.LB, %polly.par.loadIVBounds ], [ %polly.indvar_next, %polly.loop_exit4 ]203  %4 = add nsw i64 %polly.indvar, 63204  br label %polly.loop_header2205 206polly.loop_exit4:                                 ; preds = %polly.loop_exit10207  %polly.indvar_next = add nsw i64 %polly.indvar, 64208  %polly.loop_cond = icmp sgt i64 %polly.indvar_next, %polly.par.UBAdjusted209  br i1 %polly.loop_cond, label %polly.par.checkNext.loopexit, label %polly.loop_header210 211polly.loop_header2:                               ; preds = %polly.loop_header, %polly.loop_exit10212  %indvar = phi i64 [ 0, %polly.loop_header ], [ %indvar.next, %polly.loop_exit10 ]213  %polly.indvar5 = phi i64 [ 0, %polly.loop_header ], [ %polly.indvar_next6, %polly.loop_exit10 ]214  %5 = shl i64 %indvar, 6215  %offset.idx.1 = or i64 %5, 16216  %offset.idx.2 = or i64 %5, 32217  %offset.idx.3 = or i64 %5, 48218  br label %polly.loop_header8219 220polly.loop_exit10:                                ; preds = %polly.loop_exit16221  %polly.indvar_next6 = add nuw nsw i64 %polly.indvar5, 64222  %polly.loop_cond7 = icmp ult i64 %polly.indvar_next6, 1536223  %indvar.next = add i64 %indvar, 1224  br i1 %polly.loop_cond7, label %polly.loop_header2, label %polly.loop_exit4225 226polly.loop_header8:                               ; preds = %polly.loop_header2, %polly.loop_exit16227  %indvars.iv3 = phi i64 [ 64, %polly.loop_header2 ], [ %indvars.iv.next4, %polly.loop_exit16 ]228  %polly.indvar11 = phi i64 [ 0, %polly.loop_header2 ], [ %polly.indvar_next12, %polly.loop_exit16 ]229  br label %polly.loop_header14230 231polly.loop_exit16:                                ; preds = %polly.loop_exit22232  %polly.indvar_next12 = add nuw nsw i64 %polly.indvar11, 64233  %polly.loop_cond13 = icmp ult i64 %polly.indvar_next12, 1536234  %indvars.iv.next4 = add nuw nsw i64 %indvars.iv3, 64235  br i1 %polly.loop_cond13, label %polly.loop_header8, label %polly.loop_exit10236 237polly.loop_header14:                              ; preds = %polly.loop_header8, %polly.loop_exit22238  %polly.indvar17 = phi i64 [ %polly.indvar_next18, %polly.loop_exit22 ], [ %polly.indvar, %polly.loop_header8 ]239  %6 = getelementptr [1536 x [1536 x float]], [1536 x [1536 x float]]* @C, i64 0, i64 %polly.indvar17, i64 %5240  %7 = bitcast float* %6 to <16 x float>*241  %8 = getelementptr [1536 x [1536 x float]], [1536 x [1536 x float]]* @C, i64 0, i64 %polly.indvar17, i64 %offset.idx.1242  %9 = bitcast float* %8 to <16 x float>*243  %10 = getelementptr [1536 x [1536 x float]], [1536 x [1536 x float]]* @C, i64 0, i64 %polly.indvar17, i64 %offset.idx.2244  %11 = bitcast float* %10 to <16 x float>*245  %12 = getelementptr [1536 x [1536 x float]], [1536 x [1536 x float]]* @C, i64 0, i64 %polly.indvar17, i64 %offset.idx.3246  %13 = bitcast float* %12 to <16 x float>*247  %.promoted = load <16 x float>, <16 x float>* %7, align 4, !alias.scope !7, !noalias !9248  %.promoted16 = load <16 x float>, <16 x float>* %9, align 4, !alias.scope !7, !noalias !9249  %.promoted18 = load <16 x float>, <16 x float>* %11, align 4, !alias.scope !7, !noalias !9250  %.promoted20 = load <16 x float>, <16 x float>* %13, align 4, !alias.scope !7, !noalias !9251  br label %vector.ph252 253polly.loop_exit22:                                ; preds = %vector.ph254  store <16 x float> %interleaved.vec, <16 x float>* %7, align 4, !alias.scope !7, !noalias !9255  store <16 x float> %interleaved.vec.1, <16 x float>* %9, align 4, !alias.scope !7, !noalias !9256  store <16 x float> %interleaved.vec.2, <16 x float>* %11, align 4, !alias.scope !7, !noalias !9257  store <16 x float> %interleaved.vec.3, <16 x float>* %13, align 4, !alias.scope !7, !noalias !9258  %polly.indvar_next18 = add nsw i64 %polly.indvar17, 1259  %polly.loop_cond19 = icmp slt i64 %polly.indvar17, %4260  br i1 %polly.loop_cond19, label %polly.loop_header14, label %polly.loop_exit16261 262vector.ph:                                        ; preds = %polly.loop_header14, %vector.ph263  %wide.vec.321 = phi <16 x float> [ %.promoted20, %polly.loop_header14 ], [ %interleaved.vec.3, %vector.ph ]264  %wide.vec.219 = phi <16 x float> [ %.promoted18, %polly.loop_header14 ], [ %interleaved.vec.2, %vector.ph ]265  %wide.vec.117 = phi <16 x float> [ %.promoted16, %polly.loop_header14 ], [ %interleaved.vec.1, %vector.ph ]266  %wide.vec15 = phi <16 x float> [ %.promoted, %polly.loop_header14 ], [ %interleaved.vec, %vector.ph ]267  %polly.indvar23 = phi i64 [ %polly.indvar11, %polly.loop_header14 ], [ %polly.indvar_next24, %vector.ph ]268  %scevgep40 = getelementptr [1536 x [1536 x float]], [1536 x [1536 x float]]* @A, i64 0, i64 %polly.indvar17, i64 %polly.indvar23269  %_p_scalar_41 = load float, float* %scevgep40, align 4, !alias.scope !10, !noalias !12270  %broadcast.splatinsert13 = insertelement <4 x float> undef, float %_p_scalar_41, i32 0271  %broadcast.splat14 = shufflevector <4 x float> %broadcast.splatinsert13, <4 x float> undef, <4 x i32> zeroinitializer272  %strided.vec = shufflevector <16 x float> %wide.vec15, <16 x float> undef, <4 x i32> <i32 0, i32 4, i32 8, i32 12>273  %strided.vec5 = shufflevector <16 x float> %wide.vec15, <16 x float> undef, <4 x i32> <i32 1, i32 5, i32 9, i32 13>274  %strided.vec6 = shufflevector <16 x float> %wide.vec15, <16 x float> undef, <4 x i32> <i32 2, i32 6, i32 10, i32 14>275  %strided.vec7 = shufflevector <16 x float> %wide.vec15, <16 x float> undef, <4 x i32> <i32 3, i32 7, i32 11, i32 15>276  %14 = getelementptr [1536 x [1536 x float]], [1536 x [1536 x float]]* @B, i64 0, i64 %polly.indvar23, i64 %5277  %15 = bitcast float* %14 to <16 x float>*278  %wide.vec8 = load <16 x float>, <16 x float>* %15, align 16, !alias.scope !11, !noalias !13279  %strided.vec9 = shufflevector <16 x float> %wide.vec8, <16 x float> undef, <4 x i32> <i32 0, i32 4, i32 8, i32 12>280  %strided.vec10 = shufflevector <16 x float> %wide.vec8, <16 x float> undef, <4 x i32> <i32 1, i32 5, i32 9, i32 13>281  %strided.vec11 = shufflevector <16 x float> %wide.vec8, <16 x float> undef, <4 x i32> <i32 2, i32 6, i32 10, i32 14>282  %strided.vec12 = shufflevector <16 x float> %wide.vec8, <16 x float> undef, <4 x i32> <i32 3, i32 7, i32 11, i32 15>283  %16 = fmul <4 x float> %broadcast.splat14, %strided.vec9284  %17 = fadd <4 x float> %strided.vec, %16285  %18 = fmul <4 x float> %broadcast.splat14, %strided.vec10286  %19 = fadd <4 x float> %strided.vec5, %18287  %20 = fmul <4 x float> %broadcast.splat14, %strided.vec11288  %21 = fadd <4 x float> %strided.vec6, %20289  %22 = fmul <4 x float> %broadcast.splat14, %strided.vec12290  %23 = fadd <4 x float> %strided.vec7, %22291  %24 = shufflevector <4 x float> %17, <4 x float> %19, <8 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7>292  %25 = shufflevector <4 x float> %21, <4 x float> %23, <8 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7>293  %interleaved.vec = shufflevector <8 x float> %24, <8 x float> %25, <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>294  %strided.vec.1 = shufflevector <16 x float> %wide.vec.117, <16 x float> undef, <4 x i32> <i32 0, i32 4, i32 8, i32 12>295  %strided.vec5.1 = shufflevector <16 x float> %wide.vec.117, <16 x float> undef, <4 x i32> <i32 1, i32 5, i32 9, i32 13>296  %strided.vec6.1 = shufflevector <16 x float> %wide.vec.117, <16 x float> undef, <4 x i32> <i32 2, i32 6, i32 10, i32 14>297  %strided.vec7.1 = shufflevector <16 x float> %wide.vec.117, <16 x float> undef, <4 x i32> <i32 3, i32 7, i32 11, i32 15>298  %26 = getelementptr [1536 x [1536 x float]], [1536 x [1536 x float]]* @B, i64 0, i64 %polly.indvar23, i64 %offset.idx.1299  %27 = bitcast float* %26 to <16 x float>*300  %wide.vec8.1 = load <16 x float>, <16 x float>* %27, align 16, !alias.scope !11, !noalias !13301  %strided.vec9.1 = shufflevector <16 x float> %wide.vec8.1, <16 x float> undef, <4 x i32> <i32 0, i32 4, i32 8, i32 12>302  %strided.vec10.1 = shufflevector <16 x float> %wide.vec8.1, <16 x float> undef, <4 x i32> <i32 1, i32 5, i32 9, i32 13>303  %strided.vec11.1 = shufflevector <16 x float> %wide.vec8.1, <16 x float> undef, <4 x i32> <i32 2, i32 6, i32 10, i32 14>304  %strided.vec12.1 = shufflevector <16 x float> %wide.vec8.1, <16 x float> undef, <4 x i32> <i32 3, i32 7, i32 11, i32 15>305  %28 = fmul <4 x float> %broadcast.splat14, %strided.vec9.1306  %29 = fadd <4 x float> %strided.vec.1, %28307  %30 = fmul <4 x float> %broadcast.splat14, %strided.vec10.1308  %31 = fadd <4 x float> %strided.vec5.1, %30309  %32 = fmul <4 x float> %broadcast.splat14, %strided.vec11.1310  %33 = fadd <4 x float> %strided.vec6.1, %32311  %34 = fmul <4 x float> %broadcast.splat14, %strided.vec12.1312  %35 = fadd <4 x float> %strided.vec7.1, %34313  %36 = shufflevector <4 x float> %29, <4 x float> %31, <8 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7>314  %37 = shufflevector <4 x float> %33, <4 x float> %35, <8 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7>315  %interleaved.vec.1 = shufflevector <8 x float> %36, <8 x float> %37, <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>316  %strided.vec.2 = shufflevector <16 x float> %wide.vec.219, <16 x float> undef, <4 x i32> <i32 0, i32 4, i32 8, i32 12>317  %strided.vec5.2 = shufflevector <16 x float> %wide.vec.219, <16 x float> undef, <4 x i32> <i32 1, i32 5, i32 9, i32 13>318  %strided.vec6.2 = shufflevector <16 x float> %wide.vec.219, <16 x float> undef, <4 x i32> <i32 2, i32 6, i32 10, i32 14>319  %strided.vec7.2 = shufflevector <16 x float> %wide.vec.219, <16 x float> undef, <4 x i32> <i32 3, i32 7, i32 11, i32 15>320  %38 = getelementptr [1536 x [1536 x float]], [1536 x [1536 x float]]* @B, i64 0, i64 %polly.indvar23, i64 %offset.idx.2321  %39 = bitcast float* %38 to <16 x float>*322  %wide.vec8.2 = load <16 x float>, <16 x float>* %39, align 16, !alias.scope !11, !noalias !13323  %strided.vec9.2 = shufflevector <16 x float> %wide.vec8.2, <16 x float> undef, <4 x i32> <i32 0, i32 4, i32 8, i32 12>324  %strided.vec10.2 = shufflevector <16 x float> %wide.vec8.2, <16 x float> undef, <4 x i32> <i32 1, i32 5, i32 9, i32 13>325  %strided.vec11.2 = shufflevector <16 x float> %wide.vec8.2, <16 x float> undef, <4 x i32> <i32 2, i32 6, i32 10, i32 14>326  %strided.vec12.2 = shufflevector <16 x float> %wide.vec8.2, <16 x float> undef, <4 x i32> <i32 3, i32 7, i32 11, i32 15>327  %40 = fmul <4 x float> %broadcast.splat14, %strided.vec9.2328  %41 = fadd <4 x float> %strided.vec.2, %40329  %42 = fmul <4 x float> %broadcast.splat14, %strided.vec10.2330  %43 = fadd <4 x float> %strided.vec5.2, %42331  %44 = fmul <4 x float> %broadcast.splat14, %strided.vec11.2332  %45 = fadd <4 x float> %strided.vec6.2, %44333  %46 = fmul <4 x float> %broadcast.splat14, %strided.vec12.2334  %47 = fadd <4 x float> %strided.vec7.2, %46335  %48 = shufflevector <4 x float> %41, <4 x float> %43, <8 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7>336  %49 = shufflevector <4 x float> %45, <4 x float> %47, <8 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7>337  %interleaved.vec.2 = shufflevector <8 x float> %48, <8 x float> %49, <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>338  %strided.vec.3 = shufflevector <16 x float> %wide.vec.321, <16 x float> undef, <4 x i32> <i32 0, i32 4, i32 8, i32 12>339  %strided.vec5.3 = shufflevector <16 x float> %wide.vec.321, <16 x float> undef, <4 x i32> <i32 1, i32 5, i32 9, i32 13>340  %strided.vec6.3 = shufflevector <16 x float> %wide.vec.321, <16 x float> undef, <4 x i32> <i32 2, i32 6, i32 10, i32 14>341  %strided.vec7.3 = shufflevector <16 x float> %wide.vec.321, <16 x float> undef, <4 x i32> <i32 3, i32 7, i32 11, i32 15>342  %50 = getelementptr [1536 x [1536 x float]], [1536 x [1536 x float]]* @B, i64 0, i64 %polly.indvar23, i64 %offset.idx.3343  %51 = bitcast float* %50 to <16 x float>*344  %wide.vec8.3 = load <16 x float>, <16 x float>* %51, align 16, !alias.scope !11, !noalias !13345  %strided.vec9.3 = shufflevector <16 x float> %wide.vec8.3, <16 x float> undef, <4 x i32> <i32 0, i32 4, i32 8, i32 12>346  %strided.vec10.3 = shufflevector <16 x float> %wide.vec8.3, <16 x float> undef, <4 x i32> <i32 1, i32 5, i32 9, i32 13>347  %strided.vec11.3 = shufflevector <16 x float> %wide.vec8.3, <16 x float> undef, <4 x i32> <i32 2, i32 6, i32 10, i32 14>348  %strided.vec12.3 = shufflevector <16 x float> %wide.vec8.3, <16 x float> undef, <4 x i32> <i32 3, i32 7, i32 11, i32 15>349  %52 = fmul <4 x float> %broadcast.splat14, %strided.vec9.3350  %53 = fadd <4 x float> %strided.vec.3, %52351  %54 = fmul <4 x float> %broadcast.splat14, %strided.vec10.3352  %55 = fadd <4 x float> %strided.vec5.3, %54353  %56 = fmul <4 x float> %broadcast.splat14, %strided.vec11.3354  %57 = fadd <4 x float> %strided.vec6.3, %56355  %58 = fmul <4 x float> %broadcast.splat14, %strided.vec12.3356  %59 = fadd <4 x float> %strided.vec7.3, %58357  %60 = shufflevector <4 x float> %53, <4 x float> %55, <8 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7>358  %61 = shufflevector <4 x float> %57, <4 x float> %59, <8 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7>359  %interleaved.vec.3 = shufflevector <8 x float> %60, <8 x float> %61, <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>360  %polly.indvar_next24 = add nuw nsw i64 %polly.indvar23, 1361  %exitcond = icmp eq i64 %polly.indvar_next24, %indvars.iv3362  br i1 %exitcond, label %polly.loop_exit22, label %vector.ph363}364 365; Function Attrs: argmemonly nounwind366declare void @llvm.memset.p0i8.i64(i8* nocapture writeonly, i8, i64, i1)367 368!llvm.module.flags = !{!0}369!llvm.ident = !{!1}370 371!0 = !{i32 1, !"wchar_size", i32 4}372!1 = !{!"clang version 8.0.0 (trunk 342834) (llvm/trunk 342856)"}373!2 = distinct !{!2, !3, !"polly.alias.scope.MemRef_A"}374!3 = distinct !{!3, !"polly.alias.scope.domain"}375!4 = !{!5}376!5 = distinct !{!5, !3, !"polly.alias.scope.MemRef_B"}377!6 = !{!2}378!7 = distinct !{!7, !8, !"polly.alias.scope.MemRef_C"}379!8 = distinct !{!8, !"polly.alias.scope.domain"}380!9 = !{!10, !11}381!10 = distinct !{!10, !8, !"polly.alias.scope.MemRef_A"}382!11 = distinct !{!11, !8, !"polly.alias.scope.MemRef_B"}383!12 = !{!7, !11}384!13 = !{!7, !10}385