[llvm] 5158097 - [X86] Fix checks for illegal physreg COPY instructions

Jay Foad via llvm-commits llvm-commits at lists.llvm.org
Tue Apr 18 04:03:31 PDT 2023


Author: Jay Foad
Date: 2023-04-18T12:03:06+01:00
New Revision: 5158097274b772e4f3e0ed2231de5c91083f4b15

URL: https://github.com/llvm/llvm-project/commit/5158097274b772e4f3e0ed2231de5c91083f4b15
DIFF: https://github.com/llvm/llvm-project/commit/5158097274b772e4f3e0ed2231de5c91083f4b15.diff

LOG: [X86] Fix checks for illegal physreg COPY instructions

D105263 changed this test to not expect a MachineVerifier error on this
instruction:

    ; FP16 reg is sub_reg of xmm
    %0:_(s16) = COPY $xmm0

D107082 changed the behaviour back again so that this instruction did
cause an error, but the test was not updated to expect the error.

Differential Revision: https://reviews.llvm.org/D148534

Added: 
    

Modified: 
    llvm/test/MachineVerifier/test_copy_physregs_x86.mir

Removed: 
    


################################################################################
diff  --git a/llvm/test/MachineVerifier/test_copy_physregs_x86.mir b/llvm/test/MachineVerifier/test_copy_physregs_x86.mir
index 4a2c228c84710..39a15e37be847 100644
--- a/llvm/test/MachineVerifier/test_copy_physregs_x86.mir
+++ b/llvm/test/MachineVerifier/test_copy_physregs_x86.mir
@@ -1,4 +1,4 @@
-#RUN: not --crash llc -march=x86-64 -run-pass=none -verify-machineinstrs -o /dev/null %s 2>&1 | FileCheck %s
+# RUN: not --crash llc -march=x86-64 -run-pass=none -verify-machineinstrs -o /dev/null %s 2>&1 | FileCheck %s -implicit-check-not="Bad machine code"
 # REQUIRES: x86-registered-target
 
 # These copies have mismatched type sizes that are allowed because the
@@ -28,27 +28,35 @@ body:             |
   bb.0:
     liveins: $xmm0, $xmm1, $xmm2, $xmm3
 
-    ; FP16 reg is sub_reg of xmm
+    ; CHECK: *** Bad machine code: Copy Instruction is illegal with mismatching sizes ***
+    ; CHECK: - instruction: %0:_(s16) = COPY $xmm0
     %0:_(s16) = COPY $xmm0
 
     ; CHECK: *** Bad machine code: Copy Instruction is illegal with mismatching sizes ***
+    ; CHECK: - instruction: %1:_(<4 x s16>) = COPY $xmm1
     %1:_(<4 x s16>) = COPY $xmm1
 
     ; CHECK: *** Bad machine code: Copy Instruction is illegal with mismatching sizes ***
+    ; CHECK: - instruction: %2:_(s256) = COPY $xmm2
     %2:_(s256) = COPY $xmm2
 
     ; CHECK: *** Bad machine code: Copy Instruction is illegal with mismatching sizes ***
+    ; CHECK: - instruction: %3:_(<8 x s32>) = COPY $xmm3
     %3:_(<8 x s32>) = COPY $xmm3
 
-    ; FP16 reg is sub_reg of xmm
+    ; CHECK: *** Bad machine code: Copy Instruction is illegal with mismatching sizes ***
+    ; CHECK: - instruction: $xmm0 = COPY %0:_(s16)
     $xmm0 = COPY %0
 
     ; CHECK: *** Bad machine code: Copy Instruction is illegal with mismatching sizes ***
+    ; CHECK: - instruction: $xmm1 = COPY %1:_(<4 x s16>)
     $xmm1 = COPY %1
 
     ; CHECK: *** Bad machine code: Copy Instruction is illegal with mismatching sizes ***
+    ; CHECK: - instruction: $xmm2 = COPY %2:_(s256)
     $xmm2 = COPY %2
 
     ; CHECK: *** Bad machine code: Copy Instruction is illegal with mismatching sizes ***
+    ; CHECK: - instruction: $xmm3 = COPY %3:_(<8 x s32>)
     $xmm3 = COPY %3
 ...


        


More information about the llvm-commits mailing list