llvm-project/llvm/test/MachineVerifier/generic-vreg-undef-use.mir
Fangrui Song d20190e684 [test] Change llc -march=aarch64|arm64 to -mtriple=aarch64|arm64
Similar to commit 806761a7629df268c8aed49657aeccffa6bca449 to avoid issues due
to object file format differences. These tests are currently benign.
2023-09-29 10:13:06 -07:00

26 lines
845 B
YAML

# RUN: not --crash llc -mtriple=aarch64 -o /dev/null -run-pass=none -verify-machineinstrs %s 2>&1 | FileCheck %s
# REQUIRES: aarch64-registered-target
# Undef uses are illegal for generic vregs.
---
name: test_undef_use
liveins:
body: |
bb.0:
%0:_(s32) = G_CONSTANT i32 0
; Test generic instruction
; CHECK: *** Bad machine code: Generic virtual register use cannot be undef ***
G_STORE %0, undef %1:_(p0) :: (store (s32))
; Make sure this fails on a post-isel generic instruction.
; CHECK: *** Bad machine code: Generic virtual register use cannot be undef ***
$x0 = COPY undef %2:_(s64)
; Make sure this fails with a target instruction
; CHECK: *** Bad machine code: Generic virtual register use cannot be undef ***
RET_ReallyLR implicit $x0, implicit undef %3:_(s32)
...