mirror of
https://github.com/capstone-engine/llvm-capstone.git
synced 2025-02-21 18:54:02 +00:00

This will make it easier to switch the default of Polly's invariant load hoisting strategy and also makes it very clear that these test cases indeed require invariant code hoisting to work. llvm-svn: 278667
38 lines
977 B
LLVM
38 lines
977 B
LLVM
; RUN: opt %loadPolly -polly-codegen -polly-invariant-load-hoisting=true -S < %s | FileCheck %s
|
|
|
|
; CHECK: polly.start
|
|
|
|
; void f(int *A) {
|
|
; if (*A > 42)
|
|
; *A = *A + 1;
|
|
; else
|
|
; *A = *A - 1;
|
|
; }
|
|
;
|
|
target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128"
|
|
|
|
define void @f(i32* %A) {
|
|
entry:
|
|
br label %entry.split
|
|
|
|
entry.split:
|
|
%tmp = load i32, i32* %A, align 4
|
|
%cmp = icmp sgt i32 %tmp, 42
|
|
br i1 %cmp, label %if.then, label %if.else
|
|
|
|
if.then: ; preds = %entry
|
|
%tmp1 = load i32, i32* %A, align 4
|
|
%add = add nsw i32 %tmp1, 1
|
|
br label %if.end
|
|
|
|
if.else: ; preds = %entry
|
|
%tmp2 = load i32, i32* %A, align 4
|
|
%sub = add nsw i32 %tmp2, -1
|
|
br label %if.end
|
|
|
|
if.end: ; preds = %if.else, %if.then
|
|
%storemerge = phi i32 [ %sub, %if.else ], [ %add, %if.then ]
|
|
store i32 %storemerge, i32* %A, align 4
|
|
ret void
|
|
}
|