brintos

brintos / llvm-project-archived public Read only

0
0
Text · 2.0 KiB · ba42692 Raw
75 lines · plain
1; RUN: opt %loadNPMPolly '-passes=polly-custom<delicm>' -polly-print-delicm -disable-output < %s | FileCheck %s2;3; The domain of bb14 contradicts the SCoP's assumptions. This leads to4; 'anything goes' inside the statement since it is never executed,5; including changing a memory write inside to6;   [p_0, arg1] -> { Stmt_bb14[i0] -> MemRef_tmp[o0] : false }7; (i.e.: never write)8;9target datalayout = "e-m:e-p:32:32-Fi8-i64:64-v128:64:128-a:0:32-n32-S64"10 11define void @f(ptr %arg, i32 %arg1) {12bb:13  %tmp = alloca [24 x i32], align 414  br label %bb215 16bb2:17  %tmp3 = phi i32 [ 0, %bb ], [ %tmp32, %bb34 ]18  br i1 true, label %bb5, label %bb419 20bb4:21  br label %bb2422 23bb5:24  %tmp6 = sub nsw i32 %arg1, %tmp325  %tmp7 = add i32 %tmp6, -126  %tmp8 = icmp eq i32 %tmp3, 027  br i1 %tmp8, label %bb13, label %bb1028 29bb10:30  %tmp11 = getelementptr inbounds i16, ptr %arg, i32 %tmp731  %tmp12 = load i16, ptr %tmp11, align 232  br label %bb1433 34bb13:35  br label %bb3136 37bb14:38  %tmp15 = phi i32 [ 0, %bb10 ], [ %tmp21, %bb14 ]39  %tmp16 = phi i16 [ undef, %bb10 ], [ %tmp19, %bb14 ]40  %tmp17 = getelementptr inbounds [24 x i32], ptr %tmp, i32 0, i32 %tmp1541  %tmp19 = load i16, ptr %arg, align 242  store i32 undef, ptr %tmp17, align 443  %tmp20 = call i32 asm "#", "=r,r"(i16 %tmp19) readnone44  %tmp21 = add nuw nsw i32 %tmp15, 145  %tmp22 = icmp eq i32 %tmp21, %tmp346  br i1 %tmp22, label %bb23, label %bb1447 48bb23:49  br label %bb3150 51bb24:52  %tmp25 = phi i32 [ %tmp30, %bb24 ], [ 0, %bb4 ]53  %tmp26 = mul nsw i32 %tmp25, %arg154  %tmp27 = getelementptr inbounds i16, ptr %arg, i32 %tmp2655  %tmp29 = load i16, ptr %tmp27, align 256  %tmp30 = add nuw nsw i32 %tmp25, 157  br i1 false, label %bb31, label %bb2458 59bb31:60  %tmp32 = add nuw nsw i32 %tmp3, 161  br i1 undef, label %bb34, label %bb3362 63bb33:64  unreachable65 66bb34:67  br label %bb268}69 70 71; CHECK:      Stmt_bb1472; CHECK:        MustWriteAccess :=  [Reduction Type: NONE] [Scalar: 1]73; CHECK-NEXT:            [p_0, arg1] -> { Stmt_bb14[i0] -> MemRef_tmp16__phi[] };74; CHECK-NEXT:       new: [p_0, arg1] -> { Stmt_bb14[i0] -> MemRef_tmp[o0] : false };75