40 lines · plain
1; RUN: opt %loadNPMPolly '-passes=polly<no-default-opts>' -polly-invariant-load-hoisting=true -polly-ignore-aliasing -polly-process-unprofitable -S < %s | FileCheck %s2;3; CHECK-LABEL: polly.preload.begin:4; CHECK-NEXT: %polly.access.BPLoc = getelementptr ptr, ptr %BPLoc, i64 05; CHECK-NEXT: %polly.access.BPLoc.load = load ptr, ptr %polly.access.BPLoc6;7; CHECK-LABEL: polly.stmt.bb2:8; CHECK-NEXT: %[[offset:.*]] = shl nuw nsw i64 %polly.indvar, 29; CHECK-NEXT: %scevgep = getelementptr i8, ptr %polly.access.BPLoc.load, i64 %[[offset]]10;11; void f(int **BPLoc) {12; for (int i = 0; i < 1024; i++)13; (*BPLoc)[i] = 0;14; }15;16target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128"17 18define void @f(ptr %BPLoc) {19bb:20 br label %bb121 22bb1: ; preds = %bb4, %bb23 %indvars.iv = phi i64 [ %indvars.iv.next, %bb4 ], [ 0, %bb ]24 %exitcond = icmp ne i64 %indvars.iv, 102425 br i1 %exitcond, label %bb2, label %bb526 27bb2: ; preds = %bb128 %tmp = load ptr, ptr %BPLoc, align 829 %tmp3 = getelementptr inbounds i32, ptr %tmp, i64 %indvars.iv30 store i32 0, ptr %tmp3, align 431 br label %bb432 33bb4: ; preds = %bb234 %indvars.iv.next = add nuw nsw i64 %indvars.iv, 135 br label %bb136 37bb5: ; preds = %bb138 ret void39}40