blob: 2fea335ee50706af179f50acd75a0c1564ce82e2 [file] [log] [blame]
/* { dg-do compile } */
/* { dg-options "-O2 -msse4.1 -mstv -mno-stackrealign" } */
void foo (int *dc, int *mc, int *tpdd, int *tpmd, int M)
{
int sc;
int k;
for (k = 1; k <= M; k++)
{
dc[k] = dc[k-1] + tpdd[k-1];
if ((sc = mc[k-1] + tpmd[k-1]) > dc[k]) dc[k] = sc;
if (dc[k] < -987654321) dc[k] = -987654321;
}
}
/* We want to convert the loop to SSE since SSE pmaxsd is faster than
compare + conditional move. */
/* { dg-final { scan-assembler-not "cmov" } } */
/* { dg-final { scan-assembler-times "pmaxsd" 2 } } */
/* { dg-final { scan-assembler-times "paddd" 2 } } */