# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py UTC_ARGS: --version 4
# RUN: llc -mtriple=riscv32 -verify-machineinstrs -run-pass=riscv-move-merge -simplify-mir -o - %s | FileCheck -check-prefixes=CHECK32I %s
# RUN: llc -mtriple=riscv32 -mattr=+zcmp -verify-machineinstrs -run-pass=riscv-move-merge -simplify-mir -o - %s | FileCheck -check-prefixes=CHECK32ZCMP %s
# RUN: llc -mtriple=riscv64 -verify-machineinstrs -run-pass=riscv-move-merge -simplify-mir -o - %s | FileCheck -check-prefixes=CHECK64I %s
# RUN: llc -mtriple=riscv64 -mattr=+zcmp -verify-machineinstrs -run-pass=riscv-move-merge -simplify-mir -o - %s | FileCheck -check-prefixes=CHECK64ZCMP %s
---
name: zcmp_mv
tracksRegLiveness: true
body: |
bb.0:
liveins: $x11, $x10
; CHECK32I-LABEL: name: zcmp_mv
; CHECK32I: liveins: $x11, $x10
; CHECK32I-NEXT: {{ $}}
; CHECK32I-NEXT: $x8 = ADDI $x11, 0
; CHECK32I-NEXT: $x9 = ADDI $x10, 0
; CHECK32I-NEXT: $x10 = ADDI killed $x9, 0
; CHECK32I-NEXT: $x11 = ADDI $x8, 0
; CHECK32I-NEXT: PseudoRET
;
; CHECK32ZCMP-LABEL: name: zcmp_mv
; CHECK32ZCMP: liveins: $x11, $x10
; CHECK32ZCMP-NEXT: {{ $}}
; CHECK32ZCMP-NEXT: $x9, $x8 = CM_MVSA01 implicit $x10, implicit $x11
; CHECK32ZCMP-NEXT: CM_MVA01S killed $x9, $x8, implicit-def $x10, implicit-def $x11
; CHECK32ZCMP-NEXT: PseudoRET
;
; CHECK64I-LABEL: name: zcmp_mv
; CHECK64I: liveins: $x11, $x10
; CHECK64I-NEXT: {{ $}}
; CHECK64I-NEXT: $x8 = ADDI $x11, 0
; CHECK64I-NEXT: $x9 = ADDI $x10, 0
; CHECK64I-NEXT: $x10 = ADDI killed $x9, 0
; CHECK64I-NEXT: $x11 = ADDI $x8, 0
; CHECK64I-NEXT: PseudoRET
;
; CHECK64ZCMP-LABEL: name: zcmp_mv
; CHECK64ZCMP: liveins: $x11, $x10
; CHECK64ZCMP-NEXT: {{ $}}
; CHECK64ZCMP-NEXT: $x9, $x8 = CM_MVSA01 implicit $x10, implicit $x11
; CHECK64ZCMP-NEXT: CM_MVA01S killed $x9, $x8, implicit-def $x10, implicit-def $x11
; CHECK64ZCMP-NEXT: PseudoRET
$x8 = ADDI $x11, 0
$x9 = ADDI $x10, 0
$x10 = ADDI killed $x9, 0
$x11 = ADDI $x8, 0
PseudoRET
...