// REQUIRES: aarch64-registered-target
// RUN: %clang_cc1 -triple arm64-apple-ios -S -o /dev/null %s -O2 -Rpass-missed=regalloc 2>&1 | FileCheck -check-prefix=REMARK %s
// RUN: %clang_cc1 -triple arm64-apple-ios -S -o /dev/null %s -O2 2>&1 | FileCheck -allow-empty -check-prefix=NO_REMARK %s
// RUN: %clang_cc1 -triple arm64-apple-ios -S -o /dev/null %s -O2 -opt-record-file %t.yaml
// RUN: cat %t.yaml | FileCheck -check-prefix=YAML %s
// RUN: %clang_cc1 -triple arm64-apple-ios -S -o /dev/null %s -O2 -opt-record-file %t.yaml -opt-record-passes asm-printer
// RUN: cat %t.yaml | FileCheck -check-prefix=PASSES %s
// RUN: %clang_cc1 -triple arm64-apple-ios -S -o /dev/null %s -O2 -opt-record-file %t.yaml -opt-record-format yaml
// RUN: cat %t.yaml | FileCheck -check-prefix=YAML %s

void bar(float);

void foo(float *p, int i) {
  while (i--)  {
    float f = *p;
    asm("" ::
        : "d0", "d1", "d2", "d3", "d4", "d5", "d6", "d7", "d8", "d9", "d10", "d11", "d12", "d13", "d14", "d15", "d16", "d17", "d18", "d19", "d20", "d21", "d22", "d23", "d24", "d25", "d26", "d27", "d28", "d29", "d30", "d31", "x0", "x1", "x2", "x3", "x4", "x5", "x6", "x7", "x8", "x9", "x10", "x11", "x12", "x13", "x14", "x15", "x16", "x17", "x18", "x19", "x20", "x21", "x22", "x23", "x24", "x25", "x26", "x27", "x28", "fp", "lr", "sp", "memory");
    bar(f);
  }
}

// REMARK: opt-record-MIR.c:{{[1-9][0-9]*}}:{{[1-9][0-9]*}}: remark: {{[0-9]*}} spills {{[0-9\.e+-]*}} total spills cost {{[0-9]*}} reloads {{[0-9\.e+-]*}} total reloads cost generated in loop
// NO_REMARK-NOT: remark:

// YAML: --- !Missed
// YAML: Pass:            regalloc
// YAML: Name:            LoopSpillReload
// YAML: DebugLoc:        { File: {{[^,]+}},
// YAML:                    Line: {{[1-9][0-9]*}}
// YAML:                    Column: {{[1-9][0-9]*}} }
// YAML: Function:        foo
// YAML: Args:
// YAML:   - NumSpills:       '{{.}}'
// YAML:   - String:          ' spills '
// YAML:   - NumReloads:      '{{.}}'
// YAML:   - String:          ' reloads '
// YAML:   - String:          generated
// YAML: ...

// PASSES: Pass:            asm-printer
// PASSES-NOT: regalloc
