1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-22 18:54:02 +01:00
llvm-mirror/test/CodeGen/AArch64/sve-pseudos-expand-undef.mir
Paul Walker 2d7a8bc6d4 [SVE] Fix invalid assert in expand_DestructiveOp.
AArch64ExpandPseudo::expand_DestructiveOp contains an assert to
ensure the destructive operand's register is unique.  However,
this is only required when psuedo expansion emits a movprfx.

A simple example when a movprfx is not required is
  Z0 = FADD_ZPZZ_UNDEF_S P0, Z0, Z0
which expands to an unprefixed FADD_ZPmZ_S instruction.

This patch moves the assert to the places where a movprfx is emitted.

Differential Revision: https://reviews.llvm.org/D83029
2020-07-04 09:21:40 +00:00

23 lines
591 B
YAML

# RUN: llc -mtriple=aarch64-linux-gnu -mattr=+sve -run-pass=aarch64-expand-pseudo -simplify-mir -verify-machineinstrs %s -o - | FileCheck %s
---
name: add_x
alignment: 4
tracksRegLiveness: true
liveins:
- { reg: '$p0' }
- { reg: '$z0' }
frameInfo:
maxCallFrameSize: 0
body: |
bb.0:
liveins: $p0, $z0
; CHECK: add_x
; CHECK-NOT: MOVPRFX
; CHECK: $z0 = FADD_ZPmZ_S renamable $p0, killed $z0, renamable $z0
; CHECK-NEXT: RET
renamable $z0 = FADD_ZPZZ_UNDEF_S renamable $p0, renamable $z0, killed renamable $z0
RET_ReallyLR
...