blob: 25c6dfb870ce3b64723c3412e4d3883853000ef8 [file] [log] [blame]
extern int p(int);
static int ffor(void)
{
int i;
for (int i = 0; i < 10; i++) {
if (!p(i))
return 0;
}
return 1;
}
static int fwhile(void)
{
int i = 0;
while (i < 10) {
if (!p(i))
return 0;
i++;
}
return 1;
}
static int fdo(void)
{
int i = 0;
do {
if (!p(i))
return 0;
} while (i++ < 10);
return 1;
}
/*
* check-name: loop-linearization
* check-command: test-linearize $file
*
* check-output-start
ffor:
.L0:
<entry-point>
phisrc.32 %phi5(i) <- $0
br .L4
.L4:
phi.32 %r1(i) <- %phi5(i), %phi6(i)
setlt.32 %r2 <- %r1(i), $10
cbr %r2, .L1, .L3
.L1:
call.32 %r4 <- p, %r1(i)
cbr %r4, .L2, .L5
.L5:
phisrc.32 %phi1(return) <- $0
br .L7
.L2:
add.32 %r7 <- %r1(i), $1
phisrc.32 %phi6(i) <- %r7
br .L4
.L3:
phisrc.32 %phi2(return) <- $1
br .L7
.L7:
phi.32 %r5 <- %phi1(return), %phi2(return)
ret.32 %r5
fwhile:
.L8:
<entry-point>
phisrc.32 %phi11(i) <- $0
br .L12
.L12:
phi.32 %r8(i) <- %phi11(i), %phi12(i)
setlt.32 %r9 <- %r8(i), $10
cbr %r9, .L9, .L11
.L9:
call.32 %r11 <- p, %r8(i)
cbr %r11, .L14, .L13
.L13:
phisrc.32 %phi7(return) <- $0
br .L15
.L14:
add.32 %r14 <- %r8(i), $1
phisrc.32 %phi12(i) <- %r14
br .L12
.L11:
phisrc.32 %phi8(return) <- $1
br .L15
.L15:
phi.32 %r12 <- %phi7(return), %phi8(return)
ret.32 %r12
fdo:
.L16:
<entry-point>
phisrc.32 %phi16(i) <- $0
br .L17
.L17:
phi.32 %r15(i) <- %phi16(i), %phi17(i)
call.32 %r16 <- p, %r15(i)
cbr %r16, .L18, .L20
.L20:
phisrc.32 %phi13(return) <- $0
br .L22
.L18:
add.32 %r19 <- %r15(i), $1
setlt.32 %r20 <- %r15(i), $10
phisrc.32 %phi17(i) <- %r19
cbr %r20, .L17, .L19
.L19:
phisrc.32 %phi14(return) <- $1
br .L22
.L22:
phi.32 %r17 <- %phi13(return), %phi14(return)
ret.32 %r17
* check-output-end
*/