mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-22 18:54:02 +01:00
2d7a8bc6d4
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
23 lines
591 B
YAML
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
|
|
|
|
...
|