# NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py
# RUN: llvm-mca -mtriple=aarch64 -mcpu=neoverse-v3 -instruction-tables < %s | FileCheck %s

mov  x1, #0
mov  x1, xzr
mov  w1, #0
mov  w1, wzr
fmov h1, wzr
fmov h1, xzr
fmov s1, wzr
fmov d1, xzr
movi d1, #0
movi v1.2d, #0
mov  w1, w2
mov  x1, x2

# 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:      [1]    [2]    [3]    [4]    [5]    [6]    Instructions:
# CHECK-NEXT:  1      0     0.10                        mov	x1, #0
# CHECK-NEXT:  1      0     0.10                        mov	x1, xzr
# CHECK-NEXT:  1      0     0.10                        mov	w1, #0
# CHECK-NEXT:  1      0     0.10                        mov	w1, wzr
# CHECK-NEXT:  1      0     0.10                        fmov	h1, wzr
# CHECK-NEXT:  1      0     0.10                        fmov	h1, xzr
# CHECK-NEXT:  1      0     0.10                        fmov	s1, wzr
# CHECK-NEXT:  1      0     0.10                        fmov	d1, xzr
# CHECK-NEXT:  1      0     0.10                        movi	d1, #0000000000000000
# CHECK-NEXT:  1      0     0.10                        movi	v1.2d, #0000000000000000
# CHECK-NEXT:  1      0     0.10                        mov	w1, w2
# CHECK-NEXT:  1      0     0.10                        mov	x1, x2

# CHECK:      Resources:
# CHECK-NEXT: [0.0] - V3UnitB
# CHECK-NEXT: [0.1] - V3UnitB
# CHECK-NEXT: [0.2] - V3UnitB
# CHECK-NEXT: [1.0] - V3UnitD
# CHECK-NEXT: [1.1] - V3UnitD
# CHECK-NEXT: [2.0] - V3UnitFlg
# CHECK-NEXT: [2.1] - V3UnitFlg
# CHECK-NEXT: [2.2] - V3UnitFlg
# CHECK-NEXT: [2.3] - V3UnitFlg
# CHECK-NEXT: [3.0] - V3UnitL12
# CHECK-NEXT: [3.1] - V3UnitL12
# CHECK-NEXT: [4]   - V3UnitLS0
# CHECK-NEXT: [5]   - V3UnitM0
# CHECK-NEXT: [6]   - V3UnitM1
# CHECK-NEXT: [7]   - V3UnitS0
# CHECK-NEXT: [8]   - V3UnitS1
# CHECK-NEXT: [9]   - V3UnitS2
# CHECK-NEXT: [10]  - V3UnitS3
# CHECK-NEXT: [11]  - V3UnitS4
# CHECK-NEXT: [12]  - V3UnitS5
# CHECK-NEXT: [13]  - V3UnitST1
# CHECK-NEXT: [14]  - V3UnitV0
# CHECK-NEXT: [15]  - V3UnitV1
# CHECK-NEXT: [16]  - V3UnitV2
# CHECK-NEXT: [17]  - V3UnitV3

# CHECK:      Resource pressure per iteration:
# CHECK-NEXT: [0.0]  [0.1]  [0.2]  [1.0]  [1.1]  [2.0]  [2.1]  [2.2]  [2.3]  [3.0]  [3.1]  [4]    [5]    [6]    [7]    [8]    [9]    [10]   [11]   [12]   [13]   [14]   [15]   [16]   [17]
# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -

# CHECK:      Resource pressure by instruction:
# CHECK-NEXT: [0.0]  [0.1]  [0.2]  [1.0]  [1.1]  [2.0]  [2.1]  [2.2]  [2.3]  [3.0]  [3.1]  [4]    [5]    [6]    [7]    [8]    [9]    [10]   [11]   [12]   [13]   [14]   [15]   [16]   [17]   Instructions:
# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     mov	x1, #0
# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     mov	x1, xzr
# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     mov	w1, #0
# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     mov	w1, wzr
# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     fmov	h1, wzr
# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     fmov	h1, xzr
# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     fmov	s1, wzr
# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     fmov	d1, xzr
# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     movi	d1, #0000000000000000
# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     movi	v1.2d, #0000000000000000
# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     mov	w1, w2
# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     mov	x1, x2
