# Per-procedure histogram
# RUN: compile-masm %S/op_histogram_proc.masm -o %t.masp
# RUN: (miden-debug \
# RUN: --profiling-reports-dir %t_reports \
# RUN: --profiling-instruments op-histogram-proc \
# RUN: --commands %s %t.masp 2>&1; \
# RUN: cat %t_reports/op-histogram-proc) | filecheck %s
continue
stack
# CHECK: Program terminated successfully
# CHECK: [0] 0
# CHECK: procedure: ::$exec::$main
# CHECK-NEXT: total_cycles 100% 5
# CHECK-NEXT: noop 60.00% 3
# CHECK-NEXT: drop 20.00% 1
# CHECK-NEXT: push 20.00% 1
# Unattributed setup operations are reported separately.
# CHECK-NEXT: procedure: <unknown>
# CHECK-NEXT: total_cycles 100% 4
# CHECK-NEXT: push 50.00% 2
# CHECK-NEXT: drop 25.00% 1
# CHECK-NEXT: mstore 25.00% 1
# `double` and `square` tie at 2 cycles; `double` wins the name tie-break.
# CHECK-NEXT: procedure: ::$exec::double
# CHECK-NEXT: total_cycles 100% 2
# CHECK-NEXT: add 50.00% 1
# CHECK-NEXT: dup0 50.00% 1
# CHECK-NEXT: procedure: ::$exec::square
# CHECK-NEXT: total_cycles 100% 2
# CHECK-NEXT: mul 50.00% 1
# CHECK-NEXT: dup0 50.00% 1