text: /* { dg-do compile } */
  /* { dg-options "-O2 -fdump-tree-vrp1-details" } */
  /* LLVM LOCAL test not applicable */
  /* { dg-require-fdump "" } */
  
  extern void abort ();
  int tree_code_length[100];
  
  blah (int code1)
  {
    unsigned char D18670;
  
    if (code1 != 53) goto L0; else goto L1;
  
  L0:
    abort ();
  
  L1:
    D18670 = tree_code_length[53];
    if (D18670 <= 1) goto L2; else goto L3;
  
  L2:
    abort ();
  
  L3:
    if (D18670 == 2) goto L4; else goto L5;
  
  L4:
    abort ();
  
  L5:
    arf ();
    if (code1 != 53) goto L6; else goto L7;
  
  L6:
    abort ();
  
  L7:
    if (D18670 <= 2) goto L8; else goto L9;
  
  L8:
    abort ();
  
  L9:
    return;
  
  }
  
  /* The second test of (code1 != 53) and the test (D18670 <= 2) are
     both totally subsumed by earlier tests and thus should be folded
     away using VRP.  */
  /* { dg-final { scan-tree-dump-times "Folding predicate" 2 "vrp1" } } */
  /* { dg-final { cleanup-tree-dump "vrp1" } } */
  
  