aboutsummaryrefslogtreecommitdiff
path: root/llvm/test/MachineVerifier
diff options
context:
space:
mode:
authorMichael Maitland <michaeltmaitland@gmail.com>2023-11-07 14:37:28 -0800
committerMichael Maitland <michaeltmaitland@gmail.com>2023-11-07 14:49:38 -0800
commit4832c88e4956b3c7dc0a5064d946477448d5239d (patch)
tree093780e928181b44fbab03c18543beb26a13580c /llvm/test/MachineVerifier
parentc3629923aa2c28c912a08556950e45225ddc8db7 (diff)
downloadllvm-4832c88e4956b3c7dc0a5064d946477448d5239d.zip
llvm-4832c88e4956b3c7dc0a5064d946477448d5239d.tar.gz
llvm-4832c88e4956b3c7dc0a5064d946477448d5239d.tar.bz2
[MachineVerifier] Fix COPY check in MachineVerifier for scalable vectors
This change fixes #71518, which compared the KnownMinValue of the scalable virtual register with the FixedSize of the physical register in the wrong direction. It turns out that we cannot include this check at all since it will lead to a false failures. Test cases are added to show that the false failures no longer occur after this fix.
Diffstat (limited to 'llvm/test/MachineVerifier')
-rw-r--r--llvm/test/MachineVerifier/copy-scalable.mir43
1 files changed, 41 insertions, 2 deletions
diff --git a/llvm/test/MachineVerifier/copy-scalable.mir b/llvm/test/MachineVerifier/copy-scalable.mir
index f4088f7..28d3e71 100644
--- a/llvm/test/MachineVerifier/copy-scalable.mir
+++ b/llvm/test/MachineVerifier/copy-scalable.mir
@@ -3,7 +3,7 @@
# REQUIRES: riscv64-registered-target
---
-name: test_copy_fixed_to_scalable
+name: test_copy_physical_to_virtual_nxv1s8
legalized: true
regBankSelected: false
selected: false
@@ -15,9 +15,48 @@ body: |
bb.0:
liveins: $v8
- ; CHECK-LABEL: name: test_copy_fixed_to_scalable
+ ; CHECK-LABEL: name: test_copy_physical_to_virtual_nxv1s8
; CHECK: liveins: $v8
; CHECK-NEXT: {{ $}}
; CHECK-NEXT: [[COPY:%[0-9]+]]:_(<vscale x 1 x s8>) = COPY $v8
%0:_(<vscale x 1 x s8>) = COPY $v8
...
+
+---
+name: test_copy_physical_to_virtual_nxv16s8
+legalized: true
+tracksRegLiveness: true
+body: |
+ bb.1.entry:
+ liveins: $v8
+ ; CHECK-LABEL: name: test_copy_physical_to_virtual_nxv16s8
+ ; CHECK: liveins: $v8
+ ; CHECK-NEXT: {{ $}}
+ ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(<vscale x 16 x s8>) = COPY $v8
+ %0:_(<vscale x 16 x s8>) = COPY $v8
+
+...
+
+---
+name: test_copy_virtual_to_physical
+legalized: true
+regBankSelected: false
+selected: false
+tracksRegLiveness: true
+registers:
+ - { id: 0, class: _, preferred-register: '' }
+liveins:
+body: |
+ bb.0:
+ liveins: $v8
+
+ ; CHECK-LABEL: name: test_copy_virtual_to_physical
+ ; CHECK: liveins: $v8
+ ; CHECK-NEXT: {{ $}}
+ ; CHECK-NEXT: [[DEF:%[0-9]+]]:_(<vscale x 1 x s8>) = IMPLICIT_DEF
+ ; CHECK-NEXT: $v8 = COPY [[DEF]](<vscale x 1 x s8>)
+ ; CHECK-NEXT: PseudoRET implicit $v8
+ %0:_(<vscale x 1 x s8>) = IMPLICIT_DEF
+ $v8 = COPY %0(<vscale x 1 x s8>)
+ PseudoRET implicit $v8
+...