# NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py
# RUN: llvm-mca -mtriple=riscv64 -mcpu=tt-ascalon-d8 -instruction-tables=full -iterations=1 < %s | FileCheck %s

# Simple integer reductions: varies by LMUL
vsetvli zero, zero, e32, m1, tu, mu
vredsum.vs v5, v7, v8

vsetvli zero, zero, e32, m2, tu, mu
vredsum.vs v5, v7, v8

vsetvli zero, zero, e32, m4, tu, mu
vredsum.vs v5, v7, v8

vsetvli zero, zero, e32, m8, tu, mu
vredsum.vs v5, v7, v8

# Advanced integer reductions: varies by LMUL and SEW
vsetvli zero, zero, e16, m1, tu, mu
vredmin.vs v5, v7, v8
vredmax.vs v5, v7, v8

vsetvli zero, zero, e16, m2, tu, mu
vredmin.vs v5, v7, v8
vredmax.vs v5, v7, v8

vsetvli zero, zero, e16, m4, tu, mu
vredmin.vs v5, v7, v8
vredmax.vs v5, v7, v8

vsetvli zero, zero, e16, m8, tu, mu
vredmin.vs v5, v7, v8
vredmax.vs v5, v7, v8

vsetvli zero, zero, e32, m1, tu, mu
vredmin.vs v5, v7, v8
vredmax.vs v5, v7, v8

vsetvli zero, zero, e32, m2, tu, mu
vredmin.vs v5, v7, v8
vredmax.vs v5, v7, v8

vsetvli zero, zero, e32, m4, tu, mu
vredmin.vs v5, v7, v8
vredmax.vs v5, v7, v8

vsetvli zero, zero, e32, m8, tu, mu
vredmin.vs v5, v7, v8
vredmax.vs v5, v7, v8

vsetvli zero, zero, e64, m1, tu, mu
vredmin.vs v5, v7, v8
vredmax.vs v5, v7, v8

vsetvli zero, zero, e64, m2, tu, mu
vredmin.vs v5, v7, v8
vredmax.vs v5, v7, v8

vsetvli zero, zero, e64, m4, tu, mu
vredmin.vs v5, v7, v8
vredmax.vs v5, v7, v8

vsetvli zero, zero, e64, m8, tu, mu
vredmin.vs v5, v7, v8
vredmax.vs v5, v7, v8

# Simple floating point reductions: varies by LMUL and SEW
vsetvli zero, zero, e16, m1, tu, mu
vfredusum.vs v5, v7, v8
vfredosum.vs v5, v7, v8

vsetvli zero, zero, e16, m2, tu, mu
vfredusum.vs v5, v7, v8
vfredosum.vs v5, v7, v8

vsetvli zero, zero, e16, m4, tu, mu
vfredusum.vs v5, v7, v8
vfredosum.vs v5, v7, v8

vsetvli zero, zero, e16, m8, tu, mu
vfredusum.vs v5, v7, v8
vfredosum.vs v5, v7, v8

vsetvli zero, zero, e32, m1, tu, mu
vfredusum.vs v5, v7, v8
vfredosum.vs v5, v7, v8

vsetvli zero, zero, e32, m2, tu, mu
vfredusum.vs v5, v7, v8
vfredosum.vs v5, v7, v8

vsetvli zero, zero, e32, m4, tu, mu
vfredusum.vs v5, v7, v8
vfredosum.vs v5, v7, v8

vsetvli zero, zero, e32, m8, tu, mu
vfredusum.vs v5, v7, v8
vfredosum.vs v5, v7, v8

vsetvli zero, zero, e64, m1, tu, mu
vfredusum.vs v5, v7, v8
vfredosum.vs v5, v7, v8

vsetvli zero, zero, e64, m2, tu, mu
vfredusum.vs v5, v7, v8
vfredosum.vs v5, v7, v8

vsetvli zero, zero, e64, m4, tu, mu
vfredusum.vs v5, v7, v8
vfredosum.vs v5, v7, v8

vsetvli zero, zero, e64, m8, tu, mu
vfredusum.vs v5, v7, v8
vfredosum.vs v5, v7, v8

# Advanced floating point reductions: varies by LMUL and SEW
vsetvli zero, zero, e16, m1, tu, mu
vfredmin.vs v5, v7, v8
vfredmax.vs v5, v7, v8

vsetvli zero, zero, e16, m2, tu, mu
vfredmin.vs v5, v7, v8
vfredmax.vs v5, v7, v8

vsetvli zero, zero, e16, m4, tu, mu
vfredmin.vs v5, v7, v8
vfredmax.vs v5, v7, v8

vsetvli zero, zero, e16, m8, tu, mu
vfredmin.vs v5, v7, v8
vfredmax.vs v5, v7, v8

vsetvli zero, zero, e32, m1, tu, mu
vfredmin.vs v5, v7, v8
vfredmax.vs v5, v7, v8

vsetvli zero, zero, e32, m2, tu, mu
vfredmin.vs v5, v7, v8
vfredmax.vs v5, v7, v8

vsetvli zero, zero, e32, m4, tu, mu
vfredmin.vs v5, v7, v8
vfredmax.vs v5, v7, v8

vsetvli zero, zero, e32, m8, tu, mu
vfredmin.vs v5, v7, v8
vfredmax.vs v5, v7, v8

vsetvli zero, zero, e64, m1, tu, mu
vfredmin.vs v5, v7, v8
vfredmax.vs v5, v7, v8

vsetvli zero, zero, e64, m2, tu, mu
vfredmin.vs v5, v7, v8
vfredmax.vs v5, v7, v8

vsetvli zero, zero, e64, m4, tu, mu
vfredmin.vs v5, v7, v8
vfredmax.vs v5, v7, v8

