diff options
author | Michael Maitland <michaeltmaitland@gmail.com> | 2023-11-07 14:37:28 -0800 |
---|---|---|
committer | Michael Maitland <michaeltmaitland@gmail.com> | 2023-11-07 14:49:38 -0800 |
commit | 4832c88e4956b3c7dc0a5064d946477448d5239d (patch) | |
tree | 093780e928181b44fbab03c18543beb26a13580c /llvm/test/MachineVerifier | |
parent | c3629923aa2c28c912a08556950e45225ddc8db7 (diff) | |
download | llvm-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.mir | 43 |
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 +... |