blob: 1b1f6d32271b76a86351fc0c236a6e4acb6d55fd [file] [log] [blame]
/* { dg-do run } */
/* { dg-options "-fno-tree-scev-cprop -fno-tree-vectorize -g" } */
#include "../nop.h"
void __attribute__((noipa,noinline))
foo (int n)
{
if (n == 0)
return;
int i = 0;
do
{
++i; /* { dg-final { gdb-test . "i" "0" } } */
}
while (i < n);
/* The following works only with final value replacement or with the NOP
but not without (which means -Og). Vectorization breaks it, so disable
that. At -O3 it currently fails, PR89983. */
__asm__ volatile (NOP : : "g" (i) : "memory"); /* { dg-final { gdb-test . "i" "1" { xfail { aarch64*-*-* && { any-opts "-ftracer" } } } } } */
}
int main() { foo(1); }