;; The test fails on Windows. Fix it before removing the following requirement.
; REQUIRES: x86_64-linux
; RUN: llvm-profgen --format=text --perfscript=%S/Inputs/noinline-cs-noprobe.perfscript --binary=%S/Inputs/noinline-cs-noprobe.perfbin --output=%t --skip-symbolization --profile-summary-cold-count=0
; RUN: FileCheck %s --input-file %t --check-prefix=CHECK-UNWINDER
; RUN: llvm-profgen --format=text --unsymbolized-profile=%t --binary=%S/Inputs/noinline-cs-noprobe.perfbin --output=%t1 --profile-summary-cold-count=0
; RUN: FileCheck %s --input-file %t1
; RUN: llvm-profgen --format=text --perfscript=%S/Inputs/noinline-cs-noprobe.perfscript --binary=%S/Inputs/noinline-cs-noprobe.perfbin --output=%t --profile-summary-cold-count=0 --ignore-stack-samples
; RUN: FileCheck %s --input-file %t --check-prefix=CHECK-STRIP-CTX
; RUN: llvm-profgen --format=text --perfscript=%S/Inputs/noinline-cs-noprobe.aggperfscript --binary=%S/Inputs/noinline-cs-noprobe.perfbin --output=%t --skip-symbolization --profile-summary-cold-count=0
; RUN: FileCheck %s --input-file %t --check-prefix=CHECK-AGG-UNWINDER
; RUN: llvm-profgen --format=text --perfscript=%S/Inputs/noinline-cs-noprobe.aggperfscript --binary=%S/Inputs/noinline-cs-noprobe.perfbin --output=%t --profile-summary-cold-count=0
; RUN: FileCheck %s --input-file %t --check-prefix=CHECK-AGG

; RUN: llvm-profgen --format=text --perfscript=%S/Inputs/noinline-cs-noprobe.perfscript --binary=%S/Inputs/noinline-cs-noprobe.perfbin --output=%t1 --profile-summary-cold-count=0
; RUN: llvm-profgen --format=extbinary --perfscript=%S/Inputs/noinline-cs-noprobe.perfscript --binary=%S/Inputs/noinline-cs-noprobe.perfbin --output=%t2 --profile-summary-cold-count=0 -use-md5
; RUN: llvm-profdata show --sample -show-sec-info-only %t2 | FileCheck %s --check-prefix=CHECK-MD5
; RUN: llvm-profdata show --sample -detailed-summary --function=dummy %t1 > %t.summary
; RUN: llvm-profdata show --sample -detailed-summary --function=dummy %t2 > %t2.summary
; RUN: diff -b %t.summary %t2.summary


; CHECK-AGG:[main:1 @ foo:3 @ bar]:24:6
; CHECK-AGG: 0: 6
; CHECK-AGG: 1: 6
; CHECK-AGG: 2: 4
; CHECK-AGG: 4: 2
; CHECK-AGG: 5: 6
; CHECK-AGG:[main:1 @ foo]:12:0
; CHECK-AGG: 2: 6
; CHECK-AGG: 3: 6 bar:6


; CHECK-AGG-UNWINDER:      [main:1 @ foo]
; CHECK-AGG-UNWINDER-NEXT:   3
; CHECK-AGG-UNWINDER-NEXT:   5ff-62f:6
; CHECK-AGG-UNWINDER-NEXT:   634-637:6
; CHECK-AGG-UNWINDER-NEXT:   645-645:6
; CHECK-AGG-UNWINDER-NEXT:   3
; CHECK-AGG-UNWINDER-NEXT:   62f->5b0:6
; CHECK-AGG-UNWINDER-NEXT:   637->645:6
; CHECK-AGG-UNWINDER-NEXT:   645->5ff:6
; CHECK-AGG-UNWINDER-NEXT: [main:1 @ foo:3 @ bar]
; CHECK-AGG-UNWINDER-NEXT:   4
; CHECK-AGG-UNWINDER-NEXT:   5b0-5c8:2
; CHECK-AGG-UNWINDER-NEXT:   5b0-5d7:4
; CHECK-AGG-UNWINDER-NEXT:   5dc-5e9:2
; CHECK-AGG-UNWINDER-NEXT:   5e5-5e9:4
; CHECK-AGG-UNWINDER-NEXT:   3
; CHECK-AGG-UNWINDER-NEXT:   5c8->5dc:4
; CHECK-AGG-UNWINDER-NEXT:   5d7->5e5:4
; CHECK-AGG-UNWINDER-NEXT:   5e9->634:6


; CHECK:[main:1 @ foo:3 @ bar]:12:3
; CHECK: 0: 3
; CHECK: 1: 3
; CHECK: 2: 2
; CHECK: 4: 1
; CHECK: 5: 3
; CHECK:[main:1 @ foo]:6:0
; CHECK: 2: 3
; CHECK: 3: 3 bar:3

; CHECK-STRIP-CTX: bar:12:3
; CHECK-STRIP-CTX:  0: 3
; CHECK-STRIP-CTX:  1: 3
; CHECK-STRIP-CTX:  2: 2
; CHECK-STRIP-CTX:  4: 1
; CHECK-STRIP-CTX:  5: 3
; CHECK-STRIP-CTX: foo:6:0
; CHECK-STRIP-CTX:  0: 0
; CHECK-STRIP-CTX:  1: 0
; CHECK-STRIP-CTX:  2: 3
; CHECK-STRIP-CTX:  3: 3 bar:3
; CHECK-STRIP-CTX:  4: 0
; CHECK-STRIP-CTX:  5: 0

; CHECK-UNWINDER:      [main:1 @ foo]
; CHECK-UNWINDER-NEXT:   3
; CHECK-UNWINDER-NEXT:   5ff-62f:3
; CHECK-UNWINDER-NEXT:   634-637:3
; CHECK-UNWINDER-NEXT:   645-645:3
; CHECK-UNWINDER-NEXT:   3
; CHECK-UNWINDER-NEXT:   62f->5b0:3
; CHECK-UNWINDER-NEXT:   637->645:3
; CHECK-UNWINDER-NEXT:   645->5ff:3
; CHECK-UNWINDER-NEXT: [main:1 @ foo:3 @ bar]
; CHECK-UNWINDER-NEXT:   4
; CHECK-UNWINDER-NEXT:   5b0-5c8:1
; CHECK-UNWINDER-NEXT:   5b0-5d7:2
; CHECK-UNWINDER-NEXT:   5dc-5e9:1
; CHECK-UNWINDER-NEXT:   5e5-5e9:2
; CHECK-UNWINDER-NEXT:   3
; CHECK-UNWINDER-NEXT:   5c8->5dc:2
; CHECK-UNWINDER-NEXT:   5d7->5e5:2
; CHECK-UNWINDER-NEXT:   5e9->634:3

; CHECK-MD5: NameTableSection {{.*}} {fixlenmd5}





; original code:
; clang -O0 -g test.c -o a.out
#include <stdio.h>

int bar(int x, int y) {
  if (x % 3) {
    return x - y;
  }
  return x + y;
}

void foo() {
  int s, i = 0;
  while (i++ < 4000 * 4000)
    if (i % 91) s = bar(i, s); else s += 30;
  printf("sum is %d\n", s);
}

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