vsetvli zero, zero, e64, m8, tu, mu
vfredmin.vs v5, v7, v8
vfredmax.vs v5, v7, v8

# CHECK:      Resources:
# CHECK-NEXT: [0]   - AscalonFP:2 AscalonFPA, AscalonFPB
# CHECK-NEXT: [1]   - AscalonFPA:1
# CHECK-NEXT: [2]   - AscalonFPB:1
# CHECK-NEXT: [3]   - AscalonFX:6 AscalonFXA, AscalonFXB, AscalonFXC, AscalonFXC, AscalonFXD, AscalonFXD
# CHECK-NEXT: [4]   - AscalonFXA:1
# CHECK-NEXT: [5]   - AscalonFXB:1
# CHECK-NEXT: [6]   - AscalonFXC:2
# CHECK-NEXT: [7]   - AscalonFXD:2
# CHECK-NEXT: [8]   - AscalonLS:3
# CHECK-NEXT: [9]   - AscalonV:2  AscalonVA, AscalonVB
# CHECK-NEXT: [10]  - AscalonVA:1
# CHECK-NEXT: [11]  - AscalonVB:1

# CHECK:      Instruction Info:
# CHECK-NEXT: [1]: #uOps
# CHECK-NEXT: [2]: Latency
# CHECK-NEXT: [3]: RThroughput
# CHECK-NEXT: [4]: MayLoad
# CHECK-NEXT: [5]: MayStore
# CHECK-NEXT: [6]: HasSideEffects (U)
# CHECK-NEXT: [7]: Bypass Latency
# CHECK-NEXT: [8]: Resources (<Name> | <Name>[<ReleaseAtCycle>] | <Name>[<AcquireAtCycle>,<ReleaseAtCycle])
# CHECK-NEXT: [9]: LLVM Opcode Name

