38 lines · plain
1; RUN: opt %loadNPMPolly '-passes=polly<no-default-opts>' -polly-invariant-load-hoisting=true -S < %s | FileCheck %s2 3; CHECK: polly.start4 5; void f(int *A) {6; if (*A > 42)7; *A = *A + 1;8; else9; *A = *A - 1;10; }11;12target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128"13 14define void @f(ptr %A) {15entry:16 br label %entry.split17 18entry.split:19 %tmp = load i32, ptr %A, align 420 %cmp = icmp sgt i32 %tmp, 4221 br i1 %cmp, label %if.then, label %if.else22 23if.then: ; preds = %entry24 %tmp1 = load i32, ptr %A, align 425 %add = add nsw i32 %tmp1, 126 br label %if.end27 28if.else: ; preds = %entry29 %tmp2 = load i32, ptr %A, align 430 %sub = add nsw i32 %tmp2, -131 br label %if.end32 33if.end: ; preds = %if.else, %if.then34 %storemerge = phi i32 [ %sub, %if.else ], [ %add, %if.then ]35 store i32 %storemerge, ptr %A, align 436 ret void37}38