brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.0 KiB · 17f9c30 Raw
45 lines · plain
1; RUN: opt -passes="ipsccp<func-spec>" -funcspec-for-literal-constant=true -force-specialization -S < %s | FileCheck %s2 3; Check that the literal constant parameter could be specialized.4; CHECK: @foo.specialized.1(5; CHECK: @foo.specialized.2(6 7target datalayout = "e-m:e-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128"8 9declare i32 @getValue()10declare i1 @getCond()11 12define internal i32 @foo(i1 %break_cond) {13entry:14  br label %loop.entry15 16loop.entry:17  br label %loop2.entry18 19loop2.entry:20  br label %loop2.body21 22loop2.body:23  %value = call i32 @getValue()24  br i1 %break_cond, label %loop2.end, label %return25 26loop2.end:27  %cond.end = call i1 @getCond()28  br i1 %cond.end, label %loop2.entry, label %loop.end29 30loop.end:31  %cond2.end = call i1 @getCond()32  br i1 %cond2.end, label %loop.entry, label %return33 34return:35  ret i32 %value36}37 38define dso_local i32 @bar(i32 %x, i32 %y) {39entry:40  %retval.1 = call i32 @foo(i1 1)41  %retval.2 = call i32 @foo(i1 0)42  %retval = add nsw i32 %retval.1, %retval.243  ret i32 %retval44}45