# CHECK:      [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]                                        [9]                        Instructions:
# CHECK-NEXT:  1      1     0.50                  U      0     AscalonV                                   VSETVLI                    vsetvli	zero, zero, e32, m1, tu, mu
# CHECK-NEXT:  1      1     0.50                         1     AscalonFX,AscalonV                         VREDSUM_VS                 vredsum.vs	v5, v7, v8
# CHECK-NEXT:  1      1     0.50                  U      0     AscalonV                                   VSETVLI                    vsetvli	zero, zero, e32, m2, tu, mu
# CHECK-NEXT:  1      2     1.00                         2     AscalonFX,AscalonV[2]                      VREDSUM_VS                 vredsum.vs	v5, v7, v8
# CHECK-NEXT:  1      1     0.50                  U      0     AscalonV                                   VSETVLI                    vsetvli	zero, zero, e32, m4, tu, mu
# CHECK-NEXT:  1      4     2.00                         4     AscalonFX,AscalonV[4]                      VREDSUM_VS                 vredsum.vs	v5, v7, v8
# CHECK-NEXT:  1      1     0.50                  U      0     AscalonV                                   VSETVLI                    vsetvli	zero, zero, e32, m8, tu, mu
# CHECK-NEXT:  1      8     4.00                         8     AscalonFX,AscalonV[8]                      VREDSUM_VS                 vredsum.vs	v5, v7, v8
# CHECK-NEXT:  1      1     0.50                  U      0     AscalonV                                   VSETVLI                    vsetvli	zero, zero, e16, m1, tu, mu
# CHECK-NEXT:  1      1     0.50                         1     AscalonFX,AscalonV                         VREDMIN_VS                 vredmin.vs	v5, v7, v8
# CHECK-NEXT:  1      1     0.50                         1     AscalonFX,AscalonV                         VREDMAX_VS                 vredmax.vs	v5, v7, v8
# CHECK-NEXT:  1      1     0.50                  U      0     AscalonV                                   VSETVLI                    vsetvli	zero, zero, e16, m2, tu, mu
# CHECK-NEXT:  1      2     1.00                         2     AscalonFX,AscalonV[2]                      VREDMIN_VS                 vredmin.vs	v5, v7, v8
# CHECK-NEXT:  1      2     1.00                         2     AscalonFX,AscalonV[2]                      VREDMAX_VS                 vredmax.vs	v5, v7, v8
# CHECK-NEXT:  1      1     0.50                  U      0     AscalonV                                   VSETVLI                    vsetvli	zero, zero, e16, m4, tu, mu
# CHECK-NEXT:  1      4     2.00                         4     AscalonFX,AscalonV[4]                      VREDMIN_VS                 vredmin.vs	v5, v7, v8
# CHECK-NEXT:  1      4     2.00                         4     AscalonFX,AscalonV[4]                      VREDMAX_VS                 vredmax.vs	v5, v7, v8
# CHECK-NEXT:  1      1     0.50                  U      0     AscalonV                                   VSETVLI                    vsetvli	zero, zero, e16, m8, tu, mu
# CHECK-NEXT:  1      8     4.00                         8     AscalonFX,AscalonV[8]                      VREDMIN_VS                 vredmin.vs	v5, v7, v8
# CHECK-NEXT:  1      8     4.00                         8     AscalonFX,AscalonV[8]                      VREDMAX_VS                 vredmax.vs	v5, v7, v8
# CHECK-NEXT:  1      1     0.50                  U      0     AscalonV                                   VSETVLI                    vsetvli	zero, zero, e32, m1, tu, mu
# CHECK-NEXT:  1      1     0.50                         1     AscalonFX,AscalonV                         VREDMIN_VS                 vredmin.vs	v5, v7, v8
# CHECK-NEXT:  1      1     0.50                         1     AscalonFX,AscalonV                         VREDMAX_VS                 vredmax.vs	v5, v7, v8
# CHECK-NEXT:  1      1     0.50                  U      0     AscalonV                                   VSETVLI                    vsetvli	zero, zero, e32, m2, tu, mu
# CHECK-NEXT:  1      2     1.00                         2     AscalonFX,AscalonV[2]                      VREDMIN_VS                 vredmin.vs	v5, v7, v8
# CHECK-NEXT:  1      2     1.00                         2     AscalonFX,AscalonV[2]                      VREDMAX_VS                 vredmax.vs	v5, v7, v8
# CHECK-NEXT:  1      1     0.50                  U      0     AscalonV                                   VSETVLI                    vsetvli	zero, zero, e32, m4, tu, mu
# CHECK-NEXT:  1      4     2.00                         4     AscalonFX,AscalonV[4]                      VREDMIN_VS                 vredmin.vs	v5, v7, v8
# CHECK-NEXT:  1      4     2.00                         4     AscalonFX,AscalonV[4]                      VREDMAX_VS                 vredmax.vs	v5, v7, v8
# CHECK-NEXT:  1      1     0.50                  U      0     AscalonV                                   VSETVLI                    vsetvli	zero, zero, e32, m8, tu, mu
# CHECK-NEXT:  1      8     4.00                         8     AscalonFX,AscalonV[8]                      VREDMIN_VS                 vredmin.vs	v5, v7, v8
# CHECK-NEXT:  1      8     4.00                         8     AscalonFX,AscalonV[8]                      VREDMAX_VS                 vredmax.vs	v5, v7, v8
# CHECK-NEXT:  1      1     0.50                  U      0     AscalonV                                   VSETVLI                    vsetvli	zero, zero, e64, m1, tu, mu
# CHECK-NEXT:  1      1     0.50                         1     AscalonFX,AscalonV                         VREDMIN_VS                 vredmin.vs	v5, v7, v8
# CHECK-NEXT:  1      1     0.50                         1     AscalonFX,AscalonV                         VREDMAX_VS                 vredmax.vs	v5, v7, v8
# CHECK-NEXT:  1      1     0.50                  U      0     AscalonV                                   VSETVLI                    vsetvli	zero, zero, e64, m2, tu, mu
# CHECK-NEXT:  1      2     1.00                         2     AscalonFX,AscalonV[2]                      VREDMIN_VS                 vredmin.vs	v5, v7, v8
# CHECK-NEXT:  1      2     1.00                         2     AscalonFX,AscalonV[2]                      VREDMAX_VS                 vredmax.vs	v5, v7, v8
# CHECK-NEXT:  1      1     0.50                  U      0     AscalonV                                   VSETVLI                    vsetvli	zero, zero, e64, m4, tu, mu
# CHECK-NEXT:  1      4     2.00                         4     AscalonFX,AscalonV[4]                      VREDMIN_VS                 vredmin.vs	v5, v7, v8
# CHECK-NEXT:  1      4     2.00                         4     AscalonFX,AscalonV[4]                      VREDMAX_VS                 vredmax.vs	v5, v7, v8
# CHECK-NEXT:  1      1     0.50                  U      0     AscalonV                                   VSETVLI                    vsetvli	zero, zero, e64, m8, tu, mu
# CHECK-NEXT:  1      8     4.00                         8     AscalonFX,AscalonV[8]                      VREDMIN_VS                 vredmin.vs	v5, v7, v8
# CHECK-NEXT:  1      8     4.00                         8     AscalonFX,AscalonV[8]                      VREDMAX_VS                 vredmax.vs	v5, v7, v8
# CHECK-NEXT:  1      1     0.50                  U      0     AscalonV                                   VSETVLI                    vsetvli	zero, zero, e16, m1, tu, mu
# CHECK-NEXT:  1      1     0.50                         1     AscalonFX,AscalonV                         VFREDUSUM_VS               vfredusum.vs	v5, v7, v8
# CHECK-NEXT:  1      18    9.00                         18    AscalonFX,AscalonV[18]                     VFREDOSUM_VS               vfredosum.vs	v5, v7, v8
# CHECK-NEXT:  1      1     0.50                  U      0     AscalonV                                   VSETVLI                    vsetvli	zero, zero, e16, m2, tu, mu
# CHECK-NEXT:  1      2     1.00                         2     AscalonFX,AscalonV[2]                      VFREDUSUM_VS               vfredusum.vs	v5, v7, v8
# CHECK-NEXT:  1      36    18.00                        36    AscalonFX,AscalonV[36]                     VFREDOSUM_VS               vfredosum.vs	v5, v7, v8
# CHECK-NEXT:  1      1     0.50                  U      0     AscalonV                                   VSETVLI                    vsetvli	zero, zero, e16, m4, tu, mu
# CHECK-NEXT:  1      4     2.00                         4     AscalonFX,AscalonV[4]                      VFREDUSUM_VS               vfredusum.vs	v5, v7, v8
# CHECK-NEXT:  1      72    36.00                        72    AscalonFX,AscalonV[72]                     VFREDOSUM_VS               vfredosum.vs	v5, v7, v8
# CHECK-NEXT:  1      1     0.50                  U      0     AscalonV                                   VSETVLI                    vsetvli	zero, zero, e16, m8, tu, mu
# CHECK-NEXT:  1      8     4.00                         8     AscalonFX,AscalonV[8]                      VFREDUSUM_VS               vfredusum.vs	v5, v7, v8
# CHECK-NEXT:  1      144   72.00                        144   AscalonFX,AscalonV[144]                    VFREDOSUM_VS               vfredosum.vs	v5, v7, v8
# CHECK-NEXT:  1      1     0.50                  U      0     AscalonV                                   VSETVLI                    vsetvli	zero, zero, e32, m1, tu, mu
# CHECK-NEXT:  1      1     0.50                         1     AscalonFX,AscalonV                         VFREDUSUM_VS               vfredusum.vs	v5, v7, v8
# CHECK-NEXT:  1      18    9.00                         18    AscalonFX,AscalonV[18]                     VFREDOSUM_VS               vfredosum.vs	v5, v7, v8
# CHECK-NEXT:  1      1     0.50                  U      0     AscalonV                                   VSETVLI                    vsetvli	zero, zero, e32, m2, tu, mu
# CHECK-NEXT:  1      2     1.00                         2     AscalonFX,AscalonV[2]                      VFREDUSUM_VS               vfredusum.vs	v5, v7, v8
# CHECK-NEXT:  1      36    18.00                        36    AscalonFX,AscalonV[36]                     VFREDOSUM_VS               vfredosum.vs	v5, v7, v8
# CHECK-NEXT:  1      1     0.50                  U      0     AscalonV                                   VSETVLI                    vsetvli	zero, zero, e32, m4, tu, mu
# CHECK-NEXT:  1      4     2.00                         4     AscalonFX,AscalonV[4]                      VFREDUSUM_VS               vfredusum.vs	v5, v7, v8
# CHECK-NEXT:  1      72    36.00                        72    AscalonFX,AscalonV[72]                     VFREDOSUM_VS               vfredosum.vs	v5, v7, v8
# CHECK-NEXT:  1      1     0.50                  U      0     AscalonV                                   VSETVLI                    vsetvli	zero, zero, e32, m8, tu, mu
# CHECK-NEXT:  1      8     4.00                         8     AscalonFX,AscalonV[8]                      VFREDUSUM_VS               vfredusum.vs	v5, v7, v8
# CHECK-NEXT:  1      144   72.00                        144   AscalonFX,AscalonV[144]                    VFREDOSUM_VS               vfredosum.vs	v5, v7, v8
# CHECK-NEXT:  1      1     0.50                  U      0     AscalonV                                   VSETVLI                    vsetvli	zero, zero, e64, m1, tu, mu
# CHECK-NEXT:  1      1     0.50                         1     AscalonFX,AscalonV                         VFREDUSUM_VS               vfredusum.vs	v5, v7, v8
# CHECK-NEXT:  1      18    9.00                         18    AscalonFX,AscalonV[18]                     VFREDOSUM_VS               vfredosum.vs	v5, v7, v8
# CHECK-NEXT:  1      1     0.50                  U      0     AscalonV                                   VSETVLI                    vsetvli	zero, zero, e64, m2, tu, mu
# CHECK-NEXT:  1      2     1.00                         2     AscalonFX,AscalonV[2]                      VFREDUSUM_VS               vfredusum.vs	v5, v7, v8
# CHECK-NEXT:  1      36    18.00                        36    AscalonFX,AscalonV[36]                     VFREDOSUM_VS               vfredosum.vs	v5, v7, v8
# CHECK-NEXT:  1      1     0.50                  U      0     AscalonV                                   VSETVLI                    vsetvli	zero, zero, e64, m4, tu, mu
# CHECK-NEXT:  1      4     2.00                         4     AscalonFX,AscalonV[4]                      VFREDUSUM_VS               vfredusum.vs	v5, v7, v8
# CHECK-NEXT:  1      72    36.00                        72    AscalonFX,AscalonV[72]                     VFREDOSUM_VS               vfredosum.vs	v5, v7, v8
# CHECK-NEXT:  1      1     0.50                  U      0     AscalonV                                   VSETVLI                    vsetvli	zero, zero, e64, m8, tu, mu
# CHECK-NEXT:  1      8     4.00                         8     AscalonFX,AscalonV[8]                      VFREDUSUM_VS               vfredusum.vs	v5, v7, v8
# CHECK-NEXT:  1      144   72.00                        144   AscalonFX,AscalonV[144]                    VFREDOSUM_VS               vfredosum.vs	v5, v7, v8
# CHECK-NEXT:  1      1     0.50                  U      0     AscalonV                                   VSETVLI                    vsetvli	zero, zero, e16, m1, tu, mu
# CHECK-NEXT:  1      1     0.50                         1     AscalonFX,AscalonV                         VFREDMIN_VS                vfredmin.vs	v5, v7, v8
# CHECK-NEXT:  1      1     0.50                         1     AscalonFX,AscalonV                         VFREDMAX_VS                vfredmax.vs	v5, v7, v8
# CHECK-NEXT:  1      1     0.50                  U      0     AscalonV                                   VSETVLI                    vsetvli	zero, zero, e16, m2, tu, mu
# CHECK-NEXT:  1      2     1.00                         2     AscalonFX,AscalonV[2]                      VFREDMIN_VS                vfredmin.vs	v5, v7, v8
# CHECK-NEXT:  1      2     1.00                         2     AscalonFX,AscalonV[2]                      VFREDMAX_VS                vfredmax.vs	v5, v7, v8
# CHECK-NEXT:  1      1     0.50                  U      0     AscalonV                                   VSETVLI                    vsetvli	zero, zero, e16, m4, tu, mu
# CHECK-NEXT:  1      4     2.00                         4     AscalonFX,AscalonV[4]                      VFREDMIN_VS                vfredmin.vs	v5, v7, v8
# CHECK-NEXT:  1      4     2.00                         4     AscalonFX,AscalonV[4]                      VFREDMAX_VS                vfredmax.vs	v5, v7, v8
# CHECK-NEXT:  1      1     0.50                  U      0     AscalonV                                   VSETVLI                    vsetvli	zero, zero, e16, m8, tu, mu
# CHECK-NEXT:  1      8     4.00                         8     AscalonFX,AscalonV[8]                      VFREDMIN_VS                vfredmin.vs	v5, v7, v8
# CHECK-NEXT:  1      8     4.00                         8     AscalonFX,AscalonV[8]                      VFREDMAX_VS                vfredmax.vs	v5, v7, v8
# CHECK-NEXT:  1      1     0.50                  U      0     AscalonV                                   VSETVLI                    vsetvli	zero, zero, e32, m1, tu, mu
# CHECK-NEXT:  1      1     0.50                         1     AscalonFX,AscalonV                         VFREDMIN_VS                vfredmin.vs	v5, v7, v8
# CHECK-NEXT:  1      1     0.50                         1     AscalonFX,AscalonV                         VFREDMAX_VS                vfredmax.vs	v5, v7, v8
# CHECK-NEXT:  1      1     0.50                  U      0     AscalonV                                   VSETVLI                    vsetvli	zero, zero, e32, m2, tu, mu
# CHECK-NEXT:  1      2     1.00                         2     AscalonFX,AscalonV[2]                      VFREDMIN_VS                vfredmin.vs	v5, v7, v8
# CHECK-NEXT:  1      2     1.00                         2     AscalonFX,AscalonV[2]                      VFREDMAX_VS                vfredmax.vs	v5, v7, v8
# CHECK-NEXT:  1      1     0.50                  U      0     AscalonV                                   VSETVLI                    vsetvli	zero, zero, e32, m4, tu, mu
# CHECK-NEXT:  1      4     2.00                         4     AscalonFX,AscalonV[4]                      VFREDMIN_VS                vfredmin.vs	v5, v7, v8
# CHECK-NEXT:  1      4     2.00                         4     AscalonFX,AscalonV[4]                      VFREDMAX_VS                vfredmax.vs	v5, v7, v8
# CHECK-NEXT:  1      1     0.50                  U      0     AscalonV                                   VSETVLI                    vsetvli	zero, zero, e32, m8, tu, mu
# CHECK-NEXT:  1      8     4.00                         8     AscalonFX,AscalonV[8]                      VFREDMIN_VS                vfredmin.vs	v5, v7, v8
# CHECK-NEXT:  1      8     4.00                         8     AscalonFX,AscalonV[8]                      VFREDMAX_VS                vfredmax.vs	v5, v7, v8
# CHECK-NEXT:  1      1     0.50                  U      0     AscalonV                                   VSETVLI                    vsetvli	zero, zero, e64, m1, tu, mu
# CHECK-NEXT:  1      1     0.50                         1     AscalonFX,AscalonV                         VFREDMIN_VS                vfredmin.vs	v5, v7, v8
# CHECK-NEXT:  1      1     0.50                         1     AscalonFX,AscalonV                         VFREDMAX_VS                vfredmax.vs	v5, v7, v8
# CHECK-NEXT:  1      1     0.50                  U      0     AscalonV                                   VSETVLI                    vsetvli	zero, zero, e64, m2, tu, mu
# CHECK-NEXT:  1      2     1.00                         2     AscalonFX,AscalonV[2]                      VFREDMIN_VS                vfredmin.vs	v5, v7, v8
# CHECK-NEXT:  1      2     1.00                         2     AscalonFX,AscalonV[2]                      VFREDMAX_VS                vfredmax.vs	v5, v7, v8
# CHECK-NEXT:  1      1     0.50                  U      0     AscalonV                                   VSETVLI                    vsetvli	zero, zero, e64, m4, tu, mu
# CHECK-NEXT:  1      4     2.00                         4     AscalonFX,AscalonV[4]                      VFREDMIN_VS                vfredmin.vs	v5, v7, v8
# CHECK-NEXT:  1      4     2.00                         4     AscalonFX,AscalonV[4]                      VFREDMAX_VS                vfredmax.vs	v5, v7, v8
# CHECK-NEXT:  1      1     0.50                  U      0     AscalonV                                   VSETVLI                    vsetvli	zero, zero, e64, m8, tu, mu
# CHECK-NEXT:  1      8     4.00                         8     AscalonFX,AscalonV[8]                      VFREDMIN_VS                vfredmin.vs	v5, v7, v8
# CHECK-NEXT:  1      8     4.00                         8     AscalonFX,AscalonV[8]                      VFREDMAX_VS                vfredmax.vs	v5, v7, v8

# CHECK:      Resources:
# CHECK-NEXT: [0]   - AscalonFPA
# CHECK-NEXT: [1]   - AscalonFPB
# CHECK-NEXT: [2]   - AscalonFXA
# CHECK-NEXT: [3]   - AscalonFXB
# CHECK-NEXT: [4.0] - AscalonFXC
# CHECK-NEXT: [4.1] - AscalonFXC
# CHECK-NEXT: [5.0] - AscalonFXD
# CHECK-NEXT: [5.1] - AscalonFXD
# CHECK-NEXT: [6.0] - AscalonLS
# CHECK-NEXT: [6.1] - AscalonLS
# CHECK-NEXT: [6.2] - AscalonLS
# CHECK-NEXT: [7]   - AscalonVA
# CHECK-NEXT: [8]   - AscalonVB

# CHECK:      Resource pressure per iteration:
# CHECK-NEXT: [0]    [1]    [2]    [3]    [4.0]  [4.1]  [5.0]  [5.1]  [6.0]  [6.1]  [6.2]  [7]    [8]
# CHECK-NEXT:  -      -     12.67  12.67  12.67  12.67  12.67  12.67   -      -      -     545.00 545.00

# CHECK:      Resource pressure by instruction:
# CHECK-NEXT: [0]    [1]    [2]    [3]    [4.0]  [4.1]  [5.0]  [5.1]  [6.0]  [6.1]  [6.2]  [7]    [8]    Instructions:
# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -     0.50   0.50   vsetvli	zero, zero, e32, m1, tu, mu
# CHECK-NEXT:  -      -     0.17   0.17   0.17   0.17   0.17   0.17    -      -      -     0.50   0.50   vredsum.vs	v5, v7, v8
# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -     0.50   0.50   vsetvli	zero, zero, e32, m2, tu, mu
# CHECK-NEXT:  -      -     0.17   0.17   0.17   0.17   0.17   0.17    -      -      -     1.00   1.00   vredsum.vs	v5, v7, v8
# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -     0.50   0.50   vsetvli	zero, zero, e32, m4, tu, mu
# CHECK-NEXT:  -      -     0.17   0.17   0.17   0.17   0.17   0.17    -      -      -     2.00   2.00   vredsum.vs	v5, v7, v8
# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -     0.50   0.50   vsetvli	zero, zero, e32, m8, tu, mu
# CHECK-NEXT:  -      -     0.17   0.17   0.17   0.17   0.17   0.17    -      -      -     4.00   4.00   vredsum.vs	v5, v7, v8
# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -     0.50   0.50   vsetvli	zero, zero, e16, m1, tu, mu
# CHECK-NEXT:  -      -     0.17   0.17   0.17   0.17   0.17   0.17    -      -      -     0.50   0.50   vredmin.vs	v5, v7, v8
# CHECK-NEXT:  -      -     0.17   0.17   0.17   0.17   0.17   0.17    -      -      -     0.50   0.50   vredmax.vs	v5, v7, v8
# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -     0.50   0.50   vsetvli	zero, zero, e16, m2, tu, mu
# CHECK-NEXT:  -      -     0.17   0.17   0.17   0.17   0.17   0.17    -      -      -     1.00   1.00   vredmin.vs	v5, v7, v8
# CHECK-NEXT:  -      -     0.17   0.17   0.17   0.17   0.17   0.17    -      -      -     1.00   1.00   vredmax.vs	v5, v7, v8
# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -     0.50   0.50   vsetvli	zero, zero, e16, m4, tu, mu
# CHECK-NEXT:  -      -     0.17   0.17   0.17   0.17   0.17   0.17    -      -      -     2.00   2.00   vredmin.vs	v5, v7, v8
# CHECK-NEXT:  -      -     0.17   0.17   0.17   0.17   0.17   0.17    -      -      -     2.00   2.00   vredmax.vs	v5, v7, v8
# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -     0.50   0.50   vsetvli	zero, zero, e16, m8, tu, mu
# CHECK-NEXT:  -      -     0.17   0.17   0.17   0.17   0.17   0.17    -      -      -     4.00   4.00   vredmin.vs	v5, v7, v8
# CHECK-NEXT:  -      -     0.17   0.17   0.17   0.17   0.17   0.17    -      -      -     4.00   4.00   vredmax.vs	v5, v7, v8
# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -     0.50   0.50   vsetvli	zero, zero, e32, m1, tu, mu
# CHECK-NEXT:  -      -     0.17   0.17   0.17   0.17   0.17   0.17    -      -      -     0.50   0.50   vredmin.vs	v5, v7, v8
# CHECK-NEXT:  -      -     0.17   0.17   0.17   0.17   0.17   0.17    -      -      -     0.50   0.50   vredmax.vs	v5, v7, v8
# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -     0.50   0.50   vsetvli	zero, zero, e32, m2, tu, mu
# CHECK-NEXT:  -      -     0.17   0.17   0.17   0.17   0.17   0.17    -      -      -     1.00   1.00   vredmin.vs	v5, v7, v8
# CHECK-NEXT:  -      -     0.17   0.17   0.17   0.17   0.17   0.17    -      -      -     1.00   1.00   vredmax.vs	v5, v7, v8
# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -     0.50   0.50   vsetvli	zero, zero, e32, m4, tu, mu
# CHECK-NEXT:  -      -     0.17   0.17   0.17   0.17   0.17   0.17    -      -      -     2.00   2.00   vredmin.vs	v5, v7, v8
# CHECK-NEXT:  -      -     0.17   0.17   0.17   0.17   0.17   0.17    -      -      -     2.00   2.00   vredmax.vs	v5, v7, v8
# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -     0.50   0.50   vsetvli	zero, zero, e32, m8, tu, mu
# CHECK-NEXT:  -      -     0.17   0.17   0.17   0.17   0.17   0.17    -      -      -     4.00   4.00   vredmin.vs	v5, v7, v8
# CHECK-NEXT:  -      -     0.17   0.17   0.17   0.17   0.17   0.17    -      -      -     4.00   4.00   vredmax.vs	v5, v7, v8
# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -     0.50   0.50   vsetvli	zero, zero, e64, m1, tu, mu
# CHECK-NEXT:  -      -     0.17   0.17   0.17   0.17   0.17   0.17    -      -      -     0.50   0.50   vredmin.vs	v5, v7, v8
# CHECK-NEXT:  -      -     0.17   0.17   0.17   0.17   0.17   0.17    -      -      -     0.50   0.50   vredmax.vs	v5, v7, v8
# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -     0.50   0.50   vsetvli	zero, zero, e64, m2, tu, mu
# CHECK-NEXT:  -      -     0.17   0.17   0.17   0.17   0.17   0.17    -      -      -     1.00   1.00   vredmin.vs	v5, v7, v8
# CHECK-NEXT:  -      -     0.17   0.17   0.17   0.17   0.17   0.17    -      -      -     1.00   1.00   vredmax.vs	v5, v7, v8
# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -     0.50   0.50   vsetvli	zero, zero, e64, m4, tu, mu
# CHECK-NEXT:  -      -     0.17   0.17   0.17   0.17   0.17   0.17    -      -      -     2.00   2.00   vredmin.vs	v5, v7, v8
# CHECK-NEXT:  -      -     0.17   0.17   0.17   0.17   0.17   0.17    -      -      -     2.00   2.00   vredmax.vs	v5, v7, v8
# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -     0.50   0.50   vsetvli	zero, zero, e64, m8, tu, mu
# CHECK-NEXT:  -      -     0.17   0.17   0.17   0.17   0.17   0.17    -      -      -     4.00   4.00   vredmin.vs	v5, v7, v8
# CHECK-NEXT:  -      -     0.17   0.17   0.17   0.17   0.17   0.17    -      -      -     4.00   4.00   vredmax.vs	v5, v7, v8
# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -     0.50   0.50   vsetvli	zero, zero, e16, m1, tu, mu
# CHECK-NEXT:  -      -     0.17   0.17   0.17   0.17   0.17   0.17    -      -      -     0.50   0.50   vfredusum.vs	v5, v7, v8
# CHECK-NEXT:  -      -     0.17   0.17   0.17   0.17   0.17   0.17    -      -      -     9.00   9.00   vfredosum.vs	v5, v7, v8
# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -     0.50   0.50   vsetvli	zero, zero, e16, m2, tu, mu
# CHECK-NEXT:  -      -     0.17   0.17   0.17   0.17   0.17   0.17    -      -      -     1.00   1.00   vfredusum.vs	v5, v7, v8
# CHECK-NEXT:  -      -     0.17   0.17   0.17   0.17   0.17   0.17    -      -      -     18.00  18.00  vfredosum.vs	v5, v7, v8
# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -     0.50   0.50   vsetvli	zero, zero, e16, m4, tu, mu
# CHECK-NEXT:  -      -     0.17   0.17   0.17   0.17   0.17   0.17    -      -      -     2.00   2.00   vfredusum.vs	v5, v7, v8
# CHECK-NEXT:  -      -     0.17   0.17   0.17   0.17   0.17   0.17    -      -      -     36.00  36.00  vfredosum.vs	v5, v7, v8
# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -     0.50   0.50   vsetvli	zero, zero, e16, m8, tu, mu
# CHECK-NEXT:  -      -     0.17   0.17   0.17   0.17   0.17   0.17    -      -      -     4.00   4.00   vfredusum.vs	v5, v7, v8
# CHECK-NEXT:  -      -     0.17   0.17   0.17   0.17   0.17   0.17    -      -      -     72.00  72.00  vfredosum.vs	v5, v7, v8
# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -     0.50   0.50   vsetvli	zero, zero, e32, m1, tu, mu
# CHECK-NEXT:  -      -     0.17   0.17   0.17   0.17   0.17   0.17    -      -      -     0.50   0.50   vfredusum.vs	v5, v7, v8
# CHECK-NEXT:  -      -     0.17   0.17   0.17   0.17   0.17   0.17    -      -      -     9.00   9.00   vfredosum.vs	v5, v7, v8
# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -     0.50   0.50   vsetvli	zero, zero, e32, m2, tu, mu
# CHECK-NEXT:  -      -     0.17   0.17   0.17   0.17   0.17   0.17    -      -      -     1.00   1.00   vfredusum.vs	v5, v7, v8
# CHECK-NEXT:  -      -     0.17   0.17   0.17   0.17   0.17   0.17    -      -      -     18.00  18.00  vfredosum.vs	v5, v7, v8
# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -     0.50   0.50   vsetvli	zero, zero, e32, m4, tu, mu
# CHECK-NEXT:  -      -     0.17   0.17   0.17   0.17   0.17   0.17    -      -      -     2.00   2.00   vfredusum.vs	v5, v7, v8
# CHECK-NEXT:  -      -     0.17   0.17   0.17   0.17   0.17   0.17    -      -      -     36.00  36.00  vfredosum.vs	v5, v7, v8
# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -     0.50   0.50   vsetvli	zero, zero, e32, m8, tu, mu
# CHECK-NEXT:  -      -     0.17   0.17   0.17   0.17   0.17   0.17    -      -      -     4.00   4.00   vfredusum.vs	v5, v7, v8
# CHECK-NEXT:  -      -     0.17   0.17   0.17   0.17   0.17   0.17    -      -      -     72.00  72.00  vfredosum.vs	v5, v7, v8
# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -     0.50   0.50   vsetvli	zero, zero, e64, m1, tu, mu
# CHECK-NEXT:  -      -     0.17   0.17   0.17   0.17   0.17   0.17    -      -      -     0.50   0.50   vfredusum.vs	v5, v7, v8
# CHECK-NEXT:  -      -     0.17   0.17   0.17   0.17   0.17   0.17    -      -      -     9.00   9.00   vfredosum.vs	v5, v7, v8
# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -     0.50   0.50   vsetvli	zero, zero, e64, m2, tu, mu
# CHECK-NEXT:  -      -     0.17   0.17   0.17   0.17   0.17   0.17    -      -      -     1.00   1.00   vfredusum.vs	v5, v7, v8
# CHECK-NEXT:  -      -     0.17   0.17   0.17   0.17   0.17   0.17    -      -      -     18.00  18.00  vfredosum.vs	v5, v7, v8
# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -     0.50   0.50   vsetvli	zero, zero, e64, m4, tu, mu
# CHECK-NEXT:  -      -     0.17   0.17   0.17   0.17   0.17   0.17    -      -      -     2.00   2.00   vfredusum.vs	v5, v7, v8
# CHECK-NEXT:  -      -     0.17   0.17   0.17   0.17   0.17   0.17    -      -      -     36.00  36.00  vfredosum.vs	v5, v7, v8
# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -     0.50   0.50   vsetvli	zero, zero, e64, m8, tu, mu
# CHECK-NEXT:  -      -     0.17   0.17   0.17   0.17   0.17   0.17    -      -      -     4.00   4.00   vfredusum.vs	v5, v7, v8
# CHECK-NEXT:  -      -     0.17   0.17   0.17   0.17   0.17   0.17    -      -      -     72.00  72.00  vfredosum.vs	v5, v7, v8
# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -     0.50   0.50   vsetvli	zero, zero, e16, m1, tu, mu
# CHECK-NEXT:  -      -     0.17   0.17   0.17   0.17   0.17   0.17    -      -      -     0.50   0.50   vfredmin.vs	v5, v7, v8
# CHECK-NEXT:  -      -     0.17   0.17   0.17   0.17   0.17   0.17    -      -      -     0.50   0.50   vfredmax.vs	v5, v7, v8
# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -     0.50   0.50   vsetvli	zero, zero, e16, m2, tu, mu
# CHECK-NEXT:  -      -     0.17   0.17   0.17   0.17   0.17   0.17    -      -      -     1.00   1.00   vfredmin.vs	v5, v7, v8
# CHECK-NEXT:  -      -     0.17   0.17   0.17   0.17   0.17   0.17    -      -      -     1.00   1.00   vfredmax.vs	v5, v7, v8
# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -     0.50   0.50   vsetvli	zero, zero, e16, m4, tu, mu
# CHECK-NEXT:  -      -     0.17   0.17   0.17   0.17   0.17   0.17    -      -      -     2.00   2.00   vfredmin.vs	v5, v7, v8
# CHECK-NEXT:  -      -     0.17   0.17   0.17   0.17   0.17   0.17    -      -      -     2.00   2.00   vfredmax.vs	v5, v7, v8
# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -     0.50   0.50   vsetvli	zero, zero, e16, m8, tu, mu
# CHECK-NEXT:  -      -     0.17   0.17   0.17   0.17   0.17   0.17    -      -      -     4.00   4.00   vfredmin.vs	v5, v7, v8
# CHECK-NEXT:  -      -     0.17   0.17   0.17   0.17   0.17   0.17    -      -      -     4.00   4.00   vfredmax.vs	v5, v7, v8
# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -     0.50   0.50   vsetvli	zero, zero, e32, m1, tu, mu
# CHECK-NEXT:  -      -     0.17   0.17   0.17   0.17   0.17   0.17    -      -      -     0.50   0.50   vfredmin.vs	v5, v7, v8
# CHECK-NEXT:  -      -     0.17   0.17   0.17   0.17   0.17   0.17    -      -      -     0.50   0.50   vfredmax.vs	v5, v7, v8
# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -     0.50   0.50   vsetvli	zero, zero, e32, m2, tu, mu
# CHECK-NEXT:  -      -     0.17   0.17   0.17   0.17   0.17   0.17    -      -      -     1.00   1.00   vfredmin.vs	v5, v7, v8
# CHECK-NEXT:  -      -     0.17   0.17   0.17   0.17   0.17   0.17    -      -      -     1.00   1.00   vfredmax.vs	v5, v7, v8
# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -     0.50   0.50   vsetvli	zero, zero, e32, m4, tu, mu
# CHECK-NEXT:  -      -     0.17   0.17   0.17   0.17   0.17   0.17    -      -      -     2.00   2.00   vfredmin.vs	v5, v7, v8
# CHECK-NEXT:  -      -     0.17   0.17   0.17   0.17   0.17   0.17    -      -      -     2.00   2.00   vfredmax.vs	v5, v7, v8
# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -     0.50   0.50   vsetvli	zero, zero, e32, m8, tu, mu
# CHECK-NEXT:  -      -     0.17   0.17   0.17   0.17   0.17   0.17    -      -      -     4.00   4.00   vfredmin.vs	v5, v7, v8
# CHECK-NEXT:  -      -     0.17   0.17   0.17   0.17   0.17   0.17    -      -      -     4.00   4.00   vfredmax.vs	v5, v7, v8
# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -     0.50   0.50   vsetvli	zero, zero, e64, m1, tu, mu
# CHECK-NEXT:  -      -     0.17   0.17   0.17   0.17   0.17   0.17    -      -      -     0.50   0.50   vfredmin.vs	v5, v7, v8
# CHECK-NEXT:  -      -     0.17   0.17   0.17   0.17   0.17   0.17    -      -      -     0.50   0.50   vfredmax.vs	v5, v7, v8
# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -     0.50   0.50   vsetvli	zero, zero, e64, m2, tu, mu
# CHECK-NEXT:  -      -     0.17   0.17   0.17   0.17   0.17   0.17    -      -      -     1.00   1.00   vfredmin.vs	v5, v7, v8
# CHECK-NEXT:  -      -     0.17   0.17   0.17   0.17   0.17   0.17    -      -      -     1.00   1.00   vfredmax.vs	v5, v7, v8
# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -     0.50   0.50   vsetvli	zero, zero, e64, m4, tu, mu
# CHECK-NEXT:  -      -     0.17   0.17   0.17   0.17   0.17   0.17    -      -      -     2.00   2.00   vfredmin.vs	v5, v7, v8
# CHECK-NEXT:  -      -     0.17   0.17   0.17   0.17   0.17   0.17    -      -      -     2.00   2.00   vfredmax.vs	v5, v7, v8
# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -     0.50   0.50   vsetvli	zero, zero, e64, m8, tu, mu
# CHECK-NEXT:  -      -     0.17   0.17   0.17   0.17   0.17   0.17    -      -      -     4.00   4.00   vfredmin.vs	v5, v7, v8
# CHECK-NEXT:  -      -     0.17   0.17   0.17   0.17   0.17   0.17    -      -      -     4.00   4.00   vfredmax.vs	v5, v7, v8
