/* PR tree-optimization/78819 */
/* { dg-do run } */
/* { dg-options "-O2" } */

__attribute__((noinline, noclone)) void
foo (int argc)
{
  if (argc <= 0 || argc > 3)
    return;

  switch (argc)
    {
    case 1:
    case 3:
      if (argc != 3)
	__builtin_abort ();
      break;
    case 2:
      asm ("");
      break;
    default:
      __builtin_abort ();
    }
}

int
main (void)
{
  foo (3);
  return 0;
}