llvm/llvm/test/MachineVerifier/test_copy_mismatch_types.mir

#RUN: not --crash llc -o - -global-isel -run-pass=none -verify-machineinstrs %s 2>&1 | FileCheck %s
# REQUIRES: aarch64-registered-target
--- |
  ; ModuleID = 'test.ll'
  source_filename = "test.ll"
  target datalayout = "e-m:e-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128"
  target triple = "aarch64-unknown-unknown"
  
  define i32 @test_copy(i32 %argc) {
    ret i32 0
  }

...
---
name:            test_copy
legalized:       true
regBankSelected: false
selected:        false
tracksRegLiveness: true
registers:       
  - { id: 0, class: _, preferred-register: '' }
liveins:         
body:             |
  bb.0:
    liveins: $w0
    ; This test is used to catch verifier errors with copys having mismatching sizes
    ; CHECK: Bad machine code: Copy Instruction is illegal with mismatching types

    %0(s32) = COPY $w0
    %1:_(<2 x s16>) = COPY %0